Merge branch 'mr-origin-53'
This commit is contained in:
commit
b26ae6b1f3
|
@ -55,6 +55,7 @@ __pycache__/
|
|||
*__pycache__/
|
||||
expected/
|
||||
.*/
|
||||
!.gitlab/
|
||||
*.ld
|
||||
*.map
|
||||
*auto.txt
|
||||
|
|
|
@ -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)
|
|
@ -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,
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -116,7 +116,7 @@ void chLoggo_update(Actor *this){
|
|||
this->unk60 -= sp44;
|
||||
}
|
||||
else{
|
||||
func_8031F7D4(0, 0);
|
||||
warp_mmmEnterLoggo(0, 0);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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){
|
||||
|
|
|
@ -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{
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -266,7 +266,7 @@ void func_8024AF48(void){
|
|||
func_8024A880(0x9000);
|
||||
}
|
||||
else{
|
||||
if(learnedAllTutorialAbilities())
|
||||
if(chmole_learnedAllSpiralMountainAbilities())
|
||||
func_8024A9EC(0);
|
||||
func_8024A880(0x6fff);
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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){
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -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,
|
||||
};
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue