From 7c500a5ba081701b11063971f211907ca7669156 Mon Sep 17 00:00:00 2001 From: fallenoak Date: Thu, 27 Nov 2025 12:15:05 -0600 Subject: [PATCH] feat(sound): add SI2::StartCreditsMusic --- src/sound/SI2.cpp | 21 +++++++++++++++++++++ src/sound/SI2.hpp | 1 + 2 files changed, 22 insertions(+) diff --git a/src/sound/SI2.cpp b/src/sound/SI2.cpp index 2e9b5e2..a6226bc 100644 --- a/src/sound/SI2.cpp +++ b/src/sound/SI2.cpp @@ -964,6 +964,27 @@ void SI2::RegisterScriptFunctions() { } } +void SI2::StartCreditsMusic(const char* name) { + SI2::StopCreditsMusic(); + SI2::StopGlueMusic(3.0f); + + if (!name) { + return; + } + + SStrCopy(s_CreditsMusicName, name, 128); + // TODO SI2::Sub4C6330(s_CreditsMusicName); + + SoundKitProperties properties; + properties.ResetToDefaults(); + properties.m_type = 1; + // TODO properties.dword18 = 0; + + SI2::PlaySoundKit(s_CreditsMusicName, 0, &s_CreditsMusicObject, &properties); + + EventRegister(EVENT_ID_POLL, &SI2::CreditsMusicUpdate); +} + void SI2::StartGlueMusic(const char* name) { // Currently playing diff --git a/src/sound/SI2.hpp b/src/sound/SI2.hpp index 09e8ea9..c2c303f 100644 --- a/src/sound/SI2.hpp +++ b/src/sound/SI2.hpp @@ -35,6 +35,7 @@ class SI2 { static void RegisterCVars(); static void RegisterUserCVars(); static void RegisterScriptFunctions(); + static void StartCreditsMusic(const char* name); static void StartGlueMusic(const char* name); static int32_t StopCreditsMusic(); static int32_t StopGlueMusic(float fadeOutTime);