]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Mutators: make cloaked and running_guns mutators
authorTimePath <andrew.hardaker1995@gmail.com>
Thu, 5 Nov 2015 00:53:26 +0000 (11:53 +1100)
committerTimePath <andrew.hardaker1995@gmail.com>
Thu, 5 Nov 2015 01:00:19 +0000 (12:00 +1100)
13 files changed:
qcsrc/common/mapinfo.qh
qcsrc/common/mutators/all.inc
qcsrc/common/mutators/mutator/cloaked/cloaked.qc [new file with mode: 0644]
qcsrc/common/mutators/mutator/cloaked/module.inc [new file with mode: 0644]
qcsrc/common/mutators/mutator/running_guns/module.inc [new file with mode: 0644]
qcsrc/common/mutators/mutator/running_guns/running_guns.qc [new file with mode: 0644]
qcsrc/server/autocvars.qh
qcsrc/server/defs.qh
qcsrc/server/g_world.qc
qcsrc/server/miscfunctions.qh
qcsrc/server/mutators/events.qh
qcsrc/server/mutators/mutator/gamemode_cts.qc
qcsrc/server/teamplay.qc

index 24674b6d66a4ce79b0eb3353f800de946a2c302e..04ea78e4c5e0ed34b96ea40efe521baff00141e4 100644 (file)
@@ -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"))
index 21a23b069432197d8e000529a41a15e3996d26dd..a262cb9bcd60d41cfbe75c5f05a7570ffc03a195 100644 (file)
@@ -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 (file)
index 0000000..f8231f7
--- /dev/null
@@ -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 (file)
index 0000000..3d3a042
--- /dev/null
@@ -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 (file)
index 0000000..036b70f
--- /dev/null
@@ -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 (file)
index 0000000..cad4d5f
--- /dev/null
@@ -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
index 5d9c8dc7148ab4b51a9bf0577b5faba4b31310ee..2910eb9bb8a7f46b559acb6ff7854d757b073f88 100644 (file)
@@ -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;
index f8c5f1cfbb812c0fd48c7d2dbde6140b3f2d5f8e..2027b70f172f5f23cf5607258af86b12cb4d8a02 100644 (file)
@@ -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;
index bfeebf5762d6caf49ac9eaed7f2be7c00c0bdc25..0b8c14fa10dab3b2b6c1a0ec90afb72a4b941008 100644 (file)
@@ -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)
index 3ca3ea67306edc931bfa1206ea2a586cfaa24235..2be5a9e221a07f868eed62f0e1650aaefdb7c38f 100644 (file)
@@ -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");
index 9cd9045d538a8bd3cde4bda33bb471b47fe8952c..4795aab28dcb5dcf7fca777e3758c4e61670f5ee 100644 (file)
@@ -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) \
index a220801eefb6ed3ee46a5ccdbfbfe5b491572700..c256d1b974b6d79e9a8ceb57d0198b5364c12e03 100644 (file)
@@ -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)
index 2f2bf545455a60af2b6a1c4185bd25ce43bda98f..f5889a8cc1e79a9bb8d59a1f4d6c18a14f4e852f 100644 (file)
@@ -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)