summaryrefslogtreecommitdiff
path: root/src/game
diff options
context:
space:
mode:
authorSimon Robertshaw <simon@hardwired.org.uk>2012-01-21 13:19:10 (GMT)
committer Simon Robertshaw <simon@hardwired.org.uk>2012-01-21 13:19:10 (GMT)
commit8ec6aae617525d13697d1c2a612ac37be0f341d5 (patch)
treee4cdf0795e0f77505acc0c1be544532912569959 /src/game
parentd364a27ed6da5d75d1880c98c3fb2be683c5b915 (diff)
downloadpowder-8ec6aae617525d13697d1c2a612ac37be0f341d5.zip
powder-8ec6aae617525d13697d1c2a612ac37be0f341d5.tar.gz
Better cleanup for simulation - fix memory leaks
Diffstat (limited to 'src/game')
-rw-r--r--src/game/GameController.cpp8
-rw-r--r--src/game/GameController.h5
-rw-r--r--src/game/GameModel.cpp6
-rw-r--r--src/game/GameModel.h3
4 files changed, 18 insertions, 4 deletions
diff --git a/src/game/GameController.cpp b/src/game/GameController.cpp
index 07f2722..d8cff8b 100644
--- a/src/game/GameController.cpp
+++ b/src/game/GameController.cpp
@@ -17,7 +17,13 @@ GameController::GameController()
gameView->AttachController(this);
gameModel->AddObserver(gameView);
- sim = new Simulation();
+ //sim = new Simulation();
+}
+
+GameController::~GameController()
+{
+ delete gameView;
+ delete gameModel;
}
GameView * GameController::GetView()
diff --git a/src/game/GameController.h b/src/game/GameController.h
index d9755a1..63d8e5e 100644
--- a/src/game/GameController.h
+++ b/src/game/GameController.h
@@ -14,11 +14,12 @@ class GameView;
class GameController
{
private:
- Simulation * sim;
+ //Simulation * sim;
GameView * gameView;
GameModel * gameModel;
public:
- GameController();
+ GameController();
+ ~GameController();
GameView * GetView();
void DrawPoints(queue<ui::Point*> & pointQueue);
void Tick();
diff --git a/src/game/GameModel.cpp b/src/game/GameModel.cpp
index 50f266f..54c8dd4 100644
--- a/src/game/GameModel.cpp
+++ b/src/game/GameModel.cpp
@@ -13,6 +13,12 @@ GameModel::GameModel():
ren = new Renderer(ui::Engine::Ref().g, sim);
}
+GameModel::~GameModel()
+{
+ delete sim;
+ delete ren;
+}
+
void GameModel::AddObserver(GameView * observer){
observers.push_back(observer);
diff --git a/src/game/GameModel.h b/src/game/GameModel.h
index 6cb74cb..c709535 100644
--- a/src/game/GameModel.h
+++ b/src/game/GameModel.h
@@ -23,7 +23,8 @@ private:
void notifySimulationChanged();
void notifyPausedChanged();
public:
- GameModel();
+ GameModel();
+ ~GameModel();
void AddObserver(GameView * observer);
int GetActiveElement();
void SetActiveElement(int element);