From f6511256f601cbf80b21ef6ce58da6da1253f28d Mon Sep 17 00:00:00 2001 From: terencehill Date: Wed, 26 Dec 2012 17:32:26 +0100 Subject: [PATCH] CA: make use of mutator hook MakePlayerObserver (code shifted in cl_client.qc breaks neither LMS nor Arena) --- qcsrc/server/cl_client.qc | 53 ++++++++++++---------------- qcsrc/server/mutators/gamemode_ca.qc | 8 +++++ 2 files changed, 31 insertions(+), 30 deletions(-) diff --git a/qcsrc/server/cl_client.qc b/qcsrc/server/cl_client.qc index 35f678e2d..fda52868a 100644 --- a/qcsrc/server/cl_client.qc +++ b/qcsrc/server/cl_client.qc @@ -401,6 +401,29 @@ void PutObserverInServer (void) WriteEntity(MSG_ONE, self); } + if(g_arena) + { + if(self.version_mismatch) + { + Spawnqueue_Unmark(self); + Spawnqueue_Remove(self); + } + else + { + Spawnqueue_Insert(self); + } + } + else if(g_lms) + { + // Only if the player cannot play at all + if(PlayerScore_Add(self, SP_LMS_RANK, 0) == 666) + self.frags = FRAGS_SPECTATOR; + else + self.frags = FRAGS_LMS_LOSER; + } + else + self.frags = FRAGS_SPECTATOR; + DropAllRunes(self); MUTATOR_CALLHOOK(MakePlayerObserver); @@ -506,36 +529,6 @@ void PutObserverInServer (void) self.punchvector = '0 0 0'; self.oldvelocity = self.velocity; self.fire_endtime = -1; - - if(g_arena) - { - if(self.version_mismatch) - { - Spawnqueue_Unmark(self); - Spawnqueue_Remove(self); - } - else - { - Spawnqueue_Insert(self); - } - } - else if(g_lms) - { - // Only if the player cannot play at all - if(PlayerScore_Add(self, SP_LMS_RANK, 0) == 666) - self.frags = FRAGS_SPECTATOR; - else - self.frags = FRAGS_LMS_LOSER; - } - else if(g_ca) - { - if(self.caplayer) - self.frags = FRAGS_LMS_LOSER; - else - self.frags = FRAGS_SPECTATOR; - } - else - self.frags = FRAGS_SPECTATOR; } .float model_randomizer; diff --git a/qcsrc/server/mutators/gamemode_ca.qc b/qcsrc/server/mutators/gamemode_ca.qc index 51daf6f2e..330659572 100644 --- a/qcsrc/server/mutators/gamemode_ca.qc +++ b/qcsrc/server/mutators/gamemode_ca.qc @@ -190,6 +190,13 @@ MUTATOR_HOOKFUNCTION(ca_ForbidPlayerScore_Clear) return 1; } +MUTATOR_HOOKFUNCTION(ca_MakePlayerObserver) +{ + if(self.caplayer) + self.frags = FRAGS_LMS_LOSER; + return 1; +} + MUTATOR_HOOKFUNCTION(ca_ForbidThrowCurrentWeapon) { return 1; @@ -211,6 +218,7 @@ MUTATOR_DEFINITION(gamemode_ca) { MUTATOR_HOOK(PlayerSpawn, ca_PlayerSpawn, CBC_ORDER_ANY); MUTATOR_HOOK(PutClientInServer, ca_PutClientInServer, CBC_ORDER_ANY); + MUTATOR_HOOK(MakePlayerObserver, ca_MakePlayerObserver, CBC_ORDER_ANY); MUTATOR_HOOK(reset_map_global, ca_reset_map_global, CBC_ORDER_ANY); MUTATOR_HOOK(reset_map_players, ca_reset_map_players, CBC_ORDER_ANY); MUTATOR_HOOK(GetTeamCount, ca_GetTeamCount, CBC_ORDER_EXCLUSIVE); -- 2.39.2