From 6888c64279b3cdbce35a4690ffa01f15a78dacb3 Mon Sep 17 00:00:00 2001 From: fallenoak Date: Tue, 25 Nov 2025 20:37:49 -0600 Subject: [PATCH] feat(sound): implement more of SESound::LoadDiskSound --- src/sound/SESound.cpp | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/src/sound/SESound.cpp b/src/sound/SESound.cpp index d96ba28..f00f364 100644 --- a/src/sound/SESound.cpp +++ b/src/sound/SESound.cpp @@ -331,9 +331,27 @@ int32_t SESound::IsInitialized() { int32_t SESound::LoadDiskSound(FMOD::System* fmodSystem, const char* filename, FMOD_MODE fmodMode, SESound* sound, FMOD::SoundGroup* fmodSoundGroup1, FMOD::SoundGroup* fmodSoundGroup2, bool a7, int32_t a8, uint32_t a9, int32_t a10, uint32_t decodeBufferSize, int32_t a12, float a13, float a14, float a15, float* a16) { SESound::s_LoadingCritSect.Enter(); + if (!sound || !fmodSystem || !filename || !*filename) { + SESound::s_LoadingCritSect.Leave(); + + return 0; + } + FMOD_RESULT result; - // TODO + if (sound->m_internal) { + // TODO sound->m_internal->byte6D = 1; + + if (sound->m_internal->m_fmodChannel) { + sound->m_internal->m_fmodChannel->stop(); + sound->m_internal->m_fmodChannel = nullptr; + } + + if (sound->m_internal) { + sound->m_internal->m_sound = nullptr; + sound->m_internal = nullptr; + } + } auto internal = STORM_NEW(SEDiskSound);