Merge branch 'mr-origin-65'

This commit is contained in:
Banjo Kazooie
2024-09-08 21:33:17 -05:00
143 changed files with 959 additions and 829 deletions

View File

@@ -229,59 +229,146 @@ enum file_progress_e{
FILEPROG_FD_BANNED_CHEATCODES_ENTERED //2 bit
};
enum volatile_progress_e{
VOLAPROG_0_UNKNOWN
};
enum volatile_flags_e {
VOLATILE_FLAG_0_IN_FURNACE_FUN_QUIZ,
VOLATILE_FLAG_1, // FF related
VOLATILE_FLAG_2_FF_IN_MINIGAME,
VOLATILE_FLAG_3, // FF related
VOLATILE_FLAG_4, // FF related
VOLATILE_FLAG_5_FF_MINIGAME_WON,
VOLATILE_FLAG_6_HAS_SEEN_BOSS_BOOM_BOX_FF_MINIGAME,
VOLATILE_FLAG_7_HAS_SEEN_VILE_FF_MINIGAME,
VOLATILE_FLAG_8_HAS_SEEN_MATCHING_PYRAMID_FF_MINIGAME,
VOLATILE_FLAG_9_HAS_SEEN_ZUBBAS_FF_MINIGAME,
VOLATILE_FLAG_A_HAS_SEEN_TIPTUP_FF_MINIGAME,
VOLATILE_FLAG_B_HAS_SEEN_SANDCASTLE_FF_MINIGAME,
VOLATILE_FLAG_C_HAS_SEEN_SPRING_PAD,
VOLATILE_FLAG_D_HAS_SEEN_FLIGHT_PAD,
VOLATILE_FLAG_E, // related to chxmastree, GV waterctrl and RBB anchorswitch
VOLATILE_FLAG_F_HAS_MEET_TURBO_SHOES,
VOLATILE_FLAG_10_HAS_MEET_WADING_BOOTS,
VOLATILE_FLAG_11, // unused
VOLATILE_FLAG_12, // unused
VOLATILE_FLAG_13_HAS_TRIGGERED_MUMBO_VACATION_TEXT,
VOLATILE_FLAG_14, // unused
VOLATILE_FLAG_15, // unused
VOLATILE_FLAG_16, // related to beta function "return to lair"
VOLATILE_FLAG_17, // 17 and 18: related to 50 note door and demo mode (?)
VOLATILE_FLAG_18, // 17 and 18: related to 50 note door and demo mode (?)
VOLATILE_FLAG_19_CURRENT_LEVEL_ID, // 4 bits for current level ID
// VOLATILE_FLAG_1A to VOLATILE_FLAG_1C belong to VOLATILE_FLAG_19_CURRENT_LEVEL_ID
VOLATILE_FLAG_1D = 0x1D, // unused
VOLATILE_FLAG_1E, // related to warp cauldron or dingpot
VOLATILE_FLAG_1F_IN_CHARACTER_PARADE,
VOLATILE_FLAG_20_BEGIN_CHARACTER_PARADE,
VOLATILE_FLAG_21, // related to FF
VOLATILE_FLAG_22, // related to baddies escape text
VOLATILE_FLAG_23_FINAL_BOSS_PHASE, // 3 bits for current phase in final boss fight
// VOLATILE_FLAG_24 to VOLATILE_FLAG_25 belong to VOLATILE_FLAG_23_FINAL_BOSS_PHASE
VOLATILE_FLAG_26_FF_GRUNTY_QUESTIONS = 0x26, // 60 bits FFQ Grunty Question related (two bits for every question)
// VOLATILE_FLAG_27 to VOLATILE_FLAG_61 belong to VOLATILE_FLAG_26_FF_GRUNTY_QUESTIONS
VOLATILE_FLAG_62_FF_GRUNTY_QUESTIONS_INITIALIZED = 0x62,
VOLATILE_FLAG_63, // related to demo mode
VOLATILE_FLAG_64, // related to demo mode
VOLATILE_FLAG_65_CHEAT_ENTERED,
VOLATILE_FLAG_66_SANDCASTLE_OPEN_DOOR_TWO,
VOLATILE_FLAG_67_SANDCASTLE_OPEN_DOOR_THREE,
VOLATILE_FLAG_68_SANDCASTLE_OPEN_DOOR_FOUR,
VOLATILE_FLAG_69_SANDCASTLE_OPEN_DOOR_FIVE,
VOLATILE_FLAG_6A_SANDCASTLE_OPEN_DOOR_SIX,
VOLATILE_FLAG_6B_SANDCASTLE_OPEN_DOOR_SEVEN,
VOLATILE_FLAG_6C_SANDCASTLE_PUZZLE_COMPLETE_CC,
VOLATILE_FLAG_6D_SANDCASTLE_PUZZLE_COMPLETE_BGS,
VOLATILE_FLAG_6E_SANDCASTLE_PUZZLE_COMPLETE_FP,
VOLATILE_FLAG_6F_SANDCASTLE_PUZZLE_COMPLETE_GV,
VOLATILE_FLAG_70_SANDCASTLE_PUZZLE_COMPLETE_MMM,
VOLATILE_FLAG_71_SANDCASTLE_PUZZLE_COMPLETE_RBB,
VOLATILE_FLAG_72_SANDCASTLE_PUZZLE_COMPLETE_CCC,
VOLATILE_FLAG_73_SANDCASTLE_INFINITE_LIVES,
VOLATILE_FLAG_74_SANDCASTLE_INFINITE_EGGS,
VOLATILE_FLAG_75_SANDCASTLE_INFINITE_RED_FEATHERS,
VOLATILE_FLAG_76_SANDCASTLE_INFINITE_GOLD_FEATHERS,
VOLATILE_FLAG_77, // unused
VOLATILE_FLAG_78_SANDCASTLE_NO_BONUS,
VOLATILE_FLAG_79, // unused
VOLATILE_FLAG_7A, // unused
VOLATILE_FLAG_7B, // unused
VOLATILE_FLAG_7C, // unused
VOLATILE_FLAG_7D_SANDCASTLE_RAISE_PIPES_TO_CC,
VOLATILE_FLAG_7E_SANDCASTLE_RAISE_PIPE_TO_BRENTILDA,
VOLATILE_FLAG_7F_SANDCASTLE_OPEN_CC,
VOLATILE_FLAG_80_SANDCASTLE_REMOVE_GRILL_NEAR_BGS_JIGGY,
VOLATILE_FLAG_81_SANDCASTLE_CCC_JIGGY_PODIUM,
VOLATILE_FLAG_82_SANDCASTLE_REMOVE_GRILL_AND_HAT_FROM_STATUE,
VOLATILE_FLAG_83_SANDCASTLE_REMOVE_ICE,
VOLATILE_FLAG_84_SANDCASTLE_OPEN_BGS,
VOLATILE_FLAG_85_SANDCASTLE_REMOVE_BREAKABLE_WALLS,
VOLATILE_FLAG_86_SANDCASTLE_SHOCKSPRING_JUMP_UNLOCKED,
VOLATILE_FLAG_87_SANDCASTLE_OPEN_GV,
VOLATILE_FLAG_88_SANDCASTLE_REMOVE_WEBS,
VOLATILE_FLAG_89_SANDCASTLE_REMOVE_GLASS_EYE,
VOLATILE_FLAG_8A_SANDCASTLE_FLIGHT_UNLOCKED,
VOLATILE_FLAG_8B_SANDCASTLE_OPEN_FP,
VOLATILE_FLAG_8C_SANDCASTLE_OPEN_MMM,
VOLATILE_FLAG_8D_SANDCASTLE_REMOVE_CRYPT_GATE,
VOLATILE_FLAG_8E_SANDCASTLE_REMOVE_CRYPT_COFFIN_LID,
VOLATILE_FLAG_8F_SANDCASTLE_REMOVE_GRATE_NEAR_WATER_SWITCH,
VOLATILE_FLAG_90_SANDCASTLE_OPEN_RBB,
VOLATILE_FLAG_91_SANDCASTLE_REMOVE_GRILL_NEAR_RBB_JIGGY,
VOLATILE_FLAG_92_SANDCASTLE_REMOVE_TUNNEL_GRILL_NEAR_RBB_JIGGY,
VOLATILE_FLAG_93_SANDCASTLE_OPEN_CCW,
VOLATILE_FLAG_94_SANDCASTLE_INFINITE_HEALTH,
VOLATILE_FLAG_95_SANDCASTLE_INFINTE_MUMBO_TOKENS,
VOLATILE_FLAG_96_SANDCASTLE_INFINITE_AIR,
VOLATILE_FLAG_97_SANDCASTLE_BOTTLES_BONUS_1,
VOLATILE_FLAG_98_SANDCASTLE_BOTTLES_BONUS_2,
VOLATILE_FLAG_99_SANDCASTLE_BOTTLES_BONUS_3,
VOLATILE_FLAG_9A_SANDCASTLE_BOTTLES_BONUS_4,
VOLATILE_FLAG_9B_SANDCASTLE_BOTTLES_BONUS_5,
VOLATILE_FLAG_9C_SANDCASTLE_BOTTLES_BONUS_6,
VOLATILE_FLAG_9D_SANDCASTLE_WISHY_WASHY,
VOLATILE_FLAG_9E_BETA_OILY_SCUM,
VOLATILE_FLAG_9F_BETA_DIVE_IN_ICY_WATER,
VOLATILE_FLAG_A0_FF_FIRST_ANSWER_RIGHT,
VOLATILE_FLAG_A1_FF_NEXT_ANSWER_RIGHT,
VOLATILE_FLAG_A2_FF_GRUNTY_ANSWER_RIGHT,
VOLATILE_FLAG_A3_FF_FIRST_ANSWER_WRONG,
VOLATILE_FLAG_A4_FF_NEXT_ANSWER_WRONG,
VOLATILE_FLAG_A5_FF_UNUSED,
VOLATILE_FLAG_A6_FF_FOUND_HONEYCOMB,
VOLATILE_FLAG_A7_FF_FOUND_EXTRALIFE,
VOLATILE_FLAG_A8_FF_GOT_JOKER,
VOLATILE_FLAG_A9_FF_USED_JOKER,
VOLATILE_FLAG_AA_FF_LOW_HEALTH,
VOLATILE_FLAG_AB_LAST_LIFE_ON_SKULL,
VOLATILE_FLAG_AC_GV_TRAPDOOR_MISSED,
VOLATILE_FLAG_AD_MMM_CHURCH_DOOR_MISSED,
VOLATILE_FLAG_AE_BGS_WALKWAY_JIGGY_MISSED,
VOLATILE_FLAG_AF_BGS_MAZE_JIGGY_MISSED,
VOLATILE_FLAG_B0_NOT_ENOUGH_NOTES,
VOLATILE_FLAG_B1, // unused
VOLATILE_FLAG_B2, // ccw related
VOLATILE_FLAG_B3, // boggy2 related
VOLATILE_FLAG_B4, // fp related
VOLATILE_FLAG_B5, // ccw related
VOLATILE_FLAG_B6_WITCH_SWITCH_PRESSED_MM,
VOLATILE_FLAG_B7_WITCH_SWITCH_PRESSED_MMM,
VOLATILE_FLAG_B8_WITCH_SWITCH_PRESSED_TTC,
VOLATILE_FLAG_B9_WITCH_SWITCH_PRESSED_RBB,
VOLATILE_FLAG_BA_WITCH_SWITCH_PRESSED_CCW,
VOLATILE_FLAG_BB_WITCH_SWITCH_PRESSED_FP,
VOLATILE_FLAG_BC_WITCH_SWITCH_PRESSED_CC,
VOLATILE_FLAG_BD_WITCH_SWITCH_PRESSED_BGS,
VOLATILE_FLAG_BE_WITCH_SWITCH_PRESSED_GV,
VOLATILE_FLAG_BF, // witch switch related
VOLATILE_FLAG_C0_BEGIN_FINAL_CHARACTER_PARADE,
VOLATILE_FLAG_C1_IN_FINAL_CHARACTER_PARADE,
VOLATILE_FLAG_C2_NOBONUS_TEXT,
VOLATILE_FLAG_C3, // SNS picture related
VOLATILE_FLAG_C4_WOZZA_HIDE_IN_SNS_PARADE,
VOLATILE_FLAG_C5_WISHYWASHYBANJO_TEXT,
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_13_HAS_TRIGGERED_MUMBO_VACATION_TEXT = 0x13,
UNKFLAGS1_1F_IN_CHARACTER_PARADE = 0x1F,
UNKFLAGS1_20_BEGIN_CHARACTER_PARADE,
UNKFLAGS1_73_SANDCASTLE_INFINITE_LIVES = 0x73,
UNKFLAGS1_74_SANDCASTLE_INFINITE_EGGS,
UNKFLAGS1_75_SANDCASTLE_INFINITE_RED_FEATHERS,
UNKFLAGS1_76_SANDCASTLE_INFINITE_GOLD_FEATHERS,
UNKFLAGS1_78_SANDCASTLE_NO_BONUS = 0x78,
UNKFLAGS1_7F_SANDCASTLE_OPEN_CC = 0x7F,
UNKFLAGS1_84_SANDCASTLE_OPEN_BGS = 0x84,
UNKFLAGS1_86_SANDCASTLE_SHOCKSPRING_JUMP_UNLOCKED = 0x86,
UNKFLAGS1_87_SANDCASTLE_OPEN_GV,// 0X87
UNKFLAGS1_8A_SANDCASTLE_FLIGHT_UNLOCKED = 0x8A,// 0X8A
UNKFLAGS1_8B_SANDCASTLE_OPEN_FP,// 0X8B
UNKFLAGS1_8C_SANDCASTLE_OPEN_MMM,// 0X8C
UNKFLAGS1_8D_SANDCASTLE_REMOVE_CRYPT_GATE,// 0X8D
UNKFLAGS1_8E_SANDCASTLE_REMOVE_CRYPT_COFFIN_LID,// 0X8E
UNKFLAGS1_8F_SANDCASTLE_REMOVE_GRATE_NEAR_WATER_SWITCH,// 0X8F
UNKFLAGS1_90_SANDCASTLE_OPEN_RBB,
UNKFLAGS1_93_SANDCASTLE_OPEN_CCW = 0x93,
UNKFLAGS1_94_SANDCASTLE_INFINITE_HEALTH,// 0X94
UNKFLAGS1_95_SANDCASTLE_INFINTE_MUMBO_TOKENS,// 0X95
UNKFLAGS1_96_SANDCASTLE_INFINITE_AIR,// 0X96
UNKFLAGS1_97_SANDCASTLE_BOTTLES_BONUS_1,// 0X97
UNKFLAGS1_98_SANDCASTLE_BOTTLES_BONUS_2,// 0X98
UNKFLAGS1_99_SANDCASTLE_BOTTLES_BONUS_3,// 0X99
UNKFLAGS1_9A_SANDCASTLE_BOTTLES_BONUS_4,// 0X9A
UNKFLAGS1_9B_SANDCASTLE_BOTTLES_BONUS_5,// 0X9B
UNKFLAGS1_9C_SANDCASTLE_BOTTLES_BONUS_6,// 0X9C
UNKFLAGS1_9D_SANDCASTLE_WISHY_WASHY,// 0X9D
UNKFLAGS1_C0_BEGIN_FINAL_CHARACTER_PARADE = 0xC0,
UNKFLAGS1_C1_IN_FINAL_CHARACTER_PARADE
VOLATILE_FLAG_NUM_FLAGS
};
enum level_flags_e
@@ -3352,7 +3439,7 @@ enum asset_e
// 56a FP Chimney
ASSET_56B_MODEL_SANDYBUTT_PYRAMID = 0x56B,
// 56c The End Sign
// 56d (Human Hand?)
ASSET_56D_MUMBOS_HAND_WITH_PICTURE = 0x56D, // Mumbo's Hand with SNS pictures
// 56e Hammerhead Beach Scenery
// Unused
// Unused
@@ -4666,22 +4753,36 @@ enum bswatergroup_e{
};
enum misc_flag_e{
MISC_FLAG_1_ON_FLIGHT_PAD = 0x1,
MISC_FLAG_0, // unused
MISC_FLAG_1_ON_FLIGHT_PAD,
MISC_FLAG_2_ON_SPRING_PAD,
MISC_FLAG_3,
MISC_FLAG_4,
MISC_FLAG_5_HAS_PECKED,
MISC_FLAG_6,
MISC_FLAG_7,
MISC_FLAG_8,
MISC_FLAG_9,
MISC_FLAG_A,
MISC_FLAG_B,
MISC_FLAG_C,
MISC_FLAG_D, // unused
MISC_FLAG_E_TOUCHING_WADING_BOOTS,
MISC_FLAG_F, // related to A button ?
MISC_FLAG_10_TOUCHING_TURBO_TRAINERS,
MISC_FLAG_11, // unused
MISC_FLAG_12_HAS_FLAPPED, // has used flap
MISC_FLAG_13, // related to ground damage ?
MISC_FLAG_14_LOSE_BOGGY_RACE, // in difficult terrain (mud)
MISC_FLAG_15, // touching loadzone?
MISC_FLAG_16, // related to flying
MISC_FLAG_17_FIRST_PERSON_VIEW,
MISC_FLAG_18, // related to underwater state
MISC_FLAG_19, // related to transformations
MISC_FLAG_1A, // related to bee transformation
MISC_FLAG_1B_TRANSFORMING,
MISC_FLAG_5_HAS_PECKED = 0x5,
MISC_FLAG_E_TOUCHING_WADING_BOOTS = 0xE,
MISC_FLAG_10_TOUCHING_TURBO_TRAINERS = 0x10,
//0x12 has used flap
MISC_FLAG_12_HAS_FLAPPED = 0x12,
//0x13 in difficult terrain (mud)
MISC_FLAG_14_LOSE_BOGGY_RACE = 0x14,
//0x15 touching loadzone?
MISC_FLAG_17_FPV = 0x17,
MISC_FLAG_1B_TRANSFORMING = 0x1B
MISC_FLAG_NUM_FLAGS
};
enum nc_first_person_state{
@@ -4691,4 +4792,10 @@ enum nc_first_person_state{
FIRSTPERSON_STATE_4_DONE
};
enum marker_collision_func_type_e {
MARKER_COLLISION_FUNC_0, // active?
MARKER_COLLISION_FUNC_1, // passive?
MARKER_COLLISION_FUNC_2_DIE
};
#endif

View File

@@ -20,6 +20,8 @@
#include "bsint.h"
#include "generic.h"
#include "enums.h"
extern f32 fabsf(f32);
#pragma intrinsic (fabsf)
@@ -561,5 +563,23 @@ extern void spawnableActorList_add(ActorInfo *arg0, Actor *(*arg1)(s32[3], s32,
extern void spawnableActorList_addIfMapVisited(ActorInfo *arg0, Actor *(*arg1)(s32[3], s32, ActorInfo *, u32), u32 arg2, enum map_e arg3);
extern void marker_setActorUpdateFunc(ActorMarker *marker, ActorUpdateFunc method);
extern void marker_setActorUpdate2Func(ActorMarker *marker, ActorUpdateFunc method);
extern void marker_callCollisionFunc(ActorMarker *, ActorMarker *, enum marker_collision_func_type_e);
extern enum marker_collision_func_type_e func_8033D574(struct5Cs *arg0);
extern s32 volatileFlag_get(s32);
extern s32 volatileFlag_getN(s32 index, s32 numBits);
extern s32 volatileFlag_getAndSet(s32 index, s32 arg1);
extern void volatileFlag_set(s32 index, s32 set);
extern void volatileFlag_setN(s32 startIndex, s32 set, s32 length);
extern void itemscore_noteScores_clear(void);
extern s32 itemscore_noteScores_get(enum level_e lvl_id);
extern void itemscore_timeScores_clear(void);
extern void miscFlag_clearAll(void);
extern bool miscFlag_isTrue(enum misc_flag_e arg0);
extern bool miscFlag_isFalse(enum misc_flag_e arg0);
extern void miscFlag_set(enum misc_flag_e arg0);
extern void miscFlag_clear(enum misc_flag_e arg0);
extern void miscFlag_toggle(enum misc_flag_e arg0);
#endif

View File

@@ -217,7 +217,7 @@ typedef struct actor_s{
};
//u8 padAC[0x44];
f32 unkEC; //animCtrl???
f32 stored_animctrl_timer; // animCtrlTimer
f32 stored_animctrl_duration; //animCtrlDuration
u32 unkF4_31:1;
u32 unkF4_30:1; // has something to do with vertices
@@ -303,7 +303,7 @@ typedef struct actor_info_s{
s16 startAnimation;
ActorAnimationInfo* animations;
void (* update_func)(Actor *);
void (* unk10)(Actor *);
void (* update2_func)(Actor *);
Actor* (* draw_func)(ActorMarker *, Gfx **, Mtx **, Vtx **);
u16 unk18;
u16 draw_distance;