From f4071ce42fcb82dcd51fa6bf5abb8e98ca512b1c Mon Sep 17 00:00:00 2001 From: toaster Date: Fri, 6 Jan 2023 13:50:47 +0000 Subject: [PATCH] Fix getting race-endingly stuck in zoom tubes while respawning --- src/p_spec.c | 3 +++ src/p_user.c | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/p_spec.c b/src/p_spec.c index 48d38a125..47afb87be 100644 --- a/src/p_spec.c +++ b/src/p_spec.c @@ -4401,6 +4401,9 @@ static void P_ProcessZoomTube(player_t *player, mtag_t sectag, boolean end) if (player->mo->tracer && player->mo->tracer->type == MT_TUBEWAYPOINT && player->carry == CR_ZOOMTUBE) return; + if (player->respawn.state != RESPAWNST_NONE) + return; + // Find line #3 tagged to this sector lineindex = Tag_FindLineSpecial(3, sectag); diff --git a/src/p_user.c b/src/p_user.c index e40a69569..d626e1e19 100644 --- a/src/p_user.c +++ b/src/p_user.c @@ -4166,7 +4166,7 @@ void P_PlayerThink(player_t *player) // for a bit after a teleport. player->mo->reactiontime--; } - else if (player->mo->tracer && player->mo->tracer->type == MT_TUBEWAYPOINT) + else if (player->carry == CR_ZOOMTUBE && player->mo->tracer && player->mo->tracer->type == MT_TUBEWAYPOINT) { P_DoZoomTube(player); player->rmomx = player->rmomy = 0;