From 12b97752902aa60cf7d542071f82fe1446a1a5a8 Mon Sep 17 00:00:00 2001 From: Lach Date: Sat, 6 Sep 2025 15:43:00 +1000 Subject: [PATCH] Position checkpoint parts correctly in reverse gravity --- src/objects/checkpoint.cpp | 15 +++++++++++++++ src/p_mobj.c | 5 +++++ 2 files changed, 20 insertions(+) diff --git a/src/objects/checkpoint.cpp b/src/objects/checkpoint.cpp index c0a9dfe83..507d23aa1 100644 --- a/src/objects/checkpoint.cpp +++ b/src/objects/checkpoint.cpp @@ -323,6 +323,11 @@ private: arm()->angle = angle - ANGLE_90; arm()->rollangle = -(ANGLE_90) + pivot(); + + if (arm()->eflags & MFE_VERTICALFLIP) + { + arm()->rollangle = InvAngle(arm()->rollangle); + } } void pull() @@ -337,8 +342,18 @@ private: P_GetMobjHead(this) + (FixedMul(r, FSIN(pivot())) * P_MobjFlip(this)) ); + if (orb()->eflags & MFE_VERTICALFLIP) + { + orb()->z -= orb()->height; + } + P_MoveOrigin(arm(), orb()->x, orb()->y, orb()->z); + if (arm()->eflags & MFE_VERTICALFLIP) + { + arm()->z += orb()->height - arm()->height; + } + if (speed()) { orb()->afterimages(); diff --git a/src/p_mobj.c b/src/p_mobj.c index 8abc77242..f3cabf1ee 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -14582,6 +14582,11 @@ static boolean P_SetupSpawnedMapThing(mapthing_t *mthing, mobj_t *mobj) } case MT_CHECKPOINT_END: { + if (mthing->options & MTF_OBJECTFLIP) + { + mobj->eflags |= MFE_VERTICALFLIP; + mobj->flags2 |= MF2_OBJECTFLIP; + } Obj_LinkCheckpoint(mobj); break; }