diff options
Diffstat (limited to 'src/game/GameModel.cpp')
| -rw-r--r-- | src/game/GameModel.cpp | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/game/GameModel.cpp b/src/game/GameModel.cpp index 3da3074..e88a1aa 100644 --- a/src/game/GameModel.cpp +++ b/src/game/GameModel.cpp @@ -239,6 +239,7 @@ void GameModel::BuildMenus() activeTools[0] = menuList[SC_POWDERS]->GetToolList()[0]; activeTools[1] = menuList[SC_SPECIAL]->GetToolList()[0]; activeTools[2] = NULL; + lastTool = activeTools[0]; //Set default menu activeMenu = menuList[SC_POWDERS]; @@ -247,6 +248,7 @@ void GameModel::BuildMenus() notifyMenuListChanged(); notifyToolListChanged(); notifyActiveToolsChanged(); + notifyLastToolChanged(); } void GameModel::SetVote(int direction) @@ -293,6 +295,7 @@ void GameModel::AddObserver(GameView * observer){ observer->NotifyColourSelectorVisibilityChanged(this); observer->NotifyColourSelectorColourChanged(this); observer->NotifyQuickOptionsChanged(this); + observer->NotifyLastToolChanged(this); UpdateQuickOptions(); } @@ -429,6 +432,20 @@ User GameModel::GetUser() return currentUser; } +Tool * GameModel::GetLastTool() +{ + return lastTool; +} + +void GameModel::SetLastTool(Tool * newTool) +{ + if(lastTool != newTool) + { + lastTool = newTool; + notifyLastToolChanged(); + } +} + void GameModel::SetZoomEnabled(bool enabled) { ren->zoomEnabled = enabled; @@ -823,3 +840,11 @@ void GameModel::notifyQuickOptionsChanged() observers[i]->NotifyQuickOptionsChanged(this); } } + +void GameModel::notifyLastToolChanged() +{ + for(int i = 0; i < observers.size(); i++) + { + observers[i]->NotifyLastToolChanged(this); + } +} |
