From a45ca0363e7598cb14d9dad00fae045e1487c2ed Mon Sep 17 00:00:00 2001 From: Simon Robertshaw Date: Fri, 10 Aug 2012 14:12:56 +0100 Subject: [PATCH] Tool - Correct box drawing. Finishing touches to tool strength (Fixes #87) --- src/game/GameView.cpp | 60 +++++++++++++++++++++-------------- src/simulation/Simulation.cpp | 2 +- 2 files changed, 37 insertions(+), 25 deletions(-) diff --git a/src/game/GameView.cpp b/src/game/GameView.cpp index 817887ed7..905b57b4c 100644 --- a/src/game/GameView.cpp +++ b/src/game/GameView.cpp @@ -1142,25 +1142,31 @@ void GameView::OnKeyPress(int key, Uint16 character, bool shift, bool ctrl, bool enableAltBehaviour(); break; case KEY_CTRL: - if(drawModeReset) - drawModeReset = false; - else - drawPoint1 = currentMouse; - if(shift) - drawMode = DrawFill; - else - drawMode = DrawRect; + if(!isMouseDown) + { + if(drawModeReset) + drawModeReset = false; + else + drawPoint1 = currentMouse; + if(shift) + drawMode = DrawFill; + else + drawMode = DrawRect; + } enableCtrlBehaviour(); break; case KEY_SHIFT: - if(drawModeReset) - drawModeReset = false; - else - drawPoint1 = currentMouse; - if(ctrl) - drawMode = DrawFill; - else - drawMode = DrawLine; + if(!isMouseDown) + { + if(drawModeReset) + drawModeReset = false; + else + drawPoint1 = currentMouse; + if(ctrl) + drawMode = DrawFill; + else + drawMode = DrawLine; + } enableShiftBehaviour(); break; case ' ': //Space @@ -1538,10 +1544,13 @@ void GameView::enableShiftBehaviour() if(!shiftBehaviour) { shiftBehaviour = true; - if(!ctrlBehaviour) - c->SetToolStrength(10.0f); - else - c->SetToolStrength(1.0f); + if(isMouseDown) + { + if(!ctrlBehaviour) + c->SetToolStrength(10.0f); + else + c->SetToolStrength(1.0f); + } } } @@ -1584,10 +1593,13 @@ void GameView::enableCtrlBehaviour() saveSimulationButton->Appearance.TextInactive = ui::Colour(0, 0, 0); searchButton->Appearance.BackgroundInactive = ui::Colour(255, 255, 255); searchButton->Appearance.TextInactive = ui::Colour(0, 0, 0); - if(!shiftBehaviour) - c->SetToolStrength(.1f); - else - c->SetToolStrength(1.0f); + if(isMouseDown) + { + if(!shiftBehaviour) + c->SetToolStrength(.1f); + else + c->SetToolStrength(1.0f); + } } } diff --git a/src/simulation/Simulation.cpp b/src/simulation/Simulation.cpp index 841984e5e..c11bde069 100644 --- a/src/simulation/Simulation.cpp +++ b/src/simulation/Simulation.cpp @@ -1107,7 +1107,7 @@ void Simulation::ToolBox(int x1, int y1, int x2, int y2, int tool, Brush * cBrus } for (j=y1; j<=y2; j++) for (i=x1; i<=x2; i++) - ToolBrush(i, j, tool, cBrush, strength); + Tool(i, j, tool, strength); } int Simulation::CreateParts(int positionX, int positionY, int c, Brush * cBrush)