feat(sound): implement SESound::Load

This commit is contained in:
fallenoak 2025-11-24 20:02:53 -06:00
parent 50ce518385
commit 2faa699a79
No known key found for this signature in database
GPG Key ID: 7628F8E61AEA070D
2 changed files with 35 additions and 7 deletions

View File

@ -180,7 +180,31 @@ void SESound::CompleteLoad() {
}
int32_t SESound::Load(const char* filename, int32_t a3, FMOD::SoundGroup* soundGroup1, FMOD::SoundGroup* soundGroup2, bool a6, bool a7, uint32_t a8, int32_t a9, uint32_t a10) {
// TODO
if (!SESound::s_Initialized) {
return 0;
}
return SESound::LoadDiskSound(
SESound::s_pGameSystem,
filename,
((a3 != 0) + 1) | (0x40 | 0x8), // TODO FMOD_MODE
this,
soundGroup1,
soundGroup2,
a6,
a9,
a8,
a7,
a10,
0,
360.0f,
360.0f,
1.0f,
nullptr
);
}
int32_t SESound::LoadDiskSound(FMOD::System* system, const char* filename, FMOD_MODE mode, SESound* sound, FMOD::SoundGroup* soundGroup1, FMOD::SoundGroup* soundGroup2, 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) {
// TODO
return 0;
}

View File

@ -7,23 +7,27 @@
class SESound {
public:
// Static variables
// Public static variables
static int32_t s_Initialized;
static FMOD::System* s_pGameSystem;
static uint32_t s_UniqueID;
// Static functions
// Public static functions
static FMOD::SoundGroup* CreateSoundGroup(const char* name, int32_t maxAudible);
static void Init(int32_t maxChannels, int32_t (*a2), int32_t enableReverb, int32_t enableSoftwareHRTF, int32_t* numChannels, int32_t* outputDriverIndex, const char* outputDriverName, void (*a8), int32_t a9);
static int32_t IsInitialized();
static void Log_Write(int32_t line, const char* file, FMOD_RESULT result, const char* fmt, ...);
// Member variables
SESoundInternal* m_internal = nullptr;
// Member functions
// Public member functions
void CompleteLoad();
int32_t Load(const char* filename, int32_t a3, FMOD::SoundGroup* soundGroup1, FMOD::SoundGroup* soundGroup2, bool a6, bool a7, uint32_t a8, int32_t a9, uint32_t a10);
private:
// Private static functions
static int32_t LoadDiskSound(FMOD::System* system, const char* filename, FMOD_MODE mode, SESound* sound, FMOD::SoundGroup* soundGroup1, FMOD::SoundGroup* soundGroup2, 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);
// Private member variables
SESoundInternal* m_internal = nullptr;
};
#endif