#include #include "functions.h" #include "variables.h" extern void func_802E40A8(enum map_e, s32 exit); typedef struct { u8 unk0; u8 unk1; u8 unk2; u8 unk3; u8 unk4; u8 unk5; }Struct_core2_C4320_0; s32 func_8034BAFC(void); /* .data*/ //EAF70: extern Struct_core2_C4320_0 D_80371F00[] ={ {MAP_2_MM_MUMBOS_MOUNTAIN, 4, 0x5B, 1, 2, 2}, {MAP_22_CC_INSIDE_CLANKER, 7, 0x5B, 1, 2, 2}, {MAP_D_BGS_BUBBLEGLOOP_SWAMP, 4, 0x5B, 1, 3, 3}, {MAP_1C_MMM_CHURCH, 7, 0x5B, 1, 2, 2}, {MAP_1F_CS_START_RAREWARE, 1, 0x00, 1, 2, 2}, {MAP_6_TTC_NIPPERS_SHELL, 4, 0x5B, 1, 2, 2}, {MAP_46_CCW_WINTER, 7, 0x5B, 1, 2, 2}, {MAP_34_RBB_ENGINE_ROOM, 4, 0x5B, 1, 2, 2}, {MAP_12_GV_GOBIS_VALLEY, 7, 0x5B, 1, 2, 2}, {MAP_1F_CS_START_RAREWARE, 1, 0x00, 1, 2, 2}, {MAP_91_FILE_SELECT, 0, 0x00, 1, 2, 2} }; extern Struct_core2_C4320_0 D_80371F44[] = { {MAP_8C_SM_BANJOS_HOUSE, 0, 0x5C, 0xA, 3, 3,}, {MAP_41_FP_BOGGYS_IGLOO, 0, 0x5C, 0xA, 3, 3,}, {MAP_3F_RBB_CAPTAINS_CABIN, 0, 0x5C, 0xA, 3, 3,}, {MAP_5E_CCW_SPRING_NABNUTS_HOUSE, 0, 0x5C, 0xA, 3, 3,}, {MAP_11_BGS_TIPTUP, 0, 0x5C, 0xA, 3, 3,}, {MAP_2D_MMM_BEDROOM, 0, 0x5C, 0xA, 3, 3,}, {MAP_5C_CCW_AUTUMN_ZUBBA_HIVE, 0, 0x5C, 0xA, 3, 3,} }; extern Struct_core2_C4320_0 D_80371F70 = {MAP_41_FP_BOGGYS_IGLOO, 6, 0x5D, 7, 8, 3}; extern Struct_core2_C4320_0 D_80371F78[] ={ {MAP_7_TTC_TREASURE_TROVE_COVE, 0, 0x5F, 6, 9, 9}, {MAP_27_FP_FREEZEEZY_PEAK, 0, 0x5F, 9, 9, 9}, {MAP_12_GV_GOBIS_VALLEY, 0, 0x5F, 9, 5, 9} }; extern s32 D_80371F8C = 0xA; //attract demo count extern s32 D_80371F90 = 0x7; //bottles bonus demo count extern s32 D_80371F94 = 1; extern s32 D_80371F98 = 3; extern s32 D_80371F9C = 1; extern u16 D_80371FA0[] = { 3, 4, 5, 6, 7, 8, 9, 0xA, 0xB, 0xC }; //EB030: /* .bss */ s32 D_80386110; //current attract demo index Struct_core2_C4320_0 *D_80386114; //current attract demo ptr s32 D_80386118; s32 D_8038611C; bool D_80386120; s32 D_80386124; f32 D_80386128; /* .code */ void func_8034B2B0(s32 arg0) { Struct_core2_C4320_0 *sp18; sp18 = &D_80371F00[arg0]; func_802E40A8(sp18->unk0, sp18->unk2); if ((map_getLevel(sp18->unk0) == LEVEL_D_CUTSCENE) || (arg0 == D_80371F8C)) { func_802E40C4(1); } else { func_802E40C4(6); } func_802E40E8(1); } void func_8034B33C(s32 arg0) { Struct_core2_C4320_0 *sp18; sp18 = &D_80371F44[arg0]; func_802E40A8(sp18->unk0, sp18->unk2); func_802E412C(1, 0xB); func_802E40C4(7); D_80386114 = sp18; D_80386124 = func_802C5A30(); } void func_8034B3A4(enum map_e map_id, s32 exit_id) { func_802E40A8(map_id, exit_id); func_802E412C(1, 8); func_802E40C4(8); D_80386114 = &D_80371F70; D_80386124 = func_802C5A30(); } void func_8034B3F0(s32 arg0) { Struct_core2_C4320_0 *temp_s0; temp_s0 = &D_80371F78[arg0]; func_802E40A8(temp_s0->unk0, temp_s0->unk2); if (temp_s0 == &D_80371F78[0]) { func_802E412C(1, 5); } else { func_802E40E8(0); } func_802E40C4(0xC); D_80386114 = temp_s0; D_80386124 = func_802C5A30(); } void func_8034B474(void) { D_80386114 = &D_80371F00[D_80386110]; D_80386110 = (D_80386110 + 1) % D_80371F8C; } void func_8034B4E4(s32 arg0){ D_80386128 = 0; if(getGameMode() == GAME_MODE_8_BOTTLES_BONUS || getGameMode() == GAME_MODE_A_SNS_PICTURE){ return; } switch(arg0){ case 1: //L8034B544 case 3: //L8034B544 case 4: //L8034B544 func_802DC9A4(0,0); /* fall-through */ case 2: //L8034B550 case 7: //L8034B550 chOverlayCopyright_spawn(0,0); break; case 5: //L8034B564 func_802DC9A4(0,0); break; } } void func_8034B580(s32 arg0) { f32 sp1C; sp1C = D_80386128; if (gctransition_8030BD98() != 0) { D_80386128 += time_getDelta(); } if ((getGameMode() != GAME_MODE_8_BOTTLES_BONUS) && (getGameMode() != GAME_MODE_A_SNS_PICTURE)) { switch (arg0) { case 4: if ((D_80386128 >= 2.5) && (sp1C < 2.5) && (D_80371F9C == 0)) { chOverlayCopyright_func_802DCB0C(0, 0); } /* fallthrough */ case 3: if ((D_80386128 >= 2.5) && (sp1C < 2.5) && (D_80371F9C == 0)) { func_802DC9DC(0, 0); } if ((D_80386128 >= 4.0) && (sp1C < 4.0) && (func_8024F12C() == 0)) { chOverlayPressStart_spawn(0, 0); if (D_80371F9C != 0) { chOverlayPressStart_func_802DCDB0(); return; } } break; case 7: if ((D_80386128 >= 2.5) && (sp1C < 2.5)) { chOverlayCopyright_func_802DCB0C(0, 0); } if ((D_80386128 >= 4.0) && (sp1C < 4.0) && (func_8024F12C() == 0)) { chOverlayPressStart_spawn(0, 0); } break; } } } void func_8034B7F0(s32 arg0) { func_802DC9DC(0, 0); chOverlayCopyright_func_802DCB0C(0, 0); chOverlayPressStart_func_802DCDC0(0, 0); D_80371F9C = 0; } void func_8034B834(void) { s32 i; item_set(ITEM_D_EGGS, 100); item_set(ITEM_F_RED_FEATHER, 50); item_set(ITEM_10_GOLD_FEATHER, 10); item_set(ITEM_1C_MUMBO_TOKEN, 25); func_80295864(-1); func_80295870(-1); for(i = 0; i < 10; i++){ func_80320004(D_80371FA0[i], 1); } } void func_8034B8C0(enum map_e map_id, s32 demo_id) { demo_load(map_id,demo_id); D_80386118 = D_8038611C = 0; if (D_80386114->unk1 == 6) { func_803204E4(0x1F, 1); func_802E4A70(); } if ((demo_id == 0x5B) || (demo_id == 0x5F)) { sns_backup_items_and_unlock_all(); } } void func_8034B940(void){ demo_free(); sns_restore_backed_up_items(); } void func_8034B968(void){ func_8034B2B0(D_80386110); func_8034B474(); } void func_8034B994(void){ func_8034B2B0(D_80371F8C); D_80386110 = 0; } void func_8034B9BC(s32 arg0) { func_80347A7C(); func_8034B33C(arg0); } void func_8034B9E4(void){ func_803219F4(5); func_8034B3F0(D_80386110); D_80386110++; } void func_8034BA20(void) { func_803219F4(5); func_802E412C(1, 5); func_802E40A8(MAP_97_CS_END_BEACH_2, 0); func_802E40C4(1); if (func_8025AD7C(5)) { func_8025A7DC(5); } D_80386110 = 0; } void func_8034BA7C(enum map_e map_id, s32 exit_id){ func_8034B3A4(map_id, exit_id); } void func_8034BA9C(void) { if (func_8034BAFC() != -1) { func_802C5A3C(func_8034BAFC()); func_8033D13C(func_8034BAFC()); func_80347AA8(); } func_8031B010(); D_80386110 = 0; } s32 func_8034BAFC(void){ return D_80386124; } void func_8034BB08(bool arg0) { D_80386120 = arg0; func_802E412C(1, 3); func_802E40A8(MAP_8C_SM_BANJOS_HOUSE, 2); func_802E40C4(1); } bool func_8034BB48(void) { if (D_80386120 && gctransition_8030BD98()) { D_80386120 = FALSE; return TRUE; } return FALSE; } void func_8034BB90(void) { s32 sp1C; s32 sp18; sp1C = gctransition_8030BDC0(); sp18 = gctransition_8030BD98(); if (!D_80386118) { func_8034B834(); func_8034B4E4(D_80386114->unk1); D_80386118 = 1; } func_8034B580(D_80386114->unk1); if (func_803203FC(0xC3)) { func_803204E4(0xC3, 0); func_8034B9E4(); } if( !sp1C && sp18 && !D_8038611C && (getGameMode() != GAME_MODE_8_BOTTLES_BONUS) && ((func_803203FC(0x64) && (getGameMode() != GAME_MODE_A_SNS_PICTURE)) || func_803203FC(0x63)) ) { func_8034B7F0(D_80386114->unk1); if (getGameMode() == GAME_MODE_9_BANJO_AND_KAZOOIE) { func_8034BA9C(); } else if (getGameMode() == GAME_MODE_A_SNS_PICTURE) { if (D_80386110 == D_80371F98) { func_8034BA20(); } else { func_802DF0C8(); } } else if (func_803203FC(0x64)) { func_802E412C(1, D_80386114->unk5); func_8034B994(); } else { func_802E412C(1, D_80386114->unk4); func_8034B2B0(D_80386110); func_8034B474(); } if (getGameMode() != GAME_MODE_A_SNS_PICTURE) { func_8025A58C(0, 800); func_8025AB00(); } func_803204E4(0x64, 0); func_803204E4(0x63, 0); D_8038611C = 1; } } s32 func_8034BDA4(enum map_e map_id, s32 exit_id) { s32 phi_v0; if (func_803203FC(UNKFLAGS1_1F_IN_CHARACTER_PARADE)) { return D_80371F70.unk3; } for(phi_v0 = 0; phi_v0 < D_80371F8C; phi_v0++){ if( map_id == D_80371F00[phi_v0].unk0 && exit_id == D_80371F00[phi_v0].unk2){ return D_80371F00[phi_v0].unk3; } } for(phi_v0 = 0; phi_v0 < D_80371F90; phi_v0++){ if( map_id == D_80371F44[phi_v0].unk0 && exit_id == D_80371F44[phi_v0].unk2){ return D_80371F44[phi_v0].unk3; } } for(phi_v0 = 0; phi_v0 < D_80371F98; phi_v0++){ if( map_id == D_80371F78[phi_v0].unk0 && exit_id == D_80371F78[phi_v0].unk2){ return D_80371F78[phi_v0].unk3; } } return 4; }