diff options
| author | Simon 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) |
| commit | f6403958de1f67d3bce47f56b40de254c30f5ba4 (patch) | |
| tree | 82066d5e316a603b323674e97466017a93e0c8ea /src/game/GameModel.cpp | |
| parent | 8c608ee8b9d5d4913eb3a851cfd9c6f0a87e105d (diff) | |
| download | powder-f6403958de1f67d3bce47f56b40de254c30f5ba4.zip powder-f6403958de1f67d3bce47f56b40de254c30f5ba4.tar.gz | |
Fix stamp and save assignment
Diffstat (limited to 'src/game/GameModel.cpp')
| -rw-r--r-- | src/game/GameModel.cpp | 28 |
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) |
