ajustant el jugador

This commit is contained in:
2026-04-05 22:47:12 +02:00
parent 20ad7d778f
commit 6305280e62
51 changed files with 487 additions and 450 deletions

View File

@@ -11,9 +11,14 @@ namespace Resource {
class Cache {
public:
static void init(); // Inicialización singleton
static void destroy(); // Destrucción singleton
static auto get() -> Cache*; // Acceso al singleton
enum class LoadingMode {
EAGER, // Carga todos los recursos en init() (comportamiento por defecto, producción)
LAZY // Sólo registra nombres; carga cada recurso la primera vez que se pide (desarrollo)
};
static void init(LoadingMode mode = LoadingMode::EAGER); // Inicialización singleton
static void destroy(); // Destrucción singleton
static auto get() -> Cache*; // Acceso al singleton
auto getSound(const std::string& name) -> JA_Sound_t*; // Getters de recursos
auto getMusic(const std::string& name) -> JA_Music_t*;
@@ -57,6 +62,18 @@ namespace Resource {
void loadRooms();
void createText();
// Registro de stubs (modo lazy): sólo nombres, sin contenido
void initLazyStubs();
// Cargadores bajo demanda (modo lazy): cargan un recurso individual por nombre
void loadSoundByName(const std::string& name);
void loadMusicByName(const std::string& name);
void loadSurfaceByName(const std::string& name);
void loadPaletteByName(const std::string& name);
void loadTextFileByName(const std::string& name);
void loadAnimationByName(const std::string& name);
void loadRoomByName(const std::string& name);
// Métodos de limpieza
void clear();
void clearSounds();
@@ -73,9 +90,11 @@ namespace Resource {
[[noreturn]] static void throwLoadError(const std::string& asset_type, const std::string& file_path, const std::exception& e);
// Constructor y destructor
Cache();
explicit Cache(LoadingMode mode);
~Cache() = default;
LoadingMode loading_mode_ = LoadingMode::EAGER;
// Singleton instance
static Cache* cache;