diff options
Diffstat (limited to 'source/Simulator')
-rw-r--r-- | source/Simulator/SimulatorManager.cpp | 23 | ||||
-rw-r--r-- | source/Simulator/SimulatorManager.h | 10 |
2 files changed, 14 insertions, 19 deletions
diff --git a/source/Simulator/SimulatorManager.cpp b/source/Simulator/SimulatorManager.cpp index 1ab7a51b5..c74b273f7 100644 --- a/source/Simulator/SimulatorManager.cpp +++ b/source/Simulator/SimulatorManager.cpp @@ -7,9 +7,9 @@ -cSimulatorManager::cSimulatorManager() +cSimulatorManager::cSimulatorManager(void) : + m_Ticks(0) { - } @@ -18,10 +18,6 @@ cSimulatorManager::cSimulatorManager() cSimulatorManager::~cSimulatorManager() { - for (cSimulators::iterator itr = m_Simulators.begin(); itr != m_Simulators.end(); ++itr ) - { - delete *itr; - } // for itr - m_Simulators[] } @@ -33,8 +29,10 @@ void cSimulatorManager::Simulate( float a_Dt ) m_Ticks++; for (cSimulators::iterator itr = m_Simulators.begin(); itr != m_Simulators.end(); ++itr ) { - if(m_Ticks % (*itr)->second == 0) - (*itr)->first->Simulate(a_Dt); + if ((m_Ticks % itr->second) == 0) + { + itr->first->Simulate(a_Dt); + } } } @@ -46,7 +44,7 @@ void cSimulatorManager::WakeUp(int a_BlockX, int a_BlockY, int a_BlockZ) { for (cSimulators::iterator itr = m_Simulators.begin(); itr != m_Simulators.end(); ++itr ) { - (*itr)->first->WakeUp(a_BlockX, a_BlockY, a_BlockZ); + itr->first->WakeUp(a_BlockX, a_BlockY, a_BlockZ); } } @@ -54,12 +52,9 @@ void cSimulatorManager::WakeUp(int a_BlockX, int a_BlockY, int a_BlockZ) -void cSimulatorManager::RegisterSimulator(cSimulator *a_Simulator, short a_Rate) +void cSimulatorManager::RegisterSimulator(cSimulator * a_Simulator, int a_Rate) { - //TODO needs some checking - std::pair<cSimulator *, short> *Pair = new std::pair<cSimulator *, short>(a_Simulator, a_Rate); - - m_Simulators.push_back(Pair); + m_Simulators.push_back(std::make_pair(a_Simulator, a_Rate)); } diff --git a/source/Simulator/SimulatorManager.h b/source/Simulator/SimulatorManager.h index e90acffab..fbd97b8fa 100644 --- a/source/Simulator/SimulatorManager.h +++ b/source/Simulator/SimulatorManager.h @@ -18,17 +18,17 @@ class cSimulatorManager { public: - cSimulatorManager(); + cSimulatorManager(void); ~cSimulatorManager(); - void Simulate( float a_Dt ); - void WakeUp(int a_X, int a_Y, int a_Z); + void Simulate(float a_Dt); + void WakeUp(int a_BlockX, int a_BlockY, int a_BlockZ); - void RegisterSimulator(cSimulator * a_Simulator, short a_Rate); // Takes ownership of the simulator object! + void RegisterSimulator(cSimulator * a_Simulator, int a_Rate); // Takes ownership of the simulator object! protected: - typedef std::vector <std::pair<cSimulator *, short> *> cSimulators; + typedef std::vector <std::pair<cSimulator *, int> > cSimulators; cSimulators m_Simulators; long long m_Ticks; |