#pragma once #include "animatedsprite.h" #include "asset.h" #include "jail_audio.h" #include "utils.h" #ifndef MAP_H #define MAP_H // The player class Map { private: SDL_Renderer *renderer; // El renderizador donde se dibuja todo LTexture *texture_tile; // Textura con los gráficos de los tiles LTexture *texture_actor; // Textura con los gráficos de los actores LTexture *texture_bg; // Textura con los gráficos de fondo Asset *asset; // Objeto con los ficheros de recursos AnimatedSprite *sprite_tile; // Sprite de los tiles del mapa AnimatedSprite *sprite_actor; // Sprite de los actores Sprite *background; // Fondo de la pantalla SDL_Rect src_rect; // Ni puta idea SDL_Rect dst_rect; // Ni puta idea Uint8 *tile; // Vector con los tiles Uint8 *actor; // Vector con los acores Uint8 w; // Anchura en habitaciones del mapa Uint8 h; // Altura en habitaciones del mapa Uint8 room; // Habitación actual del mapa std::string mapfile; // Ruta con el fichero del mapa JA_Music music; // La musica del mapa Uint8 zone; // Zona del mapa public: // Constructor Map(SDL_Renderer *renderer, std::string file, Asset *asset); // Destructor ~Map(); // Carga el mapa a partir de un fichero void loadFromFile(std::string file); // Actualiza todas las variables void update(); // Dibuja el objeto void render(); // Obtiene el valor del tile de la habitación actual Uint8 getTile(int x, int y); // Obtiene el tipo de tile segun su ubicación en la textura Uint8 readMapTile(Uint8 x, Uint8 y); // Obtiene el valor del actor en esa ubicación Uint8 getActor(Uint8 x, Uint8 y); // Establece el valor del actor en esa ubicación void setActor(Uint8 x, Uint8 y, Uint8 valor); // Carga las texturas del mapa en función de la zona void setMapGFX(Uint8 zone); // Carga las musica del juego en función de la zona void setMapMusic(Uint8 zone); // Comprueba si se ha cambiado de zona bool checkZoneChange(int room); // Cambia la zona del mapa void setZone(int room); }; #endif