X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fcl_player.qc;h=22419da9507facd58f97ee575f8895476bd2c757;hb=5b9d6b7e214e7c48d7de4f1c7d62006707463135;hp=0fe71f1448c7dd72fbfad0ab3e23066e1f9f166f;hpb=d7ce456aa93a09db42b7c9db3c98049b382b791d;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/cl_player.qc b/qcsrc/server/cl_player.qc index 0fe71f144..22419da95 100644 --- a/qcsrc/server/cl_player.qc +++ b/qcsrc/server/cl_player.qc @@ -240,13 +240,20 @@ void player_setupanimsformodel() void player_anim (void) { float deadbits = (self.anim_state & (ANIMSTATE_DEAD1 | ANIMSTATE_DEAD2)); - if(self.deadflag && !deadbits) - if(random() < 0.5) - deadbits = ANIMSTATE_DEAD1; - else - deadbits = ANIMSTATE_DEAD2; + if(self.deadflag) { + if (!deadbits) { + // Decide on which death animation to use. + if(random() < 0.5) + deadbits = ANIMSTATE_DEAD1; + else + deadbits = ANIMSTATE_DEAD2; + } + } else { + // Clear a previous death animation. + deadbits = 0; + } float animbits = deadbits; - if(self.freezetag_frozen) + if(self.frozen) animbits |= ANIMSTATE_FROZEN; if(self.crouch) animbits |= ANIMSTATE_DUCK; @@ -414,7 +421,7 @@ void calculate_player_respawn_time() else self.respawn_countdown = -1; // do not count down - if(g_cts || autocvar_g_forced_respawn) + if(autocvar_g_forced_respawn) self.respawn_flags = self.respawn_flags | RESPAWN_FORCE; } @@ -652,7 +659,6 @@ void PlayerDamage (entity inflictor, entity attacker, float damage, float deatht // print an obituary message Obituary (attacker, inflictor, self, deathtype); - race_PreDie(); // increment frag counter for used weapon type float w; @@ -685,6 +691,9 @@ void PlayerDamage (entity inflictor, entity attacker, float damage, float deatht // when we get here, player actually dies + Unfreeze(self); // remove any icy remains + self.health = 0; // Unfreeze resets health, so we need to set it back + // clear waypoints WaypointSprite_PlayerDead(); // throw a weapon