]> git.rm.cloudns.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Make player code more generic by detecting after the mutator hook PlayerDies if the...
authorterencehill <piuntn@gmail.com>
Tue, 20 Nov 2012 21:37:40 +0000 (22:37 +0100)
committerterencehill <piuntn@gmail.com>
Tue, 20 Nov 2012 21:37:40 +0000 (22:37 +0100)
qcsrc/server/cl_player.qc
qcsrc/server/mutators/base.qh
qcsrc/server/mutators/gamemode_freezetag.qc

index 64329f23eeab2234b5c244479a3c27d53c8adb7d..f9b8f73132ea4eacd0ee7cebb6d15b9f5da3e75d 100644 (file)
@@ -692,8 +692,7 @@ void PlayerDamage (entity inflictor, entity attacker, float damage, float deatht
                frag_inflictor = inflictor;
                frag_target = self;
                frag_deathtype = deathtype;
-               if (MUTATOR_CALLHOOK(PlayerDies))
-                       return;
+               MUTATOR_CALLHOOK(PlayerDies);
 
                weapon_action(self.weapon, WR_PLAYERDEATH);
 
@@ -718,11 +717,13 @@ void PlayerDamage (entity inflictor, entity attacker, float damage, float deatht
                if(g_arena)
                        Spawnqueue_Unmark(self);
 
-               if(g_freezetag)
+               // player could have been miraculously resuscitated ;)
+               // e.g. players in freezetag get frozen, they don't really die
+               if(self.health >= 1)
                        return;
 
                // when we get here, player actually dies
-               // clear waypoints (do this AFTER FreezeTag)
+               // clear waypoints
                WaypointSprite_PlayerDead();
 
                // make the corpse upright (not tilted)
index 976eb8401df865c23ee2d4c44a8736eff8817c29..e276d555c96c80f767b972aee74552709c16b56d 100644 (file)
@@ -53,7 +53,6 @@ MUTATOR_HOOKABLE(ClientDisconnect);
 
 MUTATOR_HOOKABLE(PlayerDies);
        // called when a player dies to e.g. remove stuff he was carrying.
-       // return 1 to skip death animation, gibs and such (e.g. if player must respawn immediately)
        // INPUT:
                entity frag_inflictor;
                entity frag_attacker;
index edd5c0002f0c65109bf941f8336b6878dd7b6e45..d4502f9b46cd07a4e7fea30835207c8921f54bb8 100644 (file)
@@ -292,7 +292,7 @@ MUTATOR_HOOKFUNCTION(freezetag_PlayerDies)
                }
                PutClientInServer(); // respawn the player
                self.health = 1;
-               return 1;
+               return 0;
        }
 
        if(self.freezetag_frozen == 0)