summaryrefslogtreecommitdiffstats
path: root/source/Simulator
diff options
context:
space:
mode:
authormadmaxoft@gmail.com <madmaxoft@gmail.com@0a769ca7-a7f5-676a-18bf-c427514a06d6>2012-10-27 09:51:01 +0200
committermadmaxoft@gmail.com <madmaxoft@gmail.com@0a769ca7-a7f5-676a-18bf-c427514a06d6>2012-10-27 09:51:01 +0200
commit1cd213fa608cb2d27b1c8f2ae9d47e02d8cb18f1 (patch)
treef826495ab542932e2f7e7af2463568186f5c219e /source/Simulator
parentCritical sections aren't heap-allocated in linux anymore. (diff)
downloadcuberite-1cd213fa608cb2d27b1c8f2ae9d47e02d8cb18f1.tar
cuberite-1cd213fa608cb2d27b1c8f2ae9d47e02d8cb18f1.tar.gz
cuberite-1cd213fa608cb2d27b1c8f2ae9d47e02d8cb18f1.tar.bz2
cuberite-1cd213fa608cb2d27b1c8f2ae9d47e02d8cb18f1.tar.lz
cuberite-1cd213fa608cb2d27b1c8f2ae9d47e02d8cb18f1.tar.xz
cuberite-1cd213fa608cb2d27b1c8f2ae9d47e02d8cb18f1.tar.zst
cuberite-1cd213fa608cb2d27b1c8f2ae9d47e02d8cb18f1.zip
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;