#ifndef SOUND_SI2_HPP #define SOUND_SI2_HPP #include "sound/SI2Script.hpp" #include "ui/Types.hpp" #include #include #include class SOUNDKITDEF; struct SOUNDKITLOOKUP; class SOUNDKITOBJECT; class SoundKitProperties; class SI2 { public: // Static variables static FrameScript_Method s_ScriptFunctions[NUM_SCRIPT_FUNCTIONS_SI2]; static TSGrowableArray s_SoundKitDefs; static TSHashTable s_SoundKitLookupTable; static char s_ChannelGroupNames[32][18]; // Static functions static int32_t CreditsMusicUpdate(const void* data, void* param); static SOUNDKITDEF* GetSoundKitDef(int32_t id); static int32_t GetSoundKitID(const char* name); static int32_t GlueMusicUpdate(const void* data, void* param); static int32_t Init(int32_t a1); static void InitSoundKitDefs(); static void InitSoundKitGroups(); static bool IsPlaying(SOUNDKITOBJECT* object); static int32_t PlaySoundKit(const char *name, int a2, SOUNDKITOBJECT* object, SoundKitProperties* properties); static int32_t PlaySoundKit(int32_t id, int32_t a2, SOUNDKITOBJECT* object, SoundKitProperties* properties, int32_t a5, void* a6, int32_t a7, int32_t a8); static void PlayUISound(int32_t id); 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); static int32_t StopOrFadeOut(SOUNDKITOBJECT* object, int32_t stop, float fadeOutTime, int32_t a4); }; #endif