#pragma once #include #include "utils.h" #include "asset.h" #include "const.h" #include #include #include #include #ifndef MAP_H #define MAP_H enum t_tile_map { nothing, wall, passable }; // The player class Map { private: Asset *asset; // Objeto con la ruta a todos los ficheros de recursos SDL_Renderer *renderer; // El renderizador de la ventana std::string room_up; // Identificador de la habitación que se encuentra arriba std::string room_down; // Identificador de la habitación que se encuentra abajp std::string room_left; // Identificador de la habitación que se encuentra a la izquierda std::string room_right; // Identificador de la habitación que se encuentra a la derecha std::string tileset_img; // Imagen con los graficos para la habitación std::string bg_img; // Imagen con los graficos para la habitación std::vector tilemap; // Indice de los tiles a dibujar en la habitación LTexture *texture_tile; // Textura con los graficos de los tiles habitación LTexture *texture_bg; // Textura con los graficos de fondo de la habitación SDL_Texture *map_texture; // Textura para dibujar el mapa de la habitación int tile_size; // Ancho del tile en pixels int map_width; // Ancho del mapa en tiles int map_height; // Alto del mapa en tiles int tileset_width; // Ancho del tileset en tiles // Carga las variables desde un fichero bool load(std::string file); // Asigna variables a partir de dos cadenas bool setVars(std::string var, std::string value); // Pinta el mapa de la habitación en la textura void fillMapTexture(); public: // Constructor Map(std::string file, SDL_Renderer *renderer, Asset *asset); // Destructor ~Map(); // Actualiza todas las variables void update(); // Dibuja el objeto void render(); // Devuelve el tipo de tile que hay en un punto t_tile_map getTile(SDL_Point p); // Devuelve el valor de la variable int getTileWidth(); }; #endif