Invert Air/Swim Axes (#1155)

* Invert Air/Swim Axes

Apparently this is a setting in TPHD, so for parity's sake I'll throw it in here

* Invert Air Controls

Thanks @Abzol for knowing exactly where this is
This commit is contained in:
SuperDude88
2026-05-25 00:12:36 -04:00
committed by GitHub
parent 2a3bc722d9
commit 498868c17d
5 changed files with 21 additions and 2 deletions
+2
View File
@@ -202,6 +202,8 @@ struct UserSettings {
ConfigVar<bool> invertCameraYAxis;
ConfigVar<bool> invertFirstPersonXAxis;
ConfigVar<bool> invertFirstPersonYAxis;
ConfigVar<bool> invertAirSwimX;
ConfigVar<bool> invertAirSwimY;
ConfigVar<float> freeCameraSensitivity;
ConfigVar<bool> debugFlyCam;
ConfigVar<bool> debugFlyCamLockEvents;
+2 -2
View File
@@ -216,7 +216,7 @@ void daAlink_c::setSpeedAndAngleSwim() {
if (checkEventRun()) {
var_r28 = mMoveAngle;
} else {
var_r28 = shape_angle.y + (16384.0f * cM_ssin(mStickAngle));
var_r28 = shape_angle.y + (16384.0f * cM_ssin(mStickAngle) IF_DUSK(* (dusk::getSettings().game.invertAirSwimX ? -1.0f : 1.0f)));
}
cLib_addCalcAngleS(&shape_angle.y, var_r28, mpHIO->mSwim.m.mUnderwaterTurnRate, mpHIO->mSwim.m.mUnderwaterMaxTurn, mpHIO->mSwim.m.mUnderwaterMinTurn);
@@ -835,7 +835,7 @@ void daAlink_c::setSwimMoveAnime() {
} else {
s16 var_r24;
if (checkInputOnR() && !checkEventRun()) {
var_r24 = 13653.0f * cM_scos(mStickAngle);
var_r24 = 13653.0f * cM_scos(mStickAngle) IF_DUSK(* (dusk::getSettings().game.invertAirSwimY ? -1.0f : 1.0f));
} else {
var_r24 = 0;
}
+9
View File
@@ -3530,6 +3530,15 @@ void daKago_c::action() {
#endif
mStickY = mDoCPd_c::getStickY(PAD_1);
#ifdef TARGET_PC
if(dusk::getSettings().game.invertAirSwimX) {
mStickX = -mStickX;
}
if(dusk::getSettings().game.invertAirSwimY) {
mStickY = -mStickY;
}
#endif
u8 prevIsWaterfall = mIsWaterfall;
mIsWaterfall = FALSE;
fpcM_Search(s_waterfall, this);
+4
View File
@@ -90,6 +90,8 @@ UserSettings g_userSettings = {
.invertCameraYAxis {"game.invertCameraYAxis", false},
.invertFirstPersonXAxis {"game.invertFirstPersonXAxis", false},
.invertFirstPersonYAxis {"game.invertFirstPersonYAxis", false},
.invertAirSwimX {"game.invertAirSwimX", false},
.invertAirSwimY {"game.invertAirSwimY", false},
.freeCameraSensitivity {"game.freeCameraSensitivity", 1.0f},
.debugFlyCam {"game.debugFlyCam", false},
.debugFlyCamLockEvents {"game.debugFlyCamLockEvents", true},
@@ -219,6 +221,8 @@ void registerSettings() {
Register(g_userSettings.game.invertCameraYAxis);
Register(g_userSettings.game.invertFirstPersonXAxis);
Register(g_userSettings.game.invertFirstPersonYAxis);
Register(g_userSettings.game.invertAirSwimX);
Register(g_userSettings.game.invertAirSwimY);
Register(g_userSettings.game.freeCameraSensitivity);
Register(g_userSettings.game.minimalHUD);
Register(g_userSettings.game.pauseOnFocusLost);
+4
View File
@@ -957,6 +957,10 @@ SettingsWindow::SettingsWindow(bool prelaunch) : mPrelaunch(prelaunch) {
"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).");
addOption("Invert First Person Y Axis", getSettings().game.invertFirstPersonYAxis,
"Invert vertical movement while aiming with items or first person camera. Applies only to the control stick (the gyroscope can be inverted in Input settings).");
addOption("Invert Air/Swim X Axis", getSettings().game.invertAirSwimX,
"Invert horizontal movement while flying or swimming.");
addOption("Invert Air/Swim Y Axis", getSettings().game.invertAirSwimY,
"Invert vertical movement while flying or swimming.");
leftPane.add_section("Gyro");
leftPane.register_control(