]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Fix color not updated and ping not displayed in the radar for captured dom points
authorterencehill <piuntn@gmail.com>
Wed, 20 Apr 2011 20:53:22 +0000 (22:53 +0200)
committerterencehill <piuntn@gmail.com>
Wed, 20 Apr 2011 20:53:22 +0000 (22:53 +0200)
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
qcsrc/server/domination.qc

index a69de5b1bc16ef80421cd6d55f7d3b01488eef3f..483f3bfbd59b6b071ce940a1e8c2813b28dc0f3f 100644 (file)
@@ -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();
 
index 0f80cdac0b259aaa47c5a23905d9b16aeff25fc8..d4be16ee17a1d4eb51b7c5267910ce8688484e90 100644 (file)
@@ -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()