From 2ebbfe3e7a3553fe72d7757347efd0fc340268d3 Mon Sep 17 00:00:00 2001 From: James R Date: Wed, 15 Nov 2023 14:51:16 -0800 Subject: [PATCH] MT_WALLSPIKE: let radius be increased without requiring map/HVR adjustment --- src/p_mobj.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/p_mobj.c b/src/p_mobj.c index 54d62622e..26265c21d 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -13867,7 +13867,16 @@ static boolean P_SetupSpawnedMapThing(mapthing_t *mthing, mobj_t *mobj) // Use per-thing collision for spikes unless the intangible flag is checked. if (!(mthing->thing_args[2] & TMSF_INTANGIBLE) && !metalrecording) { + const fixed_t kSpriteRadius = 16 * mobj->scale; + fixed_t x = FixedMul(mobj->radius - kSpriteRadius, FCOS(mobj->angle)); + fixed_t y = FixedMul(mobj->radius - kSpriteRadius, FSIN(mobj->angle)); + + mobj->sprxoff -= x; + mobj->spryoff -= y; + P_UnsetThingPosition(mobj); + mobj->x += x; + mobj->y += y; mobj->flags &= ~(MF_NOBLOCKMAP | MF_NOCLIPHEIGHT); mobj->flags |= MF_SOLID; P_SetThingPosition(mobj);