diff options
Diffstat (limited to 'EditManager.cpp')
-rw-r--r-- | EditManager.cpp | 33 |
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) { |