From 4549ec5334b8bd7db8e22f91413704979c2914f7 Mon Sep 17 00:00:00 2001 From: Sally Coolatta Date: Wed, 28 Sep 2022 03:07:46 -0400 Subject: [PATCH] Fix duel bomb direction not working --- src/p_mobj.c | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/src/p_mobj.c b/src/p_mobj.c index 6e699cbf5..c7dcac8ff 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -1703,7 +1703,13 @@ void P_XYMovement(mobj_t *mo) if (walltransferred == false) { - if (mo->flags & MF_SLIDEME) + if (mo->type == MT_DUELBOMB) + { + P_SpawnMobjFromMobj(mo, 0, 0, 0, MT_BUMP); + Obj_DuelBombReverse(mo); + xmove = ymove = 0; + } + else if (mo->flags & MF_SLIDEME) { P_SlideMove(mo); if (P_MobjWasRemoved(mo)) @@ -1759,10 +1765,6 @@ void P_XYMovement(mobj_t *mo) S_StartSound(mo, sfx_s3k44); // Bubble bounce break; - case MT_DUELBOMB: - Obj_DuelBombReverse(mo); - break; - default: break; } @@ -10329,9 +10331,6 @@ mobj_t *P_SpawnMobj(fixed_t x, fixed_t y, fixed_t z, mobjtype_t type) // Remove before release CONS_Alert(CONS_WARNING, "Boss waypoints are deprecated. Did you forget to remove the old checkpoints, too?\n"); break; - case MT_DUELBOMB: - Obj_DuelBombInit(mobj); - break; default: break; } @@ -12752,6 +12751,14 @@ static boolean P_SetupSpawnedMapThing(mapthing_t *mthing, mobj_t *mobj, boolean maptargets++; break; } + case MT_DUELBOMB: + { + // Duel Bomb needs init to match real map thing's angle + mobj->angle = FixedAngle(mthing->angle << FRACBITS); + Obj_DuelBombInit(mobj); + *doangle = false; + break; + } case MT_BANANA: { // Give Duel bananas a random angle