0
0
mirror of https://github.com/Nimac0/SDL_Minigame synced 2026-01-12 15:53:42 +00:00

Compare commits

..

6 Commits

Author SHA1 Message Date
Freezarite
0441ad493a
Merge b5cae00daebf33b602c8d7e96301e60f98e1eec1 into a8052b4bbbbaa72b5832bdd4e689bdeb14c41edf 2024-11-30 14:55:50 +01:00
freezarite
b5cae00dae Extra map for MapTiles generated by TMX file now works like intended.
removed textures map from AssetManager as it is no longer used.
Updated SpriteComponent to now check if it is a normal Texture or a MapTileTexture.
Added if condition in TextureManager::LoadMapTileTexture to check if the texture was able to be loaded by SDL
2024-11-30 14:55:40 +01:00
freezarite
136196f6a5 Merge remote-tracking branch 'origin/textureManagerChanges' into textureManagerChanges
# Conflicts:
#	.gitmodules
#	CMakeLists.txt
#	include/AssetManager.h
#	include/Map.h
#	include/TileComponent.h
#	src/AssetManager.cpp
#	src/Map.cpp
#	src/TileComponent.cpp
2024-11-19 19:14:20 +01:00
freezarite
549178fc7c removed doxigen (idk how it got in here) 2024-11-05 18:45:34 +01:00
freezarite
6bedb08d9b changes to make chickengame work with updated textureManager
future changes regarding the removal of the character selection needed
2024-11-05 18:38:53 +01:00
freezarite
6de979d794 so much happened idk what to write here :c 2024-11-05 12:45:26 +01:00
5 changed files with 5 additions and 69 deletions

2
.gitignore vendored
View File

@ -6,6 +6,8 @@ Makefile
install_manifest.txt
.cache/
build/
cmake-build-debug/
.idea/
# Compiled files
*.suo

View File

@ -1,18 +1,3 @@
/*!
* \file Textures.h
* \brief Forward declaration of the \c Textures enum class.
*
* This file contains a forward declaration of the \c Textures enum class, which is used as a base
* class for texture identifiers in the engine. It allows developers to define their own set of texture
* types in their own implementation, providing flexibility in texture management within the engine.
*
* \details
* The \c Textures enum class is intended to be implemented by the developer within their own scope.
* This allows for customized texture entries to be defined based on the specific needs of the project.
* The base declaration ensures that the enum class can be referenced and used consistently throughout
* the engine while leaving the details of the texture identifiers up to the implementation.
*/
#pragma once
enum class Textures;

View File

@ -8,22 +8,6 @@
#include <vector>
#include "TextureEnumBase.h"
/*!
* \class TextureManager
* \brief A manager for loading, caching, and drawing textures.
*
* The `TextureManager` class is responsible for handling texture loading, caching,
* and rendering in the engine. It provides functions to add, load, and draw textures
* from files, as well as manage sprite sheets.
*
* It uses two caches: one for regular textures (`texture_cache`) and one for
* map tile textures (`mapTile_texture_cache`). This allows for efficient texture reuse
* and management across different parts of the game.
*
* \note Textures are identified by an enum class `Textures` which is user-defined.
* Developers are expected to define the texture types in their own implementation.
*/
class TextureManager
{
public:
@ -37,50 +21,12 @@ class TextureManager
}
}
/*!
* \brief Adds a single texture to the cache.
* \param texture The texture identifier.
* \param filePath The file path to the texture file.
*
* This function loads the texture from the specified file and stores it in
* the `texture_cache`. If loading the texture fails, an exception is thrown.
*/
void addSingleTexture(Textures texture, const char* filePath);
/*!
* \brief Adds multiple textures to the cache.
* \param textures A map of texture identifiers and corresponding file paths.
*
* This function iterates over the provided map of textures and loads each
* texture using `addSingleTexture`. It allows developers to add several
* textures at once.
*/
void addTextures(const std::map<Textures, const char*>& textures);
/*!
* \brief Loads a texture from the cache.
* \param texture The texture identifier.
* \return A pointer to the `SDL_Texture` if found, or `nullptr` if not found.
*
* This function looks up a texture in the `texture_cache` and returns the
* corresponding `SDL_Texture*`. If the texture is not found, it logs an error
* message and returns `nullptr`.
*/
SDL_Texture* loadTexture(Textures texture);
static std::vector<SDL_Rect> splitSpriteSheet(SDL_Texture* spriteSheet, int width, int height, int spritesOnSheet);
static void draw(SDL_Renderer* renderer, SDL_Texture* texture, SDL_Rect src, SDL_Rect dest, bool flipped = false);
/*!
* \brief Loads a map tile texture from the file system and caches it.
* \param path The file path to the texture.
* \return A pointer to the `SDL_Texture` representing the map tile.
*
* This function checks if the map tile texture is already cached. If not, it
* loads the texture from the file system and stores it in the cache.
*
* If loading fails, an exception is thrown with a descriptive error message.
* /todo should not be usable for the developer and only be accessed by the map class
*/
SDL_Texture* loadMapTileTexture(const char* path);
private:

View File

@ -98,6 +98,8 @@ void GameInternal::init(const char* title, int xpos, int ypos, int width, int he
// loading music
// assets->addMusic("background_music", "assets/sound/background_music.mp3");
this->gameInstance = GameFactory::instance().create(this);
this->gameInstance->init();
}

View File

@ -4,6 +4,7 @@
#include <stdexcept>
#include <string>
#include <VEGO.h>
#include <linux/soundcard.h>
#include "GameInternal.h"