diff options
| author | Jordan Longstaff <JordanLongstaff@users.noreply.github.com> | 2026-07-25 10:45:42 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-07-25 14:45:42 +0000 |
| commit | f9512bf44670a74389afccde4266ba3d4ebfc944 (patch) | |
| tree | d071eb2970cae3625bbbfce249dc26c6f16d3002 | |
| parent | bfaec6be7f29c7b406cb1494dabea18207f56534 (diff) | |
Ingo Race: skip rematch (#6991)
| -rw-r--r-- | soh/soh/Enhancements/Minigames/IngoRaceOnce.cpp | 6 | ||||
| -rw-r--r-- | soh/src/overlays/actors/ovl_En_In/z_en_in.c | 10 |
2 files changed, 11 insertions, 5 deletions
diff --git a/soh/soh/Enhancements/Minigames/IngoRaceOnce.cpp b/soh/soh/Enhancements/Minigames/IngoRaceOnce.cpp index 8ba9b9044..afcea2d14 100644 --- a/soh/soh/Enhancements/Minigames/IngoRaceOnce.cpp +++ b/soh/soh/Enhancements/Minigames/IngoRaceOnce.cpp @@ -11,12 +11,14 @@ extern PlayState* gPlayState; #define CVAR_INGO_RACE_ONCE_NAME CVAR_ENHANCEMENT("IngoRaceOnce") #define CVAR_INGO_RACE_ONCE_VALUE CVarGetInteger(CVAR_INGO_RACE_ONCE_NAME, INGO_RACE_TWICE) +static constexpr u16 INGO_RACE_EVENT_FLAGS = 0x8046; + static void RegisterIngoRaceOnce() { COND_VB_SHOULD(VB_RACE_INGO, CVAR_INGO_RACE_ONCE_VALUE == INGO_RACE_NONE, { s32 entranceIndex = va_arg(args, s32); - if (entranceIndex == 2 && (gSaveContext.eventInf[0] & 0x10) == 0) { + if (entranceIndex == 2 && (gSaveContext.eventInf[0] & 0x12) == 2) { gPlayState->nextEntranceIndex = ENTR_LON_LON_RANCH_7; - gSaveContext.eventInf[0] = (gSaveContext.eventInf[0] & ~0xF) | 0x8006; + gSaveContext.eventInf[0] = (gSaveContext.eventInf[0] & ~0xF) | INGO_RACE_EVENT_FLAGS; gPlayState->transitionType = TRANS_TYPE_FADE_WHITE; gPlayState->transitionTrigger = TRANS_TRIGGER_START; gSaveContext.timerState = TIMER_STATE_OFF; diff --git a/soh/src/overlays/actors/ovl_En_In/z_en_in.c b/soh/src/overlays/actors/ovl_En_In/z_en_in.c index aeee316cb..686218842 100644 --- a/soh/src/overlays/actors/ovl_En_In/z_en_in.c +++ b/soh/src/overlays/actors/ovl_En_In/z_en_in.c @@ -729,15 +729,19 @@ void func_80A7A848(EnIn* this, PlayState* play) { gSaveContext.eventInf[0] &= ~0xF; this->actionFunc = func_80A7A4C8; } else { - func_80A79BAC(this, play, 2, TRANS_TYPE_CIRCLE(TCA_STARBURST, TCC_BLACK, TCS_FAST)); + if (GameInteractor_Should(VB_RACE_INGO, true, 2)) { + func_80A79BAC(this, play, 2, TRANS_TYPE_CIRCLE(TCA_STARBURST, TCC_BLACK, TCS_FAST)); + } gSaveContext.eventInf[0] = (gSaveContext.eventInf[0] & ~0xF) | 2; gSaveContext.eventInf[0] = (gSaveContext.eventInf[0] & ~0x8000) | 0x8000; play->msgCtx.stateTimer = 0; play->msgCtx.msgMode = MSGMODE_TEXT_CLOSING; } this->interactInfo.talkState = NPC_TALK_STATE_IDLE; - gSaveContext.eventInf[0] &= ~0x20; - gSaveContext.eventInf[0] &= ~0x40; + if (GameInteractor_Should(VB_RACE_INGO, true, 2)) { + gSaveContext.eventInf[0] &= ~0x20; + gSaveContext.eventInf[0] &= ~0x40; + } } } |
