From 66eb16333984c270dd7dadefbd8e54ff2a6e4d55 Mon Sep 17 00:00:00 2001 From: MysterD Date: Wed, 14 Oct 2020 23:36:19 -0700 Subject: [PATCH] Prevent playing star cutscene when in cutscene --- src/game/behaviors/sparkle_spawn_star.inc.c | 10 ++++++---- src/game/behaviors/spawn_star.inc.c | 17 ++++++++++------- 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/src/game/behaviors/sparkle_spawn_star.inc.c b/src/game/behaviors/sparkle_spawn_star.inc.c index edef2dec0..bb06eb716 100644 --- a/src/game/behaviors/sparkle_spawn_star.inc.c +++ b/src/game/behaviors/sparkle_spawn_star.inc.c @@ -82,10 +82,12 @@ void slow_star_rotation(void) { void bhv_spawned_star_loop(void) { if (o->oAction == 0) { if (o->oTimer == 0) { - cutscene_object(CUTSCENE_STAR_SPAWN, o); - gMarioStates[0].freeze = 60; - set_time_stop_flags(TIME_STOP_ENABLED | TIME_STOP_MARIO_AND_DOORS); - o->activeFlags |= ACTIVE_FLAG_INITIATED_TIME_STOP; + if ((gMarioStates[0].action & ACT_GROUP_MASK) != ACT_GROUP_CUTSCENE) { + cutscene_object(CUTSCENE_STAR_SPAWN, o); + gMarioStates[0].freeze = 60; + set_time_stop_flags(TIME_STOP_ENABLED | TIME_STOP_MARIO_AND_DOORS); + o->activeFlags |= ACTIVE_FLAG_INITIATED_TIME_STOP; + } o->oAngleVelYaw = 0x800; if (o->oBehParams2ndByte == 0) set_home_to_mario(); diff --git a/src/game/behaviors/spawn_star.inc.c b/src/game/behaviors/spawn_star.inc.c index 42448c21f..d0baf3cf9 100644 --- a/src/game/behaviors/spawn_star.inc.c +++ b/src/game/behaviors/spawn_star.inc.c @@ -42,14 +42,17 @@ void bhv_star_spawn_init(void) { o->oVelY = (o->oHomeY - o->oPosY) / 30.0f; o->oForwardVel = o->oStarSpawnDisFromHome / 30.0f; o->oStarSpawnUnkFC = o->oPosY; - if (o->oBehParams2ndByte == 0 || gCurrCourseNum == COURSE_BBH) - cutscene_object(CUTSCENE_STAR_SPAWN, o); - else - cutscene_object(CUTSCENE_RED_COIN_STAR_SPAWN, o); - gMarioStates[0].freeze = 60; - set_time_stop_flags(TIME_STOP_ENABLED | TIME_STOP_MARIO_AND_DOORS); - o->activeFlags |= ACTIVE_FLAG_INITIATED_TIME_STOP; + if ((gMarioStates[0].action & ACT_GROUP_MASK) != ACT_GROUP_CUTSCENE) { + if (o->oBehParams2ndByte == 0 || gCurrCourseNum == COURSE_BBH) + cutscene_object(CUTSCENE_STAR_SPAWN, o); + else + cutscene_object(CUTSCENE_RED_COIN_STAR_SPAWN, o); + + gMarioStates[0].freeze = 60; + set_time_stop_flags(TIME_STOP_ENABLED | TIME_STOP_MARIO_AND_DOORS); + o->activeFlags |= ACTIVE_FLAG_INITIATED_TIME_STOP; + } cur_obj_become_intangible(); }