diff --git a/source/blood/src/controls.cpp b/source/blood/src/controls.cpp index 8da67bced..4a85b6afe 100644 --- a/source/blood/src/controls.cpp +++ b/source/blood/src/controls.cpp @@ -121,32 +121,8 @@ void ctrlGetInput(void) D_ProcessEvents(); - if (in_aimmode) - g_MyAimMode = 0; - - if (buttonMap.ButtonDown(gamefunc_Mouse_Aiming)) - { - if (in_aimmode) - g_MyAimMode = 1; - else - { - buttonMap.ClearButton(gamefunc_Mouse_Aiming); - g_MyAimMode = !g_MyAimMode; - if (g_MyAimMode) - { - if (!bSilentAim) - viewSetMessage("Mouse aiming ON"); - } - else - { - if (!bSilentAim) - viewSetMessage("Mouse aiming OFF"); - gInput.keyFlags.lookCenter = 1; - } - } - } - else if (in_aimmode) - gInput.keyFlags.lookCenter = 1; + bool mouseaim = in_mousemode || buttonMap.ButtonDown(gamefunc_Mouse_Aiming); + if (!mouseaim) gInput.keyFlags.lookCenter = 1; CONTROL_GetInput(&info); @@ -384,7 +360,7 @@ void ctrlGetInput(void) strafe = ClipRange(strafe-(info.dx<<5), -2048, 2048); - if (g_MyAimMode) + if (mouseaim) gInput.q16mlook = fix16_clamp(fix16_div(fix16_from_int(info.mousey), F16(128)), F16(-127)>>2, F16(127)>>2); else forward = ClipRange(forward - info.mousey, -2048, 2048); diff --git a/source/blood/src/menu.cpp b/source/blood/src/menu.cpp index 7bfad8f96..e65ecbefb 100644 --- a/source/blood/src/menu.cpp +++ b/source/blood/src/menu.cpp @@ -1852,11 +1852,6 @@ void SetMouseFilterInput(CGameMenuItemZBool *pItem) in_mousesmoothing = pItem->at20; } -void SetMouseAimMode(CGameMenuItemZBool *pItem) -{ - in_aimmode = pItem->at20; -} - void SetMouseVerticalAim(CGameMenuItemZBool *pItem) { in_mousemode = pItem->at20; @@ -1876,21 +1871,6 @@ void SetMouseDigitalAxis(CGameMenuItemZCycle *pItem) { } -void SetupMouseMenu(CGameMenuItemChain *pItem) -{ - UNREFERENCED_PARAMETER(pItem); - itemOptionsControlMouseAimFlipped.at20 = in_mouseflip; - itemOptionsControlMouseFilterInput.at20 = in_mousesmoothing; - itemOptionsControlMouseAimMode.at20 = in_aimmode; - itemOptionsControlMouseVerticalAim.at20 = g_MyAimMode; -} - -void PreDrawControlMouse(CGameMenuItem *pItem) -{ - if (pItem == &itemOptionsControlMouseVerticalAim) - pItem->bEnable = !in_aimmode; -} - void SetMouseButton(CGameMenuItemZCycle *pItem) { } diff --git a/source/common/gamecvars.cpp b/source/common/gamecvars.cpp index 5b8f21a32..edc505b4f 100644 --- a/source/common/gamecvars.cpp +++ b/source/common/gamecvars.cpp @@ -78,6 +78,14 @@ CUSTOM_CVARD(Bool, cl_autorun, true, CVAR_ARCHIVE, "enable/disable autorun") #endif } CVARD(Bool, cl_runmode, true, CVAR_ARCHIVE, "enable/disable modernized run key operation") + +bool G_CheckAutorun(bool button) +{ + if (cl_runmode) return button || cl_autorun; + else return button ^ !!cl_autorun; +} + + CVARD(Bool, cl_autosave, true, CVAR_ARCHIVE, "enable/disable autosaves") // Not implemented for Blood (but looks like the other games never check it either.) CVARD(Bool, cl_autosavedeletion, true, CVAR_ARCHIVE, "enable/disable automatic deletion of autosaves") // Not implemented for Blood CVARD(Int, cl_maxautosaves, 8, CVAR_ARCHIVE, "number of autosaves to keep before deleting the oldest") // Not implemented for Blood @@ -124,12 +132,6 @@ CUSTOM_CVARD(Int, cl_autovote, 0, CVAR_ARCHIVE, "enable/disable automatic voting if (self < 0 || self > 2) self = 0; } -bool G_CheckAutorun(bool button) -{ - if (cl_runmode) return button || cl_autorun; - else return button ^ !!cl_autorun; -} - // Demos CVARD_NAMED(Bool, demorec_diffcompress, demorec_diffcompress_cvar, true, CVAR_ARCHIVE|CVAR_GLOBALCONFIG, "Compression for diffs") @@ -319,14 +321,19 @@ CUSTOM_CVARD(Bool, in_mouse, true, CVAR_ARCHIVE|CVAR_GLOBALCONFIG|CVAR_NOINITCAL CONTROL_MouseEnabled = (self && CONTROL_MousePresent); } -// Does it even make sense to have this configurable? It is in the menu but can be switched around at will by the mouse input code. -int32_t g_MyAimMode = 1; -CUSTOM_CVARD(Bool, in_mousemode, true, CVAR_ARCHIVE|CVAR_GLOBALCONFIG, "toggles vertical mouse view") +CVARD(Bool, in_mousemode, true, CVAR_ARCHIVE|CVAR_GLOBALCONFIG, "toggles vertical mouse view") + +CVAR(Bool, silentmouseaimtoggle, false, CVAR_ARCHIVE|CVAR_GLOBALCONFIG) + +CCMD(togglemouseaim) { - g_MyAimMode = self; // Needs to be copied to a shadow variable because the input code messes around with this setting - but that should not affect the user's original choice. + in_mousemode = !in_mousemode; + if (!silentmouseaimtoggle) + { + gi->DoPrintMessage(PRINT_MEDIUM, in_mousemode? GStrings("TXT_MOUSEAIMON") : GStrings("TXT_MOUSEAIMOFF")); + } } -CVARD(Bool, in_aimmode, false, CVAR_ARCHIVE|CVAR_GLOBALCONFIG, "0:toggle, 1:hold to aim") CVARD(Bool, in_mouseflip, false, CVAR_ARCHIVE|CVAR_GLOBALCONFIG, "invert vertical mouse movement") CUSTOM_CVARD(Int, in_mousebias, 0, CVAR_GLOBALCONFIG|CVAR_ARCHIVE, "emulates the original mouse code's weighting of input towards whichever axis is moving the most at any given time") diff --git a/source/common/gamecvars.h b/source/common/gamecvars.h index b0331a9d2..a65b555e8 100644 --- a/source/common/gamecvars.h +++ b/source/common/gamecvars.h @@ -90,16 +90,15 @@ EXTERN_CVAR(Float, vid_brightness) EXTERN_CVAR(Bool, in_joystick) EXTERN_CVAR(Bool, in_mouse) -EXTERN_CVAR(Bool, in_aimmode) EXTERN_CVAR(Int, in_mousebias) EXTERN_CVAR(Int, in_mousedeadzone) EXTERN_CVAR(Bool, in_mouseflip) EXTERN_CVAR(Bool, in_mousemode) +EXTERN_CVAR(Bool, in_aimmode) EXTERN_CVAR(Bool, in_mousesmoothing) EXTERN_CVAR(Float, in_mousesensitivity) EXTERN_CVAR(Float, in_mousescalex) EXTERN_CVAR(Float, in_mousescaley) -extern int32_t g_MyAimMode; EXTERN_CVAR(Bool, in_mousemode) EXTERN_CVAR(String, wchoice) diff --git a/source/duke3d/src/game.cpp b/source/duke3d/src/game.cpp index 90ebdd3d7..5e2cec747 100644 --- a/source/duke3d/src/game.cpp +++ b/source/duke3d/src/game.cpp @@ -5721,7 +5721,7 @@ static void P_SetupMiscInputSettings(void) { auto ps = g_player[myconnectindex].ps; - ps->aim_mode = in_aimmode; + ps->aim_mode = in_mousemode; ps->auto_aim = cl_autoaim; ps->weaponswitch = cl_weaponswitch; } diff --git a/source/duke3d/src/gamestructures.cpp b/source/duke3d/src/gamestructures.cpp index be97ba659..9ea044ae4 100644 --- a/source/duke3d/src/gamestructures.cpp +++ b/source/duke3d/src/gamestructures.cpp @@ -1450,7 +1450,7 @@ int32_t __fastcall VM_GetUserdef(int32_t labelNum, int const lParm2) case USERDEFS_MOUSEFLIP: labelNum = !in_mouseflip; break; case USERDEFS_STATUSBARSCALE: labelNum = ud.statusbarscale; break; case USERDEFS_DRAWWEAPON: labelNum = r_drawweapon; break; - case USERDEFS_MOUSEAIMING: labelNum = in_aimmode; break; + case USERDEFS_MOUSEAIMING: labelNum = in_mousemode; break; case USERDEFS_WEAPONSWITCH: labelNum = cl_weaponswitch; break; case USERDEFS_DEMOCAMS: labelNum = cl_democams; break; case USERDEFS_COLOR: labelNum = playercolor; break; @@ -1643,7 +1643,7 @@ void __fastcall VM_SetUserdef(int const labelNum, int const lParm2, int32_t cons case USERDEFS_MOUSEFLIP: in_mouseflip.SetGenericRepDefault(iSet, CVAR_Int); break; case USERDEFS_STATUSBARSCALE: ud.statusbarscale = iSet; break; case USERDEFS_DRAWWEAPON: r_drawweapon.SetGenericRepDefault(iSet, CVAR_Int); break; - case USERDEFS_MOUSEAIMING: in_aimmode.SetGenericRepDefault(iSet, CVAR_Int); break; + case USERDEFS_MOUSEAIMING: break; // the script code has no business whatsoever changing this! case USERDEFS_WEAPONSWITCH: cl_weaponswitch.SetGenericRepDefault(iSet, CVAR_Int); break; case USERDEFS_DEMOCAMS: cl_democams = iSet; break; case USERDEFS_COLOR: /*playercolor.SetGenericRepDefault(iSet, CVAR_Int);*/ break; // the value range here does not match, so better leave the CVar alone. diff --git a/source/duke3d/src/menus.cpp b/source/duke3d/src/menus.cpp index 8bef91a7e..07e3e424f 100644 --- a/source/duke3d/src/menus.cpp +++ b/source/duke3d/src/menus.cpp @@ -653,11 +653,6 @@ static void Menu_Pre(MenuID_t cm) MenuEntry_DisableOnCondition(&ME_JOYSTICK_DEFAULTS_PRO, !joystick.isGameController); break; -#ifndef EDUKE32_SIMPLE_MENU - case MENU_MOUSESETUP: - MenuEntry_DisableOnCondition(&ME_MOUSESETUP_MOUSEAIMING, in_aimmode); - break; -#endif case MENU_NETOPTIONS: if (MEOSV_NetEpisodes[MEO_NETOPTIONS_EPISODE.currentOption] == MAXVOLUMES) MEL_NETOPTIONS[2] = &ME_NETOPTIONS_USERMAP; diff --git a/source/duke3d/src/network.cpp b/source/duke3d/src/network.cpp index 2de930adf..2c421971c 100644 --- a/source/duke3d/src/network.cpp +++ b/source/duke3d/src/network.cpp @@ -4799,7 +4799,7 @@ void Net_SendClientInfo(void) l += 32; tempnetbuf[l++] = 0; - tempnetbuf[l++] = g_player[myconnectindex].ps->aim_mode = in_aimmode; + tempnetbuf[l++] = g_player[myconnectindex].ps->aim_mode = in_mousemode; tempnetbuf[l++] = g_player[myconnectindex].ps->auto_aim = cl_autoaim; tempnetbuf[l++] = g_player[myconnectindex].ps->weaponswitch = cl_weaponswitch; tempnetbuf[l++] = g_player[myconnectindex].ps->palookup = g_player[myconnectindex].pcolor = G_CheckPlayerColor(playercolor); diff --git a/source/duke3d/src/player.cpp b/source/duke3d/src/player.cpp index 2771ef572..0b9aabd79 100644 --- a/source/duke3d/src/player.cpp +++ b/source/duke3d/src/player.cpp @@ -2887,7 +2887,6 @@ enddisplayweapon: #define MAXANGVEL 1024 #define MAXHORIZ 256 -int32_t g_myAimStat = 0, g_oldAimStat = 0; int32_t mouseyaxismode = -1; void P_GetInput(int const playerNum) @@ -2910,19 +2909,7 @@ void P_GetInput(int const playerNum) D_ProcessEvents(); - if (in_aimmode) - g_MyAimMode = buttonMap.ButtonDown(gamefunc_Mouse_Aiming); - else - { - g_oldAimStat = g_myAimStat; - g_myAimStat = buttonMap.ButtonDown(gamefunc_Mouse_Aiming); - - if (g_myAimStat > g_oldAimStat) - { - g_MyAimMode ^= 1; - P_DoQuote(QUOTE_MOUSE_AIMING_OFF + g_MyAimMode, pPlayer); - } - } + bool mouseaim = in_mousemode || buttonMap.ButtonDown(gamefunc_Mouse_Aiming); CONTROL_GetInput(&info); @@ -2950,7 +2937,7 @@ void P_GetInput(int const playerNum) input.q16avel += fix16_from_int(info.dyaw) / analogExtent * (analogTurnAmount << 1); } - if (g_MyAimMode) + if (mouseaim) input.q16horz = fix16_div(fix16_from_int(info.mousey), F16(64)); else input.fvel = -(info.mousey >> 6); @@ -3073,7 +3060,7 @@ void P_GetInput(int const playerNum) localInput.bits |= buttonMap.ButtonDown(gamefunc_Quick_Kick) << SK_QUICK_KICK; localInput.bits |= buttonMap.ButtonDown(gamefunc_TurnAround) << SK_TURNAROUND; - localInput.bits |= (g_MyAimMode << SK_AIMMODE); + localInput.bits |= (mouseaim << SK_AIMMODE); localInput.bits |= (g_gameQuit << SK_GAMEQUIT); localInput.bits |= inputState.GetKeyStatus(sc_Pause) << SK_PAUSE; localInput.bits |= ((uint32_t)inputState.GetKeyStatus(sc_Escape)) << SK_ESCAPE; diff --git a/source/rr/src/game.cpp b/source/rr/src/game.cpp index 18eed1f6b..9e4eaad83 100644 --- a/source/rr/src/game.cpp +++ b/source/rr/src/game.cpp @@ -7156,7 +7156,7 @@ static void P_SetupMiscInputSettings(void) { DukePlayer_t *ps = g_player[myconnectindex].ps; - ps->aim_mode = in_aimmode; + ps->aim_mode = in_mousemode; ps->auto_aim = cl_autoaim; ps->weaponswitch = cl_weaponswitch; } diff --git a/source/rr/src/menus.cpp b/source/rr/src/menus.cpp index 238839e89..5fd9777b7 100644 --- a/source/rr/src/menus.cpp +++ b/source/rr/src/menus.cpp @@ -510,156 +510,6 @@ static MenuEntry_t *MEL_KEYBOARDSETUP[] = { }; -// There is no better way to do this than manually. - -#define MENUMOUSEFUNCTIONS 12 - -static char const *MenuMouseNames[MENUMOUSEFUNCTIONS] = { - "Button 1", - "Double Button 1", - "Button 2", - "Double Button 2", - "Button 3", - "Double Button 3", - - "Wheel Up", - "Wheel Down", - - "Button 4", - "Double Button 4", - "Button 5", - "Double Button 5", -}; -static int32_t MenuMouseDataIndex[MENUMOUSEFUNCTIONS][2] = { - { 0, 0, }, - { 0, 1, }, - { 1, 0, }, - { 1, 1, }, - { 2, 0, }, - { 2, 1, }, - - // note the mouse wheel - { 4, 0, }, - { 5, 0, }, - - { 3, 0, }, - { 3, 1, }, - { 6, 0, }, - { 6, 1, }, -}; - -static MenuOption_t MEO_MOUSEJOYSETUPBTNS_TEMPLATE = MAKE_MENUOPTION( &MF_Minifont, &MEOS_Gamefuncs, NULL ); -static MenuOption_t MEO_MOUSESETUPBTNS[MENUMOUSEFUNCTIONS]; -static MenuEntry_t ME_MOUSEJOYSETUPBTNS_TEMPLATE = MAKE_MENUENTRY( NULL, &MF_Minifont, &MEF_FuncList, NULL, Option ); - -static MenuRangeFloat_t MEO_MOUSESETUP_SENSITIVITY = MAKE_MENURANGE( &in_mousesensitivity, &MF_Redfont, .5f, 16.f, 0.f, 32, 1 ); -static MenuEntry_t ME_MOUSESETUP_SENSITIVITY = MAKE_MENUENTRY( "Sensitivity:", &MF_Redfont, &MEF_BigOptionsRt, &MEO_MOUSESETUP_SENSITIVITY, RangeFloat ); - -#ifndef EDUKE32_SIMPLE_MENU -static char const *MEOSN_MOUSESETUP_AIM_TYPE [] = { "Toggle", "Hold" }; -static MenuOptionSet_t MEOS_MOUSESETUP_AIM_TYPE = MAKE_MENUOPTIONSET(MEOSN_MOUSESETUP_AIM_TYPE, NULL, 0x2); -static MenuOption_t MEO_MOUSESETUP_MOUSEAIMINGTYPE = MAKE_MENUOPTION(&MF_Redfont, &MEOS_MOUSESETUP_AIM_TYPE, &in_aimmode); -static MenuEntry_t ME_MOUSESETUP_MOUSEAIMINGTYPE = MAKE_MENUENTRY("Aiming type:", &MF_Redfont, &MEF_BigOptionsRt, &MEO_MOUSESETUP_MOUSEAIMINGTYPE, Option); -static MenuOption_t MEO_MOUSESETUP_MOUSEAIMING = MAKE_MENUOPTION( &MF_Redfont, &MEOS_NoYes, &in_mousemode ); -static MenuEntry_t ME_MOUSESETUP_MOUSEAIMING = MAKE_MENUENTRY( "Vertical aiming:", &MF_Redfont, &MEF_BigOptionsRt, &MEO_MOUSESETUP_MOUSEAIMING, Option ); -#endif -static MenuOption_t MEO_MOUSESETUP_INVERT = MAKE_MENUOPTION( &MF_Redfont, &MEOS_YesNo, &in_mouseflip ); -static MenuEntry_t ME_MOUSESETUP_INVERT = MAKE_MENUENTRY( "Invert aiming:", &MF_Redfont, &MEF_BigOptionsRt, &MEO_MOUSESETUP_INVERT, Option ); -static MenuOption_t MEO_MOUSESETUP_SMOOTH = MAKE_MENUOPTION( &MF_Redfont, &MEOS_NoYes, &in_mousesmoothing ); -static MenuEntry_t ME_MOUSESETUP_SMOOTH = MAKE_MENUENTRY( "Filter input:", &MF_Redfont, &MEF_BigOptionsRt, &MEO_MOUSESETUP_SMOOTH, Option ); -#ifndef EDUKE32_SIMPLE_MENU -static MenuLink_t MEO_MOUSESETUP_ADVANCED = { MENU_MOUSEADVANCED, MA_Advance, }; -static MenuEntry_t ME_MOUSESETUP_ADVANCED = MAKE_MENUENTRY( "Advanced setup", &MF_Redfont, &MEF_BigOptionsRt, &MEO_MOUSESETUP_ADVANCED, Link ); -#endif -static MenuRangeInt32_t MEO_MOUSEADVANCED_SCALEX = MAKE_MENURANGE(&in_mousescalex, &MF_Redfont, -262144, 262144, 65536, 161, 3); -static MenuEntry_t ME_MOUSEADVANCED_SCALEX = MAKE_MENUENTRY("X-Scale:", &MF_Redfont, &MEF_BigOptionsRt, &MEO_MOUSEADVANCED_SCALEX, RangeInt32); -static MenuRangeInt32_t MEO_MOUSEADVANCED_SCALEY = MAKE_MENURANGE(&in_mousescaley, &MF_Redfont, -262144, 262144, 65536, 161, 3); -static MenuEntry_t ME_MOUSEADVANCED_SCALEY = MAKE_MENUENTRY("Y-Scale:", &MF_Redfont, &MEF_BigOptionsRt, &MEO_MOUSEADVANCED_SCALEY, RangeInt32); - -static MenuEntry_t *MEL_MOUSESETUP[] = { - &ME_MOUSESETUP_SENSITIVITY, -#ifdef EDUKE32_SIMPLE_MENU - &ME_MOUSEADVANCED_SCALEX, - &ME_MOUSEADVANCED_SCALEY, -#endif - &ME_Space2_Redfont, - &ME_MOUSESETUP_INVERT, - &ME_MOUSESETUP_SMOOTH, -#ifndef EDUKE32_SIMPLE_MENU - &ME_MOUSESETUP_MOUSEAIMINGTYPE, - &ME_MOUSESETUP_MOUSEAIMING, - &ME_MOUSESETUP_ADVANCED, -#endif -}; - - - -static MenuOption_t MEO_JOYSTICK_ENABLE = MAKE_MENUOPTION( &MF_Redfont, &MEOS_OffOn, &in_joystick ); -static MenuEntry_t ME_JOYSTICK_ENABLE = MAKE_MENUENTRY( "Enable Gamepad:", &MF_Redfont, &MEF_BigOptionsRt, &MEO_JOYSTICK_ENABLE, Option ); - -MAKE_MENU_TOP_ENTRYLINK( "Edit Buttons", MEF_CenterMenu, JOYSTICK_EDITBUTTONS, MENU_JOYSTICKBTNS ); -MAKE_MENU_TOP_ENTRYLINK( "Edit Axes", MEF_CenterMenu, JOYSTICK_EDITAXES, MENU_JOYSTICKAXES ); - -static MenuEntry_t *MEL_JOYSTICKSETUP[] = { - &ME_JOYSTICK_ENABLE, - &ME_Space6_Redfont, - &ME_JOYSTICK_EDITBUTTONS, - &ME_JOYSTICK_EDITAXES, -}; - -#define MAXJOYBUTTONSTRINGLENGTH 32 - -static char MenuJoystickNames[MAXJOYBUTTONSANDHATS*2][MAXJOYBUTTONSTRINGLENGTH]; - -static MenuOption_t MEO_JOYSTICKBTNS[MAXJOYBUTTONSANDHATS*2]; -static MenuEntry_t ME_JOYSTICKBTNS[MAXJOYBUTTONSANDHATS*2]; -static MenuEntry_t *MEL_JOYSTICKBTNS[MAXJOYBUTTONSANDHATS*2]; - -static MenuLink_t MEO_JOYSTICKAXES = { MENU_JOYSTICKAXIS, MA_Advance, }; -static MenuEntry_t ME_JOYSTICKAXES_TEMPLATE = MAKE_MENUENTRY( NULL, &MF_Redfont, &MEF_BigSliders, &MEO_JOYSTICKAXES, Link ); -static MenuEntry_t ME_JOYSTICKAXES[MAXJOYAXES]; -static char MenuJoystickAxes[MAXJOYAXES][MAXJOYBUTTONSTRINGLENGTH]; - -static MenuEntry_t *MEL_JOYSTICKAXES[MAXJOYAXES]; - -static MenuEntry_t *MEL_MOUSEADVANCED[] = { - &ME_MOUSEADVANCED_SCALEX, - &ME_MOUSEADVANCED_SCALEY, -}; - -static const char *MenuJoystickHatDirections[] = { "Up", "Right", "Down", "Left", }; - -static char const *MEOSN_JOYSTICKAXIS_ANALOG[] = { " -None-", "Turning", "Strafing", "Looking", "Moving", }; -static int32_t MEOSV_JOYSTICKAXIS_ANALOG[] = { -1, analog_turning, analog_strafing, analog_lookingupanddown, analog_moving, }; -static MenuOptionSet_t MEOS_JOYSTICKAXIS_ANALOG = MAKE_MENUOPTIONSET( MEOSN_JOYSTICKAXIS_ANALOG, MEOSV_JOYSTICKAXIS_ANALOG, 0x0 ); -static MenuOption_t MEO_JOYSTICKAXIS_ANALOG = MAKE_MENUOPTION( &MF_Bluefont, &MEOS_JOYSTICKAXIS_ANALOG, NULL ); -static MenuEntry_t ME_JOYSTICKAXIS_ANALOG = MAKE_MENUENTRY( "Analog", &MF_Redfont, &MEF_BigSliders, &MEO_JOYSTICKAXIS_ANALOG, Option ); -static MenuRangeInt32_t MEO_JOYSTICKAXIS_SCALE = MAKE_MENURANGE( NULL, &MF_Bluefont, -262144, 262144, 65536, 65, 3 ); -static MenuEntry_t ME_JOYSTICKAXIS_SCALE = MAKE_MENUENTRY( "Scale", &MF_Redfont, &MEF_BigSliders, &MEO_JOYSTICKAXIS_SCALE, RangeInt32 ); -static MenuRangeInt32_t MEO_JOYSTICKAXIS_DEAD = MAKE_MENURANGE( NULL, &MF_Bluefont, 0, 1000000, 0, 33, 2 ); -static MenuEntry_t ME_JOYSTICKAXIS_DEAD = MAKE_MENUENTRY( "Dead Zone", &MF_Redfont, &MEF_BigSliders, &MEO_JOYSTICKAXIS_DEAD, RangeInt32 ); -static MenuRangeInt32_t MEO_JOYSTICKAXIS_SATU = MAKE_MENURANGE( NULL, &MF_Bluefont, 0, 1000000, 0, 33, 2 ); -static MenuEntry_t ME_JOYSTICKAXIS_SATU = MAKE_MENUENTRY( "Saturation", &MF_Redfont, &MEF_BigSliders, &MEO_JOYSTICKAXIS_SATU, RangeInt32 ); - -static MenuOption_t MEO_JOYSTICKAXIS_DIGITALNEGATIVE = MAKE_MENUOPTION( &MF_Minifont, &MEOS_Gamefuncs, NULL ); -static MenuEntry_t ME_JOYSTICKAXIS_DIGITALNEGATIVE = MAKE_MENUENTRY( "Digital -", &MF_Bluefont, &MEF_BigSliders, &MEO_JOYSTICKAXIS_DIGITALNEGATIVE, Option ); -static MenuOption_t MEO_JOYSTICKAXIS_DIGITALPOSITIVE = MAKE_MENUOPTION( &MF_Minifont, &MEOS_Gamefuncs, NULL ); -static MenuEntry_t ME_JOYSTICKAXIS_DIGITALPOSITIVE = MAKE_MENUENTRY( "Digital +", &MF_Bluefont, &MEF_BigSliders, &MEO_JOYSTICKAXIS_DIGITALPOSITIVE, Option ); - -static MenuEntry_t *MEL_JOYSTICKAXIS[] = { - &ME_JOYSTICKAXIS_ANALOG, - &ME_JOYSTICKAXIS_SCALE, - &ME_JOYSTICKAXIS_DEAD, - &ME_JOYSTICKAXIS_SATU, - &ME_Space8_Redfont, - &ME_JOYSTICKAXIS_DIGITALNEGATIVE, - &ME_JOYSTICKAXIS_DIGITALPOSITIVE, -}; - -static MenuEntry_t *MEL_INTERNAL_JOYSTICKAXIS_DIGITAL[] = { - &ME_JOYSTICKAXIS_DIGITALNEGATIVE, - &ME_JOYSTICKAXIS_DIGITALPOSITIVE, -}; #ifdef USE_OPENGL static MenuOption_t MEO_RENDERERSETUP_HIGHTILE = MAKE_MENUOPTION( &MF_Bluefont, &MEOS_NoYes, &hw_hightile ); diff --git a/source/rr/src/net.cpp b/source/rr/src/net.cpp index e16092161..da3ca64db 100644 --- a/source/rr/src/net.cpp +++ b/source/rr/src/net.cpp @@ -3427,7 +3427,7 @@ void Net_SendClientInfo(void) l += 32; tempbuf[l++] = 0; - tempbuf[l++] = g_player[myconnectindex].ps->aim_mode = in_aimmode; + tempbuf[l++] = g_player[myconnectindex].ps->aim_mode = in_mousemode; tempbuf[l++] = g_player[myconnectindex].ps->auto_aim = cl_autoaim; tempbuf[l++] = g_player[myconnectindex].ps->weaponswitch = cl_weaponswitch; tempbuf[l++] = g_player[myconnectindex].ps->palookup = g_player[myconnectindex].pcolor = G_CheckPlayerColor(playercolor); diff --git a/source/rr/src/player.cpp b/source/rr/src/player.cpp index 47756f982..434182de6 100644 --- a/source/rr/src/player.cpp +++ b/source/rr/src/player.cpp @@ -2758,19 +2758,7 @@ void P_GetInput(int playerNum) D_ProcessEvents(); - if (in_aimmode) - g_MyAimMode = buttonMap.ButtonDown(gamefunc_Mouse_Aiming); - else - { - g_oldAimStat = g_myAimStat; - g_myAimStat = buttonMap.ButtonDown(gamefunc_Mouse_Aiming); - - if (g_myAimStat > g_oldAimStat) - { - g_MyAimMode ^= 1; - P_DoQuote(QUOTE_MOUSE_AIMING_OFF + g_MyAimMode, pPlayer); - } - } + bool mouseaim = in_mousemode || buttonMap.ButtonDown(gamefunc_Mouse_Aiming); CONTROL_GetInput(&info); @@ -2800,7 +2788,7 @@ void P_GetInput(int playerNum) input.q16avel += fix16_from_int(info.dyaw) / analogExtent * (analogTurnAmount << 1); } - if (g_MyAimMode) + if (mouseaim) input.q16horz = fix16_div(fix16_from_int(info.mousey), F16(64)); else input.fvel = -(info.mousey >> 6); @@ -2965,7 +2953,7 @@ void P_GetInput(int playerNum) localInput.bits |= buttonMap.ButtonDown(gamefunc_Quick_Kick) << SK_QUICK_KICK; localInput.bits |= buttonMap.ButtonDown(gamefunc_TurnAround) << SK_TURNAROUND; - localInput.bits |= (g_MyAimMode << SK_AIMMODE); + localInput.bits |= (mouseaim << SK_AIMMODE); localInput.bits |= (g_gameQuit << SK_GAMEQUIT); localInput.bits |= inputState.GetKeyStatus(sc_Pause) << SK_PAUSE; localInput.bits |= ((uint32_t)inputState.GetKeyStatus(sc_Escape)) << SK_ESCAPE; @@ -3044,19 +3032,7 @@ void P_GetInputMotorcycle(int playerNum) D_ProcessEvents(); - if (in_aimmode) - g_MyAimMode = buttonMap.ButtonDown(gamefunc_Mouse_Aiming); - else - { - g_oldAimStat = g_myAimStat; - g_myAimStat = buttonMap.ButtonDown(gamefunc_Mouse_Aiming); - - if (g_myAimStat > g_oldAimStat) - { - g_MyAimMode ^= 1; - P_DoQuote(QUOTE_MOUSE_AIMING_OFF + g_MyAimMode, pPlayer); - } - } + bool mouseaim = in_mousemode || buttonMap.ButtonDown(gamefunc_Mouse_Aiming); CONTROL_GetInput(&info); @@ -3321,19 +3297,7 @@ void P_GetInputBoat(int playerNum) D_ProcessEvents(); - if (in_aimmode) - g_MyAimMode = buttonMap.ButtonDown(gamefunc_Mouse_Aiming); - else - { - g_oldAimStat = g_myAimStat; - g_myAimStat = buttonMap.ButtonDown(gamefunc_Mouse_Aiming); - - if (g_myAimStat > g_oldAimStat) - { - g_MyAimMode ^= 1; - P_DoQuote(QUOTE_MOUSE_AIMING_OFF + g_MyAimMode, pPlayer); - } - } + bool mouseaim = in_mousemode || buttonMap.ButtonDown(gamefunc_Mouse_Aiming); CONTROL_GetInput(&info); diff --git a/source/sw/src/game.cpp b/source/sw/src/game.cpp index e4a572994..0cc97a153 100644 --- a/source/sw/src/game.cpp +++ b/source/sw/src/game.cpp @@ -2772,8 +2772,6 @@ void InitPlayerGameSettings(void) else RESET(Player[myconnectindex].Flags, PF_AUTO_AIM); } - - g_MyAimMode = in_aimmode; } @@ -3518,29 +3516,23 @@ void getinput(SW_PACKET *loc) // MAKE SURE THIS WILL GET SET SET_LOC_KEY(loc->bits, SK_QUIT_GAME, MultiPlayQuitFlag); - if (in_aimmode) - g_MyAimMode = 0; + bool mouseaim = in_mousemode || buttonMap.ButtonDown(gamefunc_Mouse_Aiming); - if (buttonMap.ButtonDown(gamefunc_Mouse_Aiming)) + if (!CommEnabled) { - if (in_aimmode) - g_MyAimMode = 1; - else - { - buttonMap.ClearButton(gamefunc_Mouse_Aiming); - g_MyAimMode = !g_MyAimMode; - if (g_MyAimMode) - { - PutStringInfo(pp, "Mouse Aiming Off"); - } - else - { - PutStringInfo(pp, "Mouse Aiming On"); - } - } - } + // Go back to the source to set this - the old code here was catastrophically bad. + // this needs to be fixed properly - as it is this can never be compatible with demo playback. - int const aimMode = TEST(pp->Flags, PF_MOUSE_AIMING_ON); + if (mouseaim) + SET(Player[myconnectindex].Flags, PF_MOUSE_AIMING_ON); + else + RESET(Player[myconnectindex].Flags, PF_MOUSE_AIMING_ON); + + if (cl_autoaim) + SET(Player[myconnectindex].Flags, PF_AUTO_AIM); + else + RESET(Player[myconnectindex].Flags, PF_AUTO_AIM); + } ControlInfo info; CONTROL_GetInput(&info); @@ -3646,7 +3638,7 @@ void getinput(SW_PACKET *loc) angvel += info.dyaw * (turnamount << 1) / analogExtent; } - if (true)//aimMode) + if (mouseaim) aimvel = -info.mousey / 64; else vel = -(info.mousey >> 6); @@ -3758,7 +3750,6 @@ void getinput(SW_PACKET *loc) SET_LOC_KEY(loc->bits, SK_LOOK_UP, buttonMap.ButtonDown(gamefunc_Look_Up)); SET_LOC_KEY(loc->bits, SK_LOOK_DOWN, buttonMap.ButtonDown(gamefunc_Look_Down)); - for (i = 0; i < MAX_WEAPONS_KEYS; i++) { if (buttonMap.ButtonDown(gamefunc_Weapon_1 + i)) diff --git a/source/sw/src/menus.cpp b/source/sw/src/menus.cpp index ee42e2c46..fae69b844 100644 --- a/source/sw/src/menus.cpp +++ b/source/sw/src/menus.cpp @@ -2252,7 +2252,6 @@ MNU_InitMenus(void) buttonsettings[btn_bobbing] = cl_viewbob; buttonsettings[btn_shadows] = r_shadows; - buttonsettings[btn_mouse_aim] = in_aimmode; buttonsettings[btn_mouse_invert] = in_mouseflip; buttonsettings[btn_sound] = snd_enabled; buttonsettings[btn_music] = mus_enabled; @@ -3012,10 +3011,6 @@ void MNU_DoButton(MenuItem_p item, SWBOOL draw) if (cl_autorun != last_value) MenuButtonAutoRun = TRUE; break; - case btn_mouse_aim: - last_value = in_aimmode; - in_aimmode = state = buttonsettings[item->button]; - break; case btn_mouse_invert: in_mouseflip = state = buttonsettings[item->button]; break; @@ -3146,13 +3141,6 @@ void MNU_DoButton(MenuItem_p item, SWBOOL draw) if (!draw) return; - switch (item->button) - { - case btn_mouse_aim: - extra_text = in_aimmode ? "Momentary" : "Toggle"; - break; - default: break; - } state = buttonsettings[item->button]; diff --git a/source/sw/src/player.cpp b/source/sw/src/player.cpp index 6a0f26a10..c5f1b63ed 100644 --- a/source/sw/src/player.cpp +++ b/source/sw/src/player.cpp @@ -1820,7 +1820,7 @@ PlayerAutoLook(PLAYERp pp) if (!TEST(pp->Flags, PF_FLYING|PF_SWIMMING|PF_DIVING|PF_CLIMBING|PF_JUMPING|PF_FALLING)) { - if (!g_MyAimMode && TEST(sector[pp->cursectnum].floorstat, FLOOR_STAT_SLOPE)) // If the floor is sloped + if (!TEST(pp->Flags, PF_MOUSE_AIMING_ON) && TEST(sector[pp->cursectnum].floorstat, FLOOR_STAT_SLOPE)) // If the floor is sloped { // Get a point, 512 units ahead of player's position x = pp->posx + (sintable[(pp->pang + 512) & 2047] >> 5); @@ -2522,29 +2522,6 @@ MoveScrollMode2D(PLAYERp pp) void DoPlayerMenuKeys(PLAYERp pp) { - - if (!CommEnabled) - { - // Go back to the source to set this - the old code here was catastrophically bad. - // this needs to be fixed properly - as it is this can never be compatible with demo playback. - if (cl_autoaim) - SET(Player[myconnectindex].Flags, PF_AUTO_AIM); - else - RESET(Player[myconnectindex].Flags, PF_AUTO_AIM); - -#if 0 - if (TEST_SYNC_KEY((pp), SK_AUTO_AIM)) - { - if (FLAG_KEY_PRESSED(pp, SK_AUTO_AIM)) - { - FLAG_KEY_RELEASE(pp, SK_AUTO_AIM); - FLIP(pp->Flags, PF_AUTO_AIM); - } - } - else - FLAG_KEY_RESET(pp, SK_AUTO_AIM); -#endif - } } void PlayerSectorBound(PLAYERp pp, int amt) diff --git a/wadsrc/static/demolition/menudef.txt b/wadsrc/static/demolition/menudef.txt index 64acbf1a4..328f61d10 100644 --- a/wadsrc/static/demolition/menudef.txt +++ b/wadsrc/static/demolition/menudef.txt @@ -665,6 +665,8 @@ OptionMenu "ActionControlsMenu"// protected StaticText "" Control "$CNTRLMNU_MOUSELOOK" , "+mouse_aiming" + Control "$CNTRLMNU_MLOOKTOGGLE" , "togglemouseaim" + Control "$CNTRLMNU_AIMUP" , "+aim_up" Control "$CNTRLMNU_AIMDOWN" , "+aim_down" Control "$CNTRLMNU_LOOKUP" , "+look_up" @@ -902,7 +904,6 @@ OptionMenu "MouseOptions" //protected StaticText "" Option "$MOUSEMNU_ALWAYSMOUSELOOK", "in_mousemode", "OnOff" Option "$MOUSEMNU_INVERTMOUSE", "in_mouseflip", "OnOff" - Option "$MOUSEMNU_LOOKSPRING", "in_aimmode", "OnOff" // Functionm exists but is very broken. Definitely needs fixing. // Do we need this? Option "$MOUSEMNU_LOOKSTRAFE", "lookstrafe", "OnOff" }