]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/server/mutators/gamemode_freezetag.qc
Rename *spawned vars to *players as the TODO says, it makes sense
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / mutators / gamemode_freezetag.qc
index d09bbeecf6bfbb4f91ccf34c1c01821c001120fc..488a4f124ae378b7b62965d25e5206df491316a9 100644 (file)
@@ -85,12 +85,10 @@ void freezetag_Freeze(entity attacker)
        freezetag_Ice_Think();
        self = oldself;
 
+       RemoveGrapplingHook(self);
+
        // add waypoint
-       WaypointSprite_Spawn("freezetag_frozen", 0, 0, self, '0 0 64', world, self.team, self, waypointsprite_attached, TRUE);
-       if(self.waypointsprite_attached)
-       {
-               WaypointSprite_UpdateTeamRadar(self.waypointsprite_attached, RADARICON_WAYPOINT, '0.25 0.90 1');
-       }
+       WaypointSprite_Spawn("freezetag_frozen", 0, 0, self, '0 0 64', world, self.team, self, waypointsprite_attached, TRUE, RADARICON_WAYPOINT, '0.25 0.90 1');
 
        if(attacker == self)
        {
@@ -144,7 +142,7 @@ MUTATOR_HOOKFUNCTION(freezetag_RemovePlayer)
                --totalalive;
        }
 
-       if(totalspawned > 2) // only check for winners if we had more than two players (one of them left, don't let the other player win just because of that)
+       if(total_players > 2) // only check for winners if we had more than two players (one of them left, don't let the other player win just because of that)
                freezetag_CheckWinner();
 
        freezetag_Unfreeze(world);
@@ -196,7 +194,7 @@ MUTATOR_HOOKFUNCTION(freezetag_PlayerSpawn)
 {
     freezetag_Unfreeze(world); // start by making sure that all ice blocks are removed
 
-       if(totalspawned == 1 && time > game_starttime) // only one player active on server, start a new match immediately
+       if(total_players == 1 && time > game_starttime) // only one player active on server, start a new match immediately
        if(!next_round && warmup && (time < warmup - autocvar_g_freezetag_warmup || time > warmup)) // not awaiting next round
        {
                next_round = time;
@@ -326,6 +324,13 @@ MUTATOR_HOOKFUNCTION(freezetag_PlayerDamage_Calculate)
     return 1;
 }
 
+MUTATOR_HOOKFUNCTION(freezetag_ForbidThrowCurrentWeapon)
+{
+       if (self.freezetag_frozen)
+               return 1;
+       return 0;
+}
+
 MUTATOR_DEFINITION(gamemode_freezetag)
 {
        MUTATOR_HOOK(MakePlayerObserver, freezetag_RemovePlayer, CBC_ORDER_ANY);
@@ -336,6 +341,7 @@ MUTATOR_DEFINITION(gamemode_freezetag)
        MUTATOR_HOOK(PlayerPreThink, freezetag_PlayerPreThink, CBC_ORDER_FIRST);
        MUTATOR_HOOK(PlayerPhysics, freezetag_PlayerPhysics, CBC_ORDER_FIRST);
        MUTATOR_HOOK(PlayerDamage_Calculate, freezetag_PlayerDamage_Calculate, CBC_ORDER_ANY);
+       MUTATOR_HOOK(ForbidThrowCurrentWeapon, freezetag_ForbidThrowCurrentWeapon, CBC_ORDER_FIRST); //first, last or any? dunno.
 
        MUTATOR_ONADD
        {