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.cpp27
1 files changed, 17 insertions, 10 deletions
diff --git a/src/game/GameController.cpp b/src/game/GameController.cpp
index 73e59a5..c652298 100644
--- a/src/game/GameController.cpp
+++ b/src/game/GameController.cpp
@@ -331,21 +331,28 @@ void GameController::OpenSaveWindow()
{
if(gameModel->GetUser().ID)
{
- if(gameModel->GetSave())
+ int tempSaveLength;
+ unsigned char * tempData = gameModel->GetSimulation()->Save(tempSaveLength);
+ if(!tempData)
{
- Save tempSave(*gameModel->GetSave());
- int tempSaveLength;
- tempSave.SetData(gameModel->GetSimulation()->Save(tempSaveLength));
- ssave = new SSaveController(new SSaveCallback(this), tempSave);
+ new ErrorMessage("Error", "Unable to build save.");
}
else
{
- Save tempSave(0, 0, 0, 0, gameModel->GetUser().Username, "");
- int tempSaveLength;
- tempSave.SetData(gameModel->GetSimulation()->Save(tempSaveLength));
- ssave = new SSaveController(new SSaveCallback(this), tempSave);
+ if(gameModel->GetSave())
+ {
+ Save tempSave(*gameModel->GetSave());
+ tempSave.SetData(tempData, tempSaveLength);
+ ssave = new SSaveController(new SSaveCallback(this), tempSave);
+ }
+ else
+ {
+ Save tempSave(0, 0, 0, 0, gameModel->GetUser().Username, "");
+ tempSave.SetData(tempData, tempSaveLength);
+ ssave = new SSaveController(new SSaveCallback(this), tempSave);
+ }
+ ui::Engine::Ref().ShowWindow(ssave->GetView());
}
- ui::Engine::Ref().ShowWindow(ssave->GetView());
}
else
{