From 82cc8de2067d0630c5a31d2ef3c703f8c1a2fcb2 Mon Sep 17 00:00:00 2001 From: Owlenuff Date: Wed, 2 Oct 2024 09:55:46 +0200 Subject: [PATCH] Document ch Bottles2 --- include/enums.h | 21 ++-- include/functions.h | 2 +- include/prop.h | 2 +- src/BGS/code_3420.c | 2 +- src/FP/ch/boggy2.c | 2 +- src/SM/ch/attacktutorial.c | 4 +- src/SM/code_2990.c | 14 +-- src/SM/code_4070.c | 228 ++++++++++++++++++++----------------- src/SM/code_44D0.c | 2 +- src/core1/code_10A00.c | 2 +- src/core2/ch/gameSelect.c | 2 +- src/core2/ch/mole.c | 2 +- src/core2/code_4A6F0.c | 2 +- src/core2/code_4C020.c | 2 +- src/core2/code_5C240.c | 2 +- src/core2/code_91E10.c | 2 +- src/core2/code_DC4B0.c | 2 +- src/core2/code_E410.c | 2 +- src/core2/gc/dialog.c | 2 +- src/core2/gc/pauseMenu.c | 2 +- src/core2/gc/zoombox.c | 4 +- src/lair/ch/brentilda.c | 2 +- src/lair/code_5ED0.c | 2 +- src/lair/code_86F0.c | 2 +- src/lair/code_9C40.c | 2 +- 25 files changed, 167 insertions(+), 144 deletions(-) diff --git a/include/enums.h b/include/enums.h index cd25fbab..39087412 100644 --- a/include/enums.h +++ b/include/enums.h @@ -2210,7 +2210,8 @@ enum actor_e ACTOR_3AF_GRUNTY_SHADOW = 0x3AF, - ACTOR_3BA_UNKOWN = 0x3ba, + ACTOR_3B9_UNKNOWN = 0x3B9, + ACTOR_3BA_UNKNOWN, ACTOR_3BF_GRUNTLING_BLUE = 0x3bf, ACTOR_3C0_GRUNTLING_BLACK, @@ -2442,13 +2443,13 @@ enum bs_e enum sm_specific_flags { SM_SPECIFIC_FLAG_1 = 0x1, SM_SPECIFIC_FLAG_2, - SM_SPECIFIC_FLAG_3, + SM_SPECIFIC_FLAG_3_ALL_SM_ABILITIES_LEARNED, SM_SPECIFIC_FLAG_4, SM_SPECIFIC_FLAG_5, SM_SPECIFIC_FLAG_7 = 0x7, - SM_SPECIFIC_FLAG_8, - SM_SPECIFIC_FLAG_9, + SM_SPECIFIC_FLAG_8_ABILITY_HOLD_A_JUMP_HIGHER_UNLOCKED, + SM_SPECIFIC_FLAG_9_ABILITY_FEATHERY_UNLOCKED, SM_SPECIFIC_FLAG_A, SM_SPECIFIC_FLAG_C = 0xC, @@ -4404,8 +4405,8 @@ enum asset_e 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_DF9_TEXT_BOTTLES_UNKNOWN, + ASSET_DFA_TEXT_BOTTLES_JUMP_REFRESHER, ASSET_DFB_TEXT_BOTTLES_DIVE_LEARN, ASSET_DFC_TEXT_UNKNOWN, ASSET_DFD_TEXT_BOTTLES_SWIM_LEARN, @@ -4437,8 +4438,10 @@ enum asset_e ASSET_E17_TEXT_UNKNOWN, ASSET_E18_TEXT_UNKNOWN, ASSET_E19_TEXT_UNKNOWN, - - ASSET_E1D_TEXT_BOTTLES_TUTORIAL_OFFER_WAIT = 0xE1D, + ASSET_E1A_TEXT_BOTTLES_UNKNOWN, + ASSET_E1B_TEXT_BOTTLES_UNKNOWN, + ASSET_E1C_TEXT_BOTTLES_UNKNOWN, + ASSET_E1D_TEXT_BOTTLES_TUTORIAL_OFFER_WAIT, ASSET_E1F_TEXT_BOTTLES_TUTORIAL_OFFER = VER_SELECT(0xE1F, 0xa61, 0, 0), ASSET_E20_DIALOG_BOTTLES_BONUS_NOT_READY, @@ -4955,6 +4958,8 @@ enum marker_e{ MARKER_1E9_MUMBO_COST_SIGN, MARKER_1EA_GRUNTLING_RED, + MARKER_1ED_UNKNOWN = 0x1ED, + MARKER_1F1_GRUNTLING_BLACK = 0x1F1, MARKER_1F4_TOOTS = 0x1F4, diff --git a/include/functions.h b/include/functions.h index eca224a4..53d20c45 100644 --- a/include/functions.h +++ b/include/functions.h @@ -509,7 +509,7 @@ f32 climbGetBottomY(void); f32 climbGetTopY(void); void func_802596AC(f32 a0[3], f32 a1[3], f32 a2[3], f32 a3[3]); -void func_8024E55C(s32, s32 [6]); +void controller_copyFaceButtons(s32, s32 [6]); void __spawnQueue_add_1(GenFunction_1, s32); #define SPAWNQUEUE_ADD_1(method, arg0) __spawnQueue_add_1((GenFunction_1) (method), reinterpret_cast(s32, (arg0))) diff --git a/include/prop.h b/include/prop.h index 7d30e6da..fc5bcef2 100644 --- a/include/prop.h +++ b/include/prop.h @@ -146,7 +146,7 @@ typedef struct jinjo_s{ }ActorLocal_Jinjo; typedef struct ch_sm_4070{ - s32 unk0; + s32 dialog_id; }ActorLocal_SM_4070; typedef struct actor_s{ diff --git a/src/BGS/code_3420.c b/src/BGS/code_3420.c index 10a5510c..d8b1276e 100644 --- a/src/BGS/code_3420.c +++ b/src/BGS/code_3420.c @@ -658,7 +658,7 @@ void chvilegame_update(Actor *this) { } if (this->state == 5) { if (local->unkC == 7) { - func_8024E55C(0, sp30); + controller_copyFaceButtons(0, sp30); if ((sp30[FACE_BUTTON(BUTTON_B)] > 0) && func_8038C2A8(local->vile_marker)) { func_8038A068(this, 0xA); } diff --git a/src/FP/ch/boggy2.c b/src/FP/ch/boggy2.c index 765fb59d..e39ab5d4 100644 --- a/src/FP/ch/boggy2.c +++ b/src/FP/ch/boggy2.c @@ -403,7 +403,7 @@ void func_803896FC(Actor *this){ sp58 = func_8038BE20(this->position); sp54 = time_getDelta(); - func_8024E55C(0, sp3C); + controller_copyFaceButtons(0, sp3C); if(!this->volatile_initialized){ this->volatile_initialized = TRUE; diff --git a/src/SM/ch/attacktutorial.c b/src/SM/ch/attacktutorial.c index 086f45b2..e2b18388 100644 --- a/src/SM/ch/attacktutorial.c +++ b/src/SM/ch/attacktutorial.c @@ -211,8 +211,8 @@ void func_80387764(ActorMarker * marker){ func_8028F94C(2, actor->unk1C); } //L80387848 - if (!mapSpecificFlags_get(SM_SPECIFIC_FLAG_3) && chmole_learnedAllSpiralMountainAbilities() && temp_a2) { - mapSpecificFlags_set(SM_SPECIFIC_FLAG_3, TRUE); + if (!mapSpecificFlags_get(SM_SPECIFIC_FLAG_3_ALL_SM_ABILITIES_LEARNED) && chmole_learnedAllSpiralMountainAbilities() && temp_a2) { + mapSpecificFlags_set(SM_SPECIFIC_FLAG_3_ALL_SM_ABILITIES_LEARNED, TRUE); sp34 = ASSET_E12_TEXT_BOTTLES_LEARNED_TUTORIAL_MOVES; }//L80387898 diff --git a/src/SM/code_2990.c b/src/SM/code_2990.c index 45d0d341..ed951d2d 100644 --- a/src/SM/code_2990.c +++ b/src/SM/code_2990.c @@ -101,7 +101,7 @@ void chsmmole_skipIntroTutorial(void){ ability_unlock(ABILITY_8_FLAP_FLIP); ability_unlock(ABILITY_5_CLIMB); chsmmole_setSpiralMountainAbilitiesAsUsed(); - mapSpecificFlags_set(SM_SPECIFIC_FLAG_3, TRUE); + mapSpecificFlags_set(SM_SPECIFIC_FLAG_3_ALL_SM_ABILITIES_LEARNED, TRUE); } /** * @brief If the player is talking to Intro Bottles for the first time, use the @@ -211,8 +211,8 @@ void func_803892C8(ActorMarker *marker, enum asset_e text_id, s32 arg2){ Actor *actor; actor = marker_getActor(marker); - if(!mapSpecificFlags_get(SM_SPECIFIC_FLAG_3) && chmole_learnedAllSpiralMountainAbilities()){ - mapSpecificFlags_set(SM_SPECIFIC_FLAG_3, TRUE); + if(!mapSpecificFlags_get(SM_SPECIFIC_FLAG_3_ALL_SM_ABILITIES_LEARNED) && chmole_learnedAllSpiralMountainAbilities()){ + mapSpecificFlags_set(SM_SPECIFIC_FLAG_3_ALL_SM_ABILITIES_LEARNED, TRUE); gcdialog_showText(ASSET_E12_TEXT_BOTTLES_LEARNED_TUTORIAL_MOVES, 0xe, actor->position, actor->marker, func_803892C8, NULL); }//L8038933C else{ @@ -306,7 +306,7 @@ void chsmmole_80389610(Actor * this){ } break; case 8://L80389720 - if(mapSpecificFlags_get(SM_SPECIFIC_FLAG_3)){ + if(mapSpecificFlags_get(SM_SPECIFIC_FLAG_3_ALL_SM_ABILITIES_LEARNED)){ if(fileProgressFlag_get(FILEPROG_A6_FURNACE_FUN_COMPLETE)){ sp2C = ASSET_E37_TEXT_BOTTLES_STOP_WASTING_TIME_AFTER_FURNACE_FUN; sp28 |= 1; @@ -429,7 +429,7 @@ void chsmmole_Update(Actor * this){ mapSpecificFlags_set(SM_SPECIFIC_FLAG_1, TRUE); if(chmole_learnedAllSpiralMountainAbilities()){ - mapSpecificFlags_set(SM_SPECIFIC_FLAG_3, TRUE); + mapSpecificFlags_set(SM_SPECIFIC_FLAG_3_ALL_SM_ABILITIES_LEARNED, TRUE); mapSpecificFlags_set(SM_SPECIFIC_FLAG_2, TRUE); mapSpecificFlags_set(SM_SPECIFIC_FLAG_C, TRUE); mapSpecificFlags_set(SM_SPECIFIC_FLAG_F, TRUE); @@ -446,7 +446,7 @@ void chsmmole_Update(Actor * this){ func_8028E668(this->position, 180.0f, -40.0f, 120.0f); }//L80389B64 - func_8024E55C(0,sp50); //get face buttons press counters + controller_copyFaceButtons(0,sp50); //get face buttons press counters player_getPosition(sp44); switch (this->state) { @@ -455,7 +455,7 @@ void chsmmole_Update(Actor * this){ func_80328FB0(this, 4.0f); if( (this->unkF4_8 == 1 && !mapSpecificFlags_get(SM_SPECIFIC_FLAG_1)) || (this->unkF4_8 == 8 && !mapSpecificFlags_get(SM_SPECIFIC_FLAG_2)) - || (this->unkF4_8 == 8 && mapSpecificFlags_get(SM_SPECIFIC_FLAG_3) && !mapSpecificFlags_get(SM_SPECIFIC_FLAG_F)) + || (this->unkF4_8 == 8 && mapSpecificFlags_get(SM_SPECIFIC_FLAG_3_ALL_SM_ABILITIES_LEARNED) && !mapSpecificFlags_get(SM_SPECIFIC_FLAG_F)) ){//L80389C50 if( ((ml_distance_vec3f(sp44, this->unk1C) < this->actor_specific_1_f) && func_8028F20C()) diff --git a/src/SM/code_4070.c b/src/SM/code_4070.c index b021c381..e7de9f11 100644 --- a/src/SM/code_4070.c +++ b/src/SM/code_4070.c @@ -2,143 +2,161 @@ #include "functions.h" #include "variables.h" -//extern -Actor *func_802D94B4(ActorMarker *, Gfx **, Mtx **, Vtx**); +/* extern functions */ +Actor *func_802D94B4(ActorMarker *, Gfx **, Mtx **, Vtx **); void timed_exitStaticCamera(f32); -//public -void SM_func_8038A5D8(Actor *this); -void func_8038A4DC(Actor *this, s32 arg1); +/* public functions */ +void chBottles2_update(Actor *this); +void chBottles2_setState(Actor *this, s32 state); /* .data */ -ActorInfo D_8038B0B0 = { 0x1ED, 0x3B9, 0, 1, NULL, - SM_func_8038A5D8, actor_update_func_80326224, func_80325340, +enum chBottles2_state_e { + BOTTLES2_STATE_1_IDLE = 1, + BOTTLES2_STATE_2_TEACHING, + BOTTLES2_STATE_3_DISAPPEARED +}; + +ActorInfo D_8038B0B0 = { + MARKER_1ED_UNKNOWN, ACTOR_3B9_UNKNOWN, NULL, 1, NULL, + chBottles2_update, actor_update_func_80326224, func_80325340, 0, 0, 0.0f, 0 }; - /* .code */ -void func_8038A460(Actor *this){ - timed_setStaticCameraToNode(0.0f,4); +void __chBottles2_setStaticCameraToNode4(Actor *this) { + timed_setStaticCameraToNode(0.0f, 4); } -void func_8038A488(ActorMarker *caller, enum asset_e text_id, s32 arg2){ +void __chBottles2_textCallback(ActorMarker *caller, enum asset_e text_id, s32 arg2) { Actor *actor = marker_getActor(caller); - if(text_id == 0xdf9 || text_id == 0xe12){ - func_8038A4DC(actor, 3); + + if (text_id == ASSET_DF9_TEXT_BOTTLES_UNKNOWN || text_id == ASSET_E12_TEXT_BOTTLES_LEARNED_TUTORIAL_MOVES) { + chBottles2_setState(actor, BOTTLES2_STATE_3_DISAPPEARED); } + timed_exitStaticCamera(0.0f); } -void func_8038A4DC(Actor *this, s32 arg1){ - switch(arg1){ - case 2://L8038A50C - this->sm_4070.unk0 = 0; - player_getPosition(this->velocity); - func_8028F918(0); - if(ability_isUnlocked(ABILITY_7_FEATHERY_FLAP)){ - mapSpecificFlags_set(SM_SPECIFIC_FLAG_9, TRUE); - }else if(ability_isUnlocked(ABILITY_A_HOLD_A_JUMP_HIGHER)){//L8038A540 - mapSpecificFlags_set(SM_SPECIFIC_FLAG_8, TRUE); - }else{//L8038A560 - func_8038A460(this); - ability_unlock(ABILITY_A_HOLD_A_JUMP_HIGHER); - gcdialog_showText(0xdf6, 0xe, this->unk1C, this->marker, func_8038A488, NULL); - this->sm_4070.unk0 = 0xe1a; - mapSpecificFlags_set(SM_SPECIFIC_FLAG_8, FALSE); - } - break; - case 3://L8038A5B0 - mapSpecificFlags_set(SM_SPECIFIC_FLAG_5, TRUE); - break; +void chBottles2_setState(Actor *this, s32 state) { + switch (state) { + case BOTTLES2_STATE_2_TEACHING://L8038A50C + this->sm_4070.dialog_id = NULL; + player_getPosition(this->velocity); + func_8028F918(0); + + if (ability_isUnlocked(ABILITY_7_FEATHERY_FLAP)) { + mapSpecificFlags_set(SM_SPECIFIC_FLAG_9_ABILITY_FEATHERY_UNLOCKED, TRUE); + } + else if (ability_isUnlocked(ABILITY_A_HOLD_A_JUMP_HIGHER)) {//L8038A540 + mapSpecificFlags_set(SM_SPECIFIC_FLAG_8_ABILITY_HOLD_A_JUMP_HIGHER_UNLOCKED, TRUE); + } + else {//L8038A560 + __chBottles2_setStaticCameraToNode4(this); + ability_unlock(ABILITY_A_HOLD_A_JUMP_HIGHER); + + gcdialog_showText(ASSET_DF6_TEXT_BOTTLES_HIGH_JUMP_LEARN, 0xe, this->unk1C, this->marker, __chBottles2_textCallback, NULL); + this->sm_4070.dialog_id = ASSET_E1A_TEXT_BOTTLES_UNKNOWN; + mapSpecificFlags_set(SM_SPECIFIC_FLAG_8_ABILITY_HOLD_A_JUMP_HIGHER_UNLOCKED, FALSE); + } + break; + + case BOTTLES2_STATE_3_DISAPPEARED://L8038A5B0 + mapSpecificFlags_set(SM_SPECIFIC_FLAG_5, TRUE); + break; }//L8038A5BC - subaddie_set_state(this, arg1); + + subaddie_set_state(this, state); } -void SM_func_8038A5D8(Actor *this){ - f32 sp5C[3]; - s32 sp44[6]; - f32 sp40; - Actor *temp_v0; - s32 temp_a0; +void chBottles2_update(Actor *this) { + f32 plyr_pos[3]; + s32 face_buttons[6]; + f32 distance_to_bottles; + Actor *bottles_ptr; + s32 dialog_id; - if(!this->initialized){ - temp_v0 = actorArray_findClosestActorFromActorId(this->position, ACTOR_12B_TUTORIAL_BOTTLES, -1, &sp40); - if(temp_v0){ - this->unk1C_x = temp_v0->position_x; - this->unk1C_y = temp_v0->position_y; - this->unk1C_z = temp_v0->position_z; + if (!this->initialized) { + bottles_ptr = actorArray_findClosestActorFromActorId(this->position, ACTOR_12B_TUTORIAL_BOTTLES, -1, &distance_to_bottles); + + if (bottles_ptr) { + this->unk1C_x = bottles_ptr->position_x; + this->unk1C_y = bottles_ptr->position_y; + this->unk1C_z = bottles_ptr->position_z; } - else{//L8038A630 + else {//L8038A630 this->unk1C_x = this->position_x; this->unk1C_y = this->position_y; this->unk1C_z = this->position_z; }//L8038A644 + this->initialized = TRUE; }//L8038A650 - func_8024E55C(0, sp44); - switch (this->state) - { - case 1://L8038A688 - if(fileProgressFlag_get(FILEPROG_DB_SKIPPED_TUTORIAL)){ - marker_despawn(this->marker); - }else{ - if(mapSpecificFlags_get(SM_SPECIFIC_FLAG_E)){ - func_8038A4DC(this, 2); + controller_copyFaceButtons(0, face_buttons); + + switch (this->state) { + case BOTTLES2_STATE_1_IDLE://L8038A688 + if (fileProgressFlag_get(FILEPROG_DB_SKIPPED_TUTORIAL)) { + marker_despawn(this->marker); } - } - break; - - case 2://L8038A6C8 - if(!func_803114B0()){ - if(mapSpecificFlags_get(SM_SPECIFIC_FLAG_8)){ - func_8038A460(this); - ability_unlock(ABILITY_7_FEATHERY_FLAP); - gcdialog_showText(0xdf7, 0xa, this->unk1C, this->marker, func_8038A488, NULL); - this->sm_4070.unk0 = 0xe1b; - mapSpecificFlags_set(SM_SPECIFIC_FLAG_8, FALSE); - }//L8038A730 + else if (mapSpecificFlags_get(SM_SPECIFIC_FLAG_E)) { + chBottles2_setState(this, BOTTLES2_STATE_2_TEACHING); + } + break; - if(mapSpecificFlags_get(SM_SPECIFIC_FLAG_9)){ - func_8038A460(this); - ability_unlock(ABILITY_8_FLAP_FLIP); - gcdialog_showText(0xdf8, 0xa, this->unk1C, this->marker, func_8038A488, NULL); - this->sm_4070.unk0 = 0xe1c; - mapSpecificFlags_set(SM_SPECIFIC_FLAG_9, FALSE); - }//L8038A794 + case BOTTLES2_STATE_2_TEACHING://L8038A6C8 + if (!func_803114B0()) { + if (mapSpecificFlags_get(SM_SPECIFIC_FLAG_8_ABILITY_HOLD_A_JUMP_HIGHER_UNLOCKED)) { + __chBottles2_setStaticCameraToNode4(this); + ability_unlock(ABILITY_7_FEATHERY_FLAP); - if(mapSpecificFlags_get(SM_SPECIFIC_FLAG_A)){ - func_8038A460(this); - func_8028F94C(2, this->unk1C); - - if(!mapSpecificFlags_get(SM_SPECIFIC_FLAG_3) && chmole_learnedAllSpiralMountainAbilities()){ - mapSpecificFlags_set(SM_SPECIFIC_FLAG_3, TRUE); - temp_a0 = 0xe12; - }else{ - temp_a0 = 0xdf9; + gcdialog_showText(ASSET_DF7_TEXT_BOTTLES_FEATHERY_FLAP_LEARN, 0xa, this->unk1C, this->marker, __chBottles2_textCallback, NULL); + this->sm_4070.dialog_id = ASSET_E1B_TEXT_BOTTLES_UNKNOWN; + mapSpecificFlags_set(SM_SPECIFIC_FLAG_8_ABILITY_HOLD_A_JUMP_HIGHER_UNLOCKED, FALSE); + }//L8038A730 + + if (mapSpecificFlags_get(SM_SPECIFIC_FLAG_9_ABILITY_FEATHERY_UNLOCKED)) { + __chBottles2_setStaticCameraToNode4(this); + ability_unlock(ABILITY_8_FLAP_FLIP); + + gcdialog_showText(ASSET_DF8_TEXT_BOTTLES_FLAP_FLIP_LEARN, 0xa, this->unk1C, this->marker, __chBottles2_textCallback, NULL); + this->sm_4070.dialog_id = ASSET_E1C_TEXT_BOTTLES_UNKNOWN; + mapSpecificFlags_set(SM_SPECIFIC_FLAG_9_ABILITY_FEATHERY_UNLOCKED, FALSE); + }//L8038A794 + + if (mapSpecificFlags_get(SM_SPECIFIC_FLAG_A)) { + __chBottles2_setStaticCameraToNode4(this); + func_8028F94C(2, this->unk1C); + + if (!mapSpecificFlags_get(SM_SPECIFIC_FLAG_3_ALL_SM_ABILITIES_LEARNED) && chmole_learnedAllSpiralMountainAbilities()) { + mapSpecificFlags_set(SM_SPECIFIC_FLAG_3_ALL_SM_ABILITIES_LEARNED, TRUE); + dialog_id = ASSET_E12_TEXT_BOTTLES_LEARNED_TUTORIAL_MOVES; + } + else { + dialog_id = ASSET_DF9_TEXT_BOTTLES_UNKNOWN; + } + + gcdialog_showText(dialog_id, 0xe, this->unk1C, this->marker, __chBottles2_textCallback, NULL); + mapSpecificFlags_set(SM_SPECIFIC_FLAG_A, FALSE); + this->sm_4070.dialog_id = NULL; } + }//L8038A828 - gcdialog_showText(temp_a0, 0xe, this->unk1C, this->marker, func_8038A488, NULL); - mapSpecificFlags_set(SM_SPECIFIC_FLAG_A, FALSE); - this->sm_4070.unk0 = 0; + player_getPosition(plyr_pos); + plyr_pos[0] = this->velocity_x; + plyr_pos[2] = this->velocity_z; + func_8028FAB0(plyr_pos); + + if (func_8028EFC8() && face_buttons[FACE_BUTTON(BUTTON_B)] == TRUE && func_8028F20C()) { + if (this->sm_4070.dialog_id) { + gcdialog_showText(dialog_id = this->sm_4070.dialog_id, 0, NULL, NULL, NULL, NULL); + } } - }//L8038A828 - player_getPosition(sp5C); - sp5C[0] = this->velocity_x; - sp5C[2] = this->velocity_z; - func_8028FAB0(sp5C); - if( func_8028EFC8() - && sp44[FACE_BUTTON(BUTTON_B)] == 1 - && func_8028F20C() - ){ - if(this->sm_4070.unk0) - gcdialog_showText(temp_a0 = this->sm_4070.unk0, 0, NULL, NULL, NULL, NULL); - } - break; - - case 3://L8038A8A0 - marker_despawn(this->marker); - break; + break; + + case BOTTLES2_STATE_3_DISAPPEARED://L8038A8A0 + marker_despawn(this->marker); + break; }//L8038A8AC } diff --git a/src/SM/code_44D0.c b/src/SM/code_44D0.c index 56f94914..62905d89 100644 --- a/src/SM/code_44D0.c +++ b/src/SM/code_44D0.c @@ -46,7 +46,7 @@ void func_8038A8F8(Actor *this){ if( !mapSpecificFlags_get(SM_SPECIFIC_FLAG_10) && sp2C < (f32) this->unkF4_8 && 1780.0f < func_8028E82C()){ if( !mapSpecificFlags_get(SM_SPECIFIC_FLAG_2) - || (mapSpecificFlags_get(SM_SPECIFIC_FLAG_3) && !mapSpecificFlags_get(SM_SPECIFIC_FLAG_F)) + || (mapSpecificFlags_get(SM_SPECIFIC_FLAG_3_ALL_SM_ABILITIES_LEARNED) && !mapSpecificFlags_get(SM_SPECIFIC_FLAG_F)) ){ //L8038AA54 this->yaw_ideal = ml_distance_vec3f(this->velocity, this->unk1C) / 150.0; func_8028F3D8(this->unk1C, this->yaw_ideal, func_8038A8C0, this->marker); diff --git a/src/core1/code_10A00.c b/src/core1/code_10A00.c index 3f50ec47..88727b35 100644 --- a/src/core1/code_10A00.c +++ b/src/core1/code_10A00.c @@ -92,7 +92,7 @@ f32 func_8024E420(s32 arg0, s32 arg1, s32 arg2) { return phi_f2 *= arg0; } -void func_8024E55C(s32 controller_index, s32 dst[6]){ +void controller_copyFaceButtons(s32 controller_index, s32 dst[6]){ dst[FACE_BUTTON(BUTTON_A)] = D_80281138[controller_index].face_button[FACE_BUTTON(BUTTON_A)]; dst[FACE_BUTTON(BUTTON_B)] = D_80281138[controller_index].face_button[FACE_BUTTON(BUTTON_B)]; dst[FACE_BUTTON(BUTTON_C_LEFT)] = D_80281138[controller_index].face_button[FACE_BUTTON(BUTTON_C_LEFT)]; diff --git a/src/core2/ch/gameSelect.c b/src/core2/ch/gameSelect.c index c41c4a69..5bcf7c16 100644 --- a/src/core2/ch/gameSelect.c +++ b/src/core2/ch/gameSelect.c @@ -333,7 +333,7 @@ void func_802C4C14(Actor *this){ } else{//L802C4D24 func_8024E60C(0, sp74); - func_8024E55C(0, sp5C); + controller_copyFaceButtons(0, sp5C); controller_getJoystick(0, &sp54); switch(this->state){ case 2: diff --git a/src/core2/ch/mole.c b/src/core2/ch/mole.c index ac327701..932eab00 100644 --- a/src/core2/ch/mole.c +++ b/src/core2/ch/mole.c @@ -376,7 +376,7 @@ void chmole_update(Actor *this){ } } }//L802D9F34 - func_8024E55C(0, sp50); // get face buttons press counters + controller_copyFaceButtons(0, sp50); // get face buttons press counters switch(this->state){ case 1://L802D9F70 this->yaw_ideal = func_80329784(this); diff --git a/src/core2/code_4A6F0.c b/src/core2/code_4A6F0.c index cc08a469..ae8efa66 100644 --- a/src/core2/code_4A6F0.c +++ b/src/core2/code_4A6F0.c @@ -314,7 +314,7 @@ void chMumbo_update(Actor *this) { && func_8028F20C() && func_8028EFC8() ){ - func_8024E55C(0, face_buttons); + controller_copyFaceButtons(0, face_buttons); if(face_buttons[FACE_BUTTON(BUTTON_B)] == 1){ if (D_8037DDF0 == TRANSFORM_7_WISHWASHY) { this->unk38_31 = 0; diff --git a/src/core2/code_4C020.c b/src/core2/code_4C020.c index 5db33954..89f40506 100644 --- a/src/core2/code_4C020.c +++ b/src/core2/code_4C020.c @@ -1013,7 +1013,7 @@ void func_802D5628(void){ D_8037DE08 -= time_getDelta(); } else{//L802D5B24 - func_8024E55C(0, sp50); //get button inputs + controller_copyFaceButtons(0, sp50); //get button inputs if(sp50[FACE_BUTTON(BUTTON_B)] == 1){ func_80324C58(); func_802D6114(); diff --git a/src/core2/code_5C240.c b/src/core2/code_5C240.c index 91fa5178..28940722 100644 --- a/src/core2/code_5C240.c +++ b/src/core2/code_5C240.c @@ -138,7 +138,7 @@ void func_802E35D8(void ) { } } else if (D_8037E8C0.unk14 == 3) { sp38 = 0; - func_8024E55C(0, &sp40); + controller_copyFaceButtons(0, &sp40); for(i = 0; i < 6; i++){ if (sp40[i] == 1) { sp38++; diff --git a/src/core2/code_91E10.c b/src/core2/code_91E10.c index 3f663217..ed23824e 100644 --- a/src/core2/code_91E10.c +++ b/src/core2/code_91E10.c @@ -487,7 +487,7 @@ void func_80319EA4(void) { if(D_803830E0 == NULL) return; - func_8024E55C(0, sp58); + controller_copyFaceButtons(0, sp58); controller_getJoystick(0, sp4C); for(phi_s0 = 0; phi_s0 < 4; phi_s0++){ gczoombox_update(D_803830E0->unk24[phi_s0]); diff --git a/src/core2/code_DC4B0.c b/src/core2/code_DC4B0.c index a4eac276..0c670033 100644 --- a/src/core2/code_DC4B0.c +++ b/src/core2/code_DC4B0.c @@ -6,7 +6,7 @@ void func_80363500(Actor *this); /* .data */ ActorInfo D_80373DC0= { - 0x1EE, ACTOR_3BA_UNKOWN, 0, + 0x1EE, ACTOR_3BA_UNKNOWN, 0, 0, NULL, func_80363500, actor_update_func_80326224, func_80325340, 0, 0, 0.0f, 0 diff --git a/src/core2/code_E410.c b/src/core2/code_E410.c index 97be2874..af0d226c 100644 --- a/src/core2/code_E410.c +++ b/src/core2/code_E410.c @@ -27,7 +27,7 @@ void func_80295448(void){ D_8037C310.unk0[0] = controller_getStartButton(0); func_8024E60C(0, &D_8037C310.unk0[1]); func_8024E6E0(0, &D_8037C310.unk0[4]); - func_8024E55C(0, &D_8037C310.unk0[8]); + controller_copyFaceButtons(0, &D_8037C310.unk0[8]); for(i=0; i<0xE; i++){//L802954A8 D_8037C310.unk7E[i] = D_8037C310.unk70[i]; if(D_8037C310.unk70[i]){ diff --git a/src/core2/gc/dialog.c b/src/core2/gc/dialog.c index 858888ea..38e1d099 100644 --- a/src/core2/gc/dialog.c +++ b/src/core2/gc/dialog.c @@ -376,7 +376,7 @@ void gcdialog_update(void) { func_8024E5A8(0, controller_face_buttons); func_8024E640(0, controller_side_buttons); } else { - func_8024E55C(0, controller_face_buttons); + controller_copyFaceButtons(0, controller_face_buttons); func_8024E60C(0, controller_side_buttons); } diff --git a/src/core2/gc/pauseMenu.c b/src/core2/gc/pauseMenu.c index 46cc988f..17447731 100644 --- a/src/core2/gc/pauseMenu.c +++ b/src/core2/gc/pauseMenu.c @@ -936,7 +936,7 @@ s32 gcPauseMenu_update(void) { return 0; } - func_8024E55C(0, face_button); + controller_copyFaceButtons(0, face_button); controller_getJoystick(0, joystick); func_8024E60C(0, sp60); func_8024E6E0(0, sp50); diff --git a/src/core2/gc/zoombox.c b/src/core2/gc/zoombox.c index 610cf954..a4e79ce6 100644 --- a/src/core2/gc/zoombox.c +++ b/src/core2/gc/zoombox.c @@ -881,7 +881,7 @@ void func_80316764(GcZoombox *this, s32 arg1) { f32 pad0; if (!this->unk1A4_10 ) { - func_8024E55C(0, sp38); + controller_copyFaceButtons(0, sp38); func_8024E60C(0, sp2C); phi_f0 = time_getDelta(); } else { @@ -1067,7 +1067,7 @@ void gczoombox_update(GcZoombox *this){ return; if( !this->unk1A4_10 ){ - func_8024E55C(0, sp58); + controller_copyFaceButtons(0, sp58); func_8024E60C(0, sp4C); tmp_f0 = time_getDelta(); } diff --git a/src/lair/ch/brentilda.c b/src/lair/ch/brentilda.c index 0d3de6b2..5f1656e4 100644 --- a/src/lair/ch/brentilda.c +++ b/src/lair/ch/brentilda.c @@ -120,7 +120,7 @@ void chBrentilda_update(Actor *this) { func_8028E668(this->position, 280.0f, -40.0f, 160.0f); this->yaw_ideal = (f32) func_80329784(this); func_80328FB0(this, 3.0f); - func_8024E55C(0, sp78); + controller_copyFaceButtons(0, sp78); player_getPosition(sp64); temp_f0 = sp64[1] - this->position[1]; if ((temp_f0 > -100.0f) && (temp_f0 < 350.0f)) { diff --git a/src/lair/code_5ED0.c b/src/lair/code_5ED0.c index 3e53a221..9ef68b7d 100644 --- a/src/lair/code_5ED0.c +++ b/src/lair/code_5ED0.c @@ -1159,7 +1159,7 @@ void lair_func_8038E0B0(void) { ){ func_80319EA4(); func_8038C9D0(); - func_8024E55C(0, sp48); + controller_copyFaceButtons(0, sp48); func_8024E60C(0, sp3C); if (D_8037DCB8->currFfMode < 3) { player_getPosition(D_8037DCB8->playerPosition); diff --git a/src/lair/code_86F0.c b/src/lair/code_86F0.c index 21fb5410..4b566399 100644 --- a/src/lair/code_86F0.c +++ b/src/lair/code_86F0.c @@ -468,7 +468,7 @@ void lair_func_8038F924(Actor *this) { particleEmitter_emitN(sp54, 6); } } - func_8024E55C(0, sp7C); + controller_copyFaceButtons(0, sp7C); func_8024E60C(0, sp6C); func_8038EDBC(this); switch(this->state){ diff --git a/src/lair/code_9C40.c b/src/lair/code_9C40.c index 5f946264..93261678 100644 --- a/src/lair/code_9C40.c +++ b/src/lair/code_9C40.c @@ -108,7 +108,7 @@ void func_803902B8(Actor *this) { this->unk38_0 = sp58; sp58 = ml_vec3f_within_distance(this->position, sp5C, 400.0f); if (fileProgressFlag_get(sp54 + FILEPROG_AD_CHEATO_BLUEEGGS_UNLOCKED)) { - func_8024E55C(0, sp3C); + controller_copyFaceButtons(0, sp3C); sp58 &= (sp3C[FACE_BUTTON(BUTTON_B)] == 1) || func_8028EC04(); } if (sp58 && !*(s32 *)&this->local) {