diff --git a/src/playsim/p_enemy.cpp b/src/playsim/p_enemy.cpp index ee3b9ed14..337052d6f 100644 --- a/src/playsim/p_enemy.cpp +++ b/src/playsim/p_enemy.cpp @@ -3153,13 +3153,17 @@ void A_BossDeath(AActor *self) } if (Level->flags & LEVEL_MAP07SPECIAL) { - if (type == NAME_Fatso) + PClassActor * fatso = PClass::FindActor(NAME_Fatso); + PClassActor * arachnotron = PClass::FindActor(NAME_Arachnotron); + bool samereplacement = (type == NAME_Fatso || type == NAME_Arachnotron) && fatso && arachnotron && fatso->GetReplacement(Level) == arachnotron->GetReplacement(Level); + + if (type == NAME_Fatso || samereplacement) { Level->EV_DoFloor (DFloor::floorLowerToLowest, NULL, 666, 1., 0, -1, 0, false); return; } - if (type == NAME_Arachnotron) + if (type == NAME_Arachnotron || samereplacement) { Level->EV_DoFloor (DFloor::floorRaiseByTexture, NULL, 667, 1., 0, -1, 0, false); return;