]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/common/mutators/mutator/nix/nix.qc
Step 5: complete
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / mutators / mutator / nix / nix.qc
index 0258519397cb3c3d9fad0bb392b18a010b9158c1..9c1f4bc7ad7cf68842d98d9e929052bf29adb604 100644 (file)
@@ -36,7 +36,6 @@ bool NIX_CanChooseWeapon(int wpn);
 
 REGISTER_MUTATOR(nix, cvar("g_nix") && !cvar("g_instagib") && !cvar("g_overkill"))
 {
-    SELFPARAM();
        MUTATOR_ONADD
        {
                g_nix_with_blaster = autocvar_g_nix_with_blaster;
@@ -64,11 +63,9 @@ REGISTER_MUTATOR(nix, cvar("g_nix") && !cvar("g_instagib") && !cvar("g_overkill"
                        it.ammo_fuel = start_ammo_fuel;
                        it.weapons = start_weapons;
                        if(!client_hasweapon(it, PS(it).m_weapon, true, false))
-                               PS(it).m_switchweapon = w_getbestweapon(self);
+                               PS(it).m_switchweapon = w_getbestweapon(it);
                });
        }
-
-       return false;
 }
 
 bool NIX_CanChooseWeapon(int wpn)
@@ -125,7 +122,7 @@ void NIX_GiveCurrentWeapon(entity this)
        // get weapon info
        entity e = Weapons_from(nix_weapon);
 
-       if(nix_nextchange != self.nix_lastchange_id) // this shall only be called once per round!
+       if(nix_nextchange != this.nix_lastchange_id) // this shall only be called once per round!
        {
                this.ammo_shells = this.ammo_nails = this.ammo_rockets = this.ammo_cells = this.ammo_plasma = this.ammo_fuel = 0;
 
@@ -220,14 +217,12 @@ MUTATOR_HOOKFUNCTION(nix, ForbidThrowCurrentWeapon)
 
 MUTATOR_HOOKFUNCTION(nix, BuildMutatorsString)
 {
-       ret_string = strcat(ret_string, ":NIX");
-       return false;
+       M_ARGV(0, string) = strcat(M_ARGV(0, string), ":NIX");
 }
 
 MUTATOR_HOOKFUNCTION(nix, BuildMutatorsPrettyString)
 {
-       ret_string = strcat(ret_string, ", NIX");
-       return false;
+       M_ARGV(0, string) = strcat(M_ARGV(0, string), ", NIX");
 }
 
 MUTATOR_HOOKFUNCTION(nix, FilterItem)
@@ -263,16 +258,16 @@ MUTATOR_HOOKFUNCTION(nix, OnEntityPreSpawn)
 
        if(ent.classname == "target_items") // items triggers cannot work in nix (as they change weapons/ammo)
                return true;
-       return false;
 }
 
 MUTATOR_HOOKFUNCTION(nix, PlayerPreThink)
-{SELFPARAM();
+{
+       entity player = M_ARGV(0, entity);
+
        if(!intermission_running)
-       if(!IS_DEAD(self))
-       if(IS_PLAYER(self))
-               NIX_GiveCurrentWeapon(this);
-       return false;
+       if(!IS_DEAD(player))
+       if(IS_PLAYER(player))
+               NIX_GiveCurrentWeapon(player);
 }
 
 MUTATOR_HOOKFUNCTION(nix, PlayerSpawn)
@@ -282,12 +277,10 @@ MUTATOR_HOOKFUNCTION(nix, PlayerSpawn)
        player.nix_lastchange_id = -1;
        NIX_GiveCurrentWeapon(player); // overrides the weapons you got when spawning
        player.items |= IT_UNLIMITED_SUPERWEAPONS;
-       return false;
 }
 
 MUTATOR_HOOKFUNCTION(nix, SetModname, CBC_ORDER_LAST)
 {
-       modname = "NIX";
-       return false;
+       M_ARGV(0, string) = "NIX";
 }
 #endif