fixed a possible infinite loop in ClientEnvironment (dtime counter getting so small that it doesn't increment the value)

master
Perttu Ahola 2011-02-24 18:25:19 +02:00
parent 9f859d8389
commit ec3cb2d1d7
2 changed files with 11 additions and 2 deletions

View File

@ -808,10 +808,20 @@ void ClientEnvironment::step(float dtime)
f32 dtime_part;
if(dtime_downcount > dtime_max_increment)
{
dtime_part = dtime_max_increment;
else
dtime_part = dtime_downcount;
dtime_downcount -= dtime_part;
}
else
{
dtime_part = dtime_downcount;
/*
Setting this to 0 (no -=dtime_part) disables an infinite loop
when dtime_part is so small that dtime_downcount -= dtime_part
does nothing
*/
dtime_downcount = 0;
}
/*
Handle local player

View File

@ -254,7 +254,6 @@ Doing now (most important at the top):
=== Next
* Continue making the scripting system:
* Rip up everything unnecessary from the lua build system
* Make updateNodeMesh for a less verbose mesh update on add/removenode
* Switch to using a safe way for the self and env pointers
* Make some global environment hooks, like node placed and general