diff --git a/src/p_enemy.c b/src/p_enemy.c index 9aecd9a27..9942862e9 100644 --- a/src/p_enemy.c +++ b/src/p_enemy.c @@ -4059,14 +4059,12 @@ bossjustdie: mo->flags &= ~(MF_SPECIAL|MF_NOGRAVITY|MF_NOCLIPHEIGHT); S_StartSound(NULL, sfx_bedie2); + P_SpawnMobjFromMobj(mo, 0, 0, 0, MT_CYBRAKDEMON_VILE_EXPLOSION); + mo->z += P_MobjFlip(mo); + P_SetObjectMomZ(mo, 12*FRACUNIT, false); + S_StartSound(mo, sfx_bgxpld); if (mo->spawnpoint && !(mo->spawnpoint->options & MTF_EXTRA)) - { - P_SpawnMobjFromMobj(mo, 0, 0, 0, MT_CYBRAKDEMON_VILE_EXPLOSION); - mo->z += P_MobjFlip(mo); - P_SetObjectMomZ(mo, 12*FRACUNIT, false); P_InstaThrust(mo, R_PointToAngle2(0, 0, mo->x, mo->y), 14*FRACUNIT); - S_StartSound(mo, sfx_bgxpld); - } break; } case MT_KOOPA: diff --git a/src/p_mobj.c b/src/p_mobj.c index 5ab11ba2c..2bd3950a9 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -8200,13 +8200,13 @@ void P_MobjThinker(mobj_t *mobj) var2 = 0; A_BossScream(mobj); } + if (P_CheckDeathPitCollide(mobj)) + { + P_RemoveMobj(mobj); + return; + } if (mobj->momz && mobj->z+mobj->momz <= mobj->floorz) { - if (P_CheckDeathPitCollide(mobj)) - { - P_RemoveMobj(mobj); - return; - } S_StartSound(mobj, sfx_befall); if (mobj->state != states+S_CYBRAKDEMON_DIE8) P_SetMobjState(mobj, S_CYBRAKDEMON_DIE8);