diff --git a/src/p_enemy.c b/src/p_enemy.c index 428c023ff3e6333b7f62cda4e3f528762b1d606e..58e2a70537d18eb8940396cd45d9f69d48be640a 100644 --- a/src/p_enemy.c +++ b/src/p_enemy.c @@ -4189,8 +4189,6 @@ static void P_DoBoss5Death(mobj_t *mo) if (!P_MobjWasRemoved(pole)) { P_SetScale(pole, 2*FRACUNIT, true); - pole->momx = P_ReturnThrustX(pole, pole->angle, speed); - pole->momy = P_ReturnThrustY(pole, pole->angle, speed); P_SetTarget(&pole->tracer, P_SpawnMobj( pole->x, pole->y, pole->z - 256*FRACUNIT, @@ -4199,9 +4197,6 @@ static void P_DoBoss5Death(mobj_t *mo) { pole->tracer->flags |= MF_NOCLIPTHING; P_SetScale(pole->tracer, 2*FRACUNIT, true); - pole->angle = pole->tracer->angle = mo->tracer->angle; - pole->tracer->momx = pole->momx; - pole->tracer->momy = pole->momy; P_SetTarget(&pole->tracer->tracer, P_SpawnMobj( pole->x + P_ReturnThrustX(pole, mo->tracer->angle, FRACUNIT), @@ -4210,7 +4205,12 @@ static void P_DoBoss5Death(mobj_t *mo) MT_FSGNA)); if (!P_MobjWasRemoved(pole->tracer->tracer)) { + pole->angle = pole->tracer->angle = mo->tracer->angle; pole->tracer->tracer->angle = pole->angle - ANGLE_90; + pole->momx = P_ReturnThrustX(pole, pole->angle, speed); + pole->momy = P_ReturnThrustY(pole, pole->angle, speed); + pole->tracer->momx = pole->momx; + pole->tracer->momy = pole->momy; pole->tracer->tracer->momx = pole->momx; pole->tracer->tracer->momy = pole->momy; }