diff --git a/include/dusk/settings.h b/include/dusk/settings.h index c002f3b65b..de6637080b 100644 --- a/include/dusk/settings.h +++ b/include/dusk/settings.h @@ -204,7 +204,8 @@ struct UserSettings { ConfigVar invertFirstPersonYAxis; ConfigVar invertAirSwimX; ConfigVar invertAirSwimY; - ConfigVar freeCameraSensitivity; + ConfigVar freeCameraXSensitivity; + ConfigVar freeCameraYSensitivity; ConfigVar debugFlyCam; ConfigVar debugFlyCamLockEvents; ConfigVar allowBackgroundInput; diff --git a/src/d/d_camera.cpp b/src/d/d_camera.cpp index 4a77816cb8..8e7e48949a 100644 --- a/src/d/d_camera.cpp +++ b/src/d/d_camera.cpp @@ -7665,8 +7665,8 @@ bool dCamera_c::freeCamera() { mCamParam.mManualMode = 1; camMovement = camMovement.normalize(); camMovement.y *= dusk::getSettings().game.invertCameraYAxis ? 1.0f : -1.0f; - mCamParam.freeXAngle += camMovement.x * magnitude * dusk::getSettings().game.freeCameraSensitivity * 5.0f; - mCamParam.freeYAngle += camMovement.y * magnitude * dusk::getSettings().game.freeCameraSensitivity * 5.0f; + mCamParam.freeXAngle += camMovement.x * magnitude * dusk::getSettings().game.freeCameraXSensitivity * 5.0f; + mCamParam.freeYAngle += camMovement.y * magnitude * dusk::getSettings().game.freeCameraYSensitivity * 5.0f; } fopAc_ac_c* player = dComIfGp_getPlayer(0); diff --git a/src/dusk/settings.cpp b/src/dusk/settings.cpp index 2aa628887d..464a1ff2b2 100644 --- a/src/dusk/settings.cpp +++ b/src/dusk/settings.cpp @@ -92,7 +92,8 @@ UserSettings g_userSettings = { .invertFirstPersonYAxis {"game.invertFirstPersonYAxis", false}, .invertAirSwimX {"game.invertAirSwimX", false}, .invertAirSwimY {"game.invertAirSwimY", false}, - .freeCameraSensitivity {"game.freeCameraSensitivity", 1.0f}, + .freeCameraXSensitivity {"game.freeCameraXSensitivity", 1.0f}, + .freeCameraYSensitivity {"game.freeCameraYSensitivity", 1.0f}, .debugFlyCam {"game.debugFlyCam", false}, .debugFlyCamLockEvents {"game.debugFlyCamLockEvents", true}, .allowBackgroundInput {"game.allowBackgroundInput", true}, @@ -224,7 +225,8 @@ void registerSettings() { Register(g_userSettings.game.invertFirstPersonYAxis); Register(g_userSettings.game.invertAirSwimX); Register(g_userSettings.game.invertAirSwimY); - Register(g_userSettings.game.freeCameraSensitivity); + Register(g_userSettings.game.freeCameraXSensitivity); + Register(g_userSettings.game.freeCameraYSensitivity); Register(g_userSettings.game.minimalHUD); Register(g_userSettings.game.pauseOnFocusLost); Register(g_userSettings.game.enableDiscordPresence); diff --git a/src/dusk/ui/settings.cpp b/src/dusk/ui/settings.cpp index 185bf5681d..a164de0089 100644 --- a/src/dusk/ui/settings.cpp +++ b/src/dusk/ui/settings.cpp @@ -950,8 +950,11 @@ SettingsWindow::SettingsWindow(bool prelaunch) : mPrelaunch(prelaunch) { addOption("Invert Camera Y Axis", getSettings().game.invertCameraYAxis, "Invert vertical camera movement when Free Camera is enabled.", [] { return !getSettings().game.freeCamera; }); - config_percent_select(leftPane, rightPane, getSettings().game.freeCameraSensitivity, - "Free Camera Sensitivity", "Adjusts twin-stick camera sensitivity.", 50, 200, 5, + config_percent_select(leftPane, rightPane, getSettings().game.freeCameraXSensitivity, + "Free Camera X Sensitivity", "Adjusts twin-stick camera X axis sensitivity.", 50, 200, 5, + [] { return !getSettings().game.freeCamera; }); + config_percent_select(leftPane, rightPane, getSettings().game.freeCameraYSensitivity, + "Free Camera Y Sensitivity", "Adjusts twin-stick camera Y axis sensitivity.", 50, 200, 5, [] { return !getSettings().game.freeCamera; }); addOption("Invert First Person X Axis", getSettings().game.invertFirstPersonXAxis, "Invert horizontal movement while aiming with items or first person camera. Applies only to the control stick (the gyroscope can be inverted in Input settings).");