Skip dialogue before getting Gerudo membership card (#5058)

* Skip dialogue before getting Gerudo membership card

* Change to misc interaction

* Change to forced NPC dialogue

* Rename VB flag
This commit is contained in:
Jordan Longstaff
2025-03-20 07:07:43 -04:00
committed by GitHub
parent 8958db5c2b
commit f02032aed4
3 changed files with 16 additions and 1 deletions

View File

@@ -405,6 +405,14 @@ typedef enum {
// - `*int16_t` (item id)
VB_DRAW_AMMO_COUNT,
// #### `result`
// ```c
// (Message_GetState(&play->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(play)
// ```
// #### `args`
// - None
VB_END_GERUDO_MEMBERSHIP_TALK,
// #### `result`
// ```c
// !(this->stateFlags3 & PLAYER_STATE3_PAUSE_ACTION_FUNC)

View File

@@ -386,6 +386,12 @@ void TimeSaverOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, va_li
}
break;
}
case VB_END_GERUDO_MEMBERSHIP_TALK: {
if (ForcedDialogIsDisabled(FORCED_DIALOG_SKIP_NPC)) {
*should = true;
}
break;
}
case VB_GORON_LINK_BE_SCARED: {
if (ForcedDialogIsDisabled(FORCED_DIALOG_SKIP_NPC)) {
EnGo2* goronLink = va_arg(args, EnGo2*);

View File

@@ -152,7 +152,8 @@ void EnGe3_WaitTillCardGiven(EnGe3* this, PlayState* play) {
}
void EnGe3_GiveCard(EnGe3* this, PlayState* play) {
if ((Message_GetState(&play->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(play)) {
if (GameInteractor_Should(VB_END_GERUDO_MEMBERSHIP_TALK,
(Message_GetState(&play->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(play))) {
Message_CloseTextbox(play);
this->actor.flags &= ~ACTOR_FLAG_TALK_OFFER_AUTO_ACCEPTED;
this->actionFunc = EnGe3_WaitTillCardGiven;