From 922f6aa9f8bb16ba6ce679bd511326fb8cef039f Mon Sep 17 00:00:00 2001 From: James R Date: Fri, 25 Sep 2020 02:23:44 -0700 Subject: [PATCH] Scale volume cvars by half, 200% max and 50% default --- src/doomdef.h | 3 ++- src/s_sound.c | 8 ++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/doomdef.h b/src/doomdef.h index 3a6875a57..a3f7cacd2 100644 --- a/src/doomdef.h +++ b/src/doomdef.h @@ -648,7 +648,8 @@ extern const char *compdate, *comptime, *comprevision, *compbranch; /// Divide volume of music and sounds by this much (loudest sounds on earth) #define VOLUME_DIVIDER 4 -#define MAX_VOLUME ( 100 * VOLUME_DIVIDER ) +#define USER_VOLUME_SCALE 2 +#define MAX_VOLUME ( 100 * VOLUME_DIVIDER / USER_VOLUME_SCALE ) #if defined (HAVE_CURL) && ! defined (NONET) #define MASTERSERVER diff --git a/src/s_sound.c b/src/s_sound.c index ac58d7c4e..1bb554dfe 100644 --- a/src/s_sound.c +++ b/src/s_sound.c @@ -92,8 +92,8 @@ consvar_t stereoreverse = {"stereoreverse", "Off", CV_SAVE, CV_OnOff, NULL, 0, N static consvar_t precachesound = {"precachesound", "Off", CV_SAVE, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL}; // actual general (maximum) sound & music volume, saved into the config -consvar_t cv_soundvolume = {"soundvolume", "100", CV_SAVE, soundvolume_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; -consvar_t cv_digmusicvolume = {"musicvolume", "100", CV_SAVE, soundvolume_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; +consvar_t cv_soundvolume = {"soundvolume", "50", CV_SAVE, soundvolume_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; +consvar_t cv_digmusicvolume = {"musicvolume", "50", CV_SAVE, soundvolume_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; // number of channels available #if defined (_WIN32_WCE) || defined (DC) || defined (PSP) || defined(GP2X) consvar_t cv_numChannels = {"snd_channels", "8", CV_SAVE|CV_CALL, CV_Unsigned, SetChannelsNum, 0, NULL, NULL, 0, 0, NULL}; @@ -1154,7 +1154,7 @@ void S_UpdateSounds(void) void S_SetSfxVolume(INT32 volume) { CV_SetValue(&cv_soundvolume, volume); - actualsfxvolume = cv_soundvolume.value; // check for change of var + actualsfxvolume = cv_soundvolume.value * USER_VOLUME_SCALE; #ifdef HW3SOUND hws_mode == HWS_DEFAULT_MODE ? I_SetSfxVolume(volume&0x1F) : HW3S_SetSfxVolume(volume&0x1F); @@ -2123,7 +2123,7 @@ void S_SetMusicVolume(INT32 digvolume) digvolume = cv_digmusicvolume.value; CV_SetValue(&cv_digmusicvolume, digvolume); - actualdigmusicvolume = cv_digmusicvolume.value; //check for change of var + actualdigmusicvolume = cv_digmusicvolume.value * USER_VOLUME_SCALE; #ifdef DJGPPDOS digvolume = 31;