}
#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"))
#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"
#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"
--- /dev/null
+#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
--- /dev/null
+#ifdef SVQC
+#include "cloaked.qc"
+#endif
--- /dev/null
+#ifdef SVQC
+#include "running_guns.qc"
+#endif
--- /dev/null
+#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
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;
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;
// 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;
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)
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");
/** 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) \
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)
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)