From 10ae05fc08e673b1dde54609537b408c044617d5 Mon Sep 17 00:00:00 2001 From: Mario Date: Mon, 23 Nov 2015 20:35:08 +1000 Subject: [PATCH] Minor performance optimization, also disable engine side physics prediction --- qcsrc/client/shownames.qc | 36 ++++++++++++++++---------------- qcsrc/lib/csqcmodel/cl_player.qc | 9 +++----- 2 files changed, 21 insertions(+), 24 deletions(-) diff --git a/qcsrc/client/shownames.qc b/qcsrc/client/shownames.qc index 6bcd343b9..f345f0510 100644 --- a/qcsrc/client/shownames.qc +++ b/qcsrc/client/shownames.qc @@ -17,6 +17,18 @@ // self.pointtime = last time you pointed at this player // self.csqcmodel_isdead = value of csqcmodel_isdead to know when the player is dead or not +LinkedList shownames_ent; +STATIC_INIT(shownames_ent) +{ + shownames_ent = LL_NEW(); + for (int i = 0; i < maxclients; ++i) + { + entity e = new(shownames_tag); + e.sv_entnum = i + 1; + LL_PUSH(shownames_ent, e); + } +} + const float SHOWNAMES_FADESPEED = 4; const float SHOWNAMES_FADEDELAY = 0.4; void Draw_ShowNames(entity this) @@ -41,19 +53,19 @@ void Draw_ShowNames(entity this) if (autocvar_hud_shownames_antioverlap) { // fade tag out if another tag that is closer to you overlaps - for (entity e = world; (e = find(e, classname, "shownames_tag")); ) - { - if (e == this) continue; - vector eo = project_3d_to_2d(e.origin); + LL_EACH(shownames_ent, true, LAMBDA( + entity entcs = entcs_receiver(i); + if (!entcs || it == this) continue; + vector eo = project_3d_to_2d(it.origin); if (eo.z < 0 || eo.x < 0 || eo.y < 0 || eo.x > vid_conwidth || eo.y > vid_conheight) continue; eo.z = 0; if (vlen((eX * o.x + eY * o.y) - eo) < autocvar_hud_shownames_antioverlap_distance - && dist > vlen(e.origin - view_origin)) + && dist > vlen(it.origin - view_origin)) { overlap = true; break; } - } + )); } bool onscreen = (o.z >= 0 && o.x >= 0 && o.y >= 0 && o.x <= vid_conwidth && o.y <= vid_conheight); float crosshairdistance = sqrt(pow(o.x - vid_conwidth / 2, 2) + pow(o.y - vid_conheight / 2, 2)); @@ -152,18 +164,6 @@ void Draw_ShowNames(entity this) } } -LinkedList shownames_ent; -STATIC_INIT(shownames_ent) -{ - shownames_ent = LL_NEW(); - for (int i = 0; i < maxclients; ++i) - { - entity e = new(shownames_tag); - e.sv_entnum = i + 1; - LL_PUSH(shownames_ent, e); - } -} - void Draw_ShowNames_All() { if (!autocvar_hud_shownames) return; diff --git a/qcsrc/lib/csqcmodel/cl_player.qc b/qcsrc/lib/csqcmodel/cl_player.qc index 49011fd64..f8ccee533 100644 --- a/qcsrc/lib/csqcmodel/cl_player.qc +++ b/qcsrc/lib/csqcmodel/cl_player.qc @@ -35,7 +35,7 @@ #include "../../common/viewloc.qh" float autocvar_cl_movement_errorcompensation = 0; -int autocvar_cl_movement = 1; +bool autocvar_cl_movement = true; // engine stuff float pmove_onground; // weird engine flag we shouldn't really use but have to for now @@ -144,11 +144,8 @@ void PM_Movement_Move(entity this) void CSQCPlayer_Physics(entity this) { - switch (autocvar_cl_movement) - { - case 1: CSQC_ClientMovement_PlayerMove_Frame(this); break; - case 2: PM_Movement_Move(this); break; - } + if(autocvar_cl_movement) + CSQC_ClientMovement_PlayerMove_Frame(this); } void CSQCPlayer_PredictTo(entity this, float endframe, bool apply_error) -- 2.39.2