From bb39795ab223ffe815d88ec0d0f9dc9a993bef67 Mon Sep 17 00:00:00 2001
From: Perttu Ahola <celeron55@gmail.com>
Date: Sun, 10 Apr 2011 23:29:36 +0300
Subject: [PATCH] fixed the object update interval thingy

---
 src/environment.cpp  | 4 ++++
 src/serverobject.cpp | 4 ++--
 src/utility.h        | 7 ++-----
 3 files changed, 8 insertions(+), 7 deletions(-)

diff --git a/src/environment.cpp b/src/environment.cpp
index bed47fd40..3f95ed9f9 100644
--- a/src/environment.cpp
+++ b/src/environment.cpp
@@ -380,6 +380,8 @@ void ServerEnvironment::deSerializePlayers(const std::string &savedir)
 void ServerEnvironment::step(float dtime)
 {
 	DSTACK(__FUNCTION_NAME);
+	
+	//TimeTaker timer("ServerEnv step");
 
 	// Get some settings
 	//bool free_move = g_settings.getBool("free_move");
@@ -451,6 +453,8 @@ void ServerEnvironment::step(float dtime)
 
 	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)
 		*/
diff --git a/src/serverobject.cpp b/src/serverobject.cpp
index b6015a477..87017c390 100644
--- a/src/serverobject.cpp
+++ b/src/serverobject.cpp
@@ -172,7 +172,7 @@ void ItemSAO::step(float dtime, Queue<ActiveObjectMessage> &messages,
 	assert(m_env);
 
 	const float interval = 0.2;
-	if(m_move_interval.step(dtime, interval))
+	if(m_move_interval.step(dtime, interval)==false)
 		return;
 	dtime = interval;
 	
@@ -312,7 +312,7 @@ void RatSAO::step(float dtime, Queue<ActiveObjectMessage> &messages,
 
 	if(m_is_active == false)
 	{
-		if(m_inactive_interval.step(dtime, 0.5))
+		if(m_inactive_interval.step(dtime, 0.5)==false)
 			return;
 	}
 
diff --git a/src/utility.h b/src/utility.h
index 19946354c..50bbe1496 100644
--- a/src/utility.h
+++ b/src/utility.h
@@ -2033,12 +2033,9 @@ class IntervalLimiter
 	{
 		m_accumulator += dtime;
 		if(m_accumulator < wanted_interval)
-		{
-			dtime = 0;
-			return true;
-		}
+			return false;
 		m_accumulator -= wanted_interval;
-		return false;
+		return true;
 	}
 protected:
 	float m_accumulator;
-- 
GitLab