]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Limit pps to correct values, otherwise the client not so rarely shows a negated 0...
authorterencehill <piuntn@gmail.com>
Fri, 13 Aug 2010 21:29:22 +0000 (23:29 +0200)
committerterencehill <piuntn@gmail.com>
Fri, 13 Aug 2010 21:29:22 +0000 (23:29 +0200)
qcsrc/server/domination.qc

index 578a440990d25045755d6a4afe23fa723b9f5cd0..ac8343c0699e1d8ae68be842ac09744e157d2966 100644 (file)
@@ -129,35 +129,45 @@ void dompoint_captured ()
 
        switch(self.team)
        {
 
        switch(self.team)
        {
+               // "fix" pps when slightly under 0 because of approximation errors
                case COLOR_TEAM1:
                        pps_red -= (points/wait_time);
                case COLOR_TEAM1:
                        pps_red -= (points/wait_time);
+                       if (pps_red < 0) pps_red = 0;
                        break;
                case COLOR_TEAM2:
                        pps_blue -= (points/wait_time);
                        break;
                case COLOR_TEAM2:
                        pps_blue -= (points/wait_time);
+                       if (pps_blue < 0) pps_blue = 0;
                        break;
                case COLOR_TEAM3:
                        pps_yellow -= (points/wait_time);
                        break;
                case COLOR_TEAM3:
                        pps_yellow -= (points/wait_time);
+                       if (pps_yellow < 0) pps_yellow = 0;
                        break;
                case COLOR_TEAM4:
                        pps_pink -= (points/wait_time);
                        break;
                case COLOR_TEAM4:
                        pps_pink -= (points/wait_time);
+                       if (pps_pink < 0) pps_pink = 0;
        }
 
        switch(self.goalentity.team)
        {
        }
 
        switch(self.goalentity.team)
        {
+               // "fix" pps when slightly over total_pps because of approximation errors
                case COLOR_TEAM1:
                        pps_red += (points/wait_time);
                case COLOR_TEAM1:
                        pps_red += (points/wait_time);
+                       if (pps_red > total_pps) pps_red = total_pps;
                        WaypointSprite_UpdateSprites(self.sprite, "dom-red", "", "");
                        break;
                case COLOR_TEAM2:
                        pps_blue += (points/wait_time);
                        WaypointSprite_UpdateSprites(self.sprite, "dom-red", "", "");
                        break;
                case COLOR_TEAM2:
                        pps_blue += (points/wait_time);
+                       if (pps_blue > total_pps) pps_blue = total_pps;
                        WaypointSprite_UpdateSprites(self.sprite, "dom-blue", "", "");
                        break;
                case COLOR_TEAM3:
                        pps_yellow += (points/wait_time);
                        WaypointSprite_UpdateSprites(self.sprite, "dom-blue", "", "");
                        break;
                case COLOR_TEAM3:
                        pps_yellow += (points/wait_time);
+                       if (pps_yellow > total_pps) pps_yellow = total_pps;
                        WaypointSprite_UpdateSprites(self.sprite, "dom-yellow", "", "");
                        break;
                case COLOR_TEAM4:
                        pps_pink += (points/wait_time);
                        WaypointSprite_UpdateSprites(self.sprite, "dom-yellow", "", "");
                        break;
                case COLOR_TEAM4:
                        pps_pink += (points/wait_time);
+                       if (pps_pink > total_pps) pps_pink = total_pps;
                        WaypointSprite_UpdateSprites(self.sprite, "dom-pink", "", "");
        }
 
                        WaypointSprite_UpdateSprites(self.sprite, "dom-pink", "", "");
        }