diff --git a/.gitignore b/.gitignore index 64efb3fa..a939a88a 100644 --- a/.gitignore +++ b/.gitignore @@ -55,6 +55,7 @@ __pycache__/ *__pycache__/ expected/ .*/ +!.gitlab/ *.ld *.map *auto.txt diff --git a/.gitlab/merge_request_templates/default.md b/.gitlab/merge_request_templates/default.md new file mode 100644 index 00000000..0cb6649d --- /dev/null +++ b/.gitlab/merge_request_templates/default.md @@ -0,0 +1,12 @@ +## What Type Of PR Is This? (Check All Applicable) +- [ ] Feature +- [ ] Bug Fix +- [ ] Documentation Update +- [ ] Revert +- [ ] Other + +## Describe Your Changes + +## Checklist Before Requesting A Review +- [ ] Running 'Make' results in 'OK' for version us.v10 +- [ ] Documentation follows the writing style found in [Style-Guide](https://gitlab.com/banjo.decomp/banjo-kazooie/-/wikis/Style-Guide) \ No newline at end of file diff --git a/include/enums.h b/include/enums.h index 03eee84c..9437ff50 100644 --- a/include/enums.h +++ b/include/enums.h @@ -3764,6 +3764,7 @@ enum asset_e ASSET_7D9_SPRITE_NOTE, ASSET_7DD_SPRITE_HEALTH = 0x7dd, + ASSET_7DE_SPRITE_SHOE_SPARKLES, ASSET_7E5_SPRITE_WATER_HONEYCOMB = 0x7e5, ASSET_7E6_SPRITE_VILE, @@ -3885,6 +3886,7 @@ enum asset_e ASSET_A22_DIALOG_FLY_REFRESHER = 0xa22, ASSET_A23_DIALOG_SHOCKJUMP_REFRESHER, + ASSET_A27_TEXT_BOTTLES_ALL_TTC_MOVES_LEARNED = 0xA27, ASSET_A28_TEXT_LEAKY_DONE = 0xA28, ASSET_A6F_TEXT_CHARMER_MEET = 0xA6F, @@ -3938,6 +3940,7 @@ enum asset_e ASSET_B4B_DIALOG_EGGS_REFRESHER, ASSET_B4C_DIALOG_BEAKBUSTER_REFRESHER, + ASSET_B4E_TEXT_BOTTLES_ALL_MM_MOVES_LEARNED = 0xB4E, ASSET_B51_TEXT_BOTTLES_HOW_TO_EXIT_LEVEL = 0xb51, @@ -3949,20 +3952,53 @@ enum asset_e ASSET_C23_DIALOG_BEAKBOMB_LEARN, ASSET_C24_DIALOG_BEAKBOMB_REFRESHER, + ASSET_C2A_TEXT_BOTTLES_ALL_FP_GV_MOVES_LEARNED = 0xC2A, + + ASSET_C63_TEXT_MR_VILE_INTRO = 0xC63, + ASSET_C64_TEXT_MR_VILE_ROUND_1_START, + ASSET_C65_TEXT_MR_VILE_PLAYER_DECLINES, + ASSET_C66_TEXT_MR_VILE_WINS_ROUND_1, + ASSET_C67_TEXT_MR_VILE_ROUND_2_START, + ASSET_C68_TEXT_MR_VILE_WINS_ROUND_2, + ASSET_C69_TEXT_MR_VILE_ROUND_3_START, + ASSET_C6A_TEXT_MR_VILE_WINS_ROUND_3, + ASSET_C6B_TEXT_MR_VILE_PLAYER_WINS, + ASSET_C6C_TEXT_MR_VILE_TRY_AGAIN, + ASSET_C6D_TEXT_MR_VILE_LOSE_ROUND_1_REMATCH, + ASSET_C6E_TEXT_MR_VILE_LOSE_ROUND_2_REMATCH, + ASSET_C6F_TEXT_MR_VILE_LOSE_ROUND_3_REMATCH, + ASSET_C70_TEXT_MR_VILE_WIN_ROUND_2_REMATCH, + ASSET_C71_TEXT_MR_VILE_WIN_ROUND_3_REMATCH, + text_flibbits_meet = 0xc81, text_flibbits_defeat = 0xc82, text_flibbits_return = 0xc83, ASSET_C88_DIALOG_LONGLEG_LEARN = 0xC88, ASSET_C89_DIALOG_LONGLEG_REFRESHER, + ASSET_C8A_TEXT_BOTTLES_ALL_BGS_MOVES_LEARNED, + + ASSET_C8D_TEXT_MR_VILE_EXTRA_CHALLENGE_INTRO = 0xC8D, + ASSET_C8E_TEXT_MR_VILE_WINS_EXTRA_CHALLENGE_1, + ASSET_C8F_TEXT_MR_VILE_PLAYER_DECLINES_EXTRA_CHALLENGE, + ASSET_C90_TEXT_MR_VILE_EXTRA_CHALLENGE_REMATCH_1, + ASSET_C91_TEXT_MR_VILE_EXTRA_CHALLENGE_REMATCH_2, + ASSET_C92_TEXT_MR_VILE_WINS_EXTRA_CHALLENGE_2, + ASSET_C93_TEXT_MR_VILE_WINS_EXTRA_CHALLENGE_3, + ASSET_C94_TEXT_MR_VILE_WINS_EXTRA_CHALLENGE_4, + ASSET_C95_TEXT_MR_VILE_LOSES_EXTRA_CHALLENGE_1, + ASSET_C96_TEXT_MR_VILE_LOSES_EXTRA_CHALLENGE_2, + ASSET_C97_TEXT_MR_VILE_LOSES_EXTRA_CHALLENGE_3, + ASSET_C98_TEXT_MR_VILE_GIVES_PRIZE, ASSET_D32_DIALOG_MUTANT_CRAB_MEET = 0xD32, ASSET_D33_DIALOG_MUTANT_CRAB_DEFEAT, ASSET_D34_TEXT_GLOOP_MEET, ASSET_D35_DIALOG_WONDERWING_LEARN, ASSET_D36_DIALOG_WONDERWING_REFRESHER, - - ASSET_D39_TEXT_BOTTLES_REFILL_HEALTH = 0xd39, + ASSET_D37_TEXT_BOTTLES_ALL_CC_MOVES_LEARNED, + ASSET_D38_TEXT_BOTTLES_ALL_MOVES_LEARNED, + ASSET_D39_TEXT_BOTTLES_REFILL_HEALTH, ASSET_D8F_DIALOG_MUMBO_MEET = 0xD8F, ASSET_D90_DIALOG_MUMBO_MAGIC_PAID_FOR, @@ -3993,6 +4029,45 @@ enum asset_e ASSET_DB1_DIALOG_MUMBO_MISTAKE_1, ASSET_DB2_DIALOG_MUMBO_MISTAKE_2, + ASSET_DF3_TEXT_BOTTLES_INTRODUCTION = 0xDF3, + ASSET_DF4_TEXT_BOTTLES_CAMERA_CONTROL_LEARN, + ASSET_DF5_TEXT_BOTTLES_CAMERA_CONTROL_REFRESHER, + ASSET_DF6_TEXT_BOTTLES_HIGH_JUMP_LEARN, + ASSET_DF7_TEXT_BOTTLES_FEATHERY_FLAP_LEARN, + ASSET_DF8_TEXT_BOTTLES_FLAP_FLIP_LEARN, + + ASSET_DFA_TEXT_BOTTLES_JUMP_REFRESHER = 0xDFA, + ASSET_DFB_TEXT_BOTTLES_DIVE_LEARN, + + ASSET_DFD_TEXT_BOTTLES_SWIM_LEARN = 0xDFD, + ASSET_DFE_TEXT_BOTTLES_DIVE_REFRESHER, + ASSET_DFF_TEXT_BOTTLES_CLAW_SWIPE_LEARN, + ASSET_E00_TEXT_BOTTLES_ATTACK_REFRESHER = 0xE00, + ASSET_E01_TEXT_BOTTLES_CLIMB_LEARN, + + ASSET_E03_TEXT_BOTTLES_CLIMB_REFRESHER = 0xE03, + ASSET_E04_TEXT_BOTTLES_BEAK_BARGE_LEARN, + + ASSET_E06_TEXT_BOTTLES_BEAK_BARGE_REFRESHER = 0xE06, + + ASSET_E08_TEXT_BOTTLES_FIND_ANOTHER_MOLEHILL = 0xE08, + ASSET_E09_TEXT_BOTTLES_SKIPPED_TUTORIAL, + ASSET_E0A_TEXT_BOTTLES_REFUSE_HELP_1, + ASSET_E0B_TEXT_BOTTLES_REFUSE_HELP_2, + ASSET_E0C_TEXT_BOTTLES_REFUSE_HELP_3, + ASSET_E0D_TEXT_BOTTLES_REFUSE_HELP_4, + ASSET_E0E_TEXT_BOTTLES_REFUSE_HELP_5, + ASSET_E0F_TEXT_BOTTLES_STOP_WASTING_TIME_BEFORE_FURNACE_FUN, // Skip tutorial, bother bottles, gives help, retalk to bottles + ASSET_E10_TEXT_BOTTLES_BRIDGE_BROKEN, + ASSET_E11_TEXT_BOTTLES_BRIDGE_STILL_BROKEN, + ASSET_E12_TEXT_BOTTLES_LEARNED_TUTORIAL_MOVES, + + ASSET_E1D_TEXT_BOTTLES_TUTORIAL_OFFER_WAIT = 0xE1D, + + ASSET_E1F_TEXT_BOTTLES_TUTORIAL_OFFER = 0xE1F, + + ASSET_E37_TEXT_BOTTLES_STOP_WASTING_TIME_AFTER_FURNACE_FUN = 0xE37, // Talk to bottles after beating furnace fun + ASSET_F5B_DIALOG_MUMBO_MAGIC_GET_WEAK_FULL = 0xF5b, ASSET_F5C_DIALOG_MUMBO_MAGIC_GET_WEAK_ABREV, ASSET_F5D_DIALOG_MUMBO_MAGIC_RUN_OUT_FULL, diff --git a/level_symbols.us.v10.txt b/level_symbols.us.v10.txt index 8eace79c..644876c1 100644 --- a/level_symbols.us.v10.txt +++ b/level_symbols.us.v10.txt @@ -19,5 +19,5 @@ lair_func_8038E0B0 = 0x8038E0B0; lair_func_8038E768 = 0x8038E768; fight_func_803863F0 = 0x803863F0; cutscene_func_8038C4E0 = 0x8038C4E0; -learnedAllTutorialAbilities = 0x802DA498; +chmole_learnedAllSpiralMountainAbilities = 0x802DA498; diff --git a/src/BGS/code_3420.c b/src/BGS/code_3420.c index 0b96adf0..7079b1ef 100644 --- a/src/BGS/code_3420.c +++ b/src/BGS/code_3420.c @@ -36,13 +36,80 @@ void func_8038A068(Actor *this, s32 next_state); void chvilegame_update(Actor *this); /* .data */ -ActorInfo D_80390960 = {MARKER_C6_VILE_GAME_CTRL, ACTOR_138_VILE_GAME_CTRL, 0, 0, NULL, chvilegame_update, NULL, func_80325340, 0, 0, 0.0f, 0}; -enum asset_e D_80390984[] = { 0, 0xC66, 0xC68, 0xC6A, 0xC92, 0xC93, 0xC94, 0}; -enum asset_e D_803909A4[] = { 0, 0xC67, 0xC69, 0, 0xC95, 0xC96, 0xC97}; -enum asset_e D_803909C0[] = { 0, 0xC6E, 0xC6F, 0, 0xC95, 0xC96, 0xC97}; -enum asset_e D_803909DC[] = {0xC65, 0xC65, 0xC65, 0xC8F, 0, 0, 0}; -enum asset_e BGS_D_803909F8[] = {0xC64, 0, 0, 0xC8E, 0, 0, 0, 0}; -enum asset_e D_80390A18[] = {0xC6D, 0xC70, 0xC71, 0xC8E, 0, 0, 0, 0}; +ActorInfo D_80390960 = { + MARKER_C6_VILE_GAME_CTRL, ACTOR_138_VILE_GAME_CTRL, 0, + 0, NULL, + chvilegame_update, NULL, func_80325340, + 0, 0, 0.0f, 0 +}; + +// Vile Wins +enum asset_e D_80390984[] = { + 0, + ASSET_C66_TEXT_MR_VILE_WINS_ROUND_1, + ASSET_C68_TEXT_MR_VILE_WINS_ROUND_2, + ASSET_C6A_TEXT_MR_VILE_WINS_ROUND_3, + ASSET_C92_TEXT_MR_VILE_WINS_EXTRA_CHALLENGE_2, + ASSET_C93_TEXT_MR_VILE_WINS_EXTRA_CHALLENGE_3, + ASSET_C94_TEXT_MR_VILE_WINS_EXTRA_CHALLENGE_4, + 0 +}; + +// Player Wins +enum asset_e D_803909A4[] = { + 0, + ASSET_C67_TEXT_MR_VILE_ROUND_2_START, + ASSET_C69_TEXT_MR_VILE_ROUND_3_START, + 0, + ASSET_C95_TEXT_MR_VILE_LOSES_EXTRA_CHALLENGE_1, + ASSET_C96_TEXT_MR_VILE_LOSES_EXTRA_CHALLENGE_2, + ASSET_C97_TEXT_MR_VILE_LOSES_EXTRA_CHALLENGE_3 +}; + +// Player Wins Rematch +enum asset_e D_803909C0[] = { + 0, + ASSET_C6E_TEXT_MR_VILE_LOSE_ROUND_2_REMATCH, + ASSET_C6F_TEXT_MR_VILE_LOSE_ROUND_3_REMATCH, + 0, + ASSET_C95_TEXT_MR_VILE_LOSES_EXTRA_CHALLENGE_1, + ASSET_C96_TEXT_MR_VILE_LOSES_EXTRA_CHALLENGE_2, + ASSET_C97_TEXT_MR_VILE_LOSES_EXTRA_CHALLENGE_3 +}; + +// Player Declines +enum asset_e D_803909DC[] = { + ASSET_C65_TEXT_MR_VILE_PLAYER_DECLINES, + ASSET_C65_TEXT_MR_VILE_PLAYER_DECLINES, + ASSET_C65_TEXT_MR_VILE_PLAYER_DECLINES, + ASSET_C8F_TEXT_MR_VILE_PLAYER_DECLINES_EXTRA_CHALLENGE, + 0, + 0, + 0 +}; + +// Round 1 Regular & Extra Challenge +enum asset_e BGS_D_803909F8[] = { + ASSET_C64_TEXT_MR_VILE_ROUND_1_START, + 0, + 0, + ASSET_C8E_TEXT_MR_VILE_WINS_EXTRA_CHALLENGE_1, + 0, + 0, + 0, + 0 +}; + +enum asset_e D_80390A18[] = { + ASSET_C6D_TEXT_MR_VILE_LOSE_ROUND_1_REMATCH, + ASSET_C70_TEXT_MR_VILE_WIN_ROUND_2_REMATCH, + ASSET_C71_TEXT_MR_VILE_WIN_ROUND_3_REMATCH, + ASSET_C8E_TEXT_MR_VILE_WINS_EXTRA_CHALLENGE_1, + 0, + 0, + 0, + 0 +}; /* .code */ bool BGS_func_80389810(f32 arg0[3]) { @@ -611,9 +678,9 @@ void chvilegame_update(Actor *this) { } if (local->type_change_timer > 3.5) { if (local->current_type != 0) { - func_803463D4(ITEM_1D_GRUMBLIE, FALSE); + item_adjustByDiffWithHud(ITEM_1D_GRUMBLIE, FALSE); } else { - func_803463D4(ITEM_1E_YUMBLIE, FALSE); + item_adjustByDiffWithHud(ITEM_1E_YUMBLIE, FALSE); } } } diff --git a/src/MMM/ch/loggo.c b/src/MMM/ch/loggo.c index 3cc7b77e..1cf3e026 100644 --- a/src/MMM/ch/loggo.c +++ b/src/MMM/ch/loggo.c @@ -116,7 +116,7 @@ void chLoggo_update(Actor *this){ this->unk60 -= sp44; } else{ - func_8031F7D4(0, 0); + warp_mmmEnterLoggo(0, 0); } break; } diff --git a/src/SM/ch/attacktutorial.c b/src/SM/ch/attacktutorial.c index 2bd8184c..bf569dc5 100644 --- a/src/SM/ch/attacktutorial.c +++ b/src/SM/ch/attacktutorial.c @@ -206,7 +206,7 @@ void func_80387764(ActorMarker * marker){ func_8028F94C(2, actor->unk1C); } //L80387848 - if(!mapSpecificFlags_get(3) && learnedAllTutorialAbilities() && temp_a2){ + if(!mapSpecificFlags_get(3) && chmole_learnedAllSpiralMountainAbilities() && temp_a2){ mapSpecificFlags_set(3, 1); sp34 = 0xE12; }//L80387898 diff --git a/src/SM/code_2990.c b/src/SM/code_2990.c index e4736e32..60e023d9 100644 --- a/src/SM/code_2990.c +++ b/src/SM/code_2990.c @@ -11,19 +11,19 @@ void timed_exitStaticCamera(f32); void subaddie_set_state_with_direction(Actor *, s32, f32, s32); //static types -typedef struct sm_2900_struct{ - s16 unk0; //text_id - s16 unk2; //text_id - s8 unk4; - s8 unk5; //ability_id -}SM2900Struct; +typedef struct { + s16 learn_text; + s16 refresher_text; + s8 camera_node; + s8 ability; +} ChSmMoleDescription; //public -void func_803899B0(Actor * this); -void SM_func_80389610(Actor * this); +void chsmmole_Update(Actor * this); +void chsmmole_80389610(Actor * this); /* .data */ -ActorAnimationInfo D_8038AF60[6] = { +ActorAnimationInfo smMoleAnimations[6] = { {0, 0.0f}, {ASSET_13A_ANIM_BOTTLES_ENTER, 2000000000.0f}, {ASSET_13A_ANIM_BOTTLES_ENTER, 4.5f}, @@ -32,27 +32,33 @@ ActorAnimationInfo D_8038AF60[6] = { {ASSET_13A_ANIM_BOTTLES_ENTER, 2000000000.0f} }; -ActorInfo D_8038AF90 = { MARKER_B7_TUTORIAL_BOTTLES, ACTOR_12B_TUTORIAL_BOTTLES, ASSET_387_MODEL_BOTTLES, 1, D_8038AF60, //bottles - func_803899B0, func_80326224, func_802D94B4, +ActorInfo chSmMole = { + MARKER_B7_TUTORIAL_BOTTLES, ACTOR_12B_TUTORIAL_BOTTLES, ASSET_387_MODEL_BOTTLES, + 1, smMoleAnimations, + chsmmole_Update, func_80326224, func_802D94B4, 0, 0, 0.0f, 0 }; -SM2900Struct D_8038AFB4[8] = { - {0xdf3, 0xe08, 1, -1}, - {0xdf4, 0xdf5, 3, ABILITY_3_CAMERA_CONTROL}, - {0xdfb, 0xdfe, 5, ABILITY_F_DIVE}, - { -1, 0xe00, 6, ABILITY_B_RATATAT_RAP}, - {0xe04, 0xe06, 8, ABILITY_0_BARGE}, - { -1, 0xdfa, 4, ABILITY_8_FLAP_FLIP}, - {0xe01, 0xe03, 7, ABILITY_5_CLIMB}, - {0xe10, 0xe11, 0x11, -1}, +ChSmMoleDescription smMoleTable[8] = { + {ASSET_DF3_TEXT_BOTTLES_INTRODUCTION, ASSET_E08_TEXT_BOTTLES_FIND_ANOTHER_MOLEHILL, 1, -1}, + {ASSET_DF4_TEXT_BOTTLES_CAMERA_CONTROL_LEARN, ASSET_DF5_TEXT_BOTTLES_CAMERA_CONTROL_REFRESHER, 3, ABILITY_3_CAMERA_CONTROL}, + {ASSET_DFB_TEXT_BOTTLES_DIVE_LEARN, ASSET_DFE_TEXT_BOTTLES_DIVE_REFRESHER, 5, ABILITY_F_DIVE}, + { -1, ASSET_E00_TEXT_BOTTLES_ATTACK_REFRESHER, 6, ABILITY_B_RATATAT_RAP}, + {ASSET_E04_TEXT_BOTTLES_BEAK_BARGE_LEARN, ASSET_E06_TEXT_BOTTLES_BEAK_BARGE_REFRESHER, 8, ABILITY_0_BARGE}, + { -1, ASSET_DFA_TEXT_BOTTLES_JUMP_REFRESHER, 4, ABILITY_8_FLIP}, + {ASSET_E01_TEXT_BOTTLES_CLIMB_LEARN, ASSET_E03_TEXT_BOTTLES_CLIMB_REFRESHER, 7, ABILITY_5_CLIMB}, + {ASSET_E10_TEXT_BOTTLES_BRIDGE_BROKEN, ASSET_E11_TEXT_BOTTLES_BRIDGE_STILL_BROKEN, 0x11, -1}, }; s32 D_8038AFE4 = 0; /* .code */ -int func_80388D80(void){ + +/** + * @brief Checks if any Spiral Mountain abilities have been learned + */ +int chsmmole_learnedAnySpiralMountainAbilities(void){ return ability_isUnlocked(ABILITY_F_DIVE) || ability_isUnlocked(ABILITY_4_CLAW_SWIPE) || ability_isUnlocked(ABILITY_C_ROLL) @@ -64,7 +70,11 @@ int func_80388D80(void){ || ability_isUnlocked(ABILITY_5_CLIMB); } -void func_80388E48(void){ +/** + * @brief Sets all Spiral Mountain abilities to used & disables the noise + * played when the player uses an ability for the first time. + */ +void chsmmole_setSpiralMountainAbilitiesAsUsed(void){ ability_unlock(ABILITY_3_CAMERA_CONTROL); ability_setHasUsed(ABILITY_0_BARGE); ability_setHasUsed(ABILITY_1_BEAK_BOMB); @@ -77,7 +87,10 @@ void func_80388E48(void){ ability_setHasUsed(ABILITY_A_HOLD_A_JUMP_HIGHER); } -void func_80388EB0(void){ +/** + * @brief Unlocks all of the Spiral Mountain moves. + */ +void chsmmole_skipIntroTutorial(void){ ability_unlock(ABILITY_F_DIVE); ability_unlock(ABILITY_4_CLAW_SWIPE); ability_unlock(ABILITY_C_ROLL); @@ -87,16 +100,20 @@ void func_80388EB0(void){ ability_unlock(ABILITY_7_FEATHERY_FLAP); ability_unlock(ABILITY_8_FLAP_FLIP); ability_unlock(ABILITY_5_CLIMB); - func_80388E48(); + chsmmole_setSpiralMountainAbilitiesAsUsed(); mapSpecificFlags_set(3,1); } +/** + * @brief If the player is talking to Intro Bottles for the first time, use the + * camera that points to the lair. Otherwise, use the camera for the ability. + */ +void chsmmole_setSpiralMountainStaticCamera(Actor *this){ -void func_80388F24(Actor *this){ if(this->unkF4_8 == 1 && !mapSpecificFlags_get(1)){ timed_setStaticCameraToNode(0.0f, 0x12); } else{ //L80388F68 - timed_setStaticCameraToNode(0.0f, D_8038AFB4[this->unkF4_8 -1].unk4); + timed_setStaticCameraToNode(0.0f, smMoleTable[this->unkF4_8 -1].camera_node); } } @@ -139,9 +156,9 @@ void func_80388FA0(Actor *this, s32 arg1){ animctrl_setSmoothTransition(this->animctrl, 0); break; case 5: - func_80388F24(this); + chsmmole_setSpiralMountainStaticCamera(this); func_8028F94C(2,this->position); - SM_func_80389610(this); + chsmmole_80389610(this); break; case 3: actor_loopAnimation(this); @@ -158,14 +175,18 @@ void func_80388FA0(Actor *this, s32 arg1){ func_8030DD14(this->unk44_31, 2); func_8030DBB4(this->unk44_31, 1.4f); sfxsource_setSampleRate(this->unk44_31, 0x6590); - func_80388F24(this); + chsmmole_setSpiralMountainStaticCamera(this); func_8028F94C(2, this->position); break; } subaddie_set_state_with_direction(this, arg1, 0.0001f, 1); } -void func_80389214(ActorMarker *marker, enum asset_e text_id, s32 arg2){ +/** + * @brief Performs actions depending on what move is being learned + * + */ +static void __chsmmole_additionalAbilityLearnActions(ActorMarker *marker, enum asset_e text_id, s32 arg2){ Actor *actor = marker_getActor(marker); switch(arg2){ case 3: @@ -181,7 +202,7 @@ void func_80389214(ActorMarker *marker, enum asset_e text_id, s32 arg2){ func_8025A70C(COMUSIC_2B_DING_B); break; case 0xff: - func_80388F24(actor); + chsmmole_setSpiralMountainStaticCamera(actor); break; } } @@ -190,43 +211,45 @@ void func_803892C8(ActorMarker *marker, enum asset_e text_id, s32 arg2){ Actor *actor; actor = marker_getActor(marker); - if(!mapSpecificFlags_get(3) && learnedAllTutorialAbilities()){ + if(!mapSpecificFlags_get(3) && chmole_learnedAllSpiralMountainAbilities()){ mapSpecificFlags_set(3, 1); - func_80311480(0xe12, 0xe, actor->position, actor->marker, func_803892C8, NULL); + func_80311480(ASSET_E12_TEXT_BOTTLES_LEARNED_TUTORIAL_MOVES, 0xe, actor->position, actor->marker, func_803892C8, NULL); }//L8038933C else{ - if( !(text_id == 0xdf3 || text_id == 0xe1f || text_id == 0xe1d) ){ + if(!(text_id == ASSET_DF3_TEXT_BOTTLES_INTRODUCTION + || text_id == ASSET_E1F_TEXT_BOTTLES_TUTORIAL_OFFER + || text_id == ASSET_E1D_TEXT_BOTTLES_TUTORIAL_OFFER_WAIT)){ timed_exitStaticCamera(0.0f); } switch(text_id){ - case 0xd38: + case ASSET_D38_TEXT_BOTTLES_ALL_MOVES_LEARNED: break; - case 0xdf3:/* 2FB8 803893A8 3C188039 */ - func_80311480(0xe1f, 0x8e, actor->position, actor->marker, func_803892C8, func_80389214); + case ASSET_DF3_TEXT_BOTTLES_INTRODUCTION: /* 2FB8 803893A8 3C188039 */ + func_80311480(ASSET_E1F_TEXT_BOTTLES_TUTORIAL_OFFER, 0x8e, actor->position, actor->marker, func_803892C8, __chsmmole_additionalAbilityLearnActions); break; - case 0xe1f:/* 2FEC 803893DC 9209003B */ + case ASSET_E1F_TEXT_BOTTLES_TUTORIAL_OFFER: /* 2FEC 803893DC 9209003B */ actor->unk38_0 = 1; break; - case 0xe1d:/* 2FFC 803893EC 920B0138 */ + case ASSET_E1D_TEXT_BOTTLES_TUTORIAL_OFFER_WAIT: /* 2FFC 803893EC 920B0138 */ actor->unk138_24 = 0; actor->unk60 = 0.0f; break; - case 0xdf6: /* 3014 80389404 0C0A3E46 */ - case 0xdff: /* 3014 80389404 0C0A3E46 */ + case ASSET_DF6_TEXT_BOTTLES_HIGH_JUMP_LEARN: /* 3014 80389404 0C0A3E46 */ + case ASSET_DFF_TEXT_BOTTLES_CLAW_SWIPE_LEARN: /* 3014 80389404 0C0A3E46 */ func_8028F918(0); break; - case 0xe09: - case 0xe12: + case ASSET_E09_TEXT_BOTTLES_SKIPPED_TUTORIAL: + case ASSET_E12_TEXT_BOTTLES_LEARNED_TUTORIAL_MOVES: func_80388FA0(actor,4); break; default: - if(actor->state !=5 ) - func_80311480(0xd38, 4, NULL, NULL, NULL, NULL); + if(actor->state != 5) + func_80311480(ASSET_D38_TEXT_BOTTLES_ALL_MOVES_LEARNED, 4, NULL, NULL, NULL, NULL); func_80388FA0(actor, actor->state == 5 ? 1:4); break; @@ -234,29 +257,31 @@ void func_803892C8(ActorMarker *marker, enum asset_e text_id, s32 arg2){ } } -void func_80389494(Actor * this, s32* arg1, s32 *arg2){ - if(ability_isUnlocked(D_8038AFB4[this->unkF4_8 -1].unk5)){ +void chsmmole_learnAbility(Actor * this, s32* arg1, s32 *arg2){ + // Selects the learn and refresh dialogs. + // Gives the player the ability if not learned. + if(ability_isUnlocked(smMoleTable[this->unkF4_8 -1].ability)){ if(fileProgressFlag_get(FILEPROG_DB_SKIPPED_TUTORIAL)){ - *arg1 = D_8038AFE4 + 0xE0A; //dialog index + *arg1 = D_8038AFE4 + ASSET_E0A_TEXT_BOTTLES_REFUSE_HELP_1; D_8038AFE4++; D_8038AFE4 = MIN(D_8038AFE4, 5); - if(*arg1 != 0xE0E){ + if(*arg1 != ASSET_E0E_TEXT_BOTTLES_REFUSE_HELP_5){ *arg2 |= 1; } }else{//L8038956C *arg2 |= 1; - *arg1 = D_8038AFB4[this->unkF4_8 -1].unk2; - if(*arg1 == 0xdfe && !ability_hasUsed(ABILITY_3_CAMERA_CONTROL)){ - *arg1 = 0xdfd; + *arg1 = smMoleTable[this->unkF4_8 -1].refresher_text; + if(*arg1 == ASSET_DFE_TEXT_BOTTLES_DIVE_REFRESHER && !ability_hasUsed(ABILITY_3_CAMERA_CONTROL)){ + *arg1 = ASSET_DFD_TEXT_BOTTLES_SWIM_LEARN; } } }else{//L803895C0 - *arg1 = D_8038AFB4[this->unkF4_8 -1].unk0; - ability_unlock(D_8038AFB4[this->unkF4_8 -1].unk5); + *arg1 = smMoleTable[this->unkF4_8 -1].learn_text; + ability_unlock(smMoleTable[this->unkF4_8 -1].ability); } } -void SM_func_80389610(Actor * this){ +void chsmmole_80389610(Actor * this){ s32 sp2C; s32 sp28; @@ -272,25 +297,25 @@ void SM_func_80389610(Actor * this){ D_8038AFE4++; D_8038AFE4 = MIN(D_8038AFE4, 5); }else{//L803896C0 - sp2C = D_8038AFB4[this->unkF4_8 -1].unk2; + sp2C = smMoleTable[this->unkF4_8 -1].refresher_text; } } else{//L803896E8 - sp2C = D_8038AFB4[this->unkF4_8 -1].unk0; + sp2C = smMoleTable[this->unkF4_8 -1].learn_text; mapSpecificFlags_set(1,1); } break; case 8://L80389720 if(mapSpecificFlags_get(3)){ if(fileProgressFlag_get(FILEPROG_A6_FURNACE_FUN_COMPLETE)){ - sp2C = 0xe37; + sp2C = ASSET_E37_TEXT_BOTTLES_STOP_WASTING_TIME_AFTER_FURNACE_FUN; sp28 |= 1; }else{//L80389758 if(mapSpecificFlags_get(0xf)){ - sp2C = 0xe0f; + sp2C = ASSET_E0F_TEXT_BOTTLES_STOP_WASTING_TIME_BEFORE_FURNACE_FUN; sp28 |= 1; }else{//L80389780 - func_80388E48(); + chsmmole_setSpiralMountainAbilitiesAsUsed(); sp2C = fileProgressFlag_get(FILEPROG_DB_SKIPPED_TUTORIAL) ? 0xe1e : 0xe13; mapSpecificFlags_set(0xf, 1); } @@ -299,11 +324,11 @@ void SM_func_80389610(Actor * this){ } else{//L803897C8 if(mapSpecificFlags_get(2)){ - sp2C = D_8038AFB4[this->unkF4_8 -1].unk2; + sp2C = smMoleTable[this->unkF4_8 -1].refresher_text; sp28 |= 1; } else{ - sp2C = D_8038AFB4[this->unkF4_8 -1].unk0; + sp2C = smMoleTable[this->unkF4_8 -1].learn_text; mapSpecificFlags_set(2, 1); } @@ -318,7 +343,7 @@ void SM_func_80389610(Actor * this){ mapSpecificFlags_set(4, 1); } else{//L803898E4 - func_80389494(this, &sp2C, &sp28); + chsmmole_learnAbility(this, &sp2C, &sp28); } break; @@ -330,25 +355,28 @@ void SM_func_80389610(Actor * this){ mapSpecificFlags_set(0xE, 1); } else{//L803898E4 - func_80389494(this, &sp2C, &sp28); + chsmmole_learnAbility(this, &sp2C, &sp28); } break; default://L803898F8 - func_80389494(this, &sp2C, &sp28); + chsmmole_learnAbility(this, &sp2C, &sp28); break; }//L80389904 if(sp2C){ - func_80311480(sp2C, sp28, this->position, this->marker, func_803892C8, func_80389214); + func_80311480(sp2C, sp28, this->position, this->marker, func_803892C8, __chsmmole_additionalAbilityLearnActions); } } -void func_80389948(ActorMarker * marker){ +/** + * @brief Spawns a molehill for the actor + */ +void chsmmole_spawnMolehill(ActorMarker * marker){ Actor *actor; Actor *other; s32 pad; actor = marker_getActor(marker); - other = spawn_child_actor(0x12c, &actor); + other = spawn_child_actor(ACTOR_12C_MOLEHILL, &actor); actor->unk100 = other->marker; if(marker); @@ -362,13 +390,16 @@ void func_80389984(Actor * this){ func_8030DA44(tmp); } -void func_803899B0(Actor * this){ - s32 sp50[6]; //face buttons - f32 sp44[3]; //player position +void chsmmole_Update(Actor * this){ + // Sets up the initial functions and state for the actor + s32 sp50[6]; // face buttons + f32 sp44[3]; // player position void *sp40; int sp34; - int sp38; + int user_input; + // Checks the actor's selector value is lower than 0x9 + // Anything higher is a non-Spiral Mountain ability, and should use a different actor id if(this->unkF4_8 >= 9) return; @@ -394,10 +425,10 @@ void func_803899B0(Actor * this){ } } }//L80389AC8 - if(func_80388D80()){ + if(chsmmole_learnedAnySpiralMountainAbilities()){ mapSpecificFlags_set(1,1); - if(learnedAllTutorialAbilities()){ + if(chmole_learnedAllSpiralMountainAbilities()){ mapSpecificFlags_set(3, 1); mapSpecificFlags_set(2, 1); mapSpecificFlags_set(0xC, 1); @@ -407,7 +438,7 @@ void func_803899B0(Actor * this){ }//L80389B20 if(!this->unk16C_4){ - __spawnQueue_add_1((GenFunction_1)func_80389948, reinterpret_cast(s32, this->marker)); + __spawnQueue_add_1((GenFunction_1)chsmmole_spawnMolehill, reinterpret_cast(s32, this->marker)); this->unk16C_4 = 1; }//L80389B4C @@ -443,7 +474,7 @@ void func_803899B0(Actor * this){ || func_8028EC04() ) break; - sp34 = !((!(D_8038AFB4[this->unkF4_8-1].unk5 + 1)) || (!ability_isUnlocked( D_8038AFB4[this->unkF4_8-1].unk5))); + sp34 = !((!(smMoleTable[this->unkF4_8-1].ability + 1)) || (!ability_isUnlocked( smMoleTable[this->unkF4_8-1].ability))); if( (!sp34 && this->unkF4_8 != 1) || fileProgressFlag_get(FILEPROG_DB_SKIPPED_TUTORIAL) == 0 || D_8038AFE4 < 6 @@ -476,7 +507,7 @@ void func_803899B0(Actor * this){ }//L80389EA0 if(actor_animationIsAt(this, 0.9999f)){ if(!mapSpecificFlags_get(1)){ - SM_func_80389610(this); + chsmmole_80389610(this); } func_80388FA0(this, 3); }//L80389EE0 @@ -489,7 +520,7 @@ void func_803899B0(Actor * this){ }else if(actor_animationIsAt(this, 0.35f)){//L80389F78 if(mapSpecificFlags_get(1)){ - SM_func_80389610(this); + chsmmole_80389610(this); } } break; @@ -524,21 +555,21 @@ void func_803899B0(Actor * this){ mapSpecificFlags_set(5,0); func_80388FA0(this, 4); }//L8038A1B8 - sp38 = -1; + user_input = -1; if(this->unk38_0){ this->unk60 += time_getDelta(); if(func_803114C4() != 0xe1d){ if(sp50[FACE_BUTTON(BUTTON_A)] == 1) - sp38 = 1; //A button pressed + user_input = 1; //A button pressed else if(sp50[FACE_BUTTON(BUTTON_B)] == 1) - sp38 = 0; //B button pressed + user_input = 0; //B button pressed }//L8038A218 - if( sp38 != -1){ //button was pressed - fileProgressFlag_set(FILEPROG_DB_SKIPPED_TUTORIAL, (sp38)?0:1); - func_80311480((sp38)? 0xe07 : 0xe09, 0xe, this->position, this->marker, func_803892C8, func_80389214); - if(!sp38){ - func_80388EB0(); //give all SM moves + if( user_input != -1){ //button was pressed + fileProgressFlag_set(FILEPROG_DB_SKIPPED_TUTORIAL, (user_input)?0:1); + func_80311480((user_input)? 0xe07 : 0xe09, 0xe, this->position, this->marker, func_803892C8, __chsmmole_additionalAbilityLearnActions); + if(!user_input){ + chsmmole_skipIntroTutorial(); //give all SM moves } this->unk38_0 = 0; }else if(!this->unk138_24 && 5.0 < this->unk60){ diff --git a/src/SM/code_4070.c b/src/SM/code_4070.c index 0bdf354d..d3a1cdb5 100644 --- a/src/SM/code_4070.c +++ b/src/SM/code_4070.c @@ -112,7 +112,7 @@ void SM_func_8038A5D8(Actor *this){ func_8038A460(this); func_8028F94C(2, this->unk1C); - if(!mapSpecificFlags_get(3) && learnedAllTutorialAbilities()){ + if(!mapSpecificFlags_get(3) && chmole_learnedAllSpiralMountainAbilities()){ mapSpecificFlags_set(3,1); temp_a0 = 0xe12; }else{ diff --git a/src/SM/code_F0.c b/src/SM/code_F0.c index c1d140b5..10be99bb 100644 --- a/src/SM/code_F0.c +++ b/src/SM/code_F0.c @@ -17,7 +17,7 @@ extern ActorInfo D_8038AD58; //ch cauliflower A extern ActorInfo D_8038AC9C; //chCarrot FreeRange? extern ActorInfo D_8038AD0C; //ch onion B extern ActorInfo D_8038AD7C; //ch cauliflower B -extern ActorInfo D_8038AF90; //D_8038AF90 bottles +extern ActorInfo chSmMole; //chSmMole bottles extern ActorInfo D_8038B0B0; //chJumpTutorial code_4070 extern ActorInfo D_8038B0E0; extern ActorInfo D_8038B008; //chBanjosBed @@ -148,7 +148,7 @@ void SM_func_80386810(void) spawnableActorList_add(&D_8038AC9C, actor_new, 0X2000121); spawnableActorList_add(&D_8038AD0C, actor_new, 0X2000121); spawnableActorList_add(&D_8038AD7C, actor_new, 0X2200121); - spawnableActorList_add(&D_8038AF90, actor_new, 0X100); + spawnableActorList_add(&chSmMole, actor_new, 0X100); spawnableActorList_add(&D_8038B0B0, actor_new, 0); spawnableActorList_add(&D_8038B0E0, actor_new, 0); spawnableActorList_add(&D_8038B008, actor_new, 0X6C8); diff --git a/src/TTC/code_3E30.c b/src/TTC/code_3E30.c index 190015ef..9c184e86 100644 --- a/src/TTC/code_3E30.c +++ b/src/TTC/code_3E30.c @@ -328,15 +328,15 @@ void func_8038AC48(LetterFloorTile *arg0) { default: break; case 0: - func_80346448(ITEM_D_EGGS); + item_setMaxCount(ITEM_D_EGGS); func_802FAFAC(ITEM_D_EGGS, COMUSIC_C_EGG_COLLECTED); break; case 1: - func_80346448(ITEM_F_RED_FEATHER); + item_setMaxCount(ITEM_F_RED_FEATHER); func_802FAFAC(ITEM_F_RED_FEATHER, COMUSIC_B_RED_FEATHER_COLLECTED); break; case 2: - func_80346448(ITEM_10_GOLD_FEATHER); + item_setMaxCount(ITEM_10_GOLD_FEATHER); func_802FAFAC(ITEM_10_GOLD_FEATHER, COMUSIC_14_GOLD_FEATHER_COLLECTED); break; } @@ -634,7 +634,7 @@ s32 __sandcastleCodes_getNumberEntered(void){ void func_8038B79C(s32 arg0, s32 arg1, s32 arg2, enum item_e item_id, s32 item_diff, s32 item_val) { if (((arg2 + 0x14) == secretCodesTable[arg1].id) || (arg0 == 1)) { if (item_diff != 0) { - func_803463D4(item_id, item_diff); + item_adjustByDiffWithHud(item_id, item_diff); return; } item_set(item_id, item_val); diff --git a/src/core1/code_CE60.c b/src/core1/code_CE60.c index 24ed23a4..10991d14 100644 --- a/src/core1/code_CE60.c +++ b/src/core1/code_CE60.c @@ -266,7 +266,7 @@ void func_8024AF48(void){ func_8024A880(0x9000); } else{ - if(learnedAllTutorialAbilities()) + if(chmole_learnedAllSpiralMountainAbilities()) func_8024A9EC(0); func_8024A880(0x6fff); } diff --git a/src/core2/ba/marker.c b/src/core2/ba/marker.c index 09713450..911100db 100644 --- a/src/core2/ba/marker.c +++ b/src/core2/ba/marker.c @@ -175,7 +175,7 @@ void __baMarker_resolveMusicNoteCollision(Prop *arg0) { if (!func_802FADD4(ITEM_1B_VILE_VILE_SCORE)) { item_inc(ITEM_C_NOTE); } else { - func_803463F4(ITEM_C_NOTE, 1); + item_adjustByDiffWithoutHud(ITEM_C_NOTE, 1); } if (item_getCount(ITEM_C_NOTE) < 100) { func_8025A6EC(COMUSIC_9_NOTE_COLLECTED, 16000); @@ -532,7 +532,7 @@ void __baMarker_resolveCollision(Prop *other_prop){ || (func_8028B2E8() && !(3600.0f < ml_distanceSquared_vec3f(actor->position, spA0))) ){ jiggyscore_setCollected(jiggy_id, TRUE); - func_803463F4(ITEM_26_JIGGY_TOTAL, 1); + item_adjustByDiffWithoutHud(ITEM_26_JIGGY_TOTAL, 1); if(jiggy_id == JIGGY_20_BGS_ELEVATED_WALKWAY || jiggy_id == JIGGY_25_BGS_MAZE){ func_802D6924(); } @@ -687,7 +687,7 @@ void __baMarker_resolveCollision(Prop *other_prop){ case MARKER_6B_GLOOPBUBBLE: //L8028CD20 if(func_8028EE84() == BSWATERGROUP_2_UNDERWATER){ - func_803463D4(ITEM_17_AIR, fxairscore_count_to_time(2)); + item_adjustByDiffWithHud(ITEM_17_AIR, fxairscore_count_to_time(2)); } break; @@ -1032,10 +1032,10 @@ void baMarker_8028D7B8(s32 arg0, ActorMarker *arg1, struct5Cs *collision_flags){ if(sp20){ if(func_8033D594(collision_flags) == 3){ - func_803463D4(ITEM_14_HEALTH, -item_getCount(ITEM_14_HEALTH)); + item_adjustByDiffWithHud(ITEM_14_HEALTH, -item_getCount(ITEM_14_HEALTH)); } else{//L8028D92C - func_803463D4(ITEM_14_HEALTH, -sp20); + item_adjustByDiffWithHud(ITEM_14_HEALTH, -sp20); } }//L8028D948 diff --git a/src/core2/bs/splat.c b/src/core2/bs/splat.c index f01eeb6c..a87c28e6 100644 --- a/src/core2/bs/splat.c +++ b/src/core2/bs/splat.c @@ -25,7 +25,7 @@ void bssplat_init(void){ baanim_playForDuration_onceSmooth(ASSET_149_ANIM_BSSPLAT, 1.1f); func_8029C7F4(1,1,3, BA_PHYSICS_LOCKED_ROTATION); bafalldamage_get_damage(&sp1C); - func_803463D4(ITEM_14_HEALTH, -sp1C); + item_adjustByDiffWithHud(ITEM_14_HEALTH, -sp1C); if(func_8029CEB0() == 4){ FUNC_8030E624(SFX_116_DEAF_RUSTLING, 0.7f, 32000); FUNC_8030E624(SFX_116_DEAF_RUSTLING, 0.8f, 32000); diff --git a/src/core2/ch/collectible.c b/src/core2/ch/collectible.c index 30018158..c1ed1c85 100644 --- a/src/core2/ch/collectible.c +++ b/src/core2/ch/collectible.c @@ -82,7 +82,7 @@ bool chCollectible_collectItem(Actor* actor, enum file_progress_e arg1, enum ass if(!func_802FADD4(0x1b)){ item_inc(itemId); } else { - func_803463F4(itemId,1); + item_adjustByDiffWithoutHud(itemId,1); } if(!actor || !actor->unk38_0) diff --git a/src/core2/ch/gameSelect.c b/src/core2/ch/gameSelect.c index a5ff80bd..aacf2606 100644 --- a/src/core2/ch/gameSelect.c +++ b/src/core2/ch/gameSelect.c @@ -21,8 +21,8 @@ void func_802C5740(Actor *this); extern void func_802C71F0(Actor *); extern void func_802C74F4(Actor *, s32, f32 ); -extern void func_8031FB14(s32, s32); -extern void func_8031F678(s32, s32); +extern void warp_lairEnterLairFromSMLevel(s32, s32); +extern void warp_smExitBanjosHouse(s32, s32); extern void func_80335110(s32); extern void func_8024E60C(s32, s32[3]); @@ -413,11 +413,11 @@ void func_802C4C14(Actor *this){ sp44 = 0.0f; if(this->state == 4 && (sp84 == 0 || sp84 == 1)) sp44 = 0.25f; - if(learnedAllTutorialAbilities() && fileProgressFlag_get(FILEPROG_BD_ENTER_LAIR_CUTSCENE)){ - timedFunc_set_2(sp44, (GenFunction_2)func_8031FB14, 0, 0); + if(chmole_learnedAllSpiralMountainAbilities() && fileProgressFlag_get(FILEPROG_BD_ENTER_LAIR_CUTSCENE)){ + timedFunc_set_2(sp44, (GenFunction_2)warp_lairEnterLairFromSMLevel, 0, 0); } else{//L802C5188 - timedFunc_set_2(sp44, (GenFunction_2)func_8031F678, 0, 0); + timedFunc_set_2(sp44, (GenFunction_2)warp_smExitBanjosHouse, 0, 0); }//L802C51A0 timedFunc_set_1(sp44, (GenFunction_1)func_80335110, 1); }//L802C51B8 diff --git a/src/core2/ch/jinjo.c b/src/core2/ch/jinjo.c index cf29848b..5eff07f3 100644 --- a/src/core2/ch/jinjo.c +++ b/src/core2/ch/jinjo.c @@ -51,7 +51,7 @@ void __chJinjo_802CDBA8(ActorMarker *this, ActorMarker *other){ fileProgressFlag_set(FILEPROG_E_JINJO_TEXT, 1); } subaddie_set_state_with_direction(actorPtr, 6, 0.0f , -1); - if(func_803463D4(ITEM_12_JINJOS, 1 << (this->unk14_20 + 6) ) == 0x1f) + if(item_adjustByDiffWithHud(ITEM_12_JINJOS, 1 << (this->unk14_20 + 6) ) == 0x1f) localPtr->unk4 = 1; actor_loopAnimation(actorPtr); this->collidable = 0; diff --git a/src/core2/ch/mole.c b/src/core2/ch/mole.c index 70b12eab..6cd45194 100644 --- a/src/core2/ch/mole.c +++ b/src/core2/ch/mole.c @@ -2,19 +2,19 @@ #include "functions.h" #include "variables.h" -void func_802D9D60(Actor *this); +void chmole_update(Actor *this); Actor *func_802D94B4(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx); -void func_802D9830(ActorMarker *marker, enum asset_e arg1, s32 arg2); +void chmole_additionalAbilityLearnActions(ActorMarker *marker, enum asset_e arg1, s32 arg2); typedef struct{ s16 learn_text; s16 refresher_text; s8 camera_node; s8 ability; -} struct_core2_52290; +} ChMoleDescription; /* .data */ -ActorAnimationInfo D_80367D70[]= { +ActorAnimationInfo moleAnimations[]= { {0, 0.0f}, {ASSET_13A_ANIM_BOTTLES_ENTER, 2000000000.0f}, {ASSET_13A_ANIM_BOTTLES_ENTER, 4.5f}, @@ -23,14 +23,15 @@ ActorAnimationInfo D_80367D70[]= { {ASSET_13A_ANIM_BOTTLES_ENTER, 2000000000.0f}, }; -ActorInfo D_80367DA0= { +ActorInfo gChMole = { 0x1DF, ACTOR_37A_BOTTLES, ASSET_387_MODEL_BOTTLES, - 1, D_80367D70, - func_802D9D60, func_80326224, func_802D94B4, + 1, moleAnimations, + chmole_update, func_80326224, func_802D94B4, 0, 0, 0.0f, 0 }; -struct_core2_52290 D_80367DC4[] = { +// D_80367DC4 +ChMoleDescription moleTable[] = { {ASSET_C23_DIALOG_BEAKBOMB_LEARN, ASSET_C24_DIALOG_BEAKBOMB_REFRESHER, 0x0F, ABILITY_1_BEAK_BOMB}, {ASSET_B47_DIALOG_EGGS_LEARN, ASSET_B4B_DIALOG_EGGS_REFRESHER, 0x16, ABILITY_6_EGGS}, {ASSET_B48_DIALOG_BEAKBUSTER_LEARN, ASSET_B4C_DIALOG_BEAKBUSTER_REFRESHER, 0x17, ABILITY_2_BEAK_BUSTER}, @@ -44,7 +45,9 @@ struct_core2_52290 D_80367DC4[] = { }; /* .code */ -int func_802D9220(enum level_e level){ +// func_802D9220 +int chmole_learnedAllLevelAbilities(enum level_e level){ + // Checks if all of the level's abilities are learned. switch (level){ case LEVEL_1_MUMBOS_MOUNTAIN: return ability_isUnlocked(ABILITY_6_EGGS) @@ -66,30 +69,34 @@ int func_802D9220(enum level_e level){ } } -enum asset_e func_802D9304(void){ +// func_802D9304 +enum asset_e chmole_learnedAllLevelAbilitiesDialog(void){ + // If the player has learned all game abilities, use "learned all abilities" dialog + // If the player learned all level abilities, use "learned world abilities" dialog s32 level_id = level_get(); - int learned_all_moves = func_802D9220(level_id); + int learned_all_moves = chmole_learnedAllLevelAbilities(level_id); switch(level_id){ case LEVEL_1_MUMBOS_MOUNTAIN: - return learned_all_moves ? 0xb4e : 0xd38; + return learned_all_moves ? ASSET_B4E_TEXT_BOTTLES_ALL_MM_MOVES_LEARNED : ASSET_D38_TEXT_BOTTLES_ALL_MOVES_LEARNED; case LEVEL_2_TREASURE_TROVE_COVE: - return learned_all_moves ? 0xa27 : 0xd38; + return learned_all_moves ? ASSET_A27_TEXT_BOTTLES_ALL_TTC_MOVES_LEARNED : ASSET_D38_TEXT_BOTTLES_ALL_MOVES_LEARNED; case LEVEL_3_CLANKERS_CAVERN: - return learned_all_moves ? 0xd37 : 0xd38; + return learned_all_moves ? ASSET_D37_TEXT_BOTTLES_ALL_CC_MOVES_LEARNED : ASSET_D38_TEXT_BOTTLES_ALL_MOVES_LEARNED; case LEVEL_4_BUBBLEGLOOP_SWAMP: - return learned_all_moves ? 0xc8a : 0xd38; + return learned_all_moves ? ASSET_C8A_TEXT_BOTTLES_ALL_BGS_MOVES_LEARNED : ASSET_D38_TEXT_BOTTLES_ALL_MOVES_LEARNED; case LEVEL_5_FREEZEEZY_PEAK: - return learned_all_moves ? 0xc2a : 0xd38; + return learned_all_moves ? ASSET_C2A_TEXT_BOTTLES_ALL_FP_GV_MOVES_LEARNED : ASSET_D38_TEXT_BOTTLES_ALL_MOVES_LEARNED; case LEVEL_7_GOBIS_VALLEY: - return learned_all_moves ? 0xc2a : 0xd38; + return learned_all_moves ? ASSET_C2A_TEXT_BOTTLES_ALL_FP_GV_MOVES_LEARNED : ASSET_D38_TEXT_BOTTLES_ALL_MOVES_LEARNED; default: - return 0xd38; + return ASSET_D38_TEXT_BOTTLES_ALL_MOVES_LEARNED; } } - -int func_802D93EC(void){ +// func_802D93EC +int chmole_learnedAllGameAbilities(void){ + // Checks if the player has learned all non-Spiral Mountain abilities. return ability_isUnlocked(ABILITY_6_EGGS) && ability_isUnlocked(ABILITY_2_BEAK_BUSTER) && ability_isUnlocked(ABILITY_10_TALON_TROT) @@ -135,20 +142,25 @@ void func_802D9600(Actor * this){ this->marker->propPtr->unk8_3 = 0; } -void func_802D9658(Actor *this){ - timed_setStaticCameraToNode(0.0f, D_80367DC4[this->unkF4_8-9].camera_node); +// func_802D9658 +void chmole_setStaticCamera(Actor *this){ + // Sets the camera to a static camera + timed_setStaticCameraToNode(0.0f, moleTable[this->unkF4_8-9].camera_node); } -void func_802D9698(ActorMarker *marker, enum asset_e arg1, s32 arg2){ +// func_802D9698 +void chmole_healthRefill(ActorMarker *marker, enum asset_e arg1, s32 arg2){ + // Refills the player's health upon learning a new ability, if needed + // Also releases the camera Actor *actor = marker_getActor(marker); - if( arg1 == D_80367DC4[actor->unkF4_8-9].learn_text + if( arg1 == moleTable[actor->unkF4_8-9].learn_text && item_getCount(ITEM_14_HEALTH) < item_getCount(ITEM_15_HEALTH_TOTAL) ){ - func_80311480(ASSET_D39_TEXT_BOTTLES_REFILL_HEALTH, 7, 0, actor->marker, func_802D9698, func_802D9830); + func_80311480(ASSET_D39_TEXT_BOTTLES_REFILL_HEALTH, 7, 0, actor->marker, chmole_healthRefill, chmole_additionalAbilityLearnActions); }//L802D9738 - else if(arg1 == D_80367DC4[actor->unkF4_8-9].learn_text || arg1 == ASSET_D39_TEXT_BOTTLES_REFILL_HEALTH){ - func_80311480(func_802D93EC()? 0xa87 : func_802D9304(), 7, 0, actor->marker, func_802D9698, NULL); + else if(arg1 == moleTable[actor->unkF4_8-9].learn_text || arg1 == ASSET_D39_TEXT_BOTTLES_REFILL_HEALTH){ + func_80311480(chmole_learnedAllGameAbilities()? 0xa87 : chmole_learnedAllLevelAbilitiesDialog(), 7, 0, actor->marker, chmole_healthRefill, NULL); } else{//L802D97BC if(actor->unk138_24){ @@ -166,56 +178,61 @@ void func_802D9698(ActorMarker *marker, enum asset_e arg1, s32 arg2){ }//L802D9820 } -void func_802D9830(ActorMarker *marker, enum asset_e arg1, s32 arg2){ +// func_802D9830 +void chmole_additionalAbilityLearnActions(ActorMarker *marker, enum asset_e arg1, s32 arg2){ + // Performs actions depending on what move is being learned Actor *actor = marker_getActor(marker); switch(arg2){ - case 1: + case 1: // Stilt Stride timed_setStaticCameraToNode(0.0f, 0x11); levelSpecificFlags_set(0x1A, 1); break; case 2: levelSpecificFlags_set(0x1A, 0); - func_802D9658(actor); + chmole_setStaticCamera(actor); break; - case 3: + case 3: // Turbo Talon Trainer timed_setStaticCameraToNode(0.0f, 0x29); levelSpecificFlags_set(0x1A, 1); break; case 4: levelSpecificFlags_set(0x1A, 0); - func_802D9658(actor); + chmole_setStaticCamera(actor); break; - case 5: - func_803463D4(ITEM_D_EGGS, 50); + case 5: // Egg Firing + item_adjustByDiffWithHud(ITEM_D_EGGS, 50); break; - case 6: - func_803463D4(ITEM_F_RED_FEATHER, 25); + case 6: // Flight + item_adjustByDiffWithHud(ITEM_F_RED_FEATHER, 25); break; - case 7: - func_803463D4(ITEM_10_GOLD_FEATHER, 5); + case 7: // Wonderwing + item_adjustByDiffWithHud(ITEM_10_GOLD_FEATHER, 5); break; - case 8: + case 8: // Refill Health item_set(ITEM_14_HEALTH, item_getCount(ITEM_15_HEALTH_TOTAL)); break; case 0xff: - func_802D9658(actor); + chmole_setStaticCamera(actor); break; } } -int func_802D997C(Actor *this){ +// func_802D997C +int chmole_learnAbility(Actor *this){ s32 sp2C; s32 sp28 = 0xe; - if(ability_isUnlocked(D_80367DC4[this->unkF4_8-9].ability)){ + // Known Ability: Refresher Dialog + if(ability_isUnlocked(moleTable[this->unkF4_8-9].ability)){ sp28 = 0xf; - sp2C = D_80367DC4[this->unkF4_8-9].refresher_text; + sp2C = moleTable[this->unkF4_8-9].refresher_text; }//L802D99EC + // New Ability: Learn Dialog & Misc Actions else{ func_80347A14(0); this->unk138_24 = 1; - sp2C = D_80367DC4[this->unkF4_8-9].learn_text; - ability_unlock(D_80367DC4[this->unkF4_8-9].ability); - switch(D_80367DC4[this->unkF4_8-9].ability){ + sp2C = moleTable[this->unkF4_8-9].learn_text; + ability_unlock(moleTable[this->unkF4_8-9].ability); + switch(moleTable[this->unkF4_8-9].ability){ case ABILITY_9_FLIGHT: case ABILITY_D_SHOCK_JUMP: func_8030E6A4(SFX_113_PAD_APPEARS, 0.9f, 32000); @@ -225,7 +242,7 @@ int func_802D997C(Actor *this){ break; } }//L802D9A9C - func_80311480(sp2C, sp28, this->position, this->marker, func_802D9698, func_802D9830); + func_80311480(sp2C, sp28, this->position, this->marker, chmole_healthRefill, chmole_additionalAbilityLearnActions); return TRUE; } @@ -243,23 +260,29 @@ void func_802D9ADC(Actor *this){ func_8030DD14(this->unk44_31, 2); func_8030DBB4(this->unk44_31, 1.4f); sfxsource_setSampleRate(this->unk44_31, 26000); - func_802D9658(this); + chmole_setStaticCamera(this); func_8028F94C(2, this->position); } -void func_802D9BD8(Actor *this){ +// func_802D9BD8 +void chmole_Refresher(Actor *this){ + // Plays the scene where Bottles gives the player a refresher on the ability. subaddie_set_state(this, 5); - func_802D9658(this); + chmole_setStaticCamera(this); func_8028F94C(2, this->position); - func_802D997C(this); + chmole_learnAbility(this); } -void func_802D9C1C(Actor *this){ +// func_802D9C1C +void chmole_setFacingDirection(Actor *this){ + // Sets the actor to always be facing the player subaddie_set_state_with_direction(this, 3, 0.0001f, 1); actor_loopAnimation(this); } -void func_802D9C54(ActorMarker *marker){ +// func_802D9C54 +void chmole_spawnMolehill(ActorMarker *marker){ + // Spawns a molehill for the actor Actor *actor = marker_getActor(marker); Actor *other = spawn_child_actor(ACTOR_12C_MOLEHILL, &actor); f32 pad[1]; @@ -275,9 +298,12 @@ void func_802D9C90(Actor *this){ } } -void func_802D9CBC(Actor *this){ - if(ability_isUnlocked(D_80367DC4[this->unkF4_8 - 9].ability)){ - func_802D9BD8(this); +// func_802D9CBC +void chmole_startingDialog(Actor *this){ + // If the player knows the ability, use refresher function + // Otherwise, set player's position and spawn mole + if(ability_isUnlocked(moleTable[this->unkF4_8 - 9].ability)){ + chmole_Refresher(this); } else{ if(func_80329530(this, 150)){ @@ -290,7 +316,9 @@ void func_802D9CBC(Actor *this){ } } -void func_802D9D60(Actor *this){ +// func_802D9D60 +void chmole_update(Actor *this){ + // Sets up the initial functions and state for the actor s32 sp50[6]; f32 sp4C; f32 pad44[1]; @@ -298,6 +326,8 @@ void func_802D9D60(Actor *this){ NodeProp *node_prop; f32 sp34[3]; + // Checks the actor's selector value is between 0x8 and 0x13 + // Anything lower is a Spiral Mountain ability, and should use a different actor id if(this->unkF4_8 < 8 || this->unkF4_8 >= 0x13) return; @@ -317,6 +347,8 @@ void func_802D9D60(Actor *this){ }//L802D9E34 if(!this->initialized){ + // Checks if player is within radius of a specific actor exists within the same cube + // If actor exists and player is within radius, force trigger conversation node_prop = func_80304C38(0x372, this); if(node_prop == NULL){ this->unk38_0 = FALSE; @@ -325,7 +357,8 @@ void func_802D9D60(Actor *this){ this->unk38_0 = TRUE; nodeprop_getPosition(node_prop, this->unk1C); } - __spawnQueue_add_1((GenFunction_1)func_802D9C54, reinterpret_cast(s32, this->marker)); + // Spawns molehill + __spawnQueue_add_1((GenFunction_1)chmole_spawnMolehill, reinterpret_cast(s32, this->marker)); this->marker->propPtr->unk8_3 = FALSE; this->marker->collidable = FALSE; this->initialized = TRUE; @@ -343,19 +376,19 @@ void func_802D9D60(Actor *this){ } } }//L802D9F34 - func_8024E55C(0, sp50);//get face buttons press counters + func_8024E55C(0, sp50); // get face buttons press counters switch(this->state){ case 1://L802D9F70 this->yaw_ideal = func_80329784(this); func_80328FB0(this, 4.0f); if(func_8028F20C() && func_8028F0D4() && !func_8028EC04()){ if( this->unkF4_8 == 0x12 - && !ability_isUnlocked(D_80367DC4[this->unkF4_8-9].ability) + && !ability_isUnlocked(moleTable[this->unkF4_8-9].ability) && (func_8028ECAC() == 0 || func_8028ECAC() == BSGROUP_8_TROT) ){ player_getPosition(sp34); if(ml_distance_vec3f(sp34, this->velocity) < this->unk28){ - func_802D9CBC(this); + chmole_startingDialog(this); } } else{//L802DA054 @@ -364,7 +397,7 @@ void func_802D9D60(Actor *this){ && func_8028EFC8() && sp50[FACE_BUTTON(BUTTON_B)] == 1 ){ - func_802D9CBC(this); + chmole_startingDialog(this); } } } @@ -379,7 +412,7 @@ void func_802D9D60(Actor *this){ func_8030E2C4(this->unk44_31); }//L802DA128 if(actor_animationIsAt(this, 0.9999f)){ - func_802D9C1C(this); + chmole_setFacingDirection(this); func_8030DA44(this->unk44_31); this->unk44_31 = 0; } @@ -393,7 +426,7 @@ void func_802D9D60(Actor *this){ FUNC_8030E8B4(SFX_C5_TWINKLY_POP, 1.0f, 32000, this->position, 1250, 2500); } else if(actor_animationIsAt(this, 0.35f)){//L802DA1EC - func_802D997C(this); + chmole_learnAbility(this); } break; case 3://L802DA210 @@ -440,7 +473,8 @@ void func_802D9D60(Actor *this){ }//L802DA488 } -int learnedAllTutorialAbilities(void){ +int chmole_learnedAllSpiralMountainAbilities(void){ + // Checks if the player has learned all of the Spiral Mountain abilities. return ability_isUnlocked(ABILITY_F_DIVE) && ability_isUnlocked(ABILITY_4_CLAW_SWIPE) && ability_isUnlocked(ABILITY_C_ROLL) diff --git a/src/core2/code_3EAD0.c b/src/core2/code_3EAD0.c index 8a21ddb4..a58db43b 100644 --- a/src/core2/code_3EAD0.c +++ b/src/core2/code_3EAD0.c @@ -14,11 +14,23 @@ s32 D_80365F30[] = { 3, 4, 5, 6, 7, 7, 8, 8 }; -ActorInfo D_80365F60 = { 0x58, 0x4E, 0x7DE, 0, NULL, func_802C5A60, func_80326224, func_80325934, 0, 0, 0.0f, 0}; -ActorInfo D_80365F84 = { 0x59, 0x4F, 0x7DE, 0, NULL, func_802C5A60, func_80326224, func_80325934, 0, 0, 0.0f, 0}; +ActorInfo D_80365F60 = { + 0x58, 0x4E, ASSET_7DE_SPRITE_SHOE_SPARKLES, + 0, NULL, + func_802C5A60, func_80326224, func_80325934, + 0, 0, 0.0f, 0 +}; + +ActorInfo D_80365F84 = { + 0x59, 0x4F, ASSET_7DE_SPRITE_SHOE_SPARKLES, + 0, NULL, + func_802C5A60, func_80326224, func_80325934, + 0, 0, 0.0f, 0 +}; /* .code */ void func_802C5A60(Actor *this){ + // Spawns a sparkle sprite when touching turbo trainers or wading boots ActorLocal_Core2_3EAD0 *local = (ActorLocal_Core2_3EAD0*)&this->local; if(!this->initialized){ switch(this->marker->unk14_20){ diff --git a/src/core2/code_4A6F0.c b/src/core2/code_4A6F0.c index 3d4d331e..53706313 100644 --- a/src/core2/code_4A6F0.c +++ b/src/core2/code_4A6F0.c @@ -163,7 +163,7 @@ static void __chMumbo_textCallback(ActorMarker *caller, enum asset_e text_id, s3 this->unk138_24 = FALSE; if(this->unk38_31 != 0){ func_8025A6EC(COMUSIC_2B_DING_B, 28000); - func_803463D4(ITEM_1C_MUMBO_TOKEN, -this->unk38_31); + item_adjustByDiffWithHud(ITEM_1C_MUMBO_TOKEN, -this->unk38_31); this->unk38_31 = 0; } subaddie_set_state_with_direction(this, 5, 0.0f, 1); @@ -176,7 +176,7 @@ static void __chMumbo_textCallback(ActorMarker *caller, enum asset_e text_id, s3 this->unk10_12 = 1; if(this->unk38_31){ func_8025A6EC(COMUSIC_2B_DING_B, 28000); - func_803463D4(ITEM_1C_MUMBO_TOKEN, -this->unk38_31); + item_adjustByDiffWithHud(ITEM_1C_MUMBO_TOKEN, -this->unk38_31); } case ASSET_DAE_DIALOG_MUMBO_TREX_START: //L802D1B48 @@ -224,7 +224,7 @@ void chMumbo_update(Actor *this) { if( !func_803203FC(1) && !func_803203FC(UNKFLAGS1_1F_IN_CHARACTER_PARADE) && map_get() != MAP_7A_GL_CRYPT) { - func_803463D4(ITEM_1C_MUMBO_TOKEN, 0); + item_adjustByDiffWithHud(ITEM_1C_MUMBO_TOKEN, 0); } if(!this->initialized){ this->initialized = TRUE; @@ -351,7 +351,7 @@ void chMumbo_update(Actor *this) { } else { if (this->unk38_31) { func_8025A6EC(SFX_2B_BULL_MOO_1, 28000); - func_803463D4(ITEM_1C_MUMBO_TOKEN, -this->unk38_31); + item_adjustByDiffWithHud(ITEM_1C_MUMBO_TOKEN, -this->unk38_31); } subaddie_set_state(this, 5); } diff --git a/src/core2/code_6B30.c b/src/core2/code_6B30.c index 1a4e242a..9a7c6e2e 100644 --- a/src/core2/code_6B30.c +++ b/src/core2/code_6B30.c @@ -165,5 +165,5 @@ void func_8028DF48(enum actor_e actor_id){ } void func_8028DFB8(enum actor_e actor_id){ - func_803463D4(carriedobj_actorId2ItemId(actor_id), 0); + item_adjustByDiffWithHud(carriedobj_actorId2ItemId(actor_id), 0); } diff --git a/src/core2/code_956B0.c b/src/core2/code_956B0.c index 2a6d1924..301dbdde 100644 --- a/src/core2/code_956B0.c +++ b/src/core2/code_956B0.c @@ -17,10 +17,10 @@ extern void func_8031CD44(s32, s32, f32, f32, s32); extern void func_80256E24(f32 *, f32, f32, f32, f32, f32); extern void mapSpecificFlags_set(s32, s32); -bool func_8031C688(void); -bool func_8031C6E4(void); -bool func_8031C640(void); -bool func_8031C7C8(void); +bool cutscene_skipEnterLairCutsceneCheck(void); +bool cutscene_skipGameOverCutsceneCheck(void); +bool cutscene_skipIntroCutsceneCheck(void); +bool cutscene_skipBeachCutsceneCheck(void); extern void func_802DC560(s32, s32); @@ -33,15 +33,16 @@ enum actor_e D_8036DDD0[] = {0, 0x184, 0x185, 0x186, -1}; u8 D_80383190; /* .code */ -bool func_8031C640(void) { +// func_8031C640 +bool cutscene_skipIntroCutsceneCheck(void) { if ((func_8024E698(0) == 1) && (gameFile_anyNonEmpty() != 0)) { return TRUE; } return FALSE; } - -bool func_8031C688(void) { +// func_8031C688 +bool cutscene_skipEnterLairCutsceneCheck(void) { if ((func_8024E698(0) == 1) && ((D_8037DCCE[0] != 0) || (D_8037DCCE[1] != 0) @@ -52,7 +53,7 @@ bool func_8031C688(void) { } -bool func_8031C6E4(void) { +bool cutscene_skipGameOverCutsceneCheck(void) { s32 sp24; sp24 = func_8024E698(0); @@ -72,7 +73,7 @@ bool func_8031C6E4(void) { return FALSE; } -bool func_8031C7C8(void){ +bool cutscene_skipBeachCutsceneCheck(void){ func_803219F4(1); return FALSE; } @@ -97,8 +98,8 @@ s32 cutscenetrigger_update(void){ cutscenetrigger_check(MAP_85_CS_SPIRAL_MOUNTAIN_3, 0, MAP_7B_CS_INTRO_GL_DINGPOT_1, -1, NULL); cutscenetrigger_check(MAP_7B_CS_INTRO_GL_DINGPOT_1, 1, MAP_81_CS_INTRO_GL_DINGPOT_2, -1, NULL); cutscenetrigger_check(MAP_81_CS_INTRO_GL_DINGPOT_2, 0, MAP_7D_CS_SPIRAL_MOUNTAIN_1, -1, NULL); - cutscenetrigger_check(MAP_82_CS_ENTERING_GL_MACHINE_ROOM, 0, MAP_69_GL_MM_LOBBY, 0x12, func_8031C688); - cutscenetrigger_check(MAP_83_CS_GAME_OVER_MACHINE_ROOM, 0, MAP_1F_CS_START_RAREWARE, -1, func_8031C6E4); + cutscenetrigger_check(MAP_82_CS_ENTERING_GL_MACHINE_ROOM, 0, MAP_69_GL_MM_LOBBY, 0x12, cutscene_skipEnterLairCutsceneCheck); + cutscenetrigger_check(MAP_83_CS_GAME_OVER_MACHINE_ROOM, 0, MAP_1F_CS_START_RAREWARE, -1, cutscene_skipGameOverCutsceneCheck); cutscenetrigger_check(MAP_87_CS_SPIRAL_MOUNTAIN_5, 0, MAP_88_CS_SPIRAL_MOUNTAIN_6, -1, NULL); cutscenetrigger_check(MAP_94_CS_INTRO_SPIRAL_7, 0, MAP_8E_GL_FURNACE_FUN, 4, NULL); cutscenetrigger_check(MAP_88_CS_SPIRAL_MOUNTAIN_6, 1, MAP_96_CS_END_BEACH_1, -1, NULL); @@ -106,14 +107,14 @@ s32 cutscenetrigger_update(void){ cutscenetrigger_check(MAP_99_CS_END_SPIRAL_MOUNTAIN_2, 0, MAP_1F_CS_START_RAREWARE, -1, NULL); cutscenetrigger_check(MAP_20_CS_END_NOT_100, 0, MAP_98_CS_END_SPIRAL_MOUNTAIN_1, -1, NULL); cutscenetrigger_check(MAP_95_CS_END_ALL_100, 0, MAP_99_CS_END_SPIRAL_MOUNTAIN_2, -1, NULL); - cutscenetrigger_check(MAP_97_CS_END_BEACH_2, 0, MAP_99_CS_END_SPIRAL_MOUNTAIN_2, -1, func_8031C7C8); - cutscenetrigger_check(MAP_85_CS_SPIRAL_MOUNTAIN_3, 0xC, MAP_1_SM_SPIRAL_MOUNTAIN, 0x12, func_8031C640); - cutscenetrigger_check(MAP_7B_CS_INTRO_GL_DINGPOT_1, 0xC, MAP_1_SM_SPIRAL_MOUNTAIN, 0x12, func_8031C640); - cutscenetrigger_check(MAP_81_CS_INTRO_GL_DINGPOT_2, 0xC, MAP_1_SM_SPIRAL_MOUNTAIN, 0x12, func_8031C640); - cutscenetrigger_check(MAP_7D_CS_SPIRAL_MOUNTAIN_1, 0xC, MAP_1_SM_SPIRAL_MOUNTAIN, 0x12, func_8031C640); - cutscenetrigger_check(MAP_7C_CS_INTRO_BANJOS_HOUSE_1, 0xC, MAP_1_SM_SPIRAL_MOUNTAIN, 0x12, func_8031C640); - cutscenetrigger_check(MAP_86_CS_SPIRAL_MOUNTAIN_4, 0xC, MAP_1_SM_SPIRAL_MOUNTAIN, 0x12, func_8031C640); - cutscenetrigger_check(MAP_89_CS_INTRO_BANJOS_HOUSE_2, 0xC, MAP_1_SM_SPIRAL_MOUNTAIN, 0x12, func_8031C640); + cutscenetrigger_check(MAP_97_CS_END_BEACH_2, 0, MAP_99_CS_END_SPIRAL_MOUNTAIN_2, -1, cutscene_skipBeachCutsceneCheck); + cutscenetrigger_check(MAP_85_CS_SPIRAL_MOUNTAIN_3, 0xC, MAP_1_SM_SPIRAL_MOUNTAIN, 0x12, cutscene_skipIntroCutsceneCheck); + cutscenetrigger_check(MAP_7B_CS_INTRO_GL_DINGPOT_1, 0xC, MAP_1_SM_SPIRAL_MOUNTAIN, 0x12, cutscene_skipIntroCutsceneCheck); + cutscenetrigger_check(MAP_81_CS_INTRO_GL_DINGPOT_2, 0xC, MAP_1_SM_SPIRAL_MOUNTAIN, 0x12, cutscene_skipIntroCutsceneCheck); + cutscenetrigger_check(MAP_7D_CS_SPIRAL_MOUNTAIN_1, 0xC, MAP_1_SM_SPIRAL_MOUNTAIN, 0x12, cutscene_skipIntroCutsceneCheck); + cutscenetrigger_check(MAP_7C_CS_INTRO_BANJOS_HOUSE_1, 0xC, MAP_1_SM_SPIRAL_MOUNTAIN, 0x12, cutscene_skipIntroCutsceneCheck); + cutscenetrigger_check(MAP_86_CS_SPIRAL_MOUNTAIN_4, 0xC, MAP_1_SM_SPIRAL_MOUNTAIN, 0x12, cutscene_skipIntroCutsceneCheck); + cutscenetrigger_check(MAP_89_CS_INTRO_BANJOS_HOUSE_2, 0xC, MAP_1_SM_SPIRAL_MOUNTAIN, 0x12, cutscene_skipIntroCutsceneCheck); if(map_get() == MAP_95_CS_END_ALL_100 && mapSpecificFlags_get(1)){ func_8034B9E4(); mapSpecificFlags_set(1, 0); @@ -151,6 +152,7 @@ void func_8031CC60(s32 arg0) { } void func_8031CC8C(s32 arg0, s32 arg1) { + // arg1 = MAP_ID + ENTRY_ID f32 vec[3]; f32 unused[3]; @@ -252,141 +254,145 @@ void func_8031D0C0(s32 arg0, s32 arg1) { } } -void func_8031D11C(s32 arg0, s32 arg1) { +void warp_mmEnterMumbosHut(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x0E01); } -void func_8031D140(s32 arg0, s32 arg1) { +void warp_mmExitMumbosHut(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x0201); } -void func_8031D164(s32 arg0, s32 arg1) { +void warp_mmEnterTickersTowerLower(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x0C02); } -void func_8031D188(s32 arg0, s32 arg1) { +void warp_mmExitTickersTowerLower(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x0202); } -void func_8031D1AC(s32 arg0, s32 arg1) { +void warp_mmEnterTickersTowerUpper(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x0C01); } -void func_8031D1D0(s32 arg0, s32 arg1) { +void warp_mmExitTickersTowerUpper(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x0203); } -void func_8031D1F4(s32 arg0, s32 arg1) { +void warp_csNintendoLogo(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x1E00); } -void func_8031D218(s32 arg0, s32 arg1) { +void warp_gvEnterWaterPyramidLower(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x1506); } -void func_8031D23C(s32 arg0, s32 arg1) { +void warp_gvEnterRubeePyramid(s32 arg0, s32 arg1) { item_set(ITEM_6_HOURGLASS, 0); func_80244C78(1); func_8031CC8C(arg0, 0x1607); } -void func_8031D27C(s32 arg0, s32 arg1) { +void warp_gvEnterMatchingPyramid(s32 arg0, s32 arg1) { item_set(ITEM_6_HOURGLASS, 0); func_8031CC8C(arg0, 0x1301); } -void func_8031D2B4(s32 arg0, s32 arg1) { +void warp_gvEnterWaterPyramidUpper(s32 arg0, s32 arg1) { func_80244C78(0); func_803204E4(0xAC, 1); func_8031CC8C(arg0, 0x1502); } -void func_8031D2F4(s32 arg0, s32 arg1) { +void warp_gvEnterMazePyramid(s32 arg0, s32 arg1) { if (fileProgressFlag_getN(0xF8, 2) == 3) { func_8031CC8C(arg0, 0x1401); } } -void func_8031D334(s32 arg0, s32 arg1) { +void warp_gvExitMatchingPyramid(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x1203); } -void func_8031D358(s32 arg0, s32 arg1) { +void warp_gvExitMazePyramid(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x1204); } -void func_8031D37C(s32 arg0, s32 arg1) { +void warp_gvExitWaterPyramidLower(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x1205); } -void func_8031D3A0(s32 arg0, s32 arg1) { +void warp_gvExitRubeePyramid(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x1206); } -void func_8031D3C4(s32 arg0, s32 arg1) { +void warp_bgsEnterTanktup(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x1101); } -void func_8031D3E8(s32 arg0, s32 arg1) { +void warp_bgsExitTanktup(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x0D03); } -void func_8031D40C(s32 arg0, s32 arg1) { +void warp_bgsExitVileRightNostril(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x0D04); } -void func_8031D430(s32 arg0, s32 arg1) { +void warp_bgsExitVileLeftNostril(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x0D05); } -void func_8031D454(s32 arg0, s32 arg1) { +void warp_ttcEnterSandcastle(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x0A01); } -void func_8031D478(s32 arg0, s32 arg1) { +void warp_ttcStairAlcoveDown(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x070F); } -void func_8031D49C(s32 arg0, s32 arg1) { +void warp_ttcStairAlcoveUp(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x070E); } -void func_8031D4C0(s32 arg0, s32 arg1) { +void warp_ttcEnterBlubbersShipUpper(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x0505); } -void func_8031D4E4(s32 arg0, s32 arg1) { +void warp_ttcEnterBlubbersShipSide(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x0506); } -void func_8031D508(s32 arg0, s32 arg1) { +void warp_ttcExitLighthouseTop(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x0708); } -void func_8031D52C(s32 arg0, s32 arg1) { +void warp_ttcExitSandcastle(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x0703); } +// Unused void func_8031D550(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x0704); } +// Unused void func_8031D574(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x0705); } -void func_8031D598(s32 arg0, s32 arg1) { +void warp_ttcExitBlubbersShipUpper(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x0706); } -void func_8031D5BC(s32 arg0, s32 arg1) { +void warp_ttcExitBlubbersShipSide(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x0707); } -void func_8031D5E0(s32 arg0, s32 arg1) { +// Unused +void warp_ttcExitLighthouseTopUnused(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x0708); } +// Unused void func_8031D604(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x0709); } @@ -401,123 +407,125 @@ void func_8031D628(s32 arg0, s32 arg1) { func_8031CB50(7, 0xC, 0); } -void func_8031D670(s32 arg0, s32 arg1) { +void warp_mmmEnterDiningRoomDoor(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x2601); } -void func_8031D694(s32 arg0, s32 arg1) { +void warp_mmmEnterDiningRoomChimney(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x2602); } -void func_8031D6B8(s32 arg0, s32 arg1) { +void warp_mmmEnterWellTop(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x2501); } -void func_8031D6DC(s32 arg0, s32 arg1) { +void warp_mmmEnterTumblarShed(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x2401); } -void func_8031D700(s32 arg0, s32 arg1) { +void warp_mmmEnterCellar(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x1D01); } -void func_8031D724(s32 arg0, s32 arg1) { +void warp_mmmEnterRedFeatherRoom(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x2A01); } -void func_8031D748(s32 arg0, s32 arg1) { +void warp_mmmEnterBlueEggRoom(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x2801); } -void func_8031D76C(s32 arg0, s32 arg1) { +void warp_mmmEnterNoteRoom(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x2901); } -void func_8031D790(s32 arg0, s32 arg1) { +void warp_mmmEnterBrokenFloorboardRoom(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x2E01); } -void func_8031D7B4(s32 arg0, s32 arg1) { +void warp_mmmEnterBedroom(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x2D01); } -void func_8031D7D8(s32 arg0, s32 arg1) { +void warp_mmmEnterBathroomWindow(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x2C01); } -void func_8031D7FC(s32 arg0, s32 arg1) { +void warp_mmmExitDiningRoomDoor(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x1B01); } +// Unsure void func_8031D820(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x1B02); } -void func_8031D844(s32 arg0, s32 arg1) { +void warp_mmmExitWellTop(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x1B03); } -void func_8031D868(s32 arg0, s32 arg1) { +void warp_mmmExitTumblarShed(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x1B04); } -void func_8031D88C(s32 arg0, s32 arg1) { +void warp_mmmExitChurchFrontDoor(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x1B05); } -void func_8031D8B0(s32 arg0, s32 arg1) { +void warp_mmmExitChurchSecretRoom(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x1B06); } +// Unsure void func_8031D8D4(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x1B07); } -void func_8031D8F8(s32 arg0, s32 arg1) { +void warp_mmmExitRainBarrelBottom(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x1B08); } -void func_8031D91C(s32 arg0, s32 arg1) { +void warp_mmmExitCellar(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x1B09); } -void func_8031D940(s32 arg0, s32 arg1) { +void warp_mmmExitRedFeatherRoom(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x1B0A); } -void func_8031D964(s32 arg0, s32 arg1) { +void warp_mmmExitBlueEggRoom(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x1B0B); } -void func_8031D988(s32 arg0, s32 arg1) { +void warp_mmmExitBathroomWindow(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x1B0C); } -void func_8031D9AC(s32 arg0, s32 arg1) { +void warp_mmmExitBrokenFloorboardRoom(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x1B0D); } -void func_8031D9D0(s32 arg0, s32 arg1) { +void warp_mmmExitBedroom(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x1B0E); } -void func_8031D9F4(s32 arg0, s32 arg1) { +void warp_mmmExitNoteRoom(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x1B0F); } -void func_8031DA18(s32 arg0, s32 arg1) { +void warp_mmmChurchTowerUp(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x1B10); } -void func_8031DA3C(s32 arg0, s32 arg1) { +void warp_mmmChurchTowerDown(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x1B11); } -void func_8031DA60(s32 arg0, s32 arg1) { +void warp_mmmExitMumbosHut(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x1B12); } -void func_8031DA84(s32 arg0, s32 arg1) { +void warp_mmmEnterChurchSecretRoom(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x2B01); } @@ -538,15 +546,16 @@ void func_8031DAE0(s32 arg0, s32 arg1) { } } -void func_8031DB64(s32 arg0, s32 arg1) { +// Unused +void warp_mmmEnterMumbosHutUnused(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x3001); } -void func_8031DB88(s32 arg0, s32 arg1) { +void warp_mmmEnterMumbosHut(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x3001); } -void func_8031DBAC(s32 arg0, s32 arg1) { +void warp_mmmEnterRainBarrel(s32 arg0, s32 arg1) { if (player_getTransformation() == TRANSFORM_3_PUMPKIN) { func_8031CC8C(arg0, arg1 + 0x2F00); } @@ -566,163 +575,161 @@ void func_8031DC10(s32 arg0, s32 arg1) { } } -void func_8031DC68(s32 arg0, s32 arg1) { - func_8031DBAC(arg0, 2); +void warp_mmmEnterRainBarrelBottom(s32 arg0, s32 arg1) { + warp_mmmEnterRainBarrel(arg0, 2); } -void func_8031DC8C(s32 arg0, s32 arg1) { +void warp_bgsEnterMrVileNostril(s32 arg0, s32 arg1) { if (player_getTransformation() == TRANSFORM_5_CROC) { func_8031CC8C(arg0, arg1 + 0x1000); } } -void func_8031DCC8(s32 arg0, s32 arg1) { - func_8031DC8C(arg0, 3); +void warp_bgsEnterMrVileRightNostril(s32 arg0, s32 arg1) { + warp_bgsEnterMrVileNostril(arg0, 3); } -void func_8031DCEC(s32 arg0, s32 arg1) { - func_8031DC8C(arg0, 4); +void warp_bgsEnterMrVileLeftNostril(s32 arg0, s32 arg1) { + warp_bgsEnterMrVileNostril(arg0, 4); } -// BGS? -void func_8031DD10(s32 arg0, s32 arg1) { +void warp_bgsEnterTanktupConditional(s32 arg0, s32 arg1) { if (func_8038F570() != 0) { func_8031CC8C(arg0, 0x1101); } } -// TTC? -void func_8031DD44(s32 arg0, s32 arg1) { +void warp_ttcEnterNippersShell(s32 arg0, s32 arg1) { if (func_80388A44() != 0) { func_8031CC8C(arg0, 0x601); } } -void func_8031DD78(s32 arg0, s32 arg1) { +void warp_ccExitWonderwingRoom(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x2203); } -void func_8031DD9C(s32 arg0, s32 arg1) { +void warp_ccEnterClankerBelly(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x2201); } -void func_8031DDC0(s32 arg0, s32 arg1) { +void warp_ccEnterClankerMouth(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x2202); } -void func_8031DDE4(s32 arg0, s32 arg1) { +void warp_ccEnterWonderwingRoom(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x2301); } -void func_8031DE08(s32 arg0, s32 arg1) { +void warp_mmEnterLevel(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x0205); } -void func_8031DE2C(s32 arg0, s32 arg1) { +void warp_gvEnterJinxy(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x1A02); } -void func_8031DE50(s32 arg0, s32 arg1) { +void warp_gvExitJinxy(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x1202); } -void func_8031DE74(s32 arg0, s32 arg1) { +void warp_rbbEnterCaptainsRoomWindow(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x3F01); } -void func_8031DE98(s32 arg0, s32 arg1) { +void warp_rbbEnterCabinRoomWindow(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x3901); } -void func_8031DEBC(s32 arg0, s32 arg1) { +void warp_rbbEnterEngineRoomPipe(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x3404); } -void func_8031DEE0(s32 arg0, s32 arg1) { +void warp_rbbEnterEngineRoomDoor(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x3401); } -void func_8031DF04(s32 arg0, s32 arg1) { +void warp_rbbEnterKitchenPipe(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x3C01); } -void func_8031DF28(s32 arg0, s32 arg1) { +void warp_rbbEnterNavigationRoomWindow(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x3D01); } -void func_8031DF4C(s32 arg0, s32 arg1) { +void warp_rbbEnterBoomBoxPipe(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x3B01); } -void func_8031DF70(s32 arg0, s32 arg1) { +void warp_rbbEnterChumpWarehouseWindow(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x3502); } -void func_8031DF94(s32 arg0, s32 arg1) { +void warp_rbbEnterBoatRoom(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x3601); } -void func_8031DFB8(s32 arg0, s32 arg1) { +void warp_rbbEnterChompaContainer(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x3701); } -void func_8031DFDC(s32 arg0, s32 arg1) { +void warp_rbbEnterSeamanGrublinContainer(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x3E01); } -void func_8031E000(s32 arg0, s32 arg1) { +void warp_rbbEnterBoomBoxContainer(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x3801); } -void func_8031E024(s32 arg0, s32 arg1) { +void warp_rbbExitCaptainsRoomWindow(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x3101); } -void func_8031E048(s32 arg0, s32 arg1) { +void warp_rbbExitCabinRoomWindow(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x3102); } -void func_8031E06C(s32 arg0, s32 arg1) { +void warp_rbbExitEngineRoomPipe(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x3103); } -void func_8031E090(s32 arg0, s32 arg1) { +void warp_rbbExitKitchenPipe(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x3104); } -void func_8031E0B4(s32 arg0, s32 arg1) { +void warp_rbbExitNavigationRoomWindow(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x3105); } -void func_8031E0D8(s32 arg0, s32 arg1) { +void warp_rbbExitBoomBoxPipe(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x3106); } -void func_8031E0FC(s32 arg0, s32 arg1) { +void warp_rbbExitEngineRoomDoor(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x3107); } -void func_8031E120(s32 arg0, s32 arg1) { +void warp_rbbExitBoatRoom(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x3108); } -void func_8031E144(s32 arg0, s32 arg1) { +void warp_rbbExitChompaContainer(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x3109); } -void func_8031E168(s32 arg0, s32 arg1) { +void warp_rbbExitSeamanGrublinContainer(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x310A); } -void func_8031E18C(s32 arg0, s32 arg1) { +void warp_rbbExitBoomBoxContainer(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x310B); } -void func_8031E1B0(s32 arg0, s32 arg1) { +void warp_rbbExitBossBoomBoxRoom(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x310C); } -void func_8031E1D4(s32 arg0, s32 arg1) { +void warp_rbbEnterBossBoomBoxRoom(s32 arg0, s32 arg1) { func_8031CB50(MAP_3A_RBB_BOSS_BOOM_BOX, 1, 0); } @@ -741,658 +748,689 @@ void func_8031E204(NodeProp *node, s32 arg1, s32 arg2){ func_8031CC8C(node, (arg1 <<8) + arg2); } -void func_8031E2B8(NodeProp *node, ActorMarker *marker){ - func_8031E204(node, 0x35, 0x1); +void warp_rbbEnterChumpWarehouseDoor(NodeProp *node, ActorMarker *marker){ + func_8031E204(node, MAP_35_RBB_WAREHOUSE, 0x1); } -void func_8031E2E0(NodeProp *node, ActorMarker *marker){ - func_8031E204(node, 0x31, 0xd); +void warp_rbbExitChumpWarehouseDoor(NodeProp *node, ActorMarker *marker){ + func_8031E204(node, MAP_31_RBB_RUSTY_BUCKET_BAY, 0xd); } +// Unknown void func_8031E308(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x3206); } +// Unknown void func_8031E32C(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x5200); } +// Unknown void func_8031E350(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x5100); } +// Unknown void func_8031E374(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x5101); } +// Unknown void func_8031E398(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x4200); } +// Unknown void func_8031E3BC(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x3201); } +// Unknown void func_8031E3E0(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x3202); } +// Unknown void func_8031E404(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x3203); } +// Unknown void func_8031E428(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x3204); } +// Unknown void func_8031E44C(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x3205); } +// Unknown void func_8031E470(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x3207); } +// Unknown void func_8031E494(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x3208); } +// Unknown void func_8031E4B8(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x3209); } +// Unknown void func_8031E4DC(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x320A); } +// Unknown void func_8031E500(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x320B); } +// Unknown void func_8031E524(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x320C); } +// Unknown void func_8031E548(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x320D); } +// Unknown void func_8031E56C(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x320E); } +// Unknown void func_8031E590(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x320F); } +// Unknown void func_8031E5B4(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x3210); } +// Unknown void func_8031E5D8(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x3211); } +// Unknown void func_8031E5FC(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x3212); } +// Unknown void func_8031E620(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x3213); } +// Unknown void func_8031E644(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x3214); } +// Unknown void func_8031E668(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x3215); } +// Unknown void func_8031E68C(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x3216); } +// Unknown void func_8031E6B0(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x3217); } -void func_8031E6D4(s32 arg0, s32 arg1) { +void warp_ccwExitWinterToHub(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x4001); } -void func_8031E6F8(s32 arg0, s32 arg1) { +void warp_ccwExitSpringToHub(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x4002); } -void func_8031E71C(s32 arg0, s32 arg1) { +void warp_ccwExitSummerToHub(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x4003); } -void func_8031E740(s32 arg0, s32 arg1) { +void warp_ccwExitAutumnToHub(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x4004); } -void func_8031E764(s32 arg0, s32 arg1) { +void warp_ccwEnterWinter(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x4601); } -void func_8031E788(s32 arg0, s32 arg1) { +void warp_ccwEnterSpring(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x4301); } -void func_8031E7AC(s32 arg0, s32 arg1) { +void warp_ccwEnterSummer(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x4401); } -void func_8031E7D0(s32 arg0, s32 arg1) { +void warp_ccwEnterAutumn(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x4501); } -void func_8031E7F4(s32 arg0, s32 arg1) { +void warp_gvExitSandybuttMazeBack(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x1207); } -void func_8031E818(s32 arg0, s32 arg1) { +void warp_bgsExitMumbosHut(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x0D06); } -void func_8031E83C(s32 arg0, s32 arg1) { +void warp_bgsEnterMumbosHut(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x4701); } -void func_8031E860(s32 arg0, s32 arg1) { +void warp_ttcEnterLevel(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x0704); } -void func_8031E884(s32 arg0, s32 arg1) { +void warp_ccEnterLevel(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x0B05); } -void func_8031E8A8(s32 arg0, s32 arg1) { +void warp_bgsEnterLevel(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x0D02); } -void func_8031E8CC(s32 arg0, s32 arg1) { +void warp_gvEnterLevel(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x1208); } -void func_8031E8F0(s32 arg0, s32 arg1) { +void warp_mmmEnterLevel(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x1B14); } -void func_8031E914(s32 arg0, s32 arg1) { +void warp_rbbEnterLevel(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x3110); } -void func_8031E938(s32 arg0, s32 arg1) { +void warp_ttcExitNipper(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x070A); } -void func_8031E95C(s32 arg0, s32 arg1) { +void warp_ttcEnterSpringMumbosHut(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x4A01); } -void func_8031E980(s32 arg0, s32 arg1) { +void warp_ttcEnterSummerMumbosHut(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x4B01); } -void func_8031E9A4(s32 arg0, s32 arg1) { +void warp_ttcEnterAutumnMumbosHut(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x4C01); } -void func_8031E9C8(s32 arg0, s32 arg1) { +void warp_ttcEnterWinterMumbosHut(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x4D01); } -void func_8031E9EC(s32 arg0, s32 arg1) { +void warp_ttcExitSpringMumbosHut(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x4309); } -void func_8031EA10(s32 arg0, s32 arg1) { +void warp_ttcExitSummerMumbosHut(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x4409); } -void func_8031EA34(s32 arg0, s32 arg1) { +void warp_ttcExitAutumnMumbosHut(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x4509); } -void func_8031EA58(s32 arg0, s32 arg1) { +void warp_ttcExitWinterMumbosHut(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x4609); } -void func_8031EA7C(s32 arg0, s32 arg1) { +void warp_ccwEnterSpringWhipcrackRoom(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x6501); } -void func_8031EAA0(s32 arg0, s32 arg1) { +void warp_ccwEnterSummerWhipcrackRoom(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x6601); } -void func_8031EAC4(s32 arg0, s32 arg1) { +void warp_ccwEnterAutumnWhipcrackRoom(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x6701); } -void func_8031EAE8(s32 arg0, s32 arg1) { +void warp_ccwEnterWinterWhipcrackRoom(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x6801); } -void func_8031EB0C(s32 arg0, s32 arg1) { +void warp_ccwExitSpringWhipcrackRoom(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x4308); } -void func_8031EB30(s32 arg0, s32 arg1) { +void warp_ccwExitSummerWhipcrackRoom(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x4408); } -void func_8031EB54(s32 arg0, s32 arg1) { +void warp_ccwExitAutumnWhipcrackRoom(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x4508); } -void func_8031EB78(s32 arg0, s32 arg1) { +void warp_ccwExitWinterWhipcrackRoom(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x4608); } -void func_8031EB9C(s32 arg0, s32 arg1) { +void warp_ccwEnterSpringNabnutDoor(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x5E01); } -void func_8031EBC0(s32 arg0, s32 arg1) { +void warp_ccwEnterSummerNabnutDoor(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x5F01); } -void func_8031EBE4(s32 arg0, s32 arg1) { +void warp_ccwEnterAutumnNabnutDoor(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x6001); } -void func_8031EC08(s32 arg0, s32 arg1) { +void warp_ccwExitSpringNabnutDoor(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x4307); } -void func_8031EC2C(s32 arg0, s32 arg1) { +void warp_ccwExitSummerNabnutDoor(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x4407); } -void func_8031EC50(s32 arg0, s32 arg1) { +void warp_ccwExitAutumnNabnutDoor(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x4507); } -void func_8031EC74(s32 arg0, s32 arg1) { +void warp_ccwExitWinterNabnutDoor(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x4607); } -void func_8031EC98(s32 arg0, s32 arg1) { +void warp_ccwEnterWinterAcornStorage(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x6201); } -void func_8031ECBC(s32 arg0, s32 arg1) { +void warp_ccwEnterAutumnFloodedAttic(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x6301); } -void func_8031ECE0(s32 arg0, s32 arg1) { +void warp_ccwEnterWinterFloodedAttic(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x6401); } -void func_8031ED04(s32 arg0, s32 arg1) { +void warp_ccwExitWinterAcornStorage(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x4606); } -void func_8031ED28(s32 arg0, s32 arg1) { +void warp_ccwExitAutumnFloodedAttic(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x4506); } -void func_8031ED4C(s32 arg0, s32 arg1) { +void warp_ccwExitWinterFloodedAttic(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x4605); } -void func_8031ED70(s32 arg0, s32 arg1) { +void warp_fpEnterMumbosHut(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x4801); } -void func_8031ED94(s32 arg0, s32 arg1) { +void warp_fpEnterBoggyIgloo(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x4101); } -void func_8031EDB8(s32 arg0, s32 arg1) { +void warp_fpEnterXmasTree(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x5301); } -void func_8031EDDC(s32 arg0, s32 arg1) { +void warp_fpExitMumbosHut(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x2707); } -void func_8031EE00(s32 arg0, s32 arg1) { +void warp_fpExitBoggyIgloo(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x2708); } -void func_8031EE24(s32 arg0, s32 arg1) { +void warp_fpExitXmasTree(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x2709); } -void func_8031EE48(s32 arg0, s32 arg1) { +void warp_lairEnterGVLobbyFromPointingStatueRoom(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x6E01); } -void func_8031EE6C(s32 arg0, s32 arg1) { +void warp_lairEnterMMLobbyFromPuzzlesRoom(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x6901); } -void func_8031EE90(s32 arg0, s32 arg1) { +void warp_lairEnterFPLobbyFromGVLobby(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x6F01); } -void func_8031EEB4(s32 arg0, s32 arg1) { +void warp_lairEnterGVLobbyFromFPLobby(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x6E02); } -void func_8031EED8(s32 arg0, s32 arg1) { +void warp_lairEnterGVLobbyFromGVLevel(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x6E03); } -void func_8031EEFC(s32 arg0, s32 arg1) { +void warp_lairEnterMMLobbyFromMMLevel(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x6902); } +// Unknown void func_8031EF20(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x6903); } -void func_8031EF44(s32 arg0, s32 arg1) { +void warp_lairEnterPuzzlesRoomFromMMLobby(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x6A01); } -void func_8031EF68(s32 arg0, s32 arg1) { +void warp_lairEnterPointingStatueRoomFromGVLobbyNoteDoor(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x7101); } -void func_8031EF8C(s32 arg0, s32 arg1) { +void warp_lairEnterPuzzlesRoomFromCCWPuzzleRoom(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x6A02); } -void func_8031EFB0(s32 arg0, s32 arg1) { +void warp_lairEnterCCWPuzzleRoomFromPuzzlesRoom(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x6B01); } -void func_8031EFD4(s32 arg0, s32 arg1) { +void warp_lairEnterCCWPuzzleRoomFromRedCauldronRoom(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x6B02); } -void func_8031EFF8(s32 arg0, s32 arg1) { +void warp_lairEnterRedCauldronRoomFromCCWPuzzleRoom(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x6C01); } -void func_8031F01C(s32 arg0, s32 arg1) { +void warp_lairEnterCCWPuzzleRoomFromTTCLobby(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x6B03); } -void func_8031F040(s32 arg0, s32 arg1) { +void warp_lairEnterTTCLobbyFromCCWPuzzleRoom(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x6D01); } -void func_8031F064(s32 arg0, s32 arg1) { +void warp_lairEnterCCWPuzzleRoomFromCCLobby(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x6B04); } -void func_8031F088(s32 arg0, s32 arg1) { +void warp_lairEnterCCLobbyFromCCWPuzzleRoom(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x7001); } -void func_8031F0AC(s32 arg0, s32 arg1) { +void warp_lairEnterCCLobbyFromCCLevel(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x7002); } -void func_8031F0D0(s32 arg0, s32 arg1) { +void warp_fpEnterLevel(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x2701); } +// Unknown void func_8031F0F4(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x6F03); } +// Unknown void func_8031F118(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x6F04); } -void func_8031F13C(s32 arg0, s32 arg1) { +void warp_lairEnterCCWPuzzleFromPointingGruntyStatueRoom(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x6B05); } -void func_8031F160(s32 arg0, s32 arg1) { +void warp_lairEnterPointingGruntyStatueFromCCWPuzzleRoom(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x7102); } -void func_8031F184(s32 arg0, s32 arg1) { +void warp_lairEnterGVPuzzleRoomFromMMMLobby(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x7401); } -void func_8031F1A8(s32 arg0, s32 arg1) { +void warp_lairEnterMMMLobbyFromGVPuzzleRoom(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x7501); } -void func_8031F1CC(s32 arg0, s32 arg1) { +void warp_lairEnterGVPuzzleRoomFromFPLobby(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x7402); } -void func_8031F1F0(s32 arg0, s32 arg1) { +void warp_lairFPLobbyFromGVPuzzleRoom(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x6F05); } -void func_8031F214(s32 arg0, s32 arg1) { +void warp_lairEnterPointingGruntyStatueFromBGSLobby(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x7103); } -void func_8031F238(s32 arg0, s32 arg1) { +void warp_lairEnterBGSLobbyFromPointingGruntyStatueRoom(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x7201); } -void func_8031F25C(s32 arg0, s32 arg1) { +void warp_lairEnterCryptFromMMMLobby(s32 arg0, s32 arg1) { if (player_getTransformation() == TRANSFORM_3_PUMPKIN) { func_8031CC8C(arg0, 0x7A01); } } -void func_8031F294(s32 arg0, s32 arg1) { +void warp_lairEnterMMMLobbyFromCrypt(s32 arg0, s32 arg1) { if (player_getTransformation() == TRANSFORM_3_PUMPKIN) { func_8031CC8C(arg0, 0x7503); } } -void func_8031F2CC(s32 arg0, s32 arg1) { +void warp_fpExitWozzasCave(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x2706); } -void func_8031F2F0(s32 arg0, s32 arg1) { +void warp_fpEnterWozzasCave(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x7F01); } -void func_8031F314(s32 arg0, s32 arg1) { +void warp_lairEnterBGSLobbyFromBGSLevel(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x7202); } -void func_8031F338(s32 arg0, s32 arg1) { +void warp_lairEnter640NoteDoorRoomFromFPLobby(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x7601); } -void func_8031F35C(s32 arg0, s32 arg1) { +void warp_lairEnter640NoteDoorRoomFromCCWLobbyTokenEntrance(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x7602); } -void func_8031F380(s32 arg0, s32 arg1) { +void warp_lairEnter640NoteDoorRoomFromCCWLobbyDoorEntrance(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x7603); } -void func_8031F3A4(s32 arg0, s32 arg1) { +void warp_lairEnter640NoteDoorRoomFromRBBLobby(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x7604); } -void func_8031F3C8(s32 arg0, s32 arg1) { +void warp_lairRBBLobbyFrom640NoteDoorRoom(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x7701); } -void func_8031F3EC(s32 arg0, s32 arg1) { +void warp_lairCCWLobbyFrom640NoteDoorRoomDoorEntrance(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x7901); } -void func_8031F410(s32 arg0, s32 arg1) { +void warp_lairCCWLobbyFrom640NoteDoorRoomTokenEntrance(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x7902); } -void func_8031F434(s32 arg0, s32 arg1) { +void warp_ccwEnterSummerZubbaHive(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x5A02); } -void func_8031F458(s32 arg0, s32 arg1) { +void warp_ccwEnterAutumnZubbaHive(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x5C02); } -void func_8031F47C(s32 arg0, s32 arg1) { +void warp_ccwExitSpringZubbaHive(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x4306); } -void func_8031F4A0(s32 arg0, s32 arg1) { +void warp_ccwExitSummerZubbaHive(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x4406); } -void func_8031F4C4(s32 arg0, s32 arg1) { +void warp_ccwExitAutumnZubbaHive(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x4505); } -void func_8031F4E8(s32 arg0, s32 arg1) { +void warp_ccwEnterSpringZubbaHive(s32 arg0, s32 arg1) { if (player_getTransformation() == TRANSFORM_6_BEE) { func_8031CC8C(arg0, 0x5B01); } } -void func_8031F520(s32 arg0, s32 arg1) { +void warp_lairEnterFPLobbyFrom640NoteDoorRoom(s32 arg0, s32 arg1) { item_set(ITEM_6_HOURGLASS, 0); func_8031CC8C(arg0, 0x6F02); } -void func_8031F558(s32 arg0, s32 arg1) { +void warp_lairEnterRBBLobbyFromRBBLevel(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x7702); } -void func_8031F57C(s32 arg0, s32 arg1) { +void warp_lairEnterRBBLobbyFromRBBPuzzleRoom(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x7703); } -void func_8031F5A0(s32 arg0, s32 arg1) { +void warp_lairEnterRBBLobbyFromMMMPuzzleRoom(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x7704); } -void func_8031F5C4(s32 arg0, s32 arg1) { +void warp_lairEnterMMMPuzzleFromRBBLobby(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x7801); } -void func_8031F5E8(s32 arg0, s32 arg1) { +void warp_lairEnterRBBPuzzleFromRBBLobby(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x7802); } -void func_8031F60C(s32 arg0, s32 arg1) { +void warp_lairEnterCCWLobbyFromFurnaceFunPath(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x7903); } -void func_8031F630(s32 arg0, s32 arg1) { +void warp_lairEnterFurnaceFunPathFromCCWLobby(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x8001); } -void func_8031F654(s32 arg0, s32 arg1) { +void warp_smEnterBanjosHouse(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x8C01); } -void func_8031F678(s32 arg0, s32 arg1) { +void warp_smExitBanjosHouse(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x112); } -void func_8031F69C(s32 arg0, s32 arg1) { +void warp_lairEnterMMLobbyFromSMLevel(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x6912); } -void func_8031F6C0(s32 arg0, s32 arg1) { +void warp_smExitLair(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x113); } -void func_8031F6E4(s32 arg0, s32 arg1) { +void warp_rbbExitAnchorRoom(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x3113); } -void func_8031F708(s32 arg0, s32 arg1) { +void warp_rbbEnterAnchorRoom(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x8B04); } -void func_8031F72C(s32 arg0, s32 arg1) { +void warp_mmmEnterWellBottom(s32 arg0, s32 arg1) { if (player_getTransformation() == TRANSFORM_3_PUMPKIN) { func_8031CC8C(arg0, 0x2504); } } -void func_8031F764(s32 arg0, s32 arg1) { +void warp_mmmExitWellBottom(s32 arg0, s32 arg1) { if (player_getTransformation() == TRANSFORM_3_PUMPKIN) { func_8031CC8C(arg0, 0x1B13); } } -void func_8031F79C(s32 arg0, s32 arg1) { +void warp_mmmEnterBathroomFromLoggo(s32 arg0, s32 arg1) { if (player_getTransformation() == TRANSFORM_3_PUMPKIN) { func_8031CC8C(arg0, 0x2C04); } } -void func_8031F7D4(s32 arg0, s32 arg1) { +void warp_mmmEnterLoggo(s32 arg0, s32 arg1) { if (player_getTransformation() == TRANSFORM_3_PUMPKIN) { func_8031CC60(0x8D04); } } +// Unused void func_8031F80C(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x7502); } -void func_8031F830(s32 arg0, s32 arg1) { +void warp_lairTTCLobbyFromTTCLevel(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x6D04); } -void func_8031F854(s32 arg0, s32 arg1) { +void warp_lairCCWLobbyFromCCWLevel(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x7906); } -void func_8031F878(s32 arg0, s32 arg1) { +void warp_ccwEnterLevel(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x4007); } -void func_8031F89C(s32 arg0, s32 arg1) { +void warp_lairFPLobbyFromFPLevel(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x6F06); } -void func_8031F8C0(s32 arg0, s32 arg1) { +void warp_ccwEnterSpringNabnutWindow(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x5E02); } -void func_8031F8E4(s32 arg0, s32 arg1) { +void warp_ccwEnterSummerNabnutWindow(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x5F02); } -void func_8031F908(s32 arg0, s32 arg1) { +void warp_ccwEnterAutumnNabnutWindow(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x6002); } -void func_8031F92C(s32 arg0, s32 arg1) { +void warp_ccwEnterWinterNabnutWindow(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x6102); } -void func_8031F950(s32 arg0, s32 arg1) { +void warp_ccwExitSpringNabnutWindow(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x4304); } -void func_8031F974(s32 arg0, s32 arg1) { +void warp_ccwExitSummerNabnutWindow(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x4404); } -void func_8031F998(s32 arg0, s32 arg1) { +void warp_ccwExitAutumnNabnutWindow(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x4504); } -void func_8031F9BC(s32 arg0, s32 arg1) { +void warp_ccwExitWinterNabnutWindow(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x4604); } @@ -1406,39 +1444,44 @@ void func_8031F9F4(s32 arg0){ D_80383190 = arg0; } -void func_8031FA00(s32 arg0, s32 arg1) { +void warp_ttcExitSharkfoodIsland(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x780); } -void func_8031FA24(s32 arg0, s32 arg1) { +void warp_gvEnterSNSChamper(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x9205); } -void func_8031FA48(s32 arg0, s32 arg1) { +void warp_gvExitSNSChamper(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x120A); } -void func_8031FA6C(s32 arg0, s32 arg1) { +void warp_lairEnterDingpotRoomFromFurnaceFun(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x9305); } +// warp_lairEnterFurnaceFunFrom? void func_8031FA90(s32 arg0, s32 arg1) { func_8031CC8C(arg0, 0x8E05); } void func_8031FAB4(s32 arg0, s32 arg1) { if ((fileProgressFlag_get(FILEPROG_FC_DEFEAT_GRUNTY) != 0) && (jiggyscore_total() == 100)) { + // Beach Cutscene func_8031CC8C(arg0, 0x9501); } else { + // Final Battle func_8031CC8C(arg0, 0x9001); } } -void func_8031FB14(s32 arg0, s32 arg1) { +void warp_lairEnterLairFromSMLevel(s32 arg0, s32 arg1) { if (fileProgressFlag_get(FILEPROG_BD_ENTER_LAIR_CUTSCENE) != 0) { + // MM Lobby func_8031CC8C(arg0, 0x6912); } else { fileProgressFlag_set(FILEPROG_BD_ENTER_LAIR_CUTSCENE, 1); + // Enter Lair Cutscene func_8031CC8C(arg0, 0x8204); } } @@ -1451,7 +1494,7 @@ void func_8031FB6C(s32 arg0, s32 arg1) { void func_8031FBA0(void) { bsStoredState_clear(); func_8031FFAC(); - func_8034646C(); + item_setItemsStartCounts(); jiggyscore_clearAll(); honeycombscore_clear(); mumboscore_clear(); diff --git a/src/core2/code_AD110.c b/src/core2/code_AD110.c index 1471601d..d07fbe2b 100644 --- a/src/core2/code_AD110.c +++ b/src/core2/code_AD110.c @@ -11,59 +11,59 @@ extern void chOverlayPressStart_spawn(s32, s32); extern void chOverlayPressStart_func_802DCDC0(s32, s32); extern void func_8031D06C(s32, s32); extern void func_8031D09C(s32, s32); -extern void func_8031D11C(s32, s32); -extern void func_8031D140(s32, s32); -extern void func_8031D164(s32, s32); -extern void func_8031D188(s32, s32); -extern void func_8031D1AC(s32, s32); -extern void func_8031D1D0(s32, s32); -extern void func_8031D1F4(s32, s32); -extern void func_8031DD10(s32, s32); -extern void func_8031DD44(s32, s32); -extern void func_8031DE2C(s32, s32); -extern void func_8031DE50(s32, s32); -extern void func_8031E818(s32, s32); -extern void func_8031E83C(s32, s32); -extern void func_8031E860(s32, s32); -extern void func_8031E884(s32, s32); -extern void func_8031E8A8(s32, s32); -extern void func_8031E8CC(s32, s32); -extern void func_8031E8F0(s32, s32); -extern void func_8031E914(s32, s32); -extern void func_8031E938(s32, s32); -extern void func_8031EA7C(s32, s32); -extern void func_8031EAA0(s32, s32); -extern void func_8031EAC4(s32, s32); -extern void func_8031EAE8(s32, s32); -extern void func_8031EC98(s32, s32); -extern void func_8031ECBC(s32, s32); -extern void func_8031ECE0(s32, s32); -extern void func_8031ED04(s32, s32); -extern void func_8031ED28(s32, s32); -extern void func_8031ED4C(s32, s32); -extern void func_8031ED70(s32, s32); -extern void func_8031ED94(s32, s32); -extern void func_8031EDB8(s32, s32); -extern void func_8031EDDC(s32, s32); -extern void func_8031EE00(s32, s32); -extern void func_8031EE24(s32, s32); -extern void func_8031EEFC(s32, s32); +extern void warp_mmEnterMumbosHut(s32, s32); +extern void warp_mmExitMumbosHut(s32, s32); +extern void warp_mmEnterTickersTowerLower(s32, s32); +extern void warp_mmExitTickersTowerLower(s32, s32); +extern void warp_mmEnterTickersTowerUpper(s32, s32); +extern void warp_mmExitTickersTowerUpper(s32, s32); +extern void warp_csNintendoLogo(s32, s32); +extern void warp_bgsEnterTanktupConditional(s32, s32); +extern void warp_ttcEnterNippersShell(s32, s32); +extern void warp_gvEnterJinxy(s32, s32); +extern void warp_gvExitJinxy(s32, s32); +extern void warp_bgsExitMumbosHut(s32, s32); +extern void warp_bgsEnterMumbosHut(s32, s32); +extern void warp_ttcEnterLevel(s32, s32); +extern void warp_ccEnterLevel(s32, s32); +extern void warp_bgsEnterLevel(s32, s32); +extern void warp_gvEnterLevel(s32, s32); +extern void warp_mmmEnterLevel(s32, s32); +extern void warp_rbbEnterLevel(s32, s32); +extern void warp_ttcExitNipper(s32, s32); +extern void warp_ccwEnterSpringWhipcrackRoom(s32, s32); +extern void warp_ccwEnterSummerWhipcrackRoom(s32, s32); +extern void warp_ccwEnterAutumnWhipcrackRoom(s32, s32); +extern void warp_ccwEnterWinterWhipcrackRoom(s32, s32); +extern void warp_ccwEnterWinterAcornStorage(s32, s32); +extern void warp_ccwEnterAutumnFloodedAttic(s32, s32); +extern void warp_ccwEnterWinterFloodedAttic(s32, s32); +extern void warp_ccwExitWinterAcornStorage(s32, s32); +extern void warp_ccwExitAutumnFloodedAttic(s32, s32); +extern void warp_ccwExitWinterFloodedAttic(s32, s32); +extern void warp_fpEnterMumbosHut(s32, s32); +extern void warp_fpEnterBoggyIgloo(s32, s32); +extern void warp_fpEnterXmasTree(s32, s32); +extern void warp_fpExitMumbosHut(s32, s32); +extern void warp_fpExitBoggyIgloo(s32, s32); +extern void warp_fpExitXmasTree(s32, s32); +extern void warp_lairEnterMMLobbyFromMMLevel(s32, s32); extern void func_8031EF20(s32, s32); -extern void func_8031EF44(s32, s32); -extern void func_8031EF68(s32, s32); -extern void func_8031EF8C(s32, s32); -extern void func_8031EFB0(s32, s32); -extern void func_8031EFD4(s32, s32); -extern void func_8031EFF8(s32, s32); -extern void func_8031F01C(s32, s32); -extern void func_8031F040(s32, s32); -extern void func_8031F064(s32, s32); -extern void func_8031F088(s32, s32); -extern void func_8031F0AC(s32, s32); -extern void func_8031F13C(s32, s32); -extern void func_8031F160(s32, s32); -extern void func_8031F57C(s32, s32); -extern void func_8031F5A0(s32, s32); +extern void warp_lairEnterPuzzlesRoomFromMMLobby(s32, s32); +extern void warp_lairEnterPointingStatueRoomFromGVLobbyNoteDoor(s32, s32); +extern void warp_lairEnterPuzzlesRoomFromCCWPuzzleRoom(s32, s32); +extern void warp_lairEnterCCWPuzzleRoomFromPuzzlesRoom(s32, s32); +extern void warp_lairEnterCCWPuzzleRoomFromRedCauldronRoom(s32, s32); +extern void warp_lairEnterRedCauldronRoomFromCCWPuzzleRoom(s32, s32); +extern void warp_lairEnterCCWPuzzleRoomFromTTCLobby(s32, s32); +extern void warp_lairEnterTTCLobbyFromCCWPuzzleRoom(s32, s32); +extern void warp_lairEnterCCWPuzzleRoomFromCCLobby(s32, s32); +extern void warp_lairEnterCCLobbyFromCCWPuzzleRoom(s32, s32); +extern void warp_lairEnterCCLobbyFromCCLevel(s32, s32); +extern void warp_lairEnterCCWPuzzleFromPointingGruntyStatueRoom(s32, s32); +extern void warp_lairEnterPointingGruntyStatueFromCCWPuzzleRoom(s32, s32); +extern void warp_lairEnterRBBLobbyFromRBBPuzzleRoom(s32, s32); +extern void warp_lairEnterRBBLobbyFromMMMPuzzleRoom(s32, s32); extern void func_80334430(s32, s32); extern void func_80363388(s32, s32); extern void func_80386744(s32, s32); @@ -77,110 +77,110 @@ extern void func_8038A150(s32, s32); extern void func_8038F10C(s32, s32); extern void func_8038F130(s32, s32); -extern void func_8031EE48(s32, s32); -extern void func_8031EE6C(s32, s32); -extern void func_8031EE90(s32, s32); -extern void func_8031EED8(s32, s32); -extern void func_8031EEB4(s32, s32); -extern void func_8031EB0C(s32, s32); -extern void func_8031EB30(s32, s32); -extern void func_8031EB54(s32, s32); -extern void func_8031EB78(s32, s32); -extern void func_8031D27C(s32, s32); -extern void func_8031D2F4(s32, s32); -extern void func_8031D2B4(s32, s32); -extern void func_8031D218(s32, s32); -extern void func_8031D23C(s32, s32); -extern void func_8031D334(s32, s32); -extern void func_8031D358(s32, s32); -extern void func_8031D37C(s32, s32); -extern void func_8031D3A0(s32, s32); -extern void func_8031D3C4(s32, s32); -extern void func_8031DCC8(s32, s32); -extern void func_8031DCEC(s32, s32); -extern void func_8031D3E8(s32, s32); -extern void func_8031D40C(s32, s32); -extern void func_8031D430(s32, s32); -extern void func_8031D454(s32, s32); -extern void func_8031D478(s32, s32); -extern void func_8031D49C(s32, s32); -extern void func_8031D4C0(s32, s32); -extern void func_8031D4E4(s32, s32); +extern void warp_lairEnterGVLobbyFromPointingStatueRoom(s32, s32); +extern void warp_lairEnterMMLobbyFromPuzzlesRoom(s32, s32); +extern void warp_lairEnterFPLobbyFromGVLobby(s32, s32); +extern void warp_lairEnterGVLobbyFromGVLevel(s32, s32); +extern void warp_lairEnterGVLobbyFromFPLobby(s32, s32); +extern void warp_ccwExitSpringWhipcrackRoom(s32, s32); +extern void warp_ccwExitSummerWhipcrackRoom(s32, s32); +extern void warp_ccwExitAutumnWhipcrackRoom(s32, s32); +extern void warp_ccwExitWinterWhipcrackRoom(s32, s32); +extern void warp_gvEnterMatchingPyramid(s32, s32); +extern void warp_gvEnterMazePyramid(s32, s32); +extern void warp_gvEnterWaterPyramidUpper(s32, s32); +extern void warp_gvEnterWaterPyramidLower(s32, s32); +extern void warp_gvEnterRubeePyramid(s32, s32); +extern void warp_gvExitMatchingPyramid(s32, s32); +extern void warp_gvExitMazePyramid(s32, s32); +extern void warp_gvExitWaterPyramidLower(s32, s32); +extern void warp_gvExitRubeePyramid(s32, s32); +extern void warp_bgsEnterTanktup(s32, s32); +extern void warp_bgsEnterMrVileRightNostril(s32, s32); +extern void warp_bgsEnterMrVileLeftNostril(s32, s32); +extern void warp_bgsExitTanktup(s32, s32); +extern void warp_bgsExitVileRightNostril(s32, s32); +extern void warp_bgsExitVileLeftNostril(s32, s32); +extern void warp_ttcEnterSandcastle(s32, s32); +extern void warp_ttcStairAlcoveDown(s32, s32); +extern void warp_ttcStairAlcoveUp(s32, s32); +extern void warp_ttcEnterBlubbersShipUpper(s32, s32); +extern void warp_ttcEnterBlubbersShipSide(s32, s32); extern void func_8031D628(s32, s32); -extern void func_8031D508(s32, s32); -extern void func_8031D52C(s32, s32); -extern void func_8031F0D0(s32, s32); +extern void warp_ttcExitLighthouseTop(s32, s32); +extern void warp_ttcExitSandcastle(s32, s32); +extern void warp_fpEnterLevel(s32, s32); extern void func_8031FAB4(s32, s32); -extern void func_8031D598(s32, s32); -extern void func_8031D5BC(s32, s32); -extern void func_8031FA6C(s32, s32); +extern void warp_ttcExitBlubbersShipUpper(s32, s32); +extern void warp_ttcExitBlubbersShipSide(s32, s32); +extern void warp_lairEnterDingpotRoomFromFurnaceFun(s32, s32); extern void func_8031FA90(s32, s32); -extern void func_8031D670(s32, s32); -extern void func_8031D694(s32, s32); -extern void func_8031D6B8(s32, s32); -extern void func_8031D6DC(s32, s32); +extern void warp_mmmEnterDiningRoomDoor(s32, s32); +extern void warp_mmmEnterDiningRoomChimney(s32, s32); +extern void warp_mmmEnterWellTop(s32, s32); +extern void warp_mmmEnterTumblarShed(s32, s32); extern void func_8031DAE0(s32, s32); -extern void func_8031DA84(s32, s32); +extern void warp_mmmEnterChurchSecretRoom(s32, s32); extern void func_8031DC10(s32, s32); -extern void func_8031DC68(s32, s32); -extern void func_8031D700(s32, s32); -extern void func_8031D724(s32, s32); -extern void func_8031D748(s32, s32); -extern void func_8031D76C(s32, s32); -extern void func_8031D790(s32, s32); -extern void func_8031D7B4(s32, s32); -extern void func_8031D7D8(s32, s32); -extern void func_8031D7FC(s32, s32); +extern void warp_mmmEnterRainBarrelBottom(s32, s32); +extern void warp_mmmEnterCellar(s32, s32); +extern void warp_mmmEnterRedFeatherRoom(s32, s32); +extern void warp_mmmEnterBlueEggRoom(s32, s32); +extern void warp_mmmEnterNoteRoom(s32, s32); +extern void warp_mmmEnterBrokenFloorboardRoom(s32, s32); +extern void warp_mmmEnterBedroom(s32, s32); +extern void warp_mmmEnterBathroomWindow(s32, s32); +extern void warp_mmmExitDiningRoomDoor(s32, s32); extern void func_8031D820(s32, s32); -extern void func_8031D844(s32, s32); -extern void func_8031D868(s32, s32); -extern void func_8031D88C(s32, s32); -extern void func_8031D8B0(s32, s32); +extern void warp_mmmExitWellTop(s32, s32); +extern void warp_mmmExitTumblarShed(s32, s32); +extern void warp_mmmExitChurchFrontDoor(s32, s32); +extern void warp_mmmExitChurchSecretRoom(s32, s32); extern void func_8031D8D4(s32, s32); -extern void func_8031D8F8(s32, s32); -extern void func_8031D91C(s32, s32); -extern void func_8031D940(s32, s32); -extern void func_8031D964(s32, s32); -extern void func_8031D988(s32, s32); -extern void func_8031D9AC(s32, s32); -extern void func_8031D9D0(s32, s32); -extern void func_8031D9F4(s32, s32); -extern void func_8031DA18(s32, s32); -extern void func_8031DA3C(s32, s32); -extern void func_8031DA60(s32, s32); -extern void func_8031DB88(s32, s32); -extern void func_8031DD78(s32, s32); -extern void func_8031DD9C(s32, s32); -extern void func_8031DDC0(s32, s32); -extern void func_8031DDE4(s32, s32); -extern void func_8031DE08(s32, s32); -extern void func_8031DE74(s32, s32); -extern void func_8031DE98(s32, s32); -extern void func_8031DEBC(s32, s32); -extern void func_8031DF04(s32, s32); -extern void func_8031DF28(s32, s32); -extern void func_8031DF4C(s32, s32); -extern void func_8031DEE0(s32, s32); -extern void func_8031DF70(s32, s32); -extern void func_8031DF94(s32, s32); -extern void func_8031DFB8(s32, s32); -extern void func_8031DFDC(s32, s32); -extern void func_8031E000(s32, s32); -extern void func_8031E024(s32, s32); -extern void func_8031E048(s32, s32); -extern void func_8031E06C(s32, s32); -extern void func_8031E090(s32, s32); -extern void func_8031E0B4(s32, s32); -extern void func_8031E0D8(s32, s32); -extern void func_8031E0FC(s32, s32); -extern void func_8031E120(s32, s32); -extern void func_8031E144(s32, s32); -extern void func_8031E168(s32, s32); -extern void func_8031E18C(s32, s32); -extern void func_8031E1B0(s32, s32); -extern void func_8031E1D4(s32, s32); -extern void func_8031E2B8(s32, s32); -extern void func_8031E2E0(s32, s32); +extern void warp_mmmExitRainBarrelBottom(s32, s32); +extern void warp_mmmExitCellar(s32, s32); +extern void warp_mmmExitRedFeatherRoom(s32, s32); +extern void warp_mmmExitBlueEggRoom(s32, s32); +extern void warp_mmmExitBathroomWindow(s32, s32); +extern void warp_mmmExitBrokenFloorboardRoom(s32, s32); +extern void warp_mmmExitBedroom(s32, s32); +extern void warp_mmmExitNoteRoom(s32, s32); +extern void warp_mmmChurchTowerUp(s32, s32); +extern void warp_mmmChurchTowerDown(s32, s32); +extern void warp_mmmExitMumbosHut(s32, s32); +extern void warp_mmmEnterMumbosHut(s32, s32); +extern void warp_ccExitWonderwingRoom(s32, s32); +extern void warp_ccEnterClankerBelly(s32, s32); +extern void warp_ccEnterClankerMouth(s32, s32); +extern void warp_ccEnterWonderwingRoom(s32, s32); +extern void warp_mmEnterLevel(s32, s32); +extern void warp_rbbEnterCaptainsRoomWindow(s32, s32); +extern void warp_rbbEnterCabinRoomWindow(s32, s32); +extern void warp_rbbEnterEngineRoomPipe(s32, s32); +extern void warp_rbbEnterKitchenPipe(s32, s32); +extern void warp_rbbEnterNavigationRoomWindow(s32, s32); +extern void warp_rbbEnterBoomBoxPipe(s32, s32); +extern void warp_rbbEnterEngineRoomDoor(s32, s32); +extern void warp_rbbEnterChumpWarehouseWindow(s32, s32); +extern void warp_rbbEnterBoatRoom(s32, s32); +extern void warp_rbbEnterChompaContainer(s32, s32); +extern void warp_rbbEnterSeamanGrublinContainer(s32, s32); +extern void warp_rbbEnterBoomBoxContainer(s32, s32); +extern void warp_rbbExitCaptainsRoomWindow(s32, s32); +extern void warp_rbbExitCabinRoomWindow(s32, s32); +extern void warp_rbbExitEngineRoomPipe(s32, s32); +extern void warp_rbbExitKitchenPipe(s32, s32); +extern void warp_rbbExitNavigationRoomWindow(s32, s32); +extern void warp_rbbExitBoomBoxPipe(s32, s32); +extern void warp_rbbExitEngineRoomDoor(s32, s32); +extern void warp_rbbExitBoatRoom(s32, s32); +extern void warp_rbbExitChompaContainer(s32, s32); +extern void warp_rbbExitSeamanGrublinContainer(s32, s32); +extern void warp_rbbExitBoomBoxContainer(s32, s32); +extern void warp_rbbExitBossBoomBoxRoom(s32, s32); +extern void warp_rbbEnterBossBoomBoxRoom(s32, s32); +extern void warp_rbbEnterChumpWarehouseDoor(s32, s32); +extern void warp_rbbExitChumpWarehouseDoor(s32, s32); extern void func_8031E308(s32, s32); extern void func_8031E32C(s32, s32); extern void func_8031E350(s32, s32); @@ -208,86 +208,86 @@ extern void func_8031E644(s32, s32); extern void func_8031E668(s32, s32); extern void func_8031E68C(s32, s32); extern void func_8031E6B0(s32, s32); -extern void func_8031E6D4(s32, s32); -extern void func_8031E6F8(s32, s32); -extern void func_8031E71C(s32, s32); -extern void func_8031E740(s32, s32); -extern void func_8031E764(s32, s32); -extern void func_8031E788(s32, s32); -extern void func_8031E7AC(s32, s32); -extern void func_8031E7D0(s32, s32); -extern void func_8031E7F4(s32, s32); -extern void func_8031E9EC(s32, s32); -extern void func_8031EA10(s32, s32); -extern void func_8031EA34(s32, s32); -extern void func_8031EA58(s32, s32); -extern void func_8031E95C(s32, s32); -extern void func_8031E980(s32, s32); -extern void func_8031E9A4(s32, s32); -extern void func_8031E9C8(s32, s32); -extern void func_8031EB9C(s32, s32); -extern void func_8031EBC0(s32, s32); -extern void func_8031EBE4(s32, s32); -extern void func_8031EC08(s32, s32); -extern void func_8031EC2C(s32, s32); -extern void func_8031EC50(s32, s32); -extern void func_8031EC74(s32, s32); +extern void warp_ccwExitWinterToHub(s32, s32); +extern void warp_ccwExitSpringToHub(s32, s32); +extern void warp_ccwExitSummerToHub(s32, s32); +extern void warp_ccwExitAutumnToHub(s32, s32); +extern void warp_ccwEnterWinter(s32, s32); +extern void warp_ccwEnterSpring(s32, s32); +extern void warp_ccwEnterSummer(s32, s32); +extern void warp_ccwEnterAutumn(s32, s32); +extern void warp_gvExitSandybuttMazeBack(s32, s32); +extern void warp_ttcExitSpringMumbosHut(s32, s32); +extern void warp_ttcExitSummerMumbosHut(s32, s32); +extern void warp_ttcExitAutumnMumbosHut(s32, s32); +extern void warp_ttcExitWinterMumbosHut(s32, s32); +extern void warp_ttcEnterSpringMumbosHut(s32, s32); +extern void warp_ttcEnterSummerMumbosHut(s32, s32); +extern void warp_ttcEnterAutumnMumbosHut(s32, s32); +extern void warp_ttcEnterWinterMumbosHut(s32, s32); +extern void warp_ccwEnterSpringNabnutDoor(s32, s32); +extern void warp_ccwEnterSummerNabnutDoor(s32, s32); +extern void warp_ccwEnterAutumnNabnutDoor(s32, s32); +extern void warp_ccwExitSpringNabnutDoor(s32, s32); +extern void warp_ccwExitSummerNabnutDoor(s32, s32); +extern void warp_ccwExitAutumnNabnutDoor(s32, s32); +extern void warp_ccwExitWinterNabnutDoor(s32, s32); extern void func_8031F0F4(s32, s32); extern void func_8031F118(s32, s32); -extern void func_8031F184(s32, s32); -extern void func_8031FA00(s32, s32); -extern void func_8031F558(s32, s32); -extern void func_8031F314(s32, s32); -extern void func_8031F2CC(s32, s32); -extern void func_8031F2F0(s32, s32); -extern void func_8031F25C(s32, s32); -extern void func_8031F294(s32, s32); -extern void func_8031F214(s32, s32); -extern void func_8031F238(s32, s32); -extern void func_8031F1A8(s32, s32); -extern void func_8031F1CC(s32, s32); -extern void func_8031F1F0(s32, s32); -extern void func_8031F338(s32, s32); -extern void func_8031F35C(s32, s32); -extern void func_8031F380(s32, s32); -extern void func_8031F3A4(s32, s32); -extern void func_8031F3C8(s32, s32); -extern void func_8031F3EC(s32, s32); -extern void func_8031F410(s32, s32); -extern void func_8031F520(s32, s32); -extern void func_8031F4E8(s32, s32); -extern void func_8031F434(s32, s32); -extern void func_8031F458(s32, s32); -extern void func_8031F47C(s32, s32); -extern void func_8031F4A0(s32, s32); -extern void func_8031F4C4(s32, s32); -extern void func_8031F5C4(s32, s32); -extern void func_8031F5E8(s32, s32); +extern void warp_lairEnterGVPuzzleRoomFromMMMLobby(s32, s32); +extern void warp_ttcExitSharkfoodIsland(s32, s32); +extern void warp_lairEnterRBBLobbyFromRBBLevel(s32, s32); +extern void warp_lairEnterBGSLobbyFromBGSLevel(s32, s32); +extern void warp_fpExitWozzasCave(s32, s32); +extern void warp_fpEnterWozzasCave(s32, s32); +extern void warp_lairEnterCryptFromMMMLobby(s32, s32); +extern void warp_lairEnterMMMLobbyFromCrypt(s32, s32); +extern void warp_lairEnterPointingGruntyStatueFromBGSLobby(s32, s32); +extern void warp_lairEnterBGSLobbyFromPointingGruntyStatueRoom(s32, s32); +extern void warp_lairEnterMMMLobbyFromGVPuzzleRoom(s32, s32); +extern void warp_lairEnterGVPuzzleRoomFromFPLobby(s32, s32); +extern void warp_lairFPLobbyFromGVPuzzleRoom(s32, s32); +extern void warp_lairEnter640NoteDoorRoomFromFPLobby(s32, s32); +extern void warp_lairEnter640NoteDoorRoomFromCCWLobbyTokenEntrance(s32, s32); +extern void warp_lairEnter640NoteDoorRoomFromCCWLobbyDoorEntrance(s32, s32); +extern void warp_lairEnter640NoteDoorRoomFromRBBLobby(s32, s32); +extern void warp_lairRBBLobbyFrom640NoteDoorRoom(s32, s32); +extern void warp_lairCCWLobbyFrom640NoteDoorRoomDoorEntrance(s32, s32); +extern void warp_lairCCWLobbyFrom640NoteDoorRoomTokenEntrance(s32, s32); +extern void warp_lairEnterFPLobbyFrom640NoteDoorRoom(s32, s32); +extern void warp_ccwEnterSpringZubbaHive(s32, s32); +extern void warp_ccwEnterSummerZubbaHive(s32, s32); +extern void warp_ccwEnterAutumnZubbaHive(s32, s32); +extern void warp_ccwExitSpringZubbaHive(s32, s32); +extern void warp_ccwExitSummerZubbaHive(s32, s32); +extern void warp_ccwExitAutumnZubbaHive(s32, s32); +extern void warp_lairEnterMMMPuzzleFromRBBLobby(s32, s32); +extern void warp_lairEnterRBBPuzzleFromRBBLobby(s32, s32); extern void func_8031FB6C(s32, s32); -extern void func_8031F60C(s32, s32); -extern void func_8031F630(s32, s32); -extern void func_8031F654(s32, s32); -extern void func_8031F678(s32, s32); -extern void func_8031F69C(s32, s32); -extern void func_8031F6C0(s32, s32); -extern void func_8031F6E4(s32, s32); -extern void func_8031F708(s32, s32); -extern void func_8031F72C(s32, s32); -extern void func_8031F764(s32, s32); -extern void func_8031F79C(s32, s32); -extern void func_8031F7D4(s32, s32); -extern void func_8031F878(s32, s32); -extern void func_8031F8C0(s32, s32); -extern void func_8031F8E4(s32, s32); -extern void func_8031F908(s32, s32); -extern void func_8031F92C(s32, s32); -extern void func_8031F950(s32, s32); -extern void func_8031F974(s32, s32); -extern void func_8031F998(s32, s32); -extern void func_8031F9BC(s32, s32); -extern void func_8031FA24(s32, s32); -extern void func_8031FA48(s32, s32); -extern void func_8031FB14(s32, s32); +extern void warp_lairEnterCCWLobbyFromFurnaceFunPath(s32, s32); +extern void warp_lairEnterFurnaceFunPathFromCCWLobby(s32, s32); +extern void warp_smEnterBanjosHouse(s32, s32); +extern void warp_smExitBanjosHouse(s32, s32); +extern void warp_lairEnterMMLobbyFromSMLevel(s32, s32); +extern void warp_smExitLair(s32, s32); +extern void warp_rbbExitAnchorRoom(s32, s32); +extern void warp_rbbEnterAnchorRoom(s32, s32); +extern void warp_mmmEnterWellBottom(s32, s32); +extern void warp_mmmExitWellBottom(s32, s32); +extern void warp_mmmEnterBathroomFromLoggo(s32, s32); +extern void warp_mmmEnterLoggo(s32, s32); +extern void warp_ccwEnterLevel(s32, s32); +extern void warp_ccwEnterSpringNabnutWindow(s32, s32); +extern void warp_ccwEnterSummerNabnutWindow(s32, s32); +extern void warp_ccwEnterAutumnNabnutWindow(s32, s32); +extern void warp_ccwEnterWinterNabnutWindow(s32, s32); +extern void warp_ccwExitSpringNabnutWindow(s32, s32); +extern void warp_ccwExitSummerNabnutWindow(s32, s32); +extern void warp_ccwExitAutumnNabnutWindow(s32, s32); +extern void warp_ccwExitWinterNabnutWindow(s32, s32); +extern void warp_gvEnterSNSChamper(s32, s32); +extern void warp_gvExitSNSChamper(s32, s32); +extern void warp_lairEnterLairFromSMLevel(s32, s32); extern void func_802C1674(s32, s32); extern void func_802C169C(s32, s32); @@ -315,81 +315,81 @@ typedef void (*Method_core2_AD110)(s32, s32); /* .data */ Method_core2_AD110 D_8036F980[] = { func_80388BEC, func_80334430, func_80386744, func_80386744, - func_80386744, func_8031DE2C, func_8031DE50, func_8038F10C, - func_8038F130, func_8031E83C, func_8031E818, func_8031E938, - func_8031E860, func_8031E884, func_8031E8A8, func_8031E8CC, - func_8031E8F0, func_8031E914, func_8031EA7C, func_8031EAA0, - func_8031EAC4, func_8031EAE8, func_8031D11C, func_8031D140, - func_8031D164, func_8031D188, func_8031D1AC, func_8031D1D0, - func_8031D1F4, func_8031D09C, func_8031D06C, func_80334430, - func_80334430, func_80334430, func_8031F13C, func_8031F160, - func_8031F0AC, func_8031F088, func_8031F064, func_8031F01C, - func_8031F040, func_8031EC98, func_8031ECBC, func_8031ECE0, - func_8031ED04, func_8031ED28, func_8031ED4C, func_80388C00, + func_80386744, warp_gvEnterJinxy, warp_gvExitJinxy, func_8038F10C, + func_8038F130, warp_bgsEnterMumbosHut, warp_bgsExitMumbosHut, warp_ttcExitNipper, + warp_ttcEnterLevel, warp_ccEnterLevel, warp_bgsEnterLevel, warp_gvEnterLevel, + warp_mmmEnterLevel, warp_rbbEnterLevel, warp_ccwEnterSpringWhipcrackRoom, warp_ccwEnterSummerWhipcrackRoom, + warp_ccwEnterAutumnWhipcrackRoom, warp_ccwEnterWinterWhipcrackRoom, warp_mmEnterMumbosHut, warp_mmExitMumbosHut, + warp_mmEnterTickersTowerLower, warp_mmExitTickersTowerLower, warp_mmEnterTickersTowerUpper, warp_mmExitTickersTowerUpper, + warp_csNintendoLogo, func_8031D09C, func_8031D06C, func_80334430, + func_80334430, func_80334430, warp_lairEnterCCWPuzzleFromPointingGruntyStatueRoom, warp_lairEnterPointingGruntyStatueFromCCWPuzzleRoom, + warp_lairEnterCCLobbyFromCCLevel, warp_lairEnterCCLobbyFromCCWPuzzleRoom, warp_lairEnterCCWPuzzleRoomFromCCLobby, warp_lairEnterCCWPuzzleRoomFromTTCLobby, + warp_lairEnterTTCLobbyFromCCWPuzzleRoom, warp_ccwEnterWinterAcornStorage, warp_ccwEnterAutumnFloodedAttic, warp_ccwEnterWinterFloodedAttic, + warp_ccwExitWinterAcornStorage, warp_ccwExitAutumnFloodedAttic, warp_ccwExitWinterFloodedAttic, func_80388C00, func_80388C28, func_80388C50, CC_func_80388C78, func_80334430, func_80334430, func_80334430, func_802DC748, func_802DC780, - func_8031F57C, func_8031F5A0, func_8031EFD4, func_8031EFF8, - func_8031EF8C, func_8031EFB0, func_8031EF68, func_8031EF44, - func_8031ED70, func_8031ED94, func_8031EDB8, func_8031EDDC, - func_8031EE00, func_8031EE24, func_8031DD10, func_8031DD44, + warp_lairEnterRBBLobbyFromRBBPuzzleRoom, warp_lairEnterRBBLobbyFromMMMPuzzleRoom, warp_lairEnterCCWPuzzleRoomFromRedCauldronRoom, warp_lairEnterRedCauldronRoomFromCCWPuzzleRoom, + warp_lairEnterPuzzlesRoomFromCCWPuzzleRoom, warp_lairEnterCCWPuzzleRoomFromPuzzlesRoom, warp_lairEnterPointingStatueRoomFromGVLobbyNoteDoor, warp_lairEnterPuzzlesRoomFromMMLobby, + warp_fpEnterMumbosHut, warp_fpEnterBoggyIgloo, warp_fpEnterXmasTree, warp_fpExitMumbosHut, + warp_fpExitBoggyIgloo, warp_fpExitXmasTree, warp_bgsEnterTanktupConditional, warp_ttcEnterNippersShell, func_80363388, func_8038A0E4, func_8038A150, func_80334430, chOverlayPressStart_spawn, chOverlayPressStart_func_802DCDC0, func_802DC528, func_802DC560, - func_8031EF20, func_8031EEFC, func_80334430, func_8031EED8, - func_8031EEB4, func_8031EE90, func_8031EE6C, func_8031EE48, - func_8031EB0C, func_8031EB30, func_8031EB54, func_8031EB78, - func_8031D27C, func_8031D2F4, func_8031D2B4, func_8031D218, - func_8031D23C, func_8031D334, func_8031D358, func_8031D37C, - func_8031D3A0, func_8031D3C4, func_8031DCC8, func_8031DCEC, - func_8031D3E8, func_8031D40C, func_8031D430, func_8031D454, - func_8031D478, func_8031D49C, func_8031D4C0, func_8031D4E4, - func_8031D628, func_8031D508, func_8031D52C, func_8031F0D0, - func_8031FAB4, func_8031D598, func_8031D5BC, func_8031FA6C, - func_8031FA90, func_8031D670, func_8031D694, func_8031D6B8, - func_8031D6DC, func_8031DAE0, func_8031DA84, func_8031DC10, - func_8031DC68, func_8031D700, func_8031D724, func_8031D748, - func_8031D76C, func_8031D790, func_8031D7B4, func_8031D7D8, - func_8031D7FC, func_8031D820, func_8031D844, func_8031D868, - func_8031D88C, func_8031D8B0, func_8031D8D4, func_8031D8F8, - func_8031D91C, func_8031D940, func_8031D964, func_8031D988, - func_8031D9AC, func_8031D9D0, func_8031D9F4, func_8031DA18, - func_8031DA3C, func_8031DA60, func_8031DB88, func_8031DD78, - func_8031DD9C, func_8031DDC0, func_8031DDE4, func_8031DE08, - func_8031DE74, func_8031DE98, func_8031DEBC, func_8031DF04, - func_8031DF28, func_8031DF4C, func_8031DEE0, func_8031DF70, - func_8031DF94, func_8031DFB8, func_8031DFDC, func_8031E000, - func_8031E024, func_8031E048, func_8031E06C, func_8031E090, - func_8031E0B4, func_8031E0D8, func_8031E0FC, func_8031E120, - func_8031E144, func_8031E168, func_8031E18C, func_8031E1B0, - func_8031E1D4, func_8031E2B8, func_8031E2E0, func_8031E308, + func_8031EF20, warp_lairEnterMMLobbyFromMMLevel, func_80334430, warp_lairEnterGVLobbyFromGVLevel, + warp_lairEnterGVLobbyFromFPLobby, warp_lairEnterFPLobbyFromGVLobby, warp_lairEnterMMLobbyFromPuzzlesRoom, warp_lairEnterGVLobbyFromPointingStatueRoom, + warp_ccwExitSpringWhipcrackRoom, warp_ccwExitSummerWhipcrackRoom, warp_ccwExitAutumnWhipcrackRoom, warp_ccwExitWinterWhipcrackRoom, + warp_gvEnterMatchingPyramid, warp_gvEnterMazePyramid, warp_gvEnterWaterPyramidUpper, warp_gvEnterWaterPyramidLower, + warp_gvEnterRubeePyramid, warp_gvExitMatchingPyramid, warp_gvExitMazePyramid, warp_gvExitWaterPyramidLower, + warp_gvExitRubeePyramid, warp_bgsEnterTanktup, warp_bgsEnterMrVileRightNostril, warp_bgsEnterMrVileLeftNostril, + warp_bgsExitTanktup, warp_bgsExitVileRightNostril, warp_bgsExitVileLeftNostril, warp_ttcEnterSandcastle, + warp_ttcStairAlcoveDown, warp_ttcStairAlcoveUp, warp_ttcEnterBlubbersShipUpper, warp_ttcEnterBlubbersShipSide, + func_8031D628, warp_ttcExitLighthouseTop, warp_ttcExitSandcastle, warp_fpEnterLevel, + func_8031FAB4, warp_ttcExitBlubbersShipUpper, warp_ttcExitBlubbersShipSide, warp_lairEnterDingpotRoomFromFurnaceFun, + func_8031FA90, warp_mmmEnterDiningRoomDoor, warp_mmmEnterDiningRoomChimney, warp_mmmEnterWellTop, + warp_mmmEnterTumblarShed, func_8031DAE0, warp_mmmEnterChurchSecretRoom, func_8031DC10, + warp_mmmEnterRainBarrelBottom, warp_mmmEnterCellar, warp_mmmEnterRedFeatherRoom, warp_mmmEnterBlueEggRoom, + warp_mmmEnterNoteRoom, warp_mmmEnterBrokenFloorboardRoom, warp_mmmEnterBedroom, warp_mmmEnterBathroomWindow, + warp_mmmExitDiningRoomDoor, func_8031D820, warp_mmmExitWellTop, warp_mmmExitTumblarShed, + warp_mmmExitChurchFrontDoor, warp_mmmExitChurchSecretRoom, func_8031D8D4, warp_mmmExitRainBarrelBottom, + warp_mmmExitCellar, warp_mmmExitRedFeatherRoom, warp_mmmExitBlueEggRoom, warp_mmmExitBathroomWindow, + warp_mmmExitBrokenFloorboardRoom, warp_mmmExitBedroom, warp_mmmExitNoteRoom, warp_mmmChurchTowerUp, + warp_mmmChurchTowerDown, warp_mmmExitMumbosHut, warp_mmmEnterMumbosHut, warp_ccExitWonderwingRoom, + warp_ccEnterClankerBelly, warp_ccEnterClankerMouth, warp_ccEnterWonderwingRoom, warp_mmEnterLevel, + warp_rbbEnterCaptainsRoomWindow, warp_rbbEnterCabinRoomWindow, warp_rbbEnterEngineRoomPipe, warp_rbbEnterKitchenPipe, + warp_rbbEnterNavigationRoomWindow, warp_rbbEnterBoomBoxPipe, warp_rbbEnterEngineRoomDoor, warp_rbbEnterChumpWarehouseWindow, + warp_rbbEnterBoatRoom, warp_rbbEnterChompaContainer, warp_rbbEnterSeamanGrublinContainer, warp_rbbEnterBoomBoxContainer, + warp_rbbExitCaptainsRoomWindow, warp_rbbExitCabinRoomWindow, warp_rbbExitEngineRoomPipe, warp_rbbExitKitchenPipe, + warp_rbbExitNavigationRoomWindow, warp_rbbExitBoomBoxPipe, warp_rbbExitEngineRoomDoor, warp_rbbExitBoatRoom, + warp_rbbExitChompaContainer, warp_rbbExitSeamanGrublinContainer, warp_rbbExitBoomBoxContainer, warp_rbbExitBossBoomBoxRoom, + warp_rbbEnterBossBoomBoxRoom, warp_rbbEnterChumpWarehouseDoor, warp_rbbExitChumpWarehouseDoor, func_8031E308, func_8031E32C, func_8031E350, func_8031E374, func_8031E398, func_8031E3BC, func_8031E3E0, func_8031E404, func_8031E428, func_8031E44C, func_8031E470, func_8031E494, func_8031E4B8, func_8031E4DC, func_8031E500, func_8031E524, func_8031E548, func_8031E56C, func_8031E590, func_8031E5B4, func_8031E5D8, func_8031E5FC, func_8031E620, func_8031E644, func_8031E668, - func_8031E68C, func_8031E6B0, func_8031E6D4, func_8031E6F8, - func_8031E71C, func_8031E740, func_8031E764, func_8031E788, - func_8031E7AC, func_8031E7D0, func_8031E7F4, func_8031E9EC, - func_8031EA10, func_8031EA34, func_8031EA58, func_8031E95C, - func_8031E980, func_8031E9A4, func_8031E9C8, func_8031EB9C, - func_8031EBC0, func_8031EBE4, func_80334430, func_8031EC08, - func_8031EC2C, func_8031EC50, func_8031EC74, func_8031F0F4, - func_8031F118, func_8031F184, func_80334430, func_80334430, + func_8031E68C, func_8031E6B0, warp_ccwExitWinterToHub, warp_ccwExitSpringToHub, + warp_ccwExitSummerToHub, warp_ccwExitAutumnToHub, warp_ccwEnterWinter, warp_ccwEnterSpring, + warp_ccwEnterSummer, warp_ccwEnterAutumn, warp_gvExitSandybuttMazeBack, warp_ttcExitSpringMumbosHut, + warp_ttcExitSummerMumbosHut, warp_ttcExitAutumnMumbosHut, warp_ttcExitWinterMumbosHut, warp_ttcEnterSpringMumbosHut, + warp_ttcEnterSummerMumbosHut, warp_ttcEnterAutumnMumbosHut, warp_ttcEnterWinterMumbosHut, warp_ccwEnterSpringNabnutDoor, + warp_ccwEnterSummerNabnutDoor, warp_ccwEnterAutumnNabnutDoor, func_80334430, warp_ccwExitSpringNabnutDoor, + warp_ccwExitSummerNabnutDoor, warp_ccwExitAutumnNabnutDoor, warp_ccwExitWinterNabnutDoor, func_8031F0F4, + func_8031F118, warp_lairEnterGVPuzzleRoomFromMMMLobby, func_80334430, func_80334430, func_80334430, func_80334430, func_80334430, func_80334430, - func_80334430, func_8031FA00, func_8031F558, func_8031F314, - func_8031F2CC, func_8031F2F0, func_8031F25C, func_8031F294, - func_8031F214, func_8031F238, func_8031F1A8, func_8031F1CC, - func_8031F1F0, func_8031F338, func_8031F35C, func_8031F380, - func_8031F3A4, func_8031F3C8, func_8031F3EC, func_8031F410, - func_8031F520, func_8031F4E8, func_8031F434, func_8031F458, - func_8031F47C, func_8031F4A0, func_8031F4C4, func_8031F5C4, - func_8031F5E8, func_8031FB6C, func_8031F60C, func_8031F630, - func_8031F654, func_8031F678, func_8031F69C, func_8031F6C0, - func_8031F6E4, func_8031F708, func_8031F72C, func_8031F764, - func_8031F79C, func_8031F7D4, func_8031F878, func_8031F8C0, - func_8031F8E4, func_8031F908, func_8031F92C, func_8031F950, - func_8031F974, func_8031F998, func_8031F9BC, func_8031FA24, - func_8031FA48, func_8031FB14, func_80334430, func_80334430, + func_80334430, warp_ttcExitSharkfoodIsland, warp_lairEnterRBBLobbyFromRBBLevel, warp_lairEnterBGSLobbyFromBGSLevel, + warp_fpExitWozzasCave, warp_fpEnterWozzasCave, warp_lairEnterCryptFromMMMLobby, warp_lairEnterMMMLobbyFromCrypt, + warp_lairEnterPointingGruntyStatueFromBGSLobby, warp_lairEnterBGSLobbyFromPointingGruntyStatueRoom, warp_lairEnterMMMLobbyFromGVPuzzleRoom, warp_lairEnterGVPuzzleRoomFromFPLobby, + warp_lairFPLobbyFromGVPuzzleRoom, warp_lairEnter640NoteDoorRoomFromFPLobby, warp_lairEnter640NoteDoorRoomFromCCWLobbyTokenEntrance, warp_lairEnter640NoteDoorRoomFromCCWLobbyDoorEntrance, + warp_lairEnter640NoteDoorRoomFromRBBLobby, warp_lairRBBLobbyFrom640NoteDoorRoom, warp_lairCCWLobbyFrom640NoteDoorRoomDoorEntrance, warp_lairCCWLobbyFrom640NoteDoorRoomTokenEntrance, + warp_lairEnterFPLobbyFrom640NoteDoorRoom, warp_ccwEnterSpringZubbaHive, warp_ccwEnterSummerZubbaHive, warp_ccwEnterAutumnZubbaHive, + warp_ccwExitSpringZubbaHive, warp_ccwExitSummerZubbaHive, warp_ccwExitAutumnZubbaHive, warp_lairEnterMMMPuzzleFromRBBLobby, + warp_lairEnterRBBPuzzleFromRBBLobby, func_8031FB6C, warp_lairEnterCCWLobbyFromFurnaceFunPath, warp_lairEnterFurnaceFunPathFromCCWLobby, + warp_smEnterBanjosHouse, warp_smExitBanjosHouse, warp_lairEnterMMLobbyFromSMLevel, warp_smExitLair, + warp_rbbExitAnchorRoom, warp_rbbEnterAnchorRoom, warp_mmmEnterWellBottom, warp_mmmExitWellBottom, + warp_mmmEnterBathroomFromLoggo, warp_mmmEnterLoggo, warp_ccwEnterLevel, warp_ccwEnterSpringNabnutWindow, + warp_ccwEnterSummerNabnutWindow, warp_ccwEnterAutumnNabnutWindow, warp_ccwEnterWinterNabnutWindow, warp_ccwExitSpringNabnutWindow, + warp_ccwExitSummerNabnutWindow, warp_ccwExitAutumnNabnutWindow, warp_ccwExitWinterNabnutWindow, warp_gvEnterSNSChamper, + warp_gvExitSNSChamper, warp_lairEnterLairFromSMLevel, func_80334430, func_80334430, func_80334430, func_80334430, func_80334430, func_80334430, func_80334430, func_80334430, func_80334430, }; diff --git a/src/core2/code_BEF20.c b/src/core2/code_BEF20.c index cf545afd..5ad17a04 100644 --- a/src/core2/code_BEF20.c +++ b/src/core2/code_BEF20.c @@ -6,7 +6,7 @@ f32 time_getDelta(void); void func_80346DB4(s32); -s32 func_803463D4(enum item_e item, s32 diff); +s32 item_adjustByDiffWithHud(enum item_e item, s32 diff); void itemscore_noteScores_clear(void); s32 itemscore_noteScores_get(enum level_e lvl_id); void itemscore_timeScores_clear(void); @@ -24,19 +24,19 @@ s32 D_80386038; /* .code */ void func_80345EB0(enum item_e item){ if(func_802FAFE8(item)){ - func_803463D4(item, (s32)(-time_getDelta()*60.0f * 1.1)); + item_adjustByDiffWithHud(item, (s32)(-time_getDelta()*60.0f * 1.1)); }else{ func_802FACA4(item); } } void item_inc(enum item_e item){ - func_803463D4(item, 1); + item_adjustByDiffWithHud(item, 1); } void item_dec(enum item_e item){ if(!func_802E4A08()) - func_803463D4(item, -1); + item_adjustByDiffWithHud(item, -1); } s32 item_empty(enum item_e item){ @@ -47,7 +47,10 @@ s32 item_getCount(enum item_e item){ return D_80385F30[item]; } -s32 func_80345FB4(enum item_e item, s32 diff, s32 arg2){ +// func_80345FB4 +s32 item_adjustByDiff(enum item_e item, s32 diff, s32 no_hud){ + // Modifies the count of an item by the diff + // no_hud determines whether the HUD pops up during the adjustment s32 oldVal; s32 sp40; s32 sp3C; @@ -103,8 +106,8 @@ s32 func_80345FB4(enum item_e item, s32 diff, s32 arg2){ if(sp38){ D_80385F30[item] = MIN(sp38, D_80385F30[item]); } - if(!arg2){ - func_802FACA4(item); //displays item on HUD + if(!no_hud){ + func_802FACA4(item); // displays item on HUD if(item == ITEM_14_HEALTH || item == ITEM_17_AIR) func_802FACA4(ITEM_16_LIFE); } @@ -149,23 +152,34 @@ s32 func_80345FB4(enum item_e item, s32 diff, s32 arg2){ return D_80385F30[item]; } -s32 func_803463D4(enum item_e item, s32 diff){ - func_80345FB4(item, diff, 0); +// func_803463D4 +s32 item_adjustByDiffWithHud(enum item_e item, s32 diff){ + // Modifies the count of an item by the diff + // Displays the HUD during the adjustment + item_adjustByDiff(item, diff, 0); } -void func_803463F4(enum item_e item, s32 diff){ - func_80345FB4(item, diff, 1); +// func_803463F4 +void item_adjustByDiffWithoutHud(enum item_e item, s32 diff){ + // Modifies the count of an item by the diff + // Does not display the HUD during the adjustment + item_adjustByDiff(item, diff, 1); } void item_set(s32 item, s32 val){ - func_803463D4(item, val - item_getCount(item)); + item_adjustByDiffWithHud(item, val - item_getCount(item)); } -void func_80346448(s32 item){ - func_803463D4(item, 9999999); +// func_80346448 +void item_setMaxCount(s32 item){ + // Sets the count of an item to the max + // Used for TTC cheats and Lair refill pillows + item_adjustByDiffWithHud(item, 9999999); } -void func_8034646C(void){ +// func_8034646C +void item_setItemsStartCounts(void){ + // Sets the player initial inventory count int i; for(i = 0; i < 0x2C; i++){ D_80385F30[i] = 0; @@ -210,9 +224,11 @@ void itemscore_levelReset(enum level_e level){ } void func_803465BC(void){ + // Calls a function that does nothing? func_802FBDFC(); } +// A function that does nothing? void func_803465DC(void){} void func_803465E4(void){ @@ -226,7 +242,7 @@ void func_803465E4(void){ if(func_80334904() != 2) return; if(D_80385FE8){ - if( ncCamera_getType() != 3 //CAMERA_TYPE_3_STATIC + if( ncCamera_getType() != 3 // CAMERA_TYPE_3_STATIC && func_8028F070() && map_get() != MAP_33_UNUSED && map_get() != MAP_91_FILE_SELECT @@ -257,11 +273,11 @@ void func_803465E4(void){ }//L80346710 if(sp50){ - func_803463D4(ITEM_14_HEALTH, 0); + item_adjustByDiffWithHud(ITEM_14_HEALTH, 0); } if(sp54 == BS_24_FLY || sp54 == BS_23_FLY_ENTER){ - func_803463D4(ITEM_F_RED_FEATHER, 0); + item_adjustByDiffWithHud(ITEM_F_RED_FEATHER, 0); } if(!func_8028EC04() && func_8028F070()){ @@ -276,15 +292,15 @@ void func_803465E4(void){ D_80385FEC = MAX(0.0, D_80385FEC - time_getDelta()); }//L80346870 if( (!is_in_polluted_or_winter_water && is_underwater) || (is_in_polluted_or_winter_water && is_on_water_surface) ){//L80346894 - func_803463D4(ITEM_17_AIR, (s32)((f64)((-time_getDelta())*60.0f)*1.1)); + item_adjustByDiffWithHud(ITEM_17_AIR, (s32)((f64)((-time_getDelta())*60.0f)*1.1)); } else{ if(is_in_polluted_or_winter_water && is_underwater){//L803468D8 - func_803463D4(ITEM_17_AIR, (s32)(f64)((-time_getDelta()*60.0f)*2.1)); + item_adjustByDiffWithHud(ITEM_17_AIR, (s32)(f64)((-time_getDelta()*60.0f)*2.1)); }//L80346930 if(!is_in_polluted_or_winter_water || D_80385FEC == 0.0f){ if(!D_80385FE4 && D_80385F30[ITEM_17_AIR] < 3600){ - func_803463D4(ITEM_17_AIR, (s32)(((time_getDelta()*60.0f)*100.0)*1.1)); + item_adjustByDiffWithHud(ITEM_17_AIR, (s32)(((time_getDelta()*60.0f)*100.0)*1.1)); D_80385F30[ITEM_17_AIR] = MIN(D_80385F30[ITEM_17_AIR], 3600); } } @@ -321,7 +337,7 @@ void func_803465E4(void){ void func_80346C10(enum bs_e *retVal, enum bs_e fail_state, enum bs_e success_state, enum item_e item_id, int use_item){ if(item_empty(item_id)){ - func_803463D4(item_id, 0); + item_adjustByDiffWithHud(item_id, 0); func_8025A6EC(COMUSIC_2C_BUZZER, 22000); if(fail_state != -1){ *retVal = fail_state; diff --git a/src/core2/code_DA760.c b/src/core2/code_DA760.c index 745be003..81aee2c5 100644 --- a/src/core2/code_DA760.c +++ b/src/core2/code_DA760.c @@ -16,17 +16,17 @@ ActorInfo D_803731B0 = { int func_803616F0(Actor *this){ switch(this->unkF4_8){ case 1:// L80361728 - return fileProgressFlag_get(FILEPROG_31_MM_OPEN) && !func_802D9220(LEVEL_1_MUMBOS_MOUNTAIN); + return fileProgressFlag_get(FILEPROG_31_MM_OPEN) && !chmole_learnedAllLevelAbilities(LEVEL_1_MUMBOS_MOUNTAIN); case 2:// L80361750 - return fileProgressFlag_get(FILEPROG_32_TTC_OPEN) && !func_802D9220(LEVEL_2_TREASURE_TROVE_COVE); + return fileProgressFlag_get(FILEPROG_32_TTC_OPEN) && !chmole_learnedAllLevelAbilities(LEVEL_2_TREASURE_TROVE_COVE); case 3:// L80361778 - return fileProgressFlag_get(FILEPROG_33_CC_OPEN) && !func_802D9220(LEVEL_3_CLANKERS_CAVERN); + return fileProgressFlag_get(FILEPROG_33_CC_OPEN) && !chmole_learnedAllLevelAbilities(LEVEL_3_CLANKERS_CAVERN); case 4:// L803617A0 - return fileProgressFlag_get(FILEPROG_34_BGS_OPEN) && !func_802D9220(LEVEL_4_BUBBLEGLOOP_SWAMP); + return fileProgressFlag_get(FILEPROG_34_BGS_OPEN) && !chmole_learnedAllLevelAbilities(LEVEL_4_BUBBLEGLOOP_SWAMP); case 5:// L803617C8 - return fileProgressFlag_get(FILEPROG_35_FP_OPEN) && !func_802D9220(LEVEL_5_FREEZEEZY_PEAK); + return fileProgressFlag_get(FILEPROG_35_FP_OPEN) && !chmole_learnedAllLevelAbilities(LEVEL_5_FREEZEEZY_PEAK); case 6:// L803617F0 - return fileProgressFlag_get(FILEPROG_36_GV_OPEN) && !func_802D9220(LEVEL_7_GOBIS_VALLEY); + return fileProgressFlag_get(FILEPROG_36_GV_OPEN) && !chmole_learnedAllLevelAbilities(LEVEL_7_GOBIS_VALLEY); default: return FALSE; } diff --git a/src/core2/code_DC4B0.c b/src/core2/code_DC4B0.c index 49270e1c..745bf3d4 100644 --- a/src/core2/code_DC4B0.c +++ b/src/core2/code_DC4B0.c @@ -30,7 +30,7 @@ void func_803634BC(void){ void func_80363500(Actor *this){ if(!this->unk16C_4){ - if(!learnedAllTutorialAbilities()){ + if(!chmole_learnedAllSpiralMountainAbilities()){ func_803634BC(); } else{ @@ -40,7 +40,7 @@ void func_80363500(Actor *this){ this->unk16C_4 = 1; }//L8036355C - if(learnedAllTutorialAbilities()){ + if(chmole_learnedAllSpiralMountainAbilities()){ func_80363470(); marker_despawn(this->marker); } diff --git a/src/core2/fx/healthscore.c b/src/core2/fx/healthscore.c index 5c45bf41..5b746732 100644 --- a/src/core2/fx/healthscore.c +++ b/src/core2/fx/healthscore.c @@ -137,7 +137,7 @@ bool func_803012B8(f32 arg0, s32 arg1, s32 arg2){ void func_803012F8(void) { D_80381EF0 = 1; D_80381F28 = 0.0f; - func_803463D4(ITEM_14_HEALTH, 0); + item_adjustByDiffWithHud(ITEM_14_HEALTH, 0); D_80381F04 = (f32) item_getCount(ITEM_14_HEALTH); } @@ -170,7 +170,7 @@ void fxhealthscore_update(enum item_e item_id, struct8s *arg1) { if (D_80381F28 > 2.5) { D_80381EF0 = 2; } - func_803463D4(ITEM_14_HEALTH, 0); + item_adjustByDiffWithHud(ITEM_14_HEALTH, 0); break; case 2: diff --git a/src/core2/fx/honeycarrierscore.c b/src/core2/fx/honeycarrierscore.c index 47014854..0f4786ef 100644 --- a/src/core2/fx/honeycarrierscore.c +++ b/src/core2/fx/honeycarrierscore.c @@ -227,9 +227,9 @@ void fxhoneycarrierscore_update(s32 arg0, struct8s *arg1){ D_803815C4 = func_8023DB5C(); D_803815E4 = 0; D_803815E0 = 0.9999f; - func_803463D4(ITEM_13_EMPTY_HONEYCOMB, -6); + item_adjustByDiffWithHud(ITEM_13_EMPTY_HONEYCOMB, -6); timedFunc_set_2(0.25f, (GenFunction_2)func_8025A6EC, COMUSIC_2B_DING_B, 28000); - func_803463D4(ITEM_14_HEALTH, 0); + item_adjustByDiffWithHud(ITEM_14_HEALTH, 0); timedFunc_set_1(1.25f, (GenFunction_1)item_inc, ITEM_15_HEALTH_TOTAL); timedFunc_set_1(1.25f, (GenFunction_1)func_8030E484, SFX_3EA_UNKNOWN); timedFunc_set_2(1.25f, (GenFunction_2)item_set, ITEM_14_HEALTH, item_getCount(ITEM_15_HEALTH_TOTAL)+1); @@ -247,7 +247,7 @@ void fxhoneycarrierscore_update(s32 arg0, struct8s *arg1){ break; } if(D_803815C0 == 1) - func_803463D4(ITEM_13_EMPTY_HONEYCOMB, 0); + item_adjustByDiffWithHud(ITEM_13_EMPTY_HONEYCOMB, 0); break; } } diff --git a/src/core2/spawnqueue.c b/src/core2/spawnqueue.c index 2fbf2198..c0b27aee 100644 --- a/src/core2/spawnqueue.c +++ b/src/core2/spawnqueue.c @@ -96,7 +96,7 @@ extern ActorInfo D_80367CB4; //spent_goldfeather extern ActorInfo D_80367D00; //egg extern ActorInfo D_80367D24; //redfeather extern ActorInfo D_80367D48; //goldfeather -extern ActorInfo D_80367DA0; //bottles +extern ActorInfo gChMole; //bottles extern ActorInfo D_80367E20; //chmolehill extern ActorInfo D_80367E70; extern ActorInfo D_80367F30; @@ -257,7 +257,7 @@ void spawnQueue_reset(void){ spawnableActorList_add(&D_80367D48, actor_new, 0x0200000); //goldfeather spawnableActorList_add(&D_80367C90, actor_new, 0x0000004); //spent_redfeather spawnableActorList_add(&D_80367CB4, actor_new, 0x0000004); //spent_goldfeather - spawnableActorList_add(&D_80367DA0, actor_new, 0x0000180); //bottles + spawnableActorList_add(&gChMole, actor_new, 0x0000180); //bottles spawnableActorList_add(&D_80367E20, actor_new, 0x44); //chmolehill spawnableActorList_add(&D_80373DC0, actor_new, 0x80000); spawnableActorList_add(&D_80367E70, actor_new, 0x0); diff --git a/src/lair/code_5ED0.c b/src/lair/code_5ED0.c index c63592d2..335f2b6e 100644 --- a/src/lair/code_5ED0.c +++ b/src/lair/code_5ED0.c @@ -66,7 +66,7 @@ extern void ability_setAllLearned(s32); // set unlocked moves bitfield extern s32 ability_getAllLearned(void); // get unlocked moves bitfield extern s32 item_getCount(s32); // item count get -extern void func_803463F4(s32, s32); // item count set +extern void item_adjustByDiffWithoutHud(s32, s32); // item count set extern void func_80250530(s32, u16, f32); @@ -602,7 +602,7 @@ void func_8038CE28(void) D_8037DCB8->unk3C[i] = 0; // set joker card count to 0 - func_803463F4(ITEM_27_JOKER_CARD, item_getCount(0x27) * -1); + item_adjustByDiffWithoutHud(ITEM_27_JOKER_CARD, item_getCount(0x27) * -1); D_8037DCB8->unk8 = 0; D_8037DCB8->unk4 = NULL; @@ -636,7 +636,7 @@ void lair_func_8038CF18(void) D_8037DCB8->unk3C[i] = 0; // set joker card count to 0 - func_803463F4(ITEM_27_JOKER_CARD, item_getCount(ITEM_27_JOKER_CARD) * -1); + item_adjustByDiffWithoutHud(ITEM_27_JOKER_CARD, item_getCount(ITEM_27_JOKER_CARD) * -1); } lair_func_8038C6BC(); @@ -958,7 +958,7 @@ void func_8038D670(enum FF_Action next_state) { func_8038C2D4(D_8037DCB8->ffQuestionType); } if (((s32) D_8037DCB8->unk4->unk8 >= 7) && (quizQuestionAskedBitfield_get(func_8038D60C(D_8037DCB8->unk8)) == 0)) { - func_803463D4(ITEM_27_JOKER_CARD, D_8037DCB8->unk4->unk8 - 6); + item_adjustByDiffWithHud(ITEM_27_JOKER_CARD, D_8037DCB8->unk4->unk8 - 6); quizQuestionAskedBitfield_set(func_8038D60C(D_8037DCB8->unk8), TRUE); func_80356540(0xA8); } diff --git a/src/lair/code_86F0.c b/src/lair/code_86F0.c index 663ba6f1..47d02d86 100644 --- a/src/lair/code_86F0.c +++ b/src/lair/code_86F0.c @@ -74,7 +74,7 @@ void func_8038EB94(void){ func_802FAFC0(ITEM_14_HEALTH, COMUSIC_2B_DING_B); fileProgressFlag_set(FILEPROG_B9_DOUBLE_HEALTH, TRUE); func_80347958(); - func_803463D4(ITEM_14_HEALTH, 0); + item_adjustByDiffWithHud(ITEM_14_HEALTH, 0); gcpausemenu_80314AC8(1); } @@ -318,7 +318,7 @@ void func_8038F350(Actor *this, s32 next_state){ local->unk4--; local->unk0 &= ~(1 << temp_s1); 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); + item_adjustByDiffWithoutHud(ITEM_26_JIGGY_TOTAL, 1); } break; @@ -331,7 +331,7 @@ void func_8038F350(Actor *this, s32 next_state){ func_8038F1EC(this, temp_s1, 1); local->unk0 |= (1 << temp_s1); 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); + item_adjustByDiffWithoutHud(ITEM_26_JIGGY_TOTAL, -1); func_8038F250(this); } break; @@ -351,7 +351,7 @@ void func_8038F350(Actor *this, s32 next_state){ temp_s1 = func_8038F0EC(this); func_8038F1EC(this, temp_s1, 1); local->unk0 |= (1 << temp_s1); - func_803463F4(ITEM_26_JIGGY_TOTAL, -1); + item_adjustByDiffWithoutHud(ITEM_26_JIGGY_TOTAL, -1); } fileProgressFlag_setN(D_803947F8[this->unkF4_8 - 1].progress_flag, local->unk4, D_803947F8[this->unkF4_8 - 1].size_bits); func_8038F250(this); diff --git a/src/lair/code_A170.c b/src/lair/code_A170.c index cbe51848..783cb3e8 100644 --- a/src/lair/code_A170.c +++ b/src/lair/code_A170.c @@ -34,17 +34,17 @@ Actor *func_80390560(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx){ void func_803905CC(ActorMarker *marker, ActorMarker *other_marker){ switch (marker->unk14_20) { case 0x170: - func_80346448(ITEM_D_EGGS); + item_setMaxCount(ITEM_D_EGGS); fxSparkle_giantBlueEgg(&marker->propPtr->x); func_8025A6EC(SFX_EGG_REFILL, -1); break; case 0x171: - func_80346448(ITEM_F_RED_FEATHER); + item_setMaxCount(ITEM_F_RED_FEATHER); fxSparkle_giantRedFeather(&marker->propPtr->x); func_8025A6EC(SFX_RED_FEATHER_REFILL, -1); break; case 0x172: - func_80346448(ITEM_10_GOLD_FEATHER); + item_setMaxCount(ITEM_10_GOLD_FEATHER); fxSparkle_giantGoldFeather(&marker->propPtr->x); func_8025A6EC(SFX_GOLD_FEATHER_REFILL, -1); break;