diff --git a/source/games/exhumed/src/lighting.cpp b/source/games/exhumed/src/lighting.cpp index fa817a397..d02d8dbde 100644 --- a/source/games/exhumed/src/lighting.cpp +++ b/source/games/exhumed/src/lighting.cpp @@ -751,7 +751,7 @@ void SetTorch(int nPlayer, int bTorchOnOff) } if (bTorch) { - PlayLocalSound(StaticSound[kSoundTorchOn], 0); + PlayLocalSound(StaticSound[kSoundTorchOn], 0, CHANF_UI); } const char* buf = bTorch ? "TXT_EX_TORCHLIT" : "TXT_EX_TORCHOUT"; diff --git a/source/games/exhumed/src/sound.cpp b/source/games/exhumed/src/sound.cpp index a58ca962b..194b7fbfe 100644 --- a/source/games/exhumed/src/sound.cpp +++ b/source/games/exhumed/src/sound.cpp @@ -294,6 +294,7 @@ void PlayLocalSound(int nSound, int nRate, bool unattached, EChanFlags cflags) FSoundChan* chan; if (!unattached) { + if (!(cflags & CHANF_UI) && soundEngine->IsSourcePlayingSomething(SOURCE_None, nullptr, CHAN_BODY, nSound + 1)) return; soundEngine->StopSound(SOURCE_None, nullptr, CHAN_BODY); chan = soundEngine->StartSound(SOURCE_None, nullptr, nullptr, CHAN_BODY, cflags, nSound + 1, 1.f, ATTN_NONE, nullptr); }