diff --git a/src/engine/fox_play.c b/src/engine/fox_play.c index d6ccfe82..a0f50a41 100644 --- a/src/engine/fox_play.c +++ b/src/engine/fox_play.c @@ -3699,7 +3699,8 @@ void Player_MoveArwing360(Player* player) { gPlayerTurnStickMod = 0.68f; sp7C = -gInputPress->stick_x; - sp78 = gInputPress->stick_y; + + sp78 = gInputPress->stick_y * (CVarGetInteger("gInvertYAxis", 0) == 1 ? -1 : 1); Math_SmoothStepToAngle(&player->aerobaticPitch, 0.0f, 0.1f, 5.0f, 0.01f); Matrix_RotateZ(gCalcMatrix, -player->zRotBank * M_DTOR, MTXF_NEW); @@ -3945,7 +3946,7 @@ void Player_MoveArwingOnRails(Player* player) { } stickX = -gInputPress->stick_x; - stickY = +gInputPress->stick_y; + stickY = gInputPress->stick_y * (CVarGetInteger("gInvertYAxis", 0) == 1 ? -1 : 1); Math_SmoothStepToAngle(&player->aerobaticPitch, 0.0f, 0.1f, 5.0f, 0.01f); diff --git a/src/engine/fox_tank.c b/src/engine/fox_tank.c index 7e34633b..2f7df198 100644 --- a/src/engine/fox_tank.c +++ b/src/engine/fox_tank.c @@ -380,7 +380,7 @@ void func_tank_80044868(Player* player) { f32 stickTilt; f32 sp2C; - stickTilt = (gInputPress->stick_y * 0.7f) - 8.0f; + stickTilt = (gInputPress->stick_y * 0.7f * (CVarGetInteger("gInvertYAxis", 0) == 1 ? -1 : 1)) - 8.0f; if (stickTilt < -40.0f) { stickTilt = -40.0f; } @@ -664,7 +664,8 @@ void func_tank_80045678(Player* player) { AUDIO_PLAY_SFX(NA_SE_TANK_GO_UP, player->sfxSource, 0); } player->zRotBank += ((__cosf(gGameFrameCount * M_DTOR * 8.0f) * 10.0f) - player->zRotBank) * 0.1f; - temp = -gInputPress->stick_y; + + temp = -gInputPress->stick_y * (CVarGetInteger("gInvertYAxis", 0) == 1 ? -1 : 1); Math_SmoothStepToF(&player->rot.x, temp * 0.3f, 0.05f, 5.0f, 0.00001f); Math_SmoothStepToF(&player->boostSpeed, 15.0f, 0.5f, 5.0f, 0.0f); Math_SmoothStepToF(&player->rot.z, 0.0f, 0.1f, 5.0f, 0.00001f); diff --git a/src/overlays/ovl_i1/fox_tr.c b/src/overlays/ovl_i1/fox_tr.c index 343566da..1a8f5c03 100644 --- a/src/overlays/ovl_i1/fox_tr.c +++ b/src/overlays/ovl_i1/fox_tr.c @@ -9,9 +9,9 @@ void Training_RingPassCount_Draw(void) { if (gRingPassCount != 0) { - RCP_SetupDL(&gMasterDisp, SETUPDL_83); + RCP_SetupDL(&gMasterDisp, SETUPDL_83_POINT); gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, 255); - HUD_Number_Draw(250.0f, 50.0f, gRingPassCount, 1.0f, 0, 999); + HUD_Number_Draw(OTRGetDimensionFromRightEdge(250.0f), 50.0f, gRingPassCount, 1.0f, 0, 999); } } diff --git a/src/overlays/ovl_i3/fox_aq.c b/src/overlays/ovl_i3/fox_aq.c index 9e4738ef..b5934d5c 100644 --- a/src/overlays/ovl_i3/fox_aq.c +++ b/src/overlays/ovl_i3/fox_aq.c @@ -803,7 +803,7 @@ void Aquas_801AA4BC(Player* player) { void Aquas_UpdateCamera(Player* player) { f32 stickX = +gInputPress->stick_x; - f32 stickY = -gInputPress->stick_y; + f32 stickY = -gInputPress->stick_y * (CVarGetInteger("gInvertYAxis", 0) == 1 ? -1 : 1); f32 zRot; if (player->state != PLAYERSTATE_ACTIVE) { @@ -877,7 +877,8 @@ void Aquas_BlueMarineMove(Player* player) { Aquas_801A8E30(); stickX = -gInputPress->stick_x; - stickY = +gInputPress->stick_y; + + stickY = +gInputPress->stick_y * (CVarGetInteger("gInvertYAxis", 0) == 1 ? -1 : 1); gPlayerTurnStickMod = 0.68f; diff --git a/src/port/ui/ImguiUI.cpp b/src/port/ui/ImguiUI.cpp index 99dd148d..c05d5078 100644 --- a/src/port/ui/ImguiUI.cpp +++ b/src/port/ui/ImguiUI.cpp @@ -186,6 +186,9 @@ void DrawSettingsMenu(){ .format = "%.1fx", }); } + UIWidgets::CVarCheckbox("Invert Y Axis", "gInvertYAxis",{ + .tooltip = "Inverts the Y axis for controlling vehicles" + }); ImGui::EndMenu(); }