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
commit f02032aed4
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 16 additions and 1 deletions

View file

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

View file

@ -386,6 +386,12 @@ void TimeSaverOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, va_li
} }
break; break;
} }
case VB_END_GERUDO_MEMBERSHIP_TALK: {
if (ForcedDialogIsDisabled(FORCED_DIALOG_SKIP_NPC)) {
*should = true;
}
break;
}
case VB_GORON_LINK_BE_SCARED: { case VB_GORON_LINK_BE_SCARED: {
if (ForcedDialogIsDisabled(FORCED_DIALOG_SKIP_NPC)) { if (ForcedDialogIsDisabled(FORCED_DIALOG_SKIP_NPC)) {
EnGo2* goronLink = va_arg(args, EnGo2*); 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) { 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); Message_CloseTextbox(play);
this->actor.flags &= ~ACTOR_FLAG_TALK_OFFER_AUTO_ACCEPTED; this->actor.flags &= ~ACTOR_FLAG_TALK_OFFER_AUTO_ACCEPTED;
this->actionFunc = EnGe3_WaitTillCardGiven; this->actionFunc = EnGe3_WaitTillCardGiven;