diff options
Diffstat (limited to 'src/game/GameModel.cpp')
| -rw-r--r-- | src/game/GameModel.cpp | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/src/game/GameModel.cpp b/src/game/GameModel.cpp index 49e031f..f905a1c 100644 --- a/src/game/GameModel.cpp +++ b/src/game/GameModel.cpp @@ -22,6 +22,7 @@ GameModel::GameModel(): currentBrush(0), currentUser(0, ""), currentSave(NULL), + currentFile(NULL), colourSelector(false), clipboard(NULL), stamp(NULL), @@ -159,6 +160,8 @@ GameModel::~GameModel() delete stamp; if(currentSave) delete currentSave; + if(currentFile) + delete currentFile; //if(activeTools) // delete[] activeTools; } @@ -536,6 +539,9 @@ void GameModel::SetSave(SaveInfo * newSave) else currentSave = new SaveInfo(*newSave); } + if(currentFile) + delete currentFile; + currentFile = NULL; if(currentSave && currentSave->GetGameSave()) { @@ -558,9 +564,25 @@ void GameModel::SetSave(SaveInfo * newSave) UpdateQuickOptions(); } +SaveFile * GameModel::GetFile() +{ + return currentFile; +} + void GameModel::SetSaveFile(SaveFile * newSave) { - SetSave(NULL); + if(currentFile != newSave) + { + if(currentFile) + delete currentFile; + if(newSave == NULL) + currentFile = NULL; + else + currentFile = new SaveFile(*newSave); + } + if (currentSave) + delete currentSave; + currentSave = NULL; if(newSave && newSave->GetGameSave()) { |
