diff --git a/soh/soh/Enhancements/randomizer/randomizer_check_tracker.cpp b/soh/soh/Enhancements/randomizer/randomizer_check_tracker.cpp index 9523c4857..78d87f0bb 100644 --- a/soh/soh/Enhancements/randomizer/randomizer_check_tracker.cpp +++ b/soh/soh/Enhancements/randomizer/randomizer_check_tracker.cpp @@ -115,9 +115,10 @@ void DrawCheckTracker(bool& open) { ImGui::SetNextWindowSize(ImVec2(400, 540), ImGuiCond_FirstUseEver); - if (doInitialize) + if (doInitialize) { + Teardown(); InitializeChecks(); - else if (initialized && (gPlayState == nullptr || gSaveContext.fileNum < 0 || gSaveContext.fileNum > 2)) { + } else if (initialized && (gPlayState == nullptr || gSaveContext.fileNum < 0 || gSaveContext.fileNum > 2)) { Teardown(); return; } diff --git a/soh/src/code/code_800A9F30.c b/soh/src/code/code_800A9F30.c index 6ba9c9783..3462da729 100644 --- a/soh/src/code/code_800A9F30.c +++ b/soh/src/code/code_800A9F30.c @@ -3,8 +3,12 @@ UnkRumbleStruct D_80160FD0; void func_800A9F30(PadMgr* a, s32 b) { - func_800D2E30(&D_80160FD0); - PadMgr_RumbleSet(a, D_80160FD0.rumbleEnable); + // TODO: Workaround for rumble being too long. Implement os thread functions. + // Game logic runs at 20hz but input thread runs at 60 hertz, so we call this 3 times + for (int i = 0; i < 3; i++) { + func_800D2E30(&D_80160FD0); + PadMgr_RumbleSet(a, D_80160FD0.rumbleEnable); + } } void func_800A9F6C(f32 a, u8 b, u8 c, u8 d) { diff --git a/soh/src/code/padmgr.c b/soh/src/code/padmgr.c index cb56cb806..6521ff3aa 100644 --- a/soh/src/code/padmgr.c +++ b/soh/src/code/padmgr.c @@ -357,20 +357,16 @@ void PadMgr_HandleRetraceMsg(PadMgr* padMgr) { } padMgr->validCtrlrsMask = mask; - // TODO: Workaround for rumble being too long. Implement os thread functions. - // Game logic runs at 20hz but input thread runs at 60 hertz, so we call this 3 times - for (i = 0; i < 3; i++) { - /* if (gFaultStruct.msgId) { - PadMgr_RumbleStop(padMgr); - } else */ if (padMgr->rumbleOffFrames > 0) { - --padMgr->rumbleOffFrames; - PadMgr_RumbleStop(padMgr); - } else if (padMgr->rumbleOnFrames == 0) { - PadMgr_RumbleStop(padMgr); - } else if (!padMgr->preNMIShutdown) { - PadMgr_RumbleControl(padMgr); - --padMgr->rumbleOnFrames; - } + /* if (gFaultStruct.msgId) { + PadMgr_RumbleStop(padMgr); + } else */ if (padMgr->rumbleOffFrames > 0) { + --padMgr->rumbleOffFrames; + PadMgr_RumbleStop(padMgr); + } else if (padMgr->rumbleOnFrames == 0) { + PadMgr_RumbleStop(padMgr); + } else if (!padMgr->preNMIShutdown) { + PadMgr_RumbleControl(padMgr); + --padMgr->rumbleOnFrames; } }