summary refs log tree commit diff stats
path: root/tools/mapedit/src/map.h
diff options
context:
space:
mode:
authorKelly Rauchenberger <fefferburbia@gmail.com>2015-03-16 16:53:05 -0400
committerKelly Rauchenberger <fefferburbia@gmail.com>2015-03-16 16:53:05 -0400
commit0d30e9b57229905f78e7bd60fe5d3cde72851f28 (patch)
tree4ca2abff9fb1933685f570e97a8b9e88a976c95f /tools/mapedit/src/map.h
parent36536297aac5c07e3d5fb96abed74570fc7615e9 (diff)
downloadtherapy-0d30e9b57229905f78e7bd60fe5d3cde72851f28.tar.gz
therapy-0d30e9b57229905f78e7bd60fe5d3cde72851f28.tar.bz2
therapy-0d30e9b57229905f78e7bd60fe5d3cde72851f28.zip
Rewrote map editor so a single file contains all maps
Maps are viewed in a tree control on the left. They can be dragged and dropped. Maps are bolded when they are dirty. Saving saves expansion status and order of maps in tree.
Diffstat (limited to 'tools/mapedit/src/map.h')
-rw-r--r--tools/mapedit/src/map.h45
1 files changed, 29 insertions, 16 deletions
diff --git a/tools/mapedit/src/map.h b/tools/mapedit/src/map.h index a2b9cb8..5753cae 100644 --- a/tools/mapedit/src/map.h +++ b/tools/mapedit/src/map.h
@@ -1,12 +1,16 @@
1#ifndef MAP_H 1#ifndef MAP_H
2#define MAP_H 2#define MAP_H
3 3
4class Map;
5
4#include <string> 6#include <string>
5#include <exception> 7#include <exception>
6#include <utility> 8#include <utility>
7#include <list> 9#include <list>
8#include "object.h" 10#include "object.h"
9#include <memory> 11#include <memory>
12#include "world.h"
13#include <wx/treectrl.h>
10 14
11class MapeditFrame; 15class MapeditFrame;
12 16
@@ -57,36 +61,45 @@ struct MapObjectEntry {
57 61
58class Map { 62class Map {
59 public: 63 public:
60 Map(); 64 Map(int id, World* world);
61 Map(std::string name);
62 Map(const Map& map); 65 Map(const Map& map);
63 Map(Map&& map); 66 Map(Map&& map);
64 ~Map(); 67 ~Map();
65 Map& operator= (Map other); 68 Map& operator= (Map other);
66 friend void swap(Map& first, Map& second); 69 friend void swap(Map& first, Map& second);
67 70
71 int getID() const;
68 std::string getTitle() const; 72 std::string getTitle() const;
69 void setTitle(std::string title);
70 void save(std::string name);
71 bool hasUnsavedChanges() const;
72 void setTileAt(int x, int y, int tile);
73 int getTileAt(int x, int y) const; 73 int getTileAt(int x, int y) const;
74 const std::list<std::shared_ptr<MapObjectEntry>>& getObjects() const; 74 const std::list<std::shared_ptr<MapObjectEntry>>& getObjects() const;
75 void addObject(std::shared_ptr<MapObjectEntry>& obj); 75 std::shared_ptr<Map> getLeftmap() const;
76 void removeObject(std::shared_ptr<MapObjectEntry>& obj); 76 std::shared_ptr<Map> getRightmap() const;
77 bool getDirty() const; 77 wxTreeItemId getTreeItemId() const;
78 std::list<std::shared_ptr<Map>> getChildren() const;
79 bool getExpanded() const;
78 80
79 MapeditFrame* frame; 81 void setTitle(std::string title, bool dirty = true);
82 void setTileAt(int x, int y, int tile, bool dirty = true);
83 void setMapdata(int* mapdata, bool dirty = true);
84 void addObject(std::shared_ptr<MapObjectEntry>& obj, bool dirty = true);
85 void removeObject(std::shared_ptr<MapObjectEntry>& obj, bool dirty = true);
86 void setLeftmap(int id, bool dirty = true);
87 void setRightmap(int id, bool dirty = true);
88 void setTreeItemId(wxTreeItemId id);
89 void addChild(int id);
90 void setExpanded(bool exp);
80 91
81 private: 92 private:
82 void setDirty(bool dirty); 93 int id;
83 94 World* world;
84 std::list<std::shared_ptr<MapObjectEntry>> objects; 95 std::list<std::shared_ptr<MapObjectEntry>> objects;
85 int* mapdata; 96 int* mapdata;
86 std::string title; 97 std::string title {"Untitled Map"};
87 std::string leftmap; 98 std::list<int> children;
88 std::string rightmap; 99 int leftmap = -1;
89 bool dirty; 100 int rightmap = -1;
101 wxTreeItemId treeItemId;
102 bool expanded = false;
90}; 103};
91 104
92#endif 105#endif