diff --git a/source/duke3d/src/common.cpp b/source/duke3d/src/common.cpp index 93b932669..78efa4e5e 100644 --- a/source/duke3d/src/common.cpp +++ b/source/duke3d/src/common.cpp @@ -1060,26 +1060,26 @@ void G_LoadLookups(void) ////////// #ifdef FORMAT_UPGRADE_ELIGIBLE +int g_maybeUpgradeSoundFormats = 1; static buildvfs_kfd S_TryFormats(char * const testfn, char * const fn_suffix, char const searchfirst) { -#ifdef HAVE_FLAC + if (g_maybeUpgradeSoundFormats) { +#ifdef HAVE_FLAC Bstrcpy(fn_suffix, ".flac"); - buildvfs_kfd const fp = kopen4loadfrommod(testfn, searchfirst); - if (fp != buildvfs_kfd_invalid) - return fp; - } + buildvfs_kfd const ffp = kopen4loadfrommod(testfn, searchfirst); + if (ffp != buildvfs_kfd_invalid) + return ffp; #endif #ifdef HAVE_VORBIS - { Bstrcpy(fn_suffix, ".ogg"); buildvfs_kfd const fp = kopen4loadfrommod(testfn, searchfirst); if (fp != buildvfs_kfd_invalid) return fp; - } #endif + } return buildvfs_kfd_invalid; } diff --git a/source/duke3d/src/common_game.h b/source/duke3d/src/common_game.h index e9163cfcf..b1df09bec 100644 --- a/source/duke3d/src/common_game.h +++ b/source/duke3d/src/common_game.h @@ -142,6 +142,7 @@ extern void G_LoadLookups(void); #if defined HAVE_FLAC || defined HAVE_VORBIS # define FORMAT_UPGRADE_ELIGIBLE +extern int g_maybeUpgradeSoundFormats; extern buildvfs_kfd S_OpenAudio(const char *fn, char searchfirst, uint8_t ismusic); #else # define S_OpenAudio(fn, searchfirst, ismusic) kopen4loadfrommod(fn, searchfirst) diff --git a/source/duke3d/src/osdcmds.cpp b/source/duke3d/src/osdcmds.cpp index 405b4417d..de5bd1275 100644 --- a/source/duke3d/src/osdcmds.cpp +++ b/source/duke3d/src/osdcmds.cpp @@ -1696,7 +1696,7 @@ int32_t registerosdcommands(void) { "snd_numvoices", "the number of concurrent sounds", (void *)&ud.config.NumVoices, CVAR_INT, 1, 128 }, { "snd_reversestereo", "reverses the stereo channels", (void *)&ud.config.ReverseStereo, CVAR_BOOL, 0, 1 }, { "snd_speech", "enables/disables player speech", (void *)&ud.config.VoiceToggle, CVAR_INT, 0, 5 }, - + { "snd_tryformats", "enables/disables automatic discovery of replacement sounds and music in .flac and .ogg formats", (void *)&g_maybeUpgradeSoundFormats, CVAR_BOOL, 0, 1 }, { "team","change team in multiplayer", (void *)&ud.team, CVAR_INT|CVAR_MULTI, 0, 3 }, #ifdef EDUKE32_TOUCH_DEVICES