- 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 (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); Level->EV_DoFloor (DFloor::floorLowerToLowest, NULL, 666, 1., 0, -1, 0, false);
return; return;
} }
if (type == NAME_Arachnotron) if (type == NAME_Arachnotron || samereplacement)
{ {
Level->EV_DoFloor (DFloor::floorRaiseByTexture, NULL, 667, 1., 0, -1, 0, false); Level->EV_DoFloor (DFloor::floorRaiseByTexture, NULL, 667, 1., 0, -1, 0, false);
return; return;