diff options
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) |
