}
bool autocvar_sv_freezenonclients;
-bool autocvar_sv_gameplayfix_delayprojectiles = false;
void Physics_Frame()
{
if(autocvar_sv_freezenonclients)
IL_EACH(g_moveables, true,
{
- if(IS_CLIENT(it) || it.classname == "" || it.move_movetype == MOVETYPE_PHYSICS)
+ if(IS_CLIENT(it) || it.move_movetype == MOVETYPE_PHYSICS)
continue;
//set_movetype(it, it.move_movetype);
if(autocvar_sv_gameplayfix_delayprojectiles >= 0)
return;
+ // make a second pass to see if any ents spawned this frame and make
+ // sure they run their move/think. this is verified by checking .move_time, which will never be 0 if the entity has moved
IL_EACH(g_moveables, it.move_qcphysics,
{
- if(IS_CLIENT(it) || it.classname == "" || it.move_movetype == MOVETYPE_NONE)
+ if(IS_CLIENT(it) || it.move_time || it.move_movetype == MOVETYPE_NONE || it.move_movetype == MOVETYPE_PHYSICS)
continue;
Movetype_Physics_NoMatchTicrate(it, PHYS_INPUT_TIMELENGTH, false);
});