diff options
| author | Simon Robertshaw <simon@hardwired.org.uk> | 2012-08-06 21:24:10 (GMT) |
|---|---|---|
| committer | Simon Robertshaw <simon@hardwired.org.uk> | 2012-08-06 21:24:10 (GMT) |
| commit | a8dcc7a07016dde7299e1ce44ad5f4ea0d28149e (patch) | |
| tree | 96e2d1d17f1a0a0a28427f3490532627c2e68bdc /src/game/GameController.cpp | |
| parent | 9c1c4119d3b8700ea642dba24977ecf15608f383 (diff) | |
| download | powder-a8dcc7a07016dde7299e1ce44ad5f4ea0d28149e.zip powder-a8dcc7a07016dde7299e1ce44ad5f4ea0d28149e.tar.gz | |
Started work on save as current name
Diffstat (limited to 'src/game/GameController.cpp')
| -rw-r--r-- | src/game/GameController.cpp | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/src/game/GameController.cpp b/src/game/GameController.cpp index 2ca447d..ca5c839 100644 --- a/src/game/GameController.cpp +++ b/src/game/GameController.cpp @@ -837,6 +837,61 @@ void GameController::OpenSaveWindow() } } +void GameController::SaveAsCurrent() +{ + + class SaveUploadedCallback: public ServerSaveActivity::SaveUploadedCallback + { + GameController * c; + public: + SaveUploadedCallback(GameController * _c): c(_c) {} + virtual ~SaveUploadedCallback() {}; + virtual void SaveUploaded(SaveInfo save) + { + //Don't do anything + //c->LoadSave(&save); + } + }; + if(gameModel->GetSave() && gameModel->GetUser().Username != gameModel->GetSave()->GetUserName()) + { + OpenSaveWindow(); + } + if(gameModel->GetUser().ID) + { + Simulation * sim = gameModel->GetSimulation(); + GameSave * gameSave = sim->Save(); + gameSave->paused = gameModel->GetPaused(); + gameSave->gravityMode = sim->gravityMode; + gameSave->airMode = sim->air->airMode; + gameSave->legacyEnable = sim->legacy_enable; + gameSave->waterEEnabled = sim->water_equal_test; + gameSave->gravityEnable = sim->grav->ngrav_enable; + if(!gameSave) + { + new ErrorMessage("Error", "Unable to build save."); + } + else + { + if(gameModel->GetSave()) + { + SaveInfo tempSave(*gameModel->GetSave()); + tempSave.SetGameSave(gameSave); + new ServerSaveActivity(tempSave, true, new SaveUploadedCallback(this)); + } + else + { + SaveInfo tempSave(0, 0, 0, 0, gameModel->GetUser().Username, ""); + tempSave.SetGameSave(gameSave); + new ServerSaveActivity(tempSave, true, new SaveUploadedCallback(this)); + } + } + } + else + { + new ErrorMessage("Error", "You need to login to upload saves."); + } +} + void GameController::FrameStep() { gameModel->FrameStep(1); |
