From b4502d27a1071e0b5a1aede0c1ddb9e4be909c36 Mon Sep 17 00:00:00 2001 From: Samual Date: Mon, 2 Apr 2012 00:38:19 -0400 Subject: [PATCH] Remove more game mode dependent code from other files --- qcsrc/server/cl_impulse.qc | 2 +- qcsrc/server/g_damage.qc | 9 +---- qcsrc/server/mutators/gamemode_ctf.qc | 50 +++++++++++++++++---------- qcsrc/server/mutators/gamemode_ctf.qh | 3 -- 4 files changed, 34 insertions(+), 30 deletions(-) diff --git a/qcsrc/server/cl_impulse.qc b/qcsrc/server/cl_impulse.qc index de7da012a..524e796af 100644 --- a/qcsrc/server/cl_impulse.qc +++ b/qcsrc/server/cl_impulse.qc @@ -161,7 +161,7 @@ void ImpulseCommands (void) { wp = WaypointSprite_Attach("helpme", TRUE, RADARICON_HELPME, '1 0.5 0'); if(!wp) - WaypointSprite_HelpMePing(self.waypointsprite_attachedforcarrier); // FIXCTF + WaypointSprite_HelpMePing(self.waypointsprite_attachedforcarrier); else WaypointSprite_Ping(wp); sprint(self, "HELP ME attached\n"); diff --git a/qcsrc/server/g_damage.qc b/qcsrc/server/g_damage.qc index 7c5afac8a..94ceb25c7 100644 --- a/qcsrc/server/g_damage.qc +++ b/qcsrc/server/g_damage.qc @@ -422,14 +422,7 @@ void Obituary (entity attacker, entity inflictor, entity targ, float deathtype) Send_KillNotification(a, s, msg, deathtype, MSG_KILL); - if(g_ctf && targ.flagcarried) - { - UpdateFrags(attacker, ctf_ReadScore("score_kill")); // FIXCTF - PlayerScore_Add(attacker, SP_CTF_FCKILLS, 1); - GiveFrags(attacker, targ, 0, deathtype); // for logging - } - else - GiveFrags(attacker, targ, 1, deathtype); + GiveFrags(attacker, targ, 1, deathtype); if (targ.killcount > 2) { Send_KillNotification(s, ftos(targ.killcount), a, KILL_END_SPREE, MSG_SPREE); diff --git a/qcsrc/server/mutators/gamemode_ctf.qc b/qcsrc/server/mutators/gamemode_ctf.qc index 6eae4cb3e..b2346e993 100644 --- a/qcsrc/server/mutators/gamemode_ctf.qc +++ b/qcsrc/server/mutators/gamemode_ctf.qc @@ -893,23 +893,6 @@ void ctf_FlagSetup(float teamnumber, entity flag) // called when spawning a flag // Hook Functions // ============== -MUTATOR_HOOKFUNCTION(ctf_RemovePlayer) -{ - if(self.flagcarried) - { ctf_Handle_Throw(self, world, DROP_NORMAL); } - - return 0; -} - -MUTATOR_HOOKFUNCTION(ctf_PortalTeleport) -{ - if(self.flagcarried) - if(!autocvar_g_ctf_portalteleport) - { ctf_Handle_Throw(self, world, DROP_NORMAL); } - - return 0; -} - MUTATOR_HOOKFUNCTION(ctf_PlayerPreThink) { entity flag; @@ -959,12 +942,43 @@ MUTATOR_HOOKFUNCTION(ctf_PlayerDamage) // for changing damage and force values t return 0; } +MUTATOR_HOOKFUNCTION(ctf_PlayerDies) +{ + if((frag_attacker != frag_target) && (frag_attacker.classname == "player") && (frag_target.flagcarried)) + { + PlayerTeamScore_AddScore(frag_attacker, ctf_ReadScore("score_kill")); + PlayerScore_Add(frag_attacker, SP_CTF_FCKILLS, 1); + } + + if(frag_target.flagcarried) + { ctf_Handle_Throw(frag_target, world, DROP_NORMAL); } + + return 0; +} + MUTATOR_HOOKFUNCTION(ctf_GiveFragsForKill) { frag_score = 0; return (autocvar_g_ctf_ignore_frags); // no frags counted in ctf if this is true } +MUTATOR_HOOKFUNCTION(ctf_RemovePlayer) +{ + if(self.flagcarried) + { ctf_Handle_Throw(self, world, DROP_NORMAL); } + + return 0; +} + +MUTATOR_HOOKFUNCTION(ctf_PortalTeleport) +{ + if(self.flagcarried) + if(!autocvar_g_ctf_portalteleport) + { ctf_Handle_Throw(self, world, DROP_NORMAL); } + + return 0; +} + MUTATOR_HOOKFUNCTION(ctf_PlayerUseKey) { entity player = self; @@ -1171,7 +1185,7 @@ MUTATOR_DEFINITION(gamemode_ctf) { MUTATOR_HOOK(MakePlayerObserver, ctf_RemovePlayer, CBC_ORDER_ANY); MUTATOR_HOOK(ClientDisconnect, ctf_RemovePlayer, CBC_ORDER_ANY); - MUTATOR_HOOK(PlayerDies, ctf_RemovePlayer, CBC_ORDER_ANY); + MUTATOR_HOOK(PlayerDies, ctf_PlayerDies, CBC_ORDER_ANY); MUTATOR_HOOK(PortalTeleport, ctf_PortalTeleport, CBC_ORDER_ANY); MUTATOR_HOOK(GiveFragsForKill, ctf_GiveFragsForKill, CBC_ORDER_ANY); MUTATOR_HOOK(PlayerPreThink, ctf_PlayerPreThink, CBC_ORDER_ANY); diff --git a/qcsrc/server/mutators/gamemode_ctf.qh b/qcsrc/server/mutators/gamemode_ctf.qh index cdb49a593..5a7e9d88b 100644 --- a/qcsrc/server/mutators/gamemode_ctf.qh +++ b/qcsrc/server/mutators/gamemode_ctf.qh @@ -3,9 +3,6 @@ // used in cheats.qc void ctf_RespawnFlag(entity flag) -// used in g_damage.qc -float ctf_ReadScore(string parameter); // SOON WON'T BE NEEDED. // FIXCTF - // used in t_quake3.qc void spawnfunc_info_player_team1(); void spawnfunc_info_player_team2(); -- 2.39.2