Replace show_endoom with exit_sequence (#1873)

This commit is contained in:
ceski 2024-09-02 08:36:59 -07:00 committed by GitHub
parent 55a65d98dd
commit dfc450d844
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 29 additions and 16 deletions

View File

@ -1711,14 +1711,18 @@ void D_SetBloodColor(void)
// killough 2/22/98: Add support for ENDBOOM, which is PC-specific // killough 2/22/98: Add support for ENDBOOM, which is PC-specific
// killough 8/1/98: change back to ENDOOM // killough 8/1/98: change back to ENDOOM
static int show_endoom; typedef enum {
EXIT_SEQUENCE_OFF, // Skip sound, skip ENDOOM.
EXIT_SEQUENCE_SOUND_ONLY, // Play sound, skip ENDOOM.
EXIT_SEQUENCE_PWAD_ENDOOM, // Play sound, show ENDOOM for PWADs only.
EXIT_SEQUENCE_ON // Play sound, show ENDOOM.
} exit_sequence_t;
// Don't show ENDOOM if we have it disabled. static exit_sequence_t exit_sequence;
boolean D_CheckEndDoom(void)
boolean D_AllowQuitSound(void)
{ {
int lumpnum = W_CheckNumForName("ENDOOM"); return (exit_sequence != EXIT_SEQUENCE_OFF);
return (show_endoom == 1 || (show_endoom == 2 && !W_IsIWADLump(lumpnum)));
} }
static void D_ShowEndDoom(void) static void D_ShowEndDoom(void)
@ -1729,9 +1733,16 @@ static void D_ShowEndDoom(void)
I_Endoom(endoom); I_Endoom(endoom);
} }
static boolean AllowEndDoom(void)
{
return (exit_sequence == EXIT_SEQUENCE_ON
|| (exit_sequence == EXIT_SEQUENCE_PWAD_ENDOOM
&& !W_IsIWADLump(W_CheckNumForName("ENDOOM"))));
}
static void D_EndDoom(void) static void D_EndDoom(void)
{ {
if (D_CheckEndDoom()) if (AllowEndDoom())
{ {
D_ShowEndDoom(); D_ShowEndDoom();
} }
@ -2684,8 +2695,8 @@ void D_DoomMain(void)
void D_BindMiscVariables(void) void D_BindMiscVariables(void)
{ {
BIND_NUM_GENERAL(show_endoom, 0, 0, 2, BIND_NUM_GENERAL(exit_sequence, 0, 0, EXIT_SEQUENCE_ON,
"Show ENDOOM screen (0 = Off; 1 = On; 2 = PWADs only)"); "Exit sequence (0 = Off; 1 = Sound Only; 2 = PWAD ENDOOM; 3 = On)");
BIND_BOOL_GENERAL(demobar, false, "Show demo progress bar"); BIND_BOOL_GENERAL(demobar, false, "Show demo progress bar");
BIND_NUM_GENERAL(screen_melt, wipe_Melt, wipe_None, wipe_Fizzle, BIND_NUM_GENERAL(screen_melt, wipe_Melt, wipe_None, wipe_Fizzle,
"Screen wipe effect (0 = None; 1 = Melt; 2 = Crossfade; 3 = Fizzlefade)"); "Screen wipe effect (0 = None; 1 = Melt; 2 = Crossfade; 3 = Fizzlefade)");

View File

@ -43,7 +43,7 @@ extern boolean clfastparm; // checkparm of -fast
void D_SetMaxHealth(void); void D_SetMaxHealth(void);
void D_SetBloodColor(void); void D_SetBloodColor(void);
boolean D_CheckEndDoom(void); boolean D_AllowQuitSound(void);
// Called by IO functions when input is detected. // Called by IO functions when input is detected.
void D_PostEvent(struct event_s *ev); void D_PostEvent(struct event_s *ev);

View File

@ -1245,7 +1245,7 @@ static void M_QuitResponse(int ch)
{ {
return; return;
} }
if (D_CheckEndDoom() && // play quit sound only if showing ENDOOM if (D_AllowQuitSound() &&
(!netgame || demoplayback) && // killough 12/98 (!netgame || demoplayback) && // killough 12/98
!nosfxparm) // avoid delay if no sound card !nosfxparm) // avoid delay if no sound card
{ {

View File

@ -334,7 +334,7 @@ enum
str_default_skill, str_default_skill,
str_default_complevel, str_default_complevel,
str_endoom, str_exit_sequence,
str_death_use_action, str_death_use_action,
str_menu_backdrop, str_menu_backdrop,
str_widescreen, str_widescreen,
@ -2659,7 +2659,9 @@ static void SmoothLight(void)
static const char *menu_backdrop_strings[] = {"Off", "Dark", "Texture"}; static const char *menu_backdrop_strings[] = {"Off", "Dark", "Texture"};
static const char *endoom_strings[] = {"off", "on", "PWAD only"}; static const char *exit_sequence_strings[] = {
"Off", "Sound Only", "PWAD ENDOOM", "On"
};
static setup_menu_t gen_settings5[] = { static setup_menu_t gen_settings5[] = {
@ -2695,8 +2697,8 @@ static setup_menu_t gen_settings5[] = {
{"Menu Backdrop", S_CHOICE, OFF_CNTR_X, M_SPC, {"menu_backdrop"}, {"Menu Backdrop", S_CHOICE, OFF_CNTR_X, M_SPC, {"menu_backdrop"},
.strings_id = str_menu_backdrop}, .strings_id = str_menu_backdrop},
{"Show ENDOOM Screen", S_CHOICE, OFF_CNTR_X, M_SPC, {"show_endoom"}, {"Exit Sequence", S_CHOICE, OFF_CNTR_X, M_SPC, {"exit_sequence"},
.strings_id = str_endoom}, .strings_id = str_exit_sequence},
MI_END MI_END
}; };
@ -4217,7 +4219,7 @@ static const char **selectstrings[] = {
NULL, // str_gyro_accel NULL, // str_gyro_accel
default_skill_strings, default_skill_strings,
default_complevel_strings, default_complevel_strings,
endoom_strings, exit_sequence_strings,
death_use_action_strings, death_use_action_strings,
menu_backdrop_strings, menu_backdrop_strings,
widescreen_strings, widescreen_strings,