diff options
Diffstat (limited to 'src/map.h')
| -rw-r--r-- | src/map.h | 56 |
1 files changed, 41 insertions, 15 deletions
| diff --git a/src/map.h b/src/map.h index 3b3d42c..1234dbb 100644 --- a/src/map.h +++ b/src/map.h | |||
| @@ -8,37 +8,63 @@ class Entity; | |||
| 8 | 8 | ||
| 9 | class Map { | 9 | class Map { |
| 10 | public: | 10 | public: |
| 11 | Map(); | 11 | Map(int id); |
| 12 | Map(std::string name); | 12 | Map() : Map(-1) {} |
| 13 | Map(const Map& map); | 13 | Map(const Map& map); |
| 14 | Map(Map&& map); | 14 | Map(Map&& map); |
| 15 | ~Map(); | 15 | ~Map(); |
| 16 | Map& operator= (Map other); | 16 | Map& operator= (Map other); |
| 17 | friend void swap(Map& first, Map& second); | 17 | friend void swap(Map& first, Map& second); |
| 18 | 18 | ||
| 19 | static Map& getNamedMap(std::string name); | 19 | enum class MoveType { |
| 20 | Wall, | ||
| 21 | Wrap, | ||
| 22 | Warp, | ||
| 23 | ReverseWarp | ||
| 24 | }; | ||
| 25 | |||
| 26 | struct EntityData { | ||
| 27 | std::string name; | ||
| 28 | std::pair<int, int> position; | ||
| 29 | }; | ||
| 30 | |||
| 31 | static MoveType moveTypeForShort(std::string str); | ||
| 32 | static bool moveTypeTakesMap(MoveType type); | ||
| 20 | 33 | ||
| 34 | int getID() const; | ||
| 21 | const int* getMapdata() const; | 35 | const int* getMapdata() const; |
| 22 | std::string getTitle() const; | 36 | std::string getTitle() const; |
| 23 | const Map* getLeftMap() const; | 37 | MoveType getLeftMoveType() const; |
| 24 | const Map* getRightMap() const; | 38 | MoveType getRightMoveType() const; |
| 25 | void setLeftMap(const Map* m); | 39 | MoveType getUpMoveType() const; |
| 26 | void setRightMap(const Map* m); | 40 | MoveType getDownMoveType() const; |
| 41 | int getLeftMapID() const; | ||
| 42 | int getRightMapID() const; | ||
| 43 | int getUpMapID() const; | ||
| 44 | int getDownMapID() const; | ||
| 45 | |||
| 27 | void createEntities(std::list<std::shared_ptr<Entity>>& entities) const; | 46 | void createEntities(std::list<std::shared_ptr<Entity>>& entities) const; |
| 28 | bool operator==(const Map& other) const; | 47 | bool operator==(const Map& other) const; |
| 29 | bool operator!=(const Map& other) const; | 48 | bool operator!=(const Map& other) const; |
| 30 | private: | ||
| 31 | struct EntityData { | ||
| 32 | std::string name; | ||
| 33 | std::pair<double, double> position; | ||
| 34 | }; | ||
| 35 | 49 | ||
| 50 | void setMapdata(int* mapdata); | ||
| 51 | void setTitle(std::string title); | ||
| 52 | void setLeftMoveType(MoveType type); | ||
| 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); | ||
| 61 | private: | ||
| 36 | int* mapdata; | 62 | int* mapdata; |
| 37 | std::string title; | 63 | std::string title; |
| 38 | std::string name; | 64 | int id; |
| 39 | const Map* leftMap = nullptr; | ||
| 40 | const Map* rightMap = nullptr; | ||
| 41 | std::list<EntityData> entities; | 65 | std::list<EntityData> entities; |
| 66 | MoveType leftType, rightType, upType, downType; | ||
| 67 | int leftMap, rightMap, upMap, downMap; | ||
| 42 | }; | 68 | }; |
| 43 | 69 | ||
| 44 | #endif | 70 | #endif |
