diff --git a/source/sw/src/game.cpp b/source/sw/src/game.cpp index 3d33581317..c4b3b7f367 100644 --- a/source/sw/src/game.cpp +++ b/source/sw/src/game.cpp @@ -212,6 +212,7 @@ const GAME_SET gs_defaults = TRUE, // Music on TRUE, // talking TRUE, // ambient + FALSE, // alt reverb FALSE, // Flip Stereo // Network game settings diff --git a/source/sw/src/menus.cpp b/source/sw/src/menus.cpp index 76c7760eba..0d27a6ac94 100644 --- a/source/sw/src/menus.cpp +++ b/source/sw/src/menus.cpp @@ -198,10 +198,11 @@ MenuItem sound_i[] = //{DefButton(btn_talking, 0, "Talking"), OPT_XS, OPT_LINE(4), 1, m_defshade, 0, NULL, MNU_FxCheck, NULL}, {DefButton(btn_ambience, 0, "Ambience"), OPT_XS, OPT_LINE(4), 1, m_defshade, 0, NULL, MNU_FxCheck, NULL}, + {DefButton(btn_reverb, 0, "Alt Reverb"), OPT_XS, OPT_LINE(5), 1, m_defshade, 0, NULL, MNU_FxCheck, NULL}, #ifdef ASS_REVERSESTEREO - {DefButton(btn_flipstereo, 0, "Flip Stereo"), OPT_XS, OPT_LINE(5), 1, m_defshade, 0, NULL, MNU_FxCheck, NULL}, + {DefButton(btn_flipstereo, 0, "Flip Stereo"), OPT_XS, OPT_LINE(6), 1, m_defshade, 0, NULL, MNU_FxCheck, NULL}, #endif - //{DefButton(btn_playcd, 0, "Play CD"), OPT_XS, OPT_LINE(6), 1, m_defshade, 0, NULL, NULL, NULL}, + //{DefButton(btn_playcd, 0, "Play CD"), OPT_XS, OPT_LINE(7), 1, m_defshade, 0, NULL, NULL, NULL}, {DefNone} }; @@ -2103,6 +2104,7 @@ MNU_InitMenus(void) buttonsettings[btn_voxels] = gs.Voxels; buttonsettings[btn_ambience] = gs.Ambient; + buttonsettings[btn_reverb] = gs.AltReverb; buttonsettings[btn_playcd] = gs.PlayCD; buttonsettings[btn_flipstereo] = gs.FlipStereo; buttonsettings[btn_stats] = gs.Stats; @@ -3341,6 +3343,10 @@ MNU_DoButton(MenuItem_p item, SWBOOL draw) } } break; + case btn_reverb: + last_value = gs.AltReverb; + gs.AltReverb = state = buttonsettings[item->button]; + break; case btn_flipstereo: last_value = gs.FlipStereo; gs.FlipStereo = state = buttonsettings[item->button]; diff --git a/source/sw/src/menus.h b/source/sw/src/menus.h index fff80153c2..23405151df 100644 --- a/source/sw/src/menus.h +++ b/source/sw/src/menus.h @@ -206,7 +206,7 @@ typedef enum { btn_none, btn_auto_run, btn_crosshair, btn_auto_aim, btn_mouse_aim, btn_messages, btn_mouse_invert, btn_bobbing, btn_shadows, - btn_sound, btn_music, btn_talking, btn_ambience, btn_flipstereo, + btn_sound, btn_music, btn_talking, btn_ambience, btn_reverb, btn_flipstereo, btn_res0, btn_res1, btn_res2, btn_res3, btn_res4, btn_res5, btn_res6, btn_markers, btn_teamplay, btn_friendlyfire,btn_parental,btn_nuke, btn_voxels, btn_stats, btn_playcd, diff --git a/source/sw/src/settings.h b/source/sw/src/settings.h index 22d1d5651d..d1a0354f60 100644 --- a/source/sw/src/settings.h +++ b/source/sw/src/settings.h @@ -51,6 +51,7 @@ typedef struct SWBOOL MusicOn; SWBOOL Talking; SWBOOL Ambient; + SWBOOL AltReverb; SWBOOL FlipStereo; // Net Options from Menus uint8_t NetGameType; // 0=DeathMatch [spawn], 1=Cooperative 2=DeathMatch [no spawn] diff --git a/source/sw/src/sounds.cpp b/source/sw/src/sounds.cpp index 591ab3a5f4..f1e53374b5 100644 --- a/source/sw/src/sounds.cpp +++ b/source/sw/src/sounds.cpp @@ -1322,7 +1322,15 @@ void MusicStartup(void) void COVER_SetReverb(int amt) { - FX_SetReverb(amt); + if (gs.AltReverb) // use reverb from blood + { + FX_SetReverb(amt ? 128 : 0); + FX_SetReverbDelay(10); + } + else + { + FX_SetReverb(amt); + } } /* diff --git a/source/sw/src/swconfig.cpp b/source/sw/src/swconfig.cpp index d3c89f1230..a0609c2413 100644 --- a/source/sw/src/swconfig.cpp +++ b/source/sw/src/swconfig.cpp @@ -172,6 +172,10 @@ void ReadGameSetup(int32_t scripthandle) SCRIPT_GetNumber(scripthandle, "Options", "Ambient",&dummy); if (dummy != -1) gs.Ambient = dummy; + dummy = -1; + SCRIPT_GetNumber(scripthandle, "Options", "AltReverb",&dummy); + if (dummy != -1) gs.AltReverb = dummy; + dummy = -1; SCRIPT_GetNumber(scripthandle, "Options", "FxOn",&dummy); if (dummy != -1) gs.FxOn = dummy; @@ -314,6 +318,8 @@ void WriteGameSetup(int32_t scripthandle) SCRIPT_PutNumber(scripthandle, "Options", "Talking",dummy,FALSE,FALSE); dummy = gs.Ambient; SCRIPT_PutNumber(scripthandle, "Options", "Ambient",dummy,FALSE,FALSE); + dummy = gs.AltReverb; + SCRIPT_PutNumber(scripthandle, "Options", "AltReverb",dummy,FALSE,FALSE); dummy = gs.FxOn; SCRIPT_PutNumber(scripthandle, "Options", "FxOn",dummy,FALSE,FALSE); dummy = gs.MouseAimingType;