diff options
| author | Simon Robertshaw <simon@hardwired.org.uk> | 2012-06-07 13:23:26 (GMT) |
|---|---|---|
| committer | Simon Robertshaw <simon@hardwired.org.uk> | 2012-06-07 13:23:26 (GMT) |
| commit | 61ed6e0276d580515d0acf5ddb96b1db95b9b191 (patch) | |
| tree | 65d9ad219e0b0f6bb1a81813c1888888f2cbd7a4 /src/game/GameModel.cpp | |
| parent | 2e48fc6115ebe0d294a2c7ff7fe8774217676f44 (diff) | |
| download | powder-61ed6e0276d580515d0acf5ddb96b1db95b9b191.zip powder-61ed6e0276d580515d0acf5ddb96b1db95b9b191.tar.gz | |
Rename Save class to SaveInfo, introduce SaveFile for hanlding of local data (stamps and local saves). Rename Stamps browser to LocalBrowser, ready for sharing code with the local save browser
Diffstat (limited to 'src/game/GameModel.cpp')
| -rw-r--r-- | src/game/GameModel.cpp | 27 |
1 files changed, 7 insertions, 20 deletions
diff --git a/src/game/GameModel.cpp b/src/game/GameModel.cpp index 966eca7..9e655f9 100644 --- a/src/game/GameModel.cpp +++ b/src/game/GameModel.cpp @@ -263,20 +263,19 @@ vector<Menu*> GameModel::GetMenuList() return menuList; } -Save * GameModel::GetSave() +SaveInfo * GameModel::GetSave() { return currentSave; } -void GameModel::SetSave(Save * newSave) +void GameModel::SetSave(SaveInfo * newSave) { if(currentSave) delete currentSave; currentSave = newSave; if(currentSave) { - GameSave * newSave = new GameSave((char*)currentSave->GetData(), currentSave->GetDataLength()); - int returnVal = sim->Load(newSave); + int returnVal = sim->Load(currentSave->GetGameSave()); if(returnVal){ delete currentSave; currentSave = NULL; @@ -430,15 +429,11 @@ void GameModel::ClearSimulation() sim->clear_sim(); } -void GameModel::SetStamp(Save * save) +void GameModel::SetStamp(GameSave * save) { if(stamp) delete stamp; - try { - stamp = new GameSave((char*)save->GetData(), save->GetDataLength()); - } catch (ParseException& e) { - stamp = NULL; - } + stamp = new GameSave(*save); notifyStampChanged(); } @@ -446,16 +441,8 @@ void GameModel::AddStamp(GameSave * save) { if(stamp) delete stamp; - stamp = save; - - char * saveData; - int saveSize; - saveData = save->Serialise(saveSize); - Save * tempSave = new Save(0, 0, 0, 0, "", ""); - tempSave->SetData((unsigned char*)saveData, saveSize); - Client::Ref().AddStamp(tempSave); - delete tempSave; - + stamp = new GameSave(*save); + Client::Ref().AddStamp(save); notifyClipboardChanged(); } |
