From d43d5fb9e14ebf417077cd9e31be861a3939d7c5 Mon Sep 17 00:00:00 2001 From: SSNTails Date: Fri, 23 Feb 2024 15:23:39 -0500 Subject: [PATCH 1/5] Don't change drawangle while riding on a fan --- src/p_user.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/p_user.c b/src/p_user.c index 25a60cf34..1964a6b3e 100644 --- a/src/p_user.c +++ b/src/p_user.c @@ -12134,6 +12134,8 @@ void P_PlayerThink(player_t *player) case CR_DUSTDEVIL: player->drawangle += ANG20; break; + case CR_FAN: // Don't impact drawangle in any special way when on a fan + break; /* -- in case we wanted to have the camera freely movable during zoom tubes case CR_ZOOMTUBE:*/ case CR_ROPEHANG: From a2bba687ba73f29487648c26716763e57e1f4d74 Mon Sep 17 00:00:00 2001 From: SSNTails Date: Wed, 29 May 2024 17:19:49 -0400 Subject: [PATCH 2/5] Don't break automatic mode. --- src/p_user.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/p_user.c b/src/p_user.c index 1964a6b3e..6d3bcb168 100644 --- a/src/p_user.c +++ b/src/p_user.c @@ -12134,8 +12134,6 @@ void P_PlayerThink(player_t *player) case CR_DUSTDEVIL: player->drawangle += ANG20; break; - case CR_FAN: // Don't impact drawangle in any special way when on a fan - break; /* -- in case we wanted to have the camera freely movable during zoom tubes case CR_ZOOMTUBE:*/ case CR_ROPEHANG: @@ -12146,7 +12144,8 @@ void P_PlayerThink(player_t *player) } /* FALLTHRU */ default: - player->drawangle = player->mo->angle; + if (player->powers[pw_carry] == CR_FAN && !(player->pflags & PF_DIRECTIONCHAR)) // Don't impact drawangle in any special way when on a fan + player->drawangle = player->mo->angle; break; } } From 19736fa55e5d789effd8657d3707e0a3f7c6f0ad Mon Sep 17 00:00:00 2001 From: SSNTails Date: Wed, 29 May 2024 21:18:36 -0400 Subject: [PATCH 3/5] possibly more valid...? --- src/p_user.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/p_user.c b/src/p_user.c index 6d3bcb168..6d83a18e6 100644 --- a/src/p_user.c +++ b/src/p_user.c @@ -12144,7 +12144,7 @@ void P_PlayerThink(player_t *player) } /* FALLTHRU */ default: - if (player->powers[pw_carry] == CR_FAN && !(player->pflags & PF_DIRECTIONCHAR)) // Don't impact drawangle in any special way when on a fan + if (!(player->powers[pw_carry] == CR_FAN && (player->pflags & PF_DIRECTIONCHAR))) // Don't impact drawangle in any special way when on a fan player->drawangle = player->mo->angle; break; } From bd8684e3e0ef18691945e032bf9073871fae79f1 Mon Sep 17 00:00:00 2001 From: SSNTails Date: Wed, 29 May 2024 21:42:05 -0400 Subject: [PATCH 4/5] pastel's ideas --- src/p_user.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/p_user.c b/src/p_user.c index f789de0d9..44d31ab44 100644 --- a/src/p_user.c +++ b/src/p_user.c @@ -12129,6 +12129,10 @@ void P_PlayerThink(player_t *player) case CR_DUSTDEVIL: player->drawangle += ANG20; break; + case CR_FAN: + if (player->pflags & PF_ANALOGMODE) // Don't impact drawangle in any special way when on a fan + player->drawangle = player->mo->angle; + break; /* -- in case we wanted to have the camera freely movable during zoom tubes case CR_ZOOMTUBE:*/ case CR_ROPEHANG: @@ -12139,8 +12143,6 @@ void P_PlayerThink(player_t *player) } /* FALLTHRU */ default: - if (!(player->powers[pw_carry] == CR_FAN && (player->pflags & PF_DIRECTIONCHAR))) // Don't impact drawangle in any special way when on a fan - player->drawangle = player->mo->angle; break; } } From b453e6732d50727b0423e6a32eea086e3fd2849d Mon Sep 17 00:00:00 2001 From: SSNTails Date: Wed, 29 May 2024 21:43:09 -0400 Subject: [PATCH 5/5] pastel's ideas #2 --- src/p_user.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/p_user.c b/src/p_user.c index 44d31ab44..a995e87f9 100644 --- a/src/p_user.c +++ b/src/p_user.c @@ -12143,6 +12143,7 @@ void P_PlayerThink(player_t *player) } /* FALLTHRU */ default: + player->drawangle = player->mo->angle; break; } }