]> git.rm.cloudns.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
First approach to speed in racetimer.
authorDes <xon@damianv.com.ar>
Tue, 3 Sep 2024 14:07:45 +0000 (11:07 -0300)
committerDes <xon@damianv.com.ar>
Tue, 3 Sep 2024 14:07:45 +0000 (11:07 -0300)
qcsrc/client/hud/panel/racetimer.qc
qcsrc/client/main.qh

index 4a76dbbd55d5fe3b211d0b474ef6cc3e3833c892..b79b76cb640967fb25200d38fd793a3070f9523c 100644 (file)
@@ -217,11 +217,18 @@ void HUD_RaceTimer ()
                                }
                                else
                                {
+                                       float speed_conversion_factor;
+                                       string speed_text = string_null;
+                                       if(autocvar_cl_race_cptimes_showspeed)
+                                       {
+                                               speed_conversion_factor = GetSpeedUnitFactor(autocvar_hud_speed_unit);
+                                               speed_text = sprintf(" @%d%s",vlen(vec2(csqcplayer.velocity)) * speed_conversion_factor, autocvar_cl_race_cptimes_showspeed_unit ? GetSpeedUnit(autocvar_hud_speed_unit) : "");
+                                       }
                                        // build checkpoint split strings
                                        if(race_time && race_previousbesttime)
-                                               s = MakeRaceString(race_checkpoint, TIME_DECODE(race_time) - TIME_DECODE(race_previousbesttime), 0, ((race_mypreviousbesttime) ? TIME_DECODE(race_time) - TIME_DECODE(race_mypreviousbesttime) : 0), 0, race_previousbestname);
+                                               s = strcat(MakeRaceString(race_checkpoint, TIME_DECODE(race_time) - TIME_DECODE(race_previousbesttime), 0, ((race_mypreviousbesttime) ? TIME_DECODE(race_time) - TIME_DECODE(race_mypreviousbesttime) : 0), 0, race_previousbestname), speed_text);
                                        else
-                                               s = MakeRaceString(race_checkpoint, 0, -1, 0, 0, race_previousbestname);
+                                               s = strcat(MakeRaceString(race_checkpoint, 0, -1, 0, 0, race_previousbestname), speed_text);
                                        if(race_time)
                                                forcetime = TIME_ENCODED_TOSTRING(race_time, false);
 
index 8b96b0833e2a9229931b05ca8519d4513c57ec98..71e965b7674188e3abb4f1cd4d355a6e6c8b3f03 100644 (file)
@@ -23,9 +23,13 @@ bool autocvar_developer_csqcentities;
 // this can't be done now as players would lack these from their configs then
 bool autocvar_cl_race_checkpoint_splits_console;
 bool autocvar_cl_race_checkpoint_splits_hud;
+bool autocvar_cl_race_cptimes_showspeed = false;
+bool autocvar_cl_race_cptimes_showspeed_unit = false;
 #else
 AUTOCVAR_SAVE(cl_race_checkpoint_splits_console, bool, 1, "Print checkpoint splits to console");
 AUTOCVAR_SAVE(cl_race_checkpoint_splits_hud, bool, 1, "Show race checkpoint splits on HUD in infomessages");
+AUTOCVAR_SAVE(cl_race_cptimes_showspeed, bool, 0, "Show race checkpoint speed");
+AUTOCVAR_SAVE(cl_race_cptimes_showspeed_unit, bool, 0, "Show race checkpoint speed units");
 #endif
 bool autocvar_cl_race_cptimes_onlyself; // TODO: move to race gamemode
 bool autocvar_cl_race_cptimes_showself = false;