summaryrefslogtreecommitdiff
path: root/src/game/GameModel.cpp
diff options
context:
space:
mode:
authorSimon Robertshaw <simon@hardwired.org.uk>2012-08-10 17:59:05 (GMT)
committer Simon Robertshaw <simon@hardwired.org.uk>2012-08-10 17:59:05 (GMT)
commit3499cb3035e64ed91adfbabdfa9b979e9f8e0885 (patch)
tree1036f4f2fab5301981457a07a8a39df5021fe727 /src/game/GameModel.cpp
parentcd051924d9ca6d5c39e02111bc311fda9126435e (diff)
downloadpowder-3499cb3035e64ed91adfbabdfa9b979e9f8e0885.zip
powder-3499cb3035e64ed91adfbabdfa9b979e9f8e0885.tar.gz
Wall brush, fixes #63
Diffstat (limited to 'src/game/GameModel.cpp')
-rw-r--r--src/game/GameModel.cpp25
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);
+ }
+}