diff options
| author | Simon Robertshaw <simon@hardwired.org.uk> | 2012-01-28 19:56:13 (GMT) |
|---|---|---|
| committer | Simon Robertshaw <simon@hardwired.org.uk> | 2012-01-28 19:56:13 (GMT) |
| commit | 7c53ca7799832920066c23cfad2f1d7fa82233c7 (patch) | |
| tree | a29fab25e584fb7f0d3705f13ac0a97abaae122a /src/game/GameModel.cpp | |
| parent | 28d4aecb6c31ac1e450c1f073a0db13437d9d5d1 (diff) | |
| download | powder-7c53ca7799832920066c23cfad2f1d7fa82233c7.zip powder-7c53ca7799832920066c23cfad2f1d7fa82233c7.tar.gz | |
Voting, fix save browser
Diffstat (limited to 'src/game/GameModel.cpp')
| -rw-r--r-- | src/game/GameModel.cpp | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/src/game/GameModel.cpp b/src/game/GameModel.cpp index 456d9c4..34cae1d 100644 --- a/src/game/GameModel.cpp +++ b/src/game/GameModel.cpp @@ -6,14 +6,15 @@ #include "interface/Point.h" #include "Brush.h" #include "EllipseBrush.h" +#include "client/Client.h" GameModel::GameModel(): activeTool(NULL), sim(NULL), ren(NULL), - currentSave(NULL), currentBrush(0), - currentUser(0, "") + currentUser(0, ""), + currentSave(NULL) { sim = new Simulation(); ren = new Renderer(ui::Engine::Ref().g, sim); @@ -66,6 +67,19 @@ GameModel::~GameModel() delete activeTool; } +void GameModel::SetVote(int direction) +{ + if(currentSave) + { + RequestStatus status = Client::Ref().ExecVote(currentSave->GetID(), direction); + if(status == RequestOkay) + { + currentSave->vote = direction; + notifySaveChanged(); + } + } +} + Brush * GameModel::GetBrush() { return brushList[currentBrush]; @@ -140,8 +154,13 @@ Save * GameModel::GetSave() void GameModel::SetSave(Save * newSave) { + if(currentSave) + delete currentSave; currentSave = newSave; - sim->Load(currentSave->GetData(), currentSave->GetDataLength()); + if(currentSave) + { + sim->Load(currentSave->GetData(), currentSave->GetDataLength()); + } notifySaveChanged(); } @@ -218,6 +237,7 @@ int GameModel::GetZoomFactor() void GameModel::SetUser(User user) { currentUser = user; + Client::Ref().SetAuthUser(user); notifyUserChanged(); } |
