public static void SV_Frame(Int64 msec) { Globals.time_before_game = Globals.time_after_game = 0; if (!SV_INIT.svs.initialized) { return; } SV_INIT.svs.realtime += ( Int32 )msec; Lib.Rand(); SV_CheckTimeouts(); SV_ReadPackets(); if (0 == SV_MAIN.sv_timedemo.value && SV_INIT.svs.realtime < SV_INIT.sv.time) { if (SV_INIT.sv.time - SV_INIT.svs.realtime > 100) { if (SV_MAIN.sv_showclamp.value != 0) { Com.Printf("sv lowclamp\\n"); } SV_INIT.svs.realtime = SV_INIT.sv.time - 100; } NET.Sleep(SV_INIT.sv.time - SV_INIT.svs.realtime); return; } SV_CalcPings(); SV_GiveMsec(); SV_RunGameFrame(); SV_SEND.SV_SendClientMessages(); SV_ENTS.SV_RecordDemoMessage(); Master_Heartbeat(); SV_PrepWorldFrame(); }