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 | |
| 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')
| -rw-r--r-- | src/game/Brush.h | 12 | ||||
| -rw-r--r-- | src/game/EllipseBrush.h | 4 | ||||
| -rw-r--r-- | src/game/GameController.cpp | 3 | ||||
| -rw-r--r-- | src/game/GameModel.cpp | 32 | ||||
| -rw-r--r-- | src/game/Menu.h | 9 |
5 files changed, 39 insertions, 21 deletions
diff --git a/src/game/Brush.h b/src/game/Brush.h index 34354c0..0adcd95 100644 --- a/src/game/Brush.h +++ b/src/game/Brush.h @@ -25,8 +25,8 @@ protected: if(!bitmap) return; if(outline) - free(outline); - outline = (unsigned char *)calloc(size.X*size.Y, sizeof(unsigned char)); + delete[] outline; + outline = new unsigned char[size.X*size.Y]; for(int x = 0; x < size.X; x++) { for(int y = 0; y < size.Y; y++) @@ -69,9 +69,9 @@ public: } virtual ~Brush() { if(bitmap) - delete bitmap; + delete[] bitmap; if(outline) - delete outline; + delete[] outline; } virtual void RenderRect(Graphics * g, ui::Point position1, ui::Point position2) { @@ -109,8 +109,8 @@ public: virtual void GenerateBitmap() { if(bitmap) - free(bitmap); - bitmap = (unsigned char *)calloc((size.X*size.Y), sizeof(unsigned char)); + delete[] bitmap; + bitmap = new unsigned char[size.X*size.Y]; for(int x = 0; x < size.X; x++) { for(int y = 0; y < size.Y; y++) diff --git a/src/game/EllipseBrush.h b/src/game/EllipseBrush.h index a02516e..9a75dfb 100644 --- a/src/game/EllipseBrush.h +++ b/src/game/EllipseBrush.h @@ -22,8 +22,8 @@ public: virtual void GenerateBitmap() { if(bitmap) - free(bitmap); - bitmap = (unsigned char*)calloc((size.X*size.Y), sizeof(unsigned char)); + delete[] bitmap; + bitmap = new unsigned char[size.X*size.Y]; int rx = radius.X; int ry = radius.Y; for(int x = 0; x <= radius.X*2; x++) diff --git a/src/game/GameController.cpp b/src/game/GameController.cpp index dfbd935..6ed6e0f 100644 --- a/src/game/GameController.cpp +++ b/src/game/GameController.cpp @@ -39,7 +39,7 @@ public: { try { - cc->gameModel->SetSave(new SaveInfo(*(cc->search->GetLoadedSave()))); + cc->gameModel->SetSave(cc->search->GetLoadedSave()); } catch(GameModelException & ex) { @@ -163,6 +163,7 @@ GameController::~GameController() ui::Engine::Ref().CloseWindow(); } delete gameModel; + delete gameView; } GameView * GameController::GetView() 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) diff --git a/src/game/Menu.h b/src/game/Menu.h index 1824190..261193e 100644 --- a/src/game/Menu.h +++ b/src/game/Menu.h @@ -24,6 +24,15 @@ public: } + virtual ~Menu() + { + for(int i = 0; i < tools.size(); i++) + { + delete tools[i]; + } + tools.clear(); + } + vector<Tool*> GetToolList() { return tools; |
