]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/server/mutators/mutator/gamemode_keepaway.qc
Cleanse PlayerUseKey and PlayerPreThink
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / mutators / mutator / gamemode_keepaway.qc
index 0da0e30251d97e396ee3b1b7ad22487f6723701c..53d770611f0290ce1ab4d2ffe59141850d741e13 100644 (file)
@@ -345,26 +345,27 @@ MUTATOR_HOOKFUNCTION(ka, GiveFragsForKill)
 }
 
 MUTATOR_HOOKFUNCTION(ka, PlayerPreThink)
-{SELFPARAM();
+{
+       entity player = M_ARGV(0, entity);
+
        // clear the item used for the ball in keepaway
-       self.items &= ~IT_KEY1;
+       player.items &= ~IT_KEY1;
 
        // if the player has the ball, make sure they have the item for it (Used for HUD primarily)
-       if(self.ballcarried)
-               self.items |= IT_KEY1;
-
-       return false;
+       if(player.ballcarried)
+               player.items |= IT_KEY1;
 }
 
 MUTATOR_HOOKFUNCTION(ka, PlayerUseKey)
-{SELFPARAM();
+{
+       entity player = M_ARGV(0, entity);
+
        if(MUTATOR_RETURNVALUE == 0)
-       if(self.ballcarried)
+       if(player.ballcarried)
        {
-               ka_DropEvent(self);
-               return 1;
+               ka_DropEvent(player);
+               return true;
        }
-       return false;
 }
 
 MUTATOR_HOOKFUNCTION(ka, PlayerDamage_Calculate) // for changing damage and force values that are applied to players in g_damage.qc
@@ -408,57 +409,66 @@ MUTATOR_HOOKFUNCTION(ka, PlayerDamage_Calculate) // for changing damage and forc
 }
 
 MUTATOR_HOOKFUNCTION(ka, ClientDisconnect)
-{SELFPARAM();
-       if(self.ballcarried) { ka_DropEvent(self); } // a player with the ball has left the match, drop it
-       return false;
+{
+       entity player = M_ARGV(0, entity);
+
+       if(player.ballcarried) { ka_DropEvent(player); } // a player with the ball has left the match, drop it
 }
 
 MUTATOR_HOOKFUNCTION(ka, MakePlayerObserver)
-{SELFPARAM();
-       if(self.ballcarried) { ka_DropEvent(self); } // a player with the ball has left the match, drop it
+{
+       entity player = M_ARGV(0, entity);
+
+       if(player.ballcarried) { ka_DropEvent(player); } // a player with the ball has left the match, drop it
        return false;
 }
 
 MUTATOR_HOOKFUNCTION(ka, PlayerPowerups)
-{SELFPARAM();
+{
+       entity player = M_ARGV(0, entity);
+
        // In the future this hook is supposed to allow me to do some extra stuff with waypointsprites and invisibility powerup
        // So bare with me until I can fix a certain bug with ka_ballcarrier_waypointsprite_visible_for_player()
 
-       self.effects &= ~autocvar_g_keepaway_ballcarrier_effects;
+       player.effects &= ~autocvar_g_keepaway_ballcarrier_effects;
 
-       if(self.ballcarried)
-               self.effects |= autocvar_g_keepaway_ballcarrier_effects;
-
-       return false;
+       if(player.ballcarried)
+               player.effects |= autocvar_g_keepaway_ballcarrier_effects;
 }
 
 .float stat_sv_airspeedlimit_nonqw;
 .float stat_sv_maxspeed;
 
 MUTATOR_HOOKFUNCTION(ka, PlayerPhysics)
-{SELFPARAM();
-       if(self.ballcarried)
+{
+       entity player = M_ARGV(0, entity);
+
+       if(player.ballcarried)
        {
-               self.stat_sv_airspeedlimit_nonqw *= autocvar_g_keepaway_ballcarrier_highspeed;
-               self.stat_sv_maxspeed *= autocvar_g_keepaway_ballcarrier_highspeed;
+               player.stat_sv_airspeedlimit_nonqw *= autocvar_g_keepaway_ballcarrier_highspeed;
+               player.stat_sv_maxspeed *= autocvar_g_keepaway_ballcarrier_highspeed;
        }
-       return false;
 }
 
 MUTATOR_HOOKFUNCTION(ka, BotShouldAttack)
-{SELFPARAM();
+{
+       entity bot = M_ARGV(0, entity);
+       entity targ = M_ARGV(1, entity);
+
        // if neither player has ball then don't attack unless the ball is on the ground
-       if(!checkentity.ballcarried && !self.ballcarried && ka_ball.owner)
+       if(!targ.ballcarried && !bot.ballcarried && ka_ball.owner)
                return true;
        return false;
 }
 
 MUTATOR_HOOKFUNCTION(ka, HavocBot_ChooseRole)
-{SELFPARAM();
-       if (self.ballcarried)
-               self.havocbot_role = havocbot_role_ka_carrier;
+{
+       entity bot = M_ARGV(0, entity);
+
+       if (bot.ballcarried)
+               bot.havocbot_role = havocbot_role_ka_carrier;
        else
-               self.havocbot_role = havocbot_role_ka_collector;
+               bot.havocbot_role = havocbot_role_ka_collector;
        return true;
 }