refactor(thunderbrew): use static size members instead of null-termination to delimit FrameScript_Method arrays

This commit is contained in:
phaneron 2024-03-05 16:24:33 -05:00
parent 32cfe08d0b
commit 2fb754a83a
7 changed files with 19 additions and 21 deletions

View file

@ -18,17 +18,14 @@ void F_CALL FMOD_Free(void* ptr, FMOD_MEMORY_TYPE type, const char* sourcestr) {
SMemFree(ptr, sourcestr, 0, 0);
}
void SI2::RegisterScriptFunctions() {
FrameScript_Method* item = s_ScriptFunctions;
while (item->name) {
for (int32_t i = 0; i < s_NumScriptFunctions; i++) {
auto item = &s_ScriptFunctions[i];
FrameScript_RegisterFunction(item->name, item->method);
item++;
}
}
int32_t SI2::Init(int32_t flag) {
Log_Init();
SI2_LOG("=> Version %s (%s) %s", "1.0.0", "00000", "Feb 25 2024");
SI2_LOG(" ");

View file

@ -16,6 +16,7 @@ class SI2 {
public:
// Static variables
static FrameScript_Method s_ScriptFunctions[];
static size_t s_NumScriptFunctions;
static uint32_t sm_logFlags;
static HSLOG sm_log;
static FMOD::System* sm_pGameSystem;

View file

@ -122,6 +122,7 @@ FrameScript_Method SI2::s_ScriptFunctions[] = {
{ "VoiceChat_IsRecordingLoopbackSound", &Script_VoiceChat_IsRecordingLoopbackSound },
{ "VoiceChat_IsPlayingLoopbackSound", &Script_VoiceChat_IsPlayingLoopbackSound },
{ "VoiceChat_GetCurrentMicrophoneSignalLevel", &Script_VoiceChat_GetCurrentMicrophoneSignalLevel },
{ "VoiceChat_ActivatePrimaryCaptureCallback", &Script_VoiceChat_ActivatePrimaryCaptureCallback },
{ nullptr, nullptr }
{ "VoiceChat_ActivatePrimaryCaptureCallback", &Script_VoiceChat_ActivatePrimaryCaptureCallback }
};
size_t SI2::s_NumScriptFunctions = sizeof(SI2::s_ScriptFunctions) / sizeof(FrameScript_Method);