#include <client/draw.qh>
#include <common/ent_cs.qh>
+#include <lib/csqcmodel/cl_player.qh>
// used for caching the string after passing through a checkpoint
float racetimer_lastcheckpoint;
}
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) : "");
+ string speed_color = "^xf73";
+ float speed_conversion_factor = GetSpeedUnitFactor(autocvar_hud_speed_unit);;
+ float speed = vlen(vec2(csqcplayer.velocity));
+ float speed_diff = speed - race_checkpoint_splits_speed[race_checkpoint] ;
+ string units_text = autocvar_cl_race_cptimes_showspeed_unit ? GetSpeedUnit(autocvar_hud_speed_unit) : "";
+ if(speed_diff > 0) speed_color = "^x66f";
+ else if (speed_diff == 0) speed_color = "^3";
+ if((TIME_DECODE(race_time) - TIME_DECODE(race_previousbesttime)) < 0 || !race_checkpoint_splits_speed[race_checkpoint])
+ {
+ race_checkpoint_splits_speed[race_checkpoint] = speed;
+ }
+ speed_text = sprintf(" ^7%d%s %s(%+d%s)", speed * speed_conversion_factor, units_text, speed_color, speed_diff, units_text);
}
// build checkpoint split strings
if(race_time && race_previousbesttime)
float race_laptime;
float race_checkpointtime;
string race_checkpoint_splits[256];
+float race_checkpoint_splits_speed[256];
float race_previousbesttime;
float race_mypreviousbesttime;
string race_previousbestname;