From 6d5388b221cdd37fe0103e9074edc052053847af Mon Sep 17 00:00:00 2001 From: Simon Robertshaw Date: Mon, 30 Jul 2012 11:25:32 +0100 Subject: [PATCH] Faster brush adjusting with [ and ], use alt to change to 1 pixel --- src/game/GameController.cpp | 2 +- src/game/GameView.cpp | 22 ++++++++++++++++++++-- src/game/GameView.h | 3 +++ 3 files changed, 24 insertions(+), 3 deletions(-) diff --git a/src/game/GameController.cpp b/src/game/GameController.cpp index aede8d6ed..eab5dcc49 100644 --- a/src/game/GameController.cpp +++ b/src/game/GameController.cpp @@ -193,7 +193,7 @@ void GameController::AdjustBrushSize(int direction, bool logarithmic, bool xAxis ui::Point newSize(0, 0); ui::Point oldSize = gameModel->GetBrush()->GetRadius(); if(logarithmic) - newSize = gameModel->GetBrush()->GetRadius() + ui::Point(direction * ((gameModel->GetBrush()->GetRadius().X/10)>0?gameModel->GetBrush()->GetRadius().X/10:1), direction * ((gameModel->GetBrush()->GetRadius().Y/10)>0?gameModel->GetBrush()->GetRadius().Y/10:1)); + newSize = gameModel->GetBrush()->GetRadius() + ui::Point(direction * ((gameModel->GetBrush()->GetRadius().X/5)>0?gameModel->GetBrush()->GetRadius().X/5:1), direction * ((gameModel->GetBrush()->GetRadius().Y/5)>0?gameModel->GetBrush()->GetRadius().Y/5:1)); else newSize = gameModel->GetBrush()->GetRadius() + ui::Point(direction, direction); if(newSize.X<0) diff --git a/src/game/GameView.cpp b/src/game/GameView.cpp index 5c4ecee04..610e3ca73 100644 --- a/src/game/GameView.cpp +++ b/src/game/GameView.cpp @@ -909,6 +909,7 @@ void GameView::OnKeyPress(int key, Uint16 character, bool shift, bool ctrl, bool { case KEY_ALT: drawSnap = true; + enableAltBehaviour(); break; case KEY_CTRL: if(drawModeReset) @@ -989,10 +990,10 @@ void GameView::OnKeyPress(int key, Uint16 character, bool shift, bool ctrl, bool c->OpenStamps(); break; case ']': - c->AdjustBrushSize(1, true, shiftBehaviour, ctrlBehaviour); + c->AdjustBrushSize(1, !alt, shiftBehaviour, ctrlBehaviour); break; case '[': - c->AdjustBrushSize(-1, true, shiftBehaviour, ctrlBehaviour); + c->AdjustBrushSize(-1, !alt, shiftBehaviour, ctrlBehaviour); break; } @@ -1019,6 +1020,7 @@ void GameView::OnKeyRelease(int key, Uint16 character, bool shift, bool ctrl, bo { case KEY_ALT: drawSnap = false; + disableAltBehaviour(); break; case KEY_CTRL: disableCtrlBehaviour(); @@ -1264,6 +1266,22 @@ void GameView::disableShiftBehaviour() } } +void GameView::enableAltBehaviour() +{ + if(!altBehaviour) + { + altBehaviour = true; + } +} + +void GameView::disableAltBehaviour() +{ + if(altBehaviour) + { + altBehaviour = false; + } +} + void GameView::enableCtrlBehaviour() { if(!ctrlBehaviour) diff --git a/src/game/GameView.h b/src/game/GameView.h index 9db25f414..b9c060434 100644 --- a/src/game/GameView.h +++ b/src/game/GameView.h @@ -40,6 +40,7 @@ private: bool drawSnap; bool shiftBehaviour; bool ctrlBehaviour; + bool altBehaviour; bool showHud; int toolIndex; @@ -109,6 +110,8 @@ private: void disableShiftBehaviour(); void enableCtrlBehaviour(); void disableCtrlBehaviour(); + void enableAltBehaviour(); + void disableAltBehaviour(); public: GameView();