file_progress_e documentation

This commit is contained in:
Banjo Kazooie
2023-02-18 21:00:18 -06:00
parent 1aff1a433a
commit d0112a6d4a
86 changed files with 1162 additions and 1155 deletions

View File

@@ -1663,7 +1663,7 @@ segments:
- [0x104E810, c, ch/gobirock] #DONE - [0x104E810, c, ch/gobirock] #DONE
- [0x104EC60, c, ch/trunker] #DONE - [0x104EC60, c, ch/trunker] #DONE
- [0x104EFC0, c, code_2EE0] #DONE - [0x104EFC0, c, code_2EE0] #DONE
- [0x104F1A0, c, code_30C0] #DONE - [0x104F1A0, c, ch/sarcophagus] #DONE
- [0x104F710, c, code_3630] #DONE - [0x104F710, c, code_3630] #DONE
- [0x104FB80, c, code_3AA0] #DONE - [0x104FB80, c, code_3AA0] #DONE
- [0x104FBF0, c, code_3B10] #DONE - [0x104FBF0, c, code_3B10] #DONE
@@ -1696,7 +1696,7 @@ segments:
- [0x1056A50, .data, ch/gobirock] - [0x1056A50, .data, ch/gobirock]
- [0x1056A80, .data, ch/trunker] - [0x1056A80, .data, ch/trunker]
- [0x1056AB0, .data, code_2EE0] - [0x1056AB0, .data, code_2EE0]
- [0x1056AF0, .data, code_30C0] - [0x1056AF0, .data, ch/sarcophagus]
- [0x1056B90, .data, code_3630] - [0x1056B90, .data, code_3630]
- [0x1056BF0, .data, code_3AA0] - [0x1056BF0, .data, code_3AA0]
- [0x1056C20, .data, code_3B10] - [0x1056C20, .data, code_3B10]
@@ -1721,7 +1721,7 @@ segments:
- [0x1057410, .rodata, ch/gobi2] - [0x1057410, .rodata, ch/gobi2]
- [0x1057430, .rodata, ch/gobi3] - [0x1057430, .rodata, ch/gobi3]
- [0x1057470, .rodata, ch/gobirock] - [0x1057470, .rodata, ch/gobirock]
- [0x1057480, .rodata, code_30C0] - [0x1057480, .rodata, ch/sarcophagus]
- [0x1057490, .rodata, code_3BB0] - [0x1057490, .rodata, code_3BB0]
- [0x10574A0, .rodata, code_3D90] - [0x10574A0, .rodata, code_3D90]
- [0x10574B0, .rodata, code_43B0] - [0x10574B0, .rodata, code_43B0]
@@ -1892,7 +1892,7 @@ segments:
- [0x106B790, c, code_3420] - [0x106B790, c, code_3420]
- [0x106D0E0, c, ch/yumblie] #DONE - [0x106D0E0, c, ch/yumblie] #DONE
- [0x106D970, c, ch/mrvile] #DONE - [0x106D970, c, ch/mrvile] #DONE
- [0x106EAA0, c, ch/code_6730] #DONE - [0x106EAA0, c, ch/frogminigame] #DONE
- [0x106F160, c, ch/yellowflibbit] #DONE - [0x106F160, c, ch/yellowflibbit] #DONE
- [0x10709B0, c, ch/mudhut] #DONE - [0x10709B0, c, ch/mudhut] #DONE
- [0x1070DD0, c, ch/code_8A60] #DONE - [0x1070DD0, c, ch/code_8A60] #DONE
@@ -1909,7 +1909,7 @@ segments:
- [0x10728E0, .data, code_3420] - [0x10728E0, .data, code_3420]
- [0x10729C0, .data, ch/yumblie] - [0x10729C0, .data, ch/yumblie]
- [0x10729F0, .data, ch/mrvile] - [0x10729F0, .data, ch/mrvile]
- [0x1072A30, .data, ch/code_6730] - [0x1072A30, .data, ch/frogminigame]
- [0x1072A60, .data, ch/yellowflibbit] - [0x1072A60, .data, ch/yellowflibbit]
- [0x1072AA0, .data, crc] - [0x1072AA0, .data, crc]
- [0x1072AB0, .data, ch/mudhut] - [0x1072AB0, .data, ch/mudhut]
@@ -1925,7 +1925,7 @@ segments:
- [0x1072F70, .rodata, code_3420] - [0x1072F70, .rodata, code_3420]
- [0x1072F90, .rodata, ch/yumblie] - [0x1072F90, .rodata, ch/yumblie]
- [0x1072FC0, .rodata, ch/mrvile] - [0x1072FC0, .rodata, ch/mrvile]
- [0x1073010, .rodata, ch/code_6730] - [0x1073010, .rodata, ch/frogminigame]
- [0x1073020, .rodata, ch/yellowflibbit] - [0x1073020, .rodata, ch/yellowflibbit]
- [0x1073110, .rodata, ch/mudhut] - [0x1073110, .rodata, ch/mudhut]
- [0x1073120, .rodata, ch/code_8A60] - [0x1073120, .rodata, ch/code_8A60]
@@ -1933,7 +1933,7 @@ segments:
- [0x1073140, .rodata, code_9750] - [0x1073140, .rodata, code_9750]
- [0x1073150, .rodata, ch/leafboat] - [0x1073150, .rodata, ch/leafboat]
- [0x10731B0, .bss, bss_pad] - [0x10731B0, .bss, bss_pad]
- [0x10731B0, .bss, ch/code_6730] - [0x10731B0, .bss, ch/frogminigame]
- name: RBB - name: RBB
dir: RBB dir: RBB
type: code type: code
@@ -2173,7 +2173,7 @@ segments:
subsegments: subsegments:
- [0x1098070, c, code_0] #DONE - [0x1098070, c, code_0] #DONE
- [0x109C310, c, code_42A0] #DONE - [0x109C310, c, code_42A0] #DONE
- [0x109D6B0, c, code_5640] #DONE - [0x109D6B0, c, ch/brentilda] #DONE
- [0x109DF40, c, code_5ED0] #DONE - [0x109DF40, c, code_5ED0] #DONE
- [0x10A0760, c, code_86F0] #DONE - [0x10A0760, c, code_86F0] #DONE
- [0x10A1CB0, c, code_9C40] #DONE - [0x10A1CB0, c, code_9C40] #DONE
@@ -2187,7 +2187,7 @@ segments:
- [0x10A4730, c, code_C6C0] #DONE - [0x10A4730, c, code_C6C0] #DONE
- [0x10A4930, .data, code_0] - [0x10A4930, .data, code_0]
- [0x10A51A0, .data, code_42A0] - [0x10A51A0, .data, code_42A0]
- [0x10A5390, .data, code_5640] - [0x10A5390, .data, ch/brentilda]
- [0x10A53E0, .data, code_5ED0] - [0x10A53E0, .data, code_5ED0]
- [0x10A6430, .data, code_86F0] - [0x10A6430, .data, code_86F0]
- [0x10A64E0, .data, code_9C40] - [0x10A64E0, .data, code_9C40]
@@ -2201,7 +2201,7 @@ segments:
- [0x10A69A0, .data, code_C6C0] - [0x10A69A0, .data, code_C6C0]
- [0x10A69D0, .rodata, code_0] - [0x10A69D0, .rodata, code_0]
- [0x10A6C80, .rodata, code_42A0] - [0x10A6C80, .rodata, code_42A0]
- [0x10A6D10, .rodata, code_5640] - [0x10A6D10, .rodata, ch/brentilda]
- [0x10A6D40, .rodata, code_5ED0] - [0x10A6D40, .rodata, code_5ED0]
- [0x10A6E50, .rodata, code_86F0] - [0x10A6E50, .rodata, code_86F0]
- [0x10A6EC0, .rodata, code_9C40] - [0x10A6EC0, .rodata, code_9C40]

View File

@@ -11,253 +11,230 @@
#define SPRITE_TYPE_RGBA16 (1 << 10) ////0x400 #define SPRITE_TYPE_RGBA16 (1 << 10) ////0x400
#define SPRITE_TYPE_RGBA32 (1 << 11) #define SPRITE_TYPE_RGBA32 (1 << 11)
enum bkprog_e{ enum file_progress_e{
BKPROG_3_MUSIC_NOTE_TEXT = 0x3, FILEPROG_3_MUSIC_NOTE_TEXT = 0x3,
BKPROG_4_MUMBO_TOKEN_TEXT, FILEPROG_4_MUMBO_TOKEN_TEXT,
BKPROG_5_BLUE_EGG_TEXT, FILEPROG_5_BLUE_EGG_TEXT,
BKPROG_6_RED_FEATHER_TEXT, FILEPROG_6_RED_FEATHER_TEXT,
BKPROG_7_GOLD_FEATHER_TEXT, FILEPROG_7_GOLD_FEATHER_TEXT,
BKPROG_8_GOLD_BULLION_TEXT, FILEPROG_8_ORANGE_TEXT,
BKPROG_9_ORANGE_TEXT, FILEPROG_9_GOLD_BULLION_TEXT,
BKPROG_A_HONEYCOMB_TEXT, FILEPROG_A_HONEYCOMB_TEXT,
BKPROG_B_EMPTY_HONEYCOMB_TEXT, FILEPROG_B_EMPTY_HONEYCOMB_TEXT,
BKPROG_C_EXTRA_LIFE_TEXT, FILEPROG_C_EXTRA_LIFE_TEXT,
// BKPROG_0C_ "1st Extra Life Text"}, FILEPROG_D_BEEHIVE_TEXT,
// BKPROG_0D_ "1st Beehive Text"}, FILEPROG_E_JINJO_TEXT,
BKPROG_D_BEEHIVE_TEXT = 0xD, FILEPROG_F_HAS_TOUCHED_PIRAHANA_WATER,
BKPROG_E_JINJO_TEXT, FILEPROG_10_HAS_TOUCHED_SAND_EEL_SAND,
BKPROG_F_HAS_TOUCHED_PIRAHANA_WATER, FILEPROG_11_HAS_MET_MUMBO,
BKPROG_10_HAS_TOUCHED_SAND_EEL_SAND, FILEPROG_12_HAS_TRANSFORMED_BEFORE,
BKPROG_11_HAS_MET_MUMBO, FILEPROG_13, //something with xmas tree jiggy progress
BKPROG_12_HAS_TRANSFORMED_BEFORE, FILEPROG_14_HAS_TOUCHED_FP_ICY_WATER,
BKPROG_13, //something with xmas tree jiggy progress FILEPROG_15_ENTER_MMM_TEXT,
BKPROG_14_HAS_TOUCHED_FP_ICY_WATER, FILEPROG_16_STOOD_ON_JIGSAW_PODIUM,
BKPROG_15_ENTER_MMM_TEXT, FILEPROG_17_HAS_HAD_ENOUGH_JIGSAW_PIECES,
// {index=0x16, type="Prog", level=6, name="1st Time in Jigsaw Text"}, FILEPROG_18_MM_WITCH_SWITCH_JIGGY_PRESSED,
// {index=0x17, type="Prog", level=6, name="1st Time Enough Pieces Jigsaw Text"}, FILEPROG_19_MMM_WITCH_SWITCH_JIGGY_PRESSED,
BKPROG_18_MM_WITCH_SWITCH_JIGGY_SPAWNED = 0x18, FILEPROG_1A_TTC_WITCH_SWITCH_JIGGY_PRESSED,
BKPROG_19_MMM_WITCH_SWITCH_JIGGY_SPAWNED, FILEPROG_1B_MET_YELLOW_FLIBBITS,
BKPROG_1A_TTC_WITCH_SWITCH_JIGGY_SPAWNED, FILEPROG_1C_RBB_WITCH_SWITCH_JIGGY_PRESSED,
BKPROG_1B_CC_WITCH_SWITCH_JIGGY_SPAWNED, FILEPROG_1D_MMM_DINNING_ROOM_CUTSCENE,
BKPROG_1C_RBB_WITCH_SWITCH_JIGGY_SPAWNED, FILEPROG_1E_LAIR_GRATE_TO_BGS_PUZZLE_OPEN,
BKPROG_1D_MMM_DINNING_ROOM_CUTSCENE, FILEPROG_1F_CC_LOBBY_PIPE_1_RAISED,
// {index=0x1E, type="Prog", level=6, name="Grate to BGS Puzzle Open"}, FILEPROG_20_CC_LOBBY_PIPE_2_RAISED,
BKPROG_1F_CC_LOBBY_PIPE_1_RAISED = 0x1F, FILEPROG_21_CC_LOBBY_PIPE_3_RAISED,
BKPROG_20_CC_LOBBY_PIPE_2_RAISED, FILEPROG_22_WATER_SWITCH_1_PRESSED,
BKPROG_21_CC_LOBBY_PIPE_3_RAISED, FILEPROG_23_LAIR_WATER_LEVEL_1,
BKPROG_22_WATER_SWITCH_1_PRESSED, FILEPROG_24_WATER_SWITCH_2_PRESSED,
BKPROG_23_LAIR_WATER_LEVEL_1, FILEPROG_25_LAIR_WATER_LEVEL_2,
BKPROG_24_WATER_SWITCH_2_PRESSED, FILEPROG_26_WATER_SWITCH_3_PRESSED,
BKPROG_25_LAIR_WATER_LEVEL_2 = 0x25, FILEPROG_27_LAIR_WATER_LEVEL_3,
BKPROG_26_WATER_SWITCH_3_PRESSED,
BKPROG_27_LAIR_WATER_LEVEL_3 = 0x27,
BKPROG_31_MM_OPEN = 0x31, FILEPROG_31_MM_OPEN = 0x31,
BKPROG_32_TTC_OPEN, FILEPROG_32_TTC_OPEN,
BKPROG_33_CC_OPEN, FILEPROG_33_CC_OPEN,
BKPROG_34_BGS_OPEN, FILEPROG_34_BGS_OPEN,
BKPROG_35_FP_OPEN, FILEPROG_35_FP_OPEN,
BKPROG_36_GV_OPEN, FILEPROG_36_GV_OPEN,
BKPROG_37_MMM_OPEN, FILEPROG_37_MMM_OPEN,
BKPROG_38_RBB_OPEN, FILEPROG_38_RBB_OPEN,
BKPROG_39_CCW_OPEN, FILEPROG_39_CCW_OPEN,
BKPROG_3A_NOTE_DOOR_50_OPEN, FILEPROG_3A_NOTE_DOOR_50_OPEN,
BKPROG_3B_NOTE_DOOR_180_OPEN, FILEPROG_3B_NOTE_DOOR_180_OPEN,
BKPROG_3C_NOTE_DOOR_260_OPEN, FILEPROG_3C_NOTE_DOOR_260_OPEN,
BKPROG_3D_NOTE_DOOR_350_OPEN, FILEPROG_3D_NOTE_DOOR_350_OPEN,
BKPROG_3E_NOTE_DOOR_450_OPEN, FILEPROG_3E_NOTE_DOOR_450_OPEN,
BKPROG_3F_NOTE_DOOR_640_OPEN, FILEPROG_3F_NOTE_DOOR_640_OPEN,
BKPROG_40_NOTE_DOOR_765_OPEN, FILEPROG_40_NOTE_DOOR_765_OPEN,
BKPROG_41_NOTE_DOOR_810_OPEN, FILEPROG_41_NOTE_DOOR_810_OPEN,
BKPROG_42_NOTE_DOOR_828_OPEN, FILEPROG_42_NOTE_DOOR_828_OPEN,
BKPROG_43_NOTE_DOOR_846_OPEN, FILEPROG_43_NOTE_DOOR_846_OPEN,
BKPROG_44_NOTE_DOOR_864_OPEN, FILEPROG_44_NOTE_DOOR_864_OPEN,
BKPROG_45_NOTE_DOOR_882_OPEN, FILEPROG_45_NOTE_DOOR_882_OPEN,
BKPROG_46_CCW_WITCH_SWITCH_JIGGY_SPAWNED, FILEPROG_46_CCW_WITCH_SWITCH_JIGGY_PRESSED,
FILEPROG_47_FP_WITCH_SWITCH_JIGGY_PRESSED,
// {index=0x48, type="Prog", level=6, name="FP WS Advent Door Open"}, FILEPROG_48_FP_WITCH_SWITCH_ADVENT_DOOR_OPEN,
// {index=0x49, type="Prog", level=6, name="Pink Cauldron 1 Active"}, // {index=0x49, type="Prog", level=6, name="Pink Cauldron 1 Active"},
// {index=0x4A, type="Prog", level=6, name="Pink Cauldron 2 Active"}, // {index=0x4A, type="Prog", level=6, name="Pink Cauldron 2 Active"},
// {index=0x4B, type="Prog", level=6, name="Green Cauldron 1 Active"}, // {index=0x4B, type="Prog", level=6, name="Green Cauldron 1 Active"},
// {index=0x4C, type="Prog", level=6, name="Green Cauldron 2 Active"}, // {index=0x4C, type="Prog", level=6, name="Green Cauldron 2 Active"},
// {index=0x4D, type="Prog", level=6, name="Red Cauldron 1 Active"}, // {index=0x4D, type="Prog", level=6, name="Red Cauldron 1 Active"},
// {index=0x4E, type="Prog", level=6, name="Red Cauldron 2 Active"}, // {index=0x4E, type="Prog", level=6, name="Red Cauldron 2 Active"},
// -- 0x4F - Unused Cauldron Pair? // -- 0x4F - Unused Cauldron Pair?
// -- 0x50 - Unused Cauldron Pair? // -- 0x50 - Unused Cauldron Pair?
// {index=0x51, type="Prog", level=6, name="Yellow Cauldron 1 Active"}, // {index=0x51, type="Prog", level=6, name="Yellow Cauldron 1 Active"},
// {index=0x52, type="Prog", level=6, name="Yellow Cauldron 2 Active"}, // {index=0x52, type="Prog", level=6, name="Yellow Cauldron 2 Active"},
// {index=0x53, type="Prog", level=6, name="CCW Puzzle Podium Switch Pressed"}, FILEPROG_53_CCW_PUZZLE_PODIUM_SWITCH_PRESSED = 0x53,
// {index=0x54, type="Prog", level=6, name="CCW Puzzle Podium Active"}, FILEPROG_54_CCW_PUZZLE_PODIUM_ACTIVE,
// {index=0x55, type="Prog", level=6, name="1st FF BK Square Text"}, FILEPROG_55_FF_BK_SQUARE_INSTRUCTIONS,
// {index=0x56, type="Prog", level=6, name="1st FF Pic Square Text"}, FILEPROG_56_FF_PICTURE_SQUARE_INSTRUCTIONS,
// {index=0x57, type="Prog", level=6, name="1st FF Music Square Text"}, FILEPROG_57_FF_MUSIC_SQAURE_INSTRUCTIONS,
// {index=0x58, type="Prog", level=6, name="1st FF Mini-Game Square Text"}, FILEPROG_58_FF_MINIGAME_SQAURE_INSTRUCTIONS,
// {index=0x59, type="Prog", level=6, name="1st FF Grunty Square Text"}, FILEPROG_59_FF_GRUNTY_SQAURE_INSTRUCTIONS,
// {index=0x5A, type="Prog", level=6, name="1st FF Death Square Text"}, FILEPROG_5A_FF_DEATH_SQAURE_INSTRUCTIONS,
// {index=0x5B, type="Prog", level=6, name="1st FF Joker Square Text"}, FILEPROG_5B_FF_JOKER_SQAURE_INSTRUCTIONS,
FILEPROG_5C_FF_PATTERN_SET,
// {index=0x5C, type="Prog", level=6, name="??FF Pattern Set"}, FILEPROG_5D_MM_PUZZLE_PIECES_PLACED = 0x5D, //1 bit
FILEPROG_5E_TCC_PUZZLE_PIECES_PLACED = 0x5E, //2 bit
// -- Pieces places in puzzles info FILEPROG_60_CC_PUZZLE_PIECES_PLACED = 0x60, //3 bit
// -- TODO: Read/write these as ints? FILEPROG_63_BGS_PUZZLE_PIECES_PLACED = 0x63, //3 bit
// {index=0x5D, type="Prog", level=6, name="Puzzle: # Pieces in MM Puzzle (2^0)"}, FILEPROG_66_FP_PUZZLE_PIECES_PLACED = 0x66, //4 bit
// {index=0x5E, type="Prog", level=6, name="Puzzle: # Pieces in TTC Puzzle (2^0)"}, FILEPROG_6A_GV_PUZZLE_PIECES_PLACED = 0x6A, //4 bit
// {index=0x5F, type="Prog", level=6, name="Puzzle: # Pieces in TTC Puzzle (2^1)"}, FILEPROG_6E_MMM_PUZZLE_PIECES_PLACED = 0x6E, //4 bit
// {index=0x60, type="Prog", level=6, name="Puzzle: # Pieces in CC Puzzle (2^0)"}, FILEPROG_72_RBB_PUZZLE_PIECES_PLACED = 0x72, //4 bit
// {index=0x61, type="Prog", level=6, name="Puzzle: # Pieces in CC Puzzle (2^1)"}, FILEPROG_76_CCW_PUZZLE_PIECES_PLACED = 0x76, //4 bit
// {index=0x62, type="Prog", level=6, name="Puzzle: # Pieces in CC Puzzle (2^2)"}, FILEPROG_7A_DOG_PUZZLE_PIECES_PLACED = 0x7A, //5 bit
// {index=0x63, type="Prog", level=6, name="Puzzle: # Pieces in BGS Puzzle (2^0)"}, FILEPROG_7F_DOUBLE_HEALTH_PUZZLE_PIECES_PLACED = 0x7F, //3 bit
// {index=0x64, type="Prog", level=6, name="Puzzle: # Pieces in BGS Puzzle (2^1)"}, // {index=0x82, unknown}
// {index=0x65, type="Prog", level=6, name="Puzzle: # Pieces in BGS Puzzle (2^2)"}, FILEPROG_82_MET_TWINKLIES = 0x82,
// {index=0x66, type="Prog", level=6, name="Puzzle: # Pieces in FP Puzzle (2^0)"}, FILEPROG_83_MAGIC_GET_WEAK_TEXT,
// {index=0x67, type="Prog", level=6, name="Puzzle: # Pieces in FP Puzzle (2^1)"}, FILEPROG_84_MAGIC_ALL_GONE_TEXT,
// {index=0x68, type="Prog", level=6, name="Puzzle: # Pieces in FP Puzzle (2^2)"},
// {index=0x69, type="Prog", level=6, name="Puzzle: # Pieces in FP Puzzle (2^3)"},
// {index=0x6A, type="Prog", level=6, name="Puzzle: # Pieces in GV Puzzle (2^0)"},
// {index=0x6B, type="Prog", level=6, name="Puzzle: # Pieces in GV Puzzle (2^1)"},
// {index=0x6C, type="Prog", level=6, name="Puzzle: # Pieces in GV Puzzle (2^2)"},
// {index=0x6D, type="Prog", level=6, name="Puzzle: # Pieces in GV Puzzle (2^3)"},
// {index=0x6E, type="Prog", level=6, name="Puzzle: # Pieces in MMM Puzzle (2^0)"},
// {index=0x6F, type="Prog", level=6, name="Puzzle: # Pieces in MMM Puzzle (2^1)"},
// {index=0x70, type="Prog", level=6, name="Puzzle: # Pieces in MMM Puzzle (2^2)"},
// {index=0x71, type="Prog", level=6, name="Puzzle: # Pieces in MMM Puzzle (2^3)"},
// {index=0x72, type="Prog", level=6, name="Puzzle: # Pieces in RBB Puzzle (2^0)"},
// {index=0x73, type="Prog", level=6, name="Puzzle: # Pieces in RBB Puzzle (2^1)"},
// {index=0x74, type="Prog", level=6, name="Puzzle: # Pieces in RBB Puzzle (2^2)"},
// {index=0x75, type="Prog", level=6, name="Puzzle: # Pieces in RBB Puzzle (2^3)"},
// {index=0x76, type="Prog", level=6, name="Puzzle: # Pieces in CCW Puzzle (2^0)"},
// {index=0x77, type="Prog", level=6, name="Puzzle: # Pieces in CCW Puzzle (2^1)"},
// {index=0x78, type="Prog", level=6, name="Puzzle: # Pieces in CCW Puzzle (2^2)"},
// {index=0x79, type="Prog", level=6, name="Puzzle: # Pieces in CCW Puzzle (2^3)"},
// {index=0x7A, type="Prog", level=6, name="Puzzle: # Pieces in DoG Puzzle (2^0)"},
// {index=0x7B, type="Prog", level=6, name="Puzzle: # Pieces in DoG Puzzle (2^1)"},
// {index=0x7C, type="Prog", level=6, name="Puzzle: # Pieces in DoG Puzzle (2^2)"},
// {index=0x7D, type="Prog", level=6, name="Puzzle: # Pieces in DoG Puzzle (2^3)"},
// {index=0x7E, type="Prog", level=6, name="Puzzle: # Pieces in DoG Puzzle (2^4)"},
// {index=0x7F, type="Prog", level=6, name="Puzzle: # Pieces in Double Health Puzzle (2^0)"},
// {index=0x80, type="Prog", level=6, name="Puzzle: # Pieces in Double Health Puzzle (2^1)"},
// {index=0x81, type="Prog", level=6, name="Puzzle: # Pieces in Double Health Puzzle (2^2)"},
BKPROG_83_MAGIC_GET_WEAK_TEXT = 0x83,
BKPROG_84_MAGIC_ALL_GONE_TEXT,
// {index=0x85, type="Prog", level=6, name="Lair Crypt Gate Open"}, // {index=0x85, type="Prog", level=6, name="Lair Crypt Gate Open"},
BKPROG_86_HAS_TOUCHED_MMM_THORN_HEDGE = 0x86, FILEPROG_86_HAS_TOUCHED_MMM_THORN_HEDGE = 0x86,
BKPROG_88_TRIED_LOGGO_AS_BEAR = 0x88, FILEPROG_88_TRIED_LOGGO_AS_BEAR = 0x88,
BKPROG_89_ENTERED_LOGGO_AS_PUMPKIN, FILEPROG_89_ENTERED_LOGGO_AS_PUMPKIN,
BKPROG_8A_EXITED_LOGGO, FILEPROG_8A_EXITED_LOGGO,
FILEPROG_8B_CCW_SPRING_OPEN,
FILEPROG_8C_CCW_SUMMER_OPEN,
FILEPROG_8D_CCW_AUTUMN_OPEN,
FILEPROG_8E_CCW_WINTER_OPEN,
FILEPROG_8F_MET_BEE_INFESTED_BEEHIVE,
FILEPROG_90_PAID_TERMITE_COST,
FILEPROG_91_PAID_PUMPKIN_COST,
FILEPROG_92_PAID_WALRUS_COST,
FILEPROG_93_PAID_CROC_COST,
FILEPROG_94_PAID_BEE_COST,
// {index=0x8B, type="Prog", level=8, name="CCW Spring Open"}, FILEPROG_96_MET_BRENTILDA = 0x96,
// {index=0x8C, type="Prog", level=8, name="CCW Summer Open"}, FILEPROG_97_ENTERED_LAIR_TEXT,
// {index=0x8D, type="Prog", level=8, name="CCW Autumn Open"}, FILEPROG_98_EXITED_LEVEL_TEXT,
// {index=0x8E, type="Prog", level=8, name="CCW Winter Open"}, FILEPROG_99_PAST_50_NOTE_DOOR_TEXT,
// {index=0x8F, type="Prog", level=8, name="Mumbo's Magic Getting Weak Text"}, FILEPROG_9A_CC_WITCH_SWITCH_PRESSED,
BKPROG_90_PAID_TERMITE_COST = 0x90, FILEPROG_9B_LAIR_CC_WITCH_SWITCH_EYES_ACTIVE,
BKPROG_91_PAID_PUMPKIN_COST, FILEPROG_9C_LAIR_CC_WITCH_SWITCH_LEFT_EYE_PRESSED,
BKPROG_92_PAID_WALRUS_COST, FILEPROG_9D_LAIR_CC_WITCH_SWITCH_RIGHT_EYE_PRESSED,
BKPROG_93_PAID_CROC_COST, FILEPROG_9E_CRYPT_COFFIN_LID_OPEN,
BKPROG_94_PAID_BEE_COST, FILEPROG_9F_BGS_WITCH_SWITCH_JIGGY_PRESSED,
FILEPROG_A0_GV_WITCH_SWITCH_JIGGY_PRESSED,
FILEPROG_A1_STATUE_HAT_OPEN,
FILEPROG_A2_GV_LOBBY_COFFIN_OPEN,
FILEPROG_A3_GV_SNS_SWITCH_PRESSED,
FILEPROG_A4_GV_SNS_SARCOPHAGUS_OPEN,
//crypt gate open?
FILEPROG_A6_FURNACE_FUN_COMPLETE = 0xA6,
FILEPROG_A7_NEAR_PUZZLE_PODIUM_TEXT,
FILEPROG_A8_HAS_DIED,
FILEPROG_A9_HAS_TOUCHED_RBB_OVEN,
FILEPROG_AA_HAS_TOUCHED_CCW_BRAMBLE_FIELD,
FILEPROG_AB_SWIM_OILY_WATER,
FILEPROG_AC_DIVE_OILY_WATER,
FILEPROG_AD_CHEATO_BLUEEGGS_UNLOCKED,
FILEPROG_AE_CHEATO_REDFEATHERS_UNLOCKED,
FILEPROG_AF_CHEATO_GOLDFEATHERS_UNLOCKED,
FILEPROG_B0_HAS_ENTERED_MM,
FILEPROG_B1_HAS_ENTERED_BGS,
FILEPROG_B2_HAS_ENTERED_TTC,
FILEPROG_B3_HAS_ENTERED_GV,
FILEPROG_B4_HAS_ENTERED_RBB,
FILEPROG_B5_HAS_ENTERED_CCW,
FILEPROG_B6_HAS_ENTERED_FP,
FILEPROG_B7_HAS_ENTERED_MMM,
FILEPROG_B8_HAS_ENTERED_CC,
FILEPROG_B9_DOUBLE_HEALTH,
FILEPROG_BA_HAS_SEEN_TREX_TEXT,
FILEPROG_BB_MUMBO_MISTAKE_INDEX, //2 bits
FILEPROG_BD_ENTER_LAIR_CUTSCENE = 0xBD,
FILEPROG_BE_CHEATO_BLUEEGGS,
FILEPROG_BF_CHEATO_REDFEATHERS,
FILEPROG_C0_CHEATO_GOLDFEATHERS,
FILEPROG_C1_BADDIES_ESCAPE_TEXT,
FILEPROG_C2_GRATE_TO_RBB_PUZZLE_OPEN,
FILEPROG_C3_ICE_BALL_TO_CHEATO_BROKEN,
FILEPROG_C4_STATUE_EYE_BROKEN,
FILEPROG_C5_RAREWARE_BOX_BROKEN,
FILEPROG_C6_LAIR_JUMP_PAD_SWITCH_PRESSED,
FILEPROG_C7_LAIR_JUMP_PAD_ACTIVE,
FILEPROG_C8_LAIR_BRICKWALL_TO_WADINGBOOTS_BROKEN,
FILEPROG_C9_LAIR_BRICKWALL_TO_SHOCKJUMP_PAD_BROKEN,
FILEPROG_CA_COBWEB_BLOCKING_PURPLE_CAULDRON_BROKEN,
FILEPROG_CB_LAIR_COBWEB_OVER_FLIGHTPAD_BROKEN,
FILEPROG_CC_LAIR_COBWEB_OVER_GREEN_CAULDRON_BROKEN,
FILEPROG_CD_GRATE_TO_WATER_SWITCH_3_OPEN,
FILEPROG_CE_GRATE_TO_MMM_PUZZLE_OPEN,
FILEPROG_CF_HAS_ENTERED_FINAL_FIGHT,
// {index=0x96, type="Prog", level=6, name="1st Time Brentilda Text"}, FILEPROG_D1_HAS_ACTIVATED_A_JINJO_STATUE_IN_FINAL_FIGHT = 0xD1,
BKPROG_97_ENTERED_LAIR_TEXT = 0x97, FILEPROG_D2_HAS_SPAWNED_A_JINJO_STATUE_IN_FINAL_FIGHT,
BKPROG_98_EXITED_LEVEL_TEXT, FILEPROG_D3_FF_PATTERN, //8 bit
BKPROG_99_PAST_50_NOTE_DOOR_TEXT,
// {index=0x99, type="Prog", level=6, name="1st Time Past 50 ND Text"},
// {index=0x9B, type="Prog", level=6, name="CC WS Eyes Active"},
BKPROG_9C_LAIR_CC_WITCH_SWITCH_LEFT_EYE_PRESSED = 0x9C,
BKPROG_9D_LAIR_CC_WITCH_SWITCH_RIGHT_EYE_PRESSED = 0x9D,
BKPROG_9E_CRYPT_COFFIN_LID_OPEN = 0x9E,
BKPROG_A1_STATUE_HAT_OPEN = 0xA1, // {index=0xDB, unknown},
BKPROG_A2_GV_LOBBY_COFFIN_OPEN, FILEPROG_DB_SKIPPED_TUTORIAL = 0xDB,
BKPROG_A3_UNKOWN, //tied to actor_244/marker_23B FILEPROG_DC_HAS_HAD_ENOUGH_TOKENS_BEFORE,
BKPROG_A4_UNKOWN, //tied to actor_244/marker_23B FILEPROG_DD_HAS_TOUCHED_ICY_WATER,
FILEPROG_DE_USED_ALL_YOUR_PUZZLE_PIECES,
FILEPROG_DF_CAN_REMOVE_ALL_PUZZLE_PIECES,
FILEPROG_E0_CAN_PLACE_ALL_PUZZLE_PIECES,
BKPROG_A6_FURNACE_FUN_COMPLETE = 0xA6, FILEPROG_E2_DOOR_OF_GRUNTY_OPEN = 0xE2,
BKPROG_A7_NEAR_PUZZLE_PODIUM_TEXT, FILEPROG_E3_CCW_FLOWER_SPRING,
BKPROG_A8_HAS_DIED, FILEPROG_E4_CCW_FLOWER_SUMMER,
BKPROG_A9_HAS_TOUCHED_RBB_OVEN, FILEPROG_E5_CCW_FLOWER_AUTUMN,
BKPROG_AA_HAS_TOUCHED_CCW_BRAMBLE_FIELD, FILEPROG_E6_SPRING_EYRIE_HATCHED,
BKPROG_AB_SWIM_OILY_WATER, FILEPROG_E7_SUMMER_EYRIE_FED,
BKPROG_AC_DIVE_OILY_WATER, FILEPROG_E8_AUTMN_EYRIE_FED,
// {index=0xAD, type="Prog", level=6, name="Cheato: BLUEEGGS Unlocked"}, FILEPROG_E9_TALKED_TO_BRENTILDA_1,
// {index=0xAE, type="Prog", level=6, name="Cheato: REDFEATHERS Unlocked"}, FILEPROG_EA_TALKED_TO_BRENTILDA_2,
// {index=0xAF, type="Prog", level=6, name="Cheato: GOLDFEATHERS Unlocked"}, FILEPROG_EB_TALKED_TO_BRENTILDA_3,
BKPROG_B0_HAS_ENTERED_MM = 0xb0, FILEPROG_EC_TALKED_TO_BRENTILDA_4,
BKPROG_B1_HAS_ENTERED_BGS, FILEPROG_ED_TALKED_TO_BRENTILDA_5,
BKPROG_B2_HAS_ENTERED_TTC, FILEPROG_EE_TALKED_TO_BRENTILDA_6,
BKPROG_B3_HAS_ENTERED_GV, FILEPROG_EF_TALKED_TO_BRENTILDA_7,
BKPROG_B4_HAS_ENTERED_RBB, FILEPROG_F0_TALKED_TO_BRENTILDA_8,
BKPROG_B5_HAS_ENTERED_CCW, FILEPROG_F1_TALKED_TO_BRENTILDA_9,
BKPROG_B6_HAS_ENTERED_FP, FILEPROG_F2_TALKED_TO_BRENTILDA_10,
BKPROG_B7_HAS_ENTERED_MMM, FILEPROG_F3_MET_DINGPOT,
BKPROG_B8_HAS_ENTERED_CC, FILEPROG_F4_ENTER_FF_CUTSCENE,
BKPROG_B9_DOUBLE_HEALTH, FILEPROG_F5_COMPLETED_A_WARP_CAULDRON_SET,
// {index=0xBA, type="Prog", level=6, name="1st Time T. Rex"}, FILEPROG_F6_SEEN_DOOR_OF_GRUNTY_PUZZLE_PODIUM,
BK_PROG_BB_MUMBO_MISTAKE_INDEX = 0xBB, //2 bits FILEPROG_F7_HAS_TRANSFORMED_IN_CRYPT,
// BK_PROG_BC_MUMBO_MISTAKE_INDEX = 0xBC, //2 bits FILEPROG_F8_KING_SANDYBUTT_PYRAMID_STATE = 0xF8, //2bit
BKPROG_BD_ENTER_LAIR_CUTSCENE = 0xBD, // FILEPROG_F8_KING_SANDYBUTT_PYRAMID_STATE = 0xF9, //2bit
BKPROG_BE_CHEATO_BLUEEGGS,
BKPROG_BF_CHEATO_REDFEATHERS,
BKPROG_C0_CHEATO_GOLDFEATHERS,
BKPROG_C2_GRATE_TO_RBB_PUZZLE_OPEN = 0xc2, FILEPROG_FC_DEFEAT_GRUNTY = 0xFC,
BKPROG_C3_ICE_BALL_TO_CHEATO_BROKEN, FILEPROG_FD_CHEATCODES_ENTERED //2 bit
BKPROG_C4_STATUE_EYE_BROKEN,
BKPROG_C5_RAREWARE_BOX_BROKEN,
// {index=0xC6, type="Prog", level=6, name="Jump Pad Switch Pressed"},
// {index=0xC7, type="Prog", level=6, name="Jump Pad Active"},
// {index=0xC8, type="Prog", level=6, name="Wall to Wading Boots Broken"},
// {index=0xC9, type="Prog", level=6, name="Wall to Jump Pad Switch Broken"},
// {index=0xCA, type="Prog", level=6, name="Cobweb to Purple Cauldron Broken"},
// {index=0xCB, type="Prog", level=6, name="Cobweb to Flight Pad Broken"},
// {index=0xCC, type="Prog", level=6, name="Cobweb to Green Cauldron Broken"},
BKPROG_CD_GRATE_TO_WATER_SWITCH_3_OPEN = 0xcd,
BKPROG_CE_GRATE_TO_MMM_PUZZLE_OPEN,
BKPROG_CF_HAS_ENTERED_FINAL_FIGHT,
BKPROG_D1_HAS_ACTIVATED_A_JINJO_STATUE_IN_FINAL_FIGHT = 0xD1,
BKPROG_D2_HAS_SPAWNED_A_JINJO_STATUE_IN_FINAL_FIGHT,
// {index=0xD3, type="Prog", level=6, name="??FF PATTERN 2^0"},
// {index=0xD4, type="Prog", level=6, name="??FF PATTERN 2^1"},
// {index=0xD5, type="Prog", level=6, name="??FF PATTERN 2^2"},
// {index=0xD6, type="Prog", level=6, name="??FF PATTERN 2^3"},
// {index=0xD7, type="Prog", level=6, name="??FF PATTERN 2^4"},
// {index=0xD8, type="Prog", level=6, name="??FF PATTERN 2^5"},
// {index=0xD9, type="Prog", level=6, name="??FF PATTERN 2^6"},
// {index=0xDA, type="Prog", level=6, name="??FF PATTERN 2^7"},
BKPROG_DC_HAS_HAD_ENOUGH_TOKENS_BEFORE = 0xDC,
BKPROG_DD_HAS_TOUCHED_ICY_WATER,
// {index=0xDF, type="Prog", level=6, name="Remove Puzzle Piece Text"},
// {index=0xE0, type="Prog", level=6, name="Place All Puzzle Pieces Text"},
// {index=0xE2, type="Prog", level=6, name="DoG Open"},
// {index=0xE3, type="Prog", level=8, name="CCW Flower Spring"},
// {index=0xE4, type="Prog", level=8, name="CCW Flower Summer"},
// {index=0xE5, type="Prog", level=8, name="CCW Flower Autumn"},
BKPROG_E6_SPRING_EYRIE_HATCHED = 0xE6,
BKPROG_E7_SUMMER_EYRIE_FED,
// {index=0xE7, type="Prog", level=8, name="Summer Eyrie Fed"},
// {index=0xE8, type="Prog", level=8, name="Autumn Eyrie Fed"},
// {index=0xF3, type="Prog", level=6, name="Talked to Dingpot"},
BKPROG_F4_ENTER_FF_CUTSCENE = 0xF4,
// {index=0xF4, type="Prog", level=6, name="1st Time FF Cutscene"},
// {index=0xF6, type="Prog", level=6, name="1st Time Near DoG Puzzle Podium"},
// {index=0xF7, type="Prog", level=10, name="Pumpkin Making Mumbo Hungry Text"},
BKPROG_F7_HAS_TRANSFORMED_IN_CRYPT = 0xF7,
BKPROG_F8_KING_SANDYBUTT_PYRAMID_STATE = 0xF8, //2bit
// BKPROG_F8_KING_SANDYBUTT_PYRAMID_STATE = 0xF9, //2bit
BKPROG_FC_DEFEAT_GRUNTY = 0xFC
}; };
enum unkflags_1{ enum unkflags_1{
UNKFLAGS1_6_HAS_SEEN_BOSS_BOOM_BOX_FF_MINIGAME = 0x6,
UNKFLAGS1_7_HAS_SEEN_VILE_FF_MINIGAME,
UNKFLAGS1_8_HAS_SEEN_MATCHING_PYRAMID_FF_MINIGAME,
UNKFLAGS1_9_HAS_SEEN_ZUBBAS_FF_MINIGAME,
UNKFLAGS1_A_HAS_SEEN_TIPTUP_FF_MINIGAME,
UNKFLAGS1_B_HAS_SEEN_SANDCASTLE_FF_MINIGAME,
UNKFLAGS1_1F_IN_CHARACTER_PARADE = 0x1F, UNKFLAGS1_1F_IN_CHARACTER_PARADE = 0x1F,
UNKFLAGS1_20_BEGIN_CHARACTER_PARADE, UNKFLAGS1_20_BEGIN_CHARACTER_PARADE,
@@ -1621,6 +1598,7 @@ enum actor_e
ACTOR_117_NIPPER, ACTOR_117_NIPPER,
ACTOR_118_GRABBA, ACTOR_118_GRABBA,
ACTOR_119_MAGIC_CARPET_1, ACTOR_119_MAGIC_CARPET_1,
ACTOR_11A_GV_MAZE_SARCOPHAGUS,
ACTOR_11C_HISTUP = 0x11C, ACTOR_11C_HISTUP = 0x11C,
ACTOR_11D_RUBEES_EGG_POT = 0x11D, ACTOR_11D_RUBEES_EGG_POT = 0x11D,
@@ -1747,15 +1725,19 @@ enum actor_e
ACTOR_20B_RBB_WITCH_SWITCH = 0x20B, ACTOR_20B_RBB_WITCH_SWITCH = 0x20B,
ACTOR_20E_MM_ENTRANCE_DOOR = 0x20E, ACTOR_20D_BREAKABLE_BRICK_WALL = 0x20D,
ACTOR_20E_MM_ENTRANCE_DOOR,
ACTOR_20F_RBB_ENTRANCE_DOOR, ACTOR_20F_RBB_ENTRANCE_DOOR,
ACTOR_210_BGS_ENTRANCE_DOOR, ACTOR_210_BGS_ENTRANCE_DOOR,
ACTOR_211_CHEST_LID, //CC ENTRANCE ACTOR_211_TCC_ENTRANCE_CHEST_LID, //CC ENTRANCE
ACTOR_212_IRON_BARS, //TTC_ENTRANCE ACTOR_212_CC_ENTRANCE_BARS, //TTC_ENTRANCE
ACTOR_226_GV_ENTRANCE = 0x226, ACTOR_226_GV_ENTRANCE = 0x226,
ACTOR_227_GLASS_EYE, ACTOR_227_GLASS_EYE,
ACTOR_228_INVISIBLE_WALL, //MMM ENTRANCE DOOR??? ACTOR_228_MMM_ENTRANCE_DOOR, //MMM ENTRANCE DOOR???
ACTOR_230_BREAKABLE_FLOOR_COBWEB = 0x230,
ACTOR_231_BREAKABLE_WALL_COBWEB,
ACTOR_234_CCW_ENTRANCE_DOOR = 0x234, ACTOR_234_CCW_ENTRANCE_DOOR = 0x234,
ACTOR_235_FP_ENTANCE_DOOR, ACTOR_235_FP_ENTANCE_DOOR,
@@ -1764,7 +1746,10 @@ enum actor_e
ACTOR_239_FP_WITCH_SWITCH = 0x239, ACTOR_239_FP_WITCH_SWITCH = 0x239,
ACTOR_23B_DINGPOT = 0x23B,
ACTOR_243_GV_SNS_CHAMBER_DOOR = 0x243, ACTOR_243_GV_SNS_CHAMBER_DOOR = 0x243,
ACTOR_244_GV_SNS_SARCOPHAGUS,
ACTOR_245_GV_SNS_SWITCH = 0x245, ACTOR_245_GV_SNS_SWITCH = 0x245,
@@ -1813,7 +1798,9 @@ enum actor_e
ACTOR_2A8_NABNUT = 0x2A8, ACTOR_2A8_NABNUT = 0x2A8,
ACTOR_2A9_ACORN, ACTOR_2A9_ACORN,
ACTOR_2E5_WOODEN_DOOR = 0x2e5, ACTOR_2DB_WARP_CAULDRON = 0x2DB,
ACTOR_2E5_DOOR_OF_GRUNTY = 0x2e5,
ACTOR_30D_BOOM_BOX_FAST = 0x30D, ACTOR_30D_BOOM_BOX_FAST = 0x30D,
@@ -1861,6 +1848,7 @@ enum actor_e
ACTOR_370_GOLD_FEATHER = 0x370, ACTOR_370_GOLD_FEATHER = 0x370,
ACTOR_375_GRUBLIN_HOOD = 0x375, ACTOR_375_GRUBLIN_HOOD = 0x375,
ACTOR_376_FF_MINIGAME,
ACTOR_379_UNKNOWN = 0x379, ACTOR_379_UNKNOWN = 0x379,
ACTOR_37A_BOTTLES, ACTOR_37A_BOTTLES,
@@ -2348,8 +2336,8 @@ enum asset_e
ASSET_CA_ANIM_GLOOP_SWIMMING, ASSET_CA_ANIM_GLOOP_SWIMMING,
ASSET_CB_ANIM_GLOOP_BLOWING_BUBBLE, ASSET_CB_ANIM_GLOOP_BLOWING_BUBBLE,
ASSET_CC_ANIM_BSFLY_BEAKBOMB_END, ASSET_CC_ANIM_BSFLY_BEAKBOMB_END,
ASSET_CD_ANIM_SARCOPHAGUS_OPEN,
ASSET_CE_ANIM_RUBEE_STOP_PLAYING = 0xCE, ASSET_CE_ANIM_RUBEE_STOP_PLAYING,
ASSET_CF_ANIM_HISTUP_RAISED, ASSET_CF_ANIM_HISTUP_RAISED,
ASSET_D0_ANIM_HISTUP_GROW, ASSET_D0_ANIM_HISTUP_GROW,
ASSET_D1_ANIM_HISTUP_HIDE, ASSET_D1_ANIM_HISTUP_HIDE,
@@ -2670,7 +2658,7 @@ enum asset_e
// 33a Wall Torch // 33a Wall Torch
// 33b Parasol // 33b Parasol
// 33c GV Maze Pot // 33c GV Maze Pot
// 33d GV Sarcophagus ASSET_33D_MODEL_SARCOPHAGUS = 0x33D,
// 33e GV Rock 1 (Behind Entrance?) // 33e GV Rock 1 (Behind Entrance?)
// 33f GV Rock 2 (Behind Entrance?) // 33f GV Rock 2 (Behind Entrance?)
// 340 GL Beauty Stealing Machine // 340 GL Beauty Stealing Machine
@@ -2950,7 +2938,7 @@ enum asset_e
ASSET_44D_MODEL_POLAR_BEAR_CUB_GREEN, ASSET_44D_MODEL_POLAR_BEAR_CUB_GREEN,
ASSET_44E_MODEL_POLAR_BEAR_CUB_RED, ASSET_44E_MODEL_POLAR_BEAR_CUB_RED,
// 44f (Green Mist?) // 44f (Green Mist?)
// 450 Dingpot ASSET_450_MODEL_DINGPOT = 0x450,
// 451 Gruntilda // 451 Gruntilda
// 452 Gruntilda's Arms // 452 Gruntilda's Arms
// 453 Dingpot Top // 453 Dingpot Top
@@ -3032,7 +3020,7 @@ enum asset_e
ASSET_49E_SPRITE_BEE_SWARM, ASSET_49E_SPRITE_BEE_SWARM,
// 49f 2D Glowing Bee (Beta) // 49f 2D Glowing Bee (Beta)
ASSET_4A0_SPRITE_EXPLOSION = 0x4A0, ASSET_4A0_SPRITE_EXPLOSION = 0x4A0,
// 4a1 Brick Wall Near GV Entrance ASSET_4A1_MODEL_BREAKABLE_BRICK_WALL,
// 4a2 Mumbo's Mountain Door Entrance // 4a2 Mumbo's Mountain Door Entrance
// 4a3 TTC Entrance Chest Lid // 4a3 TTC Entrance Chest Lid
// 4a4 Clanker's Entrance Long Pipe (Green) // 4a4 Clanker's Entrance Long Pipe (Green)
@@ -3061,9 +3049,8 @@ enum asset_e
// 4bb RBB Window 2 // 4bb RBB Window 2
// 4bc GV Entrance Door // 4bc GV Entrance Door
ASSET_4BD_MODEL_GLASS_EYE = 0x4BD, ASSET_4BD_MODEL_GLASS_EYE = 0x4BD,
// 4bd Gruntilda Head Eyeball
// 4be MMM Entrance Door // 4be MMM Entrance Door
// 4bf GL Yellow Floor Cobweb ASSET_4BF_MODEL_FLOOR_COBWEB = 0x4BF,
// 4c0 MMM Window // 4c0 MMM Window
// 4c1 MMM Short Window // 4c1 MMM Short Window
// 4c2 MMM Tall Window // 4c2 MMM Tall Window
@@ -3085,7 +3072,7 @@ enum asset_e
// 4d2 FP Christmas Tree Glass Container // 4d2 FP Christmas Tree Glass Container
// 4d3 FP Christmas Tree Glass Container Fragment // 4d3 FP Christmas Tree Glass Container Fragment
ASSET_4D4_MODEL_TWINKLY_BOX_PAPER_SHARD = 0x4D4, ASSET_4D4_MODEL_TWINKLY_BOX_PAPER_SHARD = 0x4D4,
// 4d5 GL Yellow Wall Cobweb ASSET_4D5_MODEL_WALL_COBWEB,
// 4d6 Click Clock Wood Entrance Door // 4d6 Click Clock Wood Entrance Door
// 4d7 Freezeezy Peak Entrance Left Door // 4d7 Freezeezy Peak Entrance Left Door
// 4d8 Freezeezy Peak Entrance Right Door // 4d8 Freezeezy Peak Entrance Right Door
@@ -3095,7 +3082,7 @@ enum asset_e
ASSET_4DC_MODEL_WITCH_SWITCH = 0x4DC, ASSET_4DC_MODEL_WITCH_SWITCH = 0x4DC,
// 4dd Mumbo Skull Switch // 4dd Mumbo Skull Switch
// 4de RBB Safety Boat 2 // 4de RBB Safety Boat 2
// 4df Cauldron (Grey) ASSET_4DF_MODEL_WARP_CAULDRON = 0x4DF,
// 4e0 CCW Season Door // 4e0 CCW Season Door
// 4e1 GL Wooden Coffin // 4e1 GL Wooden Coffin
// 4e2 RBB Skylights (Shattered Window) // 4e2 RBB Skylights (Shattered Window)
@@ -3889,6 +3876,7 @@ enum asset_e
ASSET_F64_DIALOG_NOTEDOORS_LEARN = 0xf64, ASSET_F64_DIALOG_NOTEDOORS_LEARN = 0xf64,
ASSET_F65_DIALOG_NOTEDOORS_REFRESHER, ASSET_F65_DIALOG_NOTEDOORS_REFRESHER,
ASSET_10A1_DIALOG_BRENTILDA_MEET = 0x10A1,
ASSET_146B_MODEL_TTC_TREASURE_TROVE_COVE_OPA = 0x146B, ASSET_146B_MODEL_TTC_TREASURE_TROVE_COVE_OPA = 0x146B,
ASSET_146C_MODEL_TTC_TREASURE_TROVE_COVE_XLU, ASSET_146C_MODEL_TTC_TREASURE_TROVE_COVE_XLU,
@@ -4159,8 +4147,8 @@ enum marker_e{
MARKER_A5_NIPPER, MARKER_A5_NIPPER,
MARKER_A6_GRABBA, MARKER_A6_GRABBA,
MARKER_A7_MAGIC_CARPET_1, MARKER_A7_MAGIC_CARPET_1,
MARKER_A8_GV_MAZE_SARCOPHAGUS,
MARKER_A9_RUBEE = 0xA9, MARKER_A9_RUBEE,
MARKER_AA_HISTUP, MARKER_AA_HISTUP,
MARKER_AB_RUBEES_EGG_POT, MARKER_AB_RUBEES_EGG_POT,
@@ -4232,6 +4220,8 @@ enum marker_e{
MARKER_105_TTC_WITCH_SWITCH, MARKER_105_TTC_WITCH_SWITCH,
MARKER_106_RBB_WITCH_SWITCH, MARKER_106_RBB_WITCH_SWITCH,
MARKER_109_BREAKABLE_BRICK_WALL = 0x109,
MARKER_11B_WATER_LEVEL_SWITCH_1 = 0x11B, MARKER_11B_WATER_LEVEL_SWITCH_1 = 0x11B,
MARKER_11C_WATER_LEVEL_SWITCH_2, MARKER_11C_WATER_LEVEL_SWITCH_2,
MARKER_11D_WATER_LEVEL_SWITCH_3, MARKER_11D_WATER_LEVEL_SWITCH_3,
@@ -4309,7 +4299,8 @@ enum marker_e{
MARKER_1D4_SANDYBUTT_PYRAMID = 0x1D4, MARKER_1D4_SANDYBUTT_PYRAMID = 0x1D4,
MARKER_1D5_PALM_TREE, MARKER_1D5_PALM_TREE,
MARKER_1E2_GRUBLIN_HOOD = 0x1E2, MARKER_1E1_FF_MINIGAME = 0x1E1,
MARKER_1E2_GRUBLIN_HOOD,
MARKER_1E5_GOLD_FEATHER_COLLECTIBLE = 0x1E5, MARKER_1E5_GOLD_FEATHER_COLLECTIBLE = 0x1E5,
MARKER_1E6_TOPPER_B, MARKER_1E6_TOPPER_B,
@@ -4349,16 +4340,22 @@ enum marker_e{
MARKER_219_MUMMUM, MARKER_219_MUMMUM,
MARKER_21A_SEAMAN_GRUBLIN, MARKER_21A_SEAMAN_GRUBLIN,
MARKER_224_BREAKABLE_FLOOR_COBWEB = 0x224,
MARKER_225_BREAKABLE_WALL_COBWEB,
MARKER_22A_CCW_WITCH_SWITCH = 0x22A, MARKER_22A_CCW_WITCH_SWITCH = 0x22A,
MARKER_22B_FP_WITCH_SWITCH, MARKER_22B_FP_WITCH_SWITCH,
MARKER_23A_GV_SNS_CHAMBER_DOOR = 0x23A, MARKER_231_DINGPOT = 0x231,
MARKER_23C_GV_SNS_SWITCH = 0x23C, MARKER_23A_GV_SNS_CHAMBER_DOOR = 0x23A,
MARKER_23B_GV_SNS_SARCOPHAGUS,
MARKER_23C_GV_SNS_SWITCH,
MARKER_23F_LAIR_FLIGHT_PAD_SWITCH = 0x23F, MARKER_23F_LAIR_FLIGHT_PAD_SWITCH = 0x23F,
MARKER_240_LAIR_SWITCH_FLIGHT_PAD = 0x240, MARKER_240_LAIR_SWITCH_FLIGHT_PAD = 0x240,
MARKER_244_WARP_CAULDRON = 0x244,
MARKER_245_XMAS_TREE_EGG_TOLL = 0x245, MARKER_245_XMAS_TREE_EGG_TOLL = 0x245,
MARKER_250_ICECUBE_A = 0x250, MARKER_250_ICECUBE_A = 0x250,

View File

@@ -391,7 +391,7 @@ f32 func_802B6F9C(void);
void func_802C1B20(f32); void func_802C1B20(f32);
int func_802C1DB0(f32); int func_802C1DB0(f32);
void func_802D6264(f32, enum map_e, s32, s32, s32, enum bkprog_e); void func_802D6264(f32, enum map_e, s32, s32, s32, enum file_progress_e);
Actor *func_802DC7E0(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx); Actor *func_802DC7E0(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx);
@@ -443,7 +443,7 @@ void func_8030EBC8(enum sfx_e uid, f32 arg1, f32 arg2, s32 arg3, s32 arg4);
void func_8030EC20(enum sfx_e uid, f32 arg1, f32 arg2, u32 arg3, u32 arg4); void func_8030EC20(enum sfx_e uid, f32 arg1, f32 arg2, u32 arg3, u32 arg4);
u8 func_8030ED2C(enum sfx_e uid, s32 arg1); u8 func_8030ED2C(enum sfx_e uid, s32 arg1);
void func_80320044(s32, s32, s32); void fileProgressFlag_setN(s32, s32, s32);
Actor *marker_getActorAndRotation(ActorMarker *marker, f32 rotation[3]); Actor *marker_getActorAndRotation(ActorMarker *marker, f32 rotation[3]);
Actor *func_80325934(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx); Actor *func_80325934(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx);
Actor *func_80325E78(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx); Actor *func_80325E78(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx);

View File

@@ -326,13 +326,6 @@ typedef struct struct_1C_1_s{
u8 *string; //0x4 u8 *string; //0x4
}struct1Cs_1; }struct1Cs_1;
typedef struct struct_1E_s{
void (* unk0)(void * arg0, s32 arg1, s32 arg2, s32 arg3);
void (* unk4)(void * arg0, s32 arg1, s32 arg2);
void (* unk8)(void * arg0);
}struct1Es;
typedef struct struct_21_s{ typedef struct struct_21_s{
s32 unk0; s32 unk0;
void * unk1; void * unk1;
@@ -792,14 +785,6 @@ typedef union {
Struct77s type_77; Struct77s type_77;
}Struct70s; }Struct70s;
typedef struct struct_1D_s{
BKModel *unk0;
s16 unk4;
u8 unk6;
// u8 pad7[1];
Struct70s unk8;//union of subtypes
}struct1Ds;
typedef struct { typedef struct {
u8 unk0; u8 unk0;

View File

@@ -253,7 +253,7 @@ void func_80388FC0(Actor *this){
ActorLocal_BGS_2270 *local; ActorLocal_BGS_2270 *local;
local = (ActorLocal_BGS_2270 *)&this->local; local = (ActorLocal_BGS_2270 *)&this->local;
func_80320044(0, local->unkA, 2); fileProgressFlag_setN(0, local->unkA, 2);
vector_free(local->unk4); vector_free(local->unk4);
} }
@@ -289,7 +289,7 @@ void func_80389080(Actor *this){
unqPtr->unk4 = vector_new(sizeof(Struct_BGS_2270_0s), 8); unqPtr->unk4 = vector_new(sizeof(Struct_BGS_2270_0s), 8);
unqPtr->unk8 = 0; unqPtr->unk8 = 0;
unqPtr->unk9 = 0; unqPtr->unk9 = 0;
unqPtr->unkA = func_8031FF44(0,2); unqPtr->unkA = fileProgressFlag_getN(0,2);
unqPtr->unkB = 0; unqPtr->unkB = 0;
unqPtr->unkC = 0.0f; unqPtr->unkC = 0.0f;
if(func_803203FC(2)){ if(func_803203FC(2)){

View File

@@ -4,12 +4,13 @@
void chfrogminigame_update(Actor *); void chfrogminigame_update(Actor *);
void chFrogMinigame_setState(Actor * arg0, u32 arg1); void chFrogMinigame_setState(Actor * arg0, u32 next_state);
void func_8025A58C(u32, u32); void func_8025A58C(u32, u32);
void func_80324E88(f32); void func_80324E88(f32);
ActorInfo BGS_D_80390AB0 = {MARKER_C4_YELLOW_FLIBBIT_CTRL, ACTOR_136_YELLOW_FLIBBIT_CONTROLLER, 0x00, 0x00, NULL, ActorInfo chFrogMinigame = {MARKER_C4_YELLOW_FLIBBIT_CTRL, ACTOR_136_YELLOW_FLIBBIT_CONTROLLER, 0x00,
0x00, NULL,
chfrogminigame_update, NULL, func_80325340, chfrogminigame_update, NULL, func_80325340,
0, 0, 0.0f, 0 0, 0, 0.0f, 0
}; };
@@ -45,16 +46,16 @@ void func_8038CBB4(Actor * arg0){
arg0->bgs_6730.unk4 = 0; arg0->bgs_6730.unk4 = 0;
} }
void chFrogMinigame_setState(Actor * arg0, u32 arg1){ void chFrogMinigame_setState(Actor * arg0, u32 next_state){
ActorLocal_BGS_6730 *s0; ActorLocal_BGS_6730 *s0;
s0 = &arg0->bgs_6730; s0 = &arg0->bgs_6730;
if(arg1 == 2){ if(next_state == 2){
func_8028F8F8(0x12, 1); func_8028F8F8(0x12, 1);
func_8028F8F8(0x1F, 0); func_8028F8F8(0x1F, 0);
mapSpecificFlags_set(0x10, 1); mapSpecificFlags_set(0x10, 1);
if(!func_8031FF1C(0x1B)){ if(!fileProgressFlag_get(FILEPROG_1B_MET_YELLOW_FLIBBITS)){
func_80320004(0x1B, 1); fileProgressFlag_set(FILEPROG_1B_MET_YELLOW_FLIBBITS, 1);
func_80311480(text_flibbits_meet, 0xf, arg0->position, arg0->marker, __chFrogMinigame_textCallback, 0); func_80311480(text_flibbits_meet, 0xf, arg0->position, arg0->marker, __chFrogMinigame_textCallback, 0);
}else{ }else{
if(!arg0->bgs_6730.unk8){ if(!arg0->bgs_6730.unk8){
@@ -66,7 +67,7 @@ void chFrogMinigame_setState(Actor * arg0, u32 arg1){
} }
} }
} }
if(arg1 == 3){ if(next_state == 3){
s0->unk0 = 1; s0->unk0 = 1;
if(!s0->unk4){ if(!s0->unk4){
func_8025A58C(0, 400); func_8025A58C(0, 400);
@@ -81,7 +82,7 @@ void chFrogMinigame_setState(Actor * arg0, u32 arg1){
if(arg0->state == 3){ if(arg0->state == 3){
func_8028F8F8(0x12, 0); func_8028F8F8(0x12, 0);
func_8028F8F8(0x1F, 1); func_8028F8F8(0x1F, 1);
if(arg1 == 1){ if(next_state == 1){
if(s0->unk4){ if(s0->unk4){
comusic_8025AB44(MUSIC_BGS_FLIBBIT_FIGHT, 18000, 100); comusic_8025AB44(MUSIC_BGS_FLIBBIT_FIGHT, 18000, 100);
} }
@@ -91,22 +92,22 @@ void chFrogMinigame_setState(Actor * arg0, u32 arg1){
} }
} }
if(arg1 == 4){ if(next_state == 4){
func_80311480(text_flibbits_defeat, 0xf, arg0->position, arg0->marker, __chFrogMinigame_textCallback, 0); func_80311480(text_flibbits_defeat, 0xf, arg0->position, arg0->marker, __chFrogMinigame_textCallback, 0);
} }
if(arg1 == 5){ if(next_state == 5){
func_80324E38(0.0f, 3); func_80324E38(0.0f, 3);
timed_setCameraToNode(0.0f, 0x27); timed_setCameraToNode(0.0f, 0x27);
timedFunc_set_0(0.2f, __chFrogMinigame_spawnJiggy); timedFunc_set_0(0.2f, __chFrogMinigame_spawnJiggy);
func_80324E88(3.0f); func_80324E88(3.0f);
func_80324E38(3.0f, 0); func_80324E38(3.0f, 0);
arg1 = 6; next_state = 6;
} }
if(arg1 == 6){ if(next_state == 6){
func_8028F8F8(0x12, 0); func_8028F8F8(0x12, 0);
func_8028F8F8(0x1F, 1); func_8028F8F8(0x1F, 1);
} }
arg0->state = arg1; arg0->state = next_state;
} }
void func_8038CE88(void){ void func_8038CE88(void){

View File

@@ -16,7 +16,7 @@ extern ActorInfo D_80390C88;
extern ActorInfo D_80390CC8; extern ActorInfo D_80390CC8;
extern ActorInfo D_80390D08; extern ActorInfo D_80390D08;
extern ActorInfo D_80390D48; extern ActorInfo D_80390D48;
extern ActorInfo BGS_D_80390AB0; extern ActorInfo chFrogMinigame;
extern ActorInfo BGS_D_80390AE0; extern ActorInfo BGS_D_80390AE0;
extern ActorInfo D_80390960; extern ActorInfo D_80390960;
extern ActorInfo D_80390A40; extern ActorInfo D_80390A40;
@@ -47,7 +47,7 @@ void BGS_func_8038F1E0(void){//bgs_updateSpawnableActors
spawnableActorList_add(&D_80390CC8, actor_new, 0x400042c);//tanktup_leg spawnableActorList_add(&D_80390CC8, actor_new, 0x400042c);//tanktup_leg
spawnableActorList_add(&D_80390D08, actor_new, 0x400042c);//tanktup_leg spawnableActorList_add(&D_80390D08, actor_new, 0x400042c);//tanktup_leg
spawnableActorList_add(&D_80390D48, actor_new, 0x400042c);//tanktup_leg spawnableActorList_add(&D_80390D48, actor_new, 0x400042c);//tanktup_leg
spawnableActorList_add(&BGS_D_80390AB0, actor_new, 0x81); spawnableActorList_add(&chFrogMinigame, actor_new, 0x81);
spawnableActorList_add(&BGS_D_80390AE0, actor_new, 0x20108a1); //yellow_flibbit spawnableActorList_add(&BGS_D_80390AE0, actor_new, 0x20108a1); //yellow_flibbit
spawnableActorList_add(&D_80390960, actor_new, 0); spawnableActorList_add(&D_80390960, actor_new, 0);
spawnableActorList_add(&D_80390A40, actor_new, 0x880); //yumblie spawnableActorList_add(&D_80390A40, actor_new, 0x880); //yumblie

View File

@@ -55,7 +55,7 @@ void func_80387F64(Actor *this, s32 next_state){
if (map_get() == MAP_43_CCW_SPRING) { if (map_get() == MAP_43_CCW_SPRING) {
func_8025A6EC(COMUSIC_2D_PUZZLE_SOLVED_FANFARE, 28000); func_8025A6EC(COMUSIC_2D_PUZZLE_SOLVED_FANFARE, 28000);
} }
func_80320004(local->unk0->unk8, 1); fileProgressFlag_set(local->unk0->unk8, TRUE);
func_80335924(this->unk148, local->unk0->unk4, 0.0f, 6.0f); func_80335924(this->unk148, local->unk0->unk4, 0.0f, 6.0f);
func_80335A8C(this->unk148, 2); func_80335A8C(this->unk148, 2);
if (map_get() == MAP_43_CCW_SPRING) { if (map_get() == MAP_43_CCW_SPRING) {
@@ -107,7 +107,7 @@ Actor *CCW_func_803882F4(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx) {
s32 sp18; s32 sp18;
this = marker_getActor(marker); this = marker_getActor(marker);
if ((this->state == 1) && !func_8031FF1C(0xE3)) { if ((this->state == 1) && !fileProgressFlag_get(FILEPROG_E3_CCW_FLOWER_SPRING)) {
return func_80325340(marker, gfx, mtx, vtx); return func_80325340(marker, gfx, mtx, vtx);
} }
@@ -147,16 +147,16 @@ void func_80388478(Actor *this) {
marker_setCollisionScripts(this->marker, NULL, CCW_func_80388278, func_803882A4); marker_setCollisionScripts(this->marker, NULL, CCW_func_80388278, func_803882A4);
actor_collisionOn(this); actor_collisionOn(this);
if (!jiggyscore_isSpawned(JIGGY_4D_CCW_FLOWER)) { if (!jiggyscore_isSpawned(JIGGY_4D_CCW_FLOWER)) {
func_80320004(0xE5, FALSE); fileProgressFlag_set(FILEPROG_E5_CCW_FLOWER_AUTUMN, FALSE);
} }
for(local->unk0 = &D_8038EC40[0]; local->unk0 < D_8038EC40 + 3; local->unk0++){ for(local->unk0 = &D_8038EC40[0]; local->unk0 < D_8038EC40 + 3; local->unk0++){
if(!func_8031FF1C(local->unk0->unk8)){ if(!fileProgressFlag_get(local->unk0->unk8)){
break; break;
} }
} }
if (!func_8031FF1C(0xE3) && (map_get() != MAP_43_CCW_SPRING)) { if (!fileProgressFlag_get(FILEPROG_E3_CCW_FLOWER_SPRING) && (map_get() != MAP_43_CCW_SPRING)) {
marker_despawn(this->marker); marker_despawn(this->marker);
} }
else{ else{

View File

@@ -24,7 +24,7 @@ void func_80388590(Actor *this, s32 next_state){
void func_803885F8(Actor *this){ void func_803885F8(Actor *this){
if(!this->unk16C_4){ if(!this->unk16C_4){
this->unk16C_4 = TRUE; this->unk16C_4 = TRUE;
if(func_8031FF1C(0xe5)){ if(fileProgressFlag_get(FILEPROG_E5_CCW_FLOWER_AUTUMN)){
func_80388590(this, 1); func_80388590(this, 1);
} }
else{ else{

View File

@@ -142,16 +142,16 @@ void chGobiCCW_update(Actor *this) {
local->spit_model = assetcache_get(ASSET_3F3_MODEL_GOBI_SPIT); local->spit_model = assetcache_get(ASSET_3F3_MODEL_GOBI_SPIT);
marker_setCollisionScripts(this->marker, 0, func_8038894C, 0); marker_setCollisionScripts(this->marker, 0, func_8038894C, 0);
if(!jiggyscore_isSpawned(JIGGY_4D_CCW_FLOWER)) { if(!jiggyscore_isSpawned(JIGGY_4D_CCW_FLOWER)) {
func_80320004(0xE5, 0); fileProgressFlag_set(FILEPROG_E5_CCW_FLOWER_AUTUMN, FALSE);
} }
local->unk0 = &D_8038ECD0[0]; local->unk0 = &D_8038ECD0[0];
while((local->unk0->map_id != 0) && (map_get() != local->unk0->map_id)) { while((local->unk0->map_id != 0) && (map_get() != local->unk0->map_id)) {
local->unk0++; local->unk0++;
} }
if( (map_get() == MAP_44_CCW_SUMMER) && func_8031FF1C(0xE3) && !func_8031FF1C(0xE4)) { if( (map_get() == MAP_44_CCW_SUMMER) && fileProgressFlag_get(FILEPROG_E3_CCW_FLOWER_SPRING) && !fileProgressFlag_get(FILEPROG_E4_CCW_FLOWER_SUMMER)) {
CCW_func_8038868C(this, 1); CCW_func_8038868C(this, 1);
} else if( (map_get() == MAP_45_CCW_AUTUMN) && func_8031FF1C(0xE4) && !func_8031FF1C(0xE5) ) { } else if( (map_get() == MAP_45_CCW_AUTUMN) && fileProgressFlag_get(FILEPROG_E4_CCW_FLOWER_SUMMER) && !fileProgressFlag_get(FILEPROG_E5_CCW_FLOWER_AUTUMN) ) {
CCW_func_8038868C(this, 1); CCW_func_8038868C(this, 1);
} else{ } else{
marker_despawn(this->marker); marker_despawn(this->marker);

View File

@@ -85,7 +85,7 @@ void func_80388FD4(Actor *this) {
this->initialized = TRUE; this->initialized = TRUE;
} }
if (!this->unk16C_4) { if (!this->unk16C_4) {
if (func_8031FF1C(this->unk10_12 + 0x8B)) { if (fileProgressFlag_get(this->unk10_12 + FILEPROG_8B_CCW_SPRING_OPEN)) {
actor_playAnimationOnce(this); actor_playAnimationOnce(this);
func_80328B8C(this, 4, 0.999f, 1); func_80328B8C(this, 4, 0.999f, 1);
actor_collisionOff(this); actor_collisionOff(this);
@@ -142,7 +142,7 @@ void func_80389268(Actor *this) {
this->unk1C[1] += 250.0f; this->unk1C[1] += 250.0f;
this->unk16C_4 = TRUE; this->unk16C_4 = TRUE;
if (func_8031FF1C(this->unk10_12 + 0x8B)) { if (fileProgressFlag_get(this->unk10_12 + FILEPROG_8B_CCW_SPRING_OPEN)) {
func_80328A84(this, 3); func_80328A84(this, 3);
} }
} }

View File

@@ -15,7 +15,7 @@ void func_80389440(Actor *this, s32 next_state) {
if (next_state == 2) { if (next_state == 2) {
func_8030E510(SFX_AA_BGS_EGG_BREAKING_1, 28000); func_8030E510(SFX_AA_BGS_EGG_BREAKING_1, 28000);
this->marker->propPtr->unk8_3 = FALSE; this->marker->propPtr->unk8_3 = FALSE;
func_80320004(0xE6, 1); fileProgressFlag_set(FILEPROG_E6_SPRING_EYRIE_HATCHED, TRUE);
func_80335924(this->unk148, 0x187, 0.0f, 2.0f); func_80335924(this->unk148, 0x187, 0.0f, 2.0f);
func_80335A8C(this->unk148, 2); func_80335A8C(this->unk148, 2);
func_80324E38(0.0f, 3); func_80324E38(0.0f, 3);
@@ -54,7 +54,7 @@ void func_803895F4(Actor *this) {
this->marker->propPtr->unk8_3 = TRUE; this->marker->propPtr->unk8_3 = TRUE;
marker_setCollisionScripts(this->marker, NULL, NULL, &func_8038950C); marker_setCollisionScripts(this->marker, NULL, NULL, &func_8038950C);
func_80389440(this, 1); func_80389440(this, 1);
if ((func_8031FF1C(0xE6) != 0) || jiggyscore_isSpawned(JIGGY_49_CCW_EYRIE)) { if (fileProgressFlag_get(FILEPROG_E6_SPRING_EYRIE_HATCHED) || jiggyscore_isSpawned(JIGGY_49_CCW_EYRIE)) {
marker_despawn(this->marker); marker_despawn(this->marker);
} }
return; return;

View File

@@ -90,9 +90,9 @@ Struct_CCW_3310_1 D_8038F060[] = {
}; };
Struct_CCW_3310_0 D_8038F080[] = { Struct_CCW_3310_0 D_8038F080[] = {
{MAP_43_CCW_SPRING, 0, 0xE6, 0, NULL, 3, 0, NULL, 0x18F, D_8038EFC0, 0x190, D_8038F030, 0, 0, 0, 0}, {MAP_43_CCW_SPRING, 0, FILEPROG_E6_SPRING_EYRIE_HATCHED, 0, NULL, 3, 0, NULL, 0x18F, D_8038EFC0, 0x190, D_8038F030, 0, 0, 0, 0},
{MAP_44_CCW_SUMMER, 0xE6, 0xE7, 0x191, D_8038EEA0, 2, 0x192, D_8038EF20, 0x193, D_8038EFC0, 0x194, D_8038F030, 2, 5, 0x21A, 0xCD7}, {MAP_44_CCW_SUMMER, FILEPROG_E6_SPRING_EYRIE_HATCHED, FILEPROG_E7_SUMMER_EYRIE_FED, 0x191, D_8038EEA0, 2, 0x192, D_8038EF20, 0x193, D_8038EFC0, 0x194, D_8038F030, 2, 5, 0x21A, 0xCD7},
{MAP_45_CCW_AUTUMN, 0xE7, 0xE8, 0x195, D_8038EEA0, 2, 0x196, D_8038EF20, 0x197, D_8038EFC0, 0x198, D_8038F030, 4, 0xA, 0x21B, 0xCDA}, {MAP_45_CCW_AUTUMN, FILEPROG_E7_SUMMER_EYRIE_FED, FILEPROG_E8_AUTMN_EYRIE_FED, 0x195, D_8038EEA0, 2, 0x196, D_8038EF20, 0x197, D_8038EFC0, 0x198, D_8038F030, 4, 0xA, 0x21B, 0xCDA},
0 0
}; };
@@ -131,7 +131,7 @@ void func_803897B8(Actor *this, s32 next_state) {
local->unk8 = local->unk0->unk8; local->unk8 = local->unk0->unk8;
} }
if ((this->state == 1) && (next_state == 2)) { if ((this->state == 1) && (next_state == 2)) {
func_80320004(local->unk0->unk4, TRUE); fileProgressFlag_set(local->unk0->unk4, TRUE);
} }
if (next_state == 5) { if (next_state == 5) {
func_8028F784(1); func_8028F784(1);
@@ -230,9 +230,9 @@ void CCW_func_80389BFC(Actor *this) {
local->unk0++; local->unk0++;
} }
if ((local->unk0->unk2 != 0) && !func_8031FF1C(local->unk0->unk2)) { if ((local->unk0->unk2 != 0) && !fileProgressFlag_get(local->unk0->unk2)) {
marker_despawn(this->marker); marker_despawn(this->marker);
} else if (!func_8031FF1C(local->unk0->unk4)) { } else if (!fileProgressFlag_get(local->unk0->unk4)) {
func_803897B8(this, 1); func_803897B8(this, 1);
} else { } else {
func_803897B8(this, 4); func_803897B8(this, 4);
@@ -285,7 +285,7 @@ void CCW_func_80389BFC(Actor *this) {
} }
} }
} }
if (func_8031FF1C(local->unk0->unk4)) { if (fileProgressFlag_get(local->unk0->unk4)) {
func_803897B8(this, local->unk0->unkC); func_803897B8(this, local->unk0->unkC);
} }
} }

View File

@@ -98,8 +98,8 @@ void chcaterpillar_update(Actor *this){
} }
else{//L8038A408 else{//L8038A408
map_id = map_get(); map_id = map_get();
if ( !func_8031FF1C(BKPROG_E6_SPRING_EYRIE_HATCHED) if ( !fileProgressFlag_get(FILEPROG_E6_SPRING_EYRIE_HATCHED)
|| ( map_id == MAP_45_CCW_AUTUMN && !func_8031FF1C(BKPROG_E7_SUMMER_EYRIE_FED)) || ( map_id == MAP_45_CCW_AUTUMN && !fileProgressFlag_get(FILEPROG_E7_SUMMER_EYRIE_FED))
) { ) {
chcaterpillar_setState(this, 5); chcaterpillar_setState(this, 5);
} else { } else {

View File

@@ -79,7 +79,7 @@ void func_8038AA8C(Actor *this) {
if (!this->unk16C_4) { if (!this->unk16C_4) {
this->unk16C_4 = TRUE; this->unk16C_4 = TRUE;
mapSpecificFlags_set(5, FALSE); mapSpecificFlags_set(5, FALSE);
if( (!func_8031FF1C(0xE8) || jiggyscore_isSpawned(JIGGY_49_CCW_EYRIE)) if( (!fileProgressFlag_get(FILEPROG_E8_AUTMN_EYRIE_FED) || jiggyscore_isSpawned(JIGGY_49_CCW_EYRIE))
&& !func_803203FC(UNKFLAGS1_1F_IN_CHARACTER_PARADE) && !func_803203FC(UNKFLAGS1_1F_IN_CHARACTER_PARADE)
) { ) {
marker_despawn(this->marker); marker_despawn(this->marker);

View File

@@ -334,9 +334,9 @@ void func_8038C9A0(Actor *this){
this->position_y += 3.0f; this->position_y += 3.0f;
if(this->unk1C[1] <= this->position_y){ if(this->unk1C[1] <= this->position_y){
this->position_y = this->unk1C[1]; this->position_y = this->unk1C[1];
if(!func_8031FF1C(0x82)){ if(!fileProgressFlag_get(FILEPROG_82_MET_TWINKLIES)){
func_80311480(0xc12, 0x2a, this->position, this->marker, func_8038C94C, NULL); func_80311480(0xc12, 0x2a, this->position, this->marker, func_8038C94C, NULL);
func_80320004(0x82, TRUE); fileProgressFlag_set(FILEPROG_82_MET_TWINKLIES, TRUE);
} }
else{ else{
func_80311480(0xc25, 0x2b, this->position, this->marker, func_8038C94C, NULL); func_80311480(0xc25, 0x2b, this->position, this->marker, func_8038C94C, NULL);

View File

@@ -26,7 +26,7 @@ ActorInfo D_803920E8 = { 0x204, 0x336, 0x442,
/* .code */ /* .code */
Actor *FP_func_8038CED0(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx){ Actor *FP_func_8038CED0(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx){
Actor *this = marker_getActor(marker); Actor *this = marker_getActor(marker);
if( func_8038BFA0() || func_8031FF1C(BKPROG_13) ){ if( func_8038BFA0() || fileProgressFlag_get(FILEPROG_13) ){
if(0.0f == this->velocity[1]) if(0.0f == this->velocity[1])
return this; return this;
} }
@@ -240,7 +240,7 @@ void func_8038D51C(ActorMarker *marker){
Actor *this = marker_getActor(marker); Actor *this = marker_getActor(marker);
item_set(ITEM_6_HOURGLASS, FALSE); item_set(ITEM_6_HOURGLASS, FALSE);
func_80320004(BKPROG_13, TRUE); fileProgressFlag_set(FILEPROG_13, TRUE);
FUNC_8030E624(SFX_416, 0.8f, 32000); FUNC_8030E624(SFX_416, 0.8f, 32000);
func_8028F8F8(7, 0); func_8028F8F8(7, 0);
this->unk1C[1] = 1.0f; this->unk1C[1] = 1.0f;
@@ -281,7 +281,7 @@ void func_8038D6C8(Actor *this){
sp24 = time_getDelta(); sp24 = time_getDelta();
mapSpecificFlags_set(0xd, (this->state != 1 && this->state != 2) ? TRUE : FALSE); mapSpecificFlags_set(0xd, (this->state != 1 && this->state != 2) ? TRUE : FALSE);
if(func_8038BFA0() || func_8031FF1C(BKPROG_13)){ if(func_8038BFA0() || fileProgressFlag_get(FILEPROG_13)){
this->marker->propPtr->unk8_3 = FALSE; this->marker->propPtr->unk8_3 = FALSE;
actor_collisionOff(this); actor_collisionOff(this);
func_8028F8F8(7, FALSE); func_8028F8F8(7, FALSE);

View File

@@ -124,7 +124,7 @@ void func_8038E094(Actor *this){
if(this->unk100){ if(this->unk100){
sp38 = marker_getActor(this->unk100); sp38 = marker_getActor(this->unk100);
if(sp38->unk1C[1] == 1.0f){ if(sp38->unk1C[1] == 1.0f){
if(this->unkF4_8 == 1 && !func_8031FF1C(BKPROG_13)){ if(this->unkF4_8 == 1 && !fileProgressFlag_get(FILEPROG_13)){
if(this->state != 6 && this->state != 7 && 0.0f == this->velocity[0]){ if(this->state != 6 && this->state != 7 && 0.0f == this->velocity[0]){
timed_setCameraToNode(0.5f, 0xd); timed_setCameraToNode(0.5f, 0xd);
func_80311480(ASSET_C15_TEXT_TWINKLIE_MINIGAME_LOST, 0x2b, this->position, this->marker, func_8038E040, NULL); func_80311480(ASSET_C15_TEXT_TWINKLIE_MINIGAME_LOST, 0x2b, this->position, this->marker, func_8038E040, NULL);

View File

@@ -18,7 +18,7 @@ ActorInfo chXmasTree = {
Actor *chXmasTree_draw(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx){ Actor *chXmasTree_draw(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx){
Actor *this = marker_getActor(marker); Actor *this = marker_getActor(marker);
func_8033A45C(5, this->unk38_31); func_8033A45C(5, this->unk38_31);
func_8033A45C(6, func_8031FF1C(0x13) && !func_8033A0F0(5)); func_8033A45C(6, fileProgressFlag_get(0x13) && !func_8033A0F0(5));
return func_80325888(marker, gfx, mtx, vtx); return func_80325888(marker, gfx, mtx, vtx);
} }
@@ -100,7 +100,7 @@ void chXmasTree_update(Actor *this){
} }
__spawnQueue_add_0(__chXmasTree_spawnSwitch); __spawnQueue_add_0(__chXmasTree_spawnSwitch);
__spawnQueue_add_1((GenMethod_1)__chXmasTree_spawnStar, reinterpret_cast(s32, this->marker)); __spawnQueue_add_1((GenMethod_1)__chXmasTree_spawnStar, reinterpret_cast(s32, this->marker));
if(func_8031FF1C(0x13)){ if(fileProgressFlag_get(0x13)){
__chXmasTree_80386F84(this); __chXmasTree_80386F84(this);
mapSpecificFlags_set(2, FALSE); mapSpecificFlags_set(2, FALSE);
} }
@@ -115,7 +115,7 @@ void chXmasTree_update(Actor *this){
switch(this->state){ switch(this->state){
case 1: // L80387268 case 1: // L80387268
__chXmasTree_80386EF4(this, 0); __chXmasTree_80386EF4(this, 0);
if(func_8031FF1C(0x13)){ if(fileProgressFlag_get(0x13)){
__chXmasTree_80386F84(this); __chXmasTree_80386F84(this);
} }
break; break;

View File

@@ -88,7 +88,7 @@ void func_8038E940(Actor *this){
switch(this->state){ switch(this->state){
case 1: //L8038EA98 case 1: //L8038EA98
if(func_8031FF1C(BKPROG_13) && !mapSpecificFlags_get(2)) if(fileProgressFlag_get(FILEPROG_13) && !mapSpecificFlags_get(2))
func_8038E774(this); func_8038E774(this);
break; break;
case 2: //L8038EAC8 case 2: //L8038EAC8

View File

@@ -59,7 +59,7 @@ void chBuriedPyramid_update(Actor *this){
if(!this->unk16C_4){ if(!this->unk16C_4){
this->unk16C_4 = TRUE; this->unk16C_4 = TRUE;
this->marker->propPtr->unk8_3 = TRUE; this->marker->propPtr->unk8_3 = TRUE;
local->raised_state = func_8031FF44(BKPROG_F8_KING_SANDYBUTT_PYRAMID_STATE, 2); local->raised_state = fileProgressFlag_getN(FILEPROG_F8_KING_SANDYBUTT_PYRAMID_STATE, 2);
this->position_x = 67.0f; this->position_x = 67.0f;
this->position_y = (local->raised_state/3.0)*1050.0 + 1375.0; this->position_y = (local->raised_state/3.0)*1050.0 + 1375.0;
this->position_z = 400.0f; this->position_z = 400.0f;

View File

@@ -5,30 +5,31 @@
extern void func_802EE6CC(f32[3], s32[4], s32[4], s32, f32, f32, s32, s32, s32); extern void func_802EE6CC(f32[3], s32[4], s32[4], s32, f32, f32, s32, s32, s32);
void func_80389634(Actor *this); void chSarcophagus_update(Actor *this);
void func_803898B8(Actor *this); void chSarcophagus_updateSNS(Actor *this);
/* .data */ /* .data */
ActorAnimationInfo GV_D_80390E00[] = { ActorAnimationInfo chSarcophagusAnimations[] = {
{0x00, 0.0f}, {0x00, 0.0f},
{0xCD, 8000000.0f}, {ASSET_CD_ANIM_SARCOPHAGUS_OPEN, 8000000.0f},
{0xCD, 2.5f}, {ASSET_CD_ANIM_SARCOPHAGUS_OPEN, 2.5f},
{0xCD, 8000000.0f}, {ASSET_CD_ANIM_SARCOPHAGUS_OPEN, 8000000.0f},
{0xCD, 1.6f}, {ASSET_CD_ANIM_SARCOPHAGUS_OPEN, 1.6f},
{0xCD, 4.5f}, {ASSET_CD_ANIM_SARCOPHAGUS_OPEN, 4.5f},
}; };
ActorInfo GV_D_80390E30 = { 0xA8, 0x11A, 0x33D, ActorInfo chSarcophagus = { MARKER_A8_GV_MAZE_SARCOPHAGUS, ACTOR_11A_GV_MAZE_SARCOPHAGUS, ASSET_33D_MODEL_SARCOPHAGUS,
0x1, GV_D_80390E00, 0x1, chSarcophagusAnimations,
func_80389634, func_80326224, func_80325888, chSarcophagus_update, func_80326224, func_80325888,
2500, 0, 0.0f, 0 2500, 0, 0.0f, 0
}; };
ActorInfo D_80390E54 = { 0x23B, 0x244, 0x33D, ActorInfo chSNSSarcophagus = { MARKER_23B_GV_SNS_SARCOPHAGUS, ACTOR_244_GV_SNS_SARCOPHAGUS, ASSET_33D_MODEL_SARCOPHAGUS,
0x1, GV_D_80390E00, 0x1, chSarcophagusAnimations,
func_803898B8, func_80326224, func_80325888, chSarcophagus_updateSNS, func_80326224, func_80325888,
0, 0, 0.0f, 0 0, 0, 0.0f, 0
}; };
s32 D_80390E78[4] = {0xff, 0xd0, 0x5d, 0xb4}; s32 D_80390E78[4] = {0xff, 0xd0, 0x5d, 0xb4};
s32 D_80390E88[4] = {0, 0, 0, 0}; s32 D_80390E88[4] = {0, 0, 0, 0};
@@ -62,7 +63,7 @@ int func_8038957C(Actor *this){
return 0; return 0;
} }
void func_80389634(Actor *this){ void chSarcophagus_update(Actor *this){
int i; int i;
switch(this->state){ switch(this->state){
@@ -92,7 +93,7 @@ void func_80389634(Actor *this){
break; break;
case 3: //L80389788 case 3: //L80389788
if(!func_80329530(this, 0x2bc)){ if(!func_80329530(this, 700)){
func_80328B8C(this, 4, 0.5f, 1); func_80328B8C(this, 4, 0.5f, 1);
FUNC_8030E8B4(SFX_6B_LOCKUP_OPENING, 1.0f, 32000, this->position, 1250, 2500); FUNC_8030E8B4(SFX_6B_LOCKUP_OPENING, 1.0f, 32000, this->position, 1250, 2500);
FUNC_8030E8B4(SFX_3F6_UNKNOWN, 1.0f, 32000, this->position, 1250, 2500); FUNC_8030E8B4(SFX_3F6_UNKNOWN, 1.0f, 32000, this->position, 1250, 2500);
@@ -118,10 +119,10 @@ void func_80389634(Actor *this){
}//L803898A8 }//L803898A8
} }
void func_803898B8(Actor *this){ void chSarcophagus_updateSNS(Actor *this){
if(!this->initialized){ if(!this->initialized){
GV_func_803894B0(this); GV_func_803894B0(this);
if(func_8031FF1C(BKPROG_A4_UNKOWN)) if(fileProgressFlag_get(FILEPROG_A4_GV_SNS_SARCOPHAGUS_OPEN))
func_80328B8C(this, 3, 0.5f, 1); func_80328B8C(this, 3, 0.5f, 1);
this->unk1C[0] = 0.0f; this->unk1C[0] = 0.0f;
} }
@@ -137,7 +138,7 @@ void func_803898B8(Actor *this){
} }
} }
else{//L803899C0 else{//L803899C0
if(func_8031FF1C(BKPROG_A3_UNKOWN)){ if(fileProgressFlag_get(FILEPROG_A3_GV_SNS_SWITCH_PRESSED)){
this->unk1C[0] = 33.0f; this->unk1C[0] = 33.0f;
} }
} }

View File

@@ -50,13 +50,13 @@ void func_8038C760(Actor *this, s32 arg1){
timed_setCameraToNode(0.0f, 8); timed_setCameraToNode(0.0f, 8);
if(arg1 < 3){ if(arg1 < 3){
timed_setCameraToNode(3.5f, arg1 + 0x15); timed_setCameraToNode(3.5f, arg1 + 0x15);
timedFunc_set_3(3.5f, (GenMethod_3)func_80320044, BKPROG_F8_KING_SANDYBUTT_PYRAMID_STATE, arg1, 2); timedFunc_set_3(3.5f, (GenMethod_3)fileProgressFlag_setN, FILEPROG_F8_KING_SANDYBUTT_PYRAMID_STATE, arg1, 2);
func_80324E88(6.5f); func_80324E88(6.5f);
func_80324E38(6.5f, 0); func_80324E38(6.5f, 0);
} }
else{ else{
timedFunc_set_2(3.5f, (GenMethod_2)func_8025A6EC, COMUSIC_2D_PUZZLE_SOLVED_FANFARE, 0x7fff); timedFunc_set_2(3.5f, (GenMethod_2)func_8025A6EC, COMUSIC_2D_PUZZLE_SOLVED_FANFARE, 0x7fff);
timedFunc_set_3(3.5f, (GenMethod_3)func_80320044, BKPROG_F8_KING_SANDYBUTT_PYRAMID_STATE, arg1, 2); timedFunc_set_3(3.5f, (GenMethod_3)fileProgressFlag_setN, FILEPROG_F8_KING_SANDYBUTT_PYRAMID_STATE, arg1, 2);
func_80324E88(6.0f); func_80324E88(6.0f);
func_80324E38(6.0f, 0); func_80324E38(6.0f, 0);
} }
@@ -158,7 +158,7 @@ void func_8038CC98(Actor *this){
f32 sp48[3]; f32 sp48[3];
if(!this->unk16C_4){ if(!this->unk16C_4){
sp7C = func_8031FF44(BKPROG_F8_KING_SANDYBUTT_PYRAMID_STATE, 2); sp7C = fileProgressFlag_getN(FILEPROG_F8_KING_SANDYBUTT_PYRAMID_STATE, 2);
this->unk16C_4 = TRUE; this->unk16C_4 = TRUE;
this->marker->unk30 = func_8038C880; this->marker->unk30 = func_8038C880;
local->unk8 = &D_803911F0[this->modelCacheIndex - 0x285]; local->unk8 = &D_803911F0[this->modelCacheIndex - 0x285];
@@ -185,7 +185,7 @@ void func_8038CC98(Actor *this){
} }
if(this->state == 1){ if(this->state == 1){
if(func_8031FF44(BKPROG_F8_KING_SANDYBUTT_PYRAMID_STATE, 2) == *local->unk8){ if(fileProgressFlag_getN(FILEPROG_F8_KING_SANDYBUTT_PYRAMID_STATE, 2) == *local->unk8){
func_8038C8A0(this, 2); func_8038C8A0(this, 2);
} }
} }

View File

@@ -28,7 +28,7 @@ void func_8038D3AC(Actor *this){
this->unk16C_4 = TRUE; this->unk16C_4 = TRUE;
marker_setCollisionScripts(this->marker, func_8038D370, NULL, NULL); marker_setCollisionScripts(this->marker, func_8038D370, NULL, NULL);
D_80391AA0 = 0; D_80391AA0 = 0;
if(func_8031FF44(BKPROG_F8_KING_SANDYBUTT_PYRAMID_STATE, 2) == 3){ if(fileProgressFlag_getN(FILEPROG_F8_KING_SANDYBUTT_PYRAMID_STATE, 2) == 3){
marker_despawn(this->marker); marker_despawn(this->marker);
} }
} }

View File

@@ -20,8 +20,8 @@ extern ActorInfo chGobi2;
extern ActorInfo chGobi3; extern ActorInfo chGobi3;
extern ActorInfo chTrunker; extern ActorInfo chTrunker;
extern ActorInfo GV_D_80390DD0; extern ActorInfo GV_D_80390DD0;
extern ActorInfo GV_D_80390E30; extern ActorInfo chSarcophagus;
extern ActorInfo D_80390E54; extern ActorInfo chSNSSarcophagus;
extern ActorInfo D_80390ED0; extern ActorInfo D_80390ED0;
extern ActorInfo D_80390F00; extern ActorInfo D_80390F00;
extern ActorInfo D_80390FD0; extern ActorInfo D_80390FD0;
@@ -301,7 +301,7 @@ void func_8038E97C(Actor *this){
}//L8038EA6C }//L8038EA6C
if(this->position_y == this->unk1C[0] + -300.0f){ if(this->position_y == this->unk1C[0] + -300.0f){
if(func_8031FF44(BKPROG_F8_KING_SANDYBUTT_PYRAMID_STATE, 2) == 3){ if(fileProgressFlag_getN(FILEPROG_F8_KING_SANDYBUTT_PYRAMID_STATE, 2) == 3){
this->position_y = this->unk1C[0]; this->position_y = this->unk1C[0];
} }
} }
@@ -476,8 +476,8 @@ void GV_func_8038F154(void)
spawnableActorList_add(&chGobi3, actor_new, 0X9A8); spawnableActorList_add(&chGobi3, actor_new, 0X9A8);
spawnableActorList_add(&chTrunker, actor_new, 0XD80); spawnableActorList_add(&chTrunker, actor_new, 0XD80);
spawnableActorList_add(&GV_D_80390DD0, actor_new, 0X4004); spawnableActorList_add(&GV_D_80390DD0, actor_new, 0X4004);
spawnableActorList_add(&GV_D_80390E30, actor_new, 0X448); spawnableActorList_add(&chSarcophagus, actor_new, 0X448);
spawnableActorList_add(&D_80390E54, actor_new, 0X48); spawnableActorList_add(&chSNSSarcophagus, actor_new, 0X48);
spawnableActorList_add(&D_80390ED0, actor_new, 0X180); spawnableActorList_add(&D_80390ED0, actor_new, 0X180);
spawnableActorList_add(&D_80390F00, actor_new, 0X80); spawnableActorList_add(&D_80390F00, actor_new, 0X80);
spawnableActorList_add(&D_80390FD0, actor_new, 0X4048); spawnableActorList_add(&D_80390FD0, actor_new, 0X4048);

View File

@@ -35,23 +35,23 @@ void __chLoggo_textCallback(ActorMarker* caller, enum asset_e text_id, s32 arg3)
void __chLoggo_collide(ActorMarker* this_marker, ActorMarker *other_marker) { void __chLoggo_collide(ActorMarker* this_marker, ActorMarker *other_marker) {
Actor *this = marker_getActor(this_marker); Actor *this = marker_getActor(this_marker);
if ((player_getTransformation() == TRANSFORM_3_PUMPKIN) && !func_8031FF1C(BKPROG_89_ENTERED_LOGGO_AS_PUMPKIN)) { if ((player_getTransformation() == TRANSFORM_3_PUMPKIN) && !fileProgressFlag_get(FILEPROG_89_ENTERED_LOGGO_AS_PUMPKIN)) {
if (func_80311480(ASSET_ADF_TEXT_ENTER_LOGGO, 0x2B, this->position, this->marker, &__chLoggo_textCallback, 0) != 0) { if (func_80311480(ASSET_ADF_TEXT_ENTER_LOGGO, 0x2B, this->position, this->marker, &__chLoggo_textCallback, 0) != 0) {
actor_collisionOff(this); actor_collisionOff(this);
func_80320004(BKPROG_89_ENTERED_LOGGO_AS_PUMPKIN, TRUE); fileProgressFlag_set(FILEPROG_89_ENTERED_LOGGO_AS_PUMPKIN, TRUE);
} }
return; return;
} }
if ((player_getTransformation() == TRANSFORM_3_PUMPKIN) && func_8031FF1C(BKPROG_89_ENTERED_LOGGO_AS_PUMPKIN)) { if ((player_getTransformation() == TRANSFORM_3_PUMPKIN) && fileProgressFlag_get(FILEPROG_89_ENTERED_LOGGO_AS_PUMPKIN)) {
actor_collisionOff(this); actor_collisionOff(this);
__chLoggo_flush(this_marker); __chLoggo_flush(this_marker);
return; return;
} }
if ((player_getTransformation() == TRANSFORM_1_BANJO) && !func_8031FF1C(BKPROG_88_TRIED_LOGGO_AS_BEAR)){ if ((player_getTransformation() == TRANSFORM_1_BANJO) && !fileProgressFlag_get(FILEPROG_88_TRIED_LOGGO_AS_BEAR)){
if(func_80311480(ASSET_ADE_TEXT_LOGGO_AS_BEAR, 0x2A, this->position, NULL, NULL, NULL)) { if(func_80311480(ASSET_ADE_TEXT_LOGGO_AS_BEAR, 0x2A, this->position, NULL, NULL, NULL)) {
func_80320004(BKPROG_88_TRIED_LOGGO_AS_BEAR, TRUE); fileProgressFlag_set(FILEPROG_88_TRIED_LOGGO_AS_BEAR, TRUE);
} }
} }
} }
@@ -70,9 +70,9 @@ void chLoggo_update(Actor *this){
func_80328B8C(this, 1, 0.01f, 1); func_80328B8C(this, 1, 0.01f, 1);
actor_loopAnimation(this); actor_loopAnimation(this);
this->unk60 = 0.0f; this->unk60 = 0.0f;
if(!func_8031FF1C(BKPROG_8A_EXITED_LOGGO) && levelSpecificFlags_get(0x33)){ if(!fileProgressFlag_get(FILEPROG_8A_EXITED_LOGGO) && levelSpecificFlags_get(0x33)){
if(func_80311480(ASSET_AE0_TEXT_EXIT_LOGGO, 4, NULL, NULL, NULL, NULL)){ if(func_80311480(ASSET_AE0_TEXT_EXIT_LOGGO, 4, NULL, NULL, NULL, NULL)){
func_80320004(BKPROG_8A_EXITED_LOGGO, TRUE); fileProgressFlag_set(FILEPROG_8A_EXITED_LOGGO, TRUE);
} }
} }
} }

View File

@@ -41,7 +41,7 @@ void MMM_func_803871FC(Actor *this){
func_803255FC(this); func_803255FC(this);
} }
void mm_resetFlowerPots() { void mmm_resetFlowerPots() {
func_803871D4(5); func_803871D4(5);
} }

View File

@@ -236,7 +236,7 @@ void func_803892C8(ActorMarker *marker, enum asset_e text_id, s32 arg2){
void func_80389494(Actor * this, s32* arg1, s32 *arg2){ void func_80389494(Actor * this, s32* arg1, s32 *arg2){
if(ability_isUnlocked(D_8038AFB4[this->unkF4_8 -1].unk5)){ if(ability_isUnlocked(D_8038AFB4[this->unkF4_8 -1].unk5)){
if(func_8031FF1C(0xDB)){ if(fileProgressFlag_get(FILEPROG_DB_SKIPPED_TUTORIAL)){
*arg1 = D_8038AFE4 + 0xE0A; //dialog index *arg1 = D_8038AFE4 + 0xE0A; //dialog index
D_8038AFE4++; D_8038AFE4++;
D_8038AFE4 = MIN(D_8038AFE4, 5); D_8038AFE4 = MIN(D_8038AFE4, 5);
@@ -267,7 +267,7 @@ void SM_func_80389610(Actor * this){
case 1://L8038965C case 1://L8038965C
if(mapSpecificFlags_get(1)){ if(mapSpecificFlags_get(1)){
sp28 |= 1; sp28 |= 1;
if(func_8031FF1C(0xDB)){ if(fileProgressFlag_get(FILEPROG_DB_SKIPPED_TUTORIAL)){
sp2C = D_8038AFE4 + 0xE0A; //dialog index sp2C = D_8038AFE4 + 0xE0A; //dialog index
D_8038AFE4++; D_8038AFE4++;
D_8038AFE4 = MIN(D_8038AFE4, 5); D_8038AFE4 = MIN(D_8038AFE4, 5);
@@ -282,7 +282,7 @@ void SM_func_80389610(Actor * this){
break; break;
case 8://L80389720 case 8://L80389720
if(mapSpecificFlags_get(3)){ if(mapSpecificFlags_get(3)){
if(func_8031FF1C(BKPROG_A6_FURNACE_FUN_COMPLETE)){ if(fileProgressFlag_get(FILEPROG_A6_FURNACE_FUN_COMPLETE)){
sp2C = 0xe37; sp2C = 0xe37;
sp28 |= 1; sp28 |= 1;
}else{//L80389758 }else{//L80389758
@@ -291,7 +291,7 @@ void SM_func_80389610(Actor * this){
sp28 |= 1; sp28 |= 1;
}else{//L80389780 }else{//L80389780
func_80388E48(); func_80388E48();
sp2C = func_8031FF1C(0xdb) ? 0xe1e : 0xe13; sp2C = fileProgressFlag_get(FILEPROG_DB_SKIPPED_TUTORIAL) ? 0xe1e : 0xe13;
mapSpecificFlags_set(0xf, 1); mapSpecificFlags_set(0xf, 1);
} }
} //L803897B4 } //L803897B4
@@ -445,10 +445,10 @@ void func_803899B0(Actor * this){
sp34 = !((!(D_8038AFB4[this->unkF4_8-1].unk5 + 1)) || (!ability_isUnlocked( D_8038AFB4[this->unkF4_8-1].unk5))); sp34 = !((!(D_8038AFB4[this->unkF4_8-1].unk5 + 1)) || (!ability_isUnlocked( D_8038AFB4[this->unkF4_8-1].unk5)));
if( (!sp34 && this->unkF4_8 != 1) if( (!sp34 && this->unkF4_8 != 1)
|| func_8031FF1C(0xDB) == 0 || fileProgressFlag_get(FILEPROG_DB_SKIPPED_TUTORIAL) == 0
|| D_8038AFE4 < 6 || D_8038AFE4 < 6
){ ){
if(this->unkF4_8 != 8 || !func_8031FF1C(0xFC)){ if(this->unkF4_8 != 8 || !fileProgressFlag_get(FILEPROG_FC_DEFEAT_GRUNTY)){
if( func_8028EFC8() if( func_8028EFC8()
&& sp50[FACE_BUTTON(BUTTON_B)] == 1 && sp50[FACE_BUTTON(BUTTON_B)] == 1
){ ){
@@ -535,7 +535,7 @@ void func_803899B0(Actor * this){
}//L8038A218 }//L8038A218
if( sp38 != -1){ //button was pressed if( sp38 != -1){ //button was pressed
func_80320004(0xdb, (sp38)?0:1); fileProgressFlag_set(FILEPROG_DB_SKIPPED_TUTORIAL, (sp38)?0:1);
func_80311480((sp38)? 0xe07 : 0xe09, 0xe, this->position, this->marker, func_803892C8, func_80389214); func_80311480((sp38)? 0xe07 : 0xe09, 0xe, this->position, this->marker, func_803892C8, func_80389214);
if(!sp38){ if(!sp38){
func_80388EB0(); //give all SM moves func_80388EB0(); //give all SM moves

View File

@@ -81,7 +81,7 @@ void SM_func_8038A5D8(Actor *this){
switch (this->state) switch (this->state)
{ {
case 1://L8038A688 case 1://L8038A688
if(func_8031FF1C(0xdb)){ if(fileProgressFlag_get(FILEPROG_DB_SKIPPED_TUTORIAL)){
marker_despawn(this->marker); marker_despawn(this->marker);
}else{ }else{
if(mapSpecificFlags_get(0xe)){ if(mapSpecificFlags_get(0xe)){

View File

@@ -52,7 +52,7 @@ void func_803869A0(Actor *this, f32 arg1, f32 arg2) {
void SM_func_80386A00(Actor *this) { void SM_func_80386A00(Actor *this) {
if (this->unk16C_4 <= 0) { if (this->unk16C_4 <= 0) {
if (func_8031FF1C(BKPROG_FC_DEFEAT_GRUNTY) == 0) { if (fileProgressFlag_get(FILEPROG_FC_DEFEAT_GRUNTY) == 0) {
marker_despawn(this->marker); marker_despawn(this->marker);
return; return;
} }

View File

@@ -40,7 +40,7 @@ void chLeaky_update(Actor *this) {
this->unk16C_4 = TRUE; this->unk16C_4 = TRUE;
this->marker->propPtr->unk8_3 = FALSE; this->marker->propPtr->unk8_3 = FALSE;
if (levelSpecificFlags_get(5) != 0) { if (levelSpecificFlags_get(5) != 0) {
levelSpecificFlags_set(5, 0); levelSpecificFlags_set(5, FALSE);
timedFunc_set_1(0.5f, (GenMethod_1)func_8025A70C, COMUSIC_2D_PUZZLE_SOLVED_FANFARE); timedFunc_set_1(0.5f, (GenMethod_1)func_8025A70C, COMUSIC_2D_PUZZLE_SOLVED_FANFARE);
} }
if (levelSpecificFlags_get(2) != 0) { if (levelSpecificFlags_get(2) != 0) {

View File

@@ -5,7 +5,7 @@
#include "SnS.h" #include "SnS.h"
/* extern */ /* extern */
extern void func_802D6310(f32, enum map_e, s32, s32, enum bkprog_e); extern void func_802D6310(f32, enum map_e, s32, s32, enum file_progress_e);
extern BKModel *mapModel_getModel(s32); extern BKModel *mapModel_getModel(s32);
extern u8 D_8037DCC0[7]; extern u8 D_8037DCC0[7];
@@ -39,7 +39,7 @@ typedef struct {
s16 unk2; s16 unk2;
}Struct_TTC_3E30_2; }Struct_TTC_3E30_2;
s32 func_8038B778(void); s32 __sandcastleCodes_getNumberEntered(void);
/* .data */ /* .data */
s32 D_8038C980 = 0; s32 D_8038C980 = 0;
@@ -234,9 +234,9 @@ void func_8038AB44(void){
D_8038C980 = func_8038B600(); D_8038C980 = func_8038B600();
} }
u32 func_8038AB68(s32 arg0){ u32 func_8038AB68(s32 cheato_code_index){
if(func_8031FF1C(0xAC + arg0)){ if(fileProgressFlag_get(FILEPROG_AD_CHEATO_BLUEEGGS_UNLOCKED + cheato_code_index - 1)){
return 1 << arg0; return 1 << cheato_code_index;
} }
return 0; return 0;
} }
@@ -319,11 +319,11 @@ void func_8038AC48(Struct_TTC_3E30_1 *arg0) {
D_8038D720.unk8 = 2U; D_8038D720.unk8 = 2U;
D_8038D720.unkC = 0.0f; D_8038D720.unkC = 0.0f;
mapSpecificFlags_set(1, TRUE); mapSpecificFlags_set(1, TRUE);
func_80320004(0xFA, TRUE); fileProgressFlag_set(0xFA, TRUE);
func_8030E2C4(D_8038D720.unk9); func_8030E2C4(D_8038D720.unk9);
func_8038A258(2); func_8038A258(2);
} else if (var_v0 & 0xE) { } else if (var_v0 & 0xE) {
func_8035644C((i_ptr - D_8038CA6C) + 0xBD); func_8035644C((i_ptr - D_8038CA6C) - 1 + FILEPROG_BE_CHEATO_BLUEEGGS);
switch ((i_ptr - D_8038CA6C) - 1) { /* irregular */ switch ((i_ptr - D_8038CA6C) - 1) { /* irregular */
default: default:
break; break;
@@ -455,7 +455,7 @@ void func_8038B2F0(void) {
Struct_TTC_3E30_1 *temp_v0_3; Struct_TTC_3E30_1 *temp_v0_3;
sp24 = time_getDelta(); sp24 = time_getDelta();
if (func_8038B778() == 3) { if (__sandcastleCodes_getNumberEntered() == 3) {
func_802C5A3C(-1); func_802C5A3C(-1);
} }
if (D_8038D720.unk0 != 0) { if (D_8038D720.unk0 != 0) {
@@ -612,23 +612,23 @@ u32 func_8038B600(void) {
return var_a3; return var_a3;
} }
void TTC_func_8038B6D4(s32 arg0, s32 arg1, s32 arg2, enum bkprog_e prog_id, s32 prog_val, s32 prog_bit_size, enum bkprog_e arg6){ void TTC_func_8038B6D4(s32 arg0, s32 arg1, s32 arg2, enum file_progress_e prog_id, s32 prog_val, s32 prog_bit_size, enum file_progress_e arg6){
if( ((arg2 + 20 == D_8038CAD8[arg1].unk5) && func_803203FC(arg2)) if( ((arg2 + 20 == D_8038CAD8[arg1].unk5) && func_803203FC(arg2))
|| arg0 == 3 || arg0 == 3
){ ){
func_80320044(prog_id, prog_val, prog_bit_size); fileProgressFlag_setN(prog_id, prog_val, prog_bit_size);
if(arg6){ if(arg6){
func_80320004(arg6, TRUE); fileProgressFlag_set(arg6, TRUE);
} }
} }
} }
void func_8038B750(s32 arg0){ void __sandcastleCodes_setNumberEntered(s32 arg0){
func_80320044(0xfd, arg0, 2); fileProgressFlag_setN(FILEPROG_FD_CHEATCODES_ENTERED, arg0, 2);
} }
s32 func_8038B778(void){ s32 __sandcastleCodes_getNumberEntered(void){
return func_8031FF44(0xFD, 2); return fileProgressFlag_getN(FILEPROG_FD_CHEATCODES_ENTERED, 2);
} }
void func_8038B79C(s32 arg0, s32 arg1, s32 arg2, enum item_e item_id, s32 item_diff, s32 item_val) { void func_8038B79C(s32 arg0, s32 arg1, s32 arg2, enum item_e item_id, s32 item_diff, s32 item_val) {
@@ -660,30 +660,30 @@ void func_8038B800(s32 arg0) {
func_803204E4(0x65, 1); func_803204E4(0x65, 1);
func_803204E4(sp38, 1); func_803204E4(sp38, 1);
} }
TTC_func_8038B6D4(0, arg0, 0x6C, 0x60, 5, 3, 0x33); TTC_func_8038B6D4(0, arg0, 0x6C, FILEPROG_60_CC_PUZZLE_PIECES_PLACED, 5, 3, FILEPROG_33_CC_OPEN);
TTC_func_8038B6D4(0, arg0, 0x6D, 0x63, 7, 3, 0x34); TTC_func_8038B6D4(0, arg0, 0x6D, FILEPROG_63_BGS_PUZZLE_PIECES_PLACED, 7, 3, FILEPROG_34_BGS_OPEN);
TTC_func_8038B6D4(0, arg0, 0x6E, 0x66, 8, 4, 0x35); TTC_func_8038B6D4(0, arg0, 0x6E, FILEPROG_66_FP_PUZZLE_PIECES_PLACED, 8, 4, FILEPROG_35_FP_OPEN);
TTC_func_8038B6D4(0, arg0, 0x6F, 0x6A, 9, 4, 0x36); TTC_func_8038B6D4(0, arg0, 0x6F, FILEPROG_6A_GV_PUZZLE_PIECES_PLACED, 9, 4, FILEPROG_36_GV_OPEN);
TTC_func_8038B6D4(0, arg0, 0x70, 0x6E, 0xA, 4, 0x37); TTC_func_8038B6D4(0, arg0, 0x70, FILEPROG_6E_MMM_PUZZLE_PIECES_PLACED, 10, 4, FILEPROG_37_MMM_OPEN);
TTC_func_8038B6D4(0, arg0, 0x71, 0x72, 0xC, 4, 0x38); TTC_func_8038B6D4(0, arg0, 0x71, FILEPROG_72_RBB_PUZZLE_PIECES_PLACED, 0xC, 4, FILEPROG_38_RBB_OPEN);
TTC_func_8038B6D4(0, arg0, 0x72, 0x76, 0xF, 4, 0x39); TTC_func_8038B6D4(0, arg0, 0x72, FILEPROG_76_CCW_PUZZLE_PIECES_PLACED, 0xF, 4, FILEPROG_39_CCW_OPEN);
func_8038B79C(0, arg0, 0x94, ITEM_15_HEALTH_TOTAL, 0, 8); func_8038B79C(0, arg0, 0x94, ITEM_15_HEALTH_TOTAL, 0, 8);
func_8038B79C(0, arg0, 0x77, ITEM_14_HEALTH, 0, item_getCount(ITEM_15_HEALTH_TOTAL)); func_8038B79C(0, arg0, 0x77, ITEM_14_HEALTH, 0, item_getCount(ITEM_15_HEALTH_TOTAL));
func_8038B79C(0, arg0, 0x95, ITEM_1C_MUMBO_TOKEN, 0, 99); func_8038B79C(0, arg0, 0x95, ITEM_1C_MUMBO_TOKEN, 0, 99);
if (sp38 == 0x81) { if (sp38 == 0x81) {
func_80320004(0x53, 1); fileProgressFlag_set(FILEPROG_53_CCW_PUZZLE_PODIUM_SWITCH_PRESSED, 1);
func_80320004(0x54, 1); fileProgressFlag_set(FILEPROG_54_CCW_PUZZLE_PODIUM_ACTIVE, 1);
} }
func_8038B5B4(); func_8038B5B4();
} }
void func_8038BB10(ActorMarker *caller, enum asset_e text_id, s32 arg2) { void __sandcastleCodes_eraseGameDialogCallback(ActorMarker *caller, enum asset_e text_id, s32 confirmed) {
if (arg2 == 1) { if (confirmed == 1) {
func_8038B750(3); __sandcastleCodes_setNumberEntered(3);
func_8038B800(D_8038CAD4); func_8038B800(D_8038CAD4);
func_80311480(0xFBF, 0xC, NULL, NULL, NULL, NULL); func_80311480(0xFBF, 0xC, NULL, NULL, NULL, NULL);
func_8033D0FC(func_802C5A30()); gameFile_clear(func_802C5A30());
func_8033CFD4(func_802C5A30()); gameFile_8033CFD4(func_802C5A30());
func_802C5A3C(-1); func_802C5A3C(-1);
return; return;
} }
@@ -700,21 +700,21 @@ void TTC_func_8038BBA0(s32 arg0) {
} }
for( i = 0; D_8038CC7C[i].unk0 != 0; i++){ for( i = 0; D_8038CC7C[i].unk0 != 0; i++){
if ((D_8038CAD8[arg0].unk5 >= D_8038CC7C[i].unk0) && (D_8038CC7C[i].unk2 >= D_8038CAD8[arg0].unk5)) { if ((D_8038CAD8[arg0].unk5 >= D_8038CC7C[i].unk0) && (D_8038CC7C[i].unk2 >= D_8038CAD8[arg0].unk5)) {
switch (func_8038B778()) { switch (__sandcastleCodes_getNumberEntered()) {
case 0: case 0:
func_8038B750(1); __sandcastleCodes_setNumberEntered(1);
func_8038B800(arg0); func_8038B800(arg0);
func_8038B5B4(); func_8038B5B4();
return; return;
case 1: case 1:
func_8038B750(2); __sandcastleCodes_setNumberEntered(2);
func_8038B800(arg0); func_8038B800(arg0);
func_8038B5B4(); func_8038B5B4();
func_80311480(0xFBE, 0xC, NULL, NULL, NULL, NULL); func_80311480(0xFBE, 0xC, NULL, NULL, NULL, NULL);
return; return;
case 2: case 2:
D_8038CAD4 = arg0; D_8038CAD4 = arg0;
func_80311480(0xE38, 0xC, NULL, NULL, func_8038BB10, NULL); func_80311480(0xE38, 0xC, NULL, NULL, __sandcastleCodes_eraseGameDialogCallback, NULL);
return; return;
} }
return; return;
@@ -733,7 +733,7 @@ bool func_8038BD10(Struct_TTC_3E30_1 *arg0) {
s32 var_s2; s32 var_s2;
s32 var_v1; s32 var_v1;
if ((D_8038CC78 == 2) || (func_8038B778() == 3)) { if ((D_8038CC78 == 2) || (__sandcastleCodes_getNumberEntered() == 3)) {
return 0; return 0;
} }
if (D_8038CC78 == 0) { if (D_8038CC78 == 0) {

View File

@@ -5,10 +5,10 @@
#define ROUND_UP_DIVIDE(a, b) (((a) + (b) - 1) / (b)) #define ROUND_UP_DIVIDE(a, b) (((a) + (b) - 1) / (b))
// The round up divide is not technically needed, but will come in handy for modding // The round up divide is not technically needed, but will come in handy for modding
#define SAVEFILE_NUM_BLOCKS ROUND_UP_DIVIDE(sizeof(SaveFile),EEPROM_BLOCK_SIZE) #define gameFile_NUM_BLOCKS ROUND_UP_DIVIDE(sizeof(SaveFile),EEPROM_BLOCK_SIZE)
s32 write_file_blocks(s32 filenum, s32 blockOffset, u8 *buffer, s32 blockCount) { s32 write_file_blocks(s32 filenum, s32 blockOffset, u8 *buffer, s32 blockCount) {
s32 address = (filenum * SAVEFILE_NUM_BLOCKS) + blockOffset; s32 address = (filenum * gameFile_NUM_BLOCKS) + blockOffset;
s32 ret; s32 ret;
func_8024F35C(3); func_8024F35C(3);
@@ -18,7 +18,7 @@ s32 write_file_blocks(s32 filenum, s32 blockOffset, u8 *buffer, s32 blockCount)
} }
s32 load_file_blocks(s32 filenum, s32 blockOffset, u8 *buffer, s32 blockCount) { s32 load_file_blocks(s32 filenum, s32 blockOffset, u8 *buffer, s32 blockCount) {
s32 address = (filenum * SAVEFILE_NUM_BLOCKS) + blockOffset; s32 address = (filenum * gameFile_NUM_BLOCKS) + blockOffset;
s32 ret; s32 ret;
func_8024F35C(3); func_8024F35C(3);

View File

@@ -49,7 +49,7 @@ void sns_update_global_save_data_checksum(void)
* Running this multiple times seems to achieve nothing. * Running this multiple times seems to achieve nothing.
* A debug leftover? * A debug leftover?
*/ */
for (i = 5; i != 0 && func_8033CD0C(&gSaveData); i--) for (i = 5; i != 0 && savedata_8033CE40(&gSaveData); i--)
; ;
} }
@@ -62,7 +62,7 @@ void sns_save_and_update_global_data(void)
* and validates the checksum. * and validates the checksum.
*/ */
if (func_8033CA9C(&gSaveData)) if (savedata_8033CA9C(&gSaveData))
{ {
/** /**
* Failed, hide the evidence. * Failed, hide the evidence.

View File

@@ -178,7 +178,7 @@ void __baMarker_resolveMusicNoteCollision(Prop *arg0) {
} }
if (item_getCount(ITEM_C_NOTE) < 100) { if (item_getCount(ITEM_C_NOTE) < 100) {
func_8025A6EC(COMUSIC_9_NOTE_COLLECTED, 16000); func_8025A6EC(COMUSIC_9_NOTE_COLLECTED, 16000);
timedFunc_set_1(0.75f, func_8035644C, 3); timedFunc_set_1(0.75f, func_8035644C, FILEPROG_3_MUSIC_NOTE_TEXT);
} }
fxSparkle_musicNote(arg0->unk4); fxSparkle_musicNote(arg0->unk4);
} }
@@ -212,8 +212,8 @@ void __baMarker_8028BB1C(s32 arg0, u32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 a
} }
} }
else{//L8028BBB8 else{//L8028BBB8
if(!func_8031FF1C(arg1)){ if(!fileProgressFlag_get(arg1)){
func_80320004(arg1, 1); fileProgressFlag_set(arg1, 1);
func_8030E6D4(SFX_90_SWITCH_PRESS); func_8030E6D4(SFX_90_SWITCH_PRESS);
func_803204E4(0xBF, 1); func_803204E4(0xBF, 1);
func_802D6264(1.0f, arg2, arg3, arg4, arg5, arg6); func_802D6264(1.0f, arg2, arg3, arg4, arg5, arg6);
@@ -389,7 +389,7 @@ void __baMarker_resolveCollision(Prop *other_prop){
if(func_802458E0(spAC, actor, 0x87) == 0) if(func_802458E0(spAC, actor, 0x87) == 0)
return; return;
func_803204E4(0x1E, 1); func_803204E4(0x1E, 1);
if(func_8031FF1C(((actor->unkF4_8 - 1) ^ 1) + 0x49)){ if(fileProgressFlag_get(((actor->unkF4_8 - 1) ^ 1) + 0x49)){
actor->unk10_12 = 2; actor->unk10_12 = 2;
} }
else{ else{
@@ -559,7 +559,7 @@ void __baMarker_resolveCollision(Prop *other_prop){
{ {
honeycombscore_set(sp98, 1); honeycombscore_set(sp98, 1);
func_8025A6EC(COMUSIC_17_EMPTY_HONEYCOMB_COLLECTED, 28000); func_8025A6EC(COMUSIC_17_EMPTY_HONEYCOMB_COLLECTED, 28000);
timedFunc_set_1(2.0f, func_8035644C, 0xB); timedFunc_set_1(2.0f, func_8035644C, FILEPROG_B_EMPTY_HONEYCOMB_TEXT);
item_inc(ITEM_13_EMPTY_HONEYCOMB); item_inc(ITEM_13_EMPTY_HONEYCOMB);
if(!(item_getCount(ITEM_13_EMPTY_HONEYCOMB) < 6)){ if(!(item_getCount(ITEM_13_EMPTY_HONEYCOMB) < 6)){
gcpausemenu_80314AC8(0); gcpausemenu_80314AC8(0);
@@ -583,14 +583,14 @@ void __baMarker_resolveCollision(Prop *other_prop){
if( map_get() == MAP_8E_GL_FURNACE_FUN if( map_get() == MAP_8E_GL_FURNACE_FUN
&& func_803203FC(0) && func_803203FC(0)
&& !func_8031FF1C(BKPROG_A6_FURNACE_FUN_COMPLETE) && !fileProgressFlag_get(FILEPROG_A6_FURNACE_FUN_COMPLETE)
){ ){
func_80356540(BKPROG_A6_FURNACE_FUN_COMPLETE); func_80356540(FILEPROG_A6_FURNACE_FUN_COMPLETE);
func_8030E6D4(SFX_126_AUDIENCE_BOOING); func_8030E6D4(SFX_126_AUDIENCE_BOOING);
} }
func_8025A6EC(COMUSIC_16_HONEYCOMB_COLLECTED, 28000); func_8025A6EC(COMUSIC_16_HONEYCOMB_COLLECTED, 28000);
timedFunc_set_1(0.75f, func_8035644C, 0xA); timedFunc_set_1(0.75f, func_8035644C, FILEPROG_A_HONEYCOMB_TEXT);
item_inc(ITEM_14_HEALTH); item_inc(ITEM_14_HEALTH);
fxSparkle_honeycomb(&other_prop->actorProp.x); fxSparkle_honeycomb(&other_prop->actorProp.x);
marker_despawn(marker); marker_despawn(marker);
@@ -695,13 +695,13 @@ void __baMarker_resolveCollision(Prop *other_prop){
return; return;
if( map_get() == MAP_8E_GL_FURNACE_FUN if( map_get() == MAP_8E_GL_FURNACE_FUN
&& func_803203FC(0) && func_803203FC(0)
&& !func_8031FF1C(BKPROG_A6_FURNACE_FUN_COMPLETE) && !fileProgressFlag_get(FILEPROG_A6_FURNACE_FUN_COMPLETE)
){ ){
func_80356540(BKPROG_A7_NEAR_PUZZLE_PODIUM_TEXT); func_80356540(FILEPROG_A7_NEAR_PUZZLE_PODIUM_TEXT);
func_8030E6D4(SFX_127_AUDIENCE_MIXED); func_8030E6D4(SFX_127_AUDIENCE_MIXED);
} }
func_8025A6EC(COMUSIC_15_EXTRA_LIFE_COLLECTED, 0x7FFF); func_8025A6EC(COMUSIC_15_EXTRA_LIFE_COLLECTED, 0x7FFF);
timedFunc_set_1(1.5f, func_8035646C, 0xC); timedFunc_set_1(1.5f, func_8035646C, FILEPROG_C_EXTRA_LIFE_TEXT);
fxSparkle_extraLife(&other_prop->actorProp.x); fxSparkle_extraLife(&other_prop->actorProp.x);
item_inc(ITEM_16_LIFE); item_inc(ITEM_16_LIFE);
marker_despawn(marker); marker_despawn(marker);

View File

@@ -68,7 +68,7 @@ bool func_802A73BC(void) {
void func_802A744C(void) { void func_802A744C(void) {
if (player_isInRBB() && bs_getState() != BS_4C_LANDING_IN_WATER) { if (player_isInRBB() && bs_getState() != BS_4C_LANDING_IN_WATER) {
func_8035644C(0xAC); func_8035644C(FILEPROG_AC_DIVE_OILY_WATER);
} }
roll_setAngularVelocity(30.0f, 0.9f); roll_setAngularVelocity(30.0f, 0.9f);
gravity_set(0.0f); gravity_set(0.0f);

View File

@@ -108,7 +108,7 @@ void bsjig_jiggy_end(void){
} }
baMarker_collisionOn(); baMarker_collisionOn();
if( jiggyscore_total() == 100 if( jiggyscore_total() == 100
&& func_8031FF1C(BKPROG_FC_DEFEAT_GRUNTY) && fileProgressFlag_get(FILEPROG_FC_DEFEAT_GRUNTY)
&& bs_getNextState() != BS_34_JIG_NOTEDOOR && bs_getNextState() != BS_34_JIG_NOTEDOOR
){ ){
func_8028F918(2); func_8028F918(2);
@@ -151,7 +151,7 @@ void bsjig_notedoor_end(void){
func_80291548(); func_80291548();
if( D_8037D4B2 if( D_8037D4B2
&& jiggyscore_total() == 100 && jiggyscore_total() == 100
&& func_8031FF1C(BKPROG_FC_DEFEAT_GRUNTY) && fileProgressFlag_get(FILEPROG_FC_DEFEAT_GRUNTY)
){ ){
func_8028F918(2); func_8028F918(2);
func_802E4078(MAP_95_CS_END_ALL_100, 0, 1); func_802E4078(MAP_95_CS_END_ALL_100, 0, 1);

View File

@@ -74,9 +74,9 @@ void func_802B55DC(void) {
void func_802B563C(void) { void func_802B563C(void) {
if (level_get() == LEVEL_9_RUSTY_BUCKET_BAY) { if (level_get() == LEVEL_9_RUSTY_BUCKET_BAY) {
func_8035644C(0xAB); func_8035644C(FILEPROG_AB_SWIM_OILY_WATER);
} else if (map_get() == MAP_46_CCW_WINTER) { } else if (map_get() == MAP_46_CCW_WINTER) {
func_8035644C(0xDD); func_8035644C(FILEPROG_DD_HAS_TOUCHED_ICY_WATER);
} }
gravity_set(100.0f); gravity_set(100.0f);
func_80297BF8(133.33f); func_80297BF8(133.33f);

View File

@@ -118,27 +118,27 @@ void func_802B6FA8(void){
} }
void bswalk_creep_init(void){ void bswalk_creep_init(void){
AnimCtrl * s0 = baanim_getAnimCtrlPtr(); AnimCtrl * anim_ctrl = baanim_getAnimCtrlPtr();
f32 sp20; f32 start_position;
if(bs_getPrevState() == BS_2_WALK_SLOW){ if(bs_getPrevState() == BS_2_WALK_SLOW){
sp20 = anim_getTimer(animctrl_getAnimPtr(s0)); start_position = anim_getTimer(animctrl_getAnimPtr(anim_ctrl));
}else{ }else{
sp20 = 0.0f; start_position = 0.0f;
} }
animctrl_reset(s0); animctrl_reset(anim_ctrl);
animctrl_setIndex(s0, ASSET_2_ANIM_BSWALK_CREEP); animctrl_setIndex(anim_ctrl, ASSET_2_ANIM_BSWALK_CREEP);
animctrl_setDuration(s0, 0.43f); animctrl_setDuration(anim_ctrl, 0.43f);
animctrl_setStart(s0, sp20); animctrl_setStart(anim_ctrl, start_position);
animctrl_setPlaybackType(s0, ANIMCTRL_LOOP); animctrl_setPlaybackType(anim_ctrl, ANIMCTRL_LOOP);
animctrl_start(s0, "bswalk.c", 0xe4); animctrl_start(anim_ctrl, "bswalk.c", 0xe4);
func_8029C7F4(BAANIM_UPDATE_2_SCALE_HORZ,1,1,2); func_8029C7F4(BAANIM_UPDATE_2_SCALE_HORZ,1,1,2);
baanim_setDurationRange(0.3f, 1.5f); baanim_setDurationRange(0.3f, 1.5f);
baanim_setVelocityMapRanges(bsWalkMinCreepVelocity, bsWalkCreepSlowWalkVelocityThreshold, bsWalkSlowestCreepDuration, bsWalkFastestCreepDuration); baanim_setVelocityMapRanges(bsWalkMinCreepVelocity, bsWalkCreepSlowWalkVelocityThreshold, bsWalkSlowestCreepDuration, bsWalkFastestCreepDuration);
} }
void bswalk_creep_update(void){ void bswalk_creep_update(void){
s32 s0 = 0; s32 next_state = 0;
func_802B6E44(); func_802B6E44();
if(func_8029B2E8() == 0.0f){ if(func_8029B2E8() == 0.0f){
yaw_setIdeal(yaw_get()); yaw_setIdeal(yaw_get());
@@ -150,68 +150,68 @@ void bswalk_creep_update(void){
switch(func_8029B300()){ switch(func_8029B300()){
case 0://L802B7160 case 0://L802B7160
if(func_80297C04(1.0f)) if(func_80297C04(1.0f))
s0 = BS_1_IDLE; next_state = BS_1_IDLE;
break; break;
case 2://L802B7180 case 2://L802B7180
s0 = BS_2_WALK_SLOW; next_state = BS_2_WALK_SLOW;
break; break;
case 3://L802B7188 case 3://L802B7188
s0 = BS_WALK; next_state = BS_WALK;
break; break;
case 4: case 4:
s0 = BS_4_WALK_FAST; next_state = BS_4_WALK_FAST;
break; break;
}//L802B7194 }//L802B7194
if(func_8028B128()) if(func_8028B128())
s0 = BS_WALK_MUD; next_state = BS_WALK_MUD;
if(func_80294F78()) if(func_80294F78())
s0 = func_802926C0(); next_state = func_802926C0();
if(func_8028B094()) if(func_8028B094())
s0 = BS_2F_FALL; next_state = BS_2F_FALL;
if(button_held(BUTTON_Z)) if(button_held(BUTTON_Z))
s0 = BS_CROUCH; next_state = BS_CROUCH;
s0 = func_802B6F20(s0); next_state = func_802B6F20(next_state);
if(button_pressed(BUTTON_A)) if(button_pressed(BUTTON_A))
s0 = func_8029C780(); next_state = func_8029C780();
if(player_isSliding()) if(player_isSliding())
s0 = BS_SLIDE; next_state = BS_SLIDE;
s0 = func_8029CA94(s0); next_state = func_8029CA94(next_state);
if(player_inWater()) if(player_inWater())
s0 = BS_2D_SWIM_IDLE; next_state = BS_2D_SWIM_IDLE;
bs_setState(s0); bs_setState(next_state);
} }
void bswalk_slow_init(void){ void bswalk_slow_init(void){
AnimCtrl * s0 = baanim_getAnimCtrlPtr(); AnimCtrl * anim_ctrl = baanim_getAnimCtrlPtr();
f32 sp20; f32 start_position;
if(bs_getPrevState() == 3){ if(bs_getPrevState() == 3){
sp20 = anim_getTimer(animctrl_getAnimPtr(s0)); start_position = anim_getTimer(animctrl_getAnimPtr(anim_ctrl));
}else{ }else{
sp20 = 0.0f; start_position = 0.0f;
} }
animctrl_reset(s0); animctrl_reset(anim_ctrl);
animctrl_setIndex(s0, ASSET_3_ANIM_BSWALK); animctrl_setIndex(anim_ctrl, ASSET_3_ANIM_BSWALK);
animctrl_setDuration(s0, 0.43f); animctrl_setDuration(anim_ctrl, 0.43f);
animctrl_setStart(s0, sp20); animctrl_setStart(anim_ctrl, start_position);
animctrl_setPlaybackType(s0, ANIMCTRL_LOOP); animctrl_setPlaybackType(anim_ctrl, ANIMCTRL_LOOP);
animctrl_start(s0, "bswalk.c", 0x168); animctrl_start(anim_ctrl, "bswalk.c", 0x168);
func_8029C7F4(BAANIM_UPDATE_2_SCALE_HORZ,1,1,2); func_8029C7F4(BAANIM_UPDATE_2_SCALE_HORZ,1,1,2);
baanim_setDurationRange(0.3f, 1.5f); baanim_setDurationRange(0.3f, 1.5f);
baanim_setVelocityMapRanges(bsWalkCreepSlowWalkVelocityThreshold, bsWalkSlowWalkWalkVelocityThreshold, bsWalkSlowestSlowWalkDuration, bsWalkFastestSlowWalkDuration); baanim_setVelocityMapRanges(bsWalkCreepSlowWalkVelocityThreshold, bsWalkSlowWalkWalkVelocityThreshold, bsWalkSlowestSlowWalkDuration, bsWalkFastestSlowWalkDuration);
} }
void bswalk_slow_upate(void){ void bswalk_slow_upate(void){
s32 s0 = 0; s32 next_state = 0;
func_802B6E44(); func_802B6E44();
if(func_8029B2E8() == 0.0f){ if(func_8029B2E8() == 0.0f){
yaw_setIdeal(yaw_get()); yaw_setIdeal(yaw_get());
@@ -223,66 +223,66 @@ void bswalk_slow_upate(void){
switch(func_8029B300()){ switch(func_8029B300()){
case 0://L802B7160 case 0://L802B7160
if(func_80297C04(3.0f)) if(func_80297C04(3.0f))
s0 = BS_1_IDLE; next_state = BS_1_IDLE;
break; break;
case 1://L802B7180 case 1://L802B7180
s0 = BS_WALK_CREEP; next_state = BS_WALK_CREEP;
break; break;
case 3://L802B7188 case 3://L802B7188
s0 = BS_WALK; next_state = BS_WALK;
break; break;
case 4: case 4:
s0 = BS_4_WALK_FAST; next_state = BS_4_WALK_FAST;
break; break;
}//L802B7194 }//L802B7194
if(func_8028B128()) if(func_8028B128())
s0 = BS_WALK_MUD; next_state = BS_WALK_MUD;
if(func_80294F78()) if(func_80294F78())
s0 = func_802926C0(); next_state = func_802926C0();
if(func_8028B094()) if(func_8028B094())
s0 = BS_2F_FALL; next_state = BS_2F_FALL;
if(button_held(BUTTON_Z)) if(button_held(BUTTON_Z))
s0 = BS_CROUCH; next_state = BS_CROUCH;
s0 = func_802B6F20(s0); next_state = func_802B6F20(next_state);
if(button_pressed(BUTTON_A)) if(button_pressed(BUTTON_A))
s0 = func_8029C780(); next_state = func_8029C780();
if(player_isSliding()) if(player_isSliding())
s0 = BS_SLIDE; next_state = BS_SLIDE;
s0 = func_8029CA94(s0); next_state = func_8029CA94(next_state);
if(player_inWater()) if(player_inWater())
s0 = BS_2D_SWIM_IDLE; next_state = BS_2D_SWIM_IDLE;
bs_setState(s0); bs_setState(next_state);
} }
void bswalk_init(void){ void bswalk_init(void){
AnimCtrl * s0 = baanim_getAnimCtrlPtr(); AnimCtrl * anim_ctrl = baanim_getAnimCtrlPtr();
f32 sp20 = 0.0f; f32 start_position = 0.0f;
switch(bs_getPrevState()){ switch(bs_getPrevState()){
default: default:
sp20 = 0.0f; start_position = 0.0f;
break; break;
case 2: case 2://slowwalk
case 4: case 4://fastwalk
sp20 = anim_getTimer(animctrl_getAnimPtr(s0)); start_position = anim_getTimer(animctrl_getAnimPtr(anim_ctrl));
break; break;
} }
animctrl_reset(s0); animctrl_reset(anim_ctrl);
animctrl_setIndex(s0, ASSET_C_ANIM_BSWALK_RUN); animctrl_setIndex(anim_ctrl, ASSET_C_ANIM_BSWALK_RUN);
animctrl_setDuration(s0, 0.66f); animctrl_setDuration(anim_ctrl, 0.66f);
animctrl_setTransitionDuration(s0, 0.14f); animctrl_setTransitionDuration(anim_ctrl, 0.14f);
animctrl_setStart(s0, sp20); animctrl_setStart(anim_ctrl, start_position);
animctrl_setPlaybackType(s0, ANIMCTRL_LOOP); animctrl_setPlaybackType(anim_ctrl, ANIMCTRL_LOOP);
animctrl_start(s0, "bswalk.c", 0x1ed); animctrl_start(anim_ctrl, "bswalk.c", 0x1ed);
func_8029C7F4(BAANIM_UPDATE_2_SCALE_HORZ,1,1,2); func_8029C7F4(BAANIM_UPDATE_2_SCALE_HORZ,1,1,2);
baanim_setDurationRange(0.3f, 1.5f); baanim_setDurationRange(0.3f, 1.5f);
baanim_setVelocityMapRanges(bsWalkSlowWalkWalkVelocityThreshold, bsWalkWalkFastWalkVelocityThreshold, bsWalkSlowestWalkDuration, bsWalkFastestWalkDuration); baanim_setVelocityMapRanges(bsWalkSlowWalkWalkVelocityThreshold, bsWalkWalkFastWalkVelocityThreshold, bsWalkSlowestWalkDuration, bsWalkFastestWalkDuration);
@@ -290,7 +290,7 @@ void bswalk_init(void){
} }
void bswalk_update(void){ void bswalk_update(void){
s32 s0 = 0; s32 next_state = 0;
func_802B6E44(); func_802B6E44();
func_8029AD28(0.4f, 4); func_8029AD28(0.4f, 4);
func_8029AD28(0.9f, 3); func_8029AD28(0.9f, 3);
@@ -301,46 +301,46 @@ void bswalk_update(void){
case 1: case 1:
case 2: case 2:
if(func_80297C04(bsWalkSlowWalkWalkVelocityThreshold) && func_802B6EF4()) if(func_80297C04(bsWalkSlowWalkWalkVelocityThreshold) && func_802B6EF4())
s0 = BS_2_WALK_SLOW; next_state = BS_2_WALK_SLOW;
break; break;
case 4: case 4:
s0 = BS_4_WALK_FAST; next_state = BS_4_WALK_FAST;
break; break;
}//L802B76B8 }//L802B76B8
if(func_8028B128()) if(func_8028B128())
s0 = BS_WALK_MUD; next_state = BS_WALK_MUD;
if(func_8028B4C4() && bsWalkSkidVelocity < _get_horzVelocity()){ if(func_8028B4C4() && bsWalkSkidVelocity < _get_horzVelocity()){
s0 = BS_SKID; next_state = BS_SKID;
} }
if(func_80294F78()) if(func_80294F78())
s0 = func_802926C0(); next_state = func_802926C0();
if(func_8028B094()) if(func_8028B094())
s0 = BS_2F_FALL; next_state = BS_2F_FALL;
if(button_held(BUTTON_Z)) if(button_held(BUTTON_Z))
s0 = BS_CROUCH; next_state = BS_CROUCH;
s0 = func_802B6F20(s0); next_state = func_802B6F20(next_state);
if(button_pressed(BUTTON_A)) if(button_pressed(BUTTON_A))
s0 = func_8029C780(); next_state = func_8029C780();
if(player_isSliding()) if(player_isSliding())
s0 = BS_SLIDE; next_state = BS_SLIDE;
s0 = func_8029CA94(s0); next_state = func_8029CA94(next_state);
if(player_inWater()) if(player_inWater())
s0 = BS_2D_SWIM_IDLE; next_state = BS_2D_SWIM_IDLE;
bs_setState(s0); bs_setState(next_state);
} }
void bswalk_fast_init(void){ void bswalk_fast_init(void){
AnimCtrl * s0 = baanim_getAnimCtrlPtr(); AnimCtrl * anim_ctrl = baanim_getAnimCtrlPtr();
f32 sp28 = 0.0f; f32 sp28 = 0.0f;
int sp24 = 1; int sp24 = 1;
@@ -355,18 +355,18 @@ void bswalk_fast_init(void){
sp24 = 0; sp24 = 0;
break; break;
case 3: case 3:
sp28 = anim_getTimer(animctrl_getAnimPtr(s0)); sp28 = anim_getTimer(animctrl_getAnimPtr(anim_ctrl));
break; break;
} }
animctrl_reset(s0); animctrl_reset(anim_ctrl);
animctrl_setSmoothTransition(s0, sp24); animctrl_setSmoothTransition(anim_ctrl, sp24);
animctrl_setIndex(s0, ASSET_C_ANIM_BSWALK_RUN); animctrl_setIndex(anim_ctrl, ASSET_C_ANIM_BSWALK_RUN);
animctrl_setDuration(s0, 0.66f); animctrl_setDuration(anim_ctrl, 0.66f);
animctrl_setTransitionDuration(s0, 0.1f); animctrl_setTransitionDuration(anim_ctrl, 0.1f);
animctrl_setStart(s0, sp28); animctrl_setStart(anim_ctrl, sp28);
animctrl_setPlaybackType(s0, ANIMCTRL_LOOP); animctrl_setPlaybackType(anim_ctrl, ANIMCTRL_LOOP);
animctrl_start(s0, "bswalk.c", 0x27d); animctrl_start(anim_ctrl, "bswalk.c", 0x27d);
func_8029C7F4(BAANIM_UPDATE_2_SCALE_HORZ,1,1,2); func_8029C7F4(BAANIM_UPDATE_2_SCALE_HORZ,1,1,2);
baanim_setDurationRange(0.3f, 1.5f); baanim_setDurationRange(0.3f, 1.5f);
baanim_setVelocityMapRanges(bsWalkWalkFastWalkVelocityThreshold, bsWalkMaxFastWalkVelocity, bsWalkSlowestFastWalkDuration, bsWalkFastestFastWalkDuration); baanim_setVelocityMapRanges(bsWalkWalkFastWalkVelocityThreshold, bsWalkMaxFastWalkVelocity, bsWalkSlowestFastWalkDuration, bsWalkFastestFastWalkDuration);
@@ -377,7 +377,7 @@ void bswalk_fast_init(void){
} }
void bswalk_fast_update(void){ void bswalk_fast_update(void){
s32 s0 = 0; s32 next_state = 0;
func_802B6E44(); func_802B6E44();
func_80299594(0, 0.5f); func_80299594(0, 0.5f);
func_8029AD28(0.4f, 4); func_8029AD28(0.4f, 4);
@@ -387,56 +387,56 @@ void bswalk_fast_update(void){
switch(func_8029B300()){ switch(func_8029B300()){
case 0://L802B79EC case 0://L802B79EC
if(func_80297C04(18.0f)) if(func_80297C04(18.0f))
s0 = BS_1_IDLE; next_state = BS_1_IDLE;
if(func_80294F78()) if(func_80294F78())
s0 = func_802926C0(); next_state = func_802926C0();
break; break;
case 1: case 1:
case 2://L802B7A28 case 2://L802B7A28
if(func_80297C04(bsWalkSlowWalkWalkVelocityThreshold)) if(func_80297C04(bsWalkSlowWalkWalkVelocityThreshold))
s0 = BS_2_WALK_SLOW; next_state = BS_2_WALK_SLOW;
if(func_80294F78()) if(func_80294F78())
s0 = func_802926C0(); next_state = func_802926C0();
break; break;
case 3://L802B7A60 case 3://L802B7A60
if(func_80297C04(bsWalkWalkFastWalkVelocityThreshold) && func_802B6EF4()) if(func_80297C04(bsWalkWalkFastWalkVelocityThreshold) && func_802B6EF4())
s0 = BS_WALK; next_state = BS_WALK;
if(func_80294F78()) if(func_80294F78())
s0 = func_802926C0(); next_state = func_802926C0();
break; break;
}//L802B7AA4 }//L802B7AA4
if(func_8028B128()) if(func_8028B128())
s0 = BS_WALK_MUD; next_state = BS_WALK_MUD;
if(func_8028B4C4() && bsWalkSkidVelocity < _get_horzVelocity()){ if(func_8028B4C4() && bsWalkSkidVelocity < _get_horzVelocity()){
s0 = BS_SKID; next_state = BS_SKID;
} }
if(func_8028B094()) if(func_8028B094())
s0 = BS_2F_FALL; next_state = BS_2F_FALL;
if(button_held(BUTTON_Z)) if(button_held(BUTTON_Z))
s0 = BS_CROUCH; next_state = BS_CROUCH;
s0 = func_802B6F20(s0); next_state = func_802B6F20(next_state);
if(button_pressed(BUTTON_A)) if(button_pressed(BUTTON_A))
s0 = func_8029C780(); next_state = func_8029C780();
if(player_isSliding()) if(player_isSliding())
s0 = BS_SLIDE; next_state = BS_SLIDE;
s0 = func_8029CA94(s0); next_state = func_8029CA94(next_state);
if(player_inWater()) if(player_inWater())
s0 = BS_2D_SWIM_IDLE; next_state = BS_2D_SWIM_IDLE;
bs_setState(s0); bs_setState(next_state);
} }
void bswalk_fast_end(void){ void bswalk_fast_end(void){
@@ -452,40 +452,40 @@ void bswalk_mud_init(void){
} }
void bswalk_mud_update(void){ void bswalk_mud_update(void){
s32 s0 = 0; s32 next_state = 0;
func_802B6E44(); func_802B6E44();
func_8029AD28(0.4f, 4); func_8029AD28(0.4f, 4);
func_8029AD28(0.9f, 3); func_8029AD28(0.9f, 3);
func_802B6D00(); func_802B6D00();
if(!func_8028B128()) if(!func_8028B128())
s0 = BS_2_WALK_SLOW; next_state = BS_2_WALK_SLOW;
if(!func_8029B300()) if(!func_8029B300())
s0 = BS_1_IDLE; next_state = BS_1_IDLE;
if(func_80294F78()) if(func_80294F78())
s0 = func_802926C0(); next_state = func_802926C0();
if(func_8028B094()) if(func_8028B094())
s0 = BS_2F_FALL; next_state = BS_2F_FALL;
if(button_held(BUTTON_Z)) if(button_held(BUTTON_Z))
s0 = BS_CROUCH; next_state = BS_CROUCH;
s0 = func_802B6F20(s0); next_state = func_802B6F20(next_state);
if(button_pressed(BUTTON_A)) if(button_pressed(BUTTON_A))
s0 = func_8029C780(); next_state = func_8029C780();
if(player_isSliding()) if(player_isSliding())
s0 = BS_SLIDE; next_state = BS_SLIDE;
s0 = func_8029CA94(s0); next_state = func_8029CA94(next_state);
if(player_inWater()) if(player_inWater())
s0 = BS_2D_SWIM_IDLE; next_state = BS_2D_SWIM_IDLE;
bs_setState(s0); bs_setState(next_state);
} }
void bswalk_drone_init(void){ void bswalk_drone_init(void){

View File

@@ -52,14 +52,14 @@ void func_802CE8D4(Actor *this){
switch(this->state) switch(this->state)
{ {
case 1://L802CE9C4 case 1://L802CE9C4
if( !func_8031FF1C(BKPROG_D_BEEHIVE_TEXT) if( !fileProgressFlag_get(FILEPROG_D_BEEHIVE_TEXT)
&& subaddie_playerIsWithinCylinder(this, 250, 300) && subaddie_playerIsWithinCylinder(this, 250, 300)
){ ){
if(func_8028ECAC() == 0 || func_8028ECAC() == BSGROUP_8_TROT){ if(func_8028ECAC() == 0 || func_8028ECAC() == BSGROUP_8_TROT){
if( player_getTransformation() == TRANSFORM_1_BANJO if( player_getTransformation() == TRANSFORM_1_BANJO
&& func_80311480(ASSET_D96_DIALOG_BEEHIVE_MEET, 0, NULL, NULL, NULL, 0) && func_80311480(ASSET_D96_DIALOG_BEEHIVE_MEET, 0, NULL, NULL, NULL, 0)
){ ){
func_80320004(BKPROG_D_BEEHIVE_TEXT, 1); fileProgressFlag_set(FILEPROG_D_BEEHIVE_TEXT, 1);
} }
} }
}//L802CEA48 }//L802CEA48

View File

@@ -194,7 +194,7 @@ void chBottlesBonusCursor_freeMethod(Actor *this) {
func_8031FBA0(); func_8031FBA0();
if (func_8034BAFC() != -1) { if (func_8034BAFC() != -1) {
func_802C5A3C(func_8034BAFC()); func_802C5A3C(func_8034BAFC());
func_8033D13C(func_8034BAFC()); gameFile_load(func_8034BAFC());
func_80347AA8(); func_80347AA8();
} }
chBottlesBonusSursorMarker = 0; chBottlesBonusSursorMarker = 0;

View File

@@ -45,18 +45,18 @@ void func_802CD8C0(Actor *this){
return; return;
} }
if(map_get() == MAP_26_MMM_NAPPERS_ROOM){ if(map_get() == MAP_26_MMM_NAPPERS_ROOM){
if(func_8031FF1C(BKPROG_1D_MMM_DINNING_ROOM_CUTSCENE)){ if(fileProgressFlag_get(FILEPROG_1D_MMM_DINNING_ROOM_CUTSCENE)){
marker_despawn(this->marker); marker_despawn(this->marker);
return; return;
} }
else{ else{
func_802CD870(this); func_802CD870(this);
func_80320004(BKPROG_1D_MMM_DINNING_ROOM_CUTSCENE, TRUE); fileProgressFlag_set(FILEPROG_1D_MMM_DINNING_ROOM_CUTSCENE, TRUE);
} }
} }
//L802CD9C4 //L802CD9C4
if(map_get() == MAP_8E_GL_FURNACE_FUN){ if(map_get() == MAP_8E_GL_FURNACE_FUN){
if(func_8031FF1C(BKPROG_F4_ENTER_FF_CUTSCENE)){ if(fileProgressFlag_get(FILEPROG_F4_ENTER_FF_CUTSCENE)){
marker_despawn(this->marker); marker_despawn(this->marker);
return; return;
} }

View File

@@ -6,7 +6,7 @@
extern void actor_setOpacity(Actor*,s32); extern void actor_setOpacity(Actor*,s32);
extern void func_8035644C(u32); extern void func_8035644C(u32);
bool chCollectible_collectItem(Actor*, u32, enum asset_e, enum comusic_e, enum item_e, f32); bool chCollectible_collectItem(Actor*, enum file_progress_e, enum asset_e, enum comusic_e, enum item_e, f32);
Actor *chCollectible_draw(ActorMarker *this, Gfx **gdl, Mtx **mptr, Vtx **arg3); Actor *chCollectible_draw(ActorMarker *this, Gfx **gdl, Mtx **mptr, Vtx **arg3);
void chCollectible_update(Actor *this); void chCollectible_update(Actor *this);
@@ -76,7 +76,7 @@ void func_802D8C98(Actor *this, s32 arg1) {
chCollectible_setState(this, (phi_v0 ) ? 2 : 3); chCollectible_setState(this, (phi_v0 ) ? 2 : 3);
} }
bool chCollectible_collectItem(Actor* actor, u32 arg1, enum asset_e dialogId, enum comusic_e sfxId, enum item_e itemId, f32 arg5){ bool chCollectible_collectItem(Actor* actor, enum file_progress_e arg1, enum asset_e dialogId, enum comusic_e sfxId, enum item_e itemId, f32 arg5){
func_8025A6EC(sfxId,32000); func_8025A6EC(sfxId,32000);
timedFunc_set_1(0.75f, (GenMethod_1)func_8035644C, arg1); timedFunc_set_1(0.75f, (GenMethod_1)func_8035644C, arg1);
if(!func_802FADD4(0x1b)){ if(!func_802FADD4(0x1b)){
@@ -100,7 +100,7 @@ s32 chCollectible_collectEgg(ActorProp *arg0){
if(arg0->unk8_0) if(arg0->unk8_0)
actPtr = marker_getActor(arg0->marker); actPtr = marker_getActor(arg0->marker);
} }
chCollectible_collectItem(actPtr, 5, 0xD9E, COMUSIC_C_EGG_COLLECTED, 0xD, 2.0f); chCollectible_collectItem(actPtr, FILEPROG_5_BLUE_EGG_TEXT, 0xD9E, COMUSIC_C_EGG_COLLECTED, 0xD, 2.0f);
} }
void chCollectible_collectRedFeather(ActorProp *arg0){ void chCollectible_collectRedFeather(ActorProp *arg0){
@@ -108,7 +108,7 @@ void chCollectible_collectRedFeather(ActorProp *arg0){
fxSparkle_redFeather(&arg0->x); fxSparkle_redFeather(&arg0->x);
if(arg0->unk8_0) if(arg0->unk8_0)
actPtr = marker_getActor(arg0->marker); actPtr = marker_getActor(arg0->marker);
chCollectible_collectItem(actPtr, 6, 0xD9F, COMUSIC_B_RED_FEATHER_COLLECTED, 0xF, 4.0f); chCollectible_collectItem(actPtr, FILEPROG_6_RED_FEATHER_TEXT, 0xD9F, COMUSIC_B_RED_FEATHER_COLLECTED, 0xF, 4.0f);
} }
void chCollectible_collectGoldFeather(ActorProp *arg0){ void chCollectible_collectGoldFeather(ActorProp *arg0){
@@ -116,7 +116,7 @@ void chCollectible_collectGoldFeather(ActorProp *arg0){
fxSparkle_goldFeather(&arg0->x); fxSparkle_goldFeather(&arg0->x);
if(arg0->unk8_0) if(arg0->unk8_0)
actPtr = marker_getActor(arg0->marker); actPtr = marker_getActor(arg0->marker);
chCollectible_collectItem(actPtr, 7, 0xDA0, COMUSIC_14_GOLD_FEATHER_COLLECTED, ITEM_10_GOLD_FEATHER, 6.0f); chCollectible_collectItem(actPtr, FILEPROG_7_GOLD_FEATHER_TEXT, 0xDA0, COMUSIC_14_GOLD_FEATHER_COLLECTED, ITEM_10_GOLD_FEATHER, 6.0f);
} }
Actor *chCollectible_draw(ActorMarker *this, Gfx **gdl, Mtx **mptr, Vtx **arg3){ Actor *chCollectible_draw(ActorMarker *this, Gfx **gdl, Mtx **mptr, Vtx **arg3){

View File

@@ -171,8 +171,8 @@ void func_802C4768(s32 gamenum){
func_8031FBF8(); func_8031FBF8();
D_80365E00 = gamenum; D_80365E00 = gamenum;
func_8031FBA0(); func_8031FBA0();
if(func_8033D1BC(gamenum)){ if(gameFile_isNotEmpty(gamenum)){
func_8033D13C(gamenum); gameFile_load(gamenum);
D_8037DCCE[gamenum] = (itemscore_timeScores_get(LEVEL_6_LAIR)) ? 1 : 0; D_8037DCCE[gamenum] = (itemscore_timeScores_get(LEVEL_6_LAIR)) ? 1 : 0;
strcpy(D_8037DD48, ""); strcpy(D_8037DD48, "");
@@ -235,7 +235,7 @@ void func_802C4768(s32 gamenum){
} }
void func_802C4AC8(s32 arg0){ void func_802C4AC8(s32 arg0){
func_8033D0FC(arg0); gameFile_clear(arg0);
func_802C4768(arg0); func_802C4768(arg0);
} }
@@ -253,7 +253,7 @@ void func_802C4AF0(Actor * this){
} }
for(i = 0; i < 3; i++){ for(i = 0; i < 3; i++){
func_8033CFD4(i); gameFile_8033CFD4(i);
} }
if(D_8037DD28){ if(D_8037DD28){
@@ -393,14 +393,14 @@ void func_802C4C14(Actor *this){
case 4://L802C50C8 case 4://L802C50C8
if(animctrl_isStopped(this->animctrl)){ if(animctrl_isStopped(this->animctrl)){
chBottlesBonus_func_802DEB80(); chBottlesBonus_func_802DEB80();
if(!func_8033D1BC(sp84)){ if(!gameFile_isNotEmpty(sp84)){
timedFunc_set_3(0.0f, (GenMethod_3)func_802E4078, MAP_85_CS_SPIRAL_MOUNTAIN_3, 0, 1); timedFunc_set_3(0.0f, (GenMethod_3)func_802E4078, MAP_85_CS_SPIRAL_MOUNTAIN_3, 0, 1);
} }
else{//L802C511C else{//L802C511C
sp44 = 0.0f; sp44 = 0.0f;
if(this->state == 4 && (sp84 == 0 || sp84 == 1)) if(this->state == 4 && (sp84 == 0 || sp84 == 1))
sp44 = 0.25f; sp44 = 0.25f;
if(func_802DA498() && func_8031FF1C(BKPROG_BD_ENTER_LAIR_CUTSCENE)){ if(func_802DA498() && fileProgressFlag_get(FILEPROG_BD_ENTER_LAIR_CUTSCENE)){
timedFunc_set_2(sp44, (GenMethod_2)func_8031FB14, 0, 0); timedFunc_set_2(sp44, (GenMethod_2)func_8031FB14, 0, 0);
} }
else{//L802C5188 else{//L802C5188
@@ -413,7 +413,7 @@ void func_802C4C14(Actor *this){
break; break;
case 2://L802C51CC case 2://L802C51CC
if(sp74[0] == 1){ if(sp74[0] == 1){
if(func_8033D1BC(sp84)){ if(gameFile_isNotEmpty(sp84)){
func_8031877C(chGameSelectTopZoombox); func_8031877C(chGameSelectTopZoombox);
func_803183A4(chGameSelectTopZoombox, (&D_80365DFC)[func_8031B5B0()]); func_803183A4(chGameSelectTopZoombox, (&D_80365DFC)[func_8031B5B0()]);
D_8037DD2C = 1; D_8037DD2C = 1;
@@ -424,7 +424,7 @@ void func_802C4C14(Actor *this){
} }
} }
else if(sp5C[FACE_BUTTON(BUTTON_A)] == 1){//L802C5250 else if(sp5C[FACE_BUTTON(BUTTON_A)] == 1){//L802C5250
if(func_8033D1BC(sp84)){ if(gameFile_isNotEmpty(sp84)){
if(randf() < 0.1){ if(randf() < 0.1){
switch(sp84){ switch(sp84){
case 0://L802C52B8 case 0://L802C52B8
@@ -543,7 +543,7 @@ void func_802C5740(Actor * this){
D_8037DCE0.unk4 = (&D_80365DF8)[i]; D_8037DCE0.unk4 = (&D_80365DF8)[i];
if(!this->initialized){ if(!this->initialized){
func_8033CE40(); gameFile_8033CE40();
if(chGameSelectBottomZoombox == NULL){ if(chGameSelectBottomZoombox == NULL){
chGameSelectBottomZoombox = gczoombox_new(0xA0, TALK_PIC_C_BANJO_2, 2, 0, NULL); chGameSelectBottomZoombox = gczoombox_new(0xA0, TALK_PIC_C_BANJO_2, 2, 0, NULL);
gczoombox_open(chGameSelectBottomZoombox); gczoombox_open(chGameSelectBottomZoombox);
@@ -591,8 +591,8 @@ void func_802C5994(void){
if( a1 || t6) if( a1 || t6)
{ {
if(D_80365E00 != -1 && !func_802E4A08() && map_get() != MAP_91_FILE_SELECT){ if(D_80365E00 != -1 && !func_802E4A08() && map_get() != MAP_91_FILE_SELECT){
func_8033D17C(D_80365E00); gameFile_save(D_80365E00);
func_8033CFD4(D_80365E00); gameFile_8033CFD4(D_80365E00);
} }
} }
} }

View File

@@ -46,9 +46,9 @@ void __chJinjo_802CDBA8(ActorMarker *this, ActorMarker *other){
ActorLocal_Jinjo *localPtr = &actorPtr->jinjo; ActorLocal_Jinjo *localPtr = &actorPtr->jinjo;
if(actorPtr->state < 5){ if(actorPtr->state < 5){
if(!func_8031FF1C(BKPROG_E_JINJO_TEXT)){ if(!fileProgressFlag_get(FILEPROG_E_JINJO_TEXT)){
func_80311480(__chJinjo_getMeetDialogId(actorPtr->marker->unk14_20), 4, 0, 0, 0, 0); func_80311480(__chJinjo_getMeetDialogId(actorPtr->marker->unk14_20), 4, 0, 0, 0, 0);
func_80320004(BKPROG_E_JINJO_TEXT, 1); fileProgressFlag_set(FILEPROG_E_JINJO_TEXT, 1);
} }
func_80328B8C(actorPtr, 6, 0.0f , -1); func_80328B8C(actorPtr, 6, 0.0f , -1);
if(func_803463D4(ITEM_12_JINJOS, 1 << (this->unk14_20 + 6) ) == 0x1f) if(func_803463D4(ITEM_12_JINJOS, 1 << (this->unk14_20 + 6) ) == 0x1f)

View File

@@ -257,7 +257,7 @@ void chSnowman_update(Actor *this){
else if( else if(
map_get() != MAP_27_FP_FREEZEEZY_PEAK map_get() != MAP_27_FP_FREEZEEZY_PEAK
|| func_8038DD34(local->unk0) == 0 || func_8038DD34(local->unk0) == 0
|| func_8031FF1C(0x13) || fileProgressFlag_get(0x13)
){//L802E2318 ){//L802E2318
if(0.0 < local->unk4){ if(0.0 < local->unk4){
if( (func_8023DB5C() & 1) if( (func_8023DB5C() & 1)

View File

@@ -276,7 +276,7 @@ void func_8029B5EC(void){
void func_8029B62C(void){ void func_8029B62C(void){
if(item_empty(ITEM_16_LIFE)){ if(item_empty(ITEM_16_LIFE)){
if(!func_8031FF1C(BKPROG_BD_ENTER_LAIR_CUTSCENE) || func_8031FF1C(BKPROG_A6_FURNACE_FUN_COMPLETE)){ if(!fileProgressFlag_get(FILEPROG_BD_ENTER_LAIR_CUTSCENE) || fileProgressFlag_get(FILEPROG_A6_FURNACE_FUN_COMPLETE)){
func_8025A430(-1, 0x7D0, 3); func_8025A430(-1, 0x7D0, 3);
func_8025A2B0(); func_8025A2B0();
func_802DC528(0, 0); func_802DC528(0, 0);
@@ -335,14 +335,14 @@ void func_8029B85C(ActorMarker *caller, enum asset_e text_id, s32 arg2){
} }
void func_8029B890(void){ void func_8029B890(void){
if(!func_8031FF1C(BKPROG_A8_HAS_DIED) && !func_803203FC(2)){ if(!fileProgressFlag_get(FILEPROG_A8_HAS_DIED) && !func_803203FC(2)){
func_803114D0(); func_803114D0();
if(bs_getState() == 0x54){ if(bs_getState() == 0x54){
func_8029B62C(); func_8029B62C();
return; return;
} }
func_80311480(0xf81, 7, NULL, NULL, func_8029B85C, NULL); func_80311480(0xf81, 7, NULL, NULL, func_8029B85C, NULL);
func_80320004(BKPROG_A8_HAS_DIED, TRUE); fileProgressFlag_set(FILEPROG_A8_HAS_DIED, TRUE);
} }
else{ else{
func_8029B62C(); func_8029B62C();
@@ -888,7 +888,7 @@ void func_8029CBC4(void){
void func_8029CBF4(void){ void func_8029CBF4(void){
if(item_getCount(ITEM_E_JIGGY) == 10){ if(item_getCount(ITEM_E_JIGGY) == 10){
if( jiggyscore_total() == 100 && func_8031FF1C(BKPROG_FC_DEFEAT_GRUNTY)){ if( jiggyscore_total() == 100 && fileProgressFlag_get(FILEPROG_FC_DEFEAT_GRUNTY)){
timedFunc_set_3(4.1f, (GenMethod_3)func_802E4078, MAP_95_CS_END_ALL_100, 0, 1); timedFunc_set_3(4.1f, (GenMethod_3)func_802E4078, MAP_95_CS_END_ALL_100, 0, 1);
}//L8029CC58 }//L8029CC58
@@ -896,7 +896,7 @@ void func_8029CBF4(void){
func_8025A6EC(COMUSIC_42_NOTEDOOR_OPENING_FANFARE, -1); func_8025A6EC(COMUSIC_42_NOTEDOOR_OPENING_FANFARE, -1);
}//L8029CC7C }//L8029CC7C
else{ else{
if( jiggyscore_total() == 100 && func_8031FF1C(BKPROG_FC_DEFEAT_GRUNTY)){ if( jiggyscore_total() == 100 && fileProgressFlag_get(FILEPROG_FC_DEFEAT_GRUNTY)){
func_802E4078(MAP_95_CS_END_ALL_100, 0, 1); func_802E4078(MAP_95_CS_END_ALL_100, 0, 1);
} }
func_8029CBC4(); func_8029CBC4();
@@ -915,7 +915,7 @@ void func_8029CCC4(void){
miscflag_clear(7); miscflag_clear(7);
func_802B0CD8(); func_802B0CD8();
item_inc(ITEM_E_JIGGY); item_inc(ITEM_E_JIGGY);
if(jiggyscore_total() == 100 && func_8031FF1C(BKPROG_FC_DEFEAT_GRUNTY)){ if(jiggyscore_total() == 100 && fileProgressFlag_get(FILEPROG_FC_DEFEAT_GRUNTY)){
func_8028F918(2); func_8028F918(2);
} }
func_8024BD08(0); func_8024BD08(0);

View File

@@ -288,32 +288,32 @@ void func_8029D968(void){
case MAP_44_CCW_SUMMER://8029DB58 case MAP_44_CCW_SUMMER://8029DB58
case MAP_45_CCW_AUTUMN://8029DB58 case MAP_45_CCW_AUTUMN://8029DB58
case MAP_46_CCW_WINTER://8029DB58 case MAP_46_CCW_WINTER://8029DB58
func_8035644C(BKPROG_AA_HAS_TOUCHED_CCW_BRAMBLE_FIELD); func_8035644C(FILEPROG_AA_HAS_TOUCHED_CCW_BRAMBLE_FIELD);
break; break;
case MAP_D_BGS_BUBBLEGLOOP_SWAMP://8029DB68 case MAP_D_BGS_BUBBLEGLOOP_SWAMP://8029DB68
case MAP_72_GL_BGS_LOBBY: case MAP_72_GL_BGS_LOBBY:
func_8035644C(BKPROG_F_HAS_TOUCHED_PIRAHANA_WATER); func_8035644C(FILEPROG_F_HAS_TOUCHED_PIRAHANA_WATER);
break; break;
case MAP_3C_RBB_KITCHEN://8029DB78 case MAP_3C_RBB_KITCHEN://8029DB78
func_8035644C(BKPROG_A9_HAS_TOUCHED_RBB_OVEN); func_8035644C(FILEPROG_A9_HAS_TOUCHED_RBB_OVEN);
break; break;
case MAP_12_GV_GOBIS_VALLEY://8029DB88 case MAP_12_GV_GOBIS_VALLEY://8029DB88
case MAP_6E_GL_GV_LOBBY: case MAP_6E_GL_GV_LOBBY:
case MAP_8E_GL_FURNACE_FUN://8029DB88 case MAP_8E_GL_FURNACE_FUN://8029DB88
func_8035644C(BKPROG_10_HAS_TOUCHED_SAND_EEL_SAND); func_8035644C(FILEPROG_10_HAS_TOUCHED_SAND_EEL_SAND);
break; break;
case MAP_27_FP_FREEZEEZY_PEAK://8029DB98 case MAP_27_FP_FREEZEEZY_PEAK://8029DB98
case MAP_7F_FP_WOZZAS_CAVE://8029DB98 case MAP_7F_FP_WOZZAS_CAVE://8029DB98
func_8035644C(BKPROG_14_HAS_TOUCHED_FP_ICY_WATER); func_8035644C(FILEPROG_14_HAS_TOUCHED_FP_ICY_WATER);
break; break;
case MAP_1B_MMM_MAD_MONSTER_MANSION://8029DBA8 case MAP_1B_MMM_MAD_MONSTER_MANSION://8029DBA8
if(!func_8029CFA0()) if(!func_8029CFA0())
func_8035644C(BKPROG_86_HAS_TOUCHED_MMM_THORN_HEDGE); func_8035644C(FILEPROG_86_HAS_TOUCHED_MMM_THORN_HEDGE);
break; break;
} }
} }

View File

@@ -5,7 +5,7 @@
extern void func_8030DBFC(u32, f32, f32, f32); extern void func_8030DBFC(u32, f32, f32, f32);
extern bool func_80309DBC(f32[3], f32[3], f32, f32 sp54[3], s32, s32); extern bool func_80309DBC(f32[3], f32[3], f32, f32 sp54[3], s32, s32);
extern void func_80320004(s32, bool); extern void fileProgressFlag_set(s32, bool);
extern void func_8030DEB4(u8, f32, f32); extern void func_8030DEB4(u8, f32, f32);
extern void func_8030DF68(u8, f32[3]); extern void func_8030DF68(u8, f32[3]);
extern void func_8030E2C4(u8); extern void func_8030E2C4(u8);
@@ -373,7 +373,7 @@ void chBeeSwarm_update(Actor *this) {
local->unk24 = (this->unk100 != NULL) ? this->unk100->unk5C : 0; local->unk24 = (this->unk100 != NULL) ? this->unk100->unk5C : 0;
local->unk5 = 1; local->unk5 = 1;
if (this->unk100 != NULL) { if (this->unk100 != NULL) {
func_80320004(BKPROG_D_BEEHIVE_TEXT, TRUE); fileProgressFlag_set(FILEPROG_D_BEEHIVE_TEXT, TRUE);
} }
func_80328A84(this, (this->unk100 != NULL) ? 1 : 2); func_80328A84(this, (this->unk100 != NULL) ? 1 : 2);
this->unk60 = 0.0f; this->unk60 = 0.0f;
@@ -445,12 +445,12 @@ void chBeeSwarm_update(Actor *this) {
func_8028E9C4(5, spB4); func_8028E9C4(5, spB4);
switch (this->state) { switch (this->state) {
case 1: case 1:
if (!func_8031FF1C(0x8F) && subaddie_playerIsWithinCylinder(this, 250, 300) if (!fileProgressFlag_get(FILEPROG_8F_MET_BEE_INFESTED_BEEHIVE) && subaddie_playerIsWithinCylinder(this, 250, 300)
&& ((func_8028ECAC() == 0) || (func_8028ECAC() == BSGROUP_8_TROT)) && ((func_8028ECAC() == 0) || (func_8028ECAC() == BSGROUP_8_TROT))
&& (player_getTransformation() == TRANSFORM_1_BANJO) && (player_getTransformation() == TRANSFORM_1_BANJO)
&& (func_80311480(0xDA6, 0, NULL, NULL, NULL, NULL) != 0) && (func_80311480(0xDA6, 0, NULL, NULL, NULL, NULL) != 0)
) { ) {
func_80320004(0x8F, TRUE); fileProgressFlag_set(FILEPROG_8F_MET_BEE_INFESTED_BEEHIVE, TRUE);
} }
if (chBeeSwarm_802CF5E4(this)) { if (chBeeSwarm_802CF5E4(this)) {
func_80328A84(this, 2U); func_80328A84(this, 2U);

View File

@@ -91,8 +91,8 @@ static s32 __transformation_getCost(enum transformation_e trans_id){
} }
static enum bkprog_e __bkProgId_from_transformationId(enum transformation_e trans_id){ static enum file_progress_e __bkProgId_from_transformationId(enum transformation_e trans_id){
return (trans_id - TRANSFORM_2_TERMITE) + BKPROG_90_PAID_TERMITE_COST; return (trans_id - TRANSFORM_2_TERMITE) + FILEPROG_90_PAID_TERMITE_COST;
} }
bool chMumbo_withinHorzDistToPlayer(s32 x, s32 z, s32 dist) { bool chMumbo_withinHorzDistToPlayer(s32 x, s32 z, s32 dist) {
@@ -125,8 +125,8 @@ void chMumbo_func_802D18B4(Actor *this) {
} }
if(player_is_within_range || func_803203FC(1) || func_803203FC(UNKFLAGS1_1F_IN_CHARACTER_PARADE)){ if(player_is_within_range || func_803203FC(1) || func_803203FC(UNKFLAGS1_1F_IN_CHARACTER_PARADE)){
func_80328AC8(this, 2); func_80328AC8(this, 2);
if( !func_8031FF1C(BKPROG_11_HAS_MET_MUMBO) if( !fileProgressFlag_get(FILEPROG_11_HAS_MET_MUMBO)
|| (!func_8031FF1C(BKPROG_DC_HAS_HAD_ENOUGH_TOKENS_BEFORE) && this->unk38_0) || (!fileProgressFlag_get(FILEPROG_DC_HAS_HAD_ENOUGH_TOKENS_BEFORE) && this->unk38_0)
) { ) {
func_8028F918(2); func_8028F918(2);
} }
@@ -148,13 +148,13 @@ static void __chMumbo_textCallback(ActorMarker *caller, enum asset_e text_id, s3
return; return;
case ASSET_D90_DIALOG_MUMBO_MAGIC_PAID_FOR: //L802D1A40 case ASSET_D90_DIALOG_MUMBO_MAGIC_PAID_FOR: //L802D1A40
func_80320004(BKPROG_12_HAS_TRANSFORMED_BEFORE, TRUE); fileProgressFlag_set(FILEPROG_12_HAS_TRANSFORMED_BEFORE, TRUE);
func_80311480(ASSET_D8F_DIALOG_MUMBO_MEET + D_8037DDF0, 4, NULL, NULL, NULL, NULL); func_80311480(ASSET_D8F_DIALOG_MUMBO_MEET + D_8037DDF0, 4, NULL, NULL, NULL, NULL);
gcpausemenu_80314AC8(1); gcpausemenu_80314AC8(1);
break; break;
case ASSET_DAA_DIALOG_MUMBO_HAS_ENOUGH_TOKENS: //L802D1A7C /* fall-through */ case ASSET_DAA_DIALOG_MUMBO_HAS_ENOUGH_TOKENS: //L802D1A7C /* fall-through */
func_80320004(BKPROG_DC_HAS_HAD_ENOUGH_TOKENS_BEFORE, TRUE); fileProgressFlag_set(FILEPROG_DC_HAS_HAD_ENOUGH_TOKENS_BEFORE, TRUE);
case ASSET_DAB_DIALOG_MUMBO_NOT_ENOUGH_TOKENS: //L802D1A88 case ASSET_DAB_DIALOG_MUMBO_NOT_ENOUGH_TOKENS: //L802D1A88
func_8028F918(0); func_8028F918(0);
break; break;
@@ -192,17 +192,17 @@ static void __chMumbo_textCallback(ActorMarker *caller, enum asset_e text_id, s3
void chMumbo_func_802D1B8C(Actor *this, enum transformation_e transform_id) { void chMumbo_func_802D1B8C(Actor *this, enum transformation_e transform_id) {
if (this->unk10_12 != 0) { if (this->unk10_12 != 0) {
func_80311480(func_8031FF44(BK_PROG_BB_MUMBO_MISTAKE_INDEX, 2) + ASSET_DAF_DIALOG_MUMBO_TREX_MISTAKE, 0xE, this->position, this->marker, __chMumbo_textCallback, NULL); func_80311480(fileProgressFlag_getN(FILEPROG_BB_MUMBO_MISTAKE_INDEX, 2) + ASSET_DAF_DIALOG_MUMBO_TREX_MISTAKE, 0xE, this->position, this->marker, __chMumbo_textCallback, NULL);
return; return;
} }
if (func_8031FF1C(BKPROG_12_HAS_TRANSFORMED_BEFORE)) { if (fileProgressFlag_get(FILEPROG_12_HAS_TRANSFORMED_BEFORE)) {
if (this->velocity[0] == 0.0f) { if (this->velocity[0] == 0.0f) {
func_80311480(transform_id + ASSET_D8F_DIALOG_MUMBO_MEET, 6, this->position, this->marker, __chMumbo_textCallback, NULL); func_80311480(transform_id + ASSET_D8F_DIALOG_MUMBO_MEET, 6, this->position, this->marker, __chMumbo_textCallback, NULL);
return; return;
} }
if (map_get() == MAP_7A_GL_CRYPT && transform_id == TRANSFORM_3_PUMPKIN && !func_8031FF1C(BKPROG_F7_HAS_TRANSFORMED_IN_CRYPT)) { if (map_get() == MAP_7A_GL_CRYPT && transform_id == TRANSFORM_3_PUMPKIN && !fileProgressFlag_get(FILEPROG_F7_HAS_TRANSFORMED_IN_CRYPT)) {
func_80311480(ASSET_DAD_DIALOG_MUMBO_XFORM_IN_CRYPT, 6, this->position, this->marker, __chMumbo_textCallback, NULL); func_80311480(ASSET_DAD_DIALOG_MUMBO_XFORM_IN_CRYPT, 6, this->position, this->marker, __chMumbo_textCallback, NULL);
func_80320004(BKPROG_F7_HAS_TRANSFORMED_IN_CRYPT, TRUE); fileProgressFlag_set(FILEPROG_F7_HAS_TRANSFORMED_IN_CRYPT, TRUE);
return; return;
} }
gcpausemenu_80314AC8(1); gcpausemenu_80314AC8(1);
@@ -242,7 +242,7 @@ void chMumbo_update(Actor *this) {
if(!this->unk16C_4){ if(!this->unk16C_4){
this->unk38_31 = 0; this->unk38_31 = 0;
if( player_getTransformation() == TRANSFORM_1_BANJO if( player_getTransformation() == TRANSFORM_1_BANJO
&& !func_8031FF1C(__bkProgId_from_transformationId(D_8037DDF0)) && !fileProgressFlag_get(__bkProgId_from_transformationId(D_8037DDF0))
&& (map_get() != MAP_7A_GL_CRYPT) && (map_get() != MAP_7A_GL_CRYPT)
){ ){
this->unk38_31 = __transformation_getCost(D_8037DDF0); this->unk38_31 = __transformation_getCost(D_8037DDF0);
@@ -277,24 +277,24 @@ void chMumbo_update(Actor *this) {
} }
actor_playAnimationOnce(this); actor_playAnimationOnce(this);
if (actor_animationIsAt(this, 0.999f)) { if (actor_animationIsAt(this, 0.999f)) {
if( !func_8031FF1C(BKPROG_11_HAS_MET_MUMBO) if( !fileProgressFlag_get(FILEPROG_11_HAS_MET_MUMBO)
&& !func_803203FC(1) && !func_803203FC(1)
&& !func_803203FC(UNKFLAGS1_1F_IN_CHARACTER_PARADE) && !func_803203FC(UNKFLAGS1_1F_IN_CHARACTER_PARADE)
) { ) {
func_80328A84(this, 3); func_80328A84(this, 3);
func_80311480(ASSET_D8F_DIALOG_MUMBO_MEET, 0xE, this->position, this->marker, __chMumbo_textCallback, NULL); func_80311480(ASSET_D8F_DIALOG_MUMBO_MEET, 0xE, this->position, this->marker, __chMumbo_textCallback, NULL);
func_80320004(BKPROG_11_HAS_MET_MUMBO, TRUE); fileProgressFlag_set(FILEPROG_11_HAS_MET_MUMBO, TRUE);
break; break;
} }
if( !func_8031FF1C(BKPROG_DC_HAS_HAD_ENOUGH_TOKENS_BEFORE) if( !fileProgressFlag_get(FILEPROG_DC_HAS_HAD_ENOUGH_TOKENS_BEFORE)
&& !func_803203FC(1) && !func_803203FC(1)
&& !func_803203FC(UNKFLAGS1_1F_IN_CHARACTER_PARADE) && !func_803203FC(UNKFLAGS1_1F_IN_CHARACTER_PARADE)
&& this->unk38_0 && this->unk38_0
){ ){
func_80328A84(this, 3); func_80328A84(this, 3);
func_80311480(ASSET_DAA_DIALOG_MUMBO_HAS_ENOUGH_TOKENS, 0xE, this->position, this->marker, __chMumbo_textCallback, NULL); func_80311480(ASSET_DAA_DIALOG_MUMBO_HAS_ENOUGH_TOKENS, 0xE, this->position, this->marker, __chMumbo_textCallback, NULL);
func_80320004(BKPROG_DC_HAS_HAD_ENOUGH_TOKENS_BEFORE, TRUE); fileProgressFlag_set(FILEPROG_DC_HAS_HAD_ENOUGH_TOKENS_BEFORE, TRUE);
break; break;
} }
@@ -318,7 +318,7 @@ void chMumbo_update(Actor *this) {
if(face_buttons[FACE_BUTTON(BUTTON_B)] == 1){ if(face_buttons[FACE_BUTTON(BUTTON_B)] == 1){
if (D_8037DDF0 == TRANSFORM_7_WISHWASHY) { if (D_8037DDF0 == TRANSFORM_7_WISHWASHY) {
this->unk38_31 = 0; this->unk38_31 = 0;
} else if (player_getTransformation() == TRANSFORM_1_BANJO && !func_8031FF1C(__bkProgId_from_transformationId(D_8037DDF0)) && map_get() != MAP_7A_GL_CRYPT){ } else if (player_getTransformation() == TRANSFORM_1_BANJO && !fileProgressFlag_get(__bkProgId_from_transformationId(D_8037DDF0)) && map_get() != MAP_7A_GL_CRYPT){
this->unk38_31 = __transformation_getCost(D_8037DDF0); this->unk38_31 = __transformation_getCost(D_8037DDF0);
} }
this->unk38_0 = (D_8037DDF0 == TRANSFORM_7_WISHWASHY) || (item_getCount(ITEM_1C_MUMBO_TOKEN) >= this->unk38_31); this->unk38_0 = (D_8037DDF0 == TRANSFORM_7_WISHWASHY) || (item_getCount(ITEM_1C_MUMBO_TOKEN) >= this->unk38_31);
@@ -327,26 +327,26 @@ void chMumbo_update(Actor *this) {
sp44 = player_getTransformation() == TRANSFORM_1_BANJO; sp44 = player_getTransformation() == TRANSFORM_1_BANJO;
func_8028F94C(2, this->position); func_8028F94C(2, this->position);
if ( sp44 && map_get() != MAP_7A_GL_CRYPT if ( sp44 && map_get() != MAP_7A_GL_CRYPT
&& !func_8031FF1C(0xBA) && !fileProgressFlag_get(FILEPROG_BA_HAS_SEEN_TREX_TEXT)
&& randf() < 0.01 && randf() < 0.01
&& sp48 && sp48
) { ) {
func_80311480(ASSET_DAE_DIALOG_MUMBO_TREX_START, 6, NULL, this->marker, __chMumbo_textCallback, NULL); func_80311480(ASSET_DAE_DIALOG_MUMBO_TREX_START, 6, NULL, this->marker, __chMumbo_textCallback, NULL);
func_80320004(0xBA, 1); fileProgressFlag_set(FILEPROG_BA_HAS_SEEN_TREX_TEXT, 1);
this->unk138_24 = TRUE; this->unk138_24 = TRUE;
func_80328A84(this, 3); func_80328A84(this, 3);
} else if ( } else if (
sp44 sp44
&& map_get() != MAP_7A_GL_CRYPT && map_get() != MAP_7A_GL_CRYPT
&& !this->unk138_23 && !this->unk138_23
&& (sp40 = func_8031FF44(0xBB, 2), sp40 < 3) && (sp40 = fileProgressFlag_getN(FILEPROG_BB_MUMBO_MISTAKE_INDEX, 2), sp40 < 3)
&& randf() < 0.05 && randf() < 0.05
&& sp48 && sp48
){ ){
this->unk138_23 = TRUE; this->unk138_23 = TRUE;
this->unk10_12 = D_8037DDF0; this->unk10_12 = D_8037DDF0;
D_8037DDF0 = 7; D_8037DDF0 = 7;
func_80320044(0xBB, ++sp40, 2); fileProgressFlag_setN(FILEPROG_BB_MUMBO_MISTAKE_INDEX, ++sp40, 2);
func_80328A84(this, 5); func_80328A84(this, 5);
} else { } else {
if (this->unk38_31) { if (this->unk38_31) {
@@ -393,7 +393,7 @@ void chMumbo_update(Actor *this) {
func_8028FB88(TRANSFORM_1_BANJO); func_8028FB88(TRANSFORM_1_BANJO);
} else if (func_8028FB88(D_8037DDF0)) { } else if (func_8028FB88(D_8037DDF0)) {
if (D_8037DDF0 != TRANSFORM_7_WISHWASHY) { if (D_8037DDF0 != TRANSFORM_7_WISHWASHY) {
if (func_8031FF74(__bkProgId_from_transformationId(D_8037DDF0), TRUE)) { if (fileProgressFlag_getAndSet(__bkProgId_from_transformationId(D_8037DDF0), TRUE)) {
this->velocity[0] = 1.0f; this->velocity[0] = 1.0f;
} }
this->unk38_31 = 0; this->unk38_31 = 0;
@@ -428,7 +428,7 @@ void chMumbo_update(Actor *this) {
case 7: //L802D2704 case 7: //L802D2704
chMumbo_func_802D186C(this); chMumbo_func_802D186C(this);
if (func_803203FC(BKPROG_11_HAS_MET_MUMBO) == 0) { if (func_803203FC(FILEPROG_11_HAS_MET_MUMBO) == 0) {
if (map_get() == MAP_7A_GL_CRYPT) { if (map_get() == MAP_7A_GL_CRYPT) {
sp48 = chMumbo_withinHorzDistToPlayer(0x453, 0, 0xBC); sp48 = chMumbo_withinHorzDistToPlayer(0x453, 0, 0xBC);
} else { } else {
@@ -436,7 +436,7 @@ void chMumbo_update(Actor *this) {
} }
if (sp48 != 0) { if (sp48 != 0) {
func_80311480(ASSET_DA7_DIALOG_MUMBO_CCW_SUMMER, 7, NULL, NULL, NULL, NULL); func_80311480(ASSET_DA7_DIALOG_MUMBO_CCW_SUMMER, 7, NULL, NULL, NULL, NULL);
func_803204E4(BKPROG_11_HAS_MET_MUMBO, TRUE); func_803204E4(FILEPROG_11_HAS_MET_MUMBO, TRUE);
} }
} }
actor_loopAnimation(this); actor_loopAnimation(this);
@@ -444,7 +444,7 @@ void chMumbo_update(Actor *this) {
case 8: //L802D2790 case 8: //L802D2790
chMumbo_func_802D186C(this); chMumbo_func_802D186C(this);
if (func_803203FC(BKPROG_12_HAS_TRANSFORMED_BEFORE) == 0) { if (func_803203FC(FILEPROG_12_HAS_TRANSFORMED_BEFORE) == 0) {
if (map_get() == MAP_7A_GL_CRYPT) { if (map_get() == MAP_7A_GL_CRYPT) {
sp48 = chMumbo_withinHorzDistToPlayer(0x453, 0, 0xBC); sp48 = chMumbo_withinHorzDistToPlayer(0x453, 0, 0xBC);
} else { } else {
@@ -452,7 +452,7 @@ void chMumbo_update(Actor *this) {
} }
if (sp48 != 0) { if (sp48 != 0) {
func_80311480(ASSET_DA8_DIALOG_MUMBO_CCW_AUTUMN, 7, NULL, NULL, NULL, NULL); func_80311480(ASSET_DA8_DIALOG_MUMBO_CCW_AUTUMN, 7, NULL, NULL, NULL, NULL);
func_803204E4(BKPROG_12_HAS_TRANSFORMED_BEFORE, TRUE); func_803204E4(FILEPROG_12_HAS_TRANSFORMED_BEFORE, TRUE);
} }
} }
actor_loopAnimation(this); actor_loopAnimation(this);
@@ -512,7 +512,7 @@ void chMumbo_detransformWarn(s32 this, s32 arg1){
if(D_8037DDF3) if(D_8037DDF3)
return; return;
func_80311480(func_8031FF74(BKPROG_83_MAGIC_GET_WEAK_TEXT, TRUE) ? ASSET_F5C_DIALOG_MUMBO_MAGIC_GET_WEAK_ABREV : ASSET_F5B_DIALOG_MUMBO_MAGIC_GET_WEAK_FULL, 0xe, NULL, NULL, NULL, NULL); func_80311480(fileProgressFlag_getAndSet(FILEPROG_83_MAGIC_GET_WEAK_TEXT, TRUE) ? ASSET_F5C_DIALOG_MUMBO_MAGIC_GET_WEAK_ABREV : ASSET_F5B_DIALOG_MUMBO_MAGIC_GET_WEAK_FULL, 0xe, NULL, NULL, NULL, NULL);
} }
void chMumbo_detransformTrigger(s32 this, s32 arg1){ void chMumbo_detransformTrigger(s32 this, s32 arg1){
@@ -520,7 +520,7 @@ void chMumbo_detransformTrigger(s32 this, s32 arg1){
xform = player_getTransformation(); xform = player_getTransformation();
if(xform == TRANSFORM_1_BANJO || xform == TRANSFORM_7_WISHWASHY || D_8037DDF1) if(xform == TRANSFORM_1_BANJO || xform == TRANSFORM_7_WISHWASHY || D_8037DDF1)
return; return;
func_80311480(func_8031FF74(BKPROG_84_MAGIC_ALL_GONE_TEXT, TRUE) ? ASSET_F5E_DIALOG_MUMBO_MAGIC_RUN_OUT_ABREV: ASSET_F5D_DIALOG_MUMBO_MAGIC_RUN_OUT_FULL, 0xe, NULL, NULL, NULL, NULL); func_80311480(fileProgressFlag_getAndSet(FILEPROG_84_MAGIC_ALL_GONE_TEXT, TRUE) ? ASSET_F5E_DIALOG_MUMBO_MAGIC_RUN_OUT_ABREV: ASSET_F5D_DIALOG_MUMBO_MAGIC_RUN_OUT_FULL, 0xe, NULL, NULL, NULL, NULL);
D_8037DDF1++; D_8037DDF1++;
func_8028FB88(TRANSFORM_1_BANJO); func_8028FB88(TRANSFORM_1_BANJO);
} }

View File

@@ -13,14 +13,14 @@ ActorInfo D_803675C0 = { MARKER_1E9_MUMBO_COST_SIGN, ACTOR_36C_25_MUMBO_TOKEN_SI
void chMumboSign_update(Actor *this) { void chMumboSign_update(Actor *this) {
if (!this->unk16C_4) { if (!this->unk16C_4) {
if( func_8031FF1C(this->modelCacheIndex - ACTOR_368_5_MUMBO_TOKEN_SIGN + BKPROG_90_PAID_TERMITE_COST) if( fileProgressFlag_get(this->modelCacheIndex - ACTOR_368_5_MUMBO_TOKEN_SIGN + FILEPROG_90_PAID_TERMITE_COST)
|| func_803203FC(UNKFLAGS1_1F_IN_CHARACTER_PARADE) || func_803203FC(UNKFLAGS1_1F_IN_CHARACTER_PARADE)
) { ) {
marker_despawn(this->marker); marker_despawn(this->marker);
} }
this->unk16C_4 = TRUE; this->unk16C_4 = TRUE;
} }
if (func_8031FF1C(this->modelCacheIndex - ACTOR_368_5_MUMBO_TOKEN_SIGN + BKPROG_90_PAID_TERMITE_COST)) { if (fileProgressFlag_get(this->modelCacheIndex - ACTOR_368_5_MUMBO_TOKEN_SIGN + FILEPROG_90_PAID_TERMITE_COST)) {
func_80326310(this); func_80326310(this);
} }
} }

View File

@@ -13,7 +13,7 @@ extern void func_802EE6CC(f32[3], f32[3], s32[4], s32, f32, f32, s32, s32, s32);
extern void ml_vec3f_assign(f32[3], f32, f32, f32); extern void ml_vec3f_assign(f32[3], f32, f32, f32);
extern void func_802EE2E8(Actor *arg0, s32 arg1, s32 cnt, s32 arg3, f32 arg4, f32 arg5, f32 arg6); extern void func_802EE2E8(Actor *arg0, s32 arg1, s32 cnt, s32 arg3, f32 arg4, f32 arg5, f32 arg6);
extern void func_80319EA4(void); extern void func_80319EA4(void);
extern void func_80320004(s32, bool); extern void fileProgressFlag_set(s32, bool);
extern void func_803204E4(s32, bool); extern void func_803204E4(s32, bool);
void func_802D3D54(Actor *this); void func_802D3D54(Actor *this);
@@ -51,7 +51,7 @@ s32 D_8036768C = 0;
s32 D_80367690 = 0; s32 D_80367690 = 0;
s32 D_80367694 = 0; //enum map_e s32 D_80367694 = 0; //enum map_e
s32 D_80367698 = 0; s32 D_80367698 = 0;
s32 D_8036769C = 0; //enum bkprog_e s32 D_8036769C = 0; //enum file_progress_e
s32 D_803676A0 = 0; //enum actor_e s32 D_803676A0 = 0; //enum actor_e
f32 D_803676A4 = 0.0f; f32 D_803676A4 = 0.0f;
s32 D_803676A8 = 0; s32 D_803676A8 = 0;
@@ -115,7 +115,7 @@ f32 D_8037DE08;
/* .public */ /* .public */
void func_802D6114(void); void func_802D6114(void);
void func_802D6264(f32 arg0, enum map_e arg1, s32 arg2, s32 arg3, s32 arg4, enum bkprog_e arg5); void func_802D6264(f32 arg0, enum map_e arg1, s32 arg2, s32 arg3, s32 arg4, enum file_progress_e arg5);
void func_802D6344(void); void func_802D6344(void);
void func_802D63D4(void); void func_802D63D4(void);
void func_802D6750(void); void func_802D6750(void);
@@ -143,8 +143,8 @@ void func_802D3138(ActorMarker *marker, ActorMarker *other_marker){
} }
} }
void func_802D317C(ActorMarker *marker, enum bkprog_e prog_flag_id){ void func_802D317C(ActorMarker *marker, enum file_progress_e prog_flag_id){
func_80320004(prog_flag_id, TRUE); fileProgressFlag_set(prog_flag_id, TRUE);
marker_despawn(marker); marker_despawn(marker);
} }
@@ -166,14 +166,14 @@ void func_802D31AC(ActorMarker *arg0, ActorMarker * arg1) {
FUNC_8030E624(SFX_82_METAL_BREAK, 0.6f, 32736); FUNC_8030E624(SFX_82_METAL_BREAK, 0.6f, 32736);
func_802D2FB0(sp2C, 0x14, -0x1E, 0x190, 3.0f, 0x15E, 0x50, 0x96); func_802D2FB0(sp2C, 0x14, -0x1E, 0x190, 3.0f, 0x15E, 0x50, 0x96);
sp2C->unk60 = 1.0f; sp2C->unk60 = 1.0f;
func_80320004(0xA5, 1); fileProgressFlag_set(0xA5, 1);
break; break;
case 0x109: case MARKER_109_BREAKABLE_BRICK_WALL:
func_8030E6D4(SFX_114_BRICKWALL_BREAKING); func_8030E6D4(SFX_114_BRICKWALL_BREAKING);
func_8030E510(SFX_11_WOOD_BREAKING_1, 28000); func_8030E510(SFX_11_WOOD_BREAKING_1, 28000);
func_80328AEC(sp2C, 9); func_80328AEC(sp2C, 9);
func_80320004((sp2C->unkF4_8 == 1) ? 0xC8 : 0xC9, 1); fileProgressFlag_set((sp2C->unkF4_8 == 1) ? FILEPROG_C8_LAIR_BRICKWALL_TO_WADINGBOOTS_BROKEN : FILEPROG_C9_LAIR_BRICKWALL_TO_SHOCKJUMP_PAD_BROKEN, TRUE);
break; break;
case 0x107: case 0x107:
@@ -182,20 +182,20 @@ void func_802D31AC(ActorMarker *arg0, ActorMarker * arg1) {
marker_despawn(arg0); marker_despawn(arg0);
break; break;
case 0x224: case MARKER_224_BREAKABLE_FLOOR_COBWEB:
func_8025A70C(COMUSIC_2B_DING_B); func_8025A70C(COMUSIC_2B_DING_B);
func_8030E6A4(SFX_129_SWOOSH, (sp2C->scale < 0.45) ? 1.0 : 0.8, 0x7FF8); func_8030E6A4(SFX_129_SWOOSH, (sp2C->scale < 0.45) ? 1.0 : 0.8, 0x7FF8);
func_80328AEC(sp2C, 0xC); func_80328AEC(sp2C, 0xC);
func_802D2FB0(sp2C, 8, -0x3C, 0xC8, 2.0f, 0xFA, 0x3C, 0x64); func_802D2FB0(sp2C, 8, -0x3C, 0xC8, 2.0f, 0xFA, 0x3C, 0x64);
func_80320004((sp2C->unkF4_8== 1) ? 0xCB : 0xCC, 1); fileProgressFlag_set((sp2C->unkF4_8== 1) ? FILEPROG_CB_LAIR_COBWEB_OVER_FLIGHTPAD_BROKEN : FILEPROG_CC_LAIR_COBWEB_OVER_GREEN_CAULDRON_BROKEN, 1);
break; break;
case 0x225: case MARKER_225_BREAKABLE_WALL_COBWEB:
func_8025A70C(COMUSIC_2B_DING_B); func_8025A70C(COMUSIC_2B_DING_B);
func_8030E540(SFX_129_SWOOSH); func_8030E540(SFX_129_SWOOSH);
func_80328AEC(sp2C, 0xF); func_80328AEC(sp2C, 0xF);
func_802D2FB0(sp2C, 0xE, -0x3C, 0xC8, 2.0f, 0xFA, 0x3C, 0x64); func_802D2FB0(sp2C, 0xE, -0x3C, 0xC8, 2.0f, 0xFA, 0x3C, 0x64);
func_80320004(0xCA, 1); fileProgressFlag_set(FILEPROG_CA_COBWEB_BLOCKING_PURPLE_CAULDRON_BROKEN, 1);
break; break;
case 0x163: case 0x163:
@@ -323,7 +323,7 @@ void func_802D31AC(ActorMarker *arg0, ActorMarker * arg1) {
func_802EE2E8(sp2C, 1, 0x32, 0x14, 1.2f, 1.4f, 2.2f); func_802EE2E8(sp2C, 1, 0x32, 0x14, 1.2f, 1.4f, 2.2f);
func_802EE2E8(sp2C, 1, 0x3C, 0x64, 1.6f, 1.8f, 2.2f); func_802EE2E8(sp2C, 1, 0x3C, 0x64, 1.6f, 1.8f, 2.2f);
func_802EE2E8(sp2C, 1, 0x32, 0xB4, 1.2f, 1.4f, 2.2f); func_802EE2E8(sp2C, 1, 0x32, 0xB4, 1.2f, 1.4f, 2.2f);
func_802D317C(arg0, BKPROG_C4_STATUE_EYE_BROKEN); func_802D317C(arg0, FILEPROG_C4_STATUE_EYE_BROKEN);
break; break;
case 0x164: case 0x164:
@@ -496,7 +496,7 @@ bool func_802D42F8(Actor *this) {
return FALSE; return FALSE;
} }
else{ else{
return func_8031FF1C(D_803679B0[i + 1]); return fileProgressFlag_get(D_803679B0[i + 1]);
} }
} }
@@ -623,7 +623,7 @@ void func_802D48F0(void){
void func_802D4928(Actor *this, s32 arg1, s32 arg2, s32 arg3) { void func_802D4928(Actor *this, s32 arg1, s32 arg2, s32 arg3) {
this->marker->propPtr->unk8_3 = TRUE; this->marker->propPtr->unk8_3 = TRUE;
if( ( (((arg1 & 0xC00000) == 0) && mapSpecificFlags_get(arg1 - 0)) if( ( (((arg1 & 0xC00000) == 0) && mapSpecificFlags_get(arg1 - 0))
|| (((arg1 & 0xC00000) == 0x800000) && func_8031FF1C(arg1 - 0x800000)) || (((arg1 & 0xC00000) == 0x800000) && fileProgressFlag_get(arg1 - 0x800000))
|| (((arg1 & 0xC00000) == 0x400000) && func_803203FC(arg1 - 0x400000)) || (((arg1 & 0xC00000) == 0x400000) && func_803203FC(arg1 - 0x400000))
) )
&& (arg2 != this->state) && (arg2 != this->state)
@@ -632,7 +632,7 @@ void func_802D4928(Actor *this, s32 arg1, s32 arg2, s32 arg3) {
actor_playAnimationOnce(this); actor_playAnimationOnce(this);
} }
if( ( (((arg1 & 0xC00000) == 0) && !mapSpecificFlags_get(arg1 - 0)) if( ( (((arg1 & 0xC00000) == 0) && !mapSpecificFlags_get(arg1 - 0))
|| (((arg1 & 0xC00000) == 0x800000) && !func_8031FF1C(arg1 - 0x800000)) || (((arg1 & 0xC00000) == 0x800000) && !fileProgressFlag_get(arg1 - 0x800000))
|| (((arg1 & 0xC00000) == 0x400000) && !func_803203FC(arg1 - 0x400000)) || (((arg1 & 0xC00000) == 0x400000) && !func_803203FC(arg1 - 0x400000))
) )
&& (arg2 == this->state) && (arg2 == this->state)
@@ -647,16 +647,16 @@ void func_802D4A9C(Actor *this, s32 arg1){
} }
void func_802D4AC0(Actor *this, s32 arg1, s32 arg2) { void func_802D4AC0(Actor *this, s32 arg1, s32 arg2) {
if (func_8031FF1C(arg2)) { if (fileProgressFlag_get(arg2)) {
if (arg1 & 0x800000) { if (arg1 & 0x800000) {
func_80320004(arg1 + 0xFF800000, 1); fileProgressFlag_set(arg1 + 0xFF800000, 1);
} }
if (arg1 & 0x400000) { if (arg1 & 0x400000) {
func_803204E4(arg1 + 0xFFC00000, 1); func_803204E4(arg1 + 0xFFC00000, 1);
} }
} }
if( (((arg1 & 0x800000) && (func_8031FF1C(arg1 + 0xFF800000))) || ((arg1 & 0x400000) && (func_803203FC(arg1 + 0xFFC00000)))) if( (((arg1 & 0x800000) && (fileProgressFlag_get(arg1 + 0xFF800000))) || ((arg1 & 0x400000) && (func_803203FC(arg1 + 0xFFC00000))))
&& (func_8031FF1C(arg2)) && (this->animctrl == NULL) && (fileProgressFlag_get(arg2)) && (this->animctrl == NULL)
) { ) {
func_80328B8C(this, 8, 0.0f, 1); func_80328B8C(this, 8, 0.0f, 1);
} }
@@ -665,35 +665,35 @@ void func_802D4AC0(Actor *this, s32 arg1, s32 arg2) {
void func_802D4B94(Actor *this){ void func_802D4B94(Actor *this){
func_802D4AC0(this, 0x4000b6, BKPROG_18_MM_WITCH_SWITCH_JIGGY_SPAWNED); func_802D4AC0(this, 0x4000b6, FILEPROG_18_MM_WITCH_SWITCH_JIGGY_PRESSED);
} }
void func_802D4BBC(Actor *this){ void func_802D4BBC(Actor *this){
func_802D4AC0(this, 0x4000bc, 0x9A); func_802D4AC0(this, 0x4000bc, FILEPROG_9A_CC_WITCH_SWITCH_PRESSED);
} }
void func_802D4BE4(Actor *this){ void func_802D4BE4(Actor *this){
func_802D4AC0(this, 0x4000bd, 0x9F); func_802D4AC0(this, 0x4000bd, FILEPROG_9F_BGS_WITCH_SWITCH_JIGGY_PRESSED);
} }
void func_802D4C0C(Actor *this){ void func_802D4C0C(Actor *this){
func_802D4AC0(this, 0x4000be, 0xA0); func_802D4AC0(this, 0x4000be, FILEPROG_A0_GV_WITCH_SWITCH_JIGGY_PRESSED);
} }
void func_802D4C34(Actor *this){ void func_802D4C34(Actor *this){
func_802D4AC0(this, 0x4000b7, BKPROG_19_MMM_WITCH_SWITCH_JIGGY_SPAWNED); func_802D4AC0(this, 0x4000b7, FILEPROG_19_MMM_WITCH_SWITCH_JIGGY_PRESSED);
} }
void func_802D4C5C(Actor *this){ void func_802D4C5C(Actor *this){
func_802D4AC0(this, 0x4000b8, BKPROG_1A_TTC_WITCH_SWITCH_JIGGY_SPAWNED); func_802D4AC0(this, 0x4000b8, FILEPROG_1A_TTC_WITCH_SWITCH_JIGGY_PRESSED);
} }
void func_802D4C84(Actor *this){ void func_802D4C84(Actor *this){
func_802D4AC0(this, 0x4000b9, BKPROG_1C_RBB_WITCH_SWITCH_JIGGY_SPAWNED); func_802D4AC0(this, 0x4000b9, FILEPROG_1C_RBB_WITCH_SWITCH_JIGGY_PRESSED);
} }
void func_802D4CAC(Actor *this){ void func_802D4CAC(Actor *this){
func_802D4AC0(this, 0x4000ba, BKPROG_46_CCW_WITCH_SWITCH_JIGGY_SPAWNED); func_802D4AC0(this, 0x4000ba, FILEPROG_46_CCW_WITCH_SWITCH_JIGGY_PRESSED);
} }
void func_802D4CD4(Actor *this){ void func_802D4CD4(Actor *this){
@@ -704,7 +704,7 @@ void func_802D4CD4(Actor *this){
}//L802D4D10 }//L802D4D10
this->unk58_0 = TRUE; this->unk58_0 = TRUE;
}//L802D4D1C }//L802D4D1C
func_802D4AC0(this, 0x4000bb, 0x47); func_802D4AC0(this, 0x4000bb, FILEPROG_47_FP_WITCH_SWITCH_JIGGY_PRESSED);
} }
void func_802D4D3C(enum actor_e arg0, enum actor_e arg1) { void func_802D4D3C(enum actor_e arg0, enum actor_e arg1) {
@@ -787,10 +787,10 @@ void func_802D5140(ActorMarker *caller, enum asset_e text_id, s32 arg2){
itemscore_noteScores_get(func_80320424(0x19, 4)); itemscore_noteScores_get(func_80320424(0x19, 4));
} }
void func_802D5178(s32 arg0, enum bkprog_e arg1, s32 arg2, enum map_e arg3, s32 arg4, s32 arg5, enum actor_e arg6, s32 arg7){ void func_802D5178(s32 arg0, enum file_progress_e arg1, s32 arg2, enum map_e arg3, s32 arg4, s32 arg5, enum actor_e arg6, s32 arg7){
if(levelSpecificFlags_get(arg0) && !func_8031FF1C(arg1)){ if(levelSpecificFlags_get(arg0) && !fileProgressFlag_get(arg1)){
levelSpecificFlags_set(arg0, FALSE); levelSpecificFlags_set(arg0, FALSE);
func_80320004(arg1, TRUE); fileProgressFlag_set(arg1, TRUE);
func_802D6264(0.95f, arg3, arg2, arg4, arg5, 0); func_802D6264(0.95f, arg3, arg2, arg4, arg5, 0);
D_803676A0 = arg6; D_803676A0 = arg6;
D_80367690 = arg7; D_80367690 = arg7;
@@ -816,13 +816,13 @@ void func_802D5260(void) {
if (sp3C == -1) { if (sp3C == -1) {
levelSpecificFlags_set(0x3C, FALSE); levelSpecificFlags_set(0x3C, FALSE);
func_80320004(BKPROG_26_WATER_SWITCH_3_PRESSED, FALSE); fileProgressFlag_set(FILEPROG_26_WATER_SWITCH_3_PRESSED, FALSE);
func_80320004(BKPROG_27_LAIR_WATER_LEVEL_3, FALSE); fileProgressFlag_set(FILEPROG_27_LAIR_WATER_LEVEL_3, FALSE);
levelSpecificFlags_set(0x3D, FALSE); levelSpecificFlags_set(0x3D, FALSE);
return; return;
} }
sp38 = func_8034C528(sp3C + 0x190); sp38 = func_8034C528(sp3C + 0x190);
if( func_8031FF1C(BKPROG_27_LAIR_WATER_LEVEL_3) if( fileProgressFlag_get(FILEPROG_27_LAIR_WATER_LEVEL_3)
&& !levelSpecificFlags_get(0x3D) && !levelSpecificFlags_get(0x3D)
&& !levelSpecificFlags_get(0x3C) && !levelSpecificFlags_get(0x3C)
) { ) {
@@ -847,8 +847,8 @@ void func_802D5260(void) {
} }
if (D_803679C8[sp3C].unk6 + D_803676A4 <= D_803679C8[sp3C].unk4) { if (D_803679C8[sp3C].unk6 + D_803676A4 <= D_803679C8[sp3C].unk4) {
levelSpecificFlags_set(0x3C, FALSE); levelSpecificFlags_set(0x3C, FALSE);
func_80320004(BKPROG_26_WATER_SWITCH_3_PRESSED, FALSE); fileProgressFlag_set(FILEPROG_26_WATER_SWITCH_3_PRESSED, FALSE);
func_80320004(BKPROG_27_LAIR_WATER_LEVEL_3, FALSE); fileProgressFlag_set(FILEPROG_27_LAIR_WATER_LEVEL_3, FALSE);
func_802F9D38(D_803676A8); func_802F9D38(D_803676A8);
D_803676A8 = 0; D_803676A8 = 0;
} }
@@ -857,9 +857,9 @@ void func_802D5260(void) {
if (levelSpecificFlags_get(0x3C) != 0) { if (levelSpecificFlags_get(0x3C) != 0) {
sp34 = D_803679C8[sp3C].unk6 + D_803676A4; sp34 = D_803679C8[sp3C].unk6 + D_803676A4;
} else { } else {
sp34 = ((s16 *)&D_803679C8[sp3C])[(func_8031FF1C(BKPROG_27_LAIR_WATER_LEVEL_3)) ? 3 sp34 = ((s16 *)&D_803679C8[sp3C])[(fileProgressFlag_get(FILEPROG_27_LAIR_WATER_LEVEL_3)) ? 3
: (func_8031FF1C(BKPROG_25_LAIR_WATER_LEVEL_2)) ? 2 : (fileProgressFlag_get(FILEPROG_25_LAIR_WATER_LEVEL_2)) ? 2
: (func_8031FF1C(BKPROG_23_LAIR_WATER_LEVEL_1)) ? 1 : (fileProgressFlag_get(FILEPROG_23_LAIR_WATER_LEVEL_1)) ? 1
: 0]; : 0];
} }
func_8034DEB4(sp38, sp34); func_8034DEB4(sp38, sp34);
@@ -1010,20 +1010,20 @@ void func_802D5628(void){
} }
else{//L802D5B64 else{//L802D5B64
func_802D5260(); func_802D5260();
func_802D5178(0x1C, 0x28, 0x30, MAP_69_GL_MM_LOBBY, 0x8, 0xA, ACTOR_20E_MM_ENTRANCE_DOOR, 0x28); func_802D5178(0x1C, 0x28, 0x30, MAP_69_GL_MM_LOBBY, 0x8, 0xA, ACTOR_20E_MM_ENTRANCE_DOOR, 0x28);
func_802D5178(0x21, 0x2D, 0x31, MAP_6E_GL_GV_LOBBY, 0xA, 0xA, ACTOR_226_GV_ENTRANCE, 0x12); func_802D5178(0x21, 0x2D, 0x31, MAP_6E_GL_GV_LOBBY, 0xA, 0xA, ACTOR_226_GV_ENTRANCE, 0x12);
func_802D5178(0x1E, 0x2A, 0x32, MAP_70_GL_CC_LOBBY, 0xE, 0xA, ACTOR_212_IRON_BARS, 0xA); func_802D5178(0x1E, 0x2A, 0x32, MAP_70_GL_CC_LOBBY, 0xE, 0xA, ACTOR_212_CC_ENTRANCE_BARS, 0xA);
func_802D5178(0x1D, 0x29, 0x33, MAP_6D_GL_TTC_LOBBY, 0x9, 0xB, ACTOR_211_CHEST_LID, 0xA); func_802D5178(0x1D, 0x29, 0x33, MAP_6D_GL_TTC_LOBBY, 0x9, 0xB, ACTOR_211_TCC_ENTRANCE_CHEST_LID, 0xA);
func_802D5178(0x1F, 0x2B, 0x34, MAP_72_GL_BGS_LOBBY, 0xB, 0xB, ACTOR_210_BGS_ENTRANCE_DOOR, 0xA); func_802D5178(0x1F, 0x2B, 0x34, MAP_72_GL_BGS_LOBBY, 0xB, 0xB, ACTOR_210_BGS_ENTRANCE_DOOR, 0xA);
func_802D5178(0x23, 0x2F, 0x35, MAP_77_GL_RBB_LOBBY, 0xD, 0x5, ACTOR_20F_RBB_ENTRANCE_DOOR, 0xA); func_802D5178(0x23, 0x2F, 0x35, MAP_77_GL_RBB_LOBBY, 0xD, 0x5, ACTOR_20F_RBB_ENTRANCE_DOOR, 0xA);
func_802D5178(0x22, 0x2E, 0x36, MAP_75_GL_MMM_LOBBY, 0xC, 0x6, ACTOR_228_INVISIBLE_WALL, 0xA); func_802D5178(0x22, 0x2E, 0x36, MAP_75_GL_MMM_LOBBY, 0xC, 0x6, ACTOR_228_MMM_ENTRANCE_DOOR, 0xA);
func_802D5178(0x24, 0x30, 0x37, MAP_79_GL_CCW_LOBBY, 0xF, 0xB, ACTOR_234_CCW_ENTRANCE_DOOR, 0xA); func_802D5178(0x24, 0x30, 0x37, MAP_79_GL_CCW_LOBBY, 0xF, 0xB, ACTOR_234_CCW_ENTRANCE_DOOR, 0xA);
func_802D5178(0x20, 0x2C, 0x38, MAP_6F_GL_FP_LOBBY, 0x11, 0xA, ACTOR_235_FP_ENTANCE_DOOR, 0xA); func_802D5178(0x20, 0x2C, 0x38, MAP_6F_GL_FP_LOBBY, 0x11, 0xA, ACTOR_235_FP_ENTANCE_DOOR, 0xA);
func_802D5178(0x3F, 0xE2, 0x40, MAP_93_GL_DINGPOT, 0x10, 0xA, ACTOR_2E5_WOODEN_DOOR, 0x28); func_802D5178(0x3F, 0xE2, 0x40, MAP_93_GL_DINGPOT, 0x10, 0xA, ACTOR_2E5_DOOR_OF_GRUNTY, 0x28);
if(func_803203FC(0x18)){ if(func_803203FC(0x18)){
if(!func_8031FF1C(BKPROG_99_PAST_50_NOTE_DOOR_TEXT)){ if(!fileProgressFlag_get(FILEPROG_99_PAST_50_NOTE_DOOR_TEXT)){
func_80311174(0xF75, 0xE, NULL, NULL, NULL, NULL, func_802D5140); func_80311174(0xF75, 0xE, NULL, NULL, NULL, NULL, func_802D5140);
func_80320004(BKPROG_99_PAST_50_NOTE_DOOR_TEXT, TRUE); fileProgressFlag_set(FILEPROG_99_PAST_50_NOTE_DOOR_TEXT, TRUE);
func_803204E4(0x18, 0); func_803204E4(0x18, 0);
} }
else{//L802D5DD8 else{//L802D5DD8
@@ -1039,11 +1039,11 @@ void func_802D5628(void){
){ ){
if( map_get() != MAP_8E_GL_FURNACE_FUN if( map_get() != MAP_8E_GL_FURNACE_FUN
&& map_get() != MAP_90_GL_BATTLEMENTS && map_get() != MAP_90_GL_BATTLEMENTS
&& !func_8031FF1C(BKPROG_FC_DEFEAT_GRUNTY) && !fileProgressFlag_get(FILEPROG_FC_DEFEAT_GRUNTY)
){ ){
D_8037DE04 += time_getDelta(); D_8037DE04 += time_getDelta();
if(D_80367680 < D_8037DE04 && !func_803203FC(0x16)){ if(D_80367680 < D_8037DE04 && !func_803203FC(0x16)){
if(func_8031FF1C(BKPROG_A6_FURNACE_FUN_COMPLETE)){ if(fileProgressFlag_get(FILEPROG_A6_FURNACE_FUN_COMPLETE)){
sp4C = 0xF9D; sp4C = 0xF9D;
} }
else{ else{
@@ -1056,7 +1056,7 @@ void func_802D5628(void){
if(func_803203FC(0x22)){ if(func_803203FC(0x22)){
if(func_80311480(0xF82, 4, NULL, NULL, NULL, NULL)){ if(func_80311480(0xF82, 4, NULL, NULL, NULL, NULL)){
func_80320004(0xc1, 1); fileProgressFlag_set(FILEPROG_C1_BADDIES_ESCAPE_TEXT, TRUE);
func_803204E4(0x22, 0); func_803204E4(0x22, 0);
D_8037DE04 = 0.0f; D_8037DE04 = 0.0f;
D_80367680 += 60.0; D_80367680 += 60.0;
@@ -1085,15 +1085,15 @@ void func_802D5628(void){
//water_level_atleast_2; //water_level_atleast_2;
int func_802D6088(void){ int func_802D6088(void){
return func_8031FF1C(BKPROG_25_LAIR_WATER_LEVEL_2) return fileProgressFlag_get(FILEPROG_25_LAIR_WATER_LEVEL_2)
|| func_8031FF1C(BKPROG_27_LAIR_WATER_LEVEL_3); || fileProgressFlag_get(FILEPROG_27_LAIR_WATER_LEVEL_3);
} }
//water_level_atleast_1; //water_level_atleast_1;
int func_802D60C4(void){ int func_802D60C4(void){
return func_8031FF1C(BKPROG_23_LAIR_WATER_LEVEL_1) return fileProgressFlag_get(FILEPROG_23_LAIR_WATER_LEVEL_1)
|| func_8031FF1C(BKPROG_25_LAIR_WATER_LEVEL_2) || fileProgressFlag_get(FILEPROG_25_LAIR_WATER_LEVEL_2)
|| func_8031FF1C(BKPROG_27_LAIR_WATER_LEVEL_3); || fileProgressFlag_get(FILEPROG_27_LAIR_WATER_LEVEL_3);
} }
void func_802D6114(void){ void func_802D6114(void){
@@ -1103,7 +1103,7 @@ void func_802D6114(void){
sp24 = D_80367694;\ sp24 = D_80367694;\
sp20 = D_80367698; sp20 = D_80367698;
if(D_8036769C) if(D_8036769C)
func_80320004(D_8036769C, TRUE); fileProgressFlag_set(D_8036769C, TRUE);
func_802D6344(); func_802D6344();
if(map_get() != sp24){ if(map_get() != sp24){
if(map_getLevel(sp24) != map_getLevel(map_get())){ if(map_getLevel(sp24) != map_getLevel(map_get())){
@@ -1129,8 +1129,8 @@ void func_802D61FC(enum map_e arg0){
func_802D6750(); func_802D6750();
} }
void func_802D6264(f32 arg0, enum map_e arg1, s32 arg2, s32 arg3, s32 arg4, enum bkprog_e arg5){ void func_802D6264(f32 delay, enum map_e map_id, s32 arg2, s32 arg3, s32 arg4, enum file_progress_e arg5){
D_80367684 = arg1; D_80367684 = map_id;
D_80367688 = arg2; D_80367688 = arg2;
D_8036768C = arg3; D_8036768C = arg3;
D_80367690 = 0; D_80367690 = 0;
@@ -1140,17 +1140,17 @@ void func_802D6264(f32 arg0, enum map_e arg1, s32 arg2, s32 arg3, s32 arg4, enum
D_8036769C = arg5; D_8036769C = arg5;
D_803676A0 = 0; D_803676A0 = 0;
if(arg1 != D_80367694){ if(map_id != D_80367694){
timedFunc_set_1(arg0, (GenMethod_1) func_802D61FC, arg1); timedFunc_set_1(delay, (GenMethod_1) func_802D61FC, map_id);
} }
else{ else{
timedFunc_set_0(arg0, func_802D63D4); timedFunc_set_0(delay, func_802D63D4);
} }
gcpausemenu_80314AC8(0); gcpausemenu_80314AC8(0);
} }
void func_802D6310(f32 arg0, enum map_e arg1, s32 arg2, s32 arg3, enum bkprog_e arg4){ void func_802D6310(f32 delay, enum map_e map_id, s32 arg2, s32 arg3, enum file_progress_e arg4){
func_802D6264(arg0, arg1, arg2, arg3, 0x63, arg4); func_802D6264(delay, map_id, arg2, arg3, 0x63, arg4);
func_8028FCE8(); func_8028FCE8();
} }
@@ -1205,19 +1205,19 @@ void func_802D6494(void){
if( (!D_80367684 || (D_80367684 && (map_get() == D_80367684))) if( (!D_80367684 || (D_80367684 && (map_get() == D_80367684)))
){ ){
switch(D_803676A0){ switch(D_803676A0){
case ACTOR_2E5_WOODEN_DOOR: case ACTOR_2E5_DOOR_OF_GRUNTY:
break; break;
case ACTOR_20E_MM_ENTRANCE_DOOR:// L802D6510 case ACTOR_20E_MM_ENTRANCE_DOOR:// L802D6510
FUNC_8030E624(SFX_6B_LOCKUP_OPENING, 0.6f, 32000); FUNC_8030E624(SFX_6B_LOCKUP_OPENING, 0.6f, 32000);
func_8025A6CC(COMUSIC_64_WORLD_OPENING_A, 32000); func_8025A6CC(COMUSIC_64_WORLD_OPENING_A, 32000);
break; break;
case ACTOR_211_CHEST_LID:// L802D6530 case ACTOR_211_TCC_ENTRANCE_CHEST_LID:// L802D6530
FUNC_8030E624(SFX_6B_LOCKUP_OPENING, 0.6f, 32000); FUNC_8030E624(SFX_6B_LOCKUP_OPENING, 0.6f, 32000);
func_8025A6CC(COMUSIC_64_WORLD_OPENING_A, 32000); func_8025A6CC(COMUSIC_64_WORLD_OPENING_A, 32000);
break; break;
case ACTOR_212_IRON_BARS:// L802D6550 case ACTOR_212_CC_ENTRANCE_BARS:// L802D6550
if(map_get() == MAP_70_GL_CC_LOBBY && !func_803203FC(UNKFLAGS1_7F_SANDCASTLE_OPEN_CC)){ if(map_get() == MAP_70_GL_CC_LOBBY && !func_803203FC(UNKFLAGS1_7F_SANDCASTLE_OPEN_CC)){
func_802D4830(actorArray_findActorFromActorId(ACTOR_212_IRON_BARS), SFX_9A_MECHANICAL_CLOSING, 0.5f); func_802D4830(actorArray_findActorFromActorId(ACTOR_212_CC_ENTRANCE_BARS), SFX_9A_MECHANICAL_CLOSING, 0.5f);
func_8025A6CC(COMUSIC_64_WORLD_OPENING_A, 32000); func_8025A6CC(COMUSIC_64_WORLD_OPENING_A, 32000);
} }
break; break;
@@ -1245,7 +1245,7 @@ void func_802D6494(void){
func_8025A6CC(COMUSIC_64_WORLD_OPENING_A, 32000); func_8025A6CC(COMUSIC_64_WORLD_OPENING_A, 32000);
} }
break; break;
case ACTOR_228_INVISIBLE_WALL:// L802D66CC case ACTOR_228_MMM_ENTRANCE_DOOR:// L802D66CC
if(!func_803203FC(UNKFLAGS1_8C_SANDCASTLE_OPEN_MMM)){ if(!func_803203FC(UNKFLAGS1_8C_SANDCASTLE_OPEN_MMM)){
FUNC_8030E624(SFX_6B_LOCKUP_OPENING, 0.6f, 32000); FUNC_8030E624(SFX_6B_LOCKUP_OPENING, 0.6f, 32000);
func_8025A6CC(COMUSIC_64_WORLD_OPENING_A, 32000); func_8025A6CC(COMUSIC_64_WORLD_OPENING_A, 32000);
@@ -1337,31 +1337,31 @@ void func_802D6924(void){
void func_802D6948(void){ void func_802D6948(void){
switch(map_get()){ switch(map_get()){
case MAP_2_MM_MUMBOS_MOUNTAIN: case MAP_2_MM_MUMBOS_MOUNTAIN:
func_80320004(BKPROG_B0_HAS_ENTERED_MM, TRUE); fileProgressFlag_set(FILEPROG_B0_HAS_ENTERED_MM, TRUE);
break; break;
case MAP_7_TTC_TREASURE_TROVE_COVE: case MAP_7_TTC_TREASURE_TROVE_COVE:
func_80320004(BKPROG_B2_HAS_ENTERED_TTC, TRUE); fileProgressFlag_set(FILEPROG_B2_HAS_ENTERED_TTC, TRUE);
break; break;
case MAP_B_CC_CLANKERS_CAVERN: case MAP_B_CC_CLANKERS_CAVERN:
func_80320004(BKPROG_B8_HAS_ENTERED_CC, TRUE); fileProgressFlag_set(FILEPROG_B8_HAS_ENTERED_CC, TRUE);
break; break;
case MAP_D_BGS_BUBBLEGLOOP_SWAMP: case MAP_D_BGS_BUBBLEGLOOP_SWAMP:
func_80320004(BKPROG_B1_HAS_ENTERED_BGS, TRUE); fileProgressFlag_set(FILEPROG_B1_HAS_ENTERED_BGS, TRUE);
break; break;
case MAP_12_GV_GOBIS_VALLEY: case MAP_12_GV_GOBIS_VALLEY:
func_80320004(BKPROG_B3_HAS_ENTERED_GV, TRUE); fileProgressFlag_set(FILEPROG_B3_HAS_ENTERED_GV, TRUE);
break; break;
case MAP_1B_MMM_MAD_MONSTER_MANSION: case MAP_1B_MMM_MAD_MONSTER_MANSION:
func_80320004(BKPROG_B7_HAS_ENTERED_MMM, TRUE); fileProgressFlag_set(FILEPROG_B7_HAS_ENTERED_MMM, TRUE);
break; break;
case MAP_27_FP_FREEZEEZY_PEAK: case MAP_27_FP_FREEZEEZY_PEAK:
func_80320004(BKPROG_B6_HAS_ENTERED_FP, TRUE); fileProgressFlag_set(FILEPROG_B6_HAS_ENTERED_FP, TRUE);
break; break;
case MAP_31_RBB_RUSTY_BUCKET_BAY: case MAP_31_RBB_RUSTY_BUCKET_BAY:
func_80320004(BKPROG_B4_HAS_ENTERED_RBB, TRUE); fileProgressFlag_set(FILEPROG_B4_HAS_ENTERED_RBB, TRUE);
break; break;
case MAP_40_CCW_HUB: case MAP_40_CCW_HUB:
func_80320004(BKPROG_B5_HAS_ENTERED_CCW, TRUE); fileProgressFlag_set(FILEPROG_B5_HAS_ENTERED_CCW, TRUE);
break; break;
} }
} }
@@ -1370,23 +1370,23 @@ void func_802D6948(void){
int func_802D6A38(enum map_e map_id){ int func_802D6A38(enum map_e map_id){
switch(map_id){ switch(map_id){
case MAP_2_MM_MUMBOS_MOUNTAIN: case MAP_2_MM_MUMBOS_MOUNTAIN:
return func_8031FF1C(BKPROG_B0_HAS_ENTERED_MM); return fileProgressFlag_get(FILEPROG_B0_HAS_ENTERED_MM);
case MAP_7_TTC_TREASURE_TROVE_COVE: case MAP_7_TTC_TREASURE_TROVE_COVE:
return func_8031FF1C(BKPROG_B2_HAS_ENTERED_TTC); return fileProgressFlag_get(FILEPROG_B2_HAS_ENTERED_TTC);
case MAP_B_CC_CLANKERS_CAVERN: case MAP_B_CC_CLANKERS_CAVERN:
return func_8031FF1C(BKPROG_B8_HAS_ENTERED_CC); return fileProgressFlag_get(FILEPROG_B8_HAS_ENTERED_CC);
case MAP_D_BGS_BUBBLEGLOOP_SWAMP: case MAP_D_BGS_BUBBLEGLOOP_SWAMP:
return func_8031FF1C(BKPROG_B1_HAS_ENTERED_BGS); return fileProgressFlag_get(FILEPROG_B1_HAS_ENTERED_BGS);
case MAP_12_GV_GOBIS_VALLEY: case MAP_12_GV_GOBIS_VALLEY:
return func_8031FF1C(BKPROG_B3_HAS_ENTERED_GV); return fileProgressFlag_get(FILEPROG_B3_HAS_ENTERED_GV);
case MAP_1B_MMM_MAD_MONSTER_MANSION: case MAP_1B_MMM_MAD_MONSTER_MANSION:
return func_8031FF1C(BKPROG_B7_HAS_ENTERED_MMM); return fileProgressFlag_get(FILEPROG_B7_HAS_ENTERED_MMM);
case MAP_27_FP_FREEZEEZY_PEAK: case MAP_27_FP_FREEZEEZY_PEAK:
return func_8031FF1C(BKPROG_B6_HAS_ENTERED_FP); return fileProgressFlag_get(FILEPROG_B6_HAS_ENTERED_FP);
case MAP_31_RBB_RUSTY_BUCKET_BAY: case MAP_31_RBB_RUSTY_BUCKET_BAY:
return func_8031FF1C(BKPROG_B4_HAS_ENTERED_RBB); return fileProgressFlag_get(FILEPROG_B4_HAS_ENTERED_RBB);
case MAP_40_CCW_HUB: case MAP_40_CCW_HUB:
return func_8031FF1C(BKPROG_B5_HAS_ENTERED_CCW); return fileProgressFlag_get(FILEPROG_B5_HAS_ENTERED_CCW);
} }
return FALSE; return FALSE;
} }

View File

@@ -109,14 +109,14 @@ void __chLevelCollectible_collide(ActorMarker *marker, ActorMarker *other_marker
case MARKER_36_ORANGE_COLLECTIBLE: case MARKER_36_ORANGE_COLLECTIBLE:
if (mapSpecificFlags_get(1)) if (mapSpecificFlags_get(1))
return; return;
func_8035646C(8); func_8035646C(FILEPROG_8_ORANGE_TEXT);
func_8030E6D4(SFX_B3_ORANGE_TALKING); func_8030E6D4(SFX_B3_ORANGE_TALKING);
dialog_id = 0; dialog_id = 0;
break; break;
case MARKER_37_GOLD_BULLION: case MARKER_37_GOLD_BULLION:
func_8025A6EC(COMUSIC_2B_DING_B, 0x7FFF); func_8025A6EC(COMUSIC_2B_DING_B, 0x7FFF);
timedFunc_set_1(0.5f, func_8035646C, 9); timedFunc_set_1(0.5f, func_8035646C, FILEPROG_9_GOLD_BULLION_TEXT);
dialog_id = 0; dialog_id = 0;
break; break;

View File

@@ -18,16 +18,16 @@ void func_802DA9A0(ActorMarker *caller, enum asset_e text_id, s32 arg2){
s32 flag; s32 flag;
s32 tmp; s32 tmp;
if(level_get() == LEVEL_A_MAD_MONSTER_MANSION){ if(level_get() == LEVEL_A_MAD_MONSTER_MANSION){
flag = BKPROG_15_ENTER_MMM_TEXT; flag = FILEPROG_15_ENTER_MMM_TEXT;
} }
else{ else{
if(map_get() == MAP_69_GL_MM_LOBBY) if(map_get() == MAP_69_GL_MM_LOBBY)
tmp = BKPROG_97_ENTERED_LAIR_TEXT; tmp = FILEPROG_97_ENTERED_LAIR_TEXT;
else else
tmp = BKPROG_98_EXITED_LEVEL_TEXT; tmp = FILEPROG_98_EXITED_LEVEL_TEXT;
flag = tmp; flag = tmp;
} }
func_80320004(flag, 1); fileProgressFlag_set(flag, 1);
FUNC_8030E624(SFX_EA_GRUNTY_LAUGH_1, 1.0f, 30000); FUNC_8030E624(SFX_EA_GRUNTY_LAUGH_1, 1.0f, 30000);
} }
@@ -42,17 +42,17 @@ void func_802DAA14(Actor *this){
} }
if(level_get() == LEVEL_A_MAD_MONSTER_MANSION){ if(level_get() == LEVEL_A_MAD_MONSTER_MANSION){
flag = BKPROG_15_ENTER_MMM_TEXT; flag = FILEPROG_15_ENTER_MMM_TEXT;
} }
else{ else{
if(map_get() == MAP_69_GL_MM_LOBBY) if(map_get() == MAP_69_GL_MM_LOBBY)
tmp = BKPROG_97_ENTERED_LAIR_TEXT; tmp = FILEPROG_97_ENTERED_LAIR_TEXT;
else else
tmp = BKPROG_98_EXITED_LEVEL_TEXT; tmp = FILEPROG_98_EXITED_LEVEL_TEXT;
flag = tmp; flag = tmp;
} }
if(func_8031FF1C(flag)){ if(fileProgressFlag_get(flag)){
marker_despawn(this->marker); marker_despawn(this->marker);
return; return;
} }

View File

@@ -29,7 +29,7 @@ void chMumboToken_collect(ActorMarker *marker, ActorMarker *other_marker){
this = marker_getActor(marker); this = marker_getActor(marker);
mumboscore_set(func_802E0CB0(this), TRUE); mumboscore_set(func_802E0CB0(this), TRUE);
func_8030E760(0x401, 1.0f, 0x7fff); func_8030E760(0x401, 1.0f, 0x7fff);
timedFunc_set_1(0.75f, func_8035644C, 4); timedFunc_set_1(0.75f, func_8035644C, FILEPROG_4_MUMBO_TOKEN_TEXT);
fxSparkle_mumboToken(&marker->propPtr->x); fxSparkle_mumboToken(&marker->propPtr->x);
item_inc(ITEM_1C_MUMBO_TOKEN); item_inc(ITEM_1C_MUMBO_TOKEN);
marker_despawn(marker); marker_despawn(marker);

View File

@@ -381,7 +381,7 @@ void func_802E4214(enum map_e map_id){
D_8037E8E0.unk1B = D_8037E8E0.unk1A = 0; D_8037E8E0.unk1B = D_8037E8E0.unk1A = 0;
D_8037E8E0.unkC = 0; D_8037E8E0.unkC = 0;
D_8037E8E0.unk1C = 0; D_8037E8E0.unk1C = 0;
func_8033C070(); savedata_init();
sns_save_and_update_global_data(); sns_save_and_update_global_data();
func_8030D86C(); func_8030D86C();
func_80259A24(); func_80259A24();

View File

@@ -4,7 +4,7 @@
extern void func_8028F918(s32); extern void func_8028F918(s32);
void func_8031A9E4(Actor *this); void chMinigame_update(Actor *this);
enum minigame_e { enum minigame_e {
MINIGAME_0_BOSS_BOOM_BOX, MINIGAME_0_BOSS_BOOM_BOX,
@@ -16,16 +16,22 @@ enum minigame_e {
MINIGAME_F_INVALID = 0xF MINIGAME_F_INVALID = 0xF
}; };
enum chminigame_state_e {
MINIGAME_STATE_1_INTRODUCE_GAME = 1,
MINIGAME_STATE_2_IN_PROGESS,
MINIGAME_STATE_3_RETURN_TO_FF,
};
/* .data */ /* .data */
ActorInfo D_8036D970 = { ActorInfo chMinigame = {
0x1E1, 0x376, 0x0, MARKER_1E1_FF_MINIGAME, ACTOR_376_FF_MINIGAME, 0x0,
0x1, NULL, MINIGAME_STATE_1_INTRODUCE_GAME, NULL,
func_8031A9E4, func_80326224, func_80325340, chMinigame_update, func_80326224, func_80325340,
0, 0, 0.0f, 0 0, 0, 0.0f, 0
}; };
/* .code */ /* .code */
enum minigame_e func_8031A580(void){ enum minigame_e __chminigame_getCurrentMapId(void){
switch(map_get()){ switch(map_get()){
case MAP_3A_RBB_BOSS_BOOM_BOX: case MAP_3A_RBB_BOSS_BOOM_BOX:
return MINIGAME_0_BOSS_BOOM_BOX; return MINIGAME_0_BOSS_BOOM_BOX;
@@ -45,7 +51,7 @@ enum minigame_e func_8031A580(void){
return MINIGAME_F_INVALID; return MINIGAME_F_INVALID;
} }
void func_8031A618(Actor *this) { void __chMinigame_hideSandcastleJiggy(Actor *this) {
Actor *jiggy; Actor *jiggy;
if (this->unk10_12 == MINIGAME_5_SANDCASTLE) { if (this->unk10_12 == MINIGAME_5_SANDCASTLE) {
@@ -80,7 +86,7 @@ void func_8031A678(Actor *this){
break; break;
case MINIGAME_5_SANDCASTLE: case MINIGAME_5_SANDCASTLE:
sp2C = func_8034C528(0x191); sp2C = func_8034C528(0x191); //lower water
func_8034DEB4(sp2C, -1000.0f); func_8034DEB4(sp2C, -1000.0f);
break; break;
@@ -96,37 +102,37 @@ void func_8031A678(Actor *this){
} }
} }
void func_8031A794(ActorMarker *marker, enum asset_e text_id, s32 arg2){ void __chMinigame_textCallback1(ActorMarker *marker, enum asset_e text_id, s32 arg2){
Actor *this = marker_getActor(marker); Actor *this = marker_getActor(marker);
this->unk138_24 = TRUE; this->unk138_24 = TRUE;
} }
void func_8031A7C4(ActorMarker *marker, enum asset_e text_id, s32 arg2){ void __chMinigame_transformToCroc(ActorMarker *marker, enum asset_e text_id, s32 arg2){
if(arg2 == 1){ if(arg2 == 1){
func_8028FB88(TRANSFORM_5_CROC); func_8028FB88(TRANSFORM_5_CROC);
} }
} }
void func_8031A7F4(Actor *this, u32 arg1) { void __chMinigame_setState(Actor *this, u32 arg1) {
switch (arg1) { switch (arg1) {
case 1: case MINIGAME_STATE_1_INTRODUCE_GAME:
func_8028F918(2); func_8028F918(2);
if (this->unk10_12 == MINIGAME_1_VILE) { if (this->unk10_12 == MINIGAME_1_VILE) {
func_80347A14(0); func_80347A14(0);
} }
if (func_803203FC(this->unk10_12 + 6) == 0) { if (func_803203FC(this->unk10_12 + 6) == 0) {
func_80324DBC(2.0f, this->unk10_12 + 0x1026, 0xA2, NULL, this->marker, func_8031A794, func_8031A7C4); func_80324DBC(2.0f, this->unk10_12 + 0x1026, 0xA2, NULL, this->marker, __chMinigame_textCallback1, __chMinigame_transformToCroc);
func_803204E4(this->unk10_12 + 6, 1); func_803204E4(this->unk10_12 + 6, 1);
this->unk138_23 = TRUE; this->unk138_23 = TRUE;
} else { } else {
func_80324DBC(2.0f, 0xD38, 0x20, NULL, this->marker, func_8031A794, NULL); func_80324DBC(2.0f, 0xD38, 0x20, NULL, this->marker, __chMinigame_textCallback1, NULL);
} }
break; break;
case 2: case MINIGAME_STATE_2_IN_PROGESS:
func_8028F918(0); func_8028F918(0);
func_803204E4(3, 1); func_803204E4(3, 1);
break; break;
case 3: case MINIGAME_STATE_3_RETURN_TO_FF:
func_803204E4(4, 1); func_803204E4(4, 1);
func_8028F918(2); func_8028F918(2);
func_8025AB00(); func_8025AB00();
@@ -139,22 +145,22 @@ void func_8031A7F4(Actor *this, u32 arg1) {
func_80328A84(this, arg1); func_80328A84(this, arg1);
} }
void func_8031A9BC(Actor *this){ void __chMinigame_free(Actor *this){
func_803204E4(3, 0); func_803204E4(3, 0);
} }
void func_8031A9E4(Actor *this){ void chMinigame_update(Actor *this){
if(!this->unk16C_4){ if(!this->unk16C_4){
this->unk16C_4 = 1; this->unk16C_4 = 1;
this->unk10_12 = func_8031A580(); this->unk10_12 = __chminigame_getCurrentMapId();
actor_collisionOff(this); actor_collisionOff(this);
if(!func_803203FC(2)){ if(!func_803203FC(2)){
func_8031A678(this); func_8031A678(this);
return; return;
} }
func_8031A618(this); __chMinigame_hideSandcastleJiggy(this);
marker_setFreeMethod(this->marker, func_8031A9BC); marker_setFreeMethod(this->marker, __chMinigame_free);
func_8028FAB0(this->position); func_8028FAB0(this->position);
this->unk1C[0] = 0.0f; this->unk1C[1] = this->yaw; this->unk1C[2] = 0.0f; this->unk1C[0] = 0.0f; this->unk1C[1] = this->yaw; this->unk1C[2] = 0.0f;
func_8028FAEC(this->unk1C); func_8028FAEC(this->unk1C);
@@ -165,24 +171,24 @@ void func_8031A9E4(Actor *this){
} }
func_803204E4(5, 0); func_803204E4(5, 0);
func_803204E4(3, 0); func_803204E4(3, 0);
func_8031A7F4(this, 1); __chMinigame_setState(this, MINIGAME_STATE_1_INTRODUCE_GAME);
gcpausemenu_80314AC8(0); gcpausemenu_80314AC8(0);
} }
if(func_803203FC(2)){ if(func_803203FC(2)){
switch(this->state){ switch(this->state){
case 1://L8031AB2C case MINIGAME_STATE_1_INTRODUCE_GAME://L8031AB2C
if(this->unk138_24) if(this->unk138_24)
func_8031A7F4(this, 2); __chMinigame_setState(this, MINIGAME_STATE_2_IN_PROGESS);
break; break;
case 2://L8031AB50 case MINIGAME_STATE_2_IN_PROGESS://L8031AB50
func_8028FA14(MAP_8E_GL_FURNACE_FUN, 2); func_8028FA14(MAP_8E_GL_FURNACE_FUN, 2);
if(item_getCount(ITEM_14_HEALTH) == 0) if(item_getCount(ITEM_14_HEALTH) == 0)
item_set(ITEM_6_HOURGLASS, 0); item_set(ITEM_6_HOURGLASS, 0);
if(!func_803203FC(3)){ if(!func_803203FC(3)){
func_8031A7F4(this, 3); __chMinigame_setState(this, MINIGAME_STATE_3_RETURN_TO_FF);
} }
break; break;
case 3: case MINIGAME_STATE_3_RETURN_TO_FF:
break; break;
} }
}//L8031AB8C }//L8031AB8C

View File

@@ -5,10 +5,10 @@
extern void func_8028F3D8(f32 *, f32, void(*)(ActorMarker *), ActorMarker *); extern void func_8028F3D8(f32 *, f32, void(*)(ActorMarker *), ActorMarker *);
extern void func_8028F760(s32, f32, f32); extern void func_8028F760(s32, f32, f32);
extern void func_8031CE70(f32 *arg0, s32 arg1, s32 arg2); extern void func_8031CE70(f32 *arg0, s32 arg1, s32 arg2);
extern s32 func_8031FF1C(s32); extern s32 fileProgressFlag_get(s32);
extern s32 func_8031FF44(s32 offset, s32 numBits); extern s32 fileProgressFlag_getN(s32 offset, s32 numBits);
extern void func_8031FFAC(void); extern void func_8031FFAC(void);
extern void func_80320004(s32 index, s32 set); extern void fileProgressFlag_set(s32 index, s32 set);
extern void func_8032048C(void); extern void func_8032048C(void);
extern void func_803204E4(s32 arg0, s32 arg1); extern void func_803204E4(s32 arg0, s32 arg1);
extern void ml_vec3h_to_vec3f(f32 *, s32); extern void ml_vec3h_to_vec3f(f32 *, s32);
@@ -34,7 +34,7 @@ u8 D_80383190;
/* .code */ /* .code */
bool func_8031C640(void) { bool func_8031C640(void) {
if ((func_8024E698(0) == 1) && (func_8033D1EC() != 0)) { if ((func_8024E698(0) == 1) && (gameFile_anyNonEmpty() != 0)) {
return TRUE; return TRUE;
} }
return FALSE; return FALSE;
@@ -57,9 +57,9 @@ bool func_8031C6E4(void) {
sp24 = func_8024E698(0); sp24 = func_8024E698(0);
if (mapSpecificFlags_get(0) != 0) { if (mapSpecificFlags_get(0) != 0) {
func_80320004(0xE1, 1); fileProgressFlag_set(0xE1, 1);
} }
if ((sp24 == 1) && func_8031FF1C(0xE1) && !gctransition_8030BDC0()) { if ((sp24 == 1) && fileProgressFlag_get(0xE1) && !gctransition_8030BDC0()) {
if (!mapSpecificFlags_get(0xC)) { if (!mapSpecificFlags_get(0xC)) {
mapSpecificFlags_set(0xC, TRUE); mapSpecificFlags_set(0xC, TRUE);
func_802DC528(0, 0); func_802DC528(0, 0);
@@ -302,7 +302,7 @@ void func_8031D2B4(s32 arg0, s32 arg1) {
} }
void func_8031D2F4(s32 arg0, s32 arg1) { void func_8031D2F4(s32 arg0, s32 arg1) {
if (func_8031FF44(0xF8, 2) == 3) { if (fileProgressFlag_getN(0xF8, 2) == 3) {
func_8031CC8C(arg0, 0x1401); func_8031CC8C(arg0, 0x1401);
} }
} }
@@ -1427,7 +1427,7 @@ void func_8031FA90(s32 arg0, s32 arg1) {
} }
void func_8031FAB4(s32 arg0, s32 arg1) { void func_8031FAB4(s32 arg0, s32 arg1) {
if ((func_8031FF1C(BKPROG_FC_DEFEAT_GRUNTY) != 0) && (jiggyscore_total() == 100)) { if ((fileProgressFlag_get(FILEPROG_FC_DEFEAT_GRUNTY) != 0) && (jiggyscore_total() == 100)) {
func_8031CC8C(arg0, 0x9501); func_8031CC8C(arg0, 0x9501);
} else { } else {
func_8031CC8C(arg0, 0x9001); func_8031CC8C(arg0, 0x9001);
@@ -1435,10 +1435,10 @@ void func_8031FAB4(s32 arg0, s32 arg1) {
} }
void func_8031FB14(s32 arg0, s32 arg1) { void func_8031FB14(s32 arg0, s32 arg1) {
if (func_8031FF1C(BKPROG_BD_ENTER_LAIR_CUTSCENE) != 0) { if (fileProgressFlag_get(FILEPROG_BD_ENTER_LAIR_CUTSCENE) != 0) {
func_8031CC8C(arg0, 0x6912); func_8031CC8C(arg0, 0x6912);
} else { } else {
func_80320004(BKPROG_BD_ENTER_LAIR_CUTSCENE, 1); fileProgressFlag_set(FILEPROG_BD_ENTER_LAIR_CUTSCENE, 1);
func_8031CC8C(arg0, 0x8204); func_8031CC8C(arg0, 0x8204);
} }
} }

View File

@@ -2,16 +2,15 @@
#include "functions.h" #include "functions.h"
#include "variables.h" #include "variables.h"
s32 func_8031FF1C(s32);
void func_8031FFAC(void); void func_8031FFAC(void);
void func_80320004(s32 index, s32 set); void fileProgressFlag_set(s32 index, s32 set);
s32 func_803200A4(u8 *array, s32 index); s32 func_803200A4(u8 *array, s32 index);
s32 func_803200E4(u8 *array, s32 offset, s32 numBits); s32 func_803200E4(u8 *array, s32 offset, s32 numBits);
void func_8032015C(u8 *array, s32 index, s32 set); void func_8032015C(u8 *array, s32 index, s32 set);
void func_803201C8(u8 *array, s32 startIndex, s32 set, s32 length); void func_803201C8(u8 *array, s32 startIndex, s32 set, s32 length);
void func_8032048C(void); void func_8032048C(void);
void func_803204E4(s32 arg0, s32 arg1); void func_803204E4(s32 arg0, s32 arg1);
s32 func_8031FF44(s32 offset, s32 numBits); s32 fileProgressFlag_getN(s32 offset, s32 numBits);
void func_8031CE70(f32 *arg0, s32 arg1, s32 arg2); void func_8031CE70(f32 *arg0, s32 arg1, s32 arg2);
void ml_vec3h_to_vec3f(f32 *, s32); void ml_vec3h_to_vec3f(f32 *, s32);
void func_8028F3D8(f32 *, f32, void(*)(ActorMarker *), ActorMarker *); void func_8028F3D8(f32 *, f32, void(*)(ActorMarker *), ActorMarker *);
@@ -108,19 +107,19 @@ void func_8031FEC0(void) {
*obscured_addr = func_8031FE40(); *obscured_addr = func_8031FE40();
} }
s32 func_8031FF1C(s32 index) { bool fileProgressFlag_get(enum file_progress_e index) {
return func_803200A4(D_803831A0.unk8, index); return func_803200A4(D_803831A0.unk8, index);
} }
s32 func_8031FF44(s32 offset, s32 numBits) { s32 fileProgressFlag_getN(s32 offset, s32 numBits) {
return func_803200E4(D_803831A0.unk8, offset, numBits); return func_803200E4(D_803831A0.unk8, offset, numBits);
} }
s32 func_8031FF74(s32 index, s32 set) { s32 fileProgressFlag_getAndSet(s32 index, s32 set) {
s32 ret; s32 ret;
ret = func_8031FF1C(index); ret = fileProgressFlag_get(index);
func_80320004(index, set); fileProgressFlag_set(index, set);
return ret; return ret;
} }
@@ -134,13 +133,13 @@ void func_8031FFAC(void) {
func_8031FEC0(); func_8031FEC0();
} }
void func_80320004(s32 index, s32 set) { void fileProgressFlag_set(s32 index, s32 set) {
func_8032015C(D_803831A0.unk8, index, set); func_8032015C(D_803831A0.unk8, index, set);
func_8031FC40(); func_8031FC40();
func_8031FEC0(); func_8031FEC0();
} }
void func_80320044(s32 startIndex, s32 set, s32 length) { void fileProgressFlag_setN(s32 startIndex, s32 set, s32 length) {
func_803201C8(D_803831A0.unk8, startIndex, set, length); func_803201C8(D_803831A0.unk8, startIndex, set, length);
func_8031FC40(); func_8031FC40();
func_8031FEC0(); func_8031FEC0();

View File

@@ -37,7 +37,7 @@ void func_803216D0(enum map_e map){
levelSpecificFlags_clear(); levelSpecificFlags_clear();
bsStoredState_clearTimers(); bsStoredState_clearTimers();
func_803219A8(); func_803219A8();
if( func_80320454(0x17, 0) if( func_80320454(0x17, FALSE)
&& getGameMode() != 0 && getGameMode() != 0
&& D_80383300.level != LEVEL_D_CUTSCENE && D_80383300.level != LEVEL_D_CUTSCENE
&& map != MAP_91_FILE_SELECT && map != MAP_91_FILE_SELECT
@@ -57,7 +57,7 @@ void func_803216D0(enum map_e map){
ttc_resetTresureHunt(); ttc_resetTresureHunt();
break; break;
case MAP_1B_MMM_MAD_MONSTER_MANSION: case MAP_1B_MMM_MAD_MONSTER_MANSION:
mm_resetFlowerPots(); mmm_resetFlowerPots();
break; break;
} }
} }
@@ -71,8 +71,8 @@ void func_80321854(void){
if( D_80383300.level == LEVEL_1_MUMBOS_MOUNTAIN if( D_80383300.level == LEVEL_1_MUMBOS_MOUNTAIN
&& getGameMode() != 0 && getGameMode() != 0
&& func_8031FF1C(BKPROG_31_MM_OPEN) && fileProgressFlag_get(FILEPROG_31_MM_OPEN)
&& !func_8031FF1C(0xC1) && !fileProgressFlag_get(FILEPROG_C1_BADDIES_ESCAPE_TEXT)
){ ){
func_803204E4(0x22, 1); func_803204E4(0x22, 1);
} }

View File

@@ -183,11 +183,11 @@ void func_80332CCC(void) {
} }
void func_80332D98(enum map_e map_id, enum jiggy_e jiggy_id, enum bkprog_e flag_id, s32 arg3) { void func_80332D98(enum map_e map_id, enum jiggy_e jiggy_id, enum file_progress_e flag_id, s32 arg3) {
f32 sp1C[3]; f32 sp1C[3];
if ((map_get() == map_id) if ((map_get() == map_id)
&& func_8031FF1C(flag_id) && fileProgressFlag_get(flag_id)
&& !jiggyscore_isSpawned(jiggy_id) && !jiggyscore_isSpawned(jiggy_id)
&& nodeProp_findPositionFromActorId(arg3, sp1C) && nodeProp_findPositionFromActorId(arg3, sp1C)
) { ) {
@@ -206,13 +206,13 @@ void func_80332E08(void) {
var_v0 = D_8038356C; var_v0 = D_8038356C;
} }
} }
func_80332D98(MAP_69_GL_MM_LOBBY, JIGGY_34_LAIR_MM_WITCH_SWITCH, BKPROG_18_MM_WITCH_SWITCH_JIGGY_SPAWNED, 0x205); func_80332D98(MAP_69_GL_MM_LOBBY, JIGGY_34_LAIR_MM_WITCH_SWITCH, FILEPROG_18_MM_WITCH_SWITCH_JIGGY_PRESSED, 0x205);
func_80332D98(MAP_6F_GL_FP_LOBBY, JIGGY_39_LAIR_MMM_WITCH_SWITCH, BKPROG_19_MMM_WITCH_SWITCH_JIGGY_SPAWNED, 0x207); func_80332D98(MAP_6F_GL_FP_LOBBY, JIGGY_39_LAIR_MMM_WITCH_SWITCH, FILEPROG_19_MMM_WITCH_SWITCH_JIGGY_PRESSED, 0x207);
func_80332D98(MAP_6D_GL_TTC_LOBBY, JIGGY_36_LAIR_TTC_WITCH_SWITCH, BKPROG_1A_TTC_WITCH_SWITCH_JIGGY_SPAWNED, 0x209); func_80332D98(MAP_6D_GL_TTC_LOBBY, JIGGY_36_LAIR_TTC_WITCH_SWITCH, FILEPROG_1A_TTC_WITCH_SWITCH_JIGGY_PRESSED, 0x209);
func_80332D98(MAP_76_GL_640_NOTE_DOOR, JIGGY_3B_LAIR_RBB_WITCH_SWITCH, BKPROG_1C_RBB_WITCH_SWITCH_JIGGY_SPAWNED, 0x20C); func_80332D98(MAP_76_GL_640_NOTE_DOOR, JIGGY_3B_LAIR_RBB_WITCH_SWITCH, FILEPROG_1C_RBB_WITCH_SWITCH_JIGGY_PRESSED, 0x20C);
func_80332D98(MAP_79_GL_CCW_LOBBY, JIGGY_3C_LAIR_CCW_WITCH_SWITCH, BKPROG_46_CCW_WITCH_SWITCH_JIGGY_SPAWNED, 0x238); func_80332D98(MAP_79_GL_CCW_LOBBY, JIGGY_3C_LAIR_CCW_WITCH_SWITCH, FILEPROG_46_CCW_WITCH_SWITCH_JIGGY_PRESSED, 0x238);
if ((D_8036E830 == 0) && func_8031FF1C(BKPROG_9C_LAIR_CC_WITCH_SWITCH_LEFT_EYE_PRESSED)) { if ((D_8036E830 == 0) && fileProgressFlag_get(FILEPROG_9C_LAIR_CC_WITCH_SWITCH_LEFT_EYE_PRESSED)) {
func_80332D98(MAP_6A_GL_TTC_AND_CC_PUZZLE, JIGGY_35_LAIR_CC_WITCH_SWITCH, BKPROG_9D_LAIR_CC_WITCH_SWITCH_RIGHT_EYE_PRESSED, 0x190); func_80332D98(MAP_6A_GL_TTC_AND_CC_PUZZLE, JIGGY_35_LAIR_CC_WITCH_SWITCH, FILEPROG_9D_LAIR_CC_WITCH_SWITCH_RIGHT_EYE_PRESSED, 0x190);
} }
D_8036E830 = 1; D_8036E830 = 1;
} }

View File

@@ -65,7 +65,7 @@ s32 D_80383D08; //savedata_jiggy_offset
s32 D_80383D0C; //saved_item_offset s32 D_80383D0C; //saved_item_offset
s32 D_80383D10; //abilities_offset s32 D_80383D10; //abilities_offset
s32 D_80383D14; //end_offset s32 D_80383D14; //end_offset
u8 D_80383D18; u8 D_80383D18[8];
/* .code */ /* .code */
void savedata_update_crc(s32 buffer, s32 size){ void savedata_update_crc(s32 buffer, s32 size){
@@ -90,7 +90,7 @@ int _savedata_verify(SaveData *savedata, s32 size){
return 0; return 0;
} }
void func_8033C070(void){ //savedata_init void savedata_init(void){ //savedata_init
s32 sp54; s32 sp54;
s32 sp50; s32 sp50;
s32 sp4C; s32 sp4C;
@@ -211,7 +211,7 @@ void func_8033C4E4(u8 *savedata){ //saveddata_load_collectibles
func_803479C0(sp28); func_803479C0(sp28);
} }
void func_8033C570(u8 *savedata){ //savedata_load_abilities void __savedata_load_abilities(u8 *savedata){ //savedata_load_abilities
s32 sp2C; s32 sp2C;
u8 *sp28; u8 *sp28;
int i; int i;
@@ -281,7 +281,7 @@ void __savedata_save_timeScores(u8 *savedata){
} }
} }
void func_8033C8A0(u8 *savedata){ //global_progress void __savedata_8033C8A0(u8 *savedata){ //global_progress
s32 sp2C; s32 sp2C;
u8 *sp28; u8 *sp28;
int i; int i;
@@ -292,7 +292,7 @@ void func_8033C8A0(u8 *savedata){ //global_progress
} }
} }
void func_8033C924(u8 *savedata){ //saveddata_save_collectibles void __savedata_8033CA2C(u8 *savedata){ //saveddata_save_collectibles
s32 sp2C; s32 sp2C;
u8 *sp28; u8 *sp28;
int i; int i;
@@ -303,7 +303,7 @@ void func_8033C924(u8 *savedata){ //saveddata_save_collectibles
} }
} }
void func_8033C9A8(u8 *savedata){ //savedata_save_abilities void __savedata_save_abilities(u8 *savedata){ //savedata_save_abilities
s32 sp2C; s32 sp2C;
u8 *sp28; u8 *sp28;
int i; int i;
@@ -314,7 +314,7 @@ void func_8033C9A8(u8 *savedata){ //savedata_save_abilities
} }
} }
s32 func_8033CA2C(s32 filenum, SaveData *save_data){ s32 savedata_8033CA2C(s32 filenum, SaveData *save_data){
s32 sp1C; s32 sp1C;
sp1C = load_file_blocks(filenum, 0, save_data, 0xF); sp1C = load_file_blocks(filenum, 0, save_data, 0xF);
@@ -327,7 +327,7 @@ s32 func_8033CA2C(s32 filenum, SaveData *save_data){
return sp1C; return sp1C;
} }
s32 func_8033CA9C(SaveData *savedata){ s32 savedata_8033CA9C(SaveData *savedata){
s32 sp1C; s32 sp1C;
sp1C = load_file_blocks(0, 0x3C, savedata, 0x4); sp1C = load_file_blocks(0, 0x3C, savedata, 0x4);
@@ -357,16 +357,16 @@ void saveData_load(SaveData *savedata){
__savedata_load_highNoteScores(savedata); __savedata_load_highNoteScores(savedata);
__savedata_load_timeScores(savedata); __savedata_load_timeScores(savedata);
func_8033C4E4(savedata); func_8033C4E4(savedata);
func_8033C570(savedata); __savedata_load_abilities(savedata);
for(i = 0; D_80370A20[i].unk0 != -1; i++){ for(i = 0; D_80370A20[i].unk0 != -1; i++){
func_803204E4(D_80370A20[i].unk0, func_8031FF1C(D_80370A20[i].unk2)); func_803204E4(D_80370A20[i].unk0, fileProgressFlag_get(D_80370A20[i].unk2));
} }
} }
void saveData_create(SaveData *savedata){ void saveData_create(SaveData *savedata){
int i; int i;
for(i = 0; D_80370A20[i].unk0 != -1; i++){ for(i = 0; D_80370A20[i].unk0 != -1; i++){
func_80320004(D_80370A20[i].unk2, func_803203FC(D_80370A20[i].unk0)); fileProgressFlag_set(D_80370A20[i].unk2, func_803203FC(D_80370A20[i].unk0));
} }
savedata_clear(savedata); savedata_clear(savedata);
func_8033C5F4(savedata); func_8033C5F4(savedata);
@@ -375,13 +375,13 @@ void saveData_create(SaveData *savedata){
__savedata_save_mumboScore(savedata); __savedata_save_mumboScore(savedata);
__savedata_save_highNoteScores(savedata); __savedata_save_highNoteScores(savedata);
__savedata_save_timeScores(savedata); __savedata_save_timeScores(savedata);
func_8033C8A0(savedata); __savedata_8033C8A0(savedata);
func_8033C924(savedata); __savedata_8033CA2C(savedata);
func_8033C9A8(savedata); __savedata_save_abilities(savedata);
savedata_update_crc(savedata, sizeof(SaveData)); savedata_update_crc(savedata, sizeof(SaveData));
} }
int func_8033CC98(s32 filenum, u8 *buffer){ int savedata_8033CC98(s32 filenum, u8 *buffer){
int out; int out;
out = write_file_blocks(filenum, 0, buffer, 0xF); out = write_file_blocks(filenum, 0, buffer, 0xF);
if(out){ if(out){
@@ -390,16 +390,16 @@ int func_8033CC98(s32 filenum, u8 *buffer){
return out; return out;
} }
int func_8033CCD0(s32 filenum){ int savedata_8033CCD0(s32 filenum){
int out; int out;
out = write_file_blocks(filenum, 0, &D_80383D18, 1); out = write_file_blocks(filenum, 0, D_80383D18, 1);
if(out){ if(out){
out = 1; out = 1;
} }
return out; return out;
} }
int func_8033CD0C(u8 *buffer){ int savedata_8033CE40(u8 *buffer){
int out; int out;
savedata_update_crc(buffer, 0x20); savedata_update_crc(buffer, 0x20);
out = write_file_blocks(0, 0x3C, buffer, 4); out = write_file_blocks(0, 0x3C, buffer, 4);

View File

@@ -5,33 +5,33 @@
#include "save.h" #include "save.h"
/* .bss */ /* .bss */
SaveData D_80383D20[4]; //save_data SaveData gameFile_saveData[4]; //save_data
s8 D_80383F00[4]; //gamenum to filenum s8 gameFile_GameIdToFileIdMap[4]; //gamenum to filenum
s32 D_80383F04; s32 D_80383F04;
/* .code */ /* .code */
int func_8033CD90(s32 filenum){ int __gameFile_8033CD90(s32 filenum){
int i; int i;
s32 tmp_v1; s32 tmp_v1;
void *s2; void *save_data_ptr;
s2 = &D_80383D20[filenum]; save_data_ptr = &gameFile_saveData[filenum];
i = 3; i = 3;
while(i != 0){ while(i != 0){
tmp_v1 = func_8033CA2C(filenum, s2); tmp_v1 = savedata_8033CA2C(filenum, save_data_ptr);
if(!tmp_v1) if(!tmp_v1)
break; break;
i--; i--;
} }
if(tmp_v1) if(tmp_v1)
savedata_clear(s2); savedata_clear(save_data_ptr);
return tmp_v1; return tmp_v1;
} }
void func_8033CE14(s32 gamenum){ void __gameFile_8033CE14(s32 gamenum){
func_8033CD90(D_80383F00[gamenum]); __gameFile_8033CD90(gameFile_GameIdToFileIdMap[gamenum]);
} }
void func_8033CE40(void) { void gameFile_8033CE40(void) {
s32 i; s32 i;
s32 var_s0; s32 var_s0;
s32 sp48[4]; s32 sp48[4];
@@ -41,16 +41,14 @@ void func_8033CE40(void) {
sp48[3] = i = 0; sp48[3] = i = 0;
if (sp48[3] < 3) { if (sp48[3] < 3) {
for(i = i; i < 3; i++) { for(i = i; i < 3; i++) {
D_80383F00[i] = -1; gameFile_GameIdToFileIdMap[i] = -1;
sp48[i] = 0; sp48[i] = 0;
i++; i--; //do nothing i++; i--; //do nothing
} }
} }
// sp48[3] = 0;
// D_80383F00[3] = -1;
for(var_s0 = 0; var_s0 < 4; var_s0++){ for(var_s0 = 0; var_s0 < 4; var_s0++){
if( (func_8033CD90(var_s0) == 0) && (D_80383F00[D_80383D20[var_s0].unk1 - 1] == -1)) { if( (__gameFile_8033CD90(var_s0) == 0) && (gameFile_GameIdToFileIdMap[gameFile_saveData[var_s0].unk1 - 1] == -1)) {
D_80383F00[D_80383D20[var_s0].unk1 - 1] = var_s0; gameFile_GameIdToFileIdMap[gameFile_saveData[var_s0].unk1 - 1] = var_s0;
sp48[var_s0] = 1; sp48[var_s0] = 1;
} else { } else {
D_80383F04 = var_s0; D_80383F04 = var_s0;
@@ -58,76 +56,76 @@ void func_8033CE40(void) {
} }
sp48[D_80383F04] = 1; sp48[D_80383F04] = 1;
for(i = 0; i < 3; i++){ for(i = 0; i < 3; i++){
for(var_s0 = 0; (var_s0 < 4) && (D_80383F00[i] == -1); var_s0++){ for(var_s0 = 0; (var_s0 < 4) && (gameFile_GameIdToFileIdMap[i] == -1); var_s0++){
if (sp48[var_s0] == 0) { if (sp48[var_s0] == 0) {
sp48[var_s0] = 1; sp48[var_s0] = 1;
D_80383F00[i] = var_s0; gameFile_GameIdToFileIdMap[i] = var_s0;
} }
} }
} }
} }
s32 func_8033CFD4(s32 gamenum){ s32 gameFile_8033CFD4(s32 gamenum){
s32 next; s32 next;
s32 var_s3; s32 filenum;
u32 i = 3; u32 i = 3;
s32 tmp_s1; s32 eeprom_error;
SaveData *var_a1; SaveData *var_a1;
var_s3 = D_80383F04; filenum = D_80383F04;
next = D_80383F00[gamenum]; next = gameFile_GameIdToFileIdMap[gamenum];
D_80383F00[gamenum] = D_80383F04; gameFile_GameIdToFileIdMap[gamenum] = D_80383F04;
bcopy(&D_80383D20[next], &D_80383D20[var_s3], 0x78); bcopy(&gameFile_saveData[next], &gameFile_saveData[filenum], 0xF*8);
var_a1 = D_80383D20 + var_s3; var_a1 = gameFile_saveData + filenum;
var_a1->unk1 = gamenum + 1; var_a1->unk1 = gamenum + 1;
savedata_update_crc(var_a1, sizeof(SaveData)); savedata_update_crc(var_a1, sizeof(SaveData));
for(tmp_s1 = 1; tmp_s1 && i > 0; i--){//L8033D070 for(eeprom_error = 1; eeprom_error && i > 0; i--){//L8033D070
tmp_s1 = func_8033CC98(var_s3, var_a1); eeprom_error = savedata_8033CC98(filenum, var_a1);
if(!tmp_s1){ if(!eeprom_error){
func_8033CE14(gamenum); __gameFile_8033CE14(gamenum);
} }
} }
if(!tmp_s1){ if(!eeprom_error){
for(i = 3; i > 0; i--){//L8033D070 for(i = 3; i > 0; i--){//L8033D070
tmp_s1 = func_8033CCD0(next); eeprom_error = savedata_8033CCD0(next);
if(!tmp_s1) if(!eeprom_error)
break; break;
} }
} }
if(tmp_s1){ if(eeprom_error){
D_80383F00[gamenum] = next; gameFile_GameIdToFileIdMap[gamenum] = next;
} }
else{ else{
D_80383F04 = next; D_80383F04 = next;
} }
return tmp_s1; return eeprom_error;
} }
void func_8033D0FC(s32 gamenum){ void gameFile_clear(s32 gamenum){
s32 filenum = D_80383F00[gamenum]; s32 filenum = gameFile_GameIdToFileIdMap[gamenum];
savedata_clear(&D_80383D20[filenum]); savedata_clear(&gameFile_saveData[filenum]);
} }
void func_8033D13C(s32 gamenum){ void gameFile_load(s32 gamenum){
s32 filenum = D_80383F00[gamenum]; s32 filenum = gameFile_GameIdToFileIdMap[gamenum];
saveData_load(&D_80383D20[filenum]); saveData_load(&gameFile_saveData[filenum]);
} }
void func_8033D17C(s32 gamenum){ void gameFile_save(s32 gamenum){
s32 filenum = D_80383F00[gamenum]; s32 filenum = gameFile_GameIdToFileIdMap[gamenum];
saveData_create(&D_80383D20[filenum]); saveData_create(&gameFile_saveData[filenum]);
} }
bool func_8033D1BC(s32 gamenum){ bool gameFile_isNotEmpty(s32 gamenum){
s32 filenum = D_80383F00[gamenum]; s32 filenum = gameFile_GameIdToFileIdMap[gamenum];
return D_80383D20[filenum].unk0 != 0; return gameFile_saveData[filenum].unk0 != 0;
} }
bool func_8033D1EC(void){ bool gameFile_anyNonEmpty(void){
int i; int i;
for(i = 0; i < 3; i++){ for(i = 0; i < 3; i++){
if(func_8033D1BC(i)) if(gameFile_isNotEmpty(i))
return TRUE; return TRUE;
} }
return FALSE; return FALSE;

View File

@@ -80,7 +80,7 @@ s32 func_80345FB4(enum item_e item, s32 diff, s32 arg2){\
newVal = MAX(0, D_80385F30[item] + diff); newVal = MAX(0, D_80385F30[item] + diff);
D_80385F30[item] = newVal; D_80385F30[item] = newVal;
sp34 = ((func_8031FF1C(BKPROG_B9_DOUBLE_HEALTH))? 2 : 1); sp34 = ((fileProgressFlag_get(FILEPROG_B9_DOUBLE_HEALTH))? 2 : 1);
D_80385F30[ITEM_15_HEALTH_TOTAL] = MIN(sp34*8, D_80385F30[ITEM_15_HEALTH_TOTAL]); D_80385F30[ITEM_15_HEALTH_TOTAL] = MIN(sp34*8, D_80385F30[ITEM_15_HEALTH_TOTAL]);
D_80385F30[ITEM_14_HEALTH]= MIN(D_80385F30[ITEM_15_HEALTH_TOTAL], D_80385F30[ITEM_14_HEALTH]); D_80385F30[ITEM_14_HEALTH]= MIN(D_80385F30[ITEM_15_HEALTH_TOTAL], D_80385F30[ITEM_14_HEALTH]);
D_80385F30[ITEM_17_AIR] = MIN(3600, D_80385F30[ITEM_17_AIR]); D_80385F30[ITEM_17_AIR] = MIN(3600, D_80385F30[ITEM_17_AIR]);
@@ -89,15 +89,15 @@ s32 func_80345FB4(enum item_e item, s32 diff, s32 arg2){\
switch(item){ switch(item){
case ITEM_D_EGGS: case ITEM_D_EGGS:
sp38 = (func_8031FF1C(BKPROG_BE_CHEATO_BLUEEGGS))? 200 : 100; sp38 = (fileProgressFlag_get(FILEPROG_BE_CHEATO_BLUEEGGS))? 200 : 100;
break; break;
case ITEM_F_RED_FEATHER: case ITEM_F_RED_FEATHER:
sp38 = (func_8031FF1C(BKPROG_BF_CHEATO_REDFEATHERS))? 100 : 50; sp38 = (fileProgressFlag_get(FILEPROG_BF_CHEATO_REDFEATHERS))? 100 : 50;
break; break;
case ITEM_10_GOLD_FEATHER: case ITEM_10_GOLD_FEATHER:
sp38 = (func_8031FF1C(BKPROG_C0_CHEATO_GOLDFEATHERS))? 20 : 10; sp38 = (fileProgressFlag_get(FILEPROG_C0_CHEATO_GOLDFEATHERS))? 20 : 10;
break; break;
default: default:
@@ -523,7 +523,7 @@ void func_8034789C(void) {
sp1C = honeycombscore_get_total(); sp1C = honeycombscore_get_total();
D_80385F30[ITEM_13_EMPTY_HONEYCOMB] = sp1C % 6; D_80385F30[ITEM_13_EMPTY_HONEYCOMB] = sp1C % 6;
if (func_8031FF1C(BKPROG_B9_DOUBLE_HEALTH)) { if (fileProgressFlag_get(FILEPROG_B9_DOUBLE_HEALTH)) {
D_80385F30[ITEM_15_HEALTH_TOTAL] = 16; D_80385F30[ITEM_15_HEALTH_TOTAL] = 16;
} else { } else {
D_80385F30[ITEM_15_HEALTH_TOTAL] = 5 + MIN(3, (sp1C / 6)); D_80385F30[ITEM_15_HEALTH_TOTAL] = 5 + MIN(3, (sp1C / 6));

View File

@@ -199,7 +199,7 @@ void func_8034B834(void) {
func_80295864(-1); func_80295864(-1);
func_80295870(-1); func_80295870(-1);
for(i = 0; i < 10; i++){ for(i = 0; i < 10; i++){
func_80320004(D_80371FA0[i], 1); fileProgressFlag_set(D_80371FA0[i], 1);
} }
} }
@@ -259,7 +259,7 @@ void func_8034BA7C(enum map_e map_id, s32 exit_id){
void func_8034BA9C(void) { void func_8034BA9C(void) {
if (func_8034BAFC() != -1) { if (func_8034BAFC() != -1) {
func_802C5A3C(func_8034BAFC()); func_802C5A3C(func_8034BAFC());
func_8033D13C(func_8034BAFC()); gameFile_load(func_8034BAFC());
func_80347AA8(); func_80347AA8();
} }
func_8031B010(); func_8031B010();

View File

@@ -32,6 +32,25 @@ extern void func_8034CD28(void *arg0);
extern void func_8034F248(void *arg0); extern void func_8034F248(void *arg0);
extern void func_8034F568(void *arg0); extern void func_8034F568(void *arg0);
enum mesh_xform_e{
MESH_XFORM_3_WATER = 3,
};
typedef struct struct_1D_s{
BKModel *model;
s16 unk4;
u8 xform_id;
// u8 pad7[1];
Struct70s unk8;//union of subtypes
}struct1Ds;
typedef struct struct_1E_s{
void (* unk0)(void * arg0, s32 arg1, s32 arg2, s32 arg3);
void (* unk4)(void * arg0, s32 arg1, s32 arg2);
void (* unk8)(void * arg0);
}struct1Es;
struct1Es D_80372030[] = { struct1Es D_80372030[] = {
{func_8034CF74, func_8034CF90, func_8034CF6C}, {func_8034CF74, func_8034CF90, func_8034CF6C},
{func_8034D170, func_8034D194, func_8034D168}, {func_8034D170, func_8034D194, func_8034D168},
@@ -56,10 +75,10 @@ void func_8034C9B0(int arg0);
//.code //.code
func_8034C3D0(BKModel *arg0, s32 arg1, s32 vtx_xform_id, s32 arg3){ func_8034C3D0(BKModel *arg0, s32 arg1, s32 vtx_xform_id, s32 arg3){
struct1Ds * v0 = vector_pushBackNew(&D_80386140.unk4); struct1Ds * v0 = vector_pushBackNew(&D_80386140.unk4);
v0->unk6 = vtx_xform_id; v0->xform_id = vtx_xform_id;
v0->unk0 = arg0; v0->model = arg0;
v0->unk4 = arg1; v0->unk4 = arg1;
D_80372030[v0->unk6].unk0(&v0->unk8, arg3, v0->unk0, v0->unk4); D_80372030[v0->xform_id].unk0(&v0->unk8, arg3, v0->model, v0->unk4);
} }
Struct70s *func_8034C448(s32 arg0){ Struct70s *func_8034C448(s32 arg0){
@@ -67,7 +86,7 @@ Struct70s *func_8034C448(s32 arg0){
struct1Ds *endPtr = vector_getEnd(D_80386140.unk4); struct1Ds *endPtr = vector_getEnd(D_80386140.unk4);
for(iPtr = vector_getBegin(D_80386140.unk4); iPtr < endPtr; iPtr++){ for(iPtr = vector_getBegin(D_80386140.unk4); iPtr < endPtr; iPtr++){
if(iPtr->unk6 == 8 && iPtr->unk4 == arg0) if(iPtr->xform_id == 8 && iPtr->unk4 == arg0)
return &iPtr->unk8; return &iPtr->unk8;
} }
return NULL; return NULL;
@@ -99,7 +118,7 @@ Struct70s *func_8034C528(s32 arg0){
struct1Ds *endPtr = vector_getEnd(D_80386140.unk4); struct1Ds *endPtr = vector_getEnd(D_80386140.unk4);
for(iPtr = vector_getBegin(D_80386140.unk4); iPtr < endPtr; iPtr++){ for(iPtr = vector_getBegin(D_80386140.unk4); iPtr < endPtr; iPtr++){
if(iPtr->unk6 == 2 && iPtr->unk4 == arg0) if(iPtr->xform_id == 2 && iPtr->unk4 == arg0)
return &iPtr->unk8; return &iPtr->unk8;
} }
return NULL; return NULL;
@@ -110,7 +129,7 @@ Struct70s *func_8034C5AC(s32 arg0){
struct1Ds *endPtr = vector_getEnd(D_80386140.unk4); struct1Ds *endPtr = vector_getEnd(D_80386140.unk4);
for(iPtr = vector_getBegin(D_80386140.unk4); iPtr < endPtr; iPtr++){ for(iPtr = vector_getBegin(D_80386140.unk4); iPtr < endPtr; iPtr++){
if(iPtr->unk6 == 3 && iPtr->unk4 == arg0) if(iPtr->xform_id == 3 && iPtr->unk4 == arg0)
return &iPtr->unk8; return &iPtr->unk8;
} }
return NULL; return NULL;
@@ -121,8 +140,8 @@ Struct70s *func_8034C630(s32 arg0){
struct1Ds *endPtr = vector_getEnd(D_80386140.unk4); struct1Ds *endPtr = vector_getEnd(D_80386140.unk4);
for(iPtr = vector_getBegin(D_80386140.unk4); iPtr < endPtr; iPtr++){ for(iPtr = vector_getBegin(D_80386140.unk4); iPtr < endPtr; iPtr++){
if( (iPtr->unk6 == 3) if( (iPtr->xform_id == 3)
&& meshList_meshContainsVtx(BKModel_getMeshList(iPtr->unk0), iPtr->unk4, arg0) && meshList_meshContainsVtx(BKModel_getMeshList(iPtr->model), iPtr->unk4, arg0)
){ ){
return &iPtr->unk8; return &iPtr->unk8;
} }
@@ -174,7 +193,7 @@ void func_8034C8D8(void){
struct1Ds *endPtr = vector_getEnd(D_80386140.unk4); struct1Ds *endPtr = vector_getEnd(D_80386140.unk4);
for(iPtr = vector_getBegin(D_80386140.unk4); iPtr < endPtr; iPtr++){ for(iPtr = vector_getBegin(D_80386140.unk4); iPtr < endPtr; iPtr++){
D_80372030[iPtr->unk6].unk8(&iPtr->unk8); D_80372030[iPtr->xform_id].unk8(&iPtr->unk8);
} }
vector_free(D_80386140.unk4); vector_free(D_80386140.unk4);
} }
@@ -193,7 +212,7 @@ void * func_8034C9D4(void){
struct1Ds *endPtr = vector_getEnd(D_80386140.unk4); struct1Ds *endPtr = vector_getEnd(D_80386140.unk4);
for(iPtr = vector_getBegin(D_80386140.unk4); iPtr < endPtr; iPtr++){ for(iPtr = vector_getBegin(D_80386140.unk4); iPtr < endPtr; iPtr++){
D_80372030[iPtr->unk6].unk4(&iPtr->unk8, iPtr->unk0, iPtr->unk4); D_80372030[iPtr->xform_id].unk4(&iPtr->unk8, iPtr->model, iPtr->unk4);
} }
} }

View File

@@ -5,31 +5,31 @@
typedef KEY_VALUE_PAIR(s16, s16) unkD_80372730; typedef KEY_VALUE_PAIR(s16, s16) unkD_80372730;
unkD_80372730 D_80372730[] = { unkD_80372730 D_80372730[] = {
{ BKPROG_AB_SWIM_OILY_WATER, 0xBA1}, { FILEPROG_AB_SWIM_OILY_WATER, 0xBA1},
{ BKPROG_AC_DIVE_OILY_WATER, 0xBA2}, { FILEPROG_AC_DIVE_OILY_WATER, 0xBA2},
{ BKPROG_AA_HAS_TOUCHED_CCW_BRAMBLE_FIELD, 0xCE6}, { FILEPROG_AA_HAS_TOUCHED_CCW_BRAMBLE_FIELD, 0xCE6},
{ BKPROG_F_HAS_TOUCHED_PIRAHANA_WATER, 0xC85}, { FILEPROG_F_HAS_TOUCHED_PIRAHANA_WATER, 0xC85},
{ BKPROG_A9_HAS_TOUCHED_RBB_OVEN, 0xBA0}, { FILEPROG_A9_HAS_TOUCHED_RBB_OVEN, 0xBA0},
{ BKPROG_10_HAS_TOUCHED_SAND_EEL_SAND, 0xA7E}, { FILEPROG_10_HAS_TOUCHED_SAND_EEL_SAND, 0xA7E},
{ BKPROG_14_HAS_TOUCHED_FP_ICY_WATER, 0xC11}, { FILEPROG_14_HAS_TOUCHED_FP_ICY_WATER, 0xC11},
{ BKPROG_F_HAS_TOUCHED_PIRAHANA_WATER, 0xC85}, { FILEPROG_F_HAS_TOUCHED_PIRAHANA_WATER, 0xC85},
{ BKPROG_86_HAS_TOUCHED_MMM_THORN_HEDGE, 0xAE1}, { FILEPROG_86_HAS_TOUCHED_MMM_THORN_HEDGE, 0xAE1},
{ BKPROG_DD_HAS_TOUCHED_ICY_WATER, 0xCE7}, { FILEPROG_DD_HAS_TOUCHED_ICY_WATER, 0xCE7},
{ BKPROG_3_MUSIC_NOTE_TEXT, 0xD9C}, { FILEPROG_3_MUSIC_NOTE_TEXT, 0xD9C},
{ BKPROG_4_MUMBO_TOKEN_TEXT, 0xD9D}, { FILEPROG_4_MUMBO_TOKEN_TEXT, 0xD9D},
{ BKPROG_5_BLUE_EGG_TEXT, 0xD9E}, { FILEPROG_5_BLUE_EGG_TEXT, 0xD9E},
{ BKPROG_6_RED_FEATHER_TEXT, 0xD9F}, { FILEPROG_6_RED_FEATHER_TEXT, 0xD9F},
{ BKPROG_7_GOLD_FEATHER_TEXT, 0xDA0}, { FILEPROG_7_GOLD_FEATHER_TEXT, 0xDA0},
{ BKPROG_8_GOLD_BULLION_TEXT, 0xB46}, { FILEPROG_8_ORANGE_TEXT, 0xB46},
{ BKPROG_9_ORANGE_TEXT, 0xA21}, { FILEPROG_9_GOLD_BULLION_TEXT, 0xA21},
{ BKPROG_A_HONEYCOMB_TEXT, 0xDA1}, { FILEPROG_A_HONEYCOMB_TEXT, 0xDA1},
{ BKPROG_B_EMPTY_HONEYCOMB_TEXT, 0xDA2}, { FILEPROG_B_EMPTY_HONEYCOMB_TEXT, 0xDA2},
{ BKPROG_C_EXTRA_LIFE_TEXT, 0xDA3}, { FILEPROG_C_EXTRA_LIFE_TEXT, 0xDA3},
{ BKPROG_BE_CHEATO_BLUEEGGS, 0xFA8}, { FILEPROG_BE_CHEATO_BLUEEGGS, 0xFA8},
{ BKPROG_BF_CHEATO_REDFEATHERS, 0xFA9}, { FILEPROG_BF_CHEATO_REDFEATHERS, 0xFA9},
{ BKPROG_C0_CHEATO_GOLDFEATHERS, 0xFAA}, { FILEPROG_C0_CHEATO_GOLDFEATHERS, 0xFAA},
{0x95, 0xB50}, {0x95, 0xB50},
{ BKPROG_A7_NEAR_PUZZLE_PODIUM_TEXT, 0xF7B}, { FILEPROG_A7_NEAR_PUZZLE_PODIUM_TEXT, 0xF7B},
{ -1, -1} { -1, -1}
}; };
@@ -71,24 +71,24 @@ static s32 __findIndex(unkD_80372730 *arg0, s32 arg1) {
return -1; return -1;
} }
s32 func_803563B8(enum bkprog_e arg0, s32 arg1) { s32 func_803563B8(enum file_progress_e arg0, s32 arg1) {
s32 index; s32 index;
if (func_8031FF1C(arg0) != 0) { if (fileProgressFlag_get(arg0) != 0) {
return 0; return 0;
} else { } else {
index = __findIndex(D_80372730, arg0); index = __findIndex(D_80372730, arg0);
if (index != -1) { if (index != -1) {
if (func_80311480(D_80372730[index].value, arg1, 0, 0, 0, 0) != 0) { if (func_80311480(D_80372730[index].value, arg1, 0, 0, 0, 0) != 0) {
func_80320004(arg0, 1); fileProgressFlag_set(arg0, 1);
} }
return func_8031FF1C(arg0); return fileProgressFlag_get(arg0);
} }
return 0; return 0;
} }
} }
void func_8035644C(s32 arg0){ void func_8035644C(enum file_progress_e arg0){
func_803563B8(arg0, 0); func_803563B8(arg0, 0);
} }

View File

@@ -16,17 +16,17 @@ ActorInfo D_803731B0 = {
int func_803616F0(Actor *this){ int func_803616F0(Actor *this){
switch(this->unkF4_8){ switch(this->unkF4_8){
case 1:// L80361728 case 1:// L80361728
return func_8031FF1C(BKPROG_31_MM_OPEN) && !func_802D9220(LEVEL_1_MUMBOS_MOUNTAIN); return fileProgressFlag_get(FILEPROG_31_MM_OPEN) && !func_802D9220(LEVEL_1_MUMBOS_MOUNTAIN);
case 2:// L80361750 case 2:// L80361750
return func_8031FF1C(BKPROG_32_TTC_OPEN) && !func_802D9220(LEVEL_2_TREASURE_TROVE_COVE); return fileProgressFlag_get(FILEPROG_32_TTC_OPEN) && !func_802D9220(LEVEL_2_TREASURE_TROVE_COVE);
case 3:// L80361778 case 3:// L80361778
return func_8031FF1C(BKPROG_33_CC_OPEN) && !func_802D9220(LEVEL_3_CLANKERS_CAVERN); return fileProgressFlag_get(FILEPROG_33_CC_OPEN) && !func_802D9220(LEVEL_3_CLANKERS_CAVERN);
case 4:// L803617A0 case 4:// L803617A0
return func_8031FF1C(BKPROG_34_BGS_OPEN) && !func_802D9220(LEVEL_4_BUBBLEGLOOP_SWAMP); return fileProgressFlag_get(FILEPROG_34_BGS_OPEN) && !func_802D9220(LEVEL_4_BUBBLEGLOOP_SWAMP);
case 5:// L803617C8 case 5:// L803617C8
return func_8031FF1C(BKPROG_35_FP_OPEN) && !func_802D9220(LEVEL_5_FREEZEEZY_PEAK); return fileProgressFlag_get(FILEPROG_35_FP_OPEN) && !func_802D9220(LEVEL_5_FREEZEEZY_PEAK);
case 6:// L803617F0 case 6:// L803617F0
return func_8031FF1C(BKPROG_36_GV_OPEN) && !func_802D9220(LEVEL_7_GOBIS_VALLEY); return fileProgressFlag_get(FILEPROG_36_GV_OPEN) && !func_802D9220(LEVEL_7_GOBIS_VALLEY);
default: default:
return FALSE; return FALSE;
} }
@@ -47,8 +47,8 @@ void func_80361870(Actor *this){
} }
if(!this->unk138_24 && func_80329530(this, 400) && !func_80329530(this, 50)){ if(!this->unk138_24 && func_80329530(this, 400) && !func_80329530(this, 50)){
if(this->unkF4_8 == 1 && !func_8031FF1C(BKPROG_31_MM_OPEN) && level_get() == LEVEL_6_LAIR){ if(this->unkF4_8 == 1 && !fileProgressFlag_get(FILEPROG_31_MM_OPEN) && level_get() == LEVEL_6_LAIR){
text_id = func_8031FF1C(BKPROG_A7_NEAR_PUZZLE_PODIUM_TEXT)? 0xF80 : 0xF7F; text_id = fileProgressFlag_get(FILEPROG_A7_NEAR_PUZZLE_PODIUM_TEXT)? 0xF80 : 0xF7F;
if(func_80311480(text_id, 0, 0, 0, 0, 0)){ if(func_80311480(text_id, 0, 0, 0, 0, 0)){
this->unk138_24 = TRUE; this->unk138_24 = TRUE;
} }

View File

@@ -47,7 +47,7 @@ enum bs_e func_80295EE0(enum bs_e arg0){
switch(func_8028ECAC()){ switch(func_8028ECAC()){
case 6://L80295F5C case 6://L80295F5C
if(D_8037C3E0.unk18 != 0x3E){ if(D_8037C3E0.unk18 != ASSET_3E_ANIM_BSBFLY_BEAKBOMB_CRASH){
sp2C++; sp2C++;
} }
break; break;

View File

@@ -151,7 +151,7 @@ void gcparade_8031ABA0(void) {
func_8031FBA0(); func_8031FBA0();
if (D_803830F0.unk8 != -1) { if (D_803830F0.unk8 != -1) {
func_802C5A3C(D_803830F0.unk8); func_802C5A3C(D_803830F0.unk8);
func_8033D13C(D_803830F0.unk8); gameFile_load(D_803830F0.unk8);
func_80347AA8(); func_80347AA8();
} }
} }

View File

@@ -44,7 +44,7 @@ void func_802DC560(s32, s32);
s32 func_8024E67C(s32 controller_index); s32 func_8024E67C(s32 controller_index);
bool func_803188B4(gczoombox_t*); bool func_803188B4(gczoombox_t*);
bool func_803183A4(gczoombox_t*, char *); bool func_803183A4(gczoombox_t*, char *);
bool func_8031FF1C(enum bkprog_e); bool fileProgressFlag_get(enum file_progress_e);
enum map_e map_get(void); enum map_e map_get(void);
bool func_802FD2D4(void); bool func_802FD2D4(void);
bool func_802FC3C4(void); bool func_802FC3C4(void);
@@ -1014,7 +1014,7 @@ s32 gcPauseMenu_update(void){
case 3://L8031399C case 3://L8031399C
func_802C5994(); func_802C5994();
func_803204E4(0,0); func_803204E4(0,0);
if(!func_8031FF1C(BKPROG_BD_ENTER_LAIR_CUTSCENE) || func_8031FF1C(BKPROG_A6_FURNACE_FUN_COMPLETE)){ if(!fileProgressFlag_get(FILEPROG_BD_ENTER_LAIR_CUTSCENE) || fileProgressFlag_get(FILEPROG_A6_FURNACE_FUN_COMPLETE)){
gcPauseMenu_setState(0x14); gcPauseMenu_setState(0x14);
}else{ }else{
func_802E412C(1,0); func_802E412C(1,0);

View File

@@ -332,7 +332,7 @@ void mapModel_opa_draw(Gfx **gfx, Mtx **mtx, Vtx **vtx) {
case MAP_93_GL_DINGPOT: case MAP_93_GL_DINGPOT:
func_8033A45C(4, 1); func_8033A45C(4, 1);
func_8033A45C(5, 1); func_8033A45C(5, 1);
func_8033A45C(6, (func_8038EAE0(0xA) || func_8031FF1C(0xE2) || func_803203FC(0xC1))); func_8033A45C(6, (func_8038EAE0(0xA) || fileProgressFlag_get(FILEPROG_E2_DOOR_OF_GRUNTY_OPEN) || func_803203FC(0xC1)));
break; break;
} }
func_8033A450(mapModel.unk24); func_8033A450(mapModel.unk24);

View File

@@ -128,7 +128,7 @@ extern ActorInfo D_80372810;
extern ActorInfo D_80372840; //grillchompa extern ActorInfo D_80372840; //grillchompa
extern ActorInfo D_80372870; //clucker extern ActorInfo D_80372870; //clucker
extern ActorInfo D_803728A0; //scarab extern ActorInfo D_803728A0; //scarab
extern ActorInfo D_8036D970; //boombox extern ActorInfo chMinigame; //boombox
extern ActorInfo D_80372970; //leaf_particle extern ActorInfo D_80372970; //leaf_particle
extern ActorInfo D_80372994; extern ActorInfo D_80372994;
extern ActorInfo D_803729B8; //rain extern ActorInfo D_803729B8; //rain
@@ -275,7 +275,7 @@ void spawnQueue_reset(void){
spawnableActorList_add(&D_80372A24, actor_new, 0x80); spawnableActorList_add(&D_80372A24, actor_new, 0x80);
spawnableActorList_add(&D_80372A48, actor_new, 0x81); spawnableActorList_add(&D_80372A48, actor_new, 0x81);
spawnableActorList_add(&D_80372A6C, actor_new, 0x81); spawnableActorList_add(&D_80372A6C, actor_new, 0x81);
spawnableActorList_add(&D_8036D970, actor_new, 0x80); //boombox spawnableActorList_add(&chMinigame, actor_new, 0x80); //boombox
spawnableActorList_add(&D_803677A8, actor_new, 0x8600); //ice_key spawnableActorList_add(&D_803677A8, actor_new, 0x8600); //ice_key
spawnableActorList_add(&D_80367814, actor_new, 0x8600); //SnS_egg spawnableActorList_add(&D_80367814, actor_new, 0x8600); //SnS_egg
spawnableActorList_add(&gChFireFxInfo, actor_new, 0x0); //fire spawnableActorList_add(&gChFireFxInfo, actor_new, 0x0); //fire

View File

@@ -136,7 +136,7 @@ void func_8038D568(Actor *this){
other = marker_getActor(this->unk100); other = marker_getActor(this->unk100);
sp3C = this->velocity_y * sp48; sp3C = this->velocity_y * sp48;
if(this->position_y + sp3C < this->unk1C[1]){ if(this->position_y + sp3C < this->unk1C[1]){
if( !func_8031FF1C(BKPROG_D2_HAS_SPAWNED_A_JINJO_STATUE_IN_FINAL_FIGHT) || this->unkF4_8 == 1){ if( !fileProgressFlag_get(FILEPROG_D2_HAS_SPAWNED_A_JINJO_STATUE_IN_FINAL_FIGHT) || this->unkF4_8 == 1){
func_8030E2C4(this->unk44_31); func_8030E2C4(this->unk44_31);
func_8030E2C4(local->unk0); func_8030E2C4(local->unk0);
} }

View File

@@ -1570,7 +1570,7 @@ void chfinalboss_phase3_update(ActorMarker *marker) {
void func_80389F54(void) { void func_80389F54(void) {
func_80320004(BKPROG_D2_HAS_SPAWNED_A_JINJO_STATUE_IN_FINAL_FIGHT, TRUE); fileProgressFlag_set(FILEPROG_D2_HAS_SPAWNED_A_JINJO_STATUE_IN_FINAL_FIGHT, TRUE);
D_803927C4 = (u8)0; D_803927C4 = (u8)0;
} }
@@ -1597,7 +1597,7 @@ void chfinalboss_phase4_setState(Actor *this, s32 arg1) {
if ((local->unk3 == 2) && (local->unkA == 0)) { if ((local->unk3 == 2) && (local->unkA == 0)) {
D_803927C8 = 1; D_803927C8 = 1;
func_80311480(randi2(0, 5) + 0x1136, 4, NULL, NULL, NULL, NULL); func_80311480(randi2(0, 5) + 0x1136, 4, NULL, NULL, NULL, NULL);
if ( !func_8031FF1C(BKPROG_D2_HAS_SPAWNED_A_JINJO_STATUE_IN_FINAL_FIGHT) ) { if ( !fileProgressFlag_get(FILEPROG_D2_HAS_SPAWNED_A_JINJO_STATUE_IN_FINAL_FIGHT) ) {
local->unkA = 1U; local->unkA = 1U;
D_803927C4 = 1; D_803927C4 = 1;
func_80324E38(0.0f, 1); func_80324E38(0.0f, 1);
@@ -1725,8 +1725,8 @@ void chfinalboss_phase4_update(ActorMarker *marker) {
sp6C = chfinalboss_findCollidingJinjo(this, func_8033229C(this->marker)); sp6C = chfinalboss_findCollidingJinjo(this, func_8033229C(this->marker));
if (sp6C != NULL) { if (sp6C != NULL) {
chbossjinjo_attack(sp6C); chbossjinjo_attack(sp6C);
if (!func_8031FF1C(BKPROG_D1_HAS_ACTIVATED_A_JINJO_STATUE_IN_FINAL_FIGHT)) { if (!fileProgressFlag_get(FILEPROG_D1_HAS_ACTIVATED_A_JINJO_STATUE_IN_FINAL_FIGHT)) {
func_80320004(BKPROG_D1_HAS_ACTIVATED_A_JINJO_STATUE_IN_FINAL_FIGHT, TRUE); fileProgressFlag_set(FILEPROG_D1_HAS_ACTIVATED_A_JINJO_STATUE_IN_FINAL_FIGHT, TRUE);
D_803927C4 = 0; D_803927C4 = 0;
func_80324E88(1.0f); func_80324E88(1.0f);
func_80324E38(1.0f, 0); func_80324E38(1.0f, 0);
@@ -2142,8 +2142,8 @@ void func_8038B780(ActorMarker *marker) {
Actor *sp24; Actor *sp24;
sp24 = marker_getActor(marker); sp24 = marker_getActor(marker);
if (!func_8031FF1C(BKPROG_CF_HAS_ENTERED_FINAL_FIGHT)) { if (!fileProgressFlag_get(FILEPROG_CF_HAS_ENTERED_FINAL_FIGHT)) {
func_80320004(BKPROG_CF_HAS_ENTERED_FINAL_FIGHT, TRUE); fileProgressFlag_set(FILEPROG_CF_HAS_ENTERED_FINAL_FIGHT, TRUE);
func_80311480(0x10E7, 0x2A, sp24->position, sp24->marker, chfinalboss_phase0_endTextCallback, NULL); func_80311480(0x10E7, 0x2A, sp24->position, sp24->marker, chfinalboss_phase0_endTextCallback, NULL);
} }
else{ else{
@@ -2421,7 +2421,7 @@ void func_8038C148(void) {
temp_f20 = sp34 + chjinjonator_80391234(); temp_f20 = sp34 + chjinjonator_80391234();
sp40 = chjinjonator_80391240(); sp40 = chjinjonator_80391240();
camera_node = 0x14; camera_node = 0x14;
func_80320004(BKPROG_FC_DEFEAT_GRUNTY, TRUE); fileProgressFlag_set(FILEPROG_FC_DEFEAT_GRUNTY, TRUE);
if (sp48->mirror_phase5 != 0) { if (sp48->mirror_phase5 != 0) {
camera_node = 0x23; camera_node = 0x23;
} }

View File

@@ -120,7 +120,7 @@ void chstonejinjo_breakOpen(ActorMarker *marker){
actor_playAnimationOnce(actor); actor_playAnimationOnce(actor);
animctrl_setDuration(actor->animctrl, actor->unk1C[0]); animctrl_setDuration(actor->animctrl, actor->unk1C[0]);
SPAWNQUEUE_ADD_1(chstonejinjo_spawnJinjo, actor->marker); SPAWNQUEUE_ADD_1(chstonejinjo_spawnJinjo, actor->marker);
if(!func_8031FF1C(BKPROG_D1_HAS_ACTIVATED_A_JINJO_STATUE_IN_FINAL_FIGHT) && actor->unkF4_8 != BOSSJINJO_JINJONATOR){ if(!fileProgressFlag_get(FILEPROG_D1_HAS_ACTIVATED_A_JINJO_STATUE_IN_FINAL_FIGHT) && actor->unkF4_8 != BOSSJINJO_JINJONATOR){
sp38 = 0x30 + actor->unkF4_8*2; sp38 = 0x30 + actor->unkF4_8*2;
sp34 = chbossjinjo_8038D268(); sp34 = chbossjinjo_8038D268();
sp30 = actor->unk1C[0] + sp34; sp30 = actor->unk1C[0] + sp34;

View File

@@ -8,16 +8,16 @@ typedef struct {
s32 unk0; s32 unk0;
} ActorLocal_lair_5640; } ActorLocal_lair_5640;
void func_8038BCF0(Actor *this); void chBrentilda_update(Actor *this);
/* .data */ /* .data */
ActorAnimationInfo D_80393710[] ={ ActorAnimationInfo chBrentildaAnimations[] ={
{0, 0.0f}, {0, 0.0f},
{0x26B, 4.0f}, {0x26B, 4.0f},
{0x26C, 4.0f}, {0x26C, 4.0f},
{0x26B, 4.0f}, {0x26B, 4.0f},
}; };
ActorInfo D_80393730 = { 0x1E0, 0x348, 0x539, 0x1, D_80393710, func_8038BCF0, func_80326224, func_80325888, 2000, 0, 2.0f, 0}; ActorInfo chBrentilda = { 0x1E0, 0x348, 0x539, 0x1, chBrentildaAnimations, chBrentilda_update, func_80326224, func_80325888, 2000, 0, 2.0f, 0};
/* .code */ /* .code */
void func_8038BA30(ActorMarker *marker, enum asset_e text_id, s32 arg2){ void func_8038BA30(ActorMarker *marker, enum asset_e text_id, s32 arg2){
@@ -34,7 +34,7 @@ void lair_func_8038BA88(ActorMarker *marker, enum asset_e text_id, s32 arg2){
this = marker_getActor(marker); this = marker_getActor(marker);
item_set(ITEM_14_HEALTH, item_getCount(ITEM_15_HEALTH_TOTAL)); item_set(ITEM_14_HEALTH, item_getCount(ITEM_15_HEALTH_TOTAL));
func_80320004(this->unkF4_8 + 0xE8, TRUE); fileProgressFlag_set(this->unkF4_8 - 1 + FILEPROG_E9_TALKED_TO_BRENTILDA_1, TRUE);
} }
void func_8038BADC(ActorMarker *marker, enum asset_e text_id, s32 arg2) { void func_8038BADC(ActorMarker *marker, enum asset_e text_id, s32 arg2) {
@@ -42,7 +42,7 @@ void func_8038BADC(ActorMarker *marker, enum asset_e text_id, s32 arg2) {
this = marker_getActor(marker); this = marker_getActor(marker);
if (text_id == ((ActorLocal_lair_5640 *)&this->local)->unk0 + 2) { if (text_id == ((ActorLocal_lair_5640 *)&this->local)->unk0 + 2) {
if (!func_8031FF1C(this->unkF4_8 + 0xE8)) { if (!fileProgressFlag_get(this->unkF4_8 - 1 + FILEPROG_E9_TALKED_TO_BRENTILDA_1)) {
if (item_getCount(ITEM_14_HEALTH) < item_getCount(ITEM_15_HEALTH_TOTAL)) { if (item_getCount(ITEM_14_HEALTH) < item_getCount(ITEM_15_HEALTH_TOTAL)) {
func_80311480(0x10A2, 0xF, this->position, this->marker, func_8038BADC, lair_func_8038BA88); func_80311480(0x10A2, 0xF, this->position, this->marker, func_8038BADC, lair_func_8038BA88);
return; return;
@@ -68,8 +68,8 @@ void func_8038BC24(void) {
s32 phi_s0; s32 phi_s0;
s32 phi_s1; s32 phi_s1;
if (func_8031FF1C(0x5C) && !func_803203FC(0x62)) { if (fileProgressFlag_get(FILEPROG_5C_FF_PATTERN_SET) && !func_803203FC(0x62)) {
func_8034A8BC(func_8031FF44(0xD3, 8)); func_8034A8BC(fileProgressFlag_getN(FILEPROG_D3_FF_PATTERN, 8));
for(phi_s1 = 0; phi_s1 < func_8031A45C(3); phi_s1++){ for(phi_s1 = 0; phi_s1 < func_8031A45C(3); phi_s1++){
phi_s0 = 0x26 + 2*phi_s1; phi_s0 = 0x26 + 2*phi_s1;
temp_v0 = randi2(0, 3); temp_v0 = randi2(0, 3);
@@ -84,7 +84,7 @@ void func_8038BC24(void) {
} }
void func_8038BCF0(Actor *this) { void chBrentilda_update(Actor *this) {
s32 sp78[6]; s32 sp78[6];
s32 sp74; s32 sp74;
ActorLocal_lair_5640 *local; ActorLocal_lair_5640 *local;
@@ -100,9 +100,9 @@ void func_8038BCF0(Actor *this) {
marker_setFreeMethod(this->marker, func_8038BBC0); marker_setFreeMethod(this->marker, func_8038BBC0);
actor_collisionOff(this); actor_collisionOff(this);
this->unk10_12 = 2; this->unk10_12 = 2;
if (!func_8031FF1C(0x5C)) { if (!fileProgressFlag_get(FILEPROG_5C_FF_PATTERN_SET)) {
func_80320044(0xD3, randi2(0, 0x100), 8); fileProgressFlag_setN(FILEPROG_D3_FF_PATTERN, randi2(0, 0x100), 8);
func_80320004(0x5C, TRUE); fileProgressFlag_set(FILEPROG_5C_FF_PATTERN_SET, TRUE);
} }
func_8038BC24(); func_8038BC24();
actor_setOpacity(this, 0x40); actor_setOpacity(this, 0x40);
@@ -178,9 +178,9 @@ void func_8038BCF0(Actor *this) {
&& (func_8028ECAC() == 0) && (func_8028ECAC() == 0)
&& func_8028F20C() && func_8028F20C()
&& !func_803114B0()) { && !func_803114B0()) {
if (!func_8031FF1C(0x96)) { if (!fileProgressFlag_get(FILEPROG_96_MET_BRENTILDA)) {
func_80311480(0x10A1, 0xA, this->position, this->marker, func_8038BADC, NULL); func_80311480(ASSET_10A1_DIALOG_BRENTILDA_MEET, 0xA, this->position, this->marker, func_8038BADC, NULL);
func_80320004(0x96, TRUE); fileProgressFlag_set(FILEPROG_96_MET_BRENTILDA, TRUE);
func_80328A84(this, 2); func_80328A84(this, 2);
return; return;
} }

View File

@@ -20,8 +20,8 @@ extern void *func_8034C2C4(ActorMarker *, s32);
void lair_func_803863F0(Actor *this); void chFloorCobweb_update(Actor *this);
void lair_func_803864B0(Actor *this); void chWallCobweb_update(Actor *this);
void lair_func_80386550(Actor *this); void lair_func_80386550(Actor *this);
Actor *func_8038664C(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx); Actor *func_8038664C(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx);
void func_80386D78(Actor *this); void func_80386D78(Actor *this);
@@ -64,7 +64,7 @@ extern ActorInfo D_80393560;
extern ActorInfo D_80393584; extern ActorInfo D_80393584;
extern ActorInfo D_803947B0; extern ActorInfo D_803947B0;
extern ActorInfo D_803947D4; extern ActorInfo D_803947D4;
extern ActorInfo D_80393730; extern ActorInfo chBrentilda;
extern ActorInfo D_80394A80; extern ActorInfo D_80394A80;
extern ActorInfo D_80394AB0; extern ActorInfo D_80394AB0;
extern ActorInfo D_80394870; extern ActorInfo D_80394870;
@@ -125,10 +125,10 @@ ActorInfo D_80392E68 = { 0x11D, 0x223, 0x4B0, 0x1, D_80392CB0, func_80389784, fu
ActorInfo D_80392E8C = { 0x232, 0x23C, 0x4B8, 0x1, D_80392CB0, func_803897AC, func_80326224, func_80325888, 0, 0, 0.0f, 0}; ActorInfo D_80392E8C = { 0x232, 0x23C, 0x4B8, 0x1, D_80392CB0, func_803897AC, func_80326224, func_80325888, 0, 0, 0.0f, 0};
ActorInfo D_80392EB0 = { 0x23F, 0x246, 0x534, 0x1, D_80392CB0, func_80386D20, func_80326224, func_80325888, 0, 0, 0.0f, 0}; ActorInfo D_80392EB0 = { 0x23F, 0x246, 0x534, 0x1, D_80392CB0, func_80386D20, func_80326224, func_80325888, 0, 0, 0.0f, 0};
ActorInfo D_80392ED4 = { 0x241, 0x248, 0x540, 0x1, D_80392CB0, func_80386780, func_80326224, func_80325888, 0, 0, 0.0f, 0}; ActorInfo D_80392ED4 = { 0x241, 0x248, 0x540, 0x1, D_80392CB0, func_80386780, func_80326224, func_80325888, 0, 0, 0.0f, 0};
ActorInfo D_80392EF8 = { 0x109, 0x20D, 0x4A1, 0x1, D_80392CB0, lair_func_80386550, func_80326224, func_80325888, 0, 0, 0.0f, 0x85}; ActorInfo D_80392EF8 = { MARKER_109_BREAKABLE_BRICK_WALL, ACTOR_20D_BREAKABLE_BRICK_WALL, ASSET_4A1_MODEL_BREAKABLE_BRICK_WALL, 0x1, D_80392CB0, lair_func_80386550, func_80326224, func_80325888, 0, 0, 0.0f, 0x85};
ActorInfo D_80392F1C = { 0x264, 0x2E5, 0x550, 0x19, D_80392CB0, func_80388524, func_80326224, func_80325888, 0, 0, 0.0f, 0}; ActorInfo D_80392F1C = { 0x264, 0x2E5, 0x550, 0x19, D_80392CB0, func_80388524, func_80326224, func_80325888, 0, 0, 0.0f, 0};
ActorInfo D_80392F40 = { 0x224, 0x230, 0x4BF, 0xB, D_80392CB0, lair_func_803863F0, func_80326224, func_80325888, 0, 0, 0.0f, 0x88}; ActorInfo D_80392F40 = { MARKER_224_BREAKABLE_FLOOR_COBWEB, ACTOR_230_BREAKABLE_FLOOR_COBWEB, ASSET_4BF_MODEL_FLOOR_COBWEB, 0xB, D_80392CB0, chFloorCobweb_update, func_80326224, func_80325888, 0, 0, 0.0f, 0x88};
ActorInfo D_80392F64 = { 0x225, 0x231, 0x4D5, 0xE, D_80392CB0, lair_func_803864B0, func_80326224, func_80325888, 0, 0, 0.0f, 0x88}; ActorInfo D_80392F64 = { MARKER_225_BREAKABLE_WALL_COBWEB, ACTOR_231_BREAKABLE_WALL_COBWEB, ASSET_4D5_MODEL_WALL_COBWEB, 0xE, D_80392CB0, chWallCobweb_update, func_80326224, func_80325888, 0, 0, 0.0f, 0x88};
ActorInfo D_80392F88 = { 0x111, 0x215, 0x4A4, 0x1, NULL, func_80388FC8, func_80326224, func_80325E78, 0, 0, 0.0f, 0}; ActorInfo D_80392F88 = { 0x111, 0x215, 0x4A4, 0x1, NULL, func_80388FC8, func_80326224, func_80325E78, 0, 0, 0.0f, 0};
ActorInfo D_80392FAC = { 0x112, 0x216, 0x4A5, 0x1, NULL, func_80388FC8, func_80326224, func_80325E78, 0, 0, 0.0f, 0}; ActorInfo D_80392FAC = { 0x112, 0x216, 0x4A5, 0x1, NULL, func_80388FC8, func_80326224, func_80325E78, 0, 0, 0.0f, 0};
ActorInfo D_80392FD0 = { 0x114, 0x218, 0x4A6, 0x1, NULL, lair_func_80389204, func_80326224, func_80325E78, 0, 0, 0.0f, 0}; ActorInfo D_80392FD0 = { 0x114, 0x218, 0x4A6, 0x1, NULL, lair_func_80389204, func_80326224, func_80325E78, 0, 0, 0.0f, 0};
@@ -152,7 +152,7 @@ ActorInfo D_80393234 = { 0x10B, 0x20F, 0x4B4, 0x1, NULL, func_80388524, func_803
ActorInfo D_80393258 = { 0x10C, 0x210, 0x4AE, 0x1, NULL, func_80388524, func_80326224, func_80325E78, 0, 0, 0.0f, 0x84}; ActorInfo D_80393258 = { 0x10C, 0x210, 0x4AE, 0x1, NULL, func_80388524, func_80326224, func_80325E78, 0, 0, 0.0f, 0x84};
ActorInfo D_8039327C = { 0x10E, 0x212, 0x4A7, 0x1, NULL, func_80388524, func_80326224, func_80325E78, 0, 0, 0.0f, 0x7F}; ActorInfo D_8039327C = { 0x10E, 0x212, 0x4A7, 0x1, NULL, func_80388524, func_80326224, func_80325E78, 0, 0, 0.0f, 0x7F};
ActorInfo D_803932A0 = { 0x120, 0x226, 0x4BC, 0x1, NULL, func_80388524, func_80326224, func_80325E78, 0, 0, 0.0f, 0x87}; ActorInfo D_803932A0 = { 0x120, 0x226, 0x4BC, 0x1, NULL, func_80388524, func_80326224, func_80325E78, 0, 0, 0.0f, 0x87};
ActorInfo D_803932C4 = { 0x122, 0x228, 0x4BE, 0x1, NULL, func_80388524, func_80326224, func_80325E78, 0, 0, 0.0f, 0x8C}; ActorInfo D_803932C4 = { 0x122, ACTOR_228_MMM_ENTRANCE_DOOR, 0x4BE, 0x1, NULL, func_80388524, func_80326224, func_80325E78, 0, 0, 0.0f, 0x8C};
ActorInfo D_803932E8 = { 0x10F, 0x213, 0x4A8, 0x1, NULL, func_803875F0, func_80326224, func_80325E78, 0, 0, 0.0f, 0x80}; ActorInfo D_803932E8 = { 0x10F, 0x213, 0x4A8, 0x1, NULL, func_803875F0, func_80326224, func_80325E78, 0, 0, 0.0f, 0x80};
ActorInfo D_8039330C = { 0x118, 0x21E, 0x4B1, 0x1, NULL, lair_func_8038A084, func_80326224, func_80325E78, 0, 0, 0.0f, 0x8F}; ActorInfo D_8039330C = { 0x118, 0x21E, 0x4B1, 0x1, NULL, lair_func_8038A084, func_80326224, func_80325E78, 0, 0, 0.0f, 0x8F};
ActorInfo D_80393330 = { 0x119, 0x21F, 0x4B6, 0x1, NULL, func_8038A0A4, func_80326224, func_80325E78, 0, 0, 0.0f, 0x92}; ActorInfo D_80393330 = { 0x119, 0x21F, 0x4B6, 0x1, NULL, func_8038A0A4, func_80326224, func_80325E78, 0, 0, 0.0f, 0x92};
@@ -170,15 +170,15 @@ struct31s D_8039342C = {
0.0f, 0.0f 0.0f, 0.0f
}; };
s16 D_80393454[] = { s16 D_80393454[] = {
BKPROG_31_MM_OPEN, FILEPROG_31_MM_OPEN,
BKPROG_32_TTC_OPEN, FILEPROG_32_TTC_OPEN,
BKPROG_33_CC_OPEN, FILEPROG_33_CC_OPEN,
BKPROG_34_BGS_OPEN, FILEPROG_34_BGS_OPEN,
BKPROG_35_FP_OPEN, FILEPROG_35_FP_OPEN,
BKPROG_36_GV_OPEN, FILEPROG_36_GV_OPEN,
BKPROG_37_MMM_OPEN, FILEPROG_37_MMM_OPEN,
BKPROG_38_RBB_OPEN, FILEPROG_38_RBB_OPEN,
BKPROG_39_CCW_OPEN, FILEPROG_39_CCW_OPEN,
0 0
}; };
@@ -214,13 +214,13 @@ s32 D_80393504[4] = {0x87, 0x87, 0x87, 0xB4};
//chcobweb //chcobweb
void lair_func_803863F0(Actor *this) void chFloorCobweb_update(Actor *this)
{ {
if(!this->initialized) if(!this->initialized)
{ {
func_802D3CE8(this); func_802D3CE8(this);
if (func_8031FF1C(this->unkF4_8 == 1 ? 0xCB : 0xCC)) if (fileProgressFlag_get(this->unkF4_8 == 1 ? FILEPROG_CB_LAIR_COBWEB_OVER_FLIGHTPAD_BROKEN : FILEPROG_CC_LAIR_COBWEB_OVER_GREEN_CAULDRON_BROKEN))
{ {
marker_despawn(this->marker); marker_despawn(this->marker);
return; return;
@@ -238,13 +238,13 @@ void lair_func_803863F0(Actor *this)
} }
//chbigyellowcobweb //chbigyellowcobweb
void lair_func_803864B0(Actor *this) void chWallCobweb_update(Actor *this)
{ {
if (!this->initialized) if (!this->initialized)
{ {
func_802D3CE8(this); func_802D3CE8(this);
if (func_8031FF1C(0xCA)) if (fileProgressFlag_get(FILEPROG_CA_COBWEB_BLOCKING_PURPLE_CAULDRON_BROKEN))
{ {
marker_despawn(this->marker); marker_despawn(this->marker);
return; return;
@@ -267,7 +267,7 @@ void lair_func_80386550(Actor *this)
{ {
func_802D3CE8(this); func_802D3CE8(this);
if (func_8031FF1C(this->unkF4_8 == 1 ? 0xC8 : 0xC9)) if (fileProgressFlag_get(this->unkF4_8 == 1 ? FILEPROG_C8_LAIR_BRICKWALL_TO_WADINGBOOTS_BROKEN : FILEPROG_C9_LAIR_BRICKWALL_TO_SHOCKJUMP_PAD_BROKEN))
{ {
marker_despawn(this->marker); marker_despawn(this->marker);
return; return;
@@ -334,7 +334,7 @@ ParticleEmitter *func_803866D8(s32 a0)
void func_80386780(Actor *this) void func_80386780(Actor *this)
{ {
func_802D4AC0(this, 0x8000C6, 0xC7); func_802D4AC0(this, 0x800000 | FILEPROG_C6_LAIR_JUMP_PAD_SWITCH_PRESSED, FILEPROG_C7_LAIR_JUMP_PAD_ACTIVE);
} }
void func_803867A8(Actor *this) { void func_803867A8(Actor *this) {
@@ -365,8 +365,8 @@ void func_803867A8(Actor *this) {
this->unk158[1] = func_803866D8(1); this->unk158[1] = func_803866D8(1);
if (func_803203FC(0x86)) { if (func_803203FC(0x86)) {
ability_unlock(ABILITY_D_SHOCK_JUMP); ability_unlock(ABILITY_D_SHOCK_JUMP);
func_80320004(0xC6, TRUE); fileProgressFlag_set(FILEPROG_C6_LAIR_JUMP_PAD_SWITCH_PRESSED, TRUE);
func_80320004(0xC7, TRUE); fileProgressFlag_set(FILEPROG_C7_LAIR_JUMP_PAD_ACTIVE, TRUE);
} }
} }
if ((this->unk1C[1] - 150.0f) <= this->position[1]) { if ((this->unk1C[1] - 150.0f) <= this->position[1]) {
@@ -424,10 +424,10 @@ void func_803867A8(Actor *this) {
particleEmitter_emitN(sp44, 1); particleEmitter_emitN(sp44, 1);
} }
} }
} else if (func_8031FF1C(0xC6)) { } else if (fileProgressFlag_get(FILEPROG_C6_LAIR_JUMP_PAD_SWITCH_PRESSED)) {
this->position_y = this->unk1C[1]; this->position_y = this->unk1C[1];
if (func_8031FF1C(0xC7)) { if (fileProgressFlag_get(FILEPROG_C7_LAIR_JUMP_PAD_ACTIVE)) {
this->unk38_31 = 0; this->unk38_31 = 0;
this->alpha_124_19 = 0xFF; this->alpha_124_19 = 0xFF;
} }
@@ -525,7 +525,7 @@ void func_803870DC(Actor *this) {
f32 sp64[3]; f32 sp64[3];
s32 temp_s7; s32 temp_s7;
phi_v1 = func_8031FF1C(D_80393454[this->unkF4_8 - 1]) phi_v1 = fileProgressFlag_get(D_80393454[this->unkF4_8 - 1])
|| (D_80393468[this->unkF4_8 - 1] != 0 && func_803203FC(D_80393468[this->unkF4_8 - 1])); || (D_80393468[this->unkF4_8 - 1] != 0 && func_803203FC(D_80393468[this->unkF4_8 - 1]));
if (!this->unk16C_4) { if (!this->unk16C_4) {
@@ -605,7 +605,7 @@ void func_803875F0(Actor * this)
if (!this->unk16C_4) if (!this->unk16C_4)
{ {
if (func_8031FF1C(0x1E)) if (fileProgressFlag_get(FILEPROG_1E_LAIR_GRATE_TO_BGS_PUZZLE_OPEN))
{ {
marker_despawn(this->marker); marker_despawn(this->marker);
return; return;
@@ -615,7 +615,7 @@ void func_803875F0(Actor * this)
{ {
this->unk1C_y = this->position_y; this->unk1C_y = this->position_y;
func_802BAFE4(0x2A); func_802BAFE4(0x2A);
func_80320004(0x1E, TRUE); fileProgressFlag_set(FILEPROG_1E_LAIR_GRATE_TO_BGS_PUZZLE_OPEN, TRUE);
this->unk16C_4 = TRUE; this->unk16C_4 = TRUE;
this->unk38_31 = 0x0C; this->unk38_31 = 0x0C;
} }
@@ -663,7 +663,7 @@ void func_80387730(Actor *this) {
this->alpha_124_19 = 0xFF; this->alpha_124_19 = 0xFF;
this->unk1C[1] = 0.0f; this->unk1C[1] = 0.0f;
this->unk1C[2] = 3.5f; this->unk1C[2] = 3.5f;
if (func_8031FF1C(this->unkF4_8 + 0x39)) { if (fileProgressFlag_get(this->unkF4_8 + 0x39)) {
marker_despawn(this->marker); marker_despawn(this->marker);
return; return;
} }
@@ -682,7 +682,7 @@ void func_80387730(Actor *this) {
this->unk1C[1] = 0.0f; this->unk1C[1] = 0.0f;
this->unk1C[2] = 3.5f; this->unk1C[2] = 3.5f;
} }
if (!func_8031FF1C(this->unkF4_8 + 0x39) && ability_isUnlocked(ABILITY_13_1ST_NOTEDOOR)) { if (!fileProgressFlag_get(this->unkF4_8 + 0x39) && ability_isUnlocked(ABILITY_13_1ST_NOTEDOOR)) {
player_getPosition(spAC); player_getPosition(spAC);
if ((ml_distance_vec3f(spAC, this->position) < 500.0f) && (func_803114C4() != 0xF64)) { if ((ml_distance_vec3f(spAC, this->position) < 500.0f) && (func_803114C4() != 0xF64)) {
func_802FACA4(0xC); func_802FACA4(0xC);
@@ -712,7 +712,7 @@ void func_80387730(Actor *this) {
this->alpha_124_19 -= 7; this->alpha_124_19 -= 7;
} }
if (this->alpha_124_19 == 0) { if (this->alpha_124_19 == 0) {
func_80320004(this->unkF4_8 + 0x39, TRUE); fileProgressFlag_set(this->unkF4_8 + 0x39, TRUE);
marker_despawn(this->marker); marker_despawn(this->marker);
func_8028F918(0); func_8028F918(0);
func_8028F66C(BS_INTR_35); func_8028F66C(BS_INTR_35);
@@ -830,22 +830,22 @@ void func_80387F78(Actor *this, u32 flag)
{ {
if (this->unk1C[0] != 2.f) if (this->unk1C[0] != 2.f)
{ {
if (this->unk1C[0] != 0 && func_8031FF1C(0x9B)) if (this->unk1C[0] != 0 && fileProgressFlag_get(FILEPROG_9B_LAIR_CC_WITCH_SWITCH_EYES_ACTIVE))
{ {
u32 flagState = func_8031FF1C(flag); u32 flagState = fileProgressFlag_get(flag);
func_80320004(flag, TRUE); fileProgressFlag_set(flag, TRUE);
if (flagState == FALSE if (flagState == FALSE
&& !jiggyscore_isSpawned(JIGGY_35_LAIR_CC_WITCH_SWITCH) && !jiggyscore_isSpawned(JIGGY_35_LAIR_CC_WITCH_SWITCH)
&& func_8031FF1C(0x9C) && fileProgressFlag_get(FILEPROG_9C_LAIR_CC_WITCH_SWITCH_LEFT_EYE_PRESSED)
&& func_8031FF1C(0x9D)) && fileProgressFlag_get(FILEPROG_9D_LAIR_CC_WITCH_SWITCH_RIGHT_EYE_PRESSED))
{ {
func_8025A6EC(0x2D, 0x7FFF); func_8025A6EC(COMUSIC_2D_PUZZLE_SOLVED_FANFARE, 0x7FFF);
timedFunc_set_0(0.9f, func_80387F1C); timedFunc_set_0(0.9f, func_80387F1C);
} }
} }
if (func_8031FF1C(flag)) if (fileProgressFlag_get(flag))
{ {
this->position_y -= 4.5; // f64 this->position_y -= 4.5; // f64
@@ -873,19 +873,19 @@ void func_803880BC(Actor *this)
__spawnQueue_add_1((GenMethod_1)func_80387E94, reinterpret_cast(s32, this->marker)); __spawnQueue_add_1((GenMethod_1)func_80387E94, reinterpret_cast(s32, this->marker));
if (func_803203FC(0xBC) && !func_8031FF1C(0x9A)) if (func_803203FC(0xBC) && !fileProgressFlag_get(FILEPROG_9A_CC_WITCH_SWITCH_PRESSED))
FUNC_8030E624(SFX_3F6_UNKNOWN, 0.75f, 30000); FUNC_8030E624(SFX_3F6_UNKNOWN, 0.75f, 30000);
} }
if (func_8031FF1C(0x9B)) if (fileProgressFlag_get(FILEPROG_9B_LAIR_CC_WITCH_SWITCH_EYES_ACTIVE))
{ {
if (!func_8031FF1C(0x9C)) if (!fileProgressFlag_get(FILEPROG_9C_LAIR_CC_WITCH_SWITCH_LEFT_EYE_PRESSED))
{ {
this->position_y = this->unk1C[1]; this->position_y = this->unk1C[1];
actor_collisionOn(this); actor_collisionOn(this);
} }
if (this->unk100 != NULL && !func_8031FF1C(0x9D)) if (this->unk100 != NULL && !fileProgressFlag_get(FILEPROG_9D_LAIR_CC_WITCH_SWITCH_RIGHT_EYE_PRESSED))
{ {
Actor *actor = marker_getActor(this->unk100); Actor *actor = marker_getActor(this->unk100);
actor->position_y = this->unk1C[1]; actor->position_y = this->unk1C[1];
@@ -893,14 +893,14 @@ void func_803880BC(Actor *this)
} }
} }
if (func_803203FC(0xBC) && !func_8031FF1C(0x9B)) if (func_803203FC(0xBC) && !fileProgressFlag_get(FILEPROG_9B_LAIR_CC_WITCH_SWITCH_EYES_ACTIVE))
{ {
this->position_y += 1.7; this->position_y += 1.7;
if (this->position_y >= this->unk1C[1]) if (this->position_y >= this->unk1C[1])
{ {
this->position_y = this->unk1C[1]; this->position_y = this->unk1C[1];
func_80320004(0x9B, TRUE); fileProgressFlag_set(FILEPROG_9B_LAIR_CC_WITCH_SWITCH_EYES_ACTIVE, TRUE);
} }
if (this->unk100 != NULL) if (this->unk100 != NULL)
@@ -910,13 +910,13 @@ void func_803880BC(Actor *this)
} }
} }
func_80387F78(this, 0x9C); func_80387F78(this, FILEPROG_9C_LAIR_CC_WITCH_SWITCH_LEFT_EYE_PRESSED);
} }
void func_8038824C(Actor *this) void func_8038824C(Actor *this)
{ {
func_802D3CE8(this); func_802D3CE8(this);
func_80387F78(this, 0x9D); func_80387F78(this, FILEPROG_9D_LAIR_CC_WITCH_SWITCH_RIGHT_EYE_PRESSED);
} }
@@ -939,7 +939,7 @@ void func_803882B0(Actor *this)
this->unk16C_4 = TRUE; this->unk16C_4 = TRUE;
if (func_8031FF1C(0x48)) if (fileProgressFlag_get(FILEPROG_48_FP_WITCH_SWITCH_ADVENT_DOOR_OPEN))
this->pitch = 90.f; this->pitch = 90.f;
this->unk60 = 0; this->unk60 = 0;
@@ -962,17 +962,17 @@ void func_803882B0(Actor *this)
if (this->pitch > 90.f) if (this->pitch > 90.f)
{ {
this->pitch = 90.f; this->pitch = 90.f;
func_80320004(0x48, TRUE); fileProgressFlag_set(FILEPROG_48_FP_WITCH_SWITCH_ADVENT_DOOR_OPEN, TRUE);
func_802D48B8(this); func_802D48B8(this);
} }
} }
void func_80388404(enum bkprog_e flag, enum sfx_e sfx, f32 a2, s32 a3) void func_80388404(enum file_progress_e flag, enum sfx_e sfx, f32 a2, s32 a3)
{ {
if (func_8031FF1C(flag) == FALSE) if (fileProgressFlag_get(flag) == FALSE)
func_8030E6A4(sfx, a2, a3); func_8030E6A4(sfx, a2, a3);
func_80320004(flag, TRUE); fileProgressFlag_set(flag, TRUE);
} }
void func_80388450(Actor *actor1, Actor *actor2) void func_80388450(Actor *actor1, Actor *actor2)
@@ -1015,63 +1015,63 @@ void func_80388524(Actor *this) {
if (!this->initialized) { if (!this->initialized) {
if (!sp34) { if (!sp34) {
switch(this->modelCacheIndex){ switch(this->modelCacheIndex){
case 0x2E5://L80388630 case ACTOR_2E5_DOOR_OF_GRUNTY://L80388630
if (!func_8031FF1C(0xE2) && func_8038EAE0(0xA)) { if (!fileProgressFlag_get(FILEPROG_E2_DOOR_OF_GRUNTY_OPEN) && func_8038EAE0(0xA)) {
func_80320004(0xE2, TRUE); fileProgressFlag_set(FILEPROG_E2_DOOR_OF_GRUNTY_OPEN, TRUE);
} }
break; break;
case 0x20e: //L80388660 case ACTOR_20E_MM_ENTRANCE_DOOR: //L80388660
if (!func_8031FF1C(0x31) && func_8038EAE0(1)) { if (!fileProgressFlag_get(FILEPROG_31_MM_OPEN) && func_8038EAE0(1)) {
func_80320004(0x31, TRUE); fileProgressFlag_set(FILEPROG_31_MM_OPEN, TRUE);
} }
break; break;
case 0x226: //L80388690 case ACTOR_226_GV_ENTRANCE: //L80388690
if (!func_8031FF1C(0x36) && func_8038EAE0(6)) { if (!fileProgressFlag_get(FILEPROG_36_GV_OPEN) && func_8038EAE0(6)) {
func_80320004(0x36, TRUE); fileProgressFlag_set(FILEPROG_36_GV_OPEN, TRUE);
} }
break; break;
case 0x212: //L803886C0 case ACTOR_212_CC_ENTRANCE_BARS: //L803886C0
if (!func_8031FF1C(0x33) && func_8038EAE0(3)) { if (!fileProgressFlag_get(FILEPROG_33_CC_OPEN) && func_8038EAE0(3)) {
func_80320004(0x33, TRUE); fileProgressFlag_set(FILEPROG_33_CC_OPEN, TRUE);
} }
break; break;
case 0x211: //L803886F0 case ACTOR_211_TCC_ENTRANCE_CHEST_LID: //L803886F0
if (!func_8031FF1C(0x32) && func_8038EAE0(2)) { if (!fileProgressFlag_get(FILEPROG_32_TTC_OPEN) && func_8038EAE0(2)) {
func_80320004(0x32, TRUE); fileProgressFlag_set(FILEPROG_32_TTC_OPEN, TRUE);
} }
break; break;
case 0x210: //L80388720 case ACTOR_210_BGS_ENTRANCE_DOOR: //L80388720
if (!func_8031FF1C(0x34) && func_8038EAE0(4)) { if (!fileProgressFlag_get(FILEPROG_34_BGS_OPEN) && func_8038EAE0(4)) {
func_80320004(0x34, TRUE); fileProgressFlag_set(FILEPROG_34_BGS_OPEN, TRUE);
} }
break; break;
case 0x20f: //L80388750 case ACTOR_20F_RBB_ENTRANCE_DOOR: //L80388750
if (!func_8031FF1C(0x38) && func_8038EAE0(8)) { if (!fileProgressFlag_get(FILEPROG_38_RBB_OPEN) && func_8038EAE0(8)) {
func_80320004(0x38, TRUE); fileProgressFlag_set(FILEPROG_38_RBB_OPEN, TRUE);
} }
break; break;
case 0x228: //L80388780 case ACTOR_228_MMM_ENTRANCE_DOOR: //L80388780
if (!func_8031FF1C(0x37) && func_8038EAE0(7)) { if (!fileProgressFlag_get(FILEPROG_37_MMM_OPEN) && func_8038EAE0(7)) {
func_80320004(0x37, TRUE); fileProgressFlag_set(FILEPROG_37_MMM_OPEN, TRUE);
} }
break; break;
case 0x234: //L803887B0 case ACTOR_234_CCW_ENTRANCE_DOOR: //L803887B0
if (!func_8031FF1C(0x39) && func_8038EAE0(9)) { if (!fileProgressFlag_get(FILEPROG_39_CCW_OPEN) && func_8038EAE0(9)) {
func_80320004(0x39, TRUE); fileProgressFlag_set(FILEPROG_39_CCW_OPEN, TRUE);
} }
break; break;
case 0x235: //L803887E0 case ACTOR_235_FP_ENTANCE_DOOR: //L803887E0
if (!func_8031FF1C(0x35) && func_8038EAE0(5)) { if (!fileProgressFlag_get(FILEPROG_35_FP_OPEN) && func_8038EAE0(5)) {
func_80320004(0x35, TRUE); fileProgressFlag_set(FILEPROG_35_FP_OPEN, TRUE);
} }
break; break;
}//L80388808 }//L80388808
@@ -1081,71 +1081,71 @@ void func_80388524(Actor *this) {
if (!this->unk16C_4) { if (!this->unk16C_4) {
this->unk16C_4 = TRUE; this->unk16C_4 = TRUE;
switch(this->modelCacheIndex){ switch(this->modelCacheIndex){
case 0x2E5: //L80388880 case ACTOR_2E5_DOOR_OF_GRUNTY: //L80388880
if (func_8031FF1C(0xE2) && (this->state == 0x19)) { if (fileProgressFlag_get(FILEPROG_E2_DOOR_OF_GRUNTY_OPEN) && (this->state == 0x19)) {
func_80328B8C(this, 0x1B, 0.999f, 1); func_80328B8C(this, 0x1B, 0.999f, 1);
} }
break; break;
case 0x20e://L803888C0 case ACTOR_20E_MM_ENTRANCE_DOOR://L803888C0
if(func_8031FF1C(0x31)){ if(fileProgressFlag_get(FILEPROG_31_MM_OPEN)){
this->yaw = 270.0f; this->yaw = 270.0f;
} }
break; break;
case 0x226://L803888DC case ACTOR_226_GV_ENTRANCE://L803888DC
if(func_8031FF1C(0x36)){ if(fileProgressFlag_get(FILEPROG_36_GV_OPEN)){
marker_despawn(this->marker); marker_despawn(this->marker);
return; return;
} }
this->unk1C[1] = this->position[1] + 300.0f; this->unk1C[1] = this->position[1] + 300.0f;
break; break;
case 0x212://L80388914 case ACTOR_212_CC_ENTRANCE_BARS://L80388914
if(func_8031FF1C(0x33)){ if(fileProgressFlag_get(FILEPROG_33_CC_OPEN)){
marker_despawn(this->marker); marker_despawn(this->marker);
return; return;
} }
this->unk1C[1] = this->position[1] + 365.0f; this->unk1C[1] = this->position[1] + 365.0f;
break; break;
case 0x211://L80388948 case ACTOR_211_TCC_ENTRANCE_CHEST_LID://L80388948
if(func_8031FF1C(0x32)){ if(fileProgressFlag_get(FILEPROG_32_TTC_OPEN)){
this->pitch = 90.0f; this->pitch = 90.0f;
} }
break; break;
case 0x210://L8038896C case ACTOR_210_BGS_ENTRANCE_DOOR://L8038896C
if(func_8031FF1C(0x34)){ if(fileProgressFlag_get(FILEPROG_34_BGS_OPEN)){
this->yaw = 90.0f; this->yaw = 90.0f;
} }
break; break;
case 0x20f://L80388990 case ACTOR_20F_RBB_ENTRANCE_DOOR://L80388990
if(func_8031FF1C(0x38)){ if(fileProgressFlag_get(FILEPROG_38_RBB_OPEN)){
marker_despawn(this->marker); marker_despawn(this->marker);
return; return;
} }
this->unk1C[1] = this->position[1] + 290.0f; this->unk1C[1] = this->position[1] + 290.0f;
break; break;
case 0x228://L803889C8 case ACTOR_228_MMM_ENTRANCE_DOOR://L803889C8
if(func_8031FF1C(0x37)){ if(fileProgressFlag_get(FILEPROG_37_MMM_OPEN)){
this->yaw = 90.0f; this->yaw = 90.0f;
} }
break; break;
case 0x234://L803889EC case ACTOR_234_CCW_ENTRANCE_DOOR://L803889EC
if(func_8031FF1C(0x39)){ if(fileProgressFlag_get(FILEPROG_39_CCW_OPEN)){
marker_despawn(this->marker); marker_despawn(this->marker);
return; return;
} }
this->unk1C[1] = this->position[1] + 270.0f; this->unk1C[1] = this->position[1] + 270.0f;
break; break;
case 0x235://L80388A24 case ACTOR_235_FP_ENTANCE_DOOR://L80388A24
sp30 = actorArray_findActorFromActorId(0x236); sp30 = actorArray_findActorFromActorId(0x236);
if(func_8031FF1C(0x35)){ if(fileProgressFlag_get(FILEPROG_35_FP_OPEN)){
marker_despawn(this->marker); marker_despawn(this->marker);
marker_despawn(sp30->marker); marker_despawn(sp30->marker);
return; return;
@@ -1180,7 +1180,7 @@ void func_80388524(Actor *this) {
} }
if (actor_animationIsAt(this, 0.97f)) { if (actor_animationIsAt(this, 0.97f)) {
func_80328B8C(this, 0x1B, 0.999f, 1); func_80328B8C(this, 0x1B, 0.999f, 1);
func_80320004(0xE2, 1); fileProgressFlag_set(FILEPROG_E2_DOOR_OF_GRUNTY_OPEN, 1);
func_8030E6D4(SFX_6C_LOCKUP_CLOSING); func_8030E6D4(SFX_6C_LOCKUP_CLOSING);
} }
if (animctrl_getAnimTimer(this->animctrl) < 0.68) { if (animctrl_getAnimTimer(this->animctrl) < 0.68) {
@@ -1251,7 +1251,7 @@ void func_80388524(Actor *this) {
} }
break; break;
case 0x228://L80388E84 case ACTOR_228_MMM_ENTRANCE_DOOR://L80388E84
this->yaw += 1.4; this->yaw += 1.4;
if (this->yaw > 90.0f) { if (this->yaw > 90.0f) {
this->yaw = 90.0f; this->yaw = 90.0f;
@@ -1259,16 +1259,16 @@ void func_80388524(Actor *this) {
} }
break; break;
case 0x234://L80388ED4 case ACTOR_234_CCW_ENTRANCE_DOOR://L80388ED4
this->position[1] += 3.2; this->position[1] += 3.2;
if (this->unk1C[1] <= this->position[1]) { if (this->unk1C[1] <= this->position[1]) {
func_80388404(0x39, SFX_6C_LOCKUP_CLOSING, 1.0f, 20000); func_80388404(FILEPROG_39_CCW_OPEN, SFX_6C_LOCKUP_CLOSING, 1.0f, 20000);
lair_func_80388278(this); lair_func_80388278(this);
marker_despawn(this->marker); marker_despawn(this->marker);
} }
break; break;
case 0x235://L80388F34 case ACTOR_235_FP_ENTANCE_DOOR://L80388F34
{ {
sp28 = actorArray_findActorFromActorId(0x236); sp28 = actorArray_findActorFromActorId(0x236);
this->unk1C[0] += 3.6; this->unk1C[0] += 3.6;
@@ -1276,7 +1276,7 @@ void func_80388524(Actor *this) {
lair_func_80388278(this); lair_func_80388278(this);
marker_despawn(this->marker); marker_despawn(this->marker);
marker_despawn(sp28->marker); marker_despawn(sp28->marker);
func_80320004(0x35, TRUE); fileProgressFlag_set(FILEPROG_35_FP_OPEN, TRUE);
return; return;
} }
func_80388450(this, sp28); func_80388450(this, sp28);
@@ -1313,7 +1313,7 @@ void func_80388FC8(Actor *this)
if (!this->unk16C_4) if (!this->unk16C_4)
{ {
if (func_8031FF1C(this->modelCacheIndex == 0x215 ? BKPROG_1F_CC_LOBBY_PIPE_1_RAISED : BKPROG_20_CC_LOBBY_PIPE_2_RAISED)) if (fileProgressFlag_get(this->modelCacheIndex == 0x215 ? FILEPROG_1F_CC_LOBBY_PIPE_1_RAISED : FILEPROG_20_CC_LOBBY_PIPE_2_RAISED))
{ {
this->position_y = this->unk1C[1]; this->position_y = this->unk1C[1];
return; return;
@@ -1327,7 +1327,7 @@ void func_80388FC8(Actor *this)
if (1); // oof if (1); // oof
} }
func_80320004(this->modelCacheIndex == 0x215 ? BKPROG_1F_CC_LOBBY_PIPE_1_RAISED : BKPROG_20_CC_LOBBY_PIPE_2_RAISED, TRUE); fileProgressFlag_set(this->modelCacheIndex == 0x215 ? FILEPROG_1F_CC_LOBBY_PIPE_1_RAISED : FILEPROG_20_CC_LOBBY_PIPE_2_RAISED, TRUE);
this->unk16C_4 = 1; this->unk16C_4 = 1;
this->unk38_31 = 12; this->unk38_31 = 12;
@@ -1390,7 +1390,7 @@ void lair_func_80389204(Actor *this)
if (!this->unk16C_4) if (!this->unk16C_4)
{ {
if (func_8031FF1C(BKPROG_21_CC_LOBBY_PIPE_3_RAISED)) if (fileProgressFlag_get(FILEPROG_21_CC_LOBBY_PIPE_3_RAISED))
{ {
this->position_y = this->unk1C[1]; this->position_y = this->unk1C[1];
return; return;
@@ -1399,7 +1399,7 @@ void lair_func_80389204(Actor *this)
if (mapSpecificFlags_get(2)) if (mapSpecificFlags_get(2))
{ {
func_802BAFE4(0x2C); func_802BAFE4(0x2C);
func_80320004(BKPROG_21_CC_LOBBY_PIPE_3_RAISED, TRUE); fileProgressFlag_set(FILEPROG_21_CC_LOBBY_PIPE_3_RAISED, TRUE);
this->unk16C_4 = 1; this->unk16C_4 = 1;
this->unk38_31 = 12; this->unk38_31 = 12;
@@ -1476,7 +1476,7 @@ void lair_func_803894B0(Actor *this)
this->unk16C_4 = TRUE; this->unk16C_4 = TRUE;
this->unk1C[0] = 0; this->unk1C[0] = 0;
if (func_8031FF1C(BKPROG_A1_STATUE_HAT_OPEN)) if (fileProgressFlag_get(FILEPROG_A1_STATUE_HAT_OPEN))
{ {
marker_despawn(this->marker); marker_despawn(this->marker);
return; return;
@@ -1490,7 +1490,7 @@ void lair_func_803894B0(Actor *this)
if (--this->unk1C[0] == 0) if (--this->unk1C[0] == 0)
{ {
func_80320004(0xA1, TRUE); fileProgressFlag_set(FILEPROG_A1_STATUE_HAT_OPEN, TRUE);
timed_playSfx(0.5f, SFX_3F9_UNKNOWN, 1.f, 32000); timed_playSfx(0.5f, SFX_3F9_UNKNOWN, 1.f, 32000);
FUNC_8030E624(SFX_114_BRICKWALL_BREAKING, 0.8f, 32000); FUNC_8030E624(SFX_114_BRICKWALL_BREAKING, 0.8f, 32000);
func_802EE2E8(this, 0xB, 0x19, 0x000, 0.6f, 1.8f, 3.f); func_802EE2E8(this, 0xB, 0x19, 0x000, 0.6f, 1.8f, 3.f);
@@ -1519,22 +1519,22 @@ void func_80389714(Actor *this)
void func_80389734(Actor *this) void func_80389734(Actor *this)
{ {
func_802D4AC0(this, 0x800022, 0x23); func_802D4AC0(this, 0x800000 | FILEPROG_22_WATER_SWITCH_1_PRESSED, FILEPROG_23_LAIR_WATER_LEVEL_1);
} }
void func_8038975C(Actor *this) void func_8038975C(Actor *this)
{ {
func_802D4AC0(this, 0x800024, 0x25); func_802D4AC0(this, 0x800000 | FILEPROG_24_WATER_SWITCH_2_PRESSED, FILEPROG_25_LAIR_WATER_LEVEL_2);
} }
void func_80389784(Actor *this) void func_80389784(Actor *this)
{ {
func_802D4AC0(this, 0x800026, 0x27); func_802D4AC0(this, 0x800000 | FILEPROG_26_WATER_SWITCH_3_PRESSED, FILEPROG_27_LAIR_WATER_LEVEL_3);
} }
void func_803897AC(Actor *this) void func_803897AC(Actor *this)
{ {
func_802D4AC0(this, 0x800053, 0x54); func_802D4AC0(this, 0x800000 | FILEPROG_53_CCW_PUZZLE_PODIUM_SWITCH_PRESSED, FILEPROG_54_CCW_PUZZLE_PODIUM_ACTIVE);
} }
void func_803897D4(s32 arg0) void func_803897D4(s32 arg0)
@@ -1562,7 +1562,7 @@ void func_8038982C(Actor *this)
this->initialized = TRUE; this->initialized = TRUE;
if (!func_8031FF1C(BKPROG_9E_CRYPT_COFFIN_LID_OPEN)) if (!fileProgressFlag_get(FILEPROG_9E_CRYPT_COFFIN_LID_OPEN))
__spawnQueue_add_1((GenMethod_1)func_803897D4, reinterpret_cast(s32, this->marker)); __spawnQueue_add_1((GenMethod_1)func_803897D4, reinterpret_cast(s32, this->marker));
} }
} }
@@ -1579,7 +1579,7 @@ void func_80389898(Actor *this)
{ {
func_80328AC8(this, 0x13); func_80328AC8(this, 0x13);
actor_playAnimationOnce(this); actor_playAnimationOnce(this);
func_80320004(BKPROG_9E_CRYPT_COFFIN_LID_OPEN, TRUE); fileProgressFlag_set(FILEPROG_9E_CRYPT_COFFIN_LID_OPEN, TRUE);
} }
break; break;
@@ -1605,7 +1605,7 @@ void func_80389934(Actor *this)
this->unk16C_4 = TRUE; this->unk16C_4 = TRUE;
if (func_8031FF1C(BKPROG_A2_GV_LOBBY_COFFIN_OPEN)) if (fileProgressFlag_get(FILEPROG_A2_GV_LOBBY_COFFIN_OPEN))
func_80328B8C(this, 0x18, 0.999f, 1); func_80328B8C(this, 0x18, 0.999f, 1);
} }
@@ -1618,7 +1618,7 @@ void func_80389934(Actor *this)
this->unk1C[0] = 25; this->unk1C[0] = 25;
func_80328AC8(this, 0x16); func_80328AC8(this, 0x16);
func_80320004(BKPROG_A2_GV_LOBBY_COFFIN_OPEN, TRUE); fileProgressFlag_set(FILEPROG_A2_GV_LOBBY_COFFIN_OPEN, TRUE);
} }
break; break;
@@ -1731,7 +1731,7 @@ void func_80389D08(Actor *this)
this->unk16C_4 = TRUE; this->unk16C_4 = TRUE;
this->unk60 = 0; this->unk60 = 0;
if (func_8031FF1C(0xA5)) if (fileProgressFlag_get(0xA5))
{ {
marker_despawn(this->marker); marker_despawn(this->marker);
return; return;
@@ -1799,47 +1799,47 @@ Actor *func_80389E10(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx) {
return this; return this;
} }
void func_80389FA8(Actor *this, enum bkprog_e flag) void func_80389FA8(Actor *this, enum file_progress_e flag)
{ {
if (!this->initialized) if (!this->initialized)
{ {
func_802D3D54(this); func_802D3D54(this);
if (func_8031FF1C(flag)) if (fileProgressFlag_get(flag))
marker_despawn(this->marker); marker_despawn(this->marker);
} }
} }
void func_80389FF4(Actor *this) void func_80389FF4(Actor *this)
{ {
func_80389FA8(this, BKPROG_C2_GRATE_TO_RBB_PUZZLE_OPEN); func_80389FA8(this, FILEPROG_C2_GRATE_TO_RBB_PUZZLE_OPEN);
} }
void func_8038A014(Actor *this) void func_8038A014(Actor *this)
{ {
func_80389FA8(this, BKPROG_C3_ICE_BALL_TO_CHEATO_BROKEN); func_80389FA8(this, FILEPROG_C3_ICE_BALL_TO_CHEATO_BROKEN);
} }
void func_8038A034(Actor *this) void func_8038A034(Actor *this)
{ {
this->depth_mode = 2; this->depth_mode = 2;
func_80389FA8(this, BKPROG_C4_STATUE_EYE_BROKEN); func_80389FA8(this, FILEPROG_C4_STATUE_EYE_BROKEN);
} }
void func_8038A064(Actor *this) void func_8038A064(Actor *this)
{ {
func_80389FA8(this, BKPROG_C5_RAREWARE_BOX_BROKEN); func_80389FA8(this, FILEPROG_C5_RAREWARE_BOX_BROKEN);
} }
void lair_func_8038A084(Actor *this) void lair_func_8038A084(Actor *this)
{ {
func_80389FA8(this, BKPROG_CD_GRATE_TO_WATER_SWITCH_3_OPEN); func_80389FA8(this, FILEPROG_CD_GRATE_TO_WATER_SWITCH_3_OPEN);
} }
void func_8038A0A4(Actor *this) void func_8038A0A4(Actor *this)
{ {
func_80389FA8(this, BKPROG_CE_GRATE_TO_MMM_PUZZLE_OPEN); func_80389FA8(this, FILEPROG_CE_GRATE_TO_MMM_PUZZLE_OPEN);
} }
void lair_func_8038A0C4(void) void lair_func_8038A0C4(void)
@@ -1888,7 +1888,7 @@ void lair_func_8038A0C4(void)
spawnableActorList_add(&D_80393378, actor_new, 0x8640); spawnableActorList_add(&D_80393378, actor_new, 0x8640);
spawnableActorList_add(&D_803947B0, actor_new, 0xA1480); spawnableActorList_add(&D_803947B0, actor_new, 0xA1480);
spawnableActorList_add(&D_803947D4, actor_new, 0xA1480); spawnableActorList_add(&D_803947D4, actor_new, 0xA1480);
spawnableActorList_add(&D_80393730, actor_new, 0x140); spawnableActorList_add(&chBrentilda, actor_new, 0x140);
spawnableActorList_add(&D_80394A80, actor_new, 0); spawnableActorList_add(&D_80394A80, actor_new, 0);
spawnableActorList_add(&D_80394AB0, actor_new, 0x44); spawnableActorList_add(&D_80394AB0, actor_new, 0x44);
spawnableActorList_add(&D_80392EB0, actor_new, 0x8608); spawnableActorList_add(&D_80392EB0, actor_new, 0x8608);

View File

@@ -4,7 +4,7 @@
extern void func_8028F4B8(f32[3], f32, f32); extern void func_8028F4B8(f32[3], f32, f32);
extern void func_8028F66C(s32); extern void func_8028F66C(s32);
extern void func_802D6310(f32, enum map_e, s32, s32, enum bkprog_e); extern void func_802D6310(f32, enum map_e, s32, s32, enum file_progress_e);
extern void func_802EE354(Actor *, s32, s32, s32, f32, f32, f32, s32[4], s32, s32); extern void func_802EE354(Actor *, s32, s32, s32, f32, f32, f32, s32[4], s32, s32);
extern void func_80324CFC(f32, enum comusic_e, s32); extern void func_80324CFC(f32, enum comusic_e, s32);
extern void func_8034DF30(s32, f32[4], f32[4], f32); extern void func_8034DF30(s32, f32[4], f32[4], f32);
@@ -19,8 +19,8 @@ typedef struct {
s16 unk6; s16 unk6;
}Struct_lair_42A0_0; }Struct_lair_42A0_0;
void func_8038AE2C(Actor *this); void chWarpCauldron_update(Actor *this);
Actor *func_8038B898(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx); Actor *chWarpCauldron_draw(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx);
/* .data */ /* .data */
ActorAnimationInfo D_80393520[] = { ActorAnimationInfo D_80393520[] = {
@@ -33,8 +33,8 @@ ActorAnimationInfo D_80393520[] = {
{0x28F, 5.167f}, {0x28F, 5.167f},
{0x290, 6.26f} {0x290, 6.26f}
}; };
ActorInfo D_80393560 = { 0x231, 0x23B, 0x4DF, 1, D_80393520, func_8038AE2C, func_80326224, func_8038B898, 0, 0, 3.0f, 0}; ActorInfo D_80393560 = { MARKER_231_DINGPOT, ACTOR_23B_DINGPOT, ASSET_4DF_MODEL_WARP_CAULDRON, 1, D_80393520, chWarpCauldron_update, func_80326224, chWarpCauldron_draw, 0, 0, 3.0f, 0};
ActorInfo D_80393584 = { 0x244, 0x2DB, 0x450, 1, D_80393520, func_8038AE2C, func_80326224, func_8038B898, 0, 0, 3.0f, 0}; ActorInfo D_80393584 = { MARKER_244_WARP_CAULDRON, ACTOR_2DB_WARP_CAULDRON, ASSET_450_MODEL_DINGPOT, 1, D_80393520, chWarpCauldron_update, func_80326224, chWarpCauldron_draw, 0, 0, 3.0f, 0};
f32 D_803935A8[][2][3] = { f32 D_803935A8[][2][3] = {
{{1.0f, 1.0f, 1.0f}, {1.0f, 0.0f, 1.0f}}, {{1.0f, 1.0f, 1.0f}, {1.0f, 0.0f, 1.0f}},
{{1.0f, 1.0f, 1.0f}, {0.0f, 1.0f, 1.0f}}, {{1.0f, 1.0f, 1.0f}, {0.0f, 1.0f, 1.0f}},
@@ -71,11 +71,11 @@ bool func_8038A690(Actor *this) {
} }
} }
enum bkprog_e func_8038A6DC(Actor *this){ enum file_progress_e chWarpCauldron_getFileProgressFlagIndex(Actor *this){
return this->unkF4_8 + 0x48; return this->unkF4_8 -1 + 0x49;
} }
enum bkprog_e func_8038A6EC(Actor *this){ enum file_progress_e chWarpCauldron_getPairedFileProgressFlagIndex(Actor *this){
return ((this->unkF4_8 - 1) ^ 1) + 0x49; return ((this->unkF4_8 - 1) ^ 1) + 0x49;
} }
@@ -129,8 +129,8 @@ void func_8038A96C(Actor *this, s32 arg1) {
f32 sp38[4]; f32 sp38[4];
if( ( (arg1 != 3) || ( (this->unk1C[1] == 0.0f) && (this->marker->unk14_21 == 1))) if( ( (arg1 != 3) || ( (this->unk1C[1] == 0.0f) && (this->marker->unk14_21 == 1)))
&& (this->modelCacheIndex == 0x23B) && (this->modelCacheIndex == ACTOR_23B_DINGPOT)
&& ((arg1 != 0) || func_8031FF1C(func_8038A6DC(this))) && ((arg1 != 0) || fileProgressFlag_get(chWarpCauldron_getFileProgressFlagIndex(this)))
){ ){
sp5C = func_8034C2C4(this->marker, 0x1C3); sp5C = func_8034C2C4(this->marker, 0x1C3);
if(sp5C != 0){ if(sp5C != 0){
@@ -145,7 +145,7 @@ void func_8038A96C(Actor *this, s32 arg1) {
func_8034DF30(sp5C, sp38, sp38, 0.3f); func_8034DF30(sp5C, sp38, sp38, 0.3f);
} }
else{ else{
func_8034DF30(sp5C, sp48, sp38, func_8031FF1C(func_8038A6DC(this)) ? 0.3 : 3.0); func_8034DF30(sp5C, sp48, sp38, fileProgressFlag_get(chWarpCauldron_getFileProgressFlagIndex(this)) ? 0.3 : 3.0);
} }
} }
} }
@@ -178,12 +178,12 @@ void func_8038AC7C(Actor *this) {
if( if(
(func_803114C4() != 0xFAD) (func_803114C4() != 0xFAD)
&& func_80329530(this, 1200) && func_80329530(this, 1200)
&& !func_8031FF1C(0xFC) && !fileProgressFlag_get(FILEPROG_FC_DEFEAT_GRUNTY)
) { ) {
this->unk60 += time_getDelta(); this->unk60 += time_getDelta();
if (35.0 < this->unk60) { if (35.0 < this->unk60) {
sp2C = (func_8031FF1C(0xCF)) ? 0xFB7 : 0xFAE; sp2C = (fileProgressFlag_get(FILEPROG_CF_HAS_ENTERED_FINAL_FIGHT)) ? 0xFB7 : 0xFAE;
sp28 = (func_8031FF1C(0xCF)) ? 0xFBC : 0xFB7; sp28 = (fileProgressFlag_get(FILEPROG_CF_HAS_ENTERED_FINAL_FIGHT)) ? 0xFBC : 0xFB7;
if (func_80311480(sp2C + this->unk38_31, 0, NULL, NULL, NULL, NULL)) { if (func_80311480(sp2C + this->unk38_31, 0, NULL, NULL, NULL, NULL)) {
this->unk38_31++; this->unk38_31++;
this->unk60 = 0.0f; this->unk60 = 0.0f;
@@ -196,8 +196,8 @@ void func_8038AC7C(Actor *this) {
} }
void func_8038ADC0(ActorMarker *marker, enum asset_e text_id, s32 arg2){ void __chWarpCauldron_dingpotDialogCallback(ActorMarker *marker, enum asset_e text_id, s32 arg2){
func_80320004(0xF3, TRUE); fileProgressFlag_set(FILEPROG_F3_MET_DINGPOT, TRUE);
} }
bool lair_func_8038ADF0(s32 arg0, s32 arg1) { bool lair_func_8038ADF0(s32 arg0, s32 arg1) {
@@ -209,7 +209,7 @@ bool lair_func_8038ADF0(s32 arg0, s32 arg1) {
return phi_v1 < 70; return phi_v1 < 70;
} }
void func_8038AE2C(Actor *this) { void chWarpCauldron_update(Actor *this) {
f32 sp54[3]; f32 sp54[3];
s32 sp50; s32 sp50;
s32 sp4C; s32 sp4C;
@@ -227,10 +227,10 @@ void func_8038AE2C(Actor *this) {
this->marker->propPtr->unk8_3 = TRUE; this->marker->propPtr->unk8_3 = TRUE;
this->unk1C[1] = 0.0f; this->unk1C[1] = 0.0f;
this->velocity[0] = this->yaw; this->velocity[0] = this->yaw;
if (this->modelCacheIndex == 0x2DB) { if (this->modelCacheIndex == ACTOR_2DB_WARP_CAULDRON) {
if (func_8031FF1C(0xF3)) { if (fileProgressFlag_get(FILEPROG_F3_MET_DINGPOT)) {
sp4C = (func_8031FF1C(0xCF)) ? 0xFB7 : 0xFAE; sp4C = (fileProgressFlag_get(FILEPROG_CF_HAS_ENTERED_FINAL_FIGHT)) ? 0xFB7 : 0xFAE;
phi_v0 = (func_8031FF1C(0xCF)) ? 0xFBC : 0xFB7; phi_v0 = (fileProgressFlag_get(FILEPROG_CF_HAS_ENTERED_FINAL_FIGHT)) ? 0xFBC : 0xFB7;
this->unk60 = 35.0f; this->unk60 = 35.0f;
this->unk38_31 = randi2(0, phi_v0 - sp4C); this->unk38_31 = randi2(0, phi_v0 - sp4C);
} }
@@ -238,7 +238,7 @@ void func_8038AE2C(Actor *this) {
func_80328B8C(this, 6, 0.99f, 1); func_80328B8C(this, 6, 0.99f, 1);
func_802D09B8(this, 2); func_802D09B8(this, 2);
} }
if (func_8031FF1C(func_8038A6DC(this))) { if (fileProgressFlag_get(chWarpCauldron_getFileProgressFlagIndex(this))) {
func_8038A704(this); func_8038A704(this);
func_802D09B8(this, 2); func_802D09B8(this, 2);
func_8038A96C(this, 2); func_8038A96C(this, 2);
@@ -254,10 +254,10 @@ void func_8038AE2C(Actor *this) {
this->unk10_12 = 1; this->unk10_12 = 1;
func_8038AB90(this, 5, 1, 0, 0.0f); func_8038AB90(this, 5, 1, 0, 0.0f);
} }
if (!func_8031FF1C(0xF5) && func_8031FF1C(func_8038A6EC(this))) { if (!fileProgressFlag_get(FILEPROG_F5_COMPLETED_A_WARP_CAULDRON_SET) && fileProgressFlag_get(chWarpCauldron_getPairedFileProgressFlagIndex(this))) {
if (func_802D677C(-1) != map_get()) { if (func_802D677C(-1) != map_get()) {
func_80311480(0xF7A, 4, NULL, NULL, NULL, NULL); func_80311480(0xF7A, 4, NULL, NULL, NULL, NULL);
func_80320004(0xF5, 1); fileProgressFlag_set(FILEPROG_F5_COMPLETED_A_WARP_CAULDRON_SET, 1);
} }
} }
} }
@@ -275,12 +275,12 @@ void func_8038AE2C(Actor *this) {
func_8038A96C(this, 1); func_8038A96C(this, 1);
func_802BAFE4(D_80393620[this->unkF4_8 - 1].unk3); func_802BAFE4(D_80393620[this->unkF4_8 - 1].unk3);
func_802D09B8(this, 2); func_802D09B8(this, 2);
phi_a0 = (func_8031FF1C(func_8038A6EC(this)) != 0) ? SFX_107_CAULDRON_ACTIVATION_1 : SFX_108_CAULDRON_ACTIVATION_2; phi_a0 = (fileProgressFlag_get(chWarpCauldron_getPairedFileProgressFlagIndex(this)) != 0) ? SFX_107_CAULDRON_ACTIVATION_1 : SFX_108_CAULDRON_ACTIVATION_2;
func_8030E510(phi_a0, 0x7D00); func_8030E510(phi_a0, 32000);
if (!func_8031FF1C(0xF5) && !func_8031FF1C(func_8038A6EC(this))) { if (!fileProgressFlag_get(FILEPROG_F5_COMPLETED_A_WARP_CAULDRON_SET) && !fileProgressFlag_get(chWarpCauldron_getPairedFileProgressFlagIndex(this))) {
func_80311480(0xF79, 4, NULL, NULL, NULL, NULL); func_80311480(0xF79, 4, NULL, NULL, NULL, NULL);
} }
if (func_8031FF1C(func_8038A6EC(this))){ if (fileProgressFlag_get(chWarpCauldron_getPairedFileProgressFlagIndex(this))){
switch(this->unkF4_8){ switch(this->unkF4_8){
case 2://L8038B204 case 2://L8038B204
func_802D6310(2.0f, MAP_6A_GL_TTC_AND_CC_PUZZLE, 0x62, 0x22, 0); func_802D6310(2.0f, MAP_6A_GL_TTC_AND_CC_PUZZLE, 0x62, 0x22, 0);
@@ -326,7 +326,7 @@ void func_8038AE2C(Actor *this) {
this->unk38_0 = (sp3C & 1) ? TRUE : FALSE; this->unk38_0 = (sp3C & 1) ? TRUE : FALSE;
if (actor_animationIsAt(this, 0.95f)) { if (actor_animationIsAt(this, 0.95f)) {
func_8038A704(this); func_8038A704(this);
func_80320004(func_8038A6DC(this), 1); fileProgressFlag_set(chWarpCauldron_getFileProgressFlagIndex(this), 1);
func_8028F918(0); func_8028F918(0);
this->unk1C[2] = 4.0f; this->unk1C[2] = 4.0f;
} }
@@ -338,7 +338,7 @@ void func_8038AE2C(Actor *this) {
this->unk1C[2] = this->unk1C[2] - 1.0f; this->unk1C[2] = this->unk1C[2] - 1.0f;
} else { } else {
func_8038AB90(this, 5, 1, 0, 0.0f); func_8038AB90(this, 5, 1, 0, 0.0f);
func_8038AB90(this, 4, 2, 0xA6, 2.6f); func_8038AB90(this, 4, 2, SFX_A6_MAGICAL_FINISH, 2.6f);
} }
func_8038A96C(this, 3); func_8038A96C(this, 3);
break; break;
@@ -384,14 +384,14 @@ void func_8038AE2C(Actor *this) {
break; break;
case 6: //L8038B64C case 6: //L8038B64C
if (func_8038A690(this) && !func_8031FF1C(0xF3)) { if (func_8038A690(this) && !fileProgressFlag_get(FILEPROG_F3_MET_DINGPOT)) {
func_80311480(0xFAD, 0xA, this->position, NULL, func_8038ADC0, NULL); func_80311480(0xFAD, 0xA, this->position, NULL, __chWarpCauldron_dingpotDialogCallback, NULL);
} }
this->unk38_0 = TRUE; this->unk38_0 = TRUE;
sp3C = 0; sp3C = 0;
if (func_8031FF1C(0xFC)){ if (fileProgressFlag_get(FILEPROG_FC_DEFEAT_GRUNTY)){
if(jiggyscore_total() == 0x64){ if(jiggyscore_total() == 100){
sp3C = 1; sp3C = 1;
} }
} }
@@ -429,12 +429,12 @@ void func_8038AE2C(Actor *this) {
this->unk1C[1] = (f32)this->marker->unk14_21; this->unk1C[1] = (f32)this->marker->unk14_21;
} }
Actor *func_8038B898(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx) { Actor *chWarpCauldron_draw(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx) {
Actor *this; Actor *this;
s32 sp3C[4]; s32 sp3C[4];
this = marker_getActor(marker); this = marker_getActor(marker);
if(this->modelCacheIndex == 0x23B) { if(this->modelCacheIndex == ACTOR_23B_DINGPOT) {
func_8033A45C(3, this->unk38_0 ? TRUE : FALSE); func_8033A45C(3, this->unk38_0 ? TRUE : FALSE);
func_8033A45C(4, this->unk38_0 ? FALSE : TRUE); func_8033A45C(4, this->unk38_0 ? FALSE : TRUE);
} }

View File

@@ -678,7 +678,7 @@ void lair_func_8038CF18(void)
} }
else else
{ {
if (func_8031FF1C(BKPROG_A6_FURNACE_FUN_COMPLETE)) if (fileProgressFlag_get(FILEPROG_A6_FURNACE_FUN_COMPLETE))
func_8038D670(FFA_8_FURNACE_FUN_COMPLETE); func_8038D670(FFA_8_FURNACE_FUN_COMPLETE);
else else
func_8038D670(FFA_1_UNK); func_8038D670(FFA_1_UNK);
@@ -1012,11 +1012,11 @@ void func_8038D670(enum FF_Action next_state) {
break; break;
case FFA_8_FURNACE_FUN_COMPLETE: //L8038DC00 case FFA_8_FURNACE_FUN_COMPLETE: //L8038DC00
if (func_8031FF1C(0xA6) == 0) { if (fileProgressFlag_get(FILEPROG_A6_FURNACE_FUN_COMPLETE) == 0) {
func_8025A55C(0, 0x1388, 0xB); func_8025A55C(0, 0x1388, 0xB);
func_8025AB00(); func_8025AB00();
func_8025A70C(JINGLE_DOOR_OF_GRUNTY_OPENED); func_8025A70C(JINGLE_DOOR_OF_GRUNTY_OPENED);
func_80320004(0xA6, TRUE); fileProgressFlag_set(FILEPROG_A6_FURNACE_FUN_COMPLETE, TRUE);
func_803204E4(0, FALSE); func_803204E4(0, FALSE);
func_803204E4(0xA6, TRUE); func_803204E4(0xA6, TRUE);
func_803204E4(0xA7, TRUE); func_803204E4(0xA7, TRUE);
@@ -1238,9 +1238,9 @@ void lair_func_8038E0B0(void) {
func_802FACA4(0x14); func_802FACA4(0x14);
func_802FACA4(0x16); func_802FACA4(0x16);
if (sp38 != FFTT_0_NIL) { if (sp38 != FFTT_0_NIL) {
sp28 = sp38 + 0x54; sp28 = sp38 - 1 + FILEPROG_55_FF_BK_SQUARE_INSTRUCTIONS;
if (!func_8031FF1C(sp28) && func_80311480(sp38 + 0x101E, 0, NULL, NULL, NULL, NULL)) { if (!fileProgressFlag_get(sp28) && func_80311480(sp38 + 0x101E, 0, NULL, NULL, NULL, NULL)) {
func_80320004(sp28, TRUE); fileProgressFlag_set(sp28, TRUE);
} }
if ((sp38 == FFTT_6_SKULL) && (item_getCount(ITEM_16_LIFE) == 1)) { if ((sp38 == FFTT_6_SKULL) && (item_getCount(ITEM_16_LIFE) == 1)) {
func_80356540(0xAB); func_80356540(0xAB);

View File

@@ -16,9 +16,9 @@ typedef struct {
}ActorLocal_lair_86F0; }ActorLocal_lair_86F0;
typedef struct { typedef struct {
u8 unk0; u8 cost;
u8 unk1; u8 size_bits;
u16 unk2; u16 progress_flag;
}Struct_lair_86F0_0; }Struct_lair_86F0_0;
void func_8038F350(Actor *this, s32 next_state); void func_8038F350(Actor *this, s32 next_state);
@@ -28,17 +28,17 @@ void lair_func_8038F924(Actor *this);
ActorInfo D_803947B0 = { 0x1EB, 0x3B7, 0x48B, 0x1, NULL, lair_func_8038F924, func_80326224, func_80325888, 0, 0, 0.0f, 0}; ActorInfo D_803947B0 = { 0x1EB, 0x3B7, 0x48B, 0x1, NULL, lair_func_8038F924, func_80326224, func_80325888, 0, 0, 0.0f, 0};
ActorInfo D_803947D4 = { 0x1EB, 0x3BC, 0x538, 0x1, NULL, lair_func_8038F924, func_80326224, func_80325888, 0, 0, 0.0f, 0}; ActorInfo D_803947D4 = { 0x1EB, 0x3BC, 0x538, 0x1, NULL, lair_func_8038F924, func_80326224, func_80325888, 0, 0, 0.0f, 0};
Struct_lair_86F0_0 D_803947F8[0xb] ={ Struct_lair_86F0_0 D_803947F8[0xb] ={
{0x01, 0x1, 0x5D}, { 1, 0x1, FILEPROG_5D_MM_PUZZLE_PIECES_PLACED},
{0x02, 0x2, 0x5E}, { 2, 0x2, FILEPROG_5E_TCC_PUZZLE_PIECES_PLACED},
{0x05, 0x3, 0x60}, { 5, 0x3, FILEPROG_60_CC_PUZZLE_PIECES_PLACED},
{0x07, 0x3, 0x63}, { 7, 0x3, FILEPROG_63_BGS_PUZZLE_PIECES_PLACED},
{0x08, 0x4, 0x66}, { 8, 0x4, FILEPROG_66_FP_PUZZLE_PIECES_PLACED},
{0x09, 0x4, 0x6A}, { 9, 0x4, FILEPROG_6A_GV_PUZZLE_PIECES_PLACED},
{0x0A, 0x4, 0x6E}, {10, 0x4, FILEPROG_6E_MMM_PUZZLE_PIECES_PLACED},
{0x0C, 0x4, 0x72}, {12, 0x4, FILEPROG_72_RBB_PUZZLE_PIECES_PLACED},
{0x0F, 0x4, 0x76}, {15, 0x4, FILEPROG_76_CCW_PUZZLE_PIECES_PLACED},
{0x19, 0x5, 0x7A}, {25, 0x5, FILEPROG_7A_DOG_PUZZLE_PIECES_PLACED},
{0x04, 0x3, 0x7F} { 4, 0x3, FILEPROG_7F_DOUBLE_HEALTH_PUZZLE_PIECES_PLACED}
}; };
s32 D_80394824[3] = {0xff, 0xff, 0}; s32 D_80394824[3] = {0xff, 0xff, 0};
struct31s D_80394830 = { struct31s D_80394830 = {
@@ -51,11 +51,11 @@ struct31s D_80394830 = {
/* .code */ /* .code */
bool func_8038EAE0(s32 arg0) { bool func_8038EAE0(s32 arg0) {
return func_8031FF44(D_803947F8[arg0 -1].unk2, D_803947F8[arg0 -1].unk1) == D_803947F8[arg0 -1].unk0; return fileProgressFlag_getN(D_803947F8[arg0 -1].progress_flag, D_803947F8[arg0 -1].size_bits) == D_803947F8[arg0 -1].cost;
} }
s32 func_8038EB24(Actor *this){ s32 func_8038EB24(Actor *this){
return (this->unkF4_8 != 0 && this->unkF4_8 < 0xC) ? D_803947F8[this->unkF4_8 - 1].unk0 : 0; return (this->unkF4_8 != 0 && this->unkF4_8 < 0xC) ? D_803947F8[this->unkF4_8 - 1].cost : 0;
} }
bool func_8038EB58(Actor *this){ bool func_8038EB58(Actor *this){
@@ -72,7 +72,7 @@ s32 func_8038EB84(Actor *this){
void func_8038EB94(void){ void func_8038EB94(void){
func_802FAFD4(ITEM_14_HEALTH, 0x417); func_802FAFD4(ITEM_14_HEALTH, 0x417);
func_802FAFC0(ITEM_14_HEALTH, COMUSIC_2B_DING_B); func_802FAFC0(ITEM_14_HEALTH, COMUSIC_2B_DING_B);
func_80320004(BKPROG_B9_DOUBLE_HEALTH, TRUE); fileProgressFlag_set(FILEPROG_B9_DOUBLE_HEALTH, TRUE);
func_80347958(); func_80347958();
func_803463D4(ITEM_14_HEALTH, 0); func_803463D4(ITEM_14_HEALTH, 0);
gcpausemenu_80314AC8(1); gcpausemenu_80314AC8(1);
@@ -83,7 +83,7 @@ void func_8038EBEC(ActorMarker *marker) {
u32 temp_t6; u32 temp_t6;
this = marker_getActor(reinterpret_cast(ActorMarker *, marker)); this = marker_getActor(reinterpret_cast(ActorMarker *, marker));
if (this->unkF4_8 < 0xAU) { if (this->unkF4_8 < 0xA) {
levelSpecificFlags_set(func_8038EB84(this), TRUE); levelSpecificFlags_set(func_8038EB84(this), TRUE);
return; return;
} }
@@ -189,7 +189,7 @@ void func_8038EF58(ActorMarker *marker) {
func_8028E6EC(2); func_8028E6EC(2);
func_8028F918(0); func_8028F918(0);
func_8028F94C(4, sp24); func_8028F94C(4, sp24);
func_8038F350(this, func_8031FF1C(0x17) ? 4 : 3); func_8038F350(this, fileProgressFlag_get(FILEPROG_17_HAS_HAD_ENOUGH_JIGSAW_PIECES) ? 4 : 3);
} }
void func_8038EFD8(Actor *this) { void func_8038EFD8(Actor *this) {
@@ -260,18 +260,18 @@ void func_8038F250(Actor *this){
if( (this->unkF4_8 >= 2) if( (this->unkF4_8 >= 2)
&& (local->unk4 > 0) && (local->unk4 > 0)
&& !func_8038EB58(this) && !func_8038EB58(this)
&& !func_8031FF1C(0xDF) && !fileProgressFlag_get(FILEPROG_DF_CAN_REMOVE_ALL_PUZZLE_PIECES)
) { ) {
if (func_80311480(0xF7C, 2, NULL, NULL, NULL, NULL)) { if (func_80311480(0xF7C, 2, NULL, NULL, NULL, NULL)) {
func_80320004(0xDF, TRUE); fileProgressFlag_set(FILEPROG_DF_CAN_REMOVE_ALL_PUZZLE_PIECES, TRUE);
} }
} else if ((this->unkF4_8 >= 3) } else if ((this->unkF4_8 >= 3)
&& (local->unk4 >= 2) && (local->unk4 >= 2)
&& !func_8038EB58(this) && !func_8038EB58(this)
&& !func_8031FF1C(0xE0) && !fileProgressFlag_get(FILEPROG_E0_CAN_PLACE_ALL_PUZZLE_PIECES)
){ ){
if(func_80311480(0xF7D, 2, NULL, NULL, NULL, NULL)) { if(func_80311480(0xF7D, 2, NULL, NULL, NULL, NULL)) {
func_80320004(0xE0, TRUE); fileProgressFlag_set(FILEPROG_E0_CAN_PLACE_ALL_PUZZLE_PIECES, TRUE);
} }
} }
} }
@@ -300,13 +300,13 @@ void func_8038F350(Actor *this, s32 next_state){
func_803115C4(0xF80); func_803115C4(0xF80);
func_803115C4(0xF7F); func_803115C4(0xF7F);
if (item_getCount(ITEM_26_JIGGY_TOTAL) > 0) { if (item_getCount(ITEM_26_JIGGY_TOTAL) > 0) {
func_80311480(func_8031FF1C(0x16) ? 0xF5A : 0xF59, 6, sp50, this->marker, func_8038F078, NULL); func_80311480(fileProgressFlag_get(FILEPROG_16_STOOD_ON_JIGSAW_PODIUM) ? 0xF5A : 0xF59, 6, sp50, this->marker, func_8038F078, NULL);
func_80320004(0x17, 1); fileProgressFlag_set(FILEPROG_17_HAS_HAD_ENOUGH_JIGSAW_PIECES, 1);
} else { } else {
func_80311480(0xF58, 6, sp50, this->marker, func_8038F078, NULL); func_80311480(0xF58, 6, sp50, this->marker, func_8038F078, NULL);
} }
func_80320004(0x16, 1); fileProgressFlag_set(FILEPROG_16_STOOD_ON_JIGSAW_PODIUM, 1);
func_80320004(0xA7, 1); fileProgressFlag_set(FILEPROG_A7_NEAR_PUZZLE_PODIUM_TEXT, 1);
break; break;
case 8: //L8038F4AC case 8: //L8038F4AC
@@ -317,7 +317,7 @@ void func_8038F350(Actor *this, s32 next_state){
func_8038F1EC(this, temp_s1, 0); func_8038F1EC(this, temp_s1, 0);
local->unk4--; local->unk4--;
local->unk0 &= ~(1 << temp_s1); local->unk0 &= ~(1 << temp_s1);
func_80320044(D_803947F8[this->unkF4_8 - 1].unk2, local->unk4, D_803947F8[this->unkF4_8 - 1].unk1); fileProgressFlag_setN(D_803947F8[this->unkF4_8 - 1].progress_flag, local->unk4, D_803947F8[this->unkF4_8 - 1].size_bits);
func_803463F4(ITEM_26_JIGGY_TOTAL, 1); func_803463F4(ITEM_26_JIGGY_TOTAL, 1);
} }
break; break;
@@ -330,7 +330,7 @@ void func_8038F350(Actor *this, s32 next_state){
temp_s1 = func_8038F0EC(this); temp_s1 = func_8038F0EC(this);
func_8038F1EC(this, temp_s1, 1); func_8038F1EC(this, temp_s1, 1);
local->unk0 |= (1 << temp_s1); local->unk0 |= (1 << temp_s1);
func_80320044(D_803947F8[this->unkF4_8 - 1].unk2, local->unk4, D_803947F8[this->unkF4_8 - 1].unk1); fileProgressFlag_setN(D_803947F8[this->unkF4_8 - 1].progress_flag, local->unk4, D_803947F8[this->unkF4_8 - 1].size_bits);
func_803463F4(ITEM_26_JIGGY_TOTAL, -1); func_803463F4(ITEM_26_JIGGY_TOTAL, -1);
func_8038F250(this); func_8038F250(this);
} }
@@ -353,7 +353,7 @@ void func_8038F350(Actor *this, s32 next_state){
local->unk0 |= (1 << temp_s1); local->unk0 |= (1 << temp_s1);
func_803463F4(ITEM_26_JIGGY_TOTAL, -1); func_803463F4(ITEM_26_JIGGY_TOTAL, -1);
} }
func_80320044(D_803947F8[this->unkF4_8 - 1].unk2, local->unk4, D_803947F8[this->unkF4_8 - 1].unk1); fileProgressFlag_setN(D_803947F8[this->unkF4_8 - 1].progress_flag, local->unk4, D_803947F8[this->unkF4_8 - 1].size_bits);
func_8038F250(this); func_8038F250(this);
} }
break; break;
@@ -391,12 +391,12 @@ void lair_func_8038F894(Actor *this, s32 arg1) {
return; return;
} }
func_8025A70C(COMUSIC_2C_BUZZER); func_8025A70C(COMUSIC_2C_BUZZER);
if (func_8031FF1C(0xDE) != 0) { if (fileProgressFlag_get(FILEPROG_DE_USED_ALL_YOUR_PUZZLE_PIECES) != 0) {
func_8038F350(this, 1); func_8038F350(this, 1);
return; return;
} }
func_80311480(0xFBC, 4, NULL, NULL, NULL, NULL); func_80311480(0xFBC, 4, NULL, NULL, NULL, NULL);
func_80320004(0xDE, 1); fileProgressFlag_set(FILEPROG_DE_USED_ALL_YOUR_PUZZLE_PIECES, 1);
} }
void lair_func_8038F924(Actor *this) { void lair_func_8038F924(Actor *this) {
@@ -417,7 +417,7 @@ void lair_func_8038F924(Actor *this) {
if (!this->unk16C_4) { if (!this->unk16C_4) {
// temp_v0 = &D_803947F8[this->unkF4_8 - 1]; // temp_v0 = &D_803947F8[this->unkF4_8 - 1];
sp64 = func_8031FF44(D_803947F8[this->unkF4_8 - 1].unk2, D_803947F8[this->unkF4_8 - 1].unk1); sp64 = fileProgressFlag_getN(D_803947F8[this->unkF4_8 - 1].progress_flag, D_803947F8[this->unkF4_8 - 1].size_bits);
local->unk0 = 0; local->unk0 = 0;
local->unk4 = 0; local->unk4 = 0;
local->unk8 = (func_8038ECA8(this->marker)) ? 0xff : 1; local->unk8 = (func_8038ECA8(this->marker)) ? 0xff : 1;
@@ -432,11 +432,11 @@ void lair_func_8038F924(Actor *this) {
this->unk16C_4 = TRUE; this->unk16C_4 = TRUE;
if (this->unkF4_8 == 9) { if (this->unkF4_8 == 9) {
this->unk1C[0] = 8.0f; this->unk1C[0] = 8.0f;
if (!func_8031FF1C(0x53)) { if (!fileProgressFlag_get(FILEPROG_53_CCW_PUZZLE_PODIUM_SWITCH_PRESSED)) {
marker_despawn(this->marker); marker_despawn(this->marker);
return; return;
} }
if (!func_8031FF1C(0x54)) { if (!fileProgressFlag_get(FILEPROG_54_CCW_PUZZLE_PODIUM_ACTIVE)) {
func_802C9334(0x20, this); func_802C9334(0x20, this);
func_80324CFC(0.0f, COMUSIC_43_ENTER_LEVEL_GLITTER, 0x7FFF); func_80324CFC(0.0f, COMUSIC_43_ENTER_LEVEL_GLITTER, 0x7FFF);
func_80324D2C(2.1f, COMUSIC_43_ENTER_LEVEL_GLITTER); func_80324D2C(2.1f, COMUSIC_43_ENTER_LEVEL_GLITTER);
@@ -445,7 +445,7 @@ void lair_func_8038F924(Actor *this) {
} }
} }
if ((this->unkF4_8 == 9) && !func_8031FF1C(0x54)) { if ((this->unkF4_8 == 9) && !fileProgressFlag_get(FILEPROG_54_CCW_PUZZLE_PODIUM_ACTIVE)) {
this->yaw += this->unk1C[0]; this->yaw += this->unk1C[0];
while(this->yaw >= 360.0f){ while(this->yaw >= 360.0f){
this->yaw -= 360.0f; this->yaw -= 360.0f;
@@ -477,13 +477,13 @@ void lair_func_8038F924(Actor *this) {
this->unk138_24 = TRUE; this->unk138_24 = TRUE;
} }
if (func_80329530(this, 300)) { if (func_80329530(this, 300)) {
if ((this->unkF4_8 == 0xA) && !func_8031FF1C(0xF6)) { if ((this->unkF4_8 == 0xA) && !fileProgressFlag_get(FILEPROG_F6_SEEN_DOOR_OF_GRUNTY_PUZZLE_PODIUM)) {
phi_a0 = (item_getCount(ITEM_26_JIGGY_TOTAL) < D_803947F8[this->unkF4_8 - 1].unk0) ? 0xFAB : 0xFC0; phi_a0 = (item_getCount(ITEM_26_JIGGY_TOTAL) < D_803947F8[this->unkF4_8 - 1].cost) ? 0xFAB : 0xFC0;
if (func_80311480(phi_a0, 0, NULL, NULL, NULL, NULL)) { if (func_80311480(phi_a0, 0, NULL, NULL, NULL, NULL)) {
func_80320004(0xF6, TRUE); fileProgressFlag_set(FILEPROG_F6_SEEN_DOOR_OF_GRUNTY_PUZZLE_PODIUM, TRUE);
} }
} else if (this->unkF4_8 == 1) { } else if (this->unkF4_8 == 1) {
func_8035644C(0xA7); func_8035644C(FILEPROG_A7_NEAR_PUZZLE_PODIUM_TEXT);
} }
} }
if (func_8038ECA8(this->marker) && this->unk138_24 && !func_8038EB58(this) && (func_8028ECAC() == 0 || func_8028ECAC() == BSGROUP_8_TROT)) { if (func_8038ECA8(this->marker) && this->unk138_24 && !func_8038EB58(this) && (func_8028ECAC() == 0 || func_8028ECAC() == BSGROUP_8_TROT)) {
@@ -497,7 +497,7 @@ void lair_func_8038F924(Actor *this) {
lair_func_8038F894(this, 5); lair_func_8038F894(this, 5);
} else if (sp7C[FACE_BUTTON(BUTTON_B)] == 1) { } else if (sp7C[FACE_BUTTON(BUTTON_B)] == 1) {
func_8038F350(this, 1); func_8038F350(this, 1);
} else if ((sp6C[0] == 1) && func_8031FF1C(0xE0)) { } else if ((sp6C[SIDE_BUTTON(BUTTON_Z)] == 1) && fileProgressFlag_get(FILEPROG_E0_CAN_PLACE_ALL_PUZZLE_PIECES)) {
lair_func_8038F894(this, 6); lair_func_8038F894(this, 6);
} else if (sp7C[FACE_BUTTON(BUTTON_C_DOWN)] == 1) { } else if (sp7C[FACE_BUTTON(BUTTON_C_DOWN)] == 1) {
if (local->unk4) { if (local->unk4) {

View File

@@ -28,7 +28,7 @@ s32 func_80390084(void) {
s32 phi_s1; s32 phi_s1;
for(phi_s0 = 0, phi_s1 = 0; phi_s0 < 3; phi_s0++){ for(phi_s0 = 0, phi_s1 = 0; phi_s0 < 3; phi_s0++){
if (func_8031FF1C(phi_s0 + 0xAD)) { if (fileProgressFlag_get(phi_s0 + 0xAD)) {
phi_s1++; phi_s1++;
} }
} }
@@ -44,8 +44,8 @@ void func_803900EC(ActorMarker *marker, enum asset_e text_id, s32 arg2){
sp1C = marker->unk14_20 - 0x16D; sp1C = marker->unk14_20 - 0x16D;
func_8028F918(0); func_8028F918(0);
if (!func_8031FF1C(sp1C + 0xAD)) { if (!fileProgressFlag_get(sp1C + 0xAD)) {
func_80320004(sp1C + 0xAD, 1); fileProgressFlag_set(sp1C + 0xAD, 1);
func_8025A6EC(COMUSIC_2B_DING_B, 28000); func_8025A6EC(COMUSIC_2B_DING_B, 28000);
} }
} }
@@ -63,7 +63,7 @@ void func_80390174(ActorMarker *marker, s32 arg1) {
this = marker_getActor(marker); this = marker_getActor(marker);
sp28 = this->marker->unk14_20 - 0x16D; sp28 = this->marker->unk14_20 - 0x16D;
func_8028F94C(2, this->position); func_8028F94C(2, this->position);
if (func_8031FF1C(sp28 + 0xAD)) { if (fileProgressFlag_get(sp28 + 0xAD)) {
func_80311480(sp28 + 0xF83, 0xE, this->position, this->marker, func_803900EC, lair_func_803900DC); func_80311480(sp28 + 0xF83, 0xE, this->position, this->marker, func_803900EC, lair_func_803900DC);
return; return;
} }
@@ -106,7 +106,7 @@ void func_803902B8(Actor *this) {
} }
this->unk38_0 = sp58; this->unk38_0 = sp58;
sp58 = func_80259384(this->position, sp5C, 400.0f); sp58 = func_80259384(this->position, sp5C, 400.0f);
if (func_8031FF1C(sp54 + 0xAD)) { if (fileProgressFlag_get(sp54 + 0xAD)) {
func_8024E55C(0, sp3C); func_8024E55C(0, sp3C);
sp58 &= (sp3C[FACE_BUTTON(BUTTON_B)] == 1) || func_8028EC04(); sp58 &= (sp3C[FACE_BUTTON(BUTTON_B)] == 1) || func_8028EC04();
} }

View File

@@ -73,7 +73,7 @@ void func_803920E0(Actor *this, enum sfx_e sfx_id, f32 arg2, f32 arg3, s32 arg4,
void func_8039217C(Actor *this) { void func_8039217C(Actor *this) {
if (!this->initialized) { if (!this->initialized) {
this->initialized = TRUE; this->initialized = TRUE;
if (func_8031FF1C(0xA6)) { if (fileProgressFlag_get(FILEPROG_A6_FURNACE_FUN_COMPLETE)) {
marker_despawn(this->marker); marker_despawn(this->marker);
return; return;
} }

View File

@@ -53,13 +53,13 @@ void func_80392690(ActorMarker *marker, enum asset_e text_id, s32 arg2){
void func_80392700(Actor *this) { void func_80392700(Actor *this) {
if (mapSpecificFlags_get(4)) { if (mapSpecificFlags_get(4)) {
if (func_8031FF1C(0xF4)) { if (fileProgressFlag_get(FILEPROG_F4_ENTER_FF_CUTSCENE)) {
func_80311480(0x1031, 0xF, this->position, this->marker, func_80392664, func_80392610); func_80311480(0x1031, 0xF, this->position, this->marker, func_80392664, func_80392610);
} else { } else {
func_802BC280(); func_802BC280();
set_camera_to_node(0x1F); set_camera_to_node(0x1F);
func_80311480(0x102C, 0xE, this->position, this->marker, func_80392664, func_80392610); func_80311480(0x102C, 0xE, this->position, this->marker, func_80392664, func_80392610);
func_80320004(0xF4, 1); fileProgressFlag_set(FILEPROG_F4_ENTER_FF_CUTSCENE, TRUE);
} }
mapSpecificFlags_set(4, 0); mapSpecificFlags_set(4, 0);
} }
@@ -91,13 +91,13 @@ void func_80392700(Actor *this) {
void func_80392918(Actor *this) { void func_80392918(Actor *this) {
if (!this->unk16C_4) { if (!this->unk16C_4) {
if ((func_8031FF1C(0xF4) != 0) && (func_8028E4A4() == 2)) { if (fileProgressFlag_get(FILEPROG_F4_ENTER_FF_CUTSCENE) && (func_8028E4A4() == 2)) {
mapSpecificFlags_set(4, 1); mapSpecificFlags_set(4, 1);
} }
this->unk4C = 400.0f; this->unk4C = 400.0f;
this->marker->unk2C_2 = FALSE; this->marker->unk2C_2 = FALSE;
this->unk16C_4 = TRUE; this->unk16C_4 = TRUE;
if (func_8031FF1C(0xA6) != 0) { if (fileProgressFlag_get(FILEPROG_A6_FURNACE_FUN_COMPLETE)) {
marker_despawn(this->marker); marker_despawn(this->marker);
} }
return; return;

View File

@@ -31,7 +31,7 @@ void func_80392B6C(Actor *this) {
if (!this->unk16C_4) { if (!this->unk16C_4) {
this->unk16C_4 = TRUE; this->unk16C_4 = TRUE;
if (func_8031FF1C(0xA6) != 0) { if (fileProgressFlag_get(FILEPROG_A6_FURNACE_FUN_COMPLETE)) {
marker_despawn(this->marker); marker_despawn(this->marker);
return; return;
} }

View File

@@ -117,6 +117,7 @@ gczoombox_update = 0x80316EF4;
gczoombox_close = 0x803183FC; gczoombox_close = 0x803183FC;
gczoombox_maximize = 0x8031840C; gczoombox_maximize = 0x8031840C;
gczoombox_minimize = 0x8031841C; gczoombox_minimize = 0x8031841C;
fileProgressFlag_get = 0x8031FF1C;
level_get = 0x80321900; level_get = 0x80321900;
levelSpecificFlags_validateCRC1 = 0x8032204C; levelSpecificFlags_validateCRC1 = 0x8032204C;
marker_despawn = 0x803282F4; marker_despawn = 0x803282F4;