diff --git a/patches/title_screen_patches.c b/patches/title_screen_patches.c index 6a42129..ea55cfd 100644 --- a/patches/title_screen_patches.c +++ b/patches/title_screen_patches.c @@ -22,13 +22,18 @@ void func_80322318(Struct_core2_9B180_0*); int map_get(void); // @recomp Patched to always allow skipping the intro sequence. +u8 introFrameCounter = 0; RECOMP_PATCH void func_80322490(void) { Struct_core2_9B180_0 *i_ptr; + introFrameCounter++; if (D_80383330 != 0) { for(i_ptr = D_8036DE00; i_ptr != &D_8036DE00[6]; i_ptr++){ - // @recomp Always allow skipping the intro sequence. - if((i_ptr->unk4 != 0 || (i_ptr->unkC == func_80322318 && map_get() == MAP_1F_CS_START_RAREWARE)) && i_ptr->unkC != NULL){ + // @recomp Always allow skipping thex intro sequence, with a delay of 1 second to prevent + // issues with accidentally skipping the intro when navigating the launcher with a controller. + if((i_ptr->unk4 != 0 || (i_ptr->unkC == func_80322318 && map_get() == MAP_1F_CS_START_RAREWARE && introFrameCounter > 30)) + && i_ptr->unkC != NULL){ + introFrameCounter = 0; i_ptr->unkC(i_ptr); } }