diff --git a/src/p_enemy.c b/src/p_enemy.c index 9aecd9a276c2b79e390846a7d96b1a8d53ab7d2c..9942862e91bb5b3b2fd8c65203af65493bc0e5ef 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 5ab11ba2c8441ea7e193f40d8ac6d19232174c9c..2bd3950a9709f14c8e5d5c933d05cd55e6a969db 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);