diasurgical/devilutionX

[Issue Report]: No more Diablo Speech when entering DLVL 16 first time

Closed this issue · 4 comments

Operating System

Linux x64

DevilutionX version

Custom build (commit 1078598)

Describe

Since commit ad452cb there is no more Diablo Speech when entering DLVL 16 first time.

To Reproduce

Check the commit before and listen to Diablo when you enter the pentagram.
Use the attached save game.
speech.zip
You should hear Diablo speaking. But since commit ad452cb
you can't hear Diablo speak anymore.

The commit before the issue is 6b2a0c4

Expected Behavior

Hear Diablo speak when you first enter level 16

Additional context

If I understand correctly, the missing audio message was activated in the following commit.
2881f13

Very strange, the commit in question that supposedly broke it was verified to be working correctly before being merged. There have been some changes with sound logic (tsv file and such). Are you sure it's not rooted in one of those changes? I'll take a look and see later if I can find the root cause of the problem.

PlayDungMsgs() is called before InitMonsters() so it works fine if you're using debug commands and have leftover monster data from a previous game session.

EDIT: Since this is meant for MP games where Diablo was killed by another player, you have to make sure to check the Monsters array after DeltaLoadLevel().

devilutionX/Source/diablo.cpp

Lines 2987 to 2988 in 63fd721

if (gbIsMultiplayer)
DeltaLoadLevel();

PlayDungMsgs() is called before InitMonsters() so it works fine if you're using debug commands and have leftover monster data from a previous game session.

EDIT: Since this is meant for MP games where Diablo was killed by another player, you have to make sure to check the Monsters array after DeltaLoadLevel().

devilutionX/Source/diablo.cpp

Lines 2987 to 2988 in 63fd721

if (gbIsMultiplayer)
DeltaLoadLevel();

Thank you! I'll submit a PR for this.

Fixed by : #7467 as a part of the cleanup