summaryrefslogtreecommitdiff
path: root/src/options
diff options
context:
space:
mode:
authorSimon Robertshaw <simon@hardwired.org.uk>2012-09-30 15:19:44 (GMT)
committer Simon Robertshaw <simon@hardwired.org.uk>2012-09-30 15:19:44 (GMT)
commit90ebd3e54c376b7baa80d9d739f3ace62f6991cd (patch)
tree088fda9399f50b6f172e36ae5ffe6c89c0f338ab /src/options
parentd6f832b4f572bbb79a33590da71c2d8975b15728 (diff)
downloadpowder-90ebd3e54c376b7baa80d9d739f3ace62f6991cd.zip
powder-90ebd3e54c376b7baa80d9d739f3ace62f6991cd.tar.gz
Better hanling of edgeMode and "New Sim" button
Diffstat (limited to 'src/options')
-rw-r--r--src/options/OptionsController.cpp5
-rw-r--r--src/options/OptionsController.h4
-rw-r--r--src/options/OptionsModel.cpp10
-rw-r--r--src/options/OptionsModel.h4
4 files changed, 15 insertions, 8 deletions
diff --git a/src/options/OptionsController.cpp b/src/options/OptionsController.cpp
index add8cf7..579ad73 100644
--- a/src/options/OptionsController.cpp
+++ b/src/options/OptionsController.cpp
@@ -8,12 +8,13 @@
#include "OptionsController.h"
#include "dialogues/ErrorMessage.h"
-OptionsController::OptionsController(Simulation * sim, ControllerCallback * callback_):
+OptionsController::OptionsController(GameModel * gModel_, ControllerCallback * callback_):
callback(callback_),
+ gModel(gModel_),
HasExited(false)
{
view = new OptionsView();
- model = new OptionsModel(sim);
+ model = new OptionsModel(gModel);
model->AddObserver(view);
view->AttachController(this);
diff --git a/src/options/OptionsController.h b/src/options/OptionsController.h
index 862a0e2..43db1f8 100644
--- a/src/options/OptionsController.h
+++ b/src/options/OptionsController.h
@@ -13,15 +13,17 @@
#include "OptionsView.h"
#include "OptionsModel.h"
+class GameModel;
class OptionsModel;
class OptionsView;
class OptionsController {
+ GameModel * gModel;
OptionsView * view;
OptionsModel * model;
ControllerCallback * callback;
public:
bool HasExited;
- OptionsController(Simulation * sim, ControllerCallback * callback_);
+ OptionsController(GameModel * gModel_, ControllerCallback * callback_);
void SetHeatSimulation(bool state);
void SetAmbientHeatSimulation(bool state);
void SetNewtonianGravity(bool state);
diff --git a/src/options/OptionsModel.cpp b/src/options/OptionsModel.cpp
index be88d9b..f9cef2f 100644
--- a/src/options/OptionsModel.cpp
+++ b/src/options/OptionsModel.cpp
@@ -6,10 +6,12 @@
*/
#include "simulation/Air.h"
+#include "game/GameModel.h"
#include "OptionsModel.h"
-OptionsModel::OptionsModel(Simulation * sim_) {
- sim = sim_;
+OptionsModel::OptionsModel(GameModel * gModel_) {
+ gModel = gModel_;
+ sim = gModel->GetSimulation();
}
void OptionsModel::AddObserver(OptionsView* view)
@@ -77,11 +79,11 @@ void OptionsModel::SetAirMode(int airMode)
int OptionsModel::GetEdgeMode()
{
- return sim->edgeMode;
+ return gModel->GetEdgeMode();
}
void OptionsModel::SetEdgeMode(int edgeMode)
{
- sim->SetEdgeMode(edgeMode);
+ gModel->SetEdgeMode(edgeMode);
notifySettingsChanged();
}
diff --git a/src/options/OptionsModel.h b/src/options/OptionsModel.h
index b011fef..52b7fa5 100644
--- a/src/options/OptionsModel.h
+++ b/src/options/OptionsModel.h
@@ -11,14 +11,16 @@
#include "OptionsView.h"
#include "simulation/Simulation.h"
+class GameModel;
class Simulation;
class OptionsView;
class OptionsModel {
+ GameModel * gModel;
Simulation * sim;
std::vector<OptionsView*> observers;
void notifySettingsChanged();
public:
- OptionsModel(Simulation * sim_);
+ OptionsModel(GameModel * gModel);
void AddObserver(OptionsView* view);
bool GetHeatSimulation();
void SetHeatSimulation(bool state);