Properly replicate NaviTalk kill check (#4647)

* Restrict disabled Navi workaround to Dodongo's Cavern

* Properly replicate NaviTalk kill check

* Move `*should = false` out of condition
This commit is contained in:
Jordan Longstaff 2024-12-09 21:24:37 -05:00 committed by GitHub
parent 35dcf93c51
commit f852d70767
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -340,12 +340,15 @@ void TimeSaverOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, va_li
if (ForcedDialogIsDisabled(FORCED_DIALOG_SKIP_NAVI)) { if (ForcedDialogIsDisabled(FORCED_DIALOG_SKIP_NAVI)) {
ElfMsg* naviTalk = va_arg(args, ElfMsg*); ElfMsg* naviTalk = va_arg(args, ElfMsg*);
int32_t paramsHighByte = naviTalk->actor.params >> 8; int32_t paramsHighByte = naviTalk->actor.params >> 8;
if ((paramsHighByte & 0x80) == 0 && (paramsHighByte & 0x3F) != 0x3F) { if ((paramsHighByte & 0x80) != 0) {
break;
}
if ((paramsHighByte & 0x3F) != 0x3F) {
Flags_SetSwitch(gPlayState, paramsHighByte & 0x3F); Flags_SetSwitch(gPlayState, paramsHighByte & 0x3F);
}
Actor_Kill(&naviTalk->actor); Actor_Kill(&naviTalk->actor);
*should = false; *should = false;
} }
}
break; break;
} }
case VB_NOT_BE_GREETED_BY_SARIA: case VB_NOT_BE_GREETED_BY_SARIA: