diff options
| author | Simon Robertshaw <simon@hardwired.org.uk> | 2012-06-20 12:40:34 (GMT) |
|---|---|---|
| committer | Simon Robertshaw <simon@hardwired.org.uk> | 2012-06-20 12:40:34 (GMT) |
| commit | e81e18238df47212d84fa00422a64983857e1ea1 (patch) | |
| tree | 67c973f1f3666f9f4b230524575cda5dd6cc4cd6 /src/game/GameModel.cpp | |
| parent | 2be9c925088c16beb144dd9932202416d00ff581 (diff) | |
| parent | f6403958de1f67d3bce47f56b40de254c30f5ba4 (diff) | |
| download | powder-e81e18238df47212d84fa00422a64983857e1ea1.zip powder-e81e18238df47212d84fa00422a64983857e1ea1.tar.gz | |
Merge branch 'master' of github.com:FacialTurd/PowderToypp
Diffstat (limited to 'src/game/GameModel.cpp')
| -rw-r--r-- | src/game/GameModel.cpp | 32 |
1 files changed, 20 insertions, 12 deletions
diff --git a/src/game/GameModel.cpp b/src/game/GameModel.cpp index 054a415..7a1d231 100644 --- a/src/game/GameModel.cpp +++ b/src/game/GameModel.cpp @@ -170,10 +170,6 @@ GameModel::~GameModel() for(int i = 0; i < menuList.size(); i++) { - for(int j = 0; i < menuList[i]->GetToolList().size(); i++) - { - delete menuList[i]->GetToolList()[j]; - } delete menuList[i]; } for(int i = 0; i < brushList.size(); i++) @@ -186,6 +182,8 @@ GameModel::~GameModel() delete clipboard; if(stamp) delete stamp; + if(currentSave) + delete currentSave; //if(activeTools) // delete[] activeTools; } @@ -282,8 +280,15 @@ SaveInfo * GameModel::GetSave() void GameModel::SetSave(SaveInfo * newSave) { if(currentSave != newSave) - delete currentSave; - currentSave = newSave; + { + if(currentSave) + delete currentSave; + if(newSave == NULL) + currentSave = NULL; + else + currentSave = new SaveInfo(*newSave); + } + if(currentSave && currentSave->GetGameSave()) { GameSave * saveData = currentSave->GetGameSave(); @@ -451,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) |
