From: Mario Date: Mon, 26 Feb 2018 12:35:38 +0000 (+1000) Subject: Add a mutator hook to skip respawn time calculations (fixes a reference to CA) X-Git-Tag: xonotic-v0.8.5~2277 X-Git-Url: http://de.git.xonotic.org/?a=commitdiff_plain;h=762577839aad2cac55e1806a7145ffaccc6ccca5;p=xonotic%2Fxonotic-data.pk3dir.git Add a mutator hook to skip respawn time calculations (fixes a reference to CA) --- diff --git a/qcsrc/server/mutators/events.qh b/qcsrc/server/mutators/events.qh index fb452c339..6853c04a1 100644 --- a/qcsrc/server/mutators/events.qh +++ b/qcsrc/server/mutators/events.qh @@ -1065,3 +1065,9 @@ MUTATOR_HOOKABLE(PlayerPhysics_UpdateStats, EV_PlayerPhysics_UpdateStats); /** bot */ i(entity, MUTATOR_ARGV_0_entity) \ /**/ MUTATOR_HOOKABLE(HavocBot_Aim, EV_HavocBot_Aim); + +/** return true to skip respawn time calculations */ +#define EV_CalculateRespawnTime(i, o) \ + /** player */ i(entity, MUTATOR_ARGV_0_entity) \ + /**/ +MUTATOR_HOOKABLE(CalculateRespawnTime, EV_CalculateRespawnTime); diff --git a/qcsrc/server/mutators/mutator/gamemode_ca.qc b/qcsrc/server/mutators/mutator/gamemode_ca.qc index 67b999e61..43ed39aea 100644 --- a/qcsrc/server/mutators/mutator/gamemode_ca.qc +++ b/qcsrc/server/mutators/mutator/gamemode_ca.qc @@ -373,6 +373,12 @@ MUTATOR_HOOKFUNCTION(ca, PlayerDamage_SplitHealthArmor) GameRules_scoring_add_team(frag_attacker, SCORE, (frag_damage - excess) * autocvar_g_ca_damage2score_multiplier); } +MUTATOR_HOOKFUNCTION(ca, CalculateRespawnTime) +{ + // no respawn calculations needed, player is forced to spectate anyway + return true; +} + MUTATOR_HOOKFUNCTION(ca, PlayerRegen) { // no regeneration in CA diff --git a/qcsrc/server/player.qc b/qcsrc/server/player.qc index 27c11b1e2..06bdb1428 100644 --- a/qcsrc/server/player.qc +++ b/qcsrc/server/player.qc @@ -220,7 +220,7 @@ void PlayerCorpseDamage(entity this, entity inflictor, entity attacker, float da void calculate_player_respawn_time(entity this) { - if(g_ca) + if(MUTATOR_CALLHOOK(CalculateRespawnTime, this)) return; float gametype_setting_tmp;