Files
BanjoRecomp/patches/title_screen_patches.c
2026-01-03 23:09:50 -05:00

41 lines
1.3 KiB
C

#include "patches.h"
#include "enums.h"
struct Struct_core2_9B180_1;
typedef struct Struct_core2_9B180_1 Struct_core2_9B180_1;
struct struct_core2_9B180_s;
typedef struct struct_core2_9B180_s{
s16 unk0;
// u8 pad2[0x2];
Struct_core2_9B180_1 *unk4;
void (*unk8)(struct struct_core2_9B180_s *);
void (*unkC)(struct struct_core2_9B180_s *);
void (*unk10)(struct struct_core2_9B180_s *);
}Struct_core2_9B180_0;
extern u8 D_80383330;
extern Struct_core2_9B180_0 D_8036DE00[];
void func_80322318(Struct_core2_9B180_0*);
int map_get(void);
// @recomp Patched to always allow skipping the intro sequence.
RECOMP_PATCH void func_80322490(void) {
Struct_core2_9B180_0 *i_ptr;
static int introFrameCounter = 0;
introFrameCounter++;
if (D_80383330 != 0) {
for(i_ptr = D_8036DE00; i_ptr != &D_8036DE00[6]; i_ptr++){
// @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){
i_ptr->unkC(i_ptr);
}
}
}
}