Merge remote-tracking branch 'menu/oss'

This commit is contained in:
Yamagi 2023-09-16 16:30:04 +02:00
commit 49d4f2ce1f
2 changed files with 45 additions and 14 deletions

View file

@ -693,7 +693,7 @@ IN_Update(void)
{ {
S_Activate(false); S_Activate(false);
if (windowed_pauseonfocuslost->value == 1) if (windowed_pauseonfocuslost->value != 1)
{ {
Cvar_SetValue("paused", 1); Cvar_SetValue("paused", 1);
} }
@ -710,6 +710,11 @@ IN_Update(void)
{ {
S_Activate(true); S_Activate(true);
if (windowed_pauseonfocuslost->value == 2)
{
Cvar_SetValue("paused", 0);
}
/* play music */ /* play music */
if (Cvar_VariableValue("ogg_pausewithgame") == 1 && if (Cvar_VariableValue("ogg_pausewithgame") == 1 &&
OGG_Status() == PAUSE && cl.attractloop == false && OGG_Status() == PAUSE && cl.attractloop == false &&
@ -731,11 +736,14 @@ IN_Update(void)
{ {
Cvar_SetValue("paused", 0); Cvar_SetValue("paused", 0);
} }
}
else if (event.window.event == SDL_WINDOWEVENT_MINIMIZED || /* play music */
event.window.event == SDL_WINDOWEVENT_HIDDEN) if (Cvar_VariableValue("ogg_pausewithgame") == 1 &&
{ OGG_Status() == PAUSE && cl.attractloop == false &&
Cvar_SetValue("paused", 1); cl_paused->value == 0)
{
Cbuf_AddText("ogg toggle\n");
}
} }
break; break;
@ -2322,7 +2330,7 @@ IN_Init(void)
gyro_active = true; gyro_active = true;
} }
windowed_pauseonfocuslost = Cvar_Get("windowed_pauseonfocuslost", "0", CVAR_USERINFO | CVAR_ARCHIVE); windowed_pauseonfocuslost = Cvar_Get("vid_pauseonfocuslost", "0", CVAR_USERINFO | CVAR_ARCHIVE);
windowed_mouse = Cvar_Get("windowed_mouse", "1", CVAR_USERINFO | CVAR_ARCHIVE); windowed_mouse = Cvar_Get("windowed_mouse", "1", CVAR_USERINFO | CVAR_ARCHIVE);
Cmd_AddCommand("+mlook", IN_MLookDown); Cmd_AddCommand("+mlook", IN_MLookDown);

View file

@ -124,13 +124,6 @@ M_ForceMenuOff(void)
void void
M_PopMenu(void) M_PopMenu(void)
{ {
/* play music */
if (Cvar_VariableValue("ogg_pausewithgame") == 1 &&
OGG_Status() == PAUSE && cl.attractloop == false)
{
Cbuf_AddText("ogg toggle\n");
}
S_StartLocalSound(menu_out_sound); S_StartLocalSound(menu_out_sound);
if (m_menudepth < 1) if (m_menudepth < 1)
@ -146,6 +139,12 @@ M_PopMenu(void)
if (!m_menudepth) if (!m_menudepth)
{ {
M_ForceMenuOff(); M_ForceMenuOff();
/* play music */
if (Cvar_VariableValue("ogg_pausewithgame") == 1 &&
OGG_Status() == PAUSE && cl.attractloop == false)
{
Cbuf_AddText("ogg toggle\n");
}
} }
} }
@ -2154,6 +2153,7 @@ static menuslider_s s_options_oggvolume_slider;
static menulist_s s_options_oggenable_box; static menulist_s s_options_oggenable_box;
static menulist_s s_options_quality_list; static menulist_s s_options_quality_list;
static menulist_s s_options_console_action; static menulist_s s_options_console_action;
static menulist_s s_options_pauseonfocus_box;
static void static void
CrosshairFunc(void *unused) CrosshairFunc(void *unused)
@ -2161,6 +2161,12 @@ CrosshairFunc(void *unused)
Cvar_SetValue("crosshair", (float)s_options_crosshair_box.curvalue); Cvar_SetValue("crosshair", (float)s_options_crosshair_box.curvalue);
} }
static void
PauseFocusFunc()
{
Cvar_SetValue("vid_pauseonfocuslost", (float)s_options_pauseonfocus_box.curvalue);
}
static void static void
CustomizeControlsFunc(void *unused) CustomizeControlsFunc(void *unused)
{ {
@ -2196,6 +2202,7 @@ ControlsSetMenuItemValues(void)
s_options_lookstrafe_box.curvalue = (lookstrafe->value != 0); s_options_lookstrafe_box.curvalue = (lookstrafe->value != 0);
s_options_freelook_box.curvalue = (freelook->value != 0); s_options_freelook_box.curvalue = (freelook->value != 0);
s_options_crosshair_box.curvalue = ClampCvar(0, 3, crosshair->value); s_options_crosshair_box.curvalue = ClampCvar(0, 3, crosshair->value);
s_options_pauseonfocus_box.curvalue = ClampCvar(0, 2, Cvar_VariableValue("vid_pauseonfocuslost"));
} }
static void static void
@ -2335,6 +2342,14 @@ Options_MenuInit(void)
0 0
}; };
static const char* pause_names[] =
{
"yes",
"no",
"unpause on re-focus",
0
};
static const char *crosshair_names[] = static const char *crosshair_names[] =
{ {
"none", "none",
@ -2432,6 +2447,13 @@ Options_MenuInit(void)
s_options_crosshair_box.generic.name = "crosshair"; s_options_crosshair_box.generic.name = "crosshair";
s_options_crosshair_box.generic.callback = CrosshairFunc; s_options_crosshair_box.generic.callback = CrosshairFunc;
s_options_crosshair_box.itemnames = crosshair_names; s_options_crosshair_box.itemnames = crosshair_names;
s_options_pauseonfocus_box.generic.type = MTYPE_SPINCONTROL;
s_options_pauseonfocus_box.generic.x = 0;
s_options_pauseonfocus_box.generic.y = (y += 10);
s_options_pauseonfocus_box.generic.name = "pause on minimized";
s_options_pauseonfocus_box.generic.callback = PauseFocusFunc;
s_options_pauseonfocus_box.itemnames = pause_names;
y += 10; y += 10;
if (show_gamepad) if (show_gamepad)
@ -2475,6 +2497,7 @@ Options_MenuInit(void)
Menu_AddItem(&s_options_menu, (void *)&s_options_lookstrafe_box); Menu_AddItem(&s_options_menu, (void *)&s_options_lookstrafe_box);
Menu_AddItem(&s_options_menu, (void *)&s_options_freelook_box); Menu_AddItem(&s_options_menu, (void *)&s_options_freelook_box);
Menu_AddItem(&s_options_menu, (void *)&s_options_crosshair_box); Menu_AddItem(&s_options_menu, (void *)&s_options_crosshair_box);
Menu_AddItem(&s_options_menu, (void*)&s_options_pauseonfocus_box);
if (show_gamepad) if (show_gamepad)
{ {