X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fcommon%2Fgamemodes%2Fgamemode%2Frace%2Fsv_race.qc;h=c87384c94bc3377c45f27fa6d7ac422585c6657f;hb=cd9380e44806612f8eb2d04f27ca283ae8f0a461;hp=bef3b19712d11b83db06fd248529f242a1543c08;hpb=6f2c502485d481af6580321a27311c3a097552ac;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/common/gamemodes/gamemode/race/sv_race.qc b/qcsrc/common/gamemodes/gamemode/race/sv_race.qc index bef3b1971..c87384c94 100644 --- a/qcsrc/common/gamemodes/gamemode/race/sv_race.qc +++ b/qcsrc/common/gamemodes/gamemode/race/sv_race.qc @@ -1,6 +1,12 @@ #include "sv_race.qh" +#include +#include +#include +#include #include +#include +#include #define autocvar_g_race_laps_limit cvar("g_race_laps_limit") float autocvar_g_race_qualifying_timelimit; @@ -122,16 +128,26 @@ MUTATOR_HOOKFUNCTION(rc, AbortSpeedrun) race_PreparePlayer(player); // nice try } -MUTATOR_HOOKFUNCTION(rc, PlayerPhysics) +MUTATOR_HOOKFUNCTION(rc, PlayerPreThink) { entity player = M_ARGV(0, entity); - float dt = M_ARGV(1, float); + if(!IS_PLAYER(player)) + return; + + // we need to perform this in PlayerPreThink as PlayerPhysics may not be called (vehicle support) + float dt = frametime; player.race_movetime_frac += dt; float f = floor(player.race_movetime_frac); player.race_movetime_frac -= f; player.race_movetime_count += f; player.race_movetime = player.race_movetime_frac + player.race_movetime_count; +} + +MUTATOR_HOOKFUNCTION(rc, PlayerPhysics) +{ + entity player = M_ARGV(0, entity); + //float dt = M_ARGV(1, float); #ifdef SVQC if(IS_PLAYER(player)) @@ -202,7 +218,7 @@ MUTATOR_HOOKFUNCTION(rc, reset_map_global) Score_NicePrint(NULL); race_ClearRecords(); - PlayerScore_Sort(race_place, 0, 1, 0); + PlayerScore_Sort(race_place, 0, true, false); FOREACH_CLIENT(true, { if(it.race_place) @@ -322,7 +338,7 @@ MUTATOR_HOOKFUNCTION(rc, GetPressedKeys) { entity player = M_ARGV(0, entity); - if(CS(player).cvar_cl_allow_uidtracking == 1 && CS(player).cvar_cl_allow_uid2name == 1) + if(CS_CVAR(player).cvar_cl_allow_uidtracking == 1 && CS_CVAR(player).cvar_cl_allow_uid2name == 1) { if (!player.stored_netname) player.stored_netname = strzone(uid2name(player.crypto_idfp)); @@ -444,6 +460,7 @@ void race_Initialize() race_ScoreRules(); if(g_race_qualifying == 2) warmup_stage = 0; + radar_showenemies = true; } void rc_SetLimits()