WEB/CLIENT: Use .wav for music audio "streaming"

Because OpenAL is required for streaming format support and OpenAL usage severely damages game performance on Chromium based browsers, as a temporary mitigation we will supply low-quality .wav files on our webGL distributions to add music streaming support to that platform.
This commit is contained in:
cypress 2024-05-21 19:10:34 -07:00
parent 00152d2053
commit 47137aac23
2 changed files with 15 additions and 3 deletions

View file

@ -987,7 +987,13 @@ noref void() CSQC_Parse_Event =
break;
case CSQC_EVENT_MUSICSTREAM:
string track_name = readstring();
localsound_enhanced(strcat("tracks/", track_name, ".ogg"), CHAN_MUSIC, 1);
string track_extension;
if (platform_is_web)
track_extension = ".wav";
else
track_extension = ".ogg";
localsound_enhanced(strcat("tracks/", track_name, track_extension), CHAN_MUSIC, 1);
break;
case CSQC_EVENT_GIVEACHIEVEMENT:
float achievement_id = readbyte();

View file

@ -2007,9 +2007,15 @@ void() Draw_Menu =
return;
}
string menu_track_path;
if (platform_is_web)
menu_track_path = "tracks/tensioned_by_the_damned.wav";
else
menu_track_path = "tracks/tensioned_by_the_damned.ogg";
// main menu theme iterating
if (menu_initialized == false && in_menu == MENU_MAIN) {
localsound_enhanced("tracks/tensioned_by_the_damned.ogg", CHAN_MUSIC, 1);
localsound_enhanced(menu_track_path, CHAN_MUSIC, 1);
menu_sound_length = 490;
menu_sound_time = 0;
menu_initialized = true;
@ -2017,7 +2023,7 @@ void() Draw_Menu =
// restart the track if it has ended
if (menu_initialized == true && (menu_sound_time >= menu_sound_length - 1)) {
localsound_enhanced("tracks/tensioned_by_the_damned.ogg", CHAN_MUSIC, 1);
localsound_enhanced(menu_track_path, CHAN_MUSIC, 1);
menu_sound_time = 0;
}