Bug #1122

include forcetapout in grenade / artillary explosion

Added by keMoN 12 months ago. Updated 6 months ago.

Status:Fixed% Done:


Priority:HighSpent time:-
Category:Mod generic
Target version:2.77
OS: Arch:


When waiting for a revive and being exploded, it often feels like the gib animation has to play out completely before actually entering limbo queue for next spawn.
This results in a full spawn timer when gibbed at ~0.5-1 sec on the spawn timer.

Same thing for when you get killed without a gib and you cant tap out with spacebar for around a second unless you use /forcetapout.
It feels like the game won’t let you tap-out even though you’re gibbed.

At the moment you need to press space bar quickly to tap-out and avoid full spawn timer, but most of the time you just go on full since animation needs to be played before and with death with gibs you cant do anything. You will always be full everytime you die at around 1 sec even with 0 ping, so it has nothing to do with sv_fps or latency.

See the video for a better explanation.
Respawning should have priority over the gib animation playing out. Prioirty order is messed up

spawn queue.mp4 (1.21 MB) keMoN, 29.10.2018 16:56

Associated revisions

Revision 86bf356c
Added by Spyhawk 6 months ago

game: fixed respawn delayed when no death animation are played, fixes #1122


#1 Updated by keMoN 12 months ago

#2 Updated by keMoN 12 months ago

  • Description updated (diff)

#3 Updated by keMoN 12 months ago

  • Description updated (diff)

#4 Updated by Spyhawk 6 months ago

  • Target version changed from 2.78 to 2.77

This might be important for comp, should be checked asap.

#5 Updated by Spyhawk 6 months ago

  • Priority changed from Normal to High

#6 Updated by Spyhawk 6 months ago

  • % Done changed from 0 to 50

Looks like this is done on purpose, but I didn’t grasp the idea behind it. See player_die() in g_combat.c and g_forcerespawn cvar used in `ClientThink_real()` in g_active.c.

    // don't allow respawn until the death anim is done
    // g_forcerespawn may force spawning at some later time
    self->client->respawnTime = level.timeCurrent + 800;

Edit: This was only added to avoid all death animation being suddenly "cut off" when players would respasw nearly immediately, but I missed these don’t exist when the player is gibbed already... g_forcerespawn is not directly related.

#7 Updated by Spyhawk 6 months ago

  • Status changed from New to Fixed
  • % Done changed from 50 to 100

Also available in: Atom PDF