summaryrefslogtreecommitdiffstats
path: root/EditManager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'EditManager.cpp')
-rw-r--r--EditManager.cpp33
1 files changed, 20 insertions, 13 deletions
diff --git a/EditManager.cpp b/EditManager.cpp
index 5822ffc..37fbcfd 100644
--- a/EditManager.cpp
+++ b/EditManager.cpp
@@ -41,23 +41,30 @@ EditManager::EditManager(Window *window) {
}
void EditManager::addRoom() {
- newRoom = Room(idManager.generate("room"));
- mode = ADD;
-
- activeRoom = &newRoom;
-
- window->update();
+ if(mode == VIEW) {
+ newRoom = Room(idManager.generate("room"));
+ mode = ADD;
+
+ activeRoom = &newRoom;
+
+ window->update();
+ }
}
void EditManager::finishRoom() {
- mode = VIEW;
-
- if(newRoom.size() > 2 && polygonOk(newRoom)) {
- window->getLevel().push_back(newRoom);
- activeRoom = &window->getLevel().back();
+ if(mode == ADD) {
+ mode = VIEW;
+
+ if(newRoom.size() > 2 && polygonOk(newRoom)) {
+ window->getLevel().push_back(newRoom);
+ activeRoom = &window->getLevel().back();
+ }
+ else {
+ activeRoom = NULL;
+ }
+
+ window->update();
}
-
- window->update();
}
void EditManager::addVertex(const Vertex &v) {