summary refs log tree commit diff stats
path: root/tools/mapedit/src/map.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tools/mapedit/src/map.cpp')
-rw-r--r--tools/mapedit/src/map.cpp162
1 files changed, 37 insertions, 125 deletions
diff --git a/tools/mapedit/src/map.cpp b/tools/mapedit/src/map.cpp index fb675e8..a099e29 100644 --- a/tools/mapedit/src/map.cpp +++ b/tools/mapedit/src/map.cpp
@@ -21,14 +21,7 @@ Map::Map(const Map& map)
21 treeItemId = map.treeItemId; 21 treeItemId = map.treeItemId;
22 children = map.children; 22 children = map.children;
23 hidden = map.hidden; 23 hidden = map.hidden;
24 leftType = map.leftType; 24 adjacents = map.adjacents;
25 rightType = map.rightType;
26 upType = map.upType;
27 downType = map.downType;
28 leftMap = map.leftMap;
29 rightMap = map.rightMap;
30 downMap = map.downMap;
31 upMap = map.upMap;
32} 25}
33 26
34Map::Map(Map&& map) : Map(-1, map.world) 27Map::Map(Map&& map) : Map(-1, map.world)
@@ -58,14 +51,7 @@ void swap(Map& first, Map& second)
58 std::swap(first.treeItemId, second.treeItemId); 51 std::swap(first.treeItemId, second.treeItemId);
59 std::swap(first.children, second.children); 52 std::swap(first.children, second.children);
60 std::swap(first.hidden, second.hidden); 53 std::swap(first.hidden, second.hidden);
61 std::swap(first.leftType, second.leftType); 54 std::swap(first.adjacents, second.adjacents);
62 std::swap(first.rightType, second.rightType);
63 std::swap(first.upType, second.upType);
64 std::swap(first.downType, second.downType);
65 std::swap(first.leftMap, second.leftMap);
66 std::swap(first.rightMap, second.rightMap);
67 std::swap(first.downMap, second.downMap);
68 std::swap(first.upMap, second.upMap);
69} 55}
70 56
71std::list<Map::MoveType> Map::listMoveTypes() 57std::list<Map::MoveType> Map::listMoveTypes()
@@ -78,9 +64,9 @@ std::string Map::stringForMoveType(MoveType type)
78 switch (type) 64 switch (type)
79 { 65 {
80 case MoveType::Wall: return "Wall"; 66 case MoveType::Wall: return "Wall";
81 case MoveType::Warp: return "Warp"; 67 case MoveType::Warp: return "Teleport";
82 case MoveType::Wrap: return "Wrap"; 68 case MoveType::Wrap: return "Wrap";
83 case MoveType::ReverseWarp: return "Reverse Warp"; 69 case MoveType::ReverseWarp: return "Reverse Teleport";
84 } 70 }
85} 71}
86 72
@@ -106,6 +92,17 @@ std::string Map::shortForMoveType(MoveType type)
106 } 92 }
107} 93}
108 94
95std::string Map::shortForMoveDir(MoveDir dir)
96{
97 switch (dir)
98 {
99 case MoveDir::Left: return "left";
100 case MoveDir::Right: return "right";
101 case MoveDir::Up: return "up";
102 case MoveDir::Down: return "down";
103 }
104}
105
109Map::MoveType Map::moveTypeForShort(std::string str) 106Map::MoveType Map::moveTypeForShort(std::string str)
110{ 107{
111 if (str == "wrap") return MoveType::Wrap; 108 if (str == "wrap") return MoveType::Wrap;
@@ -115,6 +112,15 @@ Map::MoveType Map::moveTypeForShort(std::string str)
115 return MoveType::Wall; 112 return MoveType::Wall;
116} 113}
117 114
115Map::MoveDir Map::moveDirForShort(std::string str)
116{
117 if (str == "right") return MoveDir::Right;
118 if (str == "up") return MoveDir::Up;
119 if (str == "down") return MoveDir::Down;
120
121 return MoveDir::Left;
122}
123
118int Map::getID() const 124int Map::getID() const
119{ 125{
120 return id; 126 return id;
@@ -167,47 +173,21 @@ bool Map::getHidden() const
167 return hidden; 173 return hidden;
168} 174}
169 175
170Map::MoveType Map::getLeftMoveType() const 176const std::map<Map::MoveDir, Map::Adjacent>& Map::getAdjacents() const
171{
172 return leftType;
173}
174
175Map::MoveType Map::getRightMoveType() const
176{
177 return rightType;
178}
179
180Map::MoveType Map::getUpMoveType() const
181{ 177{
182 return upType; 178 return adjacents;
183} 179}
184 180
185Map::MoveType Map::getDownMoveType() const 181const Map::Adjacent& Map::getAdjacent(MoveDir direction) const
186{ 182{
187 return downType; 183 if (adjacents.count(direction) > 0)
188} 184 {
189 185 return adjacents.at(direction);
190int Map::getLeftMoveMapID() const 186 } else {
191{ 187 return defaultAdjacent;
192 return leftMap; 188 }
193}
194
195int Map::getRightMoveMapID() const
196{
197 return rightMap;
198}
199
200int Map::getUpMoveMapID() const
201{
202 return upMap;
203}
204
205int Map::getDownMoveMapID() const
206{
207 return downMap;
208} 189}
209 190
210
211void Map::setTitle(std::string title, bool dirty) 191void Map::setTitle(std::string title, bool dirty)
212{ 192{
213 this->title = title; 193 this->title = title;
@@ -279,79 +259,11 @@ void Map::setHidden(bool hid)
279 hidden = hid; 259 hidden = hid;
280} 260}
281 261
282void Map::setLeftMoveType(Map::MoveType move, bool dirty) 262void Map::setAdjacent(MoveDir direction, MoveType type, int map, bool dirty)
283{
284 leftType = move;
285
286 if (dirty)
287 {
288 world->setDirty(true);
289 }
290}
291
292void Map::setRightMoveType(Map::MoveType move, bool dirty)
293{
294 rightType = move;
295
296 if (dirty)
297 {
298 world->setDirty(true);
299 }
300}
301
302void Map::setUpMoveType(Map::MoveType move, bool dirty)
303{
304 upType = move;
305
306 if (dirty)
307 {
308 world->setDirty(true);
309 }
310}
311
312void Map::setDownMoveType(Map::MoveType move, bool dirty)
313{
314 downType = move;
315
316 if (dirty)
317 {
318 world->setDirty(true);
319 }
320}
321
322void Map::setLeftMoveMapID(int id, bool dirty)
323{
324 leftMap = id;
325
326 if (dirty)
327 {
328 world->setDirty(true);
329 }
330}
331
332void Map::setRightMoveMapID(int id, bool dirty)
333{
334 rightMap = id;
335
336 if (dirty)
337 {
338 world->setDirty(true);
339 }
340}
341
342void Map::setUpMoveMapID(int id, bool dirty)
343{
344 upMap = id;
345
346 if (dirty)
347 {
348 world->setDirty(true);
349 }
350}
351
352void Map::setDownMoveMapID(int id, bool dirty)
353{ 263{
354 downMap = id; 264 Adjacent& cur = adjacents[direction];
265 cur.type = type;
266 if (map != -1) cur.map = map;
355 267
356 if (dirty) 268 if (dirty)
357 { 269 {