diff options
Diffstat (limited to 'src/View/TopView.cpp')
-rw-r--r-- | src/View/TopView.cpp | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/src/View/TopView.cpp b/src/View/TopView.cpp index 12bbe4a..7e649cc 100644 --- a/src/View/TopView.cpp +++ b/src/View/TopView.cpp @@ -18,11 +18,14 @@ */ #include "TopView.h" + +#include <Instance.h> #include <Data/Level.h> #include <Data/Room.h> #include <Data/Triangle.h> #include <Gui/RenderArea.h> #include <Math/Triangle2D.h> + #include <GL/gl.h> #include <cmath> #include <set> @@ -218,13 +221,13 @@ void TopView::render() { drawGrid(); - if(!level) + if(!instance->getLevel()) return; - const std::list<Data::Room*> &rooms = level->getRooms(); + const std::list<Data::Room*> &rooms = instance->getLevel()->getRooms(); for(std::list<Data::Room*>::const_iterator room = rooms.begin(); room != rooms.end(); ++room) - renderRoom(*room, *room == selectedRoom); + renderRoom(*room, *room == instance->getSelectedRoom()); } void TopView::click(float x, float y, unsigned int button) { @@ -233,9 +236,9 @@ void TopView::click(float x, float y, unsigned int button) { vmml::vec2f v(xCenter + x/scale, yCenter + y/scale); - selectedRoom = 0; + Data::Room *selectedRoom = 0; - const std::list<Data::Room*>& rooms = level->getRooms(); + const std::list<Data::Room*> &rooms = instance->getLevel()->getRooms(); for(std::list<Data::Room*>::const_iterator room = rooms.begin(); room != rooms.end(); ++room) { const std::list<Data::Triangle*>& triangles = (*room)->getTriangles(); @@ -255,6 +258,7 @@ void TopView::click(float x, float y, unsigned int button) { break; } + instance->setSelectedRoom(selectedRoom); signalUpdate().emit(); } |