summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSimon 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)
commite81e18238df47212d84fa00422a64983857e1ea1 (patch)
tree67c973f1f3666f9f4b230524575cda5dd6cc4cd6 /src
parent2be9c925088c16beb144dd9932202416d00ff581 (diff)
parentf6403958de1f67d3bce47f56b40de254c30f5ba4 (diff)
downloadpowder-e81e18238df47212d84fa00422a64983857e1ea1.zip
powder-e81e18238df47212d84fa00422a64983857e1ea1.tar.gz
Merge branch 'master' of github.com:FacialTurd/PowderToypp
Diffstat (limited to 'src')
-rw-r--r--src/client/GameSave.cpp41
-rw-r--r--src/console/ConsoleController.cpp7
-rw-r--r--src/game/Brush.h12
-rw-r--r--src/game/EllipseBrush.h4
-rw-r--r--src/game/GameController.cpp3
-rw-r--r--src/game/GameModel.cpp32
-rw-r--r--src/game/Menu.h9
-rw-r--r--src/interface/Textblock.cpp7
-rw-r--r--src/interface/Textbox.cpp4
-rw-r--r--src/localbrowser/LocalBrowserController.cpp7
-rw-r--r--src/login/LoginController.cpp1
-rw-r--r--src/options/OptionsController.cpp3
-rw-r--r--src/preview/PreviewController.cpp3
-rw-r--r--src/render/RenderController.cpp3
-rw-r--r--src/search/SearchController.cpp1
-rw-r--r--src/search/SearchView.cpp7
-rw-r--r--src/simulation/Simulation.cpp4
-rw-r--r--src/ssave/SSaveController.cpp4
-rw-r--r--src/tags/TagsController.cpp7
19 files changed, 108 insertions, 51 deletions
diff --git a/src/client/GameSave.cpp b/src/client/GameSave.cpp
index 46a600f..a7b9fbf 100644
--- a/src/client/GameSave.cpp
+++ b/src/client/GameSave.cpp
@@ -22,6 +22,8 @@ gravityMode(save.gravityMode),
airMode(save.airMode),
signs(save.signs)
{
+ blockMap, blockMapPtr, fanVelX, fanVelXPtr, fanVelY, fanVelYPtr, particles = NULL;
+
setSize(save.blockWidth, save.blockHeight);
particlesCount = save.particlesCount;
@@ -33,6 +35,7 @@ signs(save.signs)
GameSave::GameSave(int width, int height)
{
+ blockMap, blockMapPtr, fanVelX, fanVelXPtr, fanVelY, fanVelYPtr, particles = NULL;
setSize(width, height);
}
@@ -702,6 +705,8 @@ fin:
bson_destroy(&b);
if(freeIndices)
free(freeIndices);
+ if(partsSimIndex)
+ free(partsSimIndex);
}
void GameSave::readPSv(char * data, int dataLength)
@@ -1672,26 +1677,18 @@ fin:
GameSave::~GameSave()
{
- if(blockWidth && blockHeight)
- {
- if(particles)
- {
- delete[] particles;
- }
- if(blockMap)
- {
- delete[] blockMapPtr;
- delete[] blockMap;
- }
- if(fanVelX)
- {
- delete[] fanVelXPtr;
- delete[] fanVelX;
- }
- if(fanVelY)
- {
- delete[] fanVelYPtr;
- delete[] fanVelY;
- }
- }
+ if(particles)
+ delete[] particles;
+ if(blockMap)
+ delete[] blockMap;
+ if(blockMapPtr)
+ delete[] blockMapPtr;
+ if(fanVelX)
+ delete[] fanVelX;
+ if(fanVelXPtr)
+ delete[] fanVelXPtr;
+ if(fanVelY)
+ delete[] fanVelY;
+ if(fanVelYPtr)
+ delete[] fanVelYPtr;
}
diff --git a/src/console/ConsoleController.cpp b/src/console/ConsoleController.cpp
index 7f1975d..618137d 100644
--- a/src/console/ConsoleController.cpp
+++ b/src/console/ConsoleController.cpp
@@ -70,6 +70,11 @@ ConsoleView * ConsoleController::GetView()
}
ConsoleController::~ConsoleController() {
- // TODO Auto-generated destructor stub
+ if(ui::Engine::Ref().GetWindow() == consoleView)
+ ui::Engine::Ref().CloseWindow();
+ if(callback)
+ delete callback;
+ delete consoleModel;
+ delete consoleView;
}
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;
diff --git a/src/interface/Textblock.cpp b/src/interface/Textblock.cpp
index c378925..f003a6a 100644
--- a/src/interface/Textblock.cpp
+++ b/src/interface/Textblock.cpp
@@ -28,8 +28,8 @@ void Textblock::SetText(std::string text)
void Textblock::updateMultiline()
{
- char * rawText = (char*)malloc(text.length()+1);
- memcpy(rawText, text.c_str(), text.length());
+ char * rawText = new char[text.length()+1];
+ std::copy(text.begin(), text.end(), rawText);
rawText[text.length()] = 0;
int lines = 1;
@@ -60,7 +60,8 @@ void Textblock::updateMultiline()
{
Size.Y = lines*12;
}
- textLines = rawText;
+ textLines = std::string(rawText);
+ delete[] rawText;
}
void Textblock::Draw(const Point &screenPos)
diff --git a/src/interface/Textbox.cpp b/src/interface/Textbox.cpp
index 4c0e267..4ea5bd0 100644
--- a/src/interface/Textbox.cpp
+++ b/src/interface/Textbox.cpp
@@ -129,10 +129,10 @@ void Textbox::OnKeyPress(int key, Uint16 character, bool shift, bool ctrl, bool
{
if(masked)
{
- char * tempText = new char[text.length()];
+ char * tempText = new char[text.length()+1];
std::fill(tempText, tempText+text.length(), 0x8d);
tempText[text.length()] = 0;
- displayText = tempText;
+ displayText = std::string(tempText);
delete tempText;
}
else
diff --git a/src/localbrowser/LocalBrowserController.cpp b/src/localbrowser/LocalBrowserController.cpp
index a66715a..7eca5d3 100644
--- a/src/localbrowser/LocalBrowserController.cpp
+++ b/src/localbrowser/LocalBrowserController.cpp
@@ -130,6 +130,11 @@ void LocalBrowserController::Exit()
}
LocalBrowserController::~LocalBrowserController() {
- // TODO Auto-generated destructor stub
+ if(ui::Engine::Ref().GetWindow() == browserView)
+ ui::Engine::Ref().CloseWindow();
+ if(callback)
+ delete callback;
+ delete localBrowserModel;
+ delete localBrowserView;
}
diff --git a/src/login/LoginController.cpp b/src/login/LoginController.cpp
index af1a66a..a44e9ea 100644
--- a/src/login/LoginController.cpp
+++ b/src/login/LoginController.cpp
@@ -49,5 +49,6 @@ LoginController::~LoginController() {
ui::Engine::Ref().CloseWindow();
}
delete loginModel;
+ delete loginView;
}
diff --git a/src/options/OptionsController.cpp b/src/options/OptionsController.cpp
index 85f2a2f..f007316 100644
--- a/src/options/OptionsController.cpp
+++ b/src/options/OptionsController.cpp
@@ -70,5 +70,8 @@ OptionsController::~OptionsController() {
ui::Engine::Ref().CloseWindow();
}
delete model;
+ delete view;
+ if(callback)
+ delete callback;
}
diff --git a/src/preview/PreviewController.cpp b/src/preview/PreviewController.cpp
index 6490b50..22913d7 100644
--- a/src/preview/PreviewController.cpp
+++ b/src/preview/PreviewController.cpp
@@ -103,5 +103,8 @@ PreviewController::~PreviewController() {
ui::Engine::Ref().CloseWindow();
}
delete previewModel;
+ delete previewView;
+ if(callback)
+ delete callback;
}
diff --git a/src/render/RenderController.cpp b/src/render/RenderController.cpp
index c77f381..75227cd 100644
--- a/src/render/RenderController.cpp
+++ b/src/render/RenderController.cpp
@@ -61,6 +61,9 @@ RenderController::~RenderController() {
{
ui::Engine::Ref().CloseWindow();
}
+ if(callback)
+ delete callback;
delete renderModel;
+ delete renderView;
}
diff --git a/src/search/SearchController.cpp b/src/search/SearchController.cpp
index aff9636..68fe978 100644
--- a/src/search/SearchController.cpp
+++ b/src/search/SearchController.cpp
@@ -89,6 +89,7 @@ SearchController::~SearchController()
ui::Engine::Ref().CloseWindow();
}
delete searchModel;
+ delete searchView;
}
void SearchController::DoSearch(std::string query)
diff --git a/src/search/SearchView.cpp b/src/search/SearchView.cpp
index 47392fa..2c56ae0 100644
--- a/src/search/SearchView.cpp
+++ b/src/search/SearchView.cpp
@@ -210,6 +210,13 @@ void SearchView::doSearch()
SearchView::~SearchView()
{
+ RemoveComponent(nextButton);
+ RemoveComponent(previousButton);
+ RemoveComponent(infoLabel);
+
+ delete nextButton;
+ delete previousButton;
+ delete infoLabel;
}
void SearchView::NotifySortChanged(SearchModel * sender)
diff --git a/src/simulation/Simulation.cpp b/src/simulation/Simulation.cpp
index f92affb..7c82419 100644
--- a/src/simulation/Simulation.cpp
+++ b/src/simulation/Simulation.cpp
@@ -4228,8 +4228,12 @@ void Simulation::update_particles()//doesn't update the particles themselves, bu
Simulation::~Simulation()
{
+ delete[] elements;
+ delete[] platent;
delete grav;
delete air;
+ for(int i = 0; i < tools.size(); i++)
+ delete tools[i];
}
Simulation::Simulation():
diff --git a/src/ssave/SSaveController.cpp b/src/ssave/SSaveController.cpp
index 3a6c3d4..5f37933 100644
--- a/src/ssave/SSaveController.cpp
+++ b/src/ssave/SSaveController.cpp
@@ -51,5 +51,9 @@ void SSaveController::Exit()
SSaveController::~SSaveController() {
if(ui::Engine::Ref().GetWindow() == ssaveView)
ui::Engine::Ref().CloseWindow();
+ delete ssaveModel;
+ delete ssaveView;
+ if(callback)
+ delete callback;
}
diff --git a/src/tags/TagsController.cpp b/src/tags/TagsController.cpp
index 26596fb..845c50f 100644
--- a/src/tags/TagsController.cpp
+++ b/src/tags/TagsController.cpp
@@ -50,6 +50,11 @@ void TagsController::Exit()
}
TagsController::~TagsController() {
- // TODO Auto-generated destructor stub
+ if(ui::Engine::Ref().GetWindow() == tagsView)
+ ui::Engine::Ref().CloseWindow();
+ delete tagsModel;
+ delete tagsView;
+ if(callback)
+ delete callback;
}