From 0b1be76442384e4ba9c62a31d939b6ed143caa8b Mon Sep 17 00:00:00 2001 From: toaster Date: Thu, 5 Oct 2023 23:00:32 +0100 Subject: [PATCH] K_FollowerHornTaunt: fix mistaken port priority on horns Incorrect behaviour sometimes prevented you from hearing somebody else's horn based on player slot order --- src/k_follower.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/k_follower.c b/src/k_follower.c index bed6518dc..3018566f4 100644 --- a/src/k_follower.c +++ b/src/k_follower.c @@ -773,12 +773,21 @@ void K_FollowerHornTaunt(player_t *taunter, player_t *victim) honk->fuse = TICRATE/2; honk->renderflags |= RF_DONTDRAW; - if (P_IsDisplayPlayer(victim) || P_IsDisplayPlayer(taunter)) - S_StartSound(NULL, fl->hornsound); - honk->flags2 |= MF2_AMBUSH; } - honk->renderflags &= ~K_GetPlayerDontDrawFlag(victim); + UINT32 dontdrawflag = K_GetPlayerDontDrawFlag(victim); + + // A display player is affected! + if (dontdrawflag != 0) + { + // Only play the sound for the first seen display player + if ((honk->renderflags & RF_DONTDRAW) == RF_DONTDRAW) + { + S_StartSound(NULL, fl->hornsound); + } + + honk->renderflags &= ~dontdrawflag; + } } }