diff --git a/include/bs_funcs.h b/include/bs_funcs.h index 271ec66c..4db85e14 100644 --- a/include/bs_funcs.h +++ b/include/bs_funcs.h @@ -710,6 +710,6 @@ void func_802AE9C8(void); void func_802AEA2C(void); void func_802AEB24(void); void func_802AF604(void); -void func_802AF668(void); +void bsdronevanish_update(void); void func_802AF768(void); #endif diff --git a/include/enums.h b/include/enums.h index 7c5238b4..68739629 100644 --- a/include/enums.h +++ b/include/enums.h @@ -351,6 +351,13 @@ enum button_e{ BUTTON_C_RIGHT = 0xD }; +#define FACE_BUTTON(button) (button - BUTTON_A) + +enum joystick_e{ + JOYSTICK_X = 0x0, + JOYSTICK_Y = 0x1 +}; + enum map_e { MAP_1_SM_SPIRAL_MOUNTAIN = 0x01, diff --git a/include/structs.h b/include/structs.h index 8447d2ae..9e7d277c 100644 --- a/include/structs.h +++ b/include/structs.h @@ -318,15 +318,6 @@ typedef struct struct_16_s{ s32 unkC; }struct16s; -typedef struct struct_1A_s{ - f32 unk0; - f32 unk4; - u8 *str; - s16 unkC; - u8 unkE; - u8 unkF; -}struct1As; - typedef struct struct_1B_s{ s16 map; s16 exit; @@ -338,13 +329,6 @@ typedef struct struct_1C_1_s{ u8 *string; //0x4 }struct1Cs_1; -typedef struct struct_1C_s{ - s8 unk0; - s8 unk1; - s16 x; //0x2 - u8 *string; //0x4 -}struct1Cs; - typedef struct struct_1D_s{ BKModel *unk0; s16 unk4; @@ -891,4 +875,8 @@ typedef struct{ s16 count; s32 offset[]; }Struct84s; + +typedef struct{ + u8 pad0[1]; +}struct85s; #endif diff --git a/progress/progress_core2.svg b/progress/progress_core2.svg index 2053e283..ac9c0206 100644 --- a/progress/progress_core2.svg +++ b/progress/progress_core2.svg @@ -9,7 +9,7 @@ - + @@ -17,7 +17,7 @@ core2 - 80.9535% - 80.9535% + 81.1645% + 81.1645% \ No newline at end of file diff --git a/progress/progress_total.svg b/progress/progress_total.svg index 023d9168..ce4f906a 100644 --- a/progress/progress_total.svg +++ b/progress/progress_total.svg @@ -17,7 +17,7 @@ Banjo-Kazooie (us.v10) - 84.0543% - 84.0543% + 84.1753% + 84.1753% \ No newline at end of file diff --git a/src/BGS/code_3420.c b/src/BGS/code_3420.c index ea6dd00e..a2e14072 100644 --- a/src/BGS/code_3420.c +++ b/src/BGS/code_3420.c @@ -595,7 +595,7 @@ void chvilegame_update(Actor *this) { if (this->state == 5) { if (local->unkC == 7) { func_8024E55C(0, sp30); - if ((sp30[BUTTON_Z] > 0) && func_8038C2A8(local->vile_marker)) { + if ((sp30[FACE_BUTTON(BUTTON_B)] > 0) && func_8038C2A8(local->vile_marker)) { func_8038A068(this, 0xA); } } else { diff --git a/src/FP/code_2350.c b/src/FP/code_2350.c index 54900db0..2a400b9c 100644 --- a/src/FP/code_2350.c +++ b/src/FP/code_2350.c @@ -473,7 +473,7 @@ void func_803896FC(Actor *this){ && func_8028ECAC() == 0 && func_8028F20C() && func_8028EFC8() - && sp3C[1] == 1 + && sp3C[FACE_BUTTON(BUTTON_B)] == 1 && !func_803114B0() ){ if( local->unk19 == 1 diff --git a/src/MM/ch/juju.c b/src/MM/ch/juju.c index c8cd9093..a2f5b13f 100644 --- a/src/MM/ch/juju.c +++ b/src/MM/ch/juju.c @@ -94,7 +94,7 @@ void func_803891E8(s32 x, s32 y, s32 z, s32 yaw){ void func_80389244(s32 x, s32 y, s32 z, s32 yaw){ func_802C3F04(func_803891E8, x, y, z, yaw); func_802BB3DC(0, 10.0f, 0.8f); - func_80314AC8(1); + gcpausemenu_80314AC8(1); } void func_803892A8(ActorMarker **ptr){ @@ -113,7 +113,7 @@ void func_803892A8(ActorMarker **ptr){ jujuPtr->unk4 = 0xC; func_8030E484(0x3f6); if(i == 3){ - func_80314AC8(0); + gcpausemenu_80314AC8(0); timedFunc_set_4(1.25f, func_80389244, jujuPtr->unk8_x, jujuPtr->unk8_y, jujuPtr->unk8_z, actorPtr->yaw); func_8025A6EC(COMUSIC_2D_PUZZLE_SOLVED_FANFARE, 0x6d60); } diff --git a/src/SM/code_2990.c b/src/SM/code_2990.c index 731b917f..4aad842e 100644 --- a/src/SM/code_2990.c +++ b/src/SM/code_2990.c @@ -450,7 +450,7 @@ void func_803899B0(Actor * this){ ){ if(this->unkF4_8 != 8 || !func_8031FF1C(0xFC)){ if( func_8028EFC8() - && sp50[1] == 1 + && sp50[FACE_BUTTON(BUTTON_B)] == 1 ){ if(sp34 || this->unkF4_8 == 1 || this->unkF4_8 == 8){ func_80388FA0(this, 5); @@ -528,9 +528,9 @@ void func_803899B0(Actor * this){ if(this->unk38_0){ this->unk60 += time_getDelta(); if(func_803114C4() != 0xe1d){ - if(sp50[0] == 1) + if(sp50[FACE_BUTTON(BUTTON_A)] == 1) sp38 = 1; //A button pressed - else if(sp50[1] == 1) + else if(sp50[FACE_BUTTON(BUTTON_B)] == 1) sp38 = 0; //B button pressed }//L8038A218 diff --git a/src/SM/code_4070.c b/src/SM/code_4070.c index 9d5e9e08..74fd7d22 100644 --- a/src/SM/code_4070.c +++ b/src/SM/code_4070.c @@ -130,7 +130,7 @@ void func_8038A5D8(Actor *this){ sp5C[2] = this->velocity_z; func_8028FAB0(sp5C); if( func_8028EFC8() - && sp44[1] == 1 + && sp44[FACE_BUTTON(BUTTON_B)] == 1 && func_8028F20C() ){ if(this->sm_4070.unk0) diff --git a/src/TTC/code_35D0.c b/src/TTC/code_35D0.c index 4c00e545..b1d8e754 100644 --- a/src/TTC/code_35D0.c +++ b/src/TTC/code_35D0.c @@ -167,9 +167,9 @@ void func_80389CC4(s16 arg0[3], s32 arg1){ func_802EFB98(D_8038D700, &D_8038C928); particleEmitter_emitN(D_8038D700, 5); D_8038D708[2] += 300.0f; - func_80314AC8(0); + gcpausemenu_80314AC8(0); timedFunc_set_2(0.1f, (TFQM2) func_8028F45C, 9, (s32)&D_8038D708); - timedFunc_set_1(0.1f, (TFQM1) func_80314AC8, 1); + timedFunc_set_1(0.1f, (TFQM1) gcpausemenu_80314AC8, 1); func_80311480(ASSET_A17_TEXT_BURIED_TREASURE_SPAWNED, 4, NULL, NULL, NULL, NULL); D_8037DCB4++; }//L80389E70 diff --git a/src/core2/bs/drone.c b/src/core2/bs/drone.c index cd24e66f..a7c8b1cb 100644 --- a/src/core2/bs/drone.c +++ b/src/core2/bs/drone.c @@ -13,7 +13,7 @@ struct_drone D_80364B30[] = { {02, {func_802AEEF4, func_802AEFB0, func_802AF164, func_80296608}}, {04, {bsdronexform_init, bsdronexform_update, bsdronexform_end, bsdronexform_interrupt}}, {05, {func_802AE9C8, func_802AEA2C, func_802AEB24, NULL}}, - {06, {func_802AF604, func_802AF668, func_802AF768, NULL}}, + {06, {func_802AF604, bsdronevanish_update, func_802AF768, NULL}}, {0} }; diff --git a/src/core2/bs/washy.c b/src/core2/bs/washy.c index 86299e09..edefb23e 100644 --- a/src/core2/bs/washy.c +++ b/src/core2/bs/washy.c @@ -98,6 +98,6 @@ void func_802B9B14(void){ } void func_802B9D00(void){ - if(bs_getInterruptType() == 0xA) + if(bs_getInterruptType() == BS_INTR_A) func_80296608(); } diff --git a/src/core2/ch/gameSelect.c b/src/core2/ch/gameSelect.c index 62f894ac..d7f041f2 100644 --- a/src/core2/ch/gameSelect.c +++ b/src/core2/ch/gameSelect.c @@ -373,9 +373,9 @@ void func_802C4C14(Actor *this){ break; case 5://L802C5040 if(D_8037DD2C == 0 && - (sp5C[0] == 1 || sp5C[1] == 1) + (sp5C[FACE_BUTTON(BUTTON_A)] == 1 || sp5C[FACE_BUTTON(BUTTON_B)] == 1) ){ - if(sp5C[0] == 1){ + if(sp5C[FACE_BUTTON(BUTTON_A)] == 1){ func_802C4AC8(sp84); func_8025A6EC(COMUSIC_2B_DING_B, 22000); } @@ -419,7 +419,7 @@ void func_802C4C14(Actor *this){ func_8025A6EC(COMUSIC_2C_BUZZER, 22000); } } - else if(sp5C[0] == 1){//L802C5250 + else if(sp5C[FACE_BUTTON(BUTTON_A)] == 1){//L802C5250 if(func_8033D1BC(sp84)){ if(randf() < 0.1){ switch(sp84){ diff --git a/src/core2/ch/mole.c b/src/core2/ch/mole.c index 25a74e3b..da2b89d1 100644 --- a/src/core2/ch/mole.c +++ b/src/core2/ch/mole.c @@ -361,7 +361,7 @@ void func_802D9D60(Actor *this){ if( !func_8028ECAC() && func_80329530(this, 0xFA) && func_8028EFC8() - && sp50[BUTTON_Z] == 1 + && sp50[FACE_BUTTON(BUTTON_B)] == 1 ){ func_802D9CBC(this); } diff --git a/src/core2/code_28220.c b/src/core2/code_28220.c index a27f45d8..9a708024 100644 --- a/src/core2/code_28220.c +++ b/src/core2/code_28220.c @@ -13,8 +13,8 @@ struct { u8 D_8037D468; /* .code */ -void func_802AF1B0(s32 arg0) { - switch (arg0) { +void bsdronevanish_setState(s32 next_state) { + switch (next_state) { case 1: func_8029E3C0(0, 0.3f); break; @@ -24,13 +24,13 @@ void func_802AF1B0(s32 arg0) { func_8029E3C0(0, 0.4f); break; case 3: - func_80314B30(); + gcpausemenu_returnToLair(); func_802921C8(0); comusic_8025AB44(COMUSIC_43_ENTER_LEVEL_GLITTER, 0, 2000); func_8029E3C0(0, 2.0f); break; } - D_8037D468 = arg0; + D_8037D468 = next_state; } void func_802AF268(void) { @@ -97,10 +97,10 @@ void func_802AF604(void){ func_80294378(6); func_802AF4E0(); D_8037D468 = 0; - func_802AF1B0(1); + bsdronevanish_setState(1); } -void func_802AF668(void) { +void bsdronevanish_update(void) { s32 next_state; bool sp20; @@ -109,7 +109,7 @@ void func_802AF668(void) { case 1: func_802AF550(); if (func_8029E1A8(0)) { - func_802AF1B0(2); + bsdronevanish_setState(2); } break; case 2: @@ -117,7 +117,7 @@ void func_802AF668(void) { sp20 = func_8029E1A8(0); func_80291FB8((s32) ml_map_f(func_8029E270(0), 0.0f, 0.4f, 0.0f, 255.0f)); if (sp20) { - func_802AF1B0(3); + bsdronevanish_setState(3); } break; case 3: diff --git a/src/core2/code_47C0.c b/src/core2/code_47C0.c index 2d5ad13b..14ebb601 100644 --- a/src/core2/code_47C0.c +++ b/src/core2/code_47C0.c @@ -563,7 +563,7 @@ void func_8028BCA0(Prop *prop){ timedFunc_set_1(2.0f, func_8035644C, 0xB); item_inc(ITEM_13_EMPTY_HONEYCOMB); if(!(item_getCount(ITEM_13_EMPTY_HONEYCOMB) < 6)){ - func_80314AC8(0); + gcpausemenu_80314AC8(0); } func_802F36DC(&prop->actorProp.x); marker_despawn(marker); diff --git a/src/core2/code_4A6F0.c b/src/core2/code_4A6F0.c index 1432c1bd..cbc0ed3d 100644 --- a/src/core2/code_4A6F0.c +++ b/src/core2/code_4A6F0.c @@ -141,7 +141,7 @@ void func_802D1998(ActorMarker *caller, enum asset_e text_id, s32 arg2){ case 0xd90: //L802D1A40 func_80320004(BKPROG_12_HAS_TRANSFORMED_BEFORE, TRUE); func_80311480(0xD8F + D_8037DDF0, 4, NULL, NULL, NULL, NULL); - func_80314AC8(1); + gcpausemenu_80314AC8(1); break; case 0xdaa: //L802D1A7C /* fall-through */ @@ -175,7 +175,7 @@ void func_802D1998(ActorMarker *caller, enum asset_e text_id, s32 arg2){ return; default: //L802D1B64 - func_80314AC8(1); + gcpausemenu_80314AC8(1); break; } func_80328A84(this, 4); @@ -196,7 +196,7 @@ void func_802D1B8C(Actor *this, enum transformation_e transform_id) { func_80320004(BKPROG_F7_HAS_TRANSFORMED_IN_CRYPT, TRUE); return; } - func_80314AC8(1); + gcpausemenu_80314AC8(1); func_80328A84(this, 4U); return; } @@ -306,7 +306,7 @@ void func_802D1CF0(Actor *this) { && func_8028EFC8() ){ func_8024E55C(0, &sp58); - if(sp58[BUTTON_Z] == 1){ + if(sp58[FACE_BUTTON(BUTTON_B)] == 1){ if (D_8037DDF0 == TRANSFORM_7_WISHWASHY) { this->unk38_31 = 0; } else if (player_getTransformation() == TRANSFORM_1_BANJO && !func_8031FF1C(func_802D17A0(D_8037DDF0)) && map_get() != MAP_7A_GL_CRYPT){ @@ -346,7 +346,7 @@ void func_802D1CF0(Actor *this) { } func_80328A84(this, 5); } - func_80314AC8(0); + gcpausemenu_80314AC8(0); break; } @@ -412,7 +412,7 @@ void func_802D1CF0(Actor *this) { func_80311480(0xDAF, 6, NULL, this->marker, func_802D1998, NULL); break; } - func_80314AC8(1); + gcpausemenu_80314AC8(1); func_80328A84(this, 4); } break; diff --git a/src/core2/code_4C020.c b/src/core2/code_4C020.c index 3aa3d0a2..8dfd6584 100644 --- a/src/core2/code_4C020.c +++ b/src/core2/code_4C020.c @@ -630,7 +630,7 @@ void func_802D5058(enum map_e map_id, s32 arg1, bool arg2) { } else { timedFunc_set_0(0.25f, func_802D63D4); } - func_80314AC8(0); + gcpausemenu_80314AC8(0); } @@ -877,7 +877,7 @@ void func_802D5628(void){ } else{//L802D5B24 func_8024E55C(0, sp50); //get button inputs - if(sp50[4] == 1){ + if(sp50[FACE_BUTTON(BUTTON_C_UP)] == 1){ func_80324C58(); func_802D6114(); } @@ -1000,7 +1000,7 @@ void func_802D6114(void){ } else{//L802D61DC func_80347A14(1); - func_80314AC8(1); + gcpausemenu_80314AC8(1); } } @@ -1029,7 +1029,7 @@ void func_802D6264(f32 arg0, enum map_e arg1, s32 arg2, s32 arg3, s32 arg4, enum else{ timedFunc_set_0(arg0, func_802D63D4); } - func_80314AC8(0); + gcpausemenu_80314AC8(0); } void func_802D6310(f32 arg0, enum map_e arg1, s32 arg2, s32 arg3, enum bkprog_e arg4){ diff --git a/src/core2/code_5C870.c b/src/core2/code_5C870.c index ea106190..58e2c0b1 100644 --- a/src/core2/code_5C870.c +++ b/src/core2/code_5C870.c @@ -140,7 +140,7 @@ void func_802E39D0(Gfx **gdl, Mtx **mptr, Vtx **vptr, s32 arg3, s32 arg4){ func_8032D474(gdl, mptr, vptr); } - func_80314320(gdl, mptr, vptr); + gcpausemenu_draw(gdl, mptr, vptr); if(!func_802E49F0()){ func_8025AFC0(gdl, mptr, vptr); } @@ -186,7 +186,7 @@ void func_802E3BF8(enum game_mode_e next_mode, s32 arg1){ } if(D_8037E8E0.game_mode == GAME_MODE_4_PAUSED && next_mode != GAME_MODE_4_PAUSED ){ - func_803117E8(); + gcpausemenu_free(); } //L802E3C84 @@ -242,7 +242,7 @@ void func_802E3BF8(enum game_mode_e next_mode, s32 arg1){ func_8024E7C8(); func_8025A430(0, 2000, 3); func_8025A23C(COMUSIC_6F_PAUSE_SCREEN); - func_80312B8C(); + gcpausemenu_init(); }//L802E3E6C } @@ -534,7 +534,7 @@ bool func_802E4424(void) { && gctransition_8030BD98() && (level_get() != 0) && (0.6 < D_8037E8E0.unk10) - && func_80314B00() + && gcpausemenu_80314B00() && !func_8028F22C() && func_8032056C() && levelSpecificFlags_validateCRC1() @@ -549,7 +549,7 @@ bool func_802E4424(void) { break; case GAME_MODE_4_PAUSED: /* switch 2 */ - if (func_80313380() || func_8031C880()) { + if (gcPauseMenu_update() || func_8031C880()) { FUNC_8030E624(SFX_C9_PAUSEMENU_ENTER, 0.899316, 32736); func_80335110(1); func_8025A430(-1, 2000, 3); @@ -593,8 +593,8 @@ s32 func_802E48D8(void){ func_802F3300(); func_802F542C(); gcdialog_defrag(); - if(D_8037E8E0.game_mode == 4) - func_80311740(); + if(D_8037E8E0.game_mode == GAME_MODE_4_PAUSED) + gcpausemenu_defrag(); switch(get_loaded_overlay_id()){ case OVERLAY_2_WHALE: func_803894A0(); diff --git a/src/core2/code_76D90.c b/src/core2/code_76D90.c index 93447bc6..d4667164 100644 --- a/src/core2/code_76D90.c +++ b/src/core2/code_76D90.c @@ -10,7 +10,7 @@ f32 func_802FDE60(f32); void timedFunc_set_1(f32, void (*)(s32), s32); void timedFunc_set_2(f32, void (*)(s32,s32), s32, s32); void item_inc(s32); -void func_80314AC8(s32); +void gcpausemenu_80314AC8(s32); void item_set(s32, s32); @@ -246,7 +246,7 @@ void func_802FE844(s32 arg0, struct8s *arg1){ timedFunc_set_1(1.25f, (TFQM1)item_inc, ITEM_15_HEALTH_TOTAL); timedFunc_set_1(1.25f, (TFQM1)func_8030E484, SFX_3EA_UNKNOWN); timedFunc_set_2(1.25f, (TFQM2)item_set, ITEM_14_HEALTH, item_getCount(ITEM_15_HEALTH_TOTAL)+1); - timedFunc_set_1(1.5f, (TFQM1)func_80314AC8, 1); + timedFunc_set_1(1.5f, (TFQM1)gcpausemenu_80314AC8, 1); } break; case 2://L802FECD4 diff --git a/src/core2/code_87E30.c b/src/core2/code_87E30.c index 3a7c15dd..50681352 100644 --- a/src/core2/code_87E30.c +++ b/src/core2/code_87E30.c @@ -536,7 +536,7 @@ void gcdialog_update(void) { break; case 3: /* switch 1 */ temp_v1_2 = D_80382E20.unk128_31 & 0x80; - if (D_80382E20.unk128_0 && (sp90[1] == 1)) { + if (D_80382E20.unk128_0 && (sp90[FACE_BUTTON(BUTTON_B)] == 1)) { gcdialog_setState(6); } else{ @@ -550,9 +550,9 @@ void gcdialog_update(void) { break; case 4: /* switch 1 */ - if (sp90[0] == 1) { + if (sp90[FACE_BUTTON(BUTTON_A)] == 1) { D_80382E20.unk12C_23 = 1; - } else if (sp90[1] == (s32) 1) { + } else if (sp90[FACE_BUTTON(BUTTON_B)] == 1) { D_80382E20.unk12C_23 = 0; } if (D_80382E20.unk12C_23 != -1) { diff --git a/src/core2/code_91E10.c b/src/core2/code_91E10.c index 86a5dd22..8af326d9 100644 --- a/src/core2/code_91E10.c +++ b/src/core2/code_91E10.c @@ -483,7 +483,7 @@ void func_80319EA4(void) { switch (D_803830E0->unk10) { case 1: - if (func_8028EFC8() && (sp58[BUTTON_Z] == 1)) { + if (func_8028EFC8() && (sp58[FACE_BUTTON(BUTTON_B)] == 1)) { sp44 = func_80319040(0); func_803184C8(D_803830E0->unk24[0], 100.0f, 2, 4, sp44, func_80319028(0), 0); return; @@ -511,7 +511,7 @@ void func_80319EA4(void) { } } } - if ((sp58[BUTTON_START] == 1) || (item_empty(ITEM_0_HOURGLASS_TIMER))) { + if ((sp58[FACE_BUTTON(BUTTON_A)] == 1) || (item_empty(ITEM_0_HOURGLASS_TIMER))) { D_803830E0->unk12 = (u8) D_803830E0->unk13; } if ((s8) D_803830E0->unk12 != -1) { diff --git a/src/core2/code_935F0.c b/src/core2/code_935F0.c index 503e7200..e49737a4 100644 --- a/src/core2/code_935F0.c +++ b/src/core2/code_935F0.c @@ -2,8 +2,20 @@ #include "functions.h" #include "variables.h" +extern void func_8028F918(s32); + void func_8031A9E4(Actor *this); +enum minigame_e { + MINIGAME_0_BOSS_BOOM_BOX, + MINIGAME_1_VILE, + MINIGAME_2_GV_MATCHING, + MINIGAME_3_ZUBBAS, + MINIGAME_4_TIPTUP, + MINIGAME_5_SANDCASTLE, + MINIGAME_F_INVALID = 0xF +}; + /* .data */ extern ActorInfo D_8036D970 = { 0x1E1, 0x376, 0x0, @@ -13,35 +25,119 @@ extern ActorInfo D_8036D970 = { }; /* .code */ -int func_8031A580(void){ +enum minigame_e func_8031A580(void){ switch(map_get()){ case MAP_3A_RBB_BOSS_BOOM_BOX: - return 0; + return MINIGAME_0_BOSS_BOOM_BOX; case MAP_10_BGS_MR_VILE: - return 1; + return MINIGAME_1_VILE; case MAP_13_GV_MEMORY_GAME: - return 2; + return MINIGAME_2_GV_MATCHING; case MAP_5A_CCW_SUMMER_ZUBBA_HIVE: case MAP_5B_CCW_SPRING_ZUBBA_HIVE: case MAP_5C_CCW_AUTUMN_ZUBBA_HIVE: - return 3; + return MINIGAME_3_ZUBBAS; case MAP_11_BGS_TIPTUP: - return 4; + return MINIGAME_4_TIPTUP; case MAP_A_TTC_SANDCASTLE: - return 5; + return MINIGAME_5_SANDCASTLE; } - return 0xf; + return MINIGAME_F_INVALID; } -#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_935F0/func_8031A618.s") +void func_8031A618(Actor *this) { + Actor *jiggy; -#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_935F0/func_8031A678.s") + if (this->unk10_12 == MINIGAME_5_SANDCASTLE) { + jiggy = func_80326EEC(ACTOR_46_JIGGY); + if (jiggy != NULL) { + actor_collisionOff(jiggy); + jiggy->position[1] -= 1000.0f; + } + } +} -#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_935F0/func_8031A794.s") +void func_8031A678(Actor *this){ + Struct6Ds *sp2C; + f32 sp20[3]; -#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_935F0/func_8031A7C4.s") + sp2C = func_8034C528(0x190); + switch (this->unk10_12) { + case MINIGAME_0_BOSS_BOOM_BOX: + sp20[0] = -2000.0f; + sp20[1] = 0.0f; + sp20[2] = 0.0f; + func_8034DDF0(sp2C, sp20, sp20, 0.0f, 1); + return; -#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_935F0/func_8031A7F4.s") + case MINIGAME_3_ZUBBAS: + if (map_get() != MAP_5B_CCW_SPRING_ZUBBA_HIVE) { + sp20[0] = 0.0f; + sp20[1] = 0.0f; + sp20[2] = -1000.0f; + func_8034DDF0(sp2C, sp20, sp20, 0.0f, 1); + } + break; + + case MINIGAME_5_SANDCASTLE: + sp2C = func_8034C528(0x191); + func_8034DEB4(sp2C, -1000.0f); + break; + + case MINIGAME_2_GV_MATCHING: + sp2C = func_8034C528(0x1E7); + func_8034DEB4(sp2C, -1000.0f); + break; + + case MINIGAME_1_VILE: + case MINIGAME_4_TIPTUP: + func_8034DEB4(sp2C, -1000.0f); + break; + } +} + +void func_8031A794(ActorMarker *marker, enum asset_e text_id, s32 arg2){ + Actor *this = marker_getActor(marker); + this->unk138_24 = TRUE; +} + +void func_8031A7C4(ActorMarker *marker, enum asset_e text_id, s32 arg2){ + if(arg2 == 1){ + func_8028FB88(TRANSFORM_5_CROC); + } +} + +void func_8031A7F4(Actor *this, u32 arg1) { + switch (arg1) { + case 1: + func_8028F918(2); + if (this->unk10_12 == MINIGAME_1_VILE) { + func_80347A14(0); + } + if (func_803203FC(this->unk10_12 + 6) == 0) { + func_80324DBC(2.0f, this->unk10_12 + 0x1026, 0xA2, NULL, this->marker, func_8031A794, func_8031A7C4); + func_803204E4(this->unk10_12 + 6, 1); + this->unk138_23 = TRUE; + } else { + func_80324DBC(2.0f, 0xD38, 0x20, NULL, this->marker, func_8031A794, NULL); + } + break; + case 2: + func_8028F918(0); + func_803204E4(3, 1); + break; + case 3: + func_803204E4(4, 1); + func_8028F918(2); + func_8025AB00(); + func_8025A70C((func_803203FC(5)) ? COMUSIC_3B_MINIGAME_VICTORY : COMUSIC_3C_MINIGAME_LOSS); + func_802E4A70(); + func_803204E4(0x21, TRUE); + timedFunc_set_3(2.0f, (TFQM3)func_802E4078, MAP_8E_GL_FURNACE_FUN, 1, 1); + break; + } + func_80328A84(this, arg1); +} void func_8031A9BC(Actor *this){ func_803204E4(3, 0); @@ -70,7 +166,7 @@ void func_8031A9E4(Actor *this){ func_803204E4(5, 0); func_803204E4(3, 0); func_8031A7F4(this, 1); - func_80314AC8(0); + gcpausemenu_80314AC8(0); } if(func_803203FC(2)){ switch(this->state){ @@ -79,9 +175,9 @@ void func_8031A9E4(Actor *this){ func_8031A7F4(this, 2); break; case 2://L8031AB50 - func_8028FA14(0x8E, 2); + func_8028FA14(MAP_8E_GL_FURNACE_FUN, 2); if(item_getCount(ITEM_14_HEALTH) == 0) - item_set(ITEM_6_HOURGLASS, FALSE); + item_set(ITEM_6_HOURGLASS, 0); if(!func_803203FC(3)){ func_8031A7F4(this, 3); } diff --git a/src/core2/code_93C10.c b/src/core2/code_93C10.c index 870f450e..0bc4b909 100644 --- a/src/core2/code_93C10.c +++ b/src/core2/code_93C10.c @@ -2,38 +2,152 @@ #include "functions.h" #include "variables.h" +extern void func_8028A8D0(void); +extern void func_8028F918(s32); +extern void func_80311714(int); + +typedef struct struct_1C_s{ + u8 map; + s8 exit; + s16 x; //0x2 + char *str; //0x4 + s8 unk8; +}struct1Cs; + + + +/* .data */ +extern s8 D_8036DD9C[]; +extern struct85s D_8036DDAC[]; + /* .bss */ struct{ - u8 pad0[3]; + u8 unk0; + u8 unk1; + u8 pad2[1]; s8 unk3; - u8 pad4[3]; - s8 unk7; - u8 pad8[4]; + s8 unk4; + u8 unk5; + u8 unk6; + s8 unk7; //jiggy total + s32 unk8; struct1Cs *unkC; }D_803830F0; -s32 D_80383100[20]; +NodeProp *D_80383100[20]; + +/* public */ +void func_8031B554(void); /* .code */ -#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_93C10/func_8031ABA0.s") +void func_8031ABA0(void) { + func_8031FBF8(); + func_8031FBA0(); + if (D_803830F0.unk8 != -1) { + func_802C5A3C(D_803830F0.unk8); + func_8033D13C(D_803830F0.unk8); + func_80347AA8(); + } +} -#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_93C10/func_8031ABF8.s") +void func_8031ABF8(void) { + D_803830F0.unk8 = func_802C5A30(); + func_8030AFD8(1); + mapSavestate_free_all(); + levelSpecificFlags_clear(); + func_80347A7C(); + func_8031FBF8(); + func_8031FBA0(); + func_803204E4(0x1F, 1); + if (D_803830F0.unk6 == 1) { + func_803204E4(0xC1, 1); + } + func_803228D8(); + func_802E4A70(); +} -#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_93C10/func_8031AC8C.s") +void func_8031AC8C(void) { + func_803228D8(); + if (map_getLevel(D_803830F0.unkC->map) != level_get()) { + func_802E4A70(); + } + + if (D_803830F0.unkC->exit < 0) { + func_8034BA7C(D_803830F0.unkC->map, 0x5A - D_803830F0.unkC->exit); + } else { + func_802E40D0(D_803830F0.unkC->map, 0x65); + func_802E412C(1, 8); + func_802E40C4(9); + } + D_803830F0.unk5 = 1; +} + +void func_8031AD2C(s32); #pragma GLOBAL_ASM("asm/nonmatchings/core2/code_93C10/func_8031AD2C.s") void func_8031B010(void){ func_8031AD2C(6); } +void func_8031B030(ActorMarker *caller, enum asset_e text_id, s32 arg2); #pragma GLOBAL_ASM("asm/nonmatchings/core2/code_93C10/func_8031B030.s") void func_8031B070(s32 arg0){ struct1Cs *v0 = D_803830F0.unkC; - print_bold_overlapping(v0->x, D_803830F0.unk3, -1.2f, v0->string); + print_bold_overlapping(v0->x, D_803830F0.unk3, -1.2f, v0->str); } -#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_93C10/func_8031B0B0.s") +void func_8031B0B0(void) { + s32 sp34; + + if ((map_get() == MAP_96_CS_END_BEACH_1) && mapSpecificFlags_get(4)) { + mapSpecificFlags_set(4, FALSE); + func_8031B554(); + return; + } + if (func_803203FC(0x1F) != 0) { + func_8028A8D0(); + switch (D_803830F0.unk0) { + case 3: + if (D_803830F0.unk5 == 0) { + if (map_get() == D_803830F0.unkC->map) { + if (D_803830F0.unk6 == 0) { + sp34 = 0xA0; + if (D_803830F0.unkC->exit >= 0) + sp34 = 0xA8; + timedFunc_set_1(1.0f, (TFQM1)func_80311714, 0); + func_80324DBC(1.0f, D_803830F0.unk1 + 0x11AF, sp34, NULL, NULL, func_8031B030, NULL); + timedFunc_set_1(1.0f, (TFQM1)func_80311714, 1); + } else if (D_803830F0.unkC->exit >= 0) { + func_8028F918(2); + } + timedFunc_set_1(1.0f, (TFQM1)func_8031AD2C, 4); + D_803830F0.unk5 = 1U; + } + } + break; + case 4: + func_8031B070(D_803830F0.unk1); + D_803830F0.unk4 ++; + D_803830F0.unk3 += D_8036DD9C[D_803830F0.unk4]; + if (D_803830F0.unk4 == 0xC) { + func_8031AD2C(5); + } + break; + case 5: + func_8031B070(D_803830F0.unk1); + return; + case 6: + func_8031B070(D_803830F0.unk1); + D_803830F0.unk4--; + D_803830F0.unk3 -= D_8036DD9C[D_803830F0.unk4]; + if (D_803830F0.unk4 == 0) { + func_8031AD2C(7); + } + break; + } + } +} void func_8031B2F0(void){} @@ -46,15 +160,56 @@ void func_8031B2F8(void){ func_8031AD2C(1); } - +#ifndef NONMATCHING #pragma GLOBAL_ASM("asm/nonmatchings/core2/code_93C10/func_8031B354.s") +#else +void func_8031B354(void) { + f32 sp40[3]; + u32 var_s0; + u32 temp_v0; + s32 var_s2; + + if (func_803203FC(0x20) != 0) { + func_8031B2F8(); + return; + } + if (func_803203FC(0x1F) != 0) { + func_80347A14(0); + if ((D_803830F0.unk0 == 3)){ + D_803830F0.unk5 = 0; + if(D_803830F0.unkC->exit >= 0) { + func_802BBC58(1); + set_camera_to_node(D_803830F0.unkC->exit); + if (D_803830F0.unkC->unk8 > 0) { + temp_v0 = func_80304FC4(&D_8036DDAC, &D_80383100, 0x14); + for(var_s2 = FALSE, var_s0 = 0; (var_s0 < temp_v0) && (var_s2 == FALSE); var_s0++){ + if (temp_v0 > 0) { + if (nodeprop_getRadius(D_80383100[var_s0]) == D_803830F0.unkC->unk8) { + var_s2 = TRUE; + nodeprop_getPosition(D_80383100[var_s0], sp40); + func_8028F85C(sp40); + } + } + } + } + if (var_s2 == FALSE) { + func_802BAEF4(sp40); + func_8028F85C(sp40); + } + } + } + } else { + func_8031AD2C(0); + } +} +#endif int func_8031B4CC(void){ - return (D_803830F0.unkC && D_803830F0.unkC->unk1 < 0); + return ((D_803830F0.unkC != NULL) && (D_803830F0.unkC[0].exit < 0)); } int func_8031B4F4(void){ - return (D_803830F0.unkC) ? D_803830F0.unkC[1].unk0 : 0; + return (D_803830F0.unkC != NULL) ? D_803830F0.unkC->unk8 : 0; } void func_8031B51C(void){ diff --git a/src/core2/gc/pauseMenu.c b/src/core2/gc/pauseMenu.c index 90be15bc..3a9a9926 100644 --- a/src/core2/gc/pauseMenu.c +++ b/src/core2/gc/pauseMenu.c @@ -9,8 +9,18 @@ #ifndef MAX #define MAX(s,t) (((s) > t)?(s):(t)) #endif + + +typedef struct struct_1A_s{ + f32 delay; + f32 unk4; + u8 *str; + s16 y; + u8 portrait; + u8 unkF; +}struct1As; + extern void func_803160A8(gczoombox_t *); -extern void func_80312E80(struct1As *, s32); extern void gczoombox_close(gczoombox_t *); extern void gczoombox_minimize(gczoombox_t *); extern void gczoombox_maximize(gczoombox_t *); @@ -28,49 +38,49 @@ void func_8024E60C(s32, void *); void func_8024E71C(s32, void *); void func_8024E55C(s32, void *); s32 getGameMode(void); -void func_803120FC(s32); void gczoombox_highlight(gczoombox_t *, int); -void func_80312F88(s32 arg0); -void func_80312FD0(s32 arg0); -void func_80313134(void); void func_802DC5B8(void); void func_802DC560(s32, s32); -void func_8031307C(s32); s32 func_8024E67C(enum button_e); -s32 func_80313070(void); bool func_803188B4(gczoombox_t*); bool func_803183A4(gczoombox_t*, char *); bool func_8031FF1C(enum bkprog_e); -s32 func_80312034(enum level_e); enum map_e map_get(void); bool func_802FD2D4(void); bool func_802FC3C4(void); -s32 func_80312D78(struct1As *, s32); -void func_80311954(void); -extern void func_802FACA4(enum item_e); -extern void func_80318964(gczoombox_t *); +extern void func_8025A2B0(void); +extern void func_8025A430(s32, s32, s32); +extern void func_802DC528(s32,s32); extern void func_802F5060(enum asset_e); extern void func_802F5188(void); -extern void func_80311854(void); +extern void func_802FACA4(enum item_e); +extern void func_803184C8(gczoombox_t *, f32, s32, s32, f32, s32, s32); +extern void func_80318640(gczoombox_t *, s32, f32, f32, s32); +extern void func_80318734(gczoombox_t *, f32); +extern void func_80318964(gczoombox_t *); extern void func_8033BD20(void *); -extern void func_8025A430(s32, s32, s32); -extern void func_8025A2B0(void); -extern void func_802DC528(s32,s32); + +enum gcpausemenu_state_e { + PAUSE_STATE_0_CLOSED = 0, + PAUSE_STATE_1_OPENING = 1, +}; + + /* .data */ struct1As D_8036C4E0[4] = { - {0.0f, 0.0f, "RETURN TO GAME", 55, 04, 0}, - {0.3f, 0.0f, "EXIT TO WITCH'S LAIR", -100, 04, 0}, - {0.1f, 0.0f, "VIEW TOTALS", 90, 06, 0}, - {0.2f, 0.0f, "SAVE AND QUIT", 125, 07, 0}, + {0.0f, 0.0f, "RETURN TO GAME", 55, TALK_PIC_4_BANJO_1, 0}, + {0.3f, 0.0f, "EXIT TO WITCH'S LAIR", -100, TALK_PIC_4_BANJO_1, 0}, + {0.1f, 0.0f, "VIEW TOTALS", 90, TALK_PIC_6_JIGGY_1, 0}, + {0.2f, 0.0f, "SAVE AND QUIT", 125, TALK_PIC_7_TOOTY_1, 0}, }; struct1As D_8036C520[4] = { - {0.0f, 0.0f, "cc999 / 999cc", 0x1E, 8, 0}, - {0.1f, 0.0f, "cc999 / 999cc", 0x42, 9, 0}, - {0.2f, 0.0f, "cc999 / 999cc", 0x66, 10, 0}, - {0.3f, 0.0f, "cc999 : 999cc", 0x8A, 11, 0}, + {0.0f, 0.0f, "cc999 / 999cc", 30, TALK_PIC_8_MUSIC_NOTE_1, 0}, + {0.1f, 0.0f, "cc999 / 999cc", 66, TALK_PIC_9_JIGGY_2, 0}, + {0.2f, 0.0f, "cc999 / 999cc", 102, TALK_PIC_A_EXTRA_HEALTH_MAX, 0}, + {0.3f, 0.0f, "cc999 : 999cc", 138, TALK_PIC_B_CLOCK, 0}, }; struct1Bs D_8036C560[] = { @@ -104,7 +114,7 @@ struct1Cs_1 D_8036C58C[0xD] = { }; s8 D_8036C5F4[] = {1, 1, 1, 1, 0xb, 0x8, 0x6, 0x4, 0x3, 0x2, -1, -1, 0}; -u8 D_8036C604[0x7] = {0x14, 0x26, 0x25, 0x10, 0xf, 0xd, 0xc}; +u8 D_8036C604[0x7] = {ITEM_14_HEALTH, ITEM_26_JIGGY_TOTAL, ITEM_25_MUMBO_TOKEN_TOTAL, ITEM_10_GOLD_FEATHER, ITEM_F_RED_FEATHER, ITEM_D_EGGS, ITEM_C_NOTE}; u8 D_8036C60C[0xC] = { 0x28, 0x29, @@ -124,64 +134,60 @@ u8 D_8036C60C[0xC] = { /* .bss */ struct{ - u8 unk0; //menu state + u8 state; u8 unk1; - u8 unk2; //menu page - u8 unk0_7:1; - u8 unk0_6:1; - u8 unk0_5:1; - u8 unk0_4:1; - u8 unk0_3:1; - u8 unk0_2:1; - u8 unk0_1:1; - u8 unk0_0:1; + u8 selection; //menu page + u8 unk3_7:1; + u8 unk3_6:1; //busy? + u8 unk3_5:1; + u8 unk3_4:1; + u8 left_joystick_visible:1; + u8 right_joystick_visible:1; + u8 b_button_visible:1; + u8 unk3_0:1; s8 unk4; s8 unk5; u8 unk6; u8 unk7; - s8 unk8; + s8 unk8; //header position s8 unk9; - s8 unkA; //joystick frame - u8 unkB; //joystick total frames + s8 joystick_frame; + u8 joystick_frame_count; f32 unkC; gczoombox_t *zoombox[4]; f32 unk20; - BKSprite * unk24; //joystick sprite + BKSprite * joystick_sprite; f32 unk28; - BKSprite * unk2C; //B-button sprite - u8 unk30; //B-button frame - u8 unk31; //B-button total frames - s16 unk32; //B-button alpha - s16 unk34; //left joystick alpha - s16 unk36; //right joystick alpha - u8 unk38; + BKSprite * b_button_sprite; + u8 b_button_frame; + u8 b_button_frame_count; //B-button total frames + s16 b_button_alpha; //B-button alpha + s16 left_joystick_alpha; //left joystick alpha + s16 right_joystick_alpha; //right joystick alpha + u8 page_cnt; u8 unk39; - u8 unk3A; - u8 pad3B[1]; - s16 unk3C; - s16 unk3E[6]; - s16 unk4A[7]; - u8 pad58[0x4]; - void * unk5C; //SnS Egg Model - void * unk60; //Ice key model + u8 sns_visible; + // u8 pad3B[1]; + s16 sns_alpha; //sns opacity + s16 unk3E[7]; + s16 unk4C[7]; + // u8 pad5A[0x3]; + BKModelBin *sns_egg_model; //SnS Egg Model + BKModelBin *ice_key_model; //Ice key model u8 pad64[0xC]; u32 unk70_31:1; u32 unk70_30:1; - u32 unk70_29:1; + u32 return_to_lair_disabled:1; u32 pad70_28:29; }D_80383010; s32 D_80383084; char D_80383088[0x18]; /* public */ -void func_803129DC(s32,s32); -void func_803184C8(gczoombox_t *, f32, s32, s32, f32, s32, s32); -void func_80318640(gczoombox_t *, s32, f32, f32, s32); -void func_80318734(gczoombox_t *, f32); - +void gcpausemenu_803129DC(s32,s32); /* .code */ -void func_80311740(void){ +void gcpausemenu_defrag(void){ s32 i; for(i =0; i< 4; i++){ if(D_80383010.zoombox[i]){ @@ -191,8 +197,7 @@ void func_80311740(void){ } } -//_gcpausemenu_freeZoomboxes -void func_803117A0(void){ +void gcpausemenu_zoomboxes_free(void){ s32 i; for(i =0; i< 4; i++){ gczoombox_free(D_80383010.zoombox[i]); @@ -200,34 +205,33 @@ void func_803117A0(void){ } } -void func_803117E8(void){ +void gcpausemenu_free(void){ s32 i; for( i=0; i<2; i++){ - assetcache_release(D_80383010.unk24); - D_80383010.unk24 = NULL; - assetcache_release(D_80383010.unk2C); - D_80383010.unk2C = NULL; + assetcache_release(D_80383010.joystick_sprite); + D_80383010.joystick_sprite = NULL; + assetcache_release(D_80383010.b_button_sprite); + D_80383010.b_button_sprite = NULL; } - func_803117A0(); + gcpausemenu_zoomboxes_free(); func_80311650(); } -//gc_zoombox_init -void func_80311854(void){ +void gcpausemenu_zoomboxes_initMainMenu(void){ s32 i; for(i = 0; i<4; i++){ - D_80383010.zoombox[i] = gczoombox_new(D_8036C4E0[i].unkC,D_8036C4E0[i].unkE, 2, 0,func_803129DC); + D_80383010.zoombox[i] = gczoombox_new(D_8036C4E0[i].y,D_8036C4E0[i].portrait, 2, 0,gcpausemenu_803129DC); func_803184C8(D_80383010.zoombox[i], 60.0f, 5, 2, 0.3f, 0, 0); func_80318640(D_80383010.zoombox[i], 0x1C, 0.75f, 0.9f, 0); func_80318760(D_80383010.zoombox[i], 8000); } } -void func_80311954(void){ +void gcpausemenu_zoomboxes_initTotalsMenu(void){ s32 i; for(i = 0; i<4; i++){ - D_80383010.zoombox[i] = gczoombox_new(D_8036C520[i].unkC,D_8036C520[i].unkE, (i == 3) ? 1 : 2 , 0,func_803129DC); + D_80383010.zoombox[i] = gczoombox_new(D_8036C520[i].y,D_8036C520[i].portrait, (i == 3) ? 1 : 2 , 0,gcpausemenu_803129DC); func_803184C8(D_80383010.zoombox[i], 40.0f, 5, 2, 0.3f, 0, 0); func_80318640(D_80383010.zoombox[i], 0x46, 0.9f, 0.7f, 1); func_80318760(D_80383010.zoombox[i], 8000); @@ -235,7 +239,7 @@ void func_80311954(void){ func_80318734(D_80383010.zoombox[3], 24.0f); } -void func_80311A84(void){ +void gcpausemenu_80311A84(void){ s32 i; func_802FA5D0(); @@ -258,8 +262,7 @@ void func_80311A84(void){ } } - -void func_80311B44(void){ +void gcpausemenu_80311B44(void){ s32 i; for(i = 0; i<7; i++){ @@ -269,22 +272,22 @@ void func_80311B44(void){ func_802FAD64(ITEM_16_LIFE); } -void func_80311B9C(s32 level, s32 *valPtr, s32 *maxPtr){ - *valPtr = itemscore_noteScores_get(level); //get note highscore +void gcpausemenu_getLevelNoteScore(enum level_e level, s32 *valPtr, s32 *maxPtr){ + *valPtr = itemscore_noteScores_get(level); *maxPtr = 100; } -void func_80311BD4(s32 level, s32 *valPtr, s32 *maxPtr){ - *valPtr = jiggyscore_leveltotal(level); //get note highscore +void gcpausemenu_getLevelJiggyScore(enum level_e level, s32 *valPtr, s32 *maxPtr){ + *valPtr = jiggyscore_leveltotal(level); *maxPtr = 10; } -void func_80311C0C(s32 level, s32 *valPtr, s32 *maxPtr){ +void gcpausemenu_getLevelHoneycombScore(enum level_e level, s32 *valPtr, s32 *maxPtr){ *valPtr = honeycombscore_get_level_total(level); *maxPtr = (level == LEVEL_B_SPIRAL_MOUNTAIN)? 6 : 2; } -u8 *func_80311C64(int time){ +char *gcpausemenu_TimeToA(int time){ s32 hours; s32 minutes; s32 seconds; @@ -307,13 +310,13 @@ u8 *func_80311C64(int time){ return D_80383088; } -void func_80311D74(s32 level){ +void gcpausemenu_printLevelTotals(enum level_e level){ s32 val; s32 max; const char empty[1] = 0; //empty //note ratio 2 string - func_80311B9C(level, &val, &max); + gcpausemenu_getLevelNoteScore(level, &val, &max); strcpy(D_8036C520[0].str, empty); strIToA(D_8036C520[0].str, val); strcat(D_8036C520[0].str, "/"); @@ -321,7 +324,7 @@ void func_80311D74(s32 level){ strcat(D_8036C520[0].str, empty); //jiggy_ratio_2_string - func_80311BD4(level, &val, &max); + gcpausemenu_getLevelJiggyScore(level, &val, &max); strcpy(D_8036C520[1].str, empty); strIToA(D_8036C520[1].str, val); strcat(D_8036C520[1].str, "/"); @@ -329,7 +332,7 @@ void func_80311D74(s32 level){ strcat(D_8036C520[1].str, empty); //honeycomb_ratio_2_string - func_80311C0C(level, &val, &max); + gcpausemenu_getLevelHoneycombScore(level, &val, &max); strcpy(D_8036C520[2].str, empty); strIToA(D_8036C520[2].str, val); strcat(D_8036C520[2].str, "/"); @@ -338,49 +341,49 @@ void func_80311D74(s32 level){ //gametime_2_sting strcpy(D_8036C520[3].str, empty); - strcat(D_8036C520[3].str, func_80311C64(itemscore_timeScores_get(level))); + strcat(D_8036C520[3].str, gcpausemenu_TimeToA(itemscore_timeScores_get(level))); } -void func_80311ED0(s32 *dst){ - *dst = itemscore_noteScores_getTotal(); //note_total +void gcpausemenu_getTotalNoteScore(s32 *dst){ + *dst = itemscore_noteScores_getTotal(); } -void func_80311EF8(s32 *dst){ +void gcpausemenu_getTotalJiggyScore(s32 *dst){ *dst = jiggyscore_total(); } -void func_80311F20(s32 *dst){ - *dst = honeycombscore_get_total(); //honeycomb_total +void gcpausemenu_getTotalHoneycombScore(s32 *dst){ + *dst = honeycombscore_get_total(); } -void func_80311F48(void){ +void gcpausemenu_printTotals(void){ s32 val; const char D_8036C61C[] = 0; //note ratio 2 string - func_80311ED0(&val); + gcpausemenu_getTotalNoteScore(&val); strcpy(D_8036C520[0].str, D_8036C61C); strIToA(D_8036C520[0].str, val); strcat(D_8036C520[0].str, D_8036C61C); //jiggy_ratio_2_string - func_80311EF8(&val); + gcpausemenu_getTotalJiggyScore(&val); strcpy(D_8036C520[1].str, D_8036C61C); strIToA(D_8036C520[1].str, val); strcat(D_8036C520[1].str, D_8036C61C); //honeycomb_ratio_2_string - func_80311F20(&val); + gcpausemenu_getTotalHoneycombScore(&val); strcpy(D_8036C520[2].str, D_8036C61C); strIToA(D_8036C520[2].str, val); strcat(D_8036C520[2].str, D_8036C61C); //gametime_2_sting strcpy(D_8036C520[3].str, D_8036C61C); - strcat(D_8036C520[3].str, func_80311C64(itemscore_timeScores_getTotal())); + strcat(D_8036C520[3].str, gcpausemenu_TimeToA(itemscore_timeScores_getTotal())); } -s32 func_80312034(enum level_e arg0){ +s32 gcpausemenu_levelToMenuPage(enum level_e arg0){ switch (arg0) { case LEVEL_1_MUMBOS_MOUNTAIN: @@ -408,7 +411,7 @@ s32 func_80312034(enum level_e arg0){ } } -void func_8031209C(struct1As *arg0, s32 arg1){ +void gcpausemenu_8031209C(struct1As *arg0, s32 arg1){ s32 i; s32 j; @@ -417,51 +420,51 @@ void func_8031209C(struct1As *arg0, s32 arg1){ } } -void func_803120FC(s32 arg0){ +void gcPauseMenu_setState(enum gcpausemenu_state_e next_state){ s32 i; - switch(arg0){ + switch(next_state){ case 0: - func_80311A84(); + gcpausemenu_80311A84(); D_80383010.unk1 = 0; - D_80383010.unk0_3 = D_80383010.unk0_2 = D_80383010.unk0_7 = D_80383010.unk2 = D_80383010.unk4 = 0; + D_80383010.left_joystick_visible = D_80383010.right_joystick_visible = D_80383010.unk3_7 = D_80383010.selection = D_80383010.unk4 = 0; break; case 1: - D_80383010.unkC = D_80383010.unk0_6 = D_80383010.unk7 = 0; - func_8031209C(D_8036C4E0, 4); + D_80383010.unkC = D_80383010.unk3_6 = D_80383010.unk7 = 0; + gcpausemenu_8031209C(D_8036C4E0, 4); for(i = 0; i < 4; i++){ gczoombox_highlight(D_80383010.zoombox[i], 1); } - if(D_80383010.unk70_29){ + if(D_80383010.return_to_lair_disabled){ gczoombox_highlight(D_80383010.zoombox[1],0); } break; case 2: - D_80383010.unk0_6 = 0; + D_80383010.unk3_6 = 0; break; case 3: - func_80311B44(); - D_80383010.unkC = D_80383010.unk0_6 = 0; + gcpausemenu_80311B44(); + D_80383010.unkC = D_80383010.unk3_6 = 0; D_80383010.unk5 = 3; - func_8031209C(D_8036C4E0, 4); + gcpausemenu_8031209C(D_8036C4E0, 4); break; case 5:/* 8B334 803122C4 3C128038 */ D_80383010.unkC = 3; - D_80383010.unk5 = D_80383010.unk0_6 = 0; - func_8031209C(D_8036C4E0, 4); + D_80383010.unk5 = D_80383010.unk3_6 = 0; + gcpausemenu_8031209C(D_8036C4E0, 4); for(i = 0; i < 4; i++){ D_80383010.unk5 += func_803188B4(D_80383010.zoombox[i]); } break; case 6:/* 8B3A8 80312338 0C0C46D1 */ - func_80311B44(); + gcpausemenu_80311B44(); D_80383010.unkC = 0.0f; - D_80383010.unk4 = D_80383010.unk2 = 0; + D_80383010.unk4 = D_80383010.selection = 0; // 0; for(i = 0; i < 4; i++){ func_80318964(D_80383010.zoombox[i]); @@ -470,24 +473,24 @@ void func_803120FC(s32 arg0){ case 7:/* 8B3F4 80312384 44803000 */ D_80383010.unk1 = 1; - D_80383010.unk0_1 = 1; + D_80383010.b_button_visible = 1; D_80383010.unk20 = D_80383010.unk28 = 0.0f; - func_803117A0(); - func_80311954(); - if(D_80383010.unk2 == func_80312034(level_get())){ + gcpausemenu_zoomboxes_free(); + gcpausemenu_zoomboxes_initTotalsMenu(); + if(D_80383010.selection == gcpausemenu_levelToMenuPage(level_get())){ func_802F5060(0x6e7); } - if(D_80383010.unk2){ - func_80311D74(D_8036C58C[D_80383010.unk2].level_id); + if(D_80383010.selection){ + gcpausemenu_printLevelTotals(D_8036C58C[D_80383010.selection].level_id); }else{ - func_80311F48(); + gcpausemenu_printTotals(); } for(i = 0; i<4; i++){//L80312420 - if(D_8036C58C[D_80383010.unk2].level_id == 6){ + if(D_8036C58C[D_80383010.selection].level_id == 6){ gczoombox_highlight(D_80383010.zoombox[i], (!(i == 0) && !(i == 2))); } - else if(D_8036C58C[D_80383010.unk2].level_id == 0xB){ + else if(D_8036C58C[D_80383010.selection].level_id == 0xB){ gczoombox_highlight(D_80383010.zoombox[i], (!(i == 0) && !(i == 1))); } else{ @@ -499,34 +502,34 @@ void func_803120FC(s32 arg0){ case 8: /* 8B54C 803124DC 44809000 */ D_80383010.unk4 = 0; D_80383010.unkC = 0.0f; - func_8031209C(D_8036C520, 4); + gcpausemenu_8031209C(D_8036C520, 4); D_80383010.unk8 = -0x10; D_80383010.unk6 = 0xFF; - D_80383010.unk0_5 = 1; + D_80383010.unk3_5 = 1; break; case 0xA: - D_80383010.unk0_5 = 1; + D_80383010.unk3_5 = 1; D_80383010.unkC = 0.0f; D_80383010.unk5 = 4; if(D_80383010.unk9 != 0xC){ - D_80383010.unk0_1 = 0; + D_80383010.b_button_visible = 0; } - func_8031209C(D_8036C520, 4); + gcpausemenu_8031209C(D_8036C520, 4); break; case 0xB: - if(D_80383010.unk2 && D_80383010.unk2 == func_80312034(level_get())){ + if(D_80383010.selection && D_80383010.selection == gcpausemenu_levelToMenuPage(level_get())){ func_802F5188(); } - func_803117A0(); - func_80311854(); + gcpausemenu_zoomboxes_free(); + gcpausemenu_zoomboxes_initMainMenu(); break; case 0xC: D_80383010.unk1 = 2; D_80383010.unk6++; - D_80383010.unk0_5 = 1; + D_80383010.unk3_5 = 1; D_80383010.unk5 = 0; for(i = 0; i<4; i++){ D_80383010.unk5 += func_803188B4(D_80383010.zoombox[i]); @@ -535,25 +538,25 @@ void func_803120FC(s32 arg0){ case 0xD:/* 8B694 80312624 3C128038 */ D_80383010.unk6 = 0xFF; - D_80383010.unk0_5 = 1; - if(D_80383010.unk2 && D_80383010.unk2 == func_80312034(level_get())){ + D_80383010.unk3_5 = 1; + if(D_80383010.selection && D_80383010.selection == gcpausemenu_levelToMenuPage(level_get())){ func_802F5188(); } - D_80383010.unk2 = D_80383010.unk9; - if(D_80383010.unk2 && D_80383010.unk2 == func_80312034(level_get())){ + D_80383010.selection = D_80383010.unk9; + if(D_80383010.selection && D_80383010.selection == gcpausemenu_levelToMenuPage(level_get())){ func_802F5060(0x6e7); } - if(D_80383010.unk2) - func_80311D74(D_8036C58C[D_80383010.unk2].level_id); + if(D_80383010.selection) + gcpausemenu_printLevelTotals(D_8036C58C[D_80383010.selection].level_id); else{ - func_80311F48(); + gcpausemenu_printTotals(); } for(i = 0; i < 4; i++){//L803126D8 //L80312764 - if(D_8036C58C[D_80383010.unk2].level_id == 6){ + if(D_8036C58C[D_80383010.selection].level_id == 6){ gczoombox_highlight(D_80383010.zoombox[i], !((i == 0) || (i == 2))); } - else if(D_8036C58C[D_80383010.unk2].level_id == 0xB){//L80312728 + else if(D_8036C58C[D_80383010.selection].level_id == 0xB){//L80312728 gczoombox_highlight(D_80383010.zoombox[i], (!(i == 0) && !(i == 1))); } else{ @@ -569,44 +572,44 @@ void func_803120FC(s32 arg0){ case 0xE:/* 8B824 803127B4 3C128038 */ D_80383010.unk1 = 4; - D_80383010.unk2 = D_80383010.unk9; + D_80383010.selection = D_80383010.unk9; D_80383010.unk9 = -1; - D_80383010.unk5C = assetcache_get(0x50D); - D_80383010.unk60 = assetcache_get(0x50C); + D_80383010.sns_egg_model = assetcache_get(0x50D); + D_80383010.ice_key_model = assetcache_get(0x50C); for(i = 0; i < 7; i++){ D_80383010.unk3E[i] = randf2(0.0f, 360.0f); - D_80383010.unk4A[i+1] = ((i & 1)? -1.0: 1.0)*randf2( 60.0f, 180.0f); + D_80383010.unk4C[i] = ((i & 1)? -1.0: 1.0)*randf2( 60.0f, 180.0f); } break; case 0xF: /* 8B8FC 8031288C 3C128038 */ D_80383010.unk8 = -0x10; D_80383010.unk6 = 0xff; - D_80383010.unk0_5 = D_80383010.unk3A = 1; + D_80383010.unk3_5 = D_80383010.sns_visible = 1; break; case 0x10: break; case 0x11: /* 8B944 803128D4 3C128038 */ - D_80383010.unk0_5 = 1; - D_80383010.unk3A = 0; + D_80383010.unk3_5 = 1; + D_80383010.sns_visible = 0; if(D_80383010.unk9 == -1) - D_80383010.unk0_1 = 0; + D_80383010.b_button_visible = 0; break; case 0x12: /* 8B978 80312908 3C128038 */ - D_80383010.unk2 = D_80383010.unk9; - func_8033BD20(&D_80383010.unk5C); - func_8033BD20(&D_80383010.unk60); + D_80383010.selection = D_80383010.unk9; + func_8033BD20(&D_80383010.sns_egg_model); //free + func_8033BD20(&D_80383010.ice_key_model); //free break; case 0x13: /* 8B9A8 80312938 3C128038 */ - D_80383010.unk0_7 = 0; + D_80383010.unk3_7 = 0; break; case 0x14: /* 8B9C0 80312950 3C128038 */ - D_80383010.unk0_7 = D_80383010.unk0_6 = 0; + D_80383010.unk3_7 = D_80383010.unk3_6 = 0; D_80383010.unkC = 0.0f; func_8025A430(-1, 0x7D0, 3); func_8025A2B0(); @@ -615,14 +618,14 @@ void func_803120FC(s32 arg0){ default: break; } - D_80383010.unk0 = arg0; + D_80383010.state = next_state; } -void func_803129DC(s32 arg0, s32 arg1) { +void gcpausemenu_803129DC(s32 arg0, s32 arg1) { s8 var_t9; u8 temp_t6; - switch (D_80383010.unk0) { + switch (D_80383010.state) { case 3: case 10: if (arg1 == 6) { @@ -655,32 +658,32 @@ void func_803129DC(s32 arg0, s32 arg1) { } if( (arg1 == 2) && (D_80383010.unk1 == 0) - && (arg0 - 4 != D_80383010.unk2) + && (arg0 - 4 != D_80383010.selection) ) { gczoombox_highlight(D_80383010.zoombox[arg0 - 4], 0); } } -s32 func_80312B04(void) { +s32 gcpausemenu_initLargestPageIndex(void) { s16 *var_s1; s32 var_s0; s32 var_s3; var_s3 = 0; if (D_80383010.unk39 != 0) { - return 0xC; + return 0xC; //if any SnS items collected return last page } for(var_s0 = 1; var_s0 < 0xC; var_s0++){ - if(func_8034717C(D_8036C58C[var_s0].level_id)){ + if(itemscore_timeScores_get(D_8036C58C[var_s0].level_id) != 0){ var_s3 = var_s0; } } return var_s3; } -s32 func_80312B84(void){ return 1; } +bool gcpausemenu_isReturnToLairDisabled(void){ return TRUE; } -void func_80312B8C(void) { +void gcpausemenu_init(void) { s32 i; s32 sp38; s32 sp34; @@ -707,31 +710,31 @@ void func_80312B8C(void) { + sp28 + sp24 + sns_get_item_state(7, 0); - D_80383010.unk70_29 = func_80312B84(); + D_80383010.return_to_lair_disabled = gcpausemenu_isReturnToLairDisabled(); func_80311604(); - func_80311854(); - D_80383010.unk24 = assetcache_get(0x7EB); - D_80383010.unkB = spriteGetFrameCount(D_80383010.unk24); - D_80383010.unk34 = temp_v1 = D_80383010.unk36 = 0; - D_80383010.unkA = D_80383010.unk0_4 = temp_v1; + gcpausemenu_zoomboxes_initMainMenu(); + D_80383010.joystick_sprite = assetcache_get(0x7EB); + D_80383010.joystick_frame_count = spriteGetFrameCount(D_80383010.joystick_sprite); + D_80383010.left_joystick_alpha = temp_v1 = D_80383010.right_joystick_alpha = 0; + D_80383010.joystick_frame = D_80383010.unk3_4 = temp_v1; - D_80383010.unk2C = assetcache_get(0x7ED); - D_80383010.unk31 = spriteGetFrameCount(D_80383010.unk2C); - D_80383010.unk30 = D_80383010.unk0_0 = D_80383010.unk32 = 0; - D_80383010.unk38 = func_80312B04(); - D_80383010.unk3C = D_80383010.unk3A = D_80383010.unk70_31 = D_80383010.unk70_30 = 0; + D_80383010.b_button_sprite = assetcache_get(0x7ED); + D_80383010.b_button_frame_count = spriteGetFrameCount(D_80383010.b_button_sprite); + D_80383010.b_button_frame = D_80383010.unk3_0 = D_80383010.b_button_alpha = 0; + D_80383010.page_cnt = gcpausemenu_initLargestPageIndex(); + D_80383010.sns_alpha = D_80383010.sns_visible = D_80383010.unk70_31 = D_80383010.unk70_30 = 0; func_80250FC0(); - func_803120FC(0); + gcPauseMenu_setState(0); } -s32 func_80312D78(struct1As *arg0, s32 arg1) { +s32 gcpausemenu_80312D78(struct1As *arg0, s32 arg1) { s32 var_s2; s32 var_s4; s32 var_v0; var_s4 = 0; for(var_s2 = 0; var_s2 < arg1; var_s2++){ - if (arg0[var_s2].unk0 <= D_80383010.unkC) { + if (arg0[var_s2].delay <= D_80383010.unkC) { if (!arg0[var_s2].unkF) { var_v0 = func_803183A4(D_80383010.zoombox[var_s2], arg0[var_s2].str) ? TRUE : FALSE; arg0[var_s2].unkF = var_v0; @@ -752,12 +755,12 @@ s32 func_80312D78(struct1As *arg0, s32 arg1) { return var_s4; } -void func_80312E80(struct1As *arg0, s32 arg1) { +void gcpausemenu_80312E80(struct1As *arg0, s32 arg1) { f32 var_f0; s32 var_s1; for(var_s1 = 0; var_s1 < arg1; var_s1++){ - var_f0 = ((var_s1 == D_80383010.unk2) && (D_80383010.unk1 == 0)) ? 0.2 : arg0[var_s1].unk4; + var_f0 = ((var_s1 == D_80383010.selection) && (D_80383010.unk1 == 0)) ? 0.2 : arg0[var_s1].unk4; if (var_f0 <= D_80383010.unkC) { if (arg0[var_s1].unkF == 0) { func_80318498(D_80383010.zoombox[var_s1]); @@ -770,51 +773,56 @@ void func_80312E80(struct1As *arg0, s32 arg1) { } } -void func_80312F88(s32 arg0){ - struct1Cs *v0 = D_8036C58C + arg0; +void gcpausemenu_printTotalsHeader(s32 page_id){ + struct1Cs_1 *v0 = D_8036C58C + page_id; print_bold_overlapping(v0->x, D_80383010.unk8, -1.05f, v0->string); } -void func_80312FD0(s32 arg0) { +void gcpausemenu_80312FD0(s32 arg0) { s32 temp_v1; - if (D_80383010.unk0_5) { + if (D_80383010.unk3_5) { if (arg0 > 0) { D_80383010.unk6++; temp_v1 = D_8036C5F4[D_80383010.unk6]; D_80383010.unk8 += temp_v1; if (D_80383010.unk6 == 0xC) { - D_80383010.unk0_5 = FALSE; + D_80383010.unk3_5 = FALSE; } } else { D_80383010.unk6--; temp_v1 = D_8036C5F4[D_80383010.unk6]; D_80383010.unk8 -= temp_v1; if (D_80383010.unk6 == 0) { - D_80383010.unk0_5 = FALSE; + D_80383010.unk3_5 = FALSE; } } } } -s32 func_80313070(void){ - return D_80383010.unk38; +s32 gcpausemenu_getMaxPage(void){ + return D_80383010.page_cnt; } -#pragma GLOBAL_ASM("asm/nonmatchings/core2/gc/pauseMenu/func_8031307C.s") -// void func_8031307C(s32 arg0) { -// D_80383010.unk9 = D_80383010.unk2; -// do { -// D_80383010.unk9 += arg0; -// }while(((D_80383010.unk39 == 0) || (D_80383010.unk9 != 0xC)) -// && (D_80383010.unk9 != 0) -// && !func_8034717C(D_8036C58C[D_80383010.unk9].level_id) -// ); -// func_803120FC((D_80383010.unk9 == 0xC) ? 0xA : 0xC); -// D_80383010.unk7 = 6; -// } +#ifndef NONMATCHING +void gcpausemenu_getNextPage(s32); +#pragma GLOBAL_ASM("asm/nonmatchings/core2/gc/pauseMenu/gcpausemenu_getNextPage.s") +#else +void gcpausemenu_getNextPage(s32 arg0) { + D_80383010.unk9 = D_80383010.selection; + do{ + D_80383010.unk9 += arg0; + } + while(((D_80383010.unk39 == 0) || (D_80383010.unk9 != 0xC)) + && (D_80383010.unk9 != 0) + && itemscore_timeScores_get(D_8036C58C[D_80383010.unk9].level_id) == 0 + ); + gcPauseMenu_setState((D_80383010.unk9 == 0xC) ? 0xA : 0xC); + D_80383010.unk7 = 6; +} +#endif -void func_80313134(void) { +void gcpausemenu_updateBButtonAndJoystickSprites(void) { f32 temp_f12; f32 var_f0; f32 var_f0_2; @@ -826,41 +834,41 @@ void func_80313134(void) { u8 temp_v0_2; D_80383010.unk20 += time_getDelta(); - var_f0 = (D_80383010.unk0_4) ? 0.05 : 0.066666666666666666; + var_f0 = (D_80383010.unk3_4) ? 0.05 : 0.066666666666666666; while (var_f0 < D_80383010.unk20) { - if (D_80383010.unk0_4) { - if (D_80383010.unkA-- == 0) { - D_80383010.unkA = 0; - D_80383010.unk0_4 = FALSE; + if (D_80383010.unk3_4) { + if (D_80383010.joystick_frame-- == 0) { + D_80383010.joystick_frame = 0; + D_80383010.unk3_4 = FALSE; var_f0 = 0.066666666666666666; } } else { - D_80383010.unkA++; - if (D_80383010.unkA >= D_80383010.unkB) { - D_80383010.unk0_4 = TRUE; - D_80383010.unkA = D_80383010.unkB - 1; + D_80383010.joystick_frame++; + if (D_80383010.joystick_frame >= D_80383010.joystick_frame_count) { + D_80383010.unk3_4 = TRUE; + D_80383010.joystick_frame = D_80383010.joystick_frame_count - 1; var_f0 = 0.05f; } } D_80383010.unk20 -= var_f0; } - D_80383010.unk0_3 = (D_80383010.unk2 != 0) ? TRUE : FALSE; - D_80383010.unk0_2 = (func_80313070() == D_80383010.unk2) ? FALSE : TRUE; + D_80383010.left_joystick_visible = (D_80383010.selection != 0) ? TRUE : FALSE; + D_80383010.right_joystick_visible = (gcpausemenu_getMaxPage() == D_80383010.selection) ? FALSE : TRUE; D_80383010.unk28 += time_getDelta(); - var_f12 = (D_80383010.unk0_0) ? 0.04 : 0.04; + var_f12 = (D_80383010.unk3_0) ? 0.04 : 0.04; while (D_80383010.unk28 > var_f12) { - if (D_80383010.unk0_0) { - if (D_80383010.unk30-- <= 0) { - D_80383010.unk30 = 0; - D_80383010.unk0_0 = FALSE; + if (D_80383010.unk3_0) { + if (D_80383010.b_button_frame-- <= 0) { + D_80383010.b_button_frame = 0; + D_80383010.unk3_0 = FALSE; var_f12 = 0.04; } } else { - D_80383010.unk30++; - if (D_80383010.unk30 >= D_80383010.unk31) { - D_80383010.unk0_0 = TRUE; - D_80383010.unk30 = D_80383010.unk31 - 1; + D_80383010.b_button_frame++; + if (D_80383010.b_button_frame >= D_80383010.b_button_frame_count) { + D_80383010.unk3_0 = TRUE; + D_80383010.b_button_frame = D_80383010.b_button_frame_count - 1; var_f12 = 0.04; } } @@ -869,20 +877,20 @@ void func_80313134(void) { } } -s32 func_80313380(void){ +s32 gcPauseMenu_update(void){ s32 i; - s32 sp6C[6]; + s32 face_button[6]; s32 sp60[3]; s32 sp50[4]; - f32 sp48[2]; + f32 joystick[2]; s32 level = level_get(); //sp44 if(getGameMode() != GAME_MODE_4_PAUSED) return 0; - func_8024E55C(0, sp6C); - func_8024E71C(0, sp48); + func_8024E55C(0, face_button); + func_8024E71C(0, joystick); func_8024E60C(0, sp60); func_8024E6E0(0, sp50); func_80310D2C(); @@ -892,21 +900,23 @@ s32 func_80313380(void){ D_80383010.unkC += time_getDelta(); - switch(D_80383010.unk0){ - case 0: //closed - func_803120FC(1); + switch(D_80383010.state){ + case PAUSE_STATE_0_CLOSED: //closed + gcPauseMenu_setState(PAUSE_STATE_1_OPENING); break; - case 1: //opening - if(func_80312D78(D_8036C4E0, 4) == 4){ - if(((D_80383010.unk70_29)? 3: 4 ) == D_80383010.unk4){ + + case PAUSE_STATE_1_OPENING: //opening + if(gcpausemenu_80312D78(D_8036C4E0, 4) == 4){ + if(((D_80383010.return_to_lair_disabled)? 3: 4 ) == D_80383010.unk4){ D_80383010.unk4 = 0; - func_803120FC(2); + gcPauseMenu_setState(2); } } if(func_8024E67C(BUTTON_START) == 1){ - func_803120FC(6); + gcPauseMenu_setState(6); } break; + case 2: //open if(D_80383010.unk70_31 && !func_802FC3C4()){ func_802FACA4(ITEM_12_JINJOS); @@ -917,68 +927,68 @@ s32 func_80313380(void){ D_80383010.unk70_30 = 0; } if(func_8024E67C(BUTTON_START) == 1){ - func_803120FC(6); - }else if(sp6C[0] == 1){ - switch(D_80383010.unk2){ + gcPauseMenu_setState(6); + }else if(face_button[FACE_BUTTON(BUTTON_A)] == 1){ + switch(D_80383010.selection){ case 1://L80313594 if(level > 0 && level < 0xC) if(D_8036C560[level-1].map != -1) - func_803120FC(5); + gcPauseMenu_setState(5); break; case 3://L803135D0 - func_803120FC(5); + gcPauseMenu_setState(5); break; default://L803135E4 - func_803120FC(3); + gcPauseMenu_setState(3); break; } } - else if(sp6C[1] == 1){//L803135F8 - gczoombox_highlight(D_80383010.zoombox[D_80383010.unk2], 0); - D_80383010.unk2 = 0; - gczoombox_highlight(D_80383010.zoombox[D_80383010.unk2], 1); - func_803120FC(3); + else if(face_button[FACE_BUTTON(BUTTON_B)] == 1){//L803135F8 + gczoombox_highlight(D_80383010.zoombox[D_80383010.selection], 0); + D_80383010.selection = 0; + gczoombox_highlight(D_80383010.zoombox[D_80383010.selection], 1); + gcPauseMenu_setState(3); } else if(D_80383010.unk7 > 0) {//L8031364C D_80383010.unk7--; }//L80313664 else { - if( D_80383010.unk2 == 2 && !D_80383010.unk0_6){ - func_803160A8(D_80383010.zoombox[D_80383010.unk2]); - D_80383010.unk0_6 = 1; + if( D_80383010.selection == 2 && !D_80383010.unk3_6){ + func_803160A8(D_80383010.zoombox[D_80383010.selection]); + D_80383010.unk3_6 = 1; } - if(0.75 < sp48[1]){ - if((s32)D_80383010.unk2 > 0){ - gczoombox_highlight(D_80383010.zoombox[D_80383010.unk2], 0); - D_80383010.unk2--; - if(D_80383010.unk70_29 && D_80383010.unk2 == 1) - D_80383010.unk2 --; - gczoombox_highlight(D_80383010.zoombox[D_80383010.unk2], 1); - func_803160A8(D_80383010.zoombox[D_80383010.unk2]); - D_80383010.unk0_6 = 0; + if(0.75 < joystick[JOYSTICK_Y]){ + if((s32)D_80383010.selection > 0){ + gczoombox_highlight(D_80383010.zoombox[D_80383010.selection], FALSE); + D_80383010.selection--; + if(D_80383010.return_to_lair_disabled && D_80383010.selection == 1) + D_80383010.selection --; + gczoombox_highlight(D_80383010.zoombox[D_80383010.selection], TRUE); + func_803160A8(D_80383010.zoombox[D_80383010.selection]); + D_80383010.unk3_6 = 0; D_80383010.unk7 = 6; } - }else if(sp48[1] < -0.75){ - if((s32)D_80383010.unk2 < 3){ - gczoombox_highlight(D_80383010.zoombox[D_80383010.unk2], 0); - D_80383010.unk2++; - if(D_80383010.unk70_29 && D_80383010.unk2 == 1) - D_80383010.unk2++; - gczoombox_highlight(D_80383010.zoombox[D_80383010.unk2], 1); - func_803160A8(D_80383010.zoombox[D_80383010.unk2]); - D_80383010.unk0_6 = 0; + }else if(joystick[JOYSTICK_Y] < -0.75){ + if((s32)D_80383010.selection < 3){ + gczoombox_highlight(D_80383010.zoombox[D_80383010.selection], 0); + D_80383010.selection++; + if(D_80383010.return_to_lair_disabled && D_80383010.selection == 1) + D_80383010.selection++; + gczoombox_highlight(D_80383010.zoombox[D_80383010.selection], 1); + func_803160A8(D_80383010.zoombox[D_80383010.selection]); + D_80383010.unk3_6 = 0; D_80383010.unk7 = 6; } } } - if(D_80383010.unk2 == 2 && !D_80383010.unk0_6 && D_80383010.unk7 == 3){ - func_803160A8(D_80383010.zoombox[D_80383010.unk2]); - D_80383010.unk0_6 = 1; + if(D_80383010.selection == 2 && !D_80383010.unk3_6 && D_80383010.unk7 == 3){ + func_803160A8(D_80383010.zoombox[D_80383010.selection]); + D_80383010.unk3_6 = 1; } break; case 3: //returning to game - func_80312E80(D_8036C4E0,4); + gcpausemenu_80312E80(D_8036C4E0,4); if(D_80383010.unk5 <= 0){ for(i = 0; i<4; i++){ gczoombox_close(D_80383010.zoombox[i]); @@ -987,13 +997,13 @@ s32 func_80313380(void){ } if(D_80383010.unk4 == 4){ D_80383010.unk4 = 0; - func_803120FC(4); + gcPauseMenu_setState(4); } break; case 4: - switch(D_80383010.unk2){ + switch(D_80383010.selection){ case 0://L803138FC - D_80383010.unk0_7 = 1; + D_80383010.unk3_7 = 1; break; case 1://L80313908 //return to lair func_803204E4(0x16, 1); @@ -1003,43 +1013,43 @@ s32 func_80313380(void){ }else{ func_802E4078(D_8036C560[level-1].map, D_8036C560[level-1].exit, 1); } - func_803120FC(0x13); + gcPauseMenu_setState(0x13); break; case 2://L80313978 - D_80383010.unk2 = func_80312034(level_get()); - func_803120FC(7); + D_80383010.selection = gcpausemenu_levelToMenuPage(level_get()); + gcPauseMenu_setState(7); break; case 3://L8031399C func_802C5994(); func_803204E4(0,0); if(!func_8031FF1C(BKPROG_BD_ENTER_LAIR_CUTSCENE) || func_8031FF1C(BKPROG_A6_FURNACE_FUN_COMPLETE)){ - func_803120FC(0x14); + gcPauseMenu_setState(0x14); }else{ func_802E412C(1,0); func_802E4078(MAP_83_CS_GAME_OVER_MACHINE_ROOM, 0, 1); - func_803120FC(0x13); + gcPauseMenu_setState(0x13); } break; } break; case 5: if(3.0 < D_80383010.unkC){ - if( D_8036C4E0[D_80383010.unk2].unkF){ - gczoombox_minimize(D_80383010.zoombox[D_80383010.unk2]); + if( D_8036C4E0[D_80383010.selection].unkF){ + gczoombox_minimize(D_80383010.zoombox[D_80383010.selection]); } - D_80383010.unk0_6 ^= 1; - gczoombox_maximize(D_80383010.zoombox[D_80383010.unk2]); - if(D_8036C4E0[D_80383010.unk2].unkF = func_803183A4(D_80383010.zoombox[D_80383010.unk2], (D_80383010.unk0_6)? "ARE YOU SURE?" : "A - YES, B - NO")) + D_80383010.unk3_6 ^= 1; + gczoombox_maximize(D_80383010.zoombox[D_80383010.selection]); + if(D_8036C4E0[D_80383010.selection].unkF = func_803183A4(D_80383010.zoombox[D_80383010.selection], (D_80383010.unk3_6)? "ARE YOU SURE?" : "A - YES, B - NO")) D_80383010.unkC = 0.0; }//L80313AF4 if(func_8024E67C(BUTTON_START) == 1){ - func_803120FC(6); - }else if(sp6C[1] == 1){ - D_80383010.unk4 = (D_80383010.unk70_29)? 3 : 4; - func_803188B4(D_80383010.zoombox[D_80383010.unk2]); - func_803120FC(1); - }else if(sp6C[0] == 1){//L80313B68 - func_803120FC(3); + gcPauseMenu_setState(6); + }else if(face_button[FACE_BUTTON(BUTTON_B)] == 1){ + D_80383010.unk4 = (D_80383010.return_to_lair_disabled)? 3 : 4; + func_803188B4(D_80383010.zoombox[D_80383010.selection]); + gcPauseMenu_setState(1); + }else if(face_button[FACE_BUTTON(BUTTON_A)] == 1){//L80313B68 + gcPauseMenu_setState(3); } break; @@ -1047,51 +1057,51 @@ s32 func_80313380(void){ if(D_80383010.unk4 == 4){ if(0.2 < D_80383010.unkC){ D_80383010.unk4 = 0; - func_803120FC(4); + gcPauseMenu_setState(4); } } break; case 7: - func_803120FC(8); + gcPauseMenu_setState(8); break; case 8: - func_80312F88(D_80383010.unk2); - func_80312FD0(1); - func_80312D78(D_8036C520,4); - func_80313134(); + gcpausemenu_printTotalsHeader(D_80383010.selection); + gcpausemenu_80312FD0(1); + gcpausemenu_80312D78(D_8036C520,4); + gcpausemenu_updateBButtonAndJoystickSprites(); if(D_80383010.unk4 == 4){ D_80383010.unk4 = 0; - func_803120FC(9); + gcPauseMenu_setState(9); } break; case 9: - func_80312F88(D_80383010.unk2); - func_80312FD0(1); - func_80313134(); + gcpausemenu_printTotalsHeader(D_80383010.selection); + gcpausemenu_80312FD0(1); + gcpausemenu_updateBButtonAndJoystickSprites(); if(func_8024E67C(BUTTON_START) == 1){ D_80383010.unk1 = 3; - func_803120FC(0xA); - }else if(sp6C[1] == 1){ - func_803120FC(0xA); - }else if(0.75 < sp48[0]){ - if((s32)D_80383010.unk2 < func_80313070()) - func_8031307C(1); - }else if(sp48[0] < -0.75){//L80313CCC - if((s32)D_80383010.unk2 > 0){ - func_8031307C(-1); + gcPauseMenu_setState(0xA); + }else if(face_button[FACE_BUTTON(BUTTON_B)] == 1){ + gcPauseMenu_setState(0xA); + }else if(0.75 < joystick[JOYSTICK_X]){ + if((s32)D_80383010.selection < gcpausemenu_getMaxPage()) + gcpausemenu_getNextPage(1); + }else if(joystick[JOYSTICK_X] < -0.75){//L80313CCC + if((s32)D_80383010.selection > 0){ + gcpausemenu_getNextPage(-1); } } break; case 0xA://80313D00 - func_80312F88(D_80383010.unk2); - func_80312FD0(-1); - func_80312E80(D_8036C520, 4); - func_80313134(); + gcpausemenu_printTotalsHeader(D_80383010.selection); + gcpausemenu_80312FD0(-1); + gcpausemenu_80312E80(D_8036C520, 4); + gcpausemenu_updateBButtonAndJoystickSprites(); if(D_80383010.unk9 != 0xC){ - D_80383010.unk0_3 = 0; - D_80383010.unk0_2 = 0; + D_80383010.left_joystick_visible = 0; + D_80383010.right_joystick_visible = 0; }//L80313D50 if(!D_80383010.unk5){ for(i = 0; i < 4; i++){ @@ -1101,105 +1111,105 @@ s32 func_80313380(void){ }//L80313D8C if( D_80383010.unk4 == 4){ D_80383010.unk4 = 0; - func_803120FC(0xB); + gcPauseMenu_setState(0xB); } break; case 0xB: if(D_80383010.unk1 == 3){ - D_80383010.unk0_7 = 1; + D_80383010.unk3_7 = 1; } else{ - func_803120FC((D_80383010.unk9 == 0xC)? 0xE : 0); + gcPauseMenu_setState((D_80383010.unk9 == 0xC)? 0xE : 0); } break; - case 0xC: - func_80312F88(D_80383010.unk2); - func_80312FD0(-1); - func_80313134(); - if(D_80383010.unk5 == 0 && !D_80383010.unk0_5){ - func_803120FC(0xd); + case 0xC: //Flip to Sns Total page + gcpausemenu_printTotalsHeader(D_80383010.selection); + gcpausemenu_80312FD0(-1); + gcpausemenu_updateBButtonAndJoystickSprites(); + if(D_80383010.unk5 == 0 && !D_80383010.unk3_5){ + gcPauseMenu_setState(0xd); } break; - case 0xD: - func_80312F88(D_80383010.unk2); - func_80312FD0(1); - func_80313134(); + case 0xD: //Open SnS Total Page + gcpausemenu_printTotalsHeader(D_80383010.selection); + gcpausemenu_80312FD0(1); + gcpausemenu_updateBButtonAndJoystickSprites(); if(D_80383010.unk7 > 0) D_80383010.unk7--; else - func_803120FC(9); + gcPauseMenu_setState(9); break; case 0xE: - func_803120FC(0xF); + gcPauseMenu_setState(0xF); break; case 0xF: - func_80312F88(D_80383010.unk2); - func_80312FD0(1); - func_80313134(); - if(!D_80383010.unk0_5){ - func_803120FC(0x10); + gcpausemenu_printTotalsHeader(D_80383010.selection); + gcpausemenu_80312FD0(1); + gcpausemenu_updateBButtonAndJoystickSprites(); + if(!D_80383010.unk3_5){ + gcPauseMenu_setState(0x10); } break; case 0x10: - func_80312F88(D_80383010.unk2); - func_80313134(); + gcpausemenu_printTotalsHeader(D_80383010.selection); + gcpausemenu_updateBButtonAndJoystickSprites(); if(func_8024E67C(BUTTON_START) == 1){ D_80383010.unk1 = 3; - func_803120FC(0x11); + gcPauseMenu_setState(0x11); }//L80313EFC - else if(sp6C[1] == 1){ - func_803120FC(0x11); + else if(face_button[FACE_BUTTON(BUTTON_B)] == 1){ + gcPauseMenu_setState(0x11); } - else if(sp48[0] < -0.75){ - func_8031307C(-1); - func_803120FC(0x11); + else if(joystick[JOYSTICK_X] < -0.75){ + gcpausemenu_getNextPage(-1); + gcPauseMenu_setState(0x11); } break; case 0x11: - func_80312F88(D_80383010.unk2); - func_80312FD0(-1); - func_80313134(); + gcpausemenu_printTotalsHeader(D_80383010.selection); + gcpausemenu_80312FD0(-1); + gcpausemenu_updateBButtonAndJoystickSprites(); if(D_80383010.unk9 == -1){ - D_80383010.unk0_3 = 0; - D_80383010.unk0_2 = 0; + D_80383010.left_joystick_visible = 0; + D_80383010.right_joystick_visible = 0; } - if(D_80383010.unk3C == 0){ - func_803120FC(0x12); + if(D_80383010.sns_alpha == 0){ + gcPauseMenu_setState(0x12); } break; case 0x12: if(D_80383010.unk1 == 3){ - D_80383010.unk0_7 = 1; + D_80383010.unk3_7 = 1; }else{ - func_803120FC((D_80383010.unk9 != -1)?7:0); + gcPauseMenu_setState((D_80383010.unk9 != -1)?7:0); } break; case 0x14: func_802DC5B8(); if( 5.0 < D_80383010.unkC){ - if(!D_80383010.unk0_6){ + if(!D_80383010.unk3_6){ func_802DC560(0,0); func_802E412C(1,0); func_802E4078(0x1f, 0, 1); - D_80383010.unk0_6 = 1; + D_80383010.unk3_6 = 1; } } break; } - return D_80383010.unk0_7; + return D_80383010.unk3_7; } -void __pause_drawSprite(Gfx** gdl, Mtx** mptr, void* vptr, BKSprite* sprite, s32 frame, f32 x, f32 y, f32 w, f32 h, u8 a){ +void __gcpausemenu_drawSprite(Gfx** gdl, Mtx** mptr, Vtx** vptr, BKSprite* sprite, s32 frame, f32 x, f32 y, f32 w, f32 h, u8 a){ f32 sp5C[3]; f32 sp50[3]; f32 sp44[3]; @@ -1236,17 +1246,17 @@ void __pause_drawSprite(Gfx** gdl, Mtx** mptr, void* vptr, BKSprite* sprite, s32 } -void func_80314234(Gfx** gdl, Mtx** mptr, s32 vptr, BKSprite *sprite, s32 frame, f32 x, f32 y, s32 mirror, u8 a){ +void gcpausemenu_drawSprite(Gfx** gdl, Mtx** mptr, s32 vptr, BKSprite *sprite, s32 frame, f32 x, f32 y, s32 mirror, u8 a){ BKSpriteFrame *_frame; s32 w; s32 h; _frame = spriteGetFramePtr(sprite, frame); w = ((mirror)? -1 : 1) * _frame->w; h = _frame->h; - __pause_drawSprite(gdl, mptr, vptr, sprite, frame, (x - w * 0.5), (y - h * 0.5), w, h, a); + __gcpausemenu_drawSprite(gdl, mptr, vptr, sprite, frame, (x - w * 0.5), (y - h * 0.5), w, h, a); } -void func_80314320(Gfx **gfx, Mtx **mtx, Vtx **vtx) { +void gcpausemenu_draw(Gfx **gfx, Mtx **mtx, Vtx **vtx) { static int D_8036C620 = 1; s32 var_a0; @@ -1277,50 +1287,50 @@ void func_80314320(Gfx **gfx, Mtx **mtx, Vtx **vtx) { gczoombox_draw(D_80383010.zoombox[i], gfx, mtx, vtx); } - func_80314234(gfx, mtx, vtx, D_80383010.unk24, D_80383010.unkA, 30.0f, 196.0f, 1, (s32) D_80383010.unk34); - func_80314234(gfx, mtx, vtx, D_80383010.unk24, D_80383010.unkA, (f32) (D_80276588 - 0x1E), 196.0f, 0, (s32) D_80383010.unk36); - var_a0 =((*((u32 *)&D_80383010.unk0) << 0x1c) >> 0x1f); + gcpausemenu_drawSprite(gfx, mtx, vtx, D_80383010.joystick_sprite, D_80383010.joystick_frame, 30.0f, 196.0f, 1, (s32) D_80383010.left_joystick_alpha); + gcpausemenu_drawSprite(gfx, mtx, vtx, D_80383010.joystick_sprite, D_80383010.joystick_frame, (f32) (D_80276588 - 0x1E), 196.0f, 0, (s32) D_80383010.right_joystick_alpha); + var_a0 =((*((u32 *)&D_80383010.state) << 0x1c) >> 0x1f); //left_joystick_visible if ( var_a0 != 0) { - if (D_80383010.unk34 < 0xFF) { - D_80383010.unk34 = (D_80383010.unk34 + 0xC < 0xFF) ?D_80383010.unk34 + 0xC : 0xFF; + if (D_80383010.left_joystick_alpha < 0xFF) { + D_80383010.left_joystick_alpha = (D_80383010.left_joystick_alpha + 0xC < 0xFF) ?D_80383010.left_joystick_alpha + 0xC : 0xFF; } } - var_a0 =((*((u32 *)&D_80383010.unk0) << 0x1c) >> 0x1f); + var_a0 =((*((u32 *)&D_80383010.state) << 0x1c) >> 0x1f); //left_joystick_visible if (var_a0 == 0) { - if (D_80383010.unk34 > 0) { - D_80383010.unk34 = (D_80383010.unk34 - 0xC > 0) ? D_80383010.unk34 - 0xC : 0; + if (D_80383010.left_joystick_alpha > 0) { + D_80383010.left_joystick_alpha = (D_80383010.left_joystick_alpha - 0xC > 0) ? D_80383010.left_joystick_alpha - 0xC : 0; } } - if (((*((u32 *)&D_80383010.unk0) << 0x1d) >> 0x1f) != 0) { - if (D_80383010.unk36 < 0xFF) { - D_80383010.unk36 = (D_80383010.unk36 + 0xC < 0xFF) ? D_80383010.unk36 + 0xC : 0xFF; + if (((*((u32 *)&D_80383010.state) << 0x1d) >> 0x1f) != 0) { //right_joystick_visible + if (D_80383010.right_joystick_alpha < 0xFF) { + D_80383010.right_joystick_alpha = (D_80383010.right_joystick_alpha + 0xC < 0xFF) ? D_80383010.right_joystick_alpha + 0xC : 0xFF; } } - if (((*((u32 *)&D_80383010.unk0) << 0x1d) >> 0x1f) == 0) { - if (D_80383010.unk36 > 0) { - D_80383010.unk36 = (D_80383010.unk36 - 0xC > 0) ? D_80383010.unk36 - 0xC : 0; + if (((*((u32 *)&D_80383010.state) << 0x1d) >> 0x1f) == 0) {//right_joystick_visible + if (D_80383010.right_joystick_alpha > 0) { + D_80383010.right_joystick_alpha = (D_80383010.right_joystick_alpha - 0xC > 0) ? D_80383010.right_joystick_alpha - 0xC : 0; } } - func_80314234(gfx, mtx, vtx, D_80383010.unk2C, (s32) D_80383010.unk30, D_80276588 * 0.5, 196.0f, 0, (s32) D_80383010.unk32); - var_a0 = ((*((u32 *)&D_80383010.unk0) << 0x1e) >> 0x1f); + gcpausemenu_drawSprite(gfx, mtx, vtx, D_80383010.b_button_sprite, (s32) D_80383010.b_button_frame, D_80276588 * 0.5, 196.0f, 0, (s32) D_80383010.b_button_alpha); + var_a0 = ((*((u32 *)&D_80383010.state) << 0x1e) >> 0x1f);//b_button_visible if (var_a0 != 0) { - if (D_80383010.unk32 < 0xFF) { - D_80383010.unk32 = (D_80383010.unk32 + 0xC < 0xFF) ? D_80383010.unk32 + 0xC : 0xFF; + if (D_80383010.b_button_alpha < 0xFF) { + D_80383010.b_button_alpha = (D_80383010.b_button_alpha + 0xC < 0xFF) ? D_80383010.b_button_alpha + 0xC : 0xFF; } } - if (var_a0 == 0) { - if (D_80383010.unk32 > 0) { - D_80383010.unk32 = (D_80383010.unk32 - 0xC > 0) ? D_80383010.unk32 - 0xC : 0; + if (var_a0 == 0) { //b_button_visible + if (D_80383010.b_button_alpha > 0) { + D_80383010.b_button_alpha = (D_80383010.b_button_alpha - 0xC > 0) ? D_80383010.b_button_alpha - 0xC : 0; } } - if (D_80383010.unk3C != 0) { + if (D_80383010.sns_alpha != 0) { sp7C = time_getDelta(); for(i = 1; i < 7; i++){ if (sns_get_item_state(i, 0)) { - D_80383010.unk3E[i] += (f32) D_80383010.unk4A[i + 1] * sp7C; + D_80383010.unk3E[i] += (f32) D_80383010.unk4C[i] * sp7C; if (D_80383010.unk3E[i] > 360.0) { D_80383010.unk3E[i] -= 360.0; } @@ -1356,14 +1366,14 @@ void func_80314320(Gfx **gfx, Mtx **mtx, Vtx **vtx) { } func_8033A45C(i, 1); set_model_render_mode(0); - func_8033A410(D_80383010.unk3C); - func_803391A4(gfx, mtx, &sp98, &sp8C, 0.8f, &sp80, D_80383010.unk5C); + func_8033A410(D_80383010.sns_alpha); + func_803391A4(gfx, mtx, &sp98, &sp8C, 0.8f, &sp80, D_80383010.sns_egg_model); func_8024E2FC(); func_8024C904(gfx, mtx); } } if (sns_get_item_state(7, 0)) { - D_80383010.unk3E[0] += D_80383010.unk4A[1] * sp7C; + D_80383010.unk3E[0] += D_80383010.unk4C[0] * sp7C; if (D_80383010.unk3E[0] > 360.0) { D_80383010.unk3E[0] -= 360.0; } @@ -1397,49 +1407,49 @@ void func_80314320(Gfx **gfx, Mtx **mtx, Vtx **vtx) { sp80[1] = 120.0f; sp80[2] = 0.0f; set_model_render_mode(0); - func_8033A410(D_80383010.unk3C); - func_803391A4(gfx, mtx, sp98, sp8C, 0.8f, sp80, D_80383010.unk60); + func_8033A410(D_80383010.sns_alpha); + func_803391A4(gfx, mtx, sp98, sp8C, 0.8f, sp80, D_80383010.ice_key_model); func_8024E2FC(); func_8024C904(gfx, mtx); } } - if (D_80383010.unk3A != 0) { - if (D_80383010.unk3C < 0xFF) { - D_80383010.unk3C = (D_80383010.unk3C + 0xC < 0xFF) ? D_80383010.unk3C + 0xC : 0xFF; + if (D_80383010.sns_visible != 0) { + if (D_80383010.sns_alpha < 0xFF) { + D_80383010.sns_alpha = (D_80383010.sns_alpha + 0xC < 0xFF) ? D_80383010.sns_alpha + 0xC : 0xFF; } } - if (D_80383010.unk3A == 0) { - if (D_80383010.unk3C > 0) { - D_80383010.unk3C = (D_80383010.unk3C - 0xC > 0) ? D_80383010.unk3C - 0xC : 0; + if (D_80383010.sns_visible == 0) { + if (D_80383010.sns_alpha > 0) { + D_80383010.sns_alpha = (D_80383010.sns_alpha - 0xC > 0) ? D_80383010.sns_alpha - 0xC : 0; } } - if (D_80383010.unk0 == 0x14) { + if (D_80383010.state == 0x14) { func_802DC604(gfx, mtx, vtx); } } -void func_80314AC8(int arg0){ +void gcpausemenu_80314AC8(int arg0){ if(arg0) D_80383084--; else D_80383084++; } -int func_80314B00(void){ +int gcpausemenu_80314B00(void){ return (!D_80383084) ? 1: 0; } -void func_80314B24(void){ +void gcpausemenu_80314B24(void){ D_80383084 = 0; } -void func_80314B30(void){ +void gcpausemenu_returnToLair(void){ s32 level = level_get(); if(0 < level && level < 0xC && D_8036C560[level-1].map != -1){ - func_803204E4(0x16, 1); + func_803204E4(0x16, TRUE); func_802E4078(D_8036C560[level-1].map, D_8036C560[level-1].exit, 1); } } diff --git a/src/core2/code_83D70.c b/src/core2/gc/section.c similarity index 99% rename from src/core2/code_83D70.c rename to src/core2/gc/section.c index 42c97bce..ec2e8e4d 100644 --- a/src/core2/code_83D70.c +++ b/src/core2/gc/section.c @@ -278,6 +278,6 @@ void func_8030AFD8(s32 arg0){ } func_8034789C(); func_80250FC0(); //stop controller motor - func_80314B24(); + gcpausemenu_80314B24(); func_80347A70(); } \ No newline at end of file diff --git a/src/core2/code_840D0.c b/src/core2/gc/sky.c similarity index 100% rename from src/core2/code_840D0.c rename to src/core2/gc/sky.c diff --git a/src/core2/gc/zoombox.c b/src/core2/gc/zoombox.c index f8af60cb..4cf4cc74 100644 --- a/src/core2/gc/zoombox.c +++ b/src/core2/gc/zoombox.c @@ -911,7 +911,7 @@ void func_80316764(gczoombox_t *this, s32 arg1) { return; } - if (arg1 && this->unk1A4_12 && sp38[0]) { + if (arg1 && this->unk1A4_12 && sp38[FACE_BUTTON(BUTTON_A)]) { if (this->unk110[0] == -1.0f) { func_80315C90(this, 1); } else { @@ -1142,7 +1142,7 @@ void gczoombox_update(gczoombox_t *this){ if(this->unk1A4_19){ sp44 *= 1.5; } - if(sp58[0] && this->unk1A4_12){ + if(sp58[FACE_BUTTON(BUTTON_A)] && this->unk1A4_12){ sp44 *= 0.5; } else if(sp4C[0] && this->unk1A4_12){ @@ -1152,7 +1152,7 @@ void gczoombox_update(gczoombox_t *this){ while(sp44 < this->unk18C && this->unk15C >= this->unk15E){ this->unk15E++; if(func_803156F0(this->unk60[this->unk15E], this->unk1A4_19)){ - this->unk18C -= (sp58[0] && this->unk1A4_12) ? 0.05 : 0.1; + this->unk18C -= (sp58[FACE_BUTTON(BUTTON_A)] && this->unk1A4_12) ? 0.05 : 0.1; }//L803172B4 this->unk18C -= sp44; }//L803172EC @@ -1171,7 +1171,7 @@ void gczoombox_update(gczoombox_t *this){ } break; case 0x3: //L80317360 - if((sp58[0] && this->unk1A4_12) || this->unk181 < 0){ + if((sp58[FACE_BUTTON(BUTTON_A)] && this->unk1A4_12) || this->unk181 < 0){ this->state = 4; this->unk183 = 0.5*sp48*this->unk184; @@ -1180,7 +1180,7 @@ void gczoombox_update(gczoombox_t *this){ } break; case 0x4: //L80317470 - if(sp58[0] && this->unk1A4_12){ + if(sp58[FACE_BUTTON(BUTTON_A)] && this->unk1A4_12){ this->unk183 = 0.5*sp48*(this->unk184 + 2); this->unk1A4_23 = 0; } diff --git a/src/lair/code_5640.c b/src/lair/code_5640.c index 28fd6756..58c6f7f8 100644 --- a/src/lair/code_5640.c +++ b/src/lair/code_5640.c @@ -184,7 +184,7 @@ void func_8038BCF0(Actor *this) { func_80328A84(this, 2); return; } - if (func_8028EFC8() && (sp78[BUTTON_Z] == 1)) { + if (func_8028EFC8() && (sp78[FACE_BUTTON(BUTTON_B)] == 1)) { this->unk10_12++; this->unk10_12 %= 3; func_80311174(local->unk0 + this->unk10_12, 0xB, this->position, this->marker, func_8038BADC, NULL, func_8038BA30); diff --git a/src/lair/code_5ED0.c b/src/lair/code_5ED0.c index b5a3f798..b58aa0a6 100644 --- a/src/lair/code_5ED0.c +++ b/src/lair/code_5ED0.c @@ -703,7 +703,7 @@ void func_8038D670(enum FF_Action next_state) { } } else { if (D_8037DCB8->unk4->unk8 == FFTT_6_SKULL) { - func_80314AC8(0); + gcpausemenu_80314AC8(0); if (func_80305248(sp30, 0x377, D_8037DCB8->playerPosition)) { func_8038D548(1); func_8028F5F8(sp30); @@ -973,7 +973,7 @@ void func_8038E0B0(void) { func_80356540(0xAA); } if ((D_8037DCB8->unk4->unk9 == 2) && (func_8028ECAC() == 0)) { - if (func_8028EFEC() && (sp48[BUTTON_START] == 1)) { + if (func_8028EFEC() && (sp48[FACE_BUTTON(BUTTON_A)] == 1)) { func_803114D0(); player_getRotation(D_8037DCB8->playerRotation); D_8037DCB8->ffQuestionType = func_8038DCD4(sp38); @@ -981,7 +981,7 @@ void func_8038E0B0(void) { func_8038D670(3); return; } - if (func_8028EFC8() && (sp48[BUTTON_Z] == 1)) { + if (func_8028EFC8() && (sp48[FACE_BUTTON(BUTTON_B)] == 1)) { if ((item_getCount(ITEM_27_JOKER_CARD) > 0) && (sp28 < 0x5B)) { func_8038C640(D_8037DCB8->unk8, D_8037DCB8->unk4); item_dec(ITEM_27_JOKER_CARD); @@ -1006,7 +1006,7 @@ void func_8038E0B0(void) { if ((D_8037DCB8->ffQuestionType == 2) && D_80394354[D_8037DCB8->unkC].unk0 == 2){ gczoombox_update(D_8037DCB8->unk20); } - if ((D_8037DCB8->unk12 == 0) && func_8028EFC8() && (sp48[BUTTON_Z] == 1)) { + if ((D_8037DCB8->unk12 == 0) && func_8028EFC8() && (sp48[FACE_BUTTON(BUTTON_B)] == 1)) { func_80324C58(); func_8038D670(4); } diff --git a/src/lair/code_86F0.c b/src/lair/code_86F0.c index fd03f32a..214c4264 100644 --- a/src/lair/code_86F0.c +++ b/src/lair/code_86F0.c @@ -75,7 +75,7 @@ void func_8038EB94(void){ func_80320004(BKPROG_B9_DOUBLE_HEALTH, TRUE); func_80347958(); func_803463D4(ITEM_14_HEALTH, 0); - func_80314AC8(1); + gcpausemenu_80314AC8(1); } void func_8038EBEC(ActorMarker *marker) { @@ -95,7 +95,7 @@ void func_8038EBEC(ActorMarker *marker) { } if (this->unkF4_8 == 0xB) { timedFunc_set_0(1.5f, func_8038EB94); - func_80314AC8(0); + gcpausemenu_80314AC8(0); } } @@ -493,13 +493,13 @@ void func_8038F924(Actor *this) { case 4: //L8038FE28 if ((func_803114C4() != 0xF7C) && (func_803114C4() != 0xF7D)) { - if (sp7C[BUTTON_START] == 1) { + if (sp7C[FACE_BUTTON(BUTTON_A)] == 1) { func_8038F894(this, 5); - } else if (sp7C[BUTTON_Z] == 1) { + } else if (sp7C[FACE_BUTTON(BUTTON_B)] == 1) { func_8038F350(this, 1); } else if ((sp6C[0] == 1) && func_8031FF1C(0xE0)) { func_8038F894(this, 6); - } else if (sp7C[BUTTON_R] == 1) { + } else if (sp7C[FACE_BUTTON(BUTTON_C_DOWN)] == 1) { if (local->unk4) { func_8038F350(this, 8); } else { diff --git a/src/lair/code_9C40.c b/src/lair/code_9C40.c index fb002e72..bd0d8a70 100644 --- a/src/lair/code_9C40.c +++ b/src/lair/code_9C40.c @@ -108,7 +108,7 @@ void func_803902B8(Actor *this) { sp58 = func_80259384(this->position, sp5C, 400.0f); if (func_8031FF1C(sp54 + 0xAD)) { func_8024E55C(0, sp3C); - sp58 &= (sp3C[BUTTON_Z] == TRUE) || func_8028EC04(); + sp58 &= (sp3C[FACE_BUTTON(BUTTON_B)] == 1) || func_8028EC04(); } if (sp58 && !*(s32 *)&this->local) { func_80390174(this->marker, 0); diff --git a/subyaml/core2.us.v10.yaml b/subyaml/core2.us.v10.yaml index fe6c5b83..a33bf0ae 100644 --- a/subyaml/core2.us.v10.yaml +++ b/subyaml/core2.us.v10.yaml @@ -287,8 +287,8 @@ segments: - [0x7AF80, c, code_7AF80] - [0x82000, c, code_82000] - [0x83340, c, code_83340] - - [0x83D70, c, code_83D70] #DONE - - [0x840D0, c, code_840D0] #DONE + - [0x83D70, c, gc/section] #DONE + - [0x840D0, c, gc/sky] #DONE - [0x84470, c, gc/transition] #DONE - [0x851D0, c, code_851D0] - [0x857B0, c, code_857B0] #DONE @@ -298,7 +298,7 @@ segments: - [0x8DC20, c, code_8DC20] - [0x8E270, c, gc/zoombox] #DONE - [0x91E10, c, code_91E10] - - [0x935F0, c, code_935F0] + - [0x935F0, c, code_935F0] #DONE #chminigmae - [0x93C10, c, code_93C10] - [0x94620, c, code_94620] #DONE - [0x94780, c, code_94780] #DONE @@ -539,8 +539,8 @@ segments: - [0xE3A20, bin, data_E3A20] - [0xE3C50, .data, code_82000] - [0xE4870, bin, data_E4870] - - [0xE4880, .data, code_83D70] - - [0xE4DB0, .data, code_840D0] + - [0xE4880, .data, gc/section] + - [0xE4DB0, .data, gc/sky] - [0xE51C0, .data, gc/transition] - [0xE54C0, .data, code_851D0] - [0xE5540, bin, data_E5540] @@ -762,8 +762,8 @@ segments: - [0xF0520, .rodata, code_7AF80] # - [0xF0540, bin, data_F0540] - [0xF05E0, bin, data_F05E0] - - [0xF07B0, .rodata, code_83D70] - - [0xF14B0, .rodata, code_840D0] + - [0xF07B0, .rodata, gc/section] + - [0xF14B0, .rodata, gc/sky] - [0xF14C0, .rodata, gc/transition] - [0xF1520, .rodata, code_85800] - [0xF1540, .rodata, code_87E30] @@ -772,7 +772,8 @@ segments: - [0xF18F0, .rodata, gc/zoombox] # - [0xF1960, bin, data_F1960] - [0xF19C0, .rodata, code_91E10] - - [0xF1A00, bin, data_F1A00] + - [0xF1A00, .rodata, code_935F0] + - [0xF1A20, bin, data_F1A20] - [0xF1DC0, .rodata, code_9A9D0] - [0xF1DF0, .rodata, code_9B180] - [0xF1E10, .rodata, code_9C170] @@ -1029,8 +1030,8 @@ segments: - [0xf2c00, .bss, code_7AF80] - [0xf2c00, .bss, code_82000] - [0xf2c00, .bss, code_83340] - - [0xf2c00, .bss, code_83D70] - - [0xf2c00, .bss, code_840D0] + - [0xf2c00, .bss, gc/section] + - [0xf2c00, .bss, gc/sky] - [0xf2c00, .bss, gc/transition] - [0xf2c00, .bss, code_851D0] - [0xf2c00, .bss, code_857B0] diff --git a/symbol_addrs.core2.us.v10.txt b/symbol_addrs.core2.us.v10.txt index 73ed22a9..b9bcc939 100644 --- a/symbol_addrs.core2.us.v10.txt +++ b/symbol_addrs.core2.us.v10.txt @@ -278,6 +278,8 @@ sfxsource_setSfxId = 0x8030DA80; sfxsource_setSampleRate = 0x8030DABC; gcdialog_setState = 0x8030F488; gcdialog_update = 0x8030F990; +gcpausemenu_getNextPage = 0x8031307C; +gcPauseMenu_setState = 0x803120FC; gczoombox_free = 0x80315374; _gczoombox_memClear = 0x80315430; gczoombox_draw = 0x80316B8C; @@ -418,6 +420,7 @@ sSpawnableActorSize = 0x8036A9B0; sSpawnableActorList = 0x8036A9B4; D_8036B810 = 0x8036B810; D_8036D940 = 0x8036D940; +D_8036DD9C = 0x8036DD9C; D_8036E598 = 0x8036E598; D_8036E5B0 = 0x8036E5B0; D_8036E5C0 = 0x8036E5C0; diff --git a/undefined_syms.us.v10.txt b/undefined_syms.us.v10.txt index e0a7404b..68102d7d 100644 --- a/undefined_syms.us.v10.txt +++ b/undefined_syms.us.v10.txt @@ -37,7 +37,7 @@ func_802E4078 = 0x802E4078; func_8030E484 = 0x8030E484; func_8030E510 = 0x8030E510; func_80311714 = 0x80311714; -func_80314AC8 = 0x80314AC8; +gcpausemenu_80314AC8 = 0x80314AC8; func_8031CC40 = 0x8031CC40; func_8031F678 = 0x8031F678; func_8031FB14 = 0x8031FB14;