diff --git a/src/am_map.c b/src/am_map.c index 0734ccb9..1b859153 100644 --- a/src/am_map.c +++ b/src/am_map.c @@ -608,7 +608,7 @@ static void AM_clearLastMark(void) markpointnum--; } -void AM_EnableSmoothLines(void) +static void AM_EnableSmoothLines(void) { AM_drawFline = map_smooth_lines ? AM_drawFline_Smooth : AM_drawFline_Vanilla; } @@ -2407,7 +2407,7 @@ void AM_BindAutomapVariables(void) M_BindBool("automaprotate", &automaprotate, NULL, false, ss_auto, wad_no, "Automap rotation"); - M_BindBool("map_point_coord", &map_point_coord, NULL, true, ss_auto, wad_no, + M_BindBool("map_point_coord", &map_point_coord, NULL, true, ss_none, wad_no, "Show automap pointer coordinates in non-follow mode"); M_BindBool("map_secret_after", &map_secret_after, NULL, false, ss_auto, wad_no, "Don't highlight secret sectors on the automap before they're revealed"); @@ -2415,14 +2415,14 @@ void AM_BindAutomapVariables(void) MAP_KEYED_DOOR_COLOR, MAP_KEYED_DOOR_OFF, MAP_KEYED_DOOR_FLASH, ss_auto, wad_no, "Color key-locked doors on the automap (1 = Static; 2 = Flashing)"); - M_BindBool("map_smooth_lines", &map_smooth_lines, NULL, true, ss_auto, + M_BindBool("map_smooth_lines", &map_smooth_lines, NULL, true, ss_none, wad_no, "Smooth automap lines"); M_BindNum("mapcolor_preset", &mapcolor_preset, NULL, AM_PRESET_BOOM, AM_PRESET_VANILLA, AM_PRESET_ZDOOM, ss_auto, wad_no, "Automap color preset (0 = Vanilla Doom; 1 = Crispy Doom; 2 = Boom; 3 = ZDoom)"); - M_BindBool("automapsquareaspect", &automapsquareaspect, NULL, false, ss_auto, wad_no, + M_BindBool("automapsquareaspect", &automapsquareaspect, NULL, true, ss_none, wad_no, "Use square aspect ratio in automap"); #define BIND_CR(name, v, help) \ diff --git a/src/am_map.h b/src/am_map.h index 8cb9ba93..edc13991 100644 --- a/src/am_map.h +++ b/src/am_map.h @@ -58,8 +58,6 @@ void AM_SetMapCenter(fixed_t x, fixed_t y); void AM_ResetScreenSize(void); -void AM_EnableSmoothLines(void); - void AM_ColorPreset(void); void AM_BindAutomapVariables(void); diff --git a/src/doomdef.h b/src/doomdef.h index d86e2275..0be4712d 100644 --- a/src/doomdef.h +++ b/src/doomdef.h @@ -224,6 +224,7 @@ typedef enum { ss_enem, ss_gen, // killough 10/98 ss_comp, // killough 10/98 + ss_sfx, ss_midi, ss_eq, ss_padadv, diff --git a/src/i_flickstick.c b/src/i_flickstick.c index ed4357b0..0edbff85 100644 --- a/src/i_flickstick.c +++ b/src/i_flickstick.c @@ -284,6 +284,6 @@ void I_BindFlickStickVariables(void) "Flick deadzone relative to camera deadzone [percent]"); BIND_NUM(joy_flick_forward_deadzone, 7, 0, 45, "Forward angle range where flicks are disabled [degrees]"); - BIND_NUM_PADADV(joy_flick_snap, 0, 0, 2, + BIND_NUM(joy_flick_snap, 0, 0, 2, "Snap to cardinal directions (0 = Off; 1 = 4-way; 2 = 8-way)"); } diff --git a/src/i_oalsound.c b/src/i_oalsound.c index cbec3af3..832827a0 100644 --- a/src/i_oalsound.c +++ b/src/i_oalsound.c @@ -441,13 +441,13 @@ void I_OAL_BindSoundVariables(void) { BIND_BOOL_GENERAL(snd_hrtf, false, "[OpenAL 3D] Headphones mode (0 = No; 1 = Yes)"); - BIND_NUM_GENERAL(snd_resampler, 1, 0, UL, + BIND_NUM_SFX(snd_resampler, 1, 0, UL, "Sound resampler (0 = Nearest; 1 = Linear; ...)"); BIND_NUM(snd_absorption, 0, 0, 10, "[OpenAL 3D] Air absorption effect (0 = Off; 10 = Max)"); - BIND_NUM(snd_doppler, 0, 0, 10, + BIND_NUM_SFX(snd_doppler, 0, 0, 10, "[OpenAL 3D] Doppler effect (0 = Off; 10 = Max)"); - BIND_BOOL(snd_limiter, false, "Use sound output limiter"); + BIND_BOOL_SFX(snd_limiter, false, "Use sound output limiter"); } boolean I_OAL_InitSound(int snd_module) diff --git a/src/i_sound.c b/src/i_sound.c index 5cfac311..ed3fead7 100644 --- a/src/i_sound.c +++ b/src/i_sound.c @@ -741,13 +741,12 @@ void I_BindSoundVariables(void) "Sound effects volume"); M_BindNum("music_volume", &snd_MusicVolume, NULL, 8, 0, 15, ss_none, wad_no, "Music volume"); - BIND_BOOL(pitched_sounds, false, + BIND_BOOL_SFX(pitched_sounds, false, "Variable pitch for sound effects"); BIND_NUM(pitch_bend_range, 120, 100, 300, "Variable pitch bend range (100 = None)"); - BIND_BOOL_GENERAL(full_sounds, false, "Play sounds in full length (prevents cutoffs)"); - M_BindNum("snd_channels", &default_numChannels, NULL, - MAX_CHANNELS, 1, MAX_CHANNELS, ss_none, wad_no, + BIND_BOOL_SFX(full_sounds, false, "Play sounds in full length (prevents cutoffs)"); + BIND_NUM_SFX(snd_channels, MAX_CHANNELS, 1, MAX_CHANNELS, "Maximum number of simultaneous sound effects"); BIND_NUM_GENERAL(snd_module, SND_MODULE_MBF, 0, NUM_SND_MODULES - 1, "Sound module (0 = Standard; 1 = OpenAL 3D; 2 = PC Speaker Sound)"); diff --git a/src/m_config.h b/src/m_config.h index 2eebb1f5..d10b9fe5 100644 --- a/src/m_config.h +++ b/src/m_config.h @@ -42,6 +42,9 @@ void M_BindNum(const char *name, void *location, void *current, #define BIND_NUM_GENERAL(name, v, a, b, help) \ M_BindNum(#name, &name, NULL, (v), (a), (b), ss_gen, wad_no, help) +#define BIND_NUM_SFX(name, v, a, b, help) \ + M_BindNum(#name, &name, NULL, (v), (a), (b), ss_sfx, wad_no, help) + #define BIND_NUM_MIDI(name, v, a, b, help) \ M_BindNum(#name, &name, NULL, (v), (a), (b), ss_midi, wad_no, help) @@ -55,6 +58,9 @@ void M_BindBool(const char *name, boolean *location, boolean *current, #define BIND_BOOL_GENERAL(name, v, help) \ M_BindBool(#name, &name, NULL, (v), ss_gen, wad_no, help) +#define BIND_BOOL_SFX(name, v, help) \ + M_BindBool(#name, &name, NULL, (v), ss_sfx, wad_no, help) + #define BIND_BOOL_MIDI(name, v, help) \ M_BindBool(#name, &name, NULL, (v), ss_midi, wad_no, help) diff --git a/src/mn_internal.h b/src/mn_internal.h index 856f47ba..24c99196 100644 --- a/src/mn_internal.h +++ b/src/mn_internal.h @@ -96,6 +96,7 @@ void MN_DrawStatusHUD(void); void MN_DrawAutoMap(void); void MN_DrawWeapons(void); void MN_DrawEnemy(void); +void MN_DrawSfx(void); void MN_DrawMidi(void); void MN_DrawEqualizer(void); void MN_DrawPadAdv(void); diff --git a/src/mn_menu.c b/src/mn_menu.c index f96bf49b..da95307d 100644 --- a/src/mn_menu.c +++ b/src/mn_menu.c @@ -2070,6 +2070,14 @@ static menu_t CompatDef = // killough 10/98 0 }; +static menu_t SfxDef = { + generic_setup_end, // numitems + &SetupDef, // prevMenu + Generic_Setup, // menuitems + MN_DrawSfx, // routine + 34, 5, // x, y (skull drawn here) +}; + static menu_t MidiDef = { generic_setup_end, // numitems &SetupDef, // prevMenu @@ -2105,9 +2113,9 @@ static menu_t GyroDef = { void MN_SetNextMenuAlt(ss_types type) { static menu_t *setup_defs[] = { - &KeybndDef, &WeaponDef, &StatusHUDDef, &AutoMapDef, - &EnemyDef, &GeneralDef, &CompatDef, &MidiDef, - &EqualizerDef, &PadAdvDef, &GyroDef, + &KeybndDef, &WeaponDef, &StatusHUDDef, &AutoMapDef, + &EnemyDef, &GeneralDef, &CompatDef, &SfxDef, + &MidiDef, &EqualizerDef, &PadAdvDef, &GyroDef, }; SetNextMenu(setup_defs[type]); diff --git a/src/mn_setup.c b/src/mn_setup.c index f3083c6e..c35ecdb8 100644 --- a/src/mn_setup.c +++ b/src/mn_setup.c @@ -315,7 +315,7 @@ enum str_ms_time, str_movement_sensitivity, str_movement_type, - str_rumble, + str_percent, str_curve, str_center_weapon, str_screensize, @@ -1841,8 +1841,6 @@ static setup_menu_t stat_settings1[] = { {"Solid Background Color", S_ONOFF, H_X, M_SPC, {"st_solidbackground"}, .action = RefreshSolidBackground}, - {"Armor Color Matches Type", S_ONOFF, H_X, M_SPC, {"hud_armor_type"}}, - {"Animated Health/Armor Count", S_ONOFF, H_X, M_SPC, {"hud_animated_counts"}}, MI_RESET, @@ -2024,9 +2022,6 @@ static setup_menu_t auto_settings1[] = { {"Overlay Automap", S_CHOICE, H_X, M_SPC, {"automapoverlay"}, .strings_id = str_overlay}, - // killough 10/98 - {"Coords Follow Pointer", S_ONOFF, H_X, M_SPC, {"map_point_coord"}}, - MI_GAP, {"Miscellaneous", S_SKIP | S_TITLE, H_X, M_SPC}, @@ -2034,16 +2029,11 @@ static setup_menu_t auto_settings1[] = { {"Color Preset", S_CHOICE | S_COSMETIC, H_X, M_SPC, {"mapcolor_preset"}, .strings_id = str_automap_preset, .action = AM_ColorPreset}, - {"Smooth automap lines", S_ONOFF, H_X, M_SPC, {"map_smooth_lines"}, - .action = AM_EnableSmoothLines}, - {"Show Found Secrets Only", S_ONOFF, H_X, M_SPC, {"map_secret_after"}}, {"Color Keyed Doors", S_CHOICE, H_X, M_SPC, {"map_keyed_door"}, .strings_id = str_automap_keyed_door}, - {"Square Aspect Ratio", S_ONOFF, H_X, M_SPC, {"automapsquareaspect"}}, - MI_RESET, MI_END @@ -2116,10 +2106,6 @@ static setup_menu_t enem_settings1[] = { {"Translucent Ghost Monsters", S_ONOFF | S_STRICT | S_VANILLA, M_X, M_SPC, {"ghost_monsters"}}, - // [FG] spectre drawing mode - {"Blocky Spectre Drawing", S_ONOFF, M_X, M_SPC, {"fuzzcolumn_mode"}, - .action = R_SetFuzzColumnMode}, - MI_RESET, MI_END @@ -2520,6 +2506,7 @@ static void SetMidiPlayerFluidSynth(void) } } +static void MN_Sfx(void); static void MN_Midi(void); static void MN_Equalizer(void); @@ -2531,7 +2518,7 @@ static setup_menu_t gen_settings2[] = { {"Music Volume", S_THERMO, CNTR_X, M_THRM_SPC, {"music_volume"}, .action = UpdateMusicVolume}, - MI_GAP_Y(6), + MI_GAP, {"Sound Module", S_CHOICE, CNTR_X, M_SPC, {"snd_module"}, .strings_id = str_sound_module, .action = SetSoundModule}, @@ -2539,6 +2526,34 @@ static setup_menu_t gen_settings2[] = { {"Headphones Mode", S_ONOFF, CNTR_X, M_SPC, {"snd_hrtf"}, .action = SetSoundModule}, + MI_GAP, + + // [FG] music backend + {"MIDI Player", S_CHOICE | S_ACTION | S_WRAP_LINE, CNTR_X, M_SPC * 2, + {"midi_player_menu"}, .strings_id = str_midi_player, + .action = SetMidiPlayer}, + + MI_GAP, + + {"Sound Options", S_FUNC, CNTR_X, M_SPC, .action = MN_Sfx}, + + {"MIDI Options", S_FUNC, CNTR_X, M_SPC, .action = MN_Midi}, + + {"Equalizer Options", S_FUNC, CNTR_X, M_SPC, .action = MN_Equalizer}, + + MI_END +}; + +static setup_menu_t sfx_settings1[] = { + + {"SFX Channels", S_THERMO, CNTR_X, M_THRM_SPC, {"snd_channels"}, + .action = S_StopChannels}, + + {"Output Limiter", S_ONOFF, CNTR_X, M_SPC, {"snd_limiter"}, + .action = SetSoundModule}, + + MI_GAP, + {"Pitch-Shifting", S_ONOFF, CNTR_X, M_SPC, {"pitched_sounds"}}, // [FG] play sounds in full length @@ -2547,18 +2562,10 @@ static setup_menu_t gen_settings2[] = { {"Resampler", S_CHOICE, CNTR_X, M_SPC, {"snd_resampler"}, .strings_id = str_resampler, .action = I_OAL_SetResampler}, - MI_GAP_Y(6), + MI_GAP, - // [FG] music backend - {"MIDI Player", S_CHOICE | S_ACTION | S_WRAP_LINE, CNTR_X, M_SPC * 2, - {"midi_player_menu"}, .strings_id = str_midi_player, - .action = SetMidiPlayer}, - - MI_GAP_Y(6), - - {"MIDI Options", S_FUNC, CNTR_X, M_SPC, .action = MN_Midi}, - - {"Equalizer Options", S_FUNC, CNTR_X, M_SPC, .action = MN_Equalizer}, + {"Doppler Effect", S_THERMO, CNTR_X, M_THRM_SPC, {"snd_doppler"}, + .strings_id = str_percent, .action = SetSoundModule}, MI_END }; @@ -2566,10 +2573,35 @@ static setup_menu_t gen_settings2[] = { static const char **GetResamplerStrings(void) { const char **strings = I_OAL_GetResamplerStrings(); - DisableItem(!strings, gen_settings2, "snd_resampler"); + DisableItem(!strings, sfx_settings1, "snd_resampler"); return strings; } +static setup_menu_t *sfx_settings[] = {sfx_settings1, NULL}; + +static setup_tab_t sfx_tabs[] = {{"Sound"}, {NULL}}; + +static void MN_Sfx(void) +{ + SetItemOn(set_item_on); + SetPageIndex(current_page); + + MN_SetNextMenuAlt(ss_sfx); + setup_screen = ss_sfx; + current_page = GetPageIndex(sfx_settings); + current_menu = sfx_settings[current_page]; + current_tabs = sfx_tabs; + SetupMenuSecondary(); +} +void MN_DrawSfx(void) +{ + DrawBackground("FLOOR4_6"); + MN_DrawTitle(M_X_CENTER, M_Y_TITLE, "M_GENERL", "General"); + DrawTabs(); + DrawInstructions(); + DrawScreenItems(current_menu); +} + static const char *midi_complevel_strings[] = { "Vanilla", "Standard", "Full" }; @@ -2835,7 +2867,7 @@ static void UpdateRumble(void) I_RumbleMenuFeedback(); } -static const char *rumble_strings[] = { +static const char *percent_strings[] = { "Off", "10%", "20%", "30%", "40%", "50%", "60%", "70%", "80%", "90%", "100%" }; @@ -2869,7 +2901,7 @@ static setup_menu_t gen_settings4[] = { MI_GAP_Y(4), {"Rumble", S_THERMO, CNTR_X, M_THRM_SPC, {"joy_rumble"}, - .strings_id = str_rumble, .action = UpdateRumble}, + .strings_id = str_percent, .action = UpdateRumble}, MI_GAP_Y(5), @@ -2929,13 +2961,10 @@ static setup_menu_t padadv_settings1[] = { {"Stick Layout", S_CHOICE, CNTR_X, M_SPC, {"joy_stick_layout"}, .strings_id = str_layout, .action = UpdateGamepad}, - {"Flick Snap", S_CHOICE | S_STRICT, CNTR_X, M_SPC, {"joy_flick_snap"}, - .strings_id = str_flick_snap, .action = I_ResetGamepad}, - {"Flick Time", S_THERMO, CNTR_X, M_THRM_SPC, {"joy_flick_time"}, .strings_id = str_ms_time, .action = I_ResetGamepad}, - MI_GAP_Y(6), + MI_GAP, {"Movement Type", S_CHOICE, CNTR_X, M_SPC, {"joy_movement_type"}, .strings_id = str_movement_type, .action = I_ResetGamepad}, @@ -2948,7 +2977,7 @@ static setup_menu_t padadv_settings1[] = { {"joy_strafe_sensitivity"}, .strings_id = str_movement_sensitivity, .action = I_ResetGamepad}, - MI_GAP_Y(6), + MI_GAP, {"Extra Turn Speed", S_THERMO | S_THRM_SIZE11, CNTR_X, M_THRM_SPC, {"joy_outer_turn_speed"}, .action = UpdateGamepad}, @@ -2956,8 +2985,6 @@ static setup_menu_t padadv_settings1[] = { {"Extra Ramp Time", S_THERMO, CNTR_X, M_THRM_SPC, {"joy_outer_ramp_time"}, .strings_id = str_ms_time, .action = I_ResetGamepad}, - MI_GAP_Y(6), - {"Response Curve", S_THERMO, CNTR_X, M_THRM_SPC, {"joy_camera_curve"}, .strings_id = str_curve, .action = I_ResetGamepad}, @@ -3010,7 +3037,6 @@ static void UpdateGamepadItems(void) DisableItem(condition, gen_settings4, "joy_look_speed"); DisableItem(!gamepad, padadv_settings1, "joy_stick_layout"); - DisableItem(!flick, padadv_settings1, "joy_flick_snap"); DisableItem(!flick, padadv_settings1, "joy_flick_time"); DisableItem(condition, padadv_settings1, "joy_movement_type"); DisableItem(condition, padadv_settings1, "joy_forward_sensitivity"); @@ -3300,6 +3326,7 @@ void MN_UpdateDynamicResolutionItem(void) void MN_UpdateAdvancedSoundItems(boolean toggle) { DisableItem(toggle, gen_settings2, "snd_hrtf"); + DisableItem(toggle, sfx_settings1, "snd_doppler"); } void MN_UpdateFpsLimitItem(void) @@ -3395,6 +3422,7 @@ static setup_menu_t **setup_screens[] = { enem_settings, gen_settings, // killough 10/98 comp_settings, + sfx_settings, midi_settings, eq_settings, padadv_settings, @@ -3525,6 +3553,7 @@ static void ResetDefaultsSecondary(void) { if (setup_screen == ss_gen) { + ResetDefaults(ss_sfx); ResetDefaults(ss_midi); ResetDefaults(ss_eq); ResetDefaults(ss_padadv); @@ -4733,7 +4762,7 @@ static const char **selectstrings[] = { NULL, // str_ms_time NULL, // str_movement_sensitivity movement_type_strings, - rumble_strings, + percent_strings, curve_strings, center_weapon_strings, screensize_strings, diff --git a/src/r_main.c b/src/r_main.c index 8b664c85..b5e75007 100644 --- a/src/r_main.c +++ b/src/r_main.c @@ -1041,7 +1041,7 @@ void R_BindRenderVariables(void) M_BindBool("flipcorpses", &flipcorpses, NULL, false, ss_enem, wad_no, "Randomly mirrored death animations"); - M_BindBool("fuzzcolumn_mode", &fuzzcolumn_mode, NULL, true, ss_enem, wad_no, + M_BindBool("fuzzcolumn_mode", &fuzzcolumn_mode, NULL, true, ss_none, wad_no, "Fuzz rendering (0 = Resolution-dependent; 1 = Blocky)"); BIND_BOOL(draw_nearby_sprites, true, diff --git a/src/s_sound.c b/src/s_sound.c index 69e0cf42..81e9e179 100644 --- a/src/s_sound.c +++ b/src/s_sound.c @@ -74,8 +74,7 @@ static musicinfo_t *mus_playing; // following is set // by the defaults code in M_misc: // number of channels available -int numChannels; -int default_numChannels; // killough 9/98 +int snd_channels; // jff 3/17/98 to keep track of last IDMUS specified music num int idmusnum; @@ -92,7 +91,7 @@ int idmusnum; static void S_StopChannel(int cnum) { #ifdef RANGECHECK - if (cnum < 0 || cnum >= numChannels) + if (cnum < 0 || cnum >= snd_channels) { I_Error("S_StopChannel: handle %d out of range\n", cnum); } @@ -107,6 +106,17 @@ static void S_StopChannel(int cnum) } } +void S_StopChannels(void) +{ + for (int i = 0; i < MAX_CHANNELS; i++) + { + I_StopSound(channels[i].handle); + } + + memset(channels, 0, sizeof(channels)); + memset(sobjs, 0, sizeof(sobjs)); +} + // // S_AdjustSoundParams // @@ -144,7 +154,7 @@ static int S_getChannel(const mobj_t *origin, sfxinfo_t *sfxinfo, int priority, // kill old sound // killough 12/98: replace is_pickup hack with singularity flag // haleyjd 06/12/08: only if subchannel matches - for (cnum = 0; cnum < numChannels; cnum++) + for (cnum = 0; cnum < snd_channels; cnum++) { if (channels[cnum].sfxinfo && channels[cnum].singularity == singularity && channels[cnum].origin == origin) @@ -155,13 +165,13 @@ static int S_getChannel(const mobj_t *origin, sfxinfo_t *sfxinfo, int priority, } // Find an open channel - if (cnum == numChannels) + if (cnum == snd_channels) { // haleyjd 09/28/06: it isn't necessary to look for playing sounds in // the same singularity class again, as we just did that above. Here // we are looking for an open channel. We will also keep track of the // channel found with the lowest sound priority while doing this. - for (cnum = 0; cnum < numChannels && channels[cnum].sfxinfo; cnum++) + for (cnum = 0; cnum < snd_channels && channels[cnum].sfxinfo; cnum++) { if (channels[cnum].priority > lowestpriority) { @@ -172,7 +182,7 @@ static int S_getChannel(const mobj_t *origin, sfxinfo_t *sfxinfo, int priority, } // None available? - if (cnum == numChannels) + if (cnum == snd_channels) { // Look for lower priority // haleyjd: we have stored the channel found with the lowest priority @@ -189,7 +199,7 @@ static int S_getChannel(const mobj_t *origin, sfxinfo_t *sfxinfo, int priority, } #ifdef RANGECHECK - if (cnum >= numChannels) + if (cnum >= snd_channels) { I_Error("S_getChannel: handle %d out of range\n", cnum); } @@ -275,7 +285,7 @@ static void StartSound(const mobj_t *origin, int sfx_id, } #ifdef RANGECHECK - if (cnum < 0 || cnum >= numChannels) + if (cnum < 0 || cnum >= snd_channels) { I_Error("S_StartSfxInfo: handle %d out of range\n", cnum); } @@ -452,7 +462,7 @@ void S_StopSound(const mobj_t *origin) return; } - for (cnum = 0; cnum < numChannels; ++cnum) + for (cnum = 0; cnum < snd_channels; ++cnum) { if (channels[cnum].sfxinfo && channels[cnum].origin == origin) { @@ -477,7 +487,7 @@ void S_UnlinkSound(mobj_t *origin) if (origin) { - for (cnum = 0; cnum < numChannels; cnum++) + for (cnum = 0; cnum < snd_channels; cnum++) { if (channels[cnum].sfxinfo && channels[cnum].origin == origin) { @@ -543,7 +553,7 @@ void S_UpdateSounds(const mobj_t *listener) I_DeferSoundUpdates(); - for (cnum = 0; cnum < numChannels; ++cnum) + for (cnum = 0; cnum < snd_channels; ++cnum) { channel_t *c = &channels[cnum]; sfxinfo_t *sfx = c->sfxinfo; @@ -812,7 +822,7 @@ void S_Start(void) // jff 1/22/98 skip sound init if sound not enabled if (!nosfxparm) { - for (cnum = 0; cnum < numChannels; ++cnum) + for (cnum = 0; cnum < snd_channels; ++cnum) { if (channels[cnum].sfxinfo) { @@ -915,7 +925,6 @@ void S_Init(int sfxVolume, int musicVolume) S_SetSfxVolume(sfxVolume); // Reset channel memory - numChannels = default_numChannels; memset(channels, 0, sizeof(channels)); memset(sobjs, 0, sizeof(sobjs)); } diff --git a/src/s_sound.h b/src/s_sound.h index 167fa676..5b857e07 100644 --- a/src/s_sound.h +++ b/src/s_sound.h @@ -44,6 +44,8 @@ void S_Init(int sfxVolume, int musicVolume); // void S_Start(void); +void S_StopChannels(void); + // // Start sound for thing at // using from sounds.h @@ -115,8 +117,7 @@ void S_SetMusicVolume(int volume); void S_SetSfxVolume(int volume); // machine-independent sound params -extern int numChannels; -extern int default_numChannels; // killough 10/98 +extern int snd_channels; // jff 3/17/98 holds last IDMUS number, or -1 extern int idmusnum; diff --git a/src/st_stuff.c b/src/st_stuff.c index 3b45789a..01418fdd 100644 --- a/src/st_stuff.c +++ b/src/st_stuff.c @@ -1779,7 +1779,7 @@ void ST_BindSTSVariables(void) "Use solid-color borders for the status bar in widescreen mode"); M_BindBool("hud_animated_counts", &hud_animated_counts, NULL, false, ss_stat, wad_no, "Animated health/armor counts"); - M_BindBool("hud_armor_type", &hud_armor_type, NULL, false, ss_stat, wad_no, + M_BindBool("hud_armor_type", &hud_armor_type, NULL, true, ss_none, wad_no, "Armor count is colored based on armor type"); M_BindNum("health_red", &health_red, NULL, 25, 0, 200, ss_none, wad_yes, "Amount of health for red-to-yellow transition");