Scale ambient and music volumes to game volume

-cl_musicvolume changed to scalar
-cl_ambientsound changed back to scalar
This commit is contained in:
pierow 2023-09-08 10:55:58 -04:00
parent 79d3e270a6
commit 91daecffdb
4 changed files with 19 additions and 15 deletions

View file

@ -1628,7 +1628,7 @@ void InitInput (void)
cl_autohelp = gEngfuncs.pfnRegisterVariable ( kvAutoHelp, "1.0", FCVAR_ARCHIVE ); cl_autohelp = gEngfuncs.pfnRegisterVariable ( kvAutoHelp, "1.0", FCVAR_ARCHIVE );
cl_centerentityid = gEngfuncs.pfnRegisterVariable ( kvCenterEntityID, "0.0", FCVAR_ARCHIVE ); cl_centerentityid = gEngfuncs.pfnRegisterVariable ( kvCenterEntityID, "0.0", FCVAR_ARCHIVE );
cl_musicenabled = gEngfuncs.pfnRegisterVariable ( kvMusicEnabled, "0", FCVAR_ARCHIVE ); cl_musicenabled = gEngfuncs.pfnRegisterVariable ( kvMusicEnabled, "0", FCVAR_ARCHIVE );
cl_musicvolume = gEngfuncs.pfnRegisterVariable ( kvMusicVolume, "155", FCVAR_ARCHIVE ); cl_musicvolume = gEngfuncs.pfnRegisterVariable ( kvMusicVolume, "1", FCVAR_ARCHIVE );
cl_musicdir = gEngfuncs.pfnRegisterVariable ( kvMusicDirectory, "", FCVAR_ARCHIVE); cl_musicdir = gEngfuncs.pfnRegisterVariable ( kvMusicDirectory, "", FCVAR_ARCHIVE);
cl_musicdelay = gEngfuncs.pfnRegisterVariable ( kvMusicDelay, "90", FCVAR_ARCHIVE); cl_musicdelay = gEngfuncs.pfnRegisterVariable ( kvMusicDelay, "90", FCVAR_ARCHIVE);
cl_dynamiclights = gEngfuncs.pfnRegisterVariable ( kvDynamicLights, "1", FCVAR_ARCHIVE ); cl_dynamiclights = gEngfuncs.pfnRegisterVariable ( kvDynamicLights, "1", FCVAR_ARCHIVE );

View file

@ -100,11 +100,10 @@ void AvHAmbientSound::UpdateVolume(const Vector& inListenerPosition)
{ {
theVolume = this->mVolume - this->mVolume*(theDistance/(float)this->mFadeDistance); theVolume = this->mVolume - this->mVolume*(theDistance/(float)this->mFadeDistance);
} }
//cl_ambientsound 1 is original NS3.2 volume, now changable as well as scaled by the master volume.
float ambientscale = CVAR_GET_FLOAT("cl_ambientsound") * 0.01f; float ambientscale = CVAR_GET_FLOAT("cl_ambientsound") * CVAR_GET_FLOAT("volume");
ambientscale = min(max(0, ambientscale), 1); ambientscale = min(max(0, ambientscale), 2);
theVolume = min(max(0, theVolume), 255); theVolume = min(max(0, theVolume * ambientscale), 255);
theVolume *= ambientscale;
FMOD_INSTANCE* theFMOD = gHUD.GetFMOD(); FMOD_INSTANCE* theFMOD = gHUD.GetFMOD();

View file

@ -468,7 +468,9 @@ void UIHud::PlayRandomSong(void)
// // Set volume to half way. TODO: This should use a real music volume variable // // Set volume to half way. TODO: This should use a real music volume variable
// FSOUND_SetPan(this->mCurrentChannel, FSOUND_STEREOPAN); // FSOUND_SetPan(this->mCurrentChannel, FSOUND_STEREOPAN);
// //
int theVolume = (int)(cl_musicvolume->value); //2023 - Making "volume" cvar a master volume. Multiplying by 155 as it was the original default value on the previous 0-255 cvar range.
int theVolume = min(max(0, cl_musicvolume->value * CVAR_GET_FLOAT("volume") * 155), 255);
// this->mBytesInCurrentSong = FSOUND_Stream_GetLength(this->mCurrentSongStream); // this->mBytesInCurrentSong = FSOUND_Stream_GetLength(this->mCurrentSongStream);
if(this->PlaySong(theRelativeSongName, theVolume, false, this->mCurrentSongStream, this->mCurrentChannel, this->mBytesInCurrentSong)) if(this->PlaySong(theRelativeSongName, theVolume, false, this->mCurrentSongStream, this->mCurrentChannel, this->mBytesInCurrentSong))
@ -660,11 +662,14 @@ void UIHud::UpdateMusic(float inCurrentTime)
this->StopMusic(); this->StopMusic();
} }
if(this->mSongIsPlaying && ((int)(cl_musicvolume->value) != this->mCurrentVolume)) //2023 - Making "volume" cvar a master volume. Multiplying by 155 as it was the original default value on the previous 0-255 cvar range.
int musicVol = min(max(0, cl_musicvolume->value * CVAR_GET_FLOAT("volume") * 155), 255);;
if (this->mSongIsPlaying && (musicVol != this->mCurrentVolume))
{ {
this->mCurrentVolume = (int)(cl_musicvolume->value); this->mCurrentVolume = musicVol;
this->mCurrentVolume = min(max(0, this->mCurrentVolume), 255); //this->mCurrentVolume = min(max(0, this->mCurrentVolume), 255);
cl_musicvolume->value = this->mCurrentVolume; //cl_musicvolume->value = this->mCurrentVolume;
mFMOD->FSOUND_SetVolume(this->mCurrentChannel, this->mCurrentVolume); mFMOD->FSOUND_SetVolume(this->mCurrentChannel, this->mCurrentVolume);
} }

View file

@ -50,7 +50,7 @@ DESCRIPTION INFO_OPTIONS
"cl_ambientsound" "cl_ambientsound"
{ {
"Ambient sound volume (0 to 100)" "Ambient sound volume (0 to 1)"
{ NUMBER 0.000000 1.000000 } { NUMBER 0.000000 1.000000 }
{ "0.000000" } { "0.000000" }
} }
@ -448,9 +448,9 @@ DESCRIPTION INFO_OPTIONS
"cl_musicvolume" "cl_musicvolume"
{ {
"Music volume (0-255)" "Music volume (0-2)"
{ NUMBER 0.000000 255.000000 } { NUMBER 0.000000 2.000000 }
{ "100.000000" } { "1.000000" }
} }
"cl_musicdirectory" "cl_musicdirectory"