Allow independent X and Y sensitivity for free camera (#1431)

Co-authored-by: Luke Street <luke@street.dev>
This commit is contained in:
Jairinho
2026-05-28 01:53:14 -04:00
committed by GitHub
parent c10e41f02e
commit 6592d95199
4 changed files with 13 additions and 7 deletions
+2 -1
View File
@@ -204,7 +204,8 @@ struct UserSettings {
ConfigVar<bool> invertFirstPersonYAxis;
ConfigVar<bool> invertAirSwimX;
ConfigVar<bool> invertAirSwimY;
ConfigVar<float> freeCameraSensitivity;
ConfigVar<float> freeCameraXSensitivity;
ConfigVar<float> freeCameraYSensitivity;
ConfigVar<bool> debugFlyCam;
ConfigVar<bool> debugFlyCamLockEvents;
ConfigVar<bool> allowBackgroundInput;
+2 -2
View File
@@ -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);
+4 -2
View File
@@ -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);
+5 -2
View File
@@ -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).");