summaryrefslogtreecommitdiff
path: root/src/game/GameModel.cpp
diff options
context:
space:
mode:
authorSimon Robertshaw <simon@hardwired.org.uk>2012-06-18 17:06:40 (GMT)
committer Simon Robertshaw <simon@hardwired.org.uk>2012-06-18 17:06:40 (GMT)
commitf6403958de1f67d3bce47f56b40de254c30f5ba4 (patch)
tree82066d5e316a603b323674e97466017a93e0c8ea /src/game/GameModel.cpp
parent8c608ee8b9d5d4913eb3a851cfd9c6f0a87e105d (diff)
downloadpowder-f6403958de1f67d3bce47f56b40de254c30f5ba4.zip
powder-f6403958de1f67d3bce47f56b40de254c30f5ba4.tar.gz
Fix stamp and save assignment
Diffstat (limited to 'src/game/GameModel.cpp')
-rw-r--r--src/game/GameModel.cpp28
1 files changed, 17 insertions, 11 deletions
diff --git a/src/game/GameModel.cpp b/src/game/GameModel.cpp
index 2a18d6b..80d7d89 100644
--- a/src/game/GameModel.cpp
+++ b/src/game/GameModel.cpp
@@ -280,11 +280,14 @@ SaveInfo * GameModel::GetSave()
void GameModel::SetSave(SaveInfo * newSave)
{
if(currentSave != newSave)
- delete currentSave;
- if(newSave == NULL)
- currentSave = NULL;
- else if(currentSave != newSave)
- currentSave = new SaveInfo(*newSave);
+ {
+ if(currentSave)
+ delete currentSave;
+ if(newSave == NULL)
+ currentSave = NULL;
+ else
+ currentSave = new SaveInfo(*newSave);
+ }
if(currentSave && currentSave->GetGameSave())
{
@@ -453,12 +456,15 @@ void GameModel::ClearSimulation()
void GameModel::SetStamp(GameSave * save)
{
- if(stamp)
- delete stamp;
- if(save)
- stamp = new GameSave(*save);
- else
- stamp = NULL;
+ if(stamp != save)
+ {
+ if(stamp)
+ delete stamp;
+ if(save)
+ stamp = new GameSave(*save);
+ else
+ stamp = NULL;
+ }
}
void GameModel::SetPlaceSave(GameSave * save)