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_nextweapon,
input_mouselook,
input_padlook,
input_freelook,
input_weapon1,
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},
{"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},
MI_RESET,
@ -4172,7 +4172,7 @@ void M_ResetTimeScale(void)
I_SetTimeScale(time_scale);
}
static void M_UpdateMouseLook(void)
static void M_UpdateFreeLook(void)
{
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"}},
{"Free Look", S_YESNO, m_null, CNTR_X, M_SPC,
{"mouselook"}, 0, M_UpdateMouseLook},
{"mouselook"}, 0, M_UpdateFreeLook},
// [FG] invert vertical axis
{"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},
{"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"}},
@ -4918,7 +4918,7 @@ void M_DrawCredits(void) // killough 10/98: credit screen
M_DrawScreenItems(cred_settings);
}
static boolean M_ShortcutResponder(void)
static boolean M_ShortcutResponder(const event_t *ev)
{
// 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
}
if (M_InputActivated(input_mouselook))
if (M_InputActivated(input_freelook))
{
mouselook = !mouselook;
padlook = !padlook;
togglemsg("Free Look %s", mouselook ? "On" : "Off");
M_UpdateMouseLook();
if (ev->type == ev_joyb_down)
{
// Gamepad free look toggle only affects gamepad.
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");
}
M_UpdateFreeLook();
// return true; // [FG] don't let toggles eat keys
}
@ -6383,7 +6392,7 @@ boolean M_Responder (event_t* ev)
G_ScreenShot();
}
if (M_ShortcutResponder())
if (M_ShortcutResponder(ev))
{
return true;
}

View File

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

View File

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