Trabajando en la precarga de habitaciones

This commit is contained in:
2022-10-30 13:27:30 +01:00
parent d1c27c4639
commit c11f5d2622
74 changed files with 1028 additions and 754 deletions

View File

@@ -3,6 +3,7 @@
#include <SDL2/SDL.h>
#include "animatedsprite.h"
#include "asset.h"
#include "../room.h"
#include "text.h"
#include "texture.h"
#include "utils.h"
@@ -12,24 +13,36 @@
#ifndef RESOURCE_H
#define RESOURCE_H
struct texture_t
struct res_texture_t
{
std::string name; // Nombre de la textura
Texture *texture; // La textura
};
struct animation_t
struct res_animation_t
{
std::string name; // Nombre de la textura
animatedSprite_t *animation; // La animación
};
struct textOffset_t
struct res_textOffset_t
{
std::string name; // Nombre del offeset
std::string name; // Nombre del offset
textFile_t *textFile; // Los offsets de la fuente
};
struct res_tileMap_t
{
std::string name; // Nombre del mapa de tiles
std::vector<int> *tileMap; // Vecor con los indices del mapa de tiles
};
struct res_room_t
{
std::string name; // Nombre de la habitación
room_t *room; // Vecor con las habitaciones
};
// Clase Resource. Almacena recursos de disco en memoria
class Resource
{
@@ -40,9 +53,11 @@ private:
options_t *options; // Puntero a las opciones del juego
// Variables
std::vector<texture_t> textures;
std::vector<animation_t> animations;
std::vector<textOffset_t> offsets;
std::vector<res_texture_t> textures;
std::vector<res_animation_t> animations;
std::vector<res_textOffset_t> offsets;
std::vector<res_tileMap_t> tileMaps;
std::vector<res_room_t> rooms;
public:
// Constructor
@@ -57,6 +72,12 @@ public:
// Carga los offsets desde una lista
void loadOffsets(std::vector<std::string> list);
// Carga los mapas de tiles desde una lista
void loadTileMaps(std::vector<std::string> list);
// Carga las habitaciones desde una lista
void loadRooms(std::vector<std::string> list);
// Recarga las texturas
void reLoadTextures();
@@ -69,6 +90,12 @@ public:
// Libera los offsets
void freeOffsets();
// Libera los mapas de tiles
void freeTileMaps();
// Libera las habitaciones
void freeRooms();
// Libera todos los recursos
void free();
@@ -80,6 +107,12 @@ public:
// Obtiene un offset
textFile_t *getOffset(std::string name);
// Obtiene un mapa de tiles
std::vector<int> *getTileMap(std::string name);
// Obtiene una habitacion
room_t *getRoom(std::string name);
};
#endif