From 6779c508e743054cccab0de8c883ef3d70c773f8 Mon Sep 17 00:00:00 2001
From: Jaime Passos <lazymyuutsu@gmail.com>
Date: Mon, 23 Dec 2019 12:17:39 -0300
Subject: [PATCH] Satisfy rollangle table with a 3deg angle

---
 src/r_patch.c  | 3 +--
 src/r_things.c | 8 +++++---
 2 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/src/r_patch.c b/src/r_patch.c
index 7c9d0ea83..69d5ad1a2 100644
--- a/src/r_patch.c
+++ b/src/r_patch.c
@@ -1180,8 +1180,7 @@ void R_CacheRotSprite(spritenum_t sprnum, UINT8 frame, spriteinfo_t *sprinfo, sp
 			leftoffset = width - leftoffset;
 		}
 
-		// Don't cache angle = 0
-		for (angle = 1; angle < ROTANGLES; angle++)
+		for (angle = 0; angle < ROTANGLES; angle++)
 		{
 			INT32 newwidth, newheight;
 
diff --git a/src/r_things.c b/src/r_things.c
index aa2a73515..d29baa711 100644
--- a/src/r_things.c
+++ b/src/r_things.c
@@ -500,7 +500,7 @@ void R_InitSprites(void)
 {
 	size_t i;
 #ifdef ROTSPRITE
-	INT32 angle, realangle = 0;
+	INT32 angle, ra;
 	float fa;
 #endif
 
@@ -510,10 +510,12 @@ void R_InitSprites(void)
 #ifdef ROTSPRITE
 	for (angle = 0; angle < ROTANGLES; angle++)
 	{
-		fa = ANG2RAD(FixedAngle(realangle<<FRACBITS));
+		ra = (ROTANGDIFF * angle);
+		if (!ra)
+			ra = (ROTANGDIFF / 2) + 1;
+		fa = ANG2RAD(FixedAngle(ra<<FRACBITS));
 		cosang2rad[angle] = FLOAT_TO_FIXED(cos(-fa));
 		sinang2rad[angle] = FLOAT_TO_FIXED(sin(-fa));
-		realangle += ROTANGDIFF;
 	}
 #endif
 
-- 
GitLab