Argentum Online - Cliente
map.h
1 #ifndef __MAP_H
2 #define __MAP_H
3 #include <exception>
4 #include <vector>
5 
6 #include "../../include/nlohmann/json.hpp"
7 #include "decoration.h"
8 #include "renderizable_object.h"
9 
10 using json = nlohmann::json;
11 
12 class MapError : public std::exception {
13  private:
14  char msg_error[256];
15 
16  public:
17  explicit MapError(const char* msg) noexcept;
18  const char* what() const noexcept;
19  ~MapError() noexcept {}
20 };
21 
27 class Map {
28  private:
29  int height;
30  int width;
31  std::vector<std::vector<Decoration>> background_layers;
32  std::vector<std::vector<Decoration>> foreground_layers;
33  int loot_layer_index;
34  int spell_layer_index;
35  bool is_valid;
36 
37  public:
45  Map(json map_description);
46  Map();
47 
55  void generate(json map_description);
56  ~Map();
57 
63  int get_width();
64 
70  int get_height();
71 
77  void update_loot_layer(nlohmann::json loot_info);
78 
84  void push_spell(nlohmann::json spell_info);
85 
90  void clean_spells();
91 
98  std::vector<std::vector<Decoration>>& get_background_layers();
99 
106  std::vector<std::vector<Decoration>>& get_foreground_layers();
107 };
108 
109 #endif
Map::generate
void generate(json map_description)
Regenera el mapa.
Definition: map.cpp:25
Map::clean_spells
void clean_spells()
Limpia los efectos de hechizo que ya terminaron de reproducirse.
Definition: map.cpp:186
MapError
Definition: map.h:12
Map::get_width
int get_width()
Devuelve el ancho en tiles del mapa.
Definition: map.cpp:93
Map::get_foreground_layers
std::vector< std::vector< Decoration > > & get_foreground_layers()
Devuelve las capas que deben ser renderizadas por delante de las entidades.
Definition: map.cpp:108
Map
Mapa. Contiene toda la informacion estatica del mapa, asi como tambien el loot que esta tirado en el ...
Definition: map.h:27
Map::update_loot_layer
void update_loot_layer(nlohmann::json loot_info)
Actualiza la capa de loot del mapa.
Definition: map.cpp:117
Map::get_height
int get_height()
Devuelve el alto en tiles del mapa.
Definition: map.cpp:97
Map::get_background_layers
std::vector< std::vector< Decoration > > & get_background_layers()
Devuelve las capas que deben ser renderizadas por detras de las entidades.
Definition: map.cpp:101
Map::push_spell
void push_spell(nlohmann::json spell_info)
Agrega un efecto de hechizo al mapa.
Definition: map.cpp:177