summaryrefslogtreecommitdiff
path: root/src/game/GameController.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/game/GameController.cpp')
-rw-r--r--src/game/GameController.cpp24
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)