diff --git a/Source/player.cpp b/Source/player.cpp index 66261e5861b..1a3edf3dbfb 100644 --- a/Source/player.cpp +++ b/Source/player.cpp @@ -3464,9 +3464,15 @@ void PlayDungMsgs() myPlayer.Say(HeroSpeech::IMustBeGettingClose, 40); myPlayer.pDungMsgs |= DungMsgHell; } else if (!setlevel && currlevel == 16 && !myPlayer._pLvlVisited[16] && (myPlayer.pDungMsgs & DungMsgDiablo) == 0) { - sfxdelay = 40; - sfxdnum = SfxID::DiabloGreeting; - myPlayer.pDungMsgs |= DungMsgDiablo; + for (auto &monster : Monsters) { + if (monster.type().type != MT_DIABLO) continue; + if (monster.hitPoints > 0) { + sfxdelay = 40; + sfxdnum = SfxID::DiabloGreeting; + myPlayer.pDungMsgs |= DungMsgDiablo; + } + break; + } } else if (!setlevel && currlevel == 17 && !myPlayer._pLvlVisited[17] && (myPlayer.pDungMsgs2 & 1) == 0) { sfxdelay = 10; sfxdnum = SfxID::Defiler1;