#include "interface/Engine.h" #include "GameModel.h" #include "GameView.h" #include "Simulation.h" #include "Renderer.h" GameModel::GameModel(): activeElement(1) { sim = new Simulation(); ren = new Renderer(ui::Engine::Ref().g, sim); } void GameModel::AddObserver(GameView * observer){ observers.push_back(observer); observer->NotifySimulationChanged(this); observer->NotifyRendererChanged(this); observer->NotifyPausedChanged(this); } int GameModel::GetActiveElement() { return activeElement; } void GameModel::SetActiveElement(int element) { activeElement = element; } Simulation * GameModel::GetSimulation() { return sim; } Renderer * GameModel::GetRenderer() { return ren; } void GameModel::SetPaused(bool pauseState) { sim->sys_pause = pauseState?1:0; notifyPausedChanged(); } bool GameModel::GetPaused() { return sim->sys_pause?true:false; } void GameModel::notifyRendererChanged() { for(int i = 0; i < observers.size(); i++) { observers[i]->NotifyRendererChanged(this); } } void GameModel::notifySimulationChanged() { for(int i = 0; i < observers.size(); i++) { observers[i]->NotifySimulationChanged(this); } } void GameModel::notifyPausedChanged() { for(int i = 0; i < observers.size(); i++) { observers[i]->NotifyPausedChanged(this); } }