diff --git a/src/game/behaviors/yoshi.inc.c b/src/game/behaviors/yoshi.inc.c index 4b467f78..26be83bf 100644 --- a/src/game/behaviors/yoshi.inc.c +++ b/src/game/behaviors/yoshi.inc.c @@ -225,14 +225,20 @@ void bhv_yoshi_loop(void) { } if (sYoshiTalkingState > 2) { - if (gHudDisplay.lives >= 100 && !gMarioStates[0].specialTripleJump) { + if (gHudDisplay.lives >= 100) { gMarioStates[0].specialTripleJump = true; sYoshiTalkingState = 3; - set_mario_action(&gMarioStates[0], ACT_IDLE, 0); } else if ((gGlobalTimer & 0x03) == 0) { play_sound(SOUND_MENU_YOSHI_GAIN_LIVES, gGlobalSoundSource); gMarioStates[0].numLives++; } } + + if (gMarioStates[0].action == ACT_WAITING_FOR_DIALOG) { + if (gMarioStates[0].interactObj == o) { + set_mario_action(&gMarioStates[0], ACT_IDLE, 0); + o->oInteractStatus = 0; + } + } curr_obj_random_blink(&o->oYoshiBlinkTimer); } diff --git a/src/game/mario_actions_cutscene.c b/src/game/mario_actions_cutscene.c index 0f561ca1..0ea05306 100644 --- a/src/game/mario_actions_cutscene.c +++ b/src/game/mario_actions_cutscene.c @@ -394,16 +394,16 @@ s32 set_mario_npc_dialog(struct MarioState* m, s32 actionArg, UNUSED u8 (*inCont s32 dialogState = 0; - // if (m->playerIndex == 0) { - // if (actionArg == 0 || inContinueDialogFunction == NULL) { - // localDialogNPCBehavior = NULL; - // gContinueDialogFunction = NULL; - // gContinueDialogFunctionObject = NULL; - // } else { - // gContinueDialogFunction = inContinueDialogFunction; - // gContinueDialogFunctionObject = gCurrentObject; - // } - // } + if (m->playerIndex == 0) { + if (actionArg == 0 || inContinueDialogFunction == NULL) { + localDialogNPCBehavior = NULL; + gContinueDialogFunction = NULL; + gContinueDialogFunctionObject = NULL; + } else { + gContinueDialogFunction = inContinueDialogFunction; + gContinueDialogFunctionObject = gCurrentObject; + } + } // in dialog if (m->action == ACT_READING_NPC_DIALOG) {