if (cmd == -1)
{
+ R_TimeReport("END OF MESSAGE");
SHOWNET("END OF MESSAGE");
break; // end of message
}
CL_ParsePointParticles1();
break;
}
+ R_TimeReport(svc_strings[cmd]);
}
}
if (cls.signon == SIGNONS)
CL_UpdateItemsAndWeapon();
+ R_TimeReport("UpdateItems");
EntityFrameQuake_ISeeDeadEntities();
+ R_TimeReport("ISeeDeadEntities");
CL_UpdateMoveVars();
+ R_TimeReport("UpdateMoveVars");
parsingerror = false;
// LordHavoc: this was at the start of the function before cl_autodemo was
// implemented
if (cls.demorecording)
+ {
CL_WriteDemoMessage (&net_message);
+ R_TimeReport("WriteDemo");
+ }
}
void CL_Parse_DumpPacket(void)
int move, svent;
prvm_edict_t *ent;
+ R_TimeReport("pretraceline");
+
VM_SAFEPARMCOUNTRANGE(4, 4, VM_CL_traceline);
prog->xfunction->builtinsprofile += 30;
trace = CL_TraceLine(v1, v2, move, ent, CL_GenericHitSuperContentsMask(ent), CL_HitNetworkBrushModels(move), CL_HitNetworkPlayers(move), &svent, true);
CL_VM_SetTraceGlobals(&trace, svent);
+ R_TimeReport("traceline");
}
/*
int move, svent;
prvm_edict_t *ent;
+ R_TimeReport("pretracebox");
VM_SAFEPARMCOUNTRANGE(6, 8, VM_CL_tracebox); // allow more parameters for future expansion
prog->xfunction->builtinsprofile += 30;
trace = CL_TraceBox(v1, m1, m2, v2, move, ent, CL_GenericHitSuperContentsMask(ent), CL_HitNetworkBrushModels(move), CL_HitNetworkPlayers(move), &svent, true);
CL_VM_SetTraceGlobals(&trace, svent);
+ R_TimeReport("tracebox");
}
trace_t CL_Trace_Toss (prvm_edict_t *tossent, prvm_edict_t *ignore, int *svent)
// vec3_t oldangles;
if(!cl.csqc_loaded)
return false;
+ R_TimeReport("pre-UpdateView");
CSQC_BEGIN
//VectorCopy(cl.viewangles, oldangles);
prog->globals.client->time = cl.time;
// Dresk : Reset Dmg Globals Here
CL_VM_UpdateDmgGlobals(0, 0, emptyvector);
CSQC_END
+ R_TimeReport("UpdateView");
return true;
}
if (sv.active ? sv_timer > 0 : cl_timer > 0)
{
// process console commands
+ R_TimeReport("preconsole");
CL_VM_PreventInformationLeaks();
Cbuf_Execute();
R_TimeReport("console");
else
Sys_Sleep((int)wait);
svs.perf_acc_sleeptime += Sys_DoubleTime() - time0;
+ R_TimeReport("sleep");
continue;
}
// update video
if (host_speeds.integer)
time1 = Sys_DoubleTime();
+ R_TimeReport("pre-input");
// Collect input into cmd
CL_Input();
+ R_TimeReport("input");
+
// check for new packets
NetConn_ClientFrame();
// read a new frame from a demo if needed
CL_ReadDemoMessage();
+ R_TimeReport("clientnetwork");
// now that packets have been read, send input to server
CL_SendMove();
+ R_TimeReport("sendmove");
// update client world (interpolate entities, create trails, etc)
CL_UpdateWorld();
+ R_TimeReport("lerpworld");
CL_Video_Frame();
CL_Gecko_Frame();
SZ_Clear(&net_message);
}
for (i = 0;i < cl_numsockets;i++)
+ {
while (cl_sockets[i] && (length = NetConn_Read(cl_sockets[i], readbuffer, sizeof(readbuffer), &peeraddress)) > 0)
+ {
+ R_TimeReport("clientreadnetwork");
NetConn_ClientParsePacket(cl_sockets[i], readbuffer, length, &peeraddress);
+ R_TimeReport("clientparsepacket");
+ }
+ }
NetConn_QueryQueueFrame();
if (cls.netcon && realtime > cls.netcon->timeout && !sv.active)
{