]> de.git.xonotic.org Git - xonotic/darkplaces.git/commitdiff
imposed a 20 frames at once limit in Host_ServerFrame
authorhavoc <havoc@d7cf8633-e32d-0410-b094-e92efae38249>
Fri, 5 Nov 2004 00:21:19 +0000 (00:21 +0000)
committerhavoc <havoc@d7cf8633-e32d-0410-b094-e92efae38249>
Fri, 5 Nov 2004 00:21:19 +0000 (00:21 +0000)
git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@4734 d7cf8633-e32d-0410-b094-e92efae38249

host.c

diff --git a/host.c b/host.c
index 1a99f7481b71f96b85dc4f4b7ac0c0976daee97b..a9b94def6706cef0454b939f40fa307b086acdcf 100644 (file)
--- a/host.c
+++ b/host.c
@@ -646,6 +646,8 @@ Host_ServerFrame
 */
 void Host_ServerFrame (void)
 {
+       // never run more than 20 frames at a time as a sanity limit
+       int framecount, framelimit = 20;
        double advancetime;
        static double frametimetotal = 0, lastservertime = 0;
        frametimetotal += host_frametime;
@@ -659,10 +661,9 @@ void Host_ServerFrame (void)
 
        // run the world state
        // don't allow simulation to run too fast or too slow or logic glitches can occur
-       while (frametimetotal > 0)
+       for (framecount = 0;framecount < framelimit && frametimetotal > 0;framecount++, frametimetotal -= advancetime)
        {
                advancetime = min(frametimetotal, sys_ticrate.value);
-               frametimetotal = frametimetotal - advancetime;
 
                // only advance time if not paused
                // the game also pauses in singleplayer when menu or console is used