Apply free look toggle to current input type only (#1499)

* Apply free look toggle to current input type only

* R_SetupMouselook --> R_SetupFreelook

* M_UpdateMouseLook --> M_UpdateFreeLook

* input_mouselook --> input_freelook
This commit is contained in:
ceski 2024-02-18 20:50:28 -08:00 committed by GitHub
parent d9e54a97cd
commit c3a424bf16
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 27 additions and 19 deletions

View File

@ -41,8 +41,7 @@ enum
input_prevweapon, input_prevweapon,
input_nextweapon, input_nextweapon,
input_mouselook, input_freelook,
input_padlook,
input_weapon1, input_weapon1,
input_weapon2, input_weapon2,

View File

@ -2814,7 +2814,7 @@ setup_menu_t keys_settings1[] = // Key Binding screen strings
{"Toggles", S_SKIP|S_TITLE, m_null, KB_X, M_SPC}, {"Toggles", S_SKIP|S_TITLE, m_null, KB_X, M_SPC},
{"Autorun" , S_INPUT, m_scrn, KB_X, M_SPC, {0}, input_autorun}, {"Autorun" , S_INPUT, m_scrn, KB_X, M_SPC, {0}, input_autorun},
{"Free Look" , S_INPUT, m_scrn, KB_X, M_SPC, {0}, input_mouselook}, {"Free Look" , S_INPUT, m_scrn, KB_X, M_SPC, {0}, input_freelook},
{"Vertmouse" , S_INPUT, m_scrn, KB_X, M_SPC, {0}, input_novert}, {"Vertmouse" , S_INPUT, m_scrn, KB_X, M_SPC, {0}, input_novert},
MI_RESET, MI_RESET,
@ -4172,7 +4172,7 @@ void M_ResetTimeScale(void)
I_SetTimeScale(time_scale); I_SetTimeScale(time_scale);
} }
static void M_UpdateMouseLook(void) static void M_UpdateFreeLook(void)
{ {
P_UpdateDirectVerticalAiming(); P_UpdateDirectVerticalAiming();
@ -4226,7 +4226,7 @@ setup_menu_t gen_settings3[] = {
{"Double-Click to \"Use\"", S_YESNO, m_null, CNTR_X, M_Y, {"dclick_use"}}, {"Double-Click to \"Use\"", S_YESNO, m_null, CNTR_X, M_Y, {"dclick_use"}},
{"Free Look", S_YESNO, m_null, CNTR_X, M_SPC, {"Free Look", S_YESNO, m_null, CNTR_X, M_SPC,
{"mouselook"}, 0, M_UpdateMouseLook}, {"mouselook"}, 0, M_UpdateFreeLook},
// [FG] invert vertical axis // [FG] invert vertical axis
{"Invert Look", S_YESNO, m_null, CNTR_X, M_SPC, {"Invert Look", S_YESNO, m_null, CNTR_X, M_SPC,
@ -4260,7 +4260,7 @@ setup_menu_t gen_settings4[] = {
{"joy_layout"}, 0, I_ResetController, str_layout}, {"joy_layout"}, 0, I_ResetController, str_layout},
{"Free Look", S_YESNO, m_null, CNTR_X, M_SPC, {"Free Look", S_YESNO, m_null, CNTR_X, M_SPC,
{"padlook"}, 0, M_UpdateMouseLook}, {"padlook"}, 0, M_UpdateFreeLook},
{"Invert Look", S_YESNO, m_scrn, CNTR_X, M_SPC, {"joy_invert_look"}}, {"Invert Look", S_YESNO, m_scrn, CNTR_X, M_SPC, {"joy_invert_look"}},
@ -4918,7 +4918,7 @@ void M_DrawCredits(void) // killough 10/98: credit screen
M_DrawScreenItems(cred_settings); M_DrawScreenItems(cred_settings);
} }
static boolean M_ShortcutResponder(void) static boolean M_ShortcutResponder(const event_t *ev)
{ {
// If there is no active menu displayed... // If there is no active menu displayed...
@ -4941,12 +4941,21 @@ static boolean M_ShortcutResponder(void)
// return true; // [FG] don't let toggles eat keys // return true; // [FG] don't let toggles eat keys
} }
if (M_InputActivated(input_mouselook)) if (M_InputActivated(input_freelook))
{ {
mouselook = !mouselook; if (ev->type == ev_joyb_down)
{
// Gamepad free look toggle only affects gamepad.
padlook = !padlook; padlook = !padlook;
togglemsg("Gamepad Free Look %s", padlook ? "On" : "Off");
}
else
{
// Keyboard or mouse free look toggle only affects mouse.
mouselook = !mouselook;
togglemsg("Free Look %s", mouselook ? "On" : "Off"); togglemsg("Free Look %s", mouselook ? "On" : "Off");
M_UpdateMouseLook(); }
M_UpdateFreeLook();
// return true; // [FG] don't let toggles eat keys // return true; // [FG] don't let toggles eat keys
} }
@ -6383,7 +6392,7 @@ boolean M_Responder (event_t* ev)
G_ScreenShot(); G_ScreenShot();
} }
if (M_ShortcutResponder()) if (M_ShortcutResponder(ev))
{ {
return true; return true;
} }

View File

@ -1159,11 +1159,11 @@ default_t defaults[] = {
}, },
{ {
"input_mouselook", "input_freelook",
NULL, NULL, NULL, NULL,
{0}, {UL,UL}, input, ss_keys, wad_no, {0}, {UL,UL}, input, ss_keys, wad_no,
"key to toggle mouselook", "key to toggle free look",
input_mouselook, { {0, 0} } input_freelook, { {0, 0} }
}, },
// [FG] reload current level / go to next level // [FG] reload current level / go to next level

View File

@ -472,7 +472,7 @@ void R_SmoothLight(void)
static fixed_t viewpitch; static fixed_t viewpitch;
static void R_SetupMouselook(void) static void R_SetupFreelook(void)
{ {
fixed_t dy; fixed_t dy;
int i; int i;
@ -582,7 +582,7 @@ void R_ExecuteSetViewSize (void)
R_InitTextureMapping(); R_InitTextureMapping();
R_SetupMouselook(); R_SetupFreelook();
// psprite scales // psprite scales
pspritescale = FixedDiv(viewwidth_nonwide, SCREENWIDTH); // killough 11/98 pspritescale = FixedDiv(viewwidth_nonwide, SCREENWIDTH); // killough 11/98
@ -756,7 +756,7 @@ void R_SetupFrame (player_t *player)
if (pitch != viewpitch) if (pitch != viewpitch)
{ {
viewpitch = pitch; viewpitch = pitch;
R_SetupMouselook(); R_SetupFreelook();
} }
// 3-screen display mode. // 3-screen display mode.