diff options
author | neoraider <devnull@localhost> | 2008-02-19 23:19:02 +0100 |
---|---|---|
committer | neoraider <devnull@localhost> | 2008-02-19 23:19:02 +0100 |
commit | f457ec5027eec37d3734190601399da0af68d12e (patch) | |
tree | b8ee2c2d39fea69b05c6e4824dbd8fab2d87f6b9 /ToolAddPolygon.cpp | |
parent | 2687501f215ec7ffd939801f171d25ea30b02c55 (diff) | |
download | zoomedit-f457ec5027eec37d3734190601399da0af68d12e.tar zoomedit-f457ec5027eec37d3734190601399da0af68d12e.zip |
zoomedit: Rooms can now be connected to portals.
Diffstat (limited to 'ToolAddPolygon.cpp')
-rw-r--r-- | ToolAddPolygon.cpp | 28 |
1 files changed, 21 insertions, 7 deletions
diff --git a/ToolAddPolygon.cpp b/ToolAddPolygon.cpp index 3c63fb7..8e68939 100644 --- a/ToolAddPolygon.cpp +++ b/ToolAddPolygon.cpp @@ -20,6 +20,7 @@ void ToolAddPolygon::activate() { } void ToolAddPolygon::deactivate() { + newRoom.close(); editManager->addRoom(newRoom); } @@ -52,13 +53,26 @@ bool ToolAddPolygon::buttonPress(unsigned int button, const Vertex *v) { if(button != 1) return false; - if(!v) - return false; - - if(!editManager->vertexOk(*v, &newRoom)) - return false; - - newRoom.addVertex(*v); + if(editManager->getHoveredObject() && editManager->getHoveredObject()->isOfType("LevelVertex")) { + LevelVertex *vertex = (LevelVertex*)editManager->getHoveredObject(); + + if(!vertex->canConnect()) + return false; + + if(!editManager->vertexOk(**vertex, &newRoom)) + return false; + + newRoom.addVertex(*vertex); + } + else { + if(!v) + return false; + + if(!editManager->vertexOk(*v, &newRoom)) + return false; + + newRoom.addVertex(*v); + } editManager->redraw(); sidebar.update(); |