diff options
Diffstat (limited to 'src/game/GameController.cpp')
| -rw-r--r-- | src/game/GameController.cpp | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/src/game/GameController.cpp b/src/game/GameController.cpp index 99315b0..96f966c 100644 --- a/src/game/GameController.cpp +++ b/src/game/GameController.cpp @@ -925,9 +925,25 @@ void GameController::OpenLocalSaveWindow() } else { - SaveFile tempSave(""); + std::string filename = ""; + if (gameModel->GetFile()) + filename = gameModel->GetFile()->GetDisplayName(); + SaveFile tempSave(filename); tempSave.SetGameSave(gameSave); - new LocalSaveActivity(tempSave); + + class LocalSaveCallback: public FileSavedCallback + { + GameController * c; + public: + LocalSaveCallback(GameController * _c): c(_c) {} + virtual ~LocalSaveCallback() {}; + virtual void FileSaved(SaveFile* file) + { + c->gameModel->SetSaveFile(file); + } + }; + + new LocalSaveActivity(tempSave, new LocalSaveCallback(this)); } } @@ -1193,6 +1209,10 @@ void GameController::ReloadSim() { gameModel->SetSave(gameModel->GetSave()); } + else if(gameModel->GetFile() && gameModel->GetFile()->GetGameSave()) + { + gameModel->SetSaveFile(gameModel->GetFile()); + } } std::string GameController::ElementResolve(int type) |
