From f457ec5027eec37d3734190601399da0af68d12e Mon Sep 17 00:00:00 2001 From: neoraider Date: Tue, 19 Feb 2008 22:19:02 +0000 Subject: zoomedit: Rooms can now be connected to portals. --- ToolAddPolygon.cpp | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) (limited to 'ToolAddPolygon.cpp') 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(); -- cgit v1.2.3