summaryrefslogtreecommitdiff
path: root/src/options/OptionsModel.h
blob: c15fb883aab252853e9fed19990e2290559619a5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
/*
 * OptionsModel.h
 *
 *  Created on: Apr 14, 2012
 *      Author: Simon
 */

#ifndef OPTIONSMODEL_H_
#define OPTIONSMODEL_H_
#include <vector>
#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(GameModel * gModel);
	void AddObserver(OptionsView* view);
	bool GetHeatSimulation();
	void SetHeatSimulation(bool state);
	bool GetAmbientHeatSimulation();
	void SetAmbientHeatSimulation(bool state);
	bool GetNewtonianGravity();
	void SetNewtonianGravity(bool state);
	bool GetWaterEqualisation();
	void SetWaterEqualisation(bool state);
	int GetAirMode();
	void SetAirMode(int airMode);
	int GetEdgeMode();
	void SetEdgeMode(int edgeMode);
	int GetGravityMode();
	void SetGravityMode(int gravityMode);
	bool GetFullscreen();
	void SetFullscreen(bool fullscreen);
	bool GetFastQuit();
	void SetFastQuit(bool fastquit);
	bool GetScale();
	void SetScale(bool scale);
	virtual ~OptionsModel();
};

#endif /* OPTIONSMODEL_H_ */