summaryrefslogtreecommitdiffstats
path: root/source/Simulator
diff options
context:
space:
mode:
Diffstat (limited to 'source/Simulator')
-rw-r--r--source/Simulator/SimulatorManager.cpp23
-rw-r--r--source/Simulator/SimulatorManager.h10
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;