diff options
| author | Simon Robertshaw <simon@hardwired.org.uk> | 2012-01-24 20:19:19 (GMT) |
|---|---|---|
| committer | Simon Robertshaw <simon@hardwired.org.uk> | 2012-01-24 20:19:19 (GMT) |
| commit | 97b35bc47059315d4138c8e0827842d2c03de152 (patch) | |
| tree | feaf7a8c018982ba9d7ca1b8e6e15294abfdfc84 /src/game/GameView.cpp | |
| parent | 04488081d3fa0cd3dfb2939e5d902bc894df150d (diff) | |
| download | powder-97b35bc47059315d4138c8e0827842d2c03de152.zip powder-97b35bc47059315d4138c8e0827842d2c03de152.tar.gz | |
Various
Diffstat (limited to 'src/game/GameView.cpp')
| -rw-r--r-- | src/game/GameView.cpp | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/src/game/GameView.cpp b/src/game/GameView.cpp index f7e0682..8438e1b 100644 --- a/src/game/GameView.cpp +++ b/src/game/GameView.cpp @@ -9,7 +9,8 @@ GameView::GameView(): pointQueue(queue<ui::Point*>()), isMouseDown(false), ren(NULL), - activeBrush(NULL) + activeBrush(NULL), + currentMouse(0, 0) { int currentX = 1; //Set up UI @@ -344,6 +345,7 @@ void GameView::NotifyBrushChanged(GameModel * sender) void GameView::OnMouseMove(int x, int y, int dx, int dy) { + currentMouse = ui::Point(x, y); if(isMouseDown) { pointQueue.push(new ui::Point(x-dx, y-dy)); @@ -353,8 +355,11 @@ void GameView::OnMouseMove(int x, int y, int dx, int dy) void GameView::OnMouseDown(int x, int y, unsigned button) { - isMouseDown = true; - pointQueue.push(new ui::Point(x, y)); + if(currentMouse.X > 0 && currentMouse.X < XRES && currentMouse.Y > 0 && currentMouse.Y < YRES) + { + isMouseDown = true; + pointQueue.push(new ui::Point(x, y)); + } } void GameView::OnMouseUp(int x, int y, unsigned button) @@ -389,6 +394,10 @@ void GameView::OnKeyPress(int key, bool shift, bool ctrl, bool alt) void GameView::OnTick(float dt) { + if(isMouseDown) + { + pointQueue.push(new ui::Point(currentMouse)); + } if(!pointQueue.empty()) { c->DrawPoints(pointQueue); @@ -404,8 +413,8 @@ void GameView::OnDraw() ren->render_fire(); ren->render_signs(); } - if(activeBrush) + if(activeBrush && currentMouse.X > 0 && currentMouse.X < XRES && currentMouse.Y > 0 && currentMouse.Y < YRES) { - activeBrush->Render(ui::Engine::Ref().g, ui::Point(ui::Engine::Ref().GetMouseX(),ui::Engine::Ref().GetMouseY())); + activeBrush->Render(ui::Engine::Ref().g, currentMouse); } } |
