From a6e36cb811420eaec45c711d2886fbc0cbe23ab2 Mon Sep 17 00:00:00 2001 From: terencehill Date: Wed, 20 Apr 2011 22:53:22 +0200 Subject: [PATCH] Fix color not updated and ping not displayed in the radar for captured dom points Reason: self gets reassigned in FOR_EACH_PLAYER! Curiously, this bug was introduced by the commit 'fix terencehill's code' (b02eb66e3a23baaca99809d6ad048d3c28d519b1) which REALLY didn't fix anything, ended up in a mere clean-up. --- qcsrc/server/cl_client.qc | 4 ++-- qcsrc/server/domination.qc | 22 +++++++++------------- 2 files changed, 11 insertions(+), 15 deletions(-) diff --git a/qcsrc/server/cl_client.qc b/qcsrc/server/cl_client.qc index a69de5b1b..483f3bfbd 100644 --- a/qcsrc/server/cl_client.qc +++ b/qcsrc/server/cl_client.qc @@ -1508,7 +1508,7 @@ Called when a client connects to the server string ColoredTeamName(float t); void DecodeLevelParms (void); //void dom_player_join_team(entity pl); -void set_dom_state(void); +void set_dom_state(entity e); void ClientConnect (void) { float t; @@ -1751,7 +1751,7 @@ void ClientConnect (void) send_CSQC_teamnagger(); if (g_domination) - set_dom_state(); + set_dom_state(self); CheatInitClient(); diff --git a/qcsrc/server/domination.qc b/qcsrc/server/domination.qc index 0f80cdac0..d4be16ee1 100644 --- a/qcsrc/server/domination.qc +++ b/qcsrc/server/domination.qc @@ -32,20 +32,16 @@ float pps_red; float pps_blue; float pps_yellow; float pps_pink; -void set_dom_state(void) +void set_dom_state(entity e) { // BIG ugly hack to make stat sending work - self.dom_total_pps = total_pps; - self.dom_pps_red = pps_red; - self.dom_pps_blue = pps_blue; + e.dom_total_pps = total_pps; + e.dom_pps_red = pps_red; + e.dom_pps_blue = pps_blue; if(c3 >= 0) - { - self.dom_pps_yellow = pps_yellow; - } + e.dom_pps_yellow = pps_yellow; if(c4 >= 0) - { - self.dom_pps_pink = pps_pink; - } + e.dom_pps_pink = pps_pink; } void() dom_controlpoint_setup; @@ -178,13 +174,13 @@ void dompoint_captured () WaypointSprite_UpdateSprites(self.sprite, "dom-pink", "", ""); } - FOR_EACH_PLAYER(self) - set_dom_state(); - WaypointSprite_UpdateTeamRadar(self.sprite, RADARICON_DOMPOINT, colormapPaletteColor(self.goalentity.team - 1, 0)); WaypointSprite_Ping(self.sprite); self.captime = time; + + FOR_EACH_PLAYER(head) + set_dom_state(head); }; void AnimateDomPoint() -- 2.39.2