diff options
Diffstat (limited to 'src/game')
| -rw-r--r-- | src/game/GameController.cpp | 35 | ||||
| -rw-r--r-- | src/game/GameController.h | 4 | ||||
| -rw-r--r-- | src/game/GameModel.cpp | 27 | ||||
| -rw-r--r-- | src/game/GameModel.h | 10 |
4 files changed, 30 insertions, 46 deletions
diff --git a/src/game/GameController.cpp b/src/game/GameController.cpp index dff6c18..01cf1de 100644 --- a/src/game/GameController.cpp +++ b/src/game/GameController.cpp @@ -4,7 +4,7 @@ #include "Config.h" #include "GameController.h" #include "GameModel.h" -#include "search/Save.h" +#include "client/SaveInfo.h" #include "search/SearchController.h" #include "render/RenderController.h" #include "login/LoginController.h" @@ -37,7 +37,7 @@ public: { try { - cc->gameModel->SetSave(new Save(*(cc->search->GetLoadedSave()))); + cc->gameModel->SetSave(new SaveInfo(*(cc->search->GetLoadedSave()))); } catch(GameModelException & ex) { @@ -79,7 +79,7 @@ public: { if(cc->ssave->GetSaveUploaded()) { - cc->gameModel->SetSave(new Save(*(cc->ssave->GetSave()))); + cc->gameModel->SetSave(new SaveInfo(*(cc->ssave->GetSave()))); } //cc->gameModel->SetUser(cc->loginWindow->GetUser()); @@ -93,7 +93,7 @@ public: TagsCallback(GameController * cc_) { cc = cc_; } virtual void ControllerExit() { - cc->gameModel->SetSave(new Save(*(cc->tagsWindow->GetSave()))); + cc->gameModel->SetSave(new SaveInfo(*(cc->tagsWindow->GetSave()))); } }; @@ -104,9 +104,9 @@ public: StampsCallback(GameController * cc_) { cc = cc_; } virtual void ControllerExit() { - if(cc->stamps->GetStamp()) + if(cc->localBrowser->GetSave()) { - cc->gameModel->SetStamp(cc->stamps->GetStamp()); + cc->gameModel->SetStamp(cc->localBrowser->GetSave()->GetGameSave()); } else cc->gameModel->SetStamp(NULL); @@ -501,8 +501,8 @@ void GameController::OpenTags() void GameController::OpenStamps() { - stamps = new StampsController(new StampsCallback(this)); - ui::Engine::Ref().ShowWindow(stamps->GetView()); + localBrowser = new LocalBrowserController(new StampsCallback(this)); + ui::Engine::Ref().ShowWindow(localBrowser->GetView()); } void GameController::OpenOptions() @@ -529,25 +529,23 @@ void GameController::OpenSaveWindow() { if(gameModel->GetUser().ID) { - GameSave * tempSave = gameModel->GetSimulation()->Save(); - if(!tempSave) + GameSave * gameSave = gameModel->GetSimulation()->Save(); + if(!gameSave) { new ErrorMessage("Error", "Unable to build save."); } else { - int dataSize; - unsigned char * tempData = (unsigned char*)tempSave->Serialise(dataSize); if(gameModel->GetSave()) { - Save tempSave(*gameModel->GetSave()); - tempSave.SetData(tempData, dataSize); + SaveInfo tempSave(*gameModel->GetSave()); + tempSave.SetGameSave(gameSave); ssave = new SSaveController(new SSaveCallback(this), tempSave); } else { - Save tempSave(0, 0, 0, 0, gameModel->GetUser().Username, ""); - tempSave.SetData(tempData, dataSize); + SaveInfo tempSave(0, 0, 0, 0, gameModel->GetUser().Username, ""); + tempSave.SetGameSave(gameSave); ssave = new SSaveController(new SSaveCallback(this), tempSave); } ui::Engine::Ref().ShowWindow(ssave->GetView()); @@ -584,10 +582,9 @@ void GameController::ClearSim() void GameController::ReloadSim() { - if(gameModel->GetSave() && gameModel->GetSave()->GetData()) + if(gameModel->GetSave() && gameModel->GetSave()->GetGameSave()) { - GameSave * newSave = new GameSave((char*)gameModel->GetSave()->GetData(), gameModel->GetSave()->GetDataLength()); - gameModel->GetSimulation()->Load(newSave); + gameModel->GetSimulation()->Load(gameModel->GetSave()->GetGameSave()); } } diff --git a/src/game/GameController.h b/src/game/GameController.h index bb6e61a..25705bc 100644 --- a/src/game/GameController.h +++ b/src/game/GameController.h @@ -12,7 +12,7 @@ #include "ssave/SSaveController.h" #include "tags/TagsController.h" #include "console/ConsoleController.h" -#include "stamps/StampsController.h" +#include "localbrowser/LocalBrowserController.h" //#include "cat/TPTScriptInterface.h" #include "cat/LuaScriptInterface.h" #include "options/OptionsController.h" @@ -36,7 +36,7 @@ private: SSaveController * ssave; ConsoleController * console; TagsController * tagsWindow; - StampsController * stamps; + LocalBrowserController * localBrowser; OptionsController * options; CommandInterface * commandInterface; public: 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(); } diff --git a/src/game/GameModel.h b/src/game/GameModel.h index c038493..5c8b0aa 100644 --- a/src/game/GameModel.h +++ b/src/game/GameModel.h @@ -3,7 +3,7 @@ #include <vector> #include <deque> -#include "search/Save.h" +#include "client/SaveInfo.h" #include "simulation/Simulation.h" #include "interface/Colour.h" #include "Renderer.h" @@ -43,7 +43,7 @@ private: Menu * activeMenu; int currentBrush; vector<Brush *> brushList; - Save * currentSave; + SaveInfo * currentSave; Simulation * sim; Renderer * ren; Tool * activeTools[3]; @@ -78,9 +78,9 @@ public: ui::Colour GetColourSelectorColour(); void SetVote(int direction); - Save * GetSave(); + SaveInfo * GetSave(); Brush * GetBrush(); - void SetSave(Save * newSave); + void SetSave(SaveInfo * newSave); void AddObserver(GameView * observer); Tool * GetActiveTool(int selection); void SetActiveTool(int selection, Tool * tool); @@ -110,7 +110,7 @@ public: ui::Point GetZoomPosition(); void SetZoomWindowPosition(ui::Point position); ui::Point GetZoomWindowPosition(); - void SetStamp(Save * newStamp); + void SetStamp(GameSave * newStamp); void AddStamp(GameSave * save); void SetClipboard(GameSave * save); void Log(string message); |
