From fed08a28a1b298d35686a24689bfddd7dbc4b028 Mon Sep 17 00:00:00 2001 From: Sally Coolatta Date: Mon, 19 Dec 2022 01:50:14 -0500 Subject: [PATCH] Make Gachabom stay still when tossing forward --- src/p_mobj.c | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/src/p_mobj.c b/src/p_mobj.c index 43aa79294..900076abc 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -7058,8 +7058,40 @@ static boolean P_MobjRegularThink(mobj_t *mobj) } } break; - case MT_ORBINAUT: case MT_GACHABOM: + { + if (mobj->flags2 & MF2_AMBUSH) + { + mobj->friction = ORIG_FRICTION/4; + + if (mobj->momx || mobj->momy) + { + mobj_t *ghost = P_SpawnGhostMobj(mobj); + + if (mobj->target && !P_MobjWasRemoved(mobj->target) && mobj->target->player) + { + ghost->color = mobj->target->player->skincolor; + ghost->colorized = true; + } + } + + if (P_IsObjectOnGround(mobj)) + { + if (mobj->movecount > 1) + { + S_StartSound(mobj, mobj->info->activesound); + mobj->momx = mobj->momy = 0; + mobj->movecount = 1; + } + } + + if (mobj->threshold > 0) + mobj->threshold--; + break; + } + } + /* FALLTHRU */ + case MT_ORBINAUT: { Obj_OrbinautThink(mobj); P_MobjCheckWater(mobj);