fixed the object update interval thingy

experimental
Perttu Ahola 2011-04-10 23:29:36 +03:00
parent 9d5ccafbb0
commit bb39795ab2
3 changed files with 8 additions and 7 deletions

View File

@ -381,6 +381,8 @@ void ServerEnvironment::step(float dtime)
{ {
DSTACK(__FUNCTION_NAME); DSTACK(__FUNCTION_NAME);
//TimeTaker timer("ServerEnv step");
// Get some settings // Get some settings
//bool free_move = g_settings.getBool("free_move"); //bool free_move = g_settings.getBool("free_move");
bool footprints = g_settings.getBool("footprints"); bool footprints = g_settings.getBool("footprints");
@ -451,6 +453,8 @@ void ServerEnvironment::step(float dtime)
if(m_object_management_interval.step(dtime, 0.5)) if(m_object_management_interval.step(dtime, 0.5))
{ {
//TimeTaker timer("ServerEnv object management");
/* /*
Remove objects that satisfy (m_removed && m_known_by_count==0) Remove objects that satisfy (m_removed && m_known_by_count==0)
*/ */

View File

@ -172,7 +172,7 @@ void ItemSAO::step(float dtime, Queue<ActiveObjectMessage> &messages,
assert(m_env); assert(m_env);
const float interval = 0.2; const float interval = 0.2;
if(m_move_interval.step(dtime, interval)) if(m_move_interval.step(dtime, interval)==false)
return; return;
dtime = interval; dtime = interval;
@ -312,7 +312,7 @@ void RatSAO::step(float dtime, Queue<ActiveObjectMessage> &messages,
if(m_is_active == false) if(m_is_active == false)
{ {
if(m_inactive_interval.step(dtime, 0.5)) if(m_inactive_interval.step(dtime, 0.5)==false)
return; return;
} }

View File

@ -2033,12 +2033,9 @@ public:
{ {
m_accumulator += dtime; m_accumulator += dtime;
if(m_accumulator < wanted_interval) if(m_accumulator < wanted_interval)
{
dtime = 0;
return true;
}
m_accumulator -= wanted_interval;
return false; return false;
m_accumulator -= wanted_interval;
return true;
} }
protected: protected:
float m_accumulator; float m_accumulator;