From 32b91117ed4ed81d1b60cb69000270476ac617e6 Mon Sep 17 00:00:00 2001 From: TimePath Date: Thu, 5 Nov 2015 11:53:26 +1100 Subject: [PATCH] Mutators: make cloaked and running_guns mutators --- qcsrc/common/mapinfo.qh | 2 +- qcsrc/common/mutators/all.inc | 2 ++ .../mutators/mutator/cloaked/cloaked.qc | 19 +++++++++++++++++++ .../mutators/mutator/cloaked/module.inc | 3 +++ .../mutators/mutator/running_guns/module.inc | 3 +++ .../mutator/running_guns/running_guns.qc | 14 ++++++++++++++ qcsrc/server/autocvars.qh | 2 -- qcsrc/server/defs.qh | 2 +- qcsrc/server/g_world.qc | 12 +----------- qcsrc/server/miscfunctions.qh | 1 - qcsrc/server/mutators/events.qh | 3 +++ qcsrc/server/mutators/mutator/gamemode_cts.qc | 7 ------- qcsrc/server/teamplay.qc | 2 -- 13 files changed, 47 insertions(+), 25 deletions(-) create mode 100644 qcsrc/common/mutators/mutator/cloaked/cloaked.qc create mode 100644 qcsrc/common/mutators/mutator/cloaked/module.inc create mode 100644 qcsrc/common/mutators/mutator/running_guns/module.inc create mode 100644 qcsrc/common/mutators/mutator/running_guns/running_guns.qc diff --git a/qcsrc/common/mapinfo.qh b/qcsrc/common/mapinfo.qh index 24674b6d6..04ea78e4c 100644 --- a/qcsrc/common/mapinfo.qh +++ b/qcsrc/common/mapinfo.qh @@ -80,7 +80,7 @@ REGISTER_GAMETYPE(_("Race"),rc,g_race,RACE,false,"","timelimit=20 qualifying_tim } #define g_race IS_GAMETYPE(RACE) -REGISTER_GAMETYPE(_("Race CTS"),cts,g_cts,CTS,false,"","timelimit=20",_("Race for fastest time.")); +REGISTER_GAMETYPE(_("Race CTS"),cts,g_cts,CTS,false,"cloaked","timelimit=20",_("Race for fastest time.")); #define g_cts IS_GAMETYPE(CTS) REGISTER_GAMETYPE(_("Team Deathmatch"),tdm,g_tdm,TEAM_DEATHMATCH,true,"","timelimit=20 pointlimit=50 teams=2 leadlimit=0",_("Help your team score the most frags against the enemy team")) diff --git a/qcsrc/common/mutators/all.inc b/qcsrc/common/mutators/all.inc index 21a23b069..a262cb9bc 100644 --- a/qcsrc/common/mutators/all.inc +++ b/qcsrc/common/mutators/all.inc @@ -10,6 +10,7 @@ #include "mutator/bloodloss/module.inc" #include "mutator/breakablehook/module.inc" #include "mutator/campcheck/module.inc" +#include "mutator/cloaked/module.inc" #include "mutator/damagetext/module.inc" #include "mutator/dodging/module.inc" #include "mutator/hook/module.inc" @@ -25,6 +26,7 @@ #include "mutator/random_gravity/module.inc" #include "mutator/rocketflying/module.inc" #include "mutator/rocketminsta/module.inc" +#include "mutator/running_guns/module.inc" #include "mutator/sandbox/module.inc" #include "mutator/spawn_near_teammate/module.inc" #include "mutator/touchexplode/module.inc" diff --git a/qcsrc/common/mutators/mutator/cloaked/cloaked.qc b/qcsrc/common/mutators/mutator/cloaked/cloaked.qc new file mode 100644 index 000000000..f8231f784 --- /dev/null +++ b/qcsrc/common/mutators/mutator/cloaked/cloaked.qc @@ -0,0 +1,19 @@ +#ifdef IMPLEMENTATION + +REGISTER_MUTATOR(cloaked, cvar("g_cloaked")); + +float autocvar_g_balance_cloaked_alpha; + +MUTATOR_HOOKFUNCTION(cloaked, SetDefaultAlpha) +{ + default_player_alpha = autocvar_g_balance_cloaked_alpha; + default_weapon_alpha = default_player_alpha; + return true; +} + +MUTATOR_HOOKFUNCTION(cloaked, BuildMutatorsPrettyString) +{ + if (!g_cts) ret_string = strcat(ret_string, ", Cloaked"); +} + +#endif diff --git a/qcsrc/common/mutators/mutator/cloaked/module.inc b/qcsrc/common/mutators/mutator/cloaked/module.inc new file mode 100644 index 000000000..3d3a04293 --- /dev/null +++ b/qcsrc/common/mutators/mutator/cloaked/module.inc @@ -0,0 +1,3 @@ +#ifdef SVQC +#include "cloaked.qc" +#endif diff --git a/qcsrc/common/mutators/mutator/running_guns/module.inc b/qcsrc/common/mutators/mutator/running_guns/module.inc new file mode 100644 index 000000000..036b70ff6 --- /dev/null +++ b/qcsrc/common/mutators/mutator/running_guns/module.inc @@ -0,0 +1,3 @@ +#ifdef SVQC +#include "running_guns.qc" +#endif diff --git a/qcsrc/common/mutators/mutator/running_guns/running_guns.qc b/qcsrc/common/mutators/mutator/running_guns/running_guns.qc new file mode 100644 index 000000000..cad4d5f2f --- /dev/null +++ b/qcsrc/common/mutators/mutator/running_guns/running_guns.qc @@ -0,0 +1,14 @@ +#ifdef IMPLEMENTATION + +bool autocvar_g_running_guns; + +REGISTER_MUTATOR(running_guns, autocvar_g_running_guns); + +MUTATOR_HOOKFUNCTION(running_guns, SetDefaultAlpha) +{ + default_player_alpha = -1; + default_weapon_alpha = +1; + return true; +} + +#endif diff --git a/qcsrc/server/autocvars.qh b/qcsrc/server/autocvars.qh index 5d9c8dc71..2910eb9bb 100644 --- a/qcsrc/server/autocvars.qh +++ b/qcsrc/server/autocvars.qh @@ -81,7 +81,6 @@ float autocvar_g_balance_armor_rot; float autocvar_g_balance_armor_rotlinear; int autocvar_g_balance_armor_rotstable; int autocvar_g_balance_armor_start; -float autocvar_g_balance_cloaked_alpha; float autocvar_g_balance_contents_damagerate; float autocvar_g_balance_contents_drowndelay; int autocvar_g_balance_contents_playerdamage_drowning; @@ -259,7 +258,6 @@ bool autocvar_g_respawn_ghosts; float autocvar_g_respawn_ghosts_maxtime; float autocvar_g_respawn_ghosts_speed; int autocvar_g_respawn_waves; -bool autocvar_g_running_guns; bool autocvar_g_shootfromcenter; bool autocvar_g_shootfromeye; string autocvar_g_shootfromfixedorigin; diff --git a/qcsrc/server/defs.qh b/qcsrc/server/defs.qh index f8c5f1cfb..2027b70f1 100644 --- a/qcsrc/server/defs.qh +++ b/qcsrc/server/defs.qh @@ -20,7 +20,7 @@ // Globals -float g_cloaked, g_footsteps, g_grappling_hook, g_instagib; +float g_footsteps, g_grappling_hook, g_instagib; float g_warmup_limit; float g_warmup_allguns; float g_warmup_allow_timeout; diff --git a/qcsrc/server/g_world.qc b/qcsrc/server/g_world.qc index bfeebf576..0b8c14fa1 100644 --- a/qcsrc/server/g_world.qc +++ b/qcsrc/server/g_world.qc @@ -96,17 +96,7 @@ void ShuffleMaplist(); void SetDefaultAlpha() { - if(autocvar_g_running_guns) - { - default_player_alpha = -1; - default_weapon_alpha = +1; - } - else if(g_cloaked) - { - default_player_alpha = autocvar_g_balance_cloaked_alpha; - default_weapon_alpha = default_player_alpha; - } - else + if (!MUTATOR_CALLHOOK(SetDefaultAlpha)) { default_player_alpha = autocvar_g_player_alpha; if(default_player_alpha == 0) diff --git a/qcsrc/server/miscfunctions.qh b/qcsrc/server/miscfunctions.qh index 3ca3ea673..2be5a9e22 100644 --- a/qcsrc/server/miscfunctions.qh +++ b/qcsrc/server/miscfunctions.qh @@ -322,7 +322,6 @@ void readlevelcvars(void) sv_clones = cvar("sv_clones"); sv_foginterval = cvar("sv_foginterval"); - g_cloaked = cvar("g_cloaked"); g_footsteps = cvar("g_footsteps"); g_jetpack = cvar("g_jetpack"); sv_maxidle = cvar("sv_maxidle"); diff --git a/qcsrc/server/mutators/events.qh b/qcsrc/server/mutators/events.qh index 9cd9045d5..4795aab28 100644 --- a/qcsrc/server/mutators/events.qh +++ b/qcsrc/server/mutators/events.qh @@ -153,6 +153,9 @@ MUTATOR_HOOKABLE(ForbidThrowCurrentWeapon, EV_NO_ARGS); /** returns true if dropping the current weapon shall not be allowed at any time including death */ MUTATOR_HOOKABLE(ForbidDropCurrentWeapon, EV_NO_ARGS); +/** */ +MUTATOR_HOOKABLE(SetDefaultAlpha, EV_NO_ARGS); + /** allows changing attack rate */ #define EV_WeaponRateFactor(i, o) \ /**/ i(float, weapon_rate) \ diff --git a/qcsrc/server/mutators/mutator/gamemode_cts.qc b/qcsrc/server/mutators/mutator/gamemode_cts.qc index a220801ee..c256d1b97 100644 --- a/qcsrc/server/mutators/mutator/gamemode_cts.qc +++ b/qcsrc/server/mutators/mutator/gamemode_cts.qc @@ -380,13 +380,6 @@ MUTATOR_HOOKFUNCTION(cts, ForbidPlayerScore_Clear) return true; // in CTS, you don't lose score by observing } -MUTATOR_HOOKFUNCTION(cts, SetModname) -{ - g_cloaked = 1; // always enable cloak in CTS - - return false; -} - MUTATOR_HOOKFUNCTION(cts, GetRecords) { for(int i = record_page * 200; i < MapInfo_count && i < record_page * 200 + 200; ++i) diff --git a/qcsrc/server/teamplay.qc b/qcsrc/server/teamplay.qc index 2f2bf5454..f5889a8cc 100644 --- a/qcsrc/server/teamplay.qc +++ b/qcsrc/server/teamplay.qc @@ -132,8 +132,6 @@ string getwelcomemessage(void) modifications = strcat(modifications, ", No start weapons"); if(cvar("sv_gravity") < stof(cvar_defstring("sv_gravity"))) modifications = strcat(modifications, ", Low gravity"); - if(g_cloaked && !g_cts) - modifications = strcat(modifications, ", Cloaked"); if(g_weapon_stay && !g_cts) modifications = strcat(modifications, ", Weapons stay"); if(g_jetpack) -- 2.39.2