From 8757194d7347ba15fa7b25a7c66a509e123e19d0 Mon Sep 17 00:00:00 2001
From: fickleheart <fickle@tinted.red>
Date: Sun, 29 Dec 2019 20:53:28 -0600
Subject: [PATCH] Make ring shadows smaller and fix scale bug

---
 src/r_things.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/r_things.c b/src/r_things.c
index 4db6cae587..e6d0d53e61 100644
--- a/src/r_things.c
+++ b/src/r_things.c
@@ -1161,6 +1161,10 @@ static void R_ProjectDropShadow(mobj_t *thing, vissprite_t *vis, fixed_t tx, fix
 
 	scalemul = FRACUNIT - floordiff/640;
 
+	//@TODO make this configurable instead of hardcoding to the ring
+	if (thing->type == MT_RING)
+		scalemul = scalemul*2/3;
+
 	patch = W_CachePatchNum(sprites[SPR_THOK].spriteframes[0].lumppat[0], PU_CACHE);
 	xscale = FixedDiv(projection, tz);
 	yscale = FixedDiv(projectiony, tz);
@@ -1214,7 +1218,7 @@ static void R_ProjectDropShadow(mobj_t *thing, vissprite_t *vis, fixed_t tx, fix
 	shadow->gy = thing->y;
 	shadow->gzt = shadow->pz + shadow->patch->height * shadowyscale / 2;
 	shadow->gz = shadow->gzt - shadow->patch->height * shadowyscale;
-	shadow->texturemid = FixedDiv(shadow->gzt - viewz, shadowyscale);
+	shadow->texturemid = FixedMul(thing->scale, FixedDiv(shadow->gzt - viewz, shadowyscale));
 	shadow->scalestep = 0;
 	shadow->paperdistance = shadowskew; // repurposed variable
 
-- 
GitLab