75 lines
2.1 KiB
C++
75 lines
2.1 KiB
C++
#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
|