]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/common/gamemodes/gamemode/race/sv_race.qc
Remove redundant SVQC check; avoid duplicated field definitions in Race GameRules_scoring
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / gamemodes / gamemode / race / sv_race.qc
index d00a163084a34b2461a989b362ae1f4740d2aac6..ecfd3660588cf91275a71f079d9994aa1bf1ab0f 100644 (file)
@@ -53,20 +53,18 @@ void havocbot_role_race(entity this)
 
 void race_ScoreRules()
 {
-    GameRules_score_enabled(false);
+       GameRules_score_enabled(false);
        GameRules_scoring(race_teams, 0, 0, {
-        if (race_teams) {
-            field_team(ST_RACE_LAPS, "laps", SFL_SORT_PRIO_PRIMARY);
-            field(SP_RACE_LAPS, "laps", SFL_SORT_PRIO_PRIMARY);
-            field(SP_RACE_TIME, "time", SFL_SORT_PRIO_SECONDARY | SFL_LOWER_IS_BETTER | SFL_TIME);
-            field(SP_RACE_FASTEST, "fastest", SFL_LOWER_IS_BETTER | SFL_TIME);
-        } else if (g_race_qualifying) {
-            field(SP_RACE_FASTEST, "fastest", SFL_SORT_PRIO_PRIMARY | SFL_LOWER_IS_BETTER | SFL_TIME);
-        } else {
-            field(SP_RACE_LAPS, "laps", SFL_SORT_PRIO_PRIMARY);
-            field(SP_RACE_TIME, "time", SFL_SORT_PRIO_SECONDARY | SFL_LOWER_IS_BETTER | SFL_TIME);
-            field(SP_RACE_FASTEST, "fastest", SFL_LOWER_IS_BETTER | SFL_TIME);
-        }
+               if (race_teams)
+                       field_team(ST_RACE_LAPS, "laps", SFL_SORT_PRIO_PRIMARY);
+               else if (g_race_qualifying)
+                       field(SP_RACE_FASTEST, "fastest", SFL_SORT_PRIO_PRIMARY | SFL_LOWER_IS_BETTER | SFL_TIME);
+               if (race_teams || !g_race_qualifying)
+               {
+                       field(SP_RACE_LAPS, "laps", SFL_SORT_PRIO_PRIMARY);
+                       field(SP_RACE_TIME, "time", SFL_SORT_PRIO_SECONDARY | SFL_LOWER_IS_BETTER | SFL_TIME);
+                       field(SP_RACE_FASTEST, "fastest", SFL_LOWER_IS_BETTER | SFL_TIME);
+               }
        });
 }
 
@@ -139,7 +137,6 @@ MUTATOR_HOOKFUNCTION(rc, PlayerPhysics)
        player.race_movetime_count += f;
        player.race_movetime = player.race_movetime_frac + player.race_movetime_count;
 
-#ifdef SVQC
        if(IS_PLAYER(player))
        {
                if (player.race_penalty)
@@ -152,7 +149,6 @@ MUTATOR_HOOKFUNCTION(rc, PlayerPhysics)
                        player.disableclientprediction = 2;
                }
        }
-#endif
 
        // force kbd movement for fairness
        float wishspeed;
@@ -238,24 +234,7 @@ MUTATOR_HOOKFUNCTION(rc, ClientConnect)
        race_PreparePlayer(player);
        player.race_checkpoint = -1;
 
-       if(IS_REAL_CLIENT(player))
-       {
-               msg_entity = player;
-               race_send_recordtime(MSG_ONE);
-               race_send_speedaward(MSG_ONE);
-
-               speedaward_alltimebest = stof(db_get(ServerProgsDB, strcat(GetMapname(), record_type, "speed/speed")));
-               speedaward_alltimebest_holder = uid2name(db_get(ServerProgsDB, strcat(GetMapname(), record_type, "speed/crypto_idfp")));
-               race_send_speedaward_alltimebest(MSG_ONE);
-
-               float i;
-               int m = min(RANKINGS_CNT, autocvar_g_cts_send_rankings_cnt);
-               race_send_rankings_cnt(MSG_ONE);
-               for (i = 1; i <= m; ++i)
-               {
-                       race_SendRankings(i, 0, 0, MSG_ONE);
-               }
-       }
+       race_SendAll(player, false);
 }
 
 MUTATOR_HOOKFUNCTION(rc, MakePlayerObserver)
@@ -327,31 +306,7 @@ MUTATOR_HOOKFUNCTION(rc, GetPressedKeys)
        entity player = M_ARGV(0, entity);
 
        race_checkAndWriteName(player);
-
-       if (!IS_OBSERVER(player))
-       {
-               if(vdist(player.velocity - player.velocity_z * '0 0 1', >, speedaward_speed))
-               {
-                       speedaward_speed = vlen(player.velocity - player.velocity_z * '0 0 1');
-                       speedaward_holder = player.netname;
-                       speedaward_uid = player.crypto_idfp;
-                       speedaward_lastupdate = time;
-               }
-               if (speedaward_speed > speedaward_lastsent && (time - speedaward_lastupdate > 1 || intermission_running))
-               {
-                       race_send_speedaward(MSG_ALL);
-                       speedaward_lastsent = speedaward_speed;
-                       if (speedaward_speed > speedaward_alltimebest && speedaward_uid != "")
-                       {
-                               speedaward_alltimebest = speedaward_speed;
-                               speedaward_alltimebest_holder = speedaward_holder;
-                               speedaward_alltimebest_uid = speedaward_uid;
-                               db_put(ServerProgsDB, strcat(GetMapname(), record_type, "speed/speed"), ftos(speedaward_alltimebest));
-                               db_put(ServerProgsDB, strcat(GetMapname(), record_type, "speed/crypto_idfp"), speedaward_alltimebest_uid);
-                               race_send_speedaward_alltimebest(MSG_ALL);
-                       }
-               }
-       }
+       race_SpeedAwardFrame(player);
 }
 
 MUTATOR_HOOKFUNCTION(rc, ForbidPlayerScore_Clear)
@@ -482,8 +437,8 @@ void rc_SetLimits()
        }
        else
                g_race_qualifying = 0;
-    GameRules_limit_score(fraglimit_override);
-    GameRules_limit_lead(leadlimit_override);
-    GameRules_limit_time(timelimit_override);
-    GameRules_limit_time_qualifying(qualifying_override);
+       GameRules_limit_score(fraglimit_override);
+       GameRules_limit_lead(leadlimit_override);
+       GameRules_limit_time(timelimit_override);
+       GameRules_limit_time_qualifying(qualifying_override);
 }