From be75bc7ebd9bac91c0f5226bc5ba9254d9aa369f Mon Sep 17 00:00:00 2001 From: Hyper <34012267+hyperbx@users.noreply.github.com> Date: Sat, 22 Mar 2025 01:46:07 +0000 Subject: [PATCH] Added codes for disabling certain player actions --- UnleashedRecomp/patches/player_patches.cpp | 39 ++++++++++++++++++++++ UnleashedRecomp/user/config_def.h | 3 ++ 2 files changed, 42 insertions(+) diff --git a/UnleashedRecomp/patches/player_patches.cpp b/UnleashedRecomp/patches/player_patches.cpp index cce0a58..826fbd9 100644 --- a/UnleashedRecomp/patches/player_patches.cpp +++ b/UnleashedRecomp/patches/player_patches.cpp @@ -116,3 +116,42 @@ PPC_FUNC(sub_823B4590) SDL_User_EvilSonic(false); } + +// Change state to squat kick. +PPC_FUNC_IMPL(__imp__sub_8236FE88); +PPC_FUNC(sub_8236FE88) +{ + if (Config::DisableSquatKick) + { + ctx.r3.u32 = 0; + return; + } + + __imp__sub_8236FE88(ctx, base); +} + +// Change state to drift. +PPC_FUNC_IMPL(__imp__sub_82370A50); +PPC_FUNC(sub_82370A50) +{ + if (ctx.r4.u32) + { + if (Config::DisableDriftOnSlide) + { + if (auto pInputState = SWA::CInputState::GetInstance()) + { + auto& rPadState = pInputState->GetPadState(); + + if (!rPadState.IsDown(SWA::eKeyState_LeftTrigger) && !rPadState.IsDown(SWA::eKeyState_RightTrigger)) + return; + } + } + } + else + { + if (Config::DisableDriftOnBrake) + return; + } + + __imp__sub_82370A50(ctx, base); +} diff --git a/UnleashedRecomp/user/config_def.h b/UnleashedRecomp/user/config_def.h index 37fd59c..51e65de 100644 --- a/UnleashedRecomp/user/config_def.h +++ b/UnleashedRecomp/user/config_def.h @@ -80,8 +80,11 @@ CONFIG_DEFINE_HIDDEN("Codes", bool, DisableAutoSaveWarning, false); CONFIG_DEFINE_HIDDEN("Codes", bool, DisableBoostFilter, false); CONFIG_DEFINE_HIDDEN("Codes", bool, DisableDLCIcon, false); CONFIG_DEFINE_HIDDEN("Codes", bool, DisableDPadMovement, false); +CONFIG_DEFINE_HIDDEN("Codes", bool, DisableDriftOnBrake, false); +CONFIG_DEFINE_HIDDEN("Codes", bool, DisableDriftOnSlide, false); CONFIG_DEFINE_HIDDEN("Codes", bool, DisableDWMRoundedCorners, false); CONFIG_DEFINE_HIDDEN("Codes", bool, DisableLowResolutionFontOnCustomUI, false); +CONFIG_DEFINE_HIDDEN("Codes", bool, DisableSquatKick, false); CONFIG_DEFINE_HIDDEN("Codes", bool, EnableEventCollisionDebugView, false); CONFIG_DEFINE_HIDDEN("Codes", bool, EnableGIMipLevelDebugView, false); CONFIG_DEFINE_HIDDEN("Codes", bool, EnableObjectCollisionDebugView, false);