summary refs log tree commit diff stats
path: root/src/map.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/map.h')
-rw-r--r--src/map.h35
1 files changed, 17 insertions, 18 deletions
diff --git a/src/map.h b/src/map.h index 1234dbb..4e661ab 100644 --- a/src/map.h +++ b/src/map.h
@@ -3,6 +3,7 @@
3 3
4#include <string> 4#include <string>
5#include <list> 5#include <list>
6#include <map>
6 7
7class Entity; 8class Entity;
8 9
@@ -23,25 +24,31 @@ class Map {
23 ReverseWarp 24 ReverseWarp
24 }; 25 };
25 26
27 enum class MoveDir {
28 Left,
29 Right,
30 Up,
31 Down
32 };
33
26 struct EntityData { 34 struct EntityData {
27 std::string name; 35 std::string name;
28 std::pair<int, int> position; 36 std::pair<int, int> position;
29 }; 37 };
30 38
39 struct Adjacent {
40 MoveType type = MoveType::Wall;
41 int map = -1;
42 };
43
31 static MoveType moveTypeForShort(std::string str); 44 static MoveType moveTypeForShort(std::string str);
45 static MoveDir moveDirForShort(std::string str);
32 static bool moveTypeTakesMap(MoveType type); 46 static bool moveTypeTakesMap(MoveType type);
33 47
34 int getID() const; 48 int getID() const;
35 const int* getMapdata() const; 49 const int* getMapdata() const;
36 std::string getTitle() const; 50 std::string getTitle() const;
37 MoveType getLeftMoveType() const; 51 const Adjacent& getAdjacent(MoveDir dir) const;
38 MoveType getRightMoveType() const;
39 MoveType getUpMoveType() const;
40 MoveType getDownMoveType() const;
41 int getLeftMapID() const;
42 int getRightMapID() const;
43 int getUpMapID() const;
44 int getDownMapID() const;
45 52
46 void createEntities(std::list<std::shared_ptr<Entity>>& entities) const; 53 void createEntities(std::list<std::shared_ptr<Entity>>& entities) const;
47 bool operator==(const Map& other) const; 54 bool operator==(const Map& other) const;
@@ -49,22 +56,14 @@ class Map {
49 56
50 void setMapdata(int* mapdata); 57 void setMapdata(int* mapdata);
51 void setTitle(std::string title); 58 void setTitle(std::string title);
52 void setLeftMoveType(MoveType type); 59 void setAdjacent(MoveDir dir, MoveType type, int map);
53 void setRightMoveType(MoveType type);
54 void setUpMoveType(MoveType type);
55 void setDownMoveType(MoveType type);
56 void setLeftMapID(int id);
57 void setRightMapID(int id);
58 void setUpMapID(int id);
59 void setDownMapID(int id);
60 void addEntity(EntityData& data); 60 void addEntity(EntityData& data);
61 private: 61 private:
62 int* mapdata; 62 int* mapdata;
63 std::string title; 63 std::string title;
64 int id; 64 int id;
65 std::list<EntityData> entities; 65 std::list<EntityData> entities;
66 MoveType leftType, rightType, upType, downType; 66 std::map<MoveDir, Adjacent> adjacents;
67 int leftMap, rightMap, upMap, downMap;
68}; 67};
69 68
70#endif 69#endif