#ifndef MAP_H #define MAP_H #include #include class Entity; class Map { public: Map(); Map(std::string name); Map(const Map& map); Map(Map&& map); ~Map(); Map& operator= (Map other); friend void swap(Map& first, Map& second); static Map& getNamedMap(std::string name); const int* getMapdata() const; std::string getTitle() const; const Map* getLeftMap() const; const Map* getRightMap() const; void setLeftMap(const Map* m); void setRightMap(const Map* m); void createEntities(std::list>& entities) const; bool operator==(const Map& other) const; bool operator!=(const Map& other) const; private: struct EntityData { std::string name; std::pair position; }; int* mapdata; std::string title; std::string name; const Map* leftMap = nullptr; const Map* rightMap = nullptr; std::list entities; }; #endif