From 4f17362aeb80e5339c58a5d3b0fbaeb88d9e701c Mon Sep 17 00:00:00 2001 From: "madmaxoft@gmail.com" Date: Mon, 13 Feb 2012 21:47:03 +0000 Subject: Rewritten most of the code for multithreading; still not 100%, but getting there. If this commit proves to be too problematic, we can always undo it. git-svn-id: http://mc-server.googlecode.com/svn/trunk@251 0a769ca7-a7f5-676a-18bf-c427514a06d6 --- source/cSimulatorManager.cpp | 31 +++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) (limited to 'source/cSimulatorManager.cpp') diff --git a/source/cSimulatorManager.cpp b/source/cSimulatorManager.cpp index 2ff44c640..0663e5fe6 100644 --- a/source/cSimulatorManager.cpp +++ b/source/cSimulatorManager.cpp @@ -12,33 +12,56 @@ cSimulatorManager::cSimulatorManager() } + + + + cSimulatorManager::~cSimulatorManager() { + for (cSimulators::iterator itr = m_Simulators.begin(); itr != m_Simulators.end(); ++itr ) + { + delete *itr; + } // for itr - m_Simulators[] } + + + + void cSimulatorManager::Simulate( float a_Dt ) { m_Ticks++; - for( std::vector *>::iterator itr = m_Simulators.begin(); itr != m_Simulators.end(); ++itr ) + for (cSimulators::iterator itr = m_Simulators.begin(); itr != m_Simulators.end(); ++itr ) { - if(m_Ticks % (*itr)->second == 0) (*itr)->first->Simulate(a_Dt); } } + + + + void cSimulatorManager::WakeUp(int a_X, int a_Y, int a_Z) { - for( std::vector *>::iterator itr = m_Simulators.begin(); itr != m_Simulators.end(); ++itr ) + for (cSimulators::iterator itr = m_Simulators.begin(); itr != m_Simulators.end(); ++itr ) { (*itr)->first->WakeUp(a_X, a_Y, a_Z); } } + + + + void cSimulatorManager::RegisterSimulator(cSimulator *a_Simulator, short a_Rate) { //TODO needs some checking std::pair *Pair = new std::pair(a_Simulator, a_Rate); m_Simulators.push_back(Pair); -} \ No newline at end of file +} + + + + -- cgit v1.2.3