- fixed edge case where both Mancubus and Arachnotron have the same replacement and trigger a boss action.

This commit is contained in:
Christoph Oelckers 2020-10-24 12:57:41 +02:00
parent 36189027b0
commit 148e7cd361

View file

@ -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;