feat(sound): add SI2::RegisterUserCVars

This commit is contained in:
fallenoak 2025-11-24 13:30:43 -06:00
parent 249c34cb1f
commit 163f02a332
No known key found for this signature in database
GPG Key ID: 7628F8E61AEA070D
4 changed files with 236 additions and 3 deletions

View File

@ -61,3 +61,43 @@ bool VoiceChatOutputDriverHandler(CVar* var, const char* oldValue, const char* v
// TODO
WHOA_UNIMPLEMENTED(true);
}
bool AmbienceVolume_CVarCallback(CVar* var, const char* oldValue, const char* value, void* arg) {
// TODO
WHOA_UNIMPLEMENTED(true);
}
bool EnableAllSound_CVarCallback(CVar* var, const char* oldValue, const char* value, void* arg) {
// TODO
WHOA_UNIMPLEMENTED(true);
}
bool EnableAmbience_CVarCallback(CVar* var, const char* oldValue, const char* value, void* arg) {
// TODO
WHOA_UNIMPLEMENTED(true);
}
bool EnableMusic_CVarCallback(CVar* var, const char* oldValue, const char* value, void* arg) {
// TODO
WHOA_UNIMPLEMENTED(true);
}
bool EnableSFX_CVarCallback(CVar* var, const char* oldValue, const char* value, void* arg) {
// TODO
WHOA_UNIMPLEMENTED(true);
}
bool MasterVolume_CVarCallback(CVar* var, const char* oldValue, const char* value, void* arg) {
// TODO
WHOA_UNIMPLEMENTED(true);
}
bool MusicVolume_CVarCallback(CVar* var, const char* oldValue, const char* value, void* arg) {
// TODO
WHOA_UNIMPLEMENTED(true);
}
bool SFXVolume_CVarCallback(CVar* var, const char* oldValue, const char* value, void* arg) {
// TODO
WHOA_UNIMPLEMENTED(true);
}

View File

@ -27,4 +27,20 @@ bool VoiceChatModeHandler(CVar* var, const char* oldValue, const char* value, vo
bool VoiceChatOutputDriverHandler(CVar* var, const char* oldValue, const char* value, void* arg);
bool AmbienceVolume_CVarCallback(CVar* var, const char* oldValue, const char* value, void* arg);
bool EnableAllSound_CVarCallback(CVar* var, const char* oldValue, const char* value, void* arg);
bool EnableAmbience_CVarCallback(CVar* var, const char* oldValue, const char* value, void* arg);
bool EnableMusic_CVarCallback(CVar* var, const char* oldValue, const char* value, void* arg);
bool EnableSFX_CVarCallback(CVar* var, const char* oldValue, const char* value, void* arg);
bool MasterVolume_CVarCallback(CVar* var, const char* oldValue, const char* value, void* arg);
bool MusicVolume_CVarCallback(CVar* var, const char* oldValue, const char* value, void* arg);
bool SFXVolume_CVarCallback(CVar* var, const char* oldValue, const char* value, void* arg);
#endif

View File

@ -53,9 +53,7 @@ int32_t SI2::Init(int32_t a1) {
// TODO
// if (CmdLineGetBool(26)) {
// SI2::RegisterCVars();
//
// // TODO
// // sub_4D1600();
// SI2::RegisterUserCVars();
//
// return 17;
// }
@ -135,6 +133,8 @@ int32_t SI2::Init(int32_t a1) {
// TODO
SI2::RegisterUserCVars();
if (!a1) {
SI2::InitSoundKitDefs();
// TODO
@ -702,6 +702,182 @@ void SI2::RegisterCVars() {
);
}
void SI2::RegisterUserCVars() {
CVar::Register("ChatMusicVolume",
"music volume (0.0 to 1.0)",
0x0,
"0.3",
nullptr,
SOUND
);
CVar::Register(
"ChatSoundVolume",
"sound volume (0.0 to 1.0)",
0x0,
"0.4",
nullptr,
SOUND
);
CVar::Register(
"ChatAmbienceVolume",
"Ambience Volume (0.0 to 1.0)",
0x0,
"0.3",
nullptr,
SOUND
);
CVar::Register(
"Sound_EnableSFX",
"",
0x0,
"1",
&EnableSFX_CVarCallback,
SOUND
);
CVar::Register(
"Sound_EnableAmbience",
"Enable Ambience",
0x0,
"1",
&EnableAmbience_CVarCallback,
SOUND
);
CVar::Register(
"Sound_EnableErrorSpeech",
"error speech",
0x0,
"1",
nullptr,
SOUND
);
CVar::Register(
"Sound_EnableMusic",
"Enables music",
0x0,
"1",
&EnableMusic_CVarCallback,
SOUND
);
CVar::Register(
"Sound_EnableAllSound",
"",
0x0,
"1",
&EnableAllSound_CVarCallback,
SOUND
);
CVar::Register(
"Sound_MasterVolume",
"master volume (0.0 to 1.0)",
0x0,
"1.0",
&MasterVolume_CVarCallback,
SOUND
);
CVar::Register(
"Sound_SFXVolume",
"sound volume (0.0 to 1.0)",
0x0,
"1.0",
&SFXVolume_CVarCallback,
SOUND
);
CVar::Register(
"Sound_MusicVolume",
"music volume (0.0 to 1.0)",
0x0,
"0.4",
&MusicVolume_CVarCallback,
SOUND
);
CVar::Register(
"Sound_AmbienceVolume",
"Ambience Volume (0.0 to 1.0)",
0x0,
"0.6",
&AmbienceVolume_CVarCallback,
SOUND
);
CVar::Register(
"Sound_ListenerAtCharacter",
"lock listener at character",
0x0,
"1",
nullptr,
SOUND
);
CVar::Register(
"Sound_EnableEmoteSounds",
"",
0x0,
"1",
nullptr,
SOUND
);
CVar::Register(
"Sound_ZoneMusicNoDelay",
"",
0x0,
"0",
nullptr,
SOUND
);
CVar::Register(
"Sound_EnableArmorFoleySoundForSelf",
"",
0x0,
"1",
nullptr,
SOUND
);
CVar::Register(
"Sound_EnableArmorFoleySoundForOthers",
"",
0x0,
"1",
nullptr,
SOUND
);
// TODO
CVar::Register(
"Sound_EnablePetSounds",
"Enables pet sounds",
0x0,
"1",
nullptr,
SOUND
);
CVar::Register(
"Sound_EnableSoundWhenGameIsInBG",
"Enable Sound When Game Is In Background",
0x0,
"0",
nullptr,
SOUND
);
// TODO
}
void SI2::RegisterScriptFunctions() {
for (int32_t i = 0; i < NUM_SCRIPT_FUNCTIONS_SI2; ++i) {
FrameScript_RegisterFunction(

View File

@ -28,6 +28,7 @@ class SI2 {
static int32_t PlaySoundKit(int32_t id, int32_t a2, void* handle, 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 StartGlueMusic(const char* name);
};