From f786a8dbf63b1dec51550070466e7742de68f9fb Mon Sep 17 00:00:00 2001 From: lachwright Date: Mon, 18 Nov 2019 22:57:26 +0800 Subject: [PATCH] Important fixes & mine lob speed reduction --- src/p_enemy.c | 3 ++- src/p_mobj.c | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/p_enemy.c b/src/p_enemy.c index 18da9c7e6..32695fcae 100644 --- a/src/p_enemy.c +++ b/src/p_enemy.c @@ -14656,7 +14656,7 @@ void A_DragonWing(mobj_t *actor) fixed_t x, y; #ifdef HAVE_BLUA - if (LUA_CallAction("A_DragonSegment", actor)) + if (LUA_CallAction("A_DragonWing", actor)) return; #endif @@ -14697,5 +14697,6 @@ void A_DragonSegment(mobj_t *actor) return; #endif + actor->angle = hangle; P_TeleportMove(actor, target->x + xdist, target->y + ydist, target->z + zdist); } \ No newline at end of file diff --git a/src/p_mobj.c b/src/p_mobj.c index a76dd7e4c..dbba83c8a 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -9633,7 +9633,7 @@ void P_MobjThinker(mobj_t *mobj) if (mobj->threshold == 0) // if the timer hits 0, look for a mine to drop! { mobj_t *segment = mobj; - while (segment->tracer != NULL && segment->tracer->state == &states[segment->tracer->info->spawnstate]) + while (segment->tracer != NULL && !P_MobjWasRemoved(segment->tracer) && segment->tracer->state == &states[segment->tracer->info->spawnstate]) { segment = segment->tracer; } @@ -9641,7 +9641,7 @@ void P_MobjThinker(mobj_t *mobj) { mobj_t *mine = P_SpawnMobjFromMobj(segment, 0, 0, 0, segment->info->painchance); mine->angle = segment->angle; - P_InstaThrust(mine, mobj->angle, P_AproxDistance(mobj->momx, mobj->momy)); + P_InstaThrust(mine, mobj->angle, P_AproxDistance(mobj->momx, mobj->momy) >> 1); P_SetObjectMomZ(mine, -2*FRACUNIT, true); S_StartSound(mine, mine->info->seesound); P_SetMobjState(segment, segment->info->raisestate);