From 69b39b95899a55ae67ac970581f203d5cebf86ae Mon Sep 17 00:00:00 2001 From: n2noon Date: Sat, 14 Mar 2026 13:37:19 +0000 Subject: [PATCH] SceneMenu: match _28 --- src/Game/Menu/SceneMenu.cpp | 3 +-- src/GameUtil/Controller.hpp | 8 +++++++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/Game/Menu/SceneMenu.cpp b/src/Game/Menu/SceneMenu.cpp index c170f32..270cdd0 100644 --- a/src/Game/Menu/SceneMenu.cpp +++ b/src/Game/Menu/SceneMenu.cpp @@ -117,8 +117,7 @@ void CSceneMenu::_28(void) { CController *controller = gControllerManager->fn_801D5FF0(0); CGCController *gcController = gControllerManager->fn_801D6000(0); - // TODO: regswap in checkButtonDown - if (controller->checkRelease(WPAD_BUTTON_A) || gcController->checkButtonDown(PAD_BUTTON_A)) { + if (controller->checkRelease(WPAD_BUTTON_A) || gcController->checkButtonUp(PAD_BUTTON_A)) { const TickFlowCode *tickFlowCode = lbl_801F8460[lbl_80320143].tickFlowCode; if (tickFlowCode != NULL) { if (tickFlowCode == lbl_80320FE0) { diff --git a/src/GameUtil/Controller.hpp b/src/GameUtil/Controller.hpp index 21e32d1..0a17a54 100644 --- a/src/GameUtil/Controller.hpp +++ b/src/GameUtil/Controller.hpp @@ -216,6 +216,12 @@ class CGCController { (PADButtonDown(mStatusPrev->button, mStatus->button) & button); } + bool checkButtonUp(u32 button) { + return + (mStatus->err == PAD_ERR_NONE) && + (PADButtonUp(mStatusPrev->button, mStatus->button) & button); + } + private: s32 mMyChannel; PADStatus *mStatus; @@ -272,4 +278,4 @@ class CControllerManager : public TSingleton { extern CControllerManager *gControllerManager; -#endif \ No newline at end of file +#endif