Files
banjo-kazooie/src/core2/code_9A740.c
2023-01-30 00:02:44 -06:00

103 lines
2.3 KiB
C

#include <ultra64.h>
#include "functions.h"
#include "variables.h"
extern void func_8038FEE8(void); //rbb
typedef struct {
u8 unk0;
u8 level;
} struct_9A740;
/* .bss */
struct {
u8 unk0;
u8 level;
}D_80383300;
/* .code */
void func_803216D0(enum map_e map){
s32 prev_lvl = D_80383300.level;
D_80383300.level = map_getLevel(map);
overlayManagerload(level_to_overlay(D_80383300.level));
D_80383300.unk0 = 0;
if(func_802E4A8C()){
func_802E4A80();
}else{
if( D_80383300.level != LEVEL_6_LAIR
&& D_80383300.level != LEVEL_C_BOSS
&& prev_lvl == LEVEL_6_LAIR
){
D_80383300.unk0 = 1;
}
mapSavestate_init();
func_803464F8(D_80383300.level);
jiggyscore_clearAllSpawned();
levelSpecificFlags_clear();
func_8029A92C();
func_803219A8();
if( func_80320454(0x17, 0)
&& getGameMode() != 0
&& D_80383300.level != LEVEL_D_CUTSCENE
&& map != MAP_91_FILE_SELECT
){
func_803204E4(0x18, TRUE);
}
if(D_80383300.level == LEVEL_9_RUSTY_BUCKET_BAY){
func_8038FF18();
}
switch(map){
case MAP_2_MM_MUMBOS_MOUNTAIN:
mm_resetHuts();
break;
case MAP_7_TTC_TREASURE_TROVE_COVE:
ttc_resetTresureHunt();
break;
case MAP_1B_MMM_MAD_MONSTER_MANSION:
mm_resetFlowerPots();
break;
}
}
}
void func_80321854(void){
if(!func_802E4A8C()){
if( D_80383300.level == LEVEL_9_RUSTY_BUCKET_BAY){
func_8038FEE8();
}
if( D_80383300.level == LEVEL_1_MUMBOS_MOUNTAIN
&& getGameMode() != 0
&& func_8031FF1C(BKPROG_31_MM_OPEN)
&& !func_8031FF1C(0xC1)
){
func_803204E4(0x22, 1);
}
func_8029A924(); //null
func_803465BC(); //null
mapSavestate_free_all();
func_8032196C();
}
}
enum level_e level_get(void){
return D_80383300.level;
}
int func_8032190C(void){
return D_80383300.unk0;
}
void func_80321918(int arg0){
D_80383300.unk0 = arg0;
}
void func_80321924(void){
if(D_80383300.level == LEVEL_9_RUSTY_BUCKET_BAY){
func_8038FF70();
}
}