From 5b4ee171b8efa91f0114c90948f2b04f6f4ee185 Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Sat, 21 Mar 2020 13:40:39 +1000 Subject: [PATCH] Decompile soloChoosePauseDialog --- src/game/data/data_0160b0.c | 4 +- src/game/data/data_020df0.c | 20 +-- src/game/game_01bea0.c | 18 +-- src/game/game_0b63b0.c | 2 +- src/game/game_0f09f0.c | 60 ++++---- src/game/game_0fd660.c | 2 +- src/game/game_102240.c | 222 +++++++++------------------- src/game/game_107fb0.c | 4 +- src/game/game_10c9c0.c | 6 +- src/game/game_10ccd0.c | 34 ++--- src/game/game_177e00.c | 18 +-- src/game/game_179060.c | 4 +- src/game/game_17f930.c | 6 +- src/game/game_19c990.c | 8 +- src/game/game_1a3340.c | 14 +- src/game/propobj.c | 24 +-- src/include/constants.h | 5 + src/include/game/data/data_0160b0.h | 4 +- src/include/game/data/data_020df0.h | 12 +- src/include/game/game_0f09f0.h | 2 +- src/include/game/game_102240.h | 2 +- src/include/game/game_19c990.h | 4 +- src/include/types.h | 4 +- 23 files changed, 199 insertions(+), 280 deletions(-) diff --git a/src/game/data/data_0160b0.c b/src/game/data/data_0160b0.c index 9108a3aa8..e4b636658 100644 --- a/src/game/data/data_0160b0.c +++ b/src/game/data/data_0160b0.c @@ -2655,7 +2655,7 @@ struct menu_item menuitems_19674[] = { }; // 196b0 -struct menu_dialog menudialog_196b0 = { +struct menu_dialog g_SoloPauseMenuDialog = { MENUDIALOGTYPE_DEFAULT, (u32)&func0f106508, menuitems_19674, @@ -2837,7 +2837,7 @@ struct menu_dialog g_MainMenuMenuDialog = { }; // 19a94 -struct menu_dialog g_MainMenu4MbMenuDialog = { +struct menu_dialog g_CiMainMenuDialogViaPause = { MENUDIALOGTYPE_DEFAULT, L_OPTIONS(116), // "Perfect Menu" menuitems_mainmenu, diff --git a/src/game/data/data_020df0.c b/src/game/data/data_020df0.c index 019caac8c..69de6767e 100644 --- a/src/game/data/data_020df0.c +++ b/src/game/data/data_020df0.c @@ -12868,7 +12868,7 @@ struct menu_item menuitems_frweapon[] = { }; // 2ed98 -struct menu_dialog g_frWeaponMenuDialog = { +struct menu_dialog g_FrWeaponListMenuDialog = { MENUDIALOGTYPE_DEFAULT, L_MPMENU(446), // "Weapon" menuitems_frweapon, @@ -12893,7 +12893,7 @@ struct menu_item menuitems_frtraininginfo[] = { }; // 2ee8c -struct menu_dialog menudialog_frtraininginfo = { +struct menu_dialog g_FrTrainingInfoMenuDialog = { MENUDIALOGTYPE_DEFAULT, 0x51bf, menuitems_frtraininginfo, @@ -13076,7 +13076,7 @@ struct menu_item menuitems_devicelist[] = { }; // 2f400 -struct menu_dialog menudialog_devicelist = { +struct menu_dialog g_DeviceTrainingListMenuDialog = { MENUDIALOGTYPE_DEFAULT, L_MPMENU(417), // "Device List" menuitems_devicelist, @@ -13100,7 +13100,7 @@ struct menu_item menuitems_2f424[] = { }; // 2f49c -struct menu_dialog menudialog_2f49c = { +struct menu_dialog g_DeviceTrainingDetailsMenuDialog = { MENUDIALOGTYPE_DEFAULT, (u32)&func0f1a64a0, menuitems_2f424, @@ -13126,7 +13126,7 @@ struct menu_dialog menudialog_trainingstats_failed = { menuitems_trainingstats_failed, menudialogDeviceTrainingResults, 0x00000200, - &menudialog_devicelist, + &g_DeviceTrainingListMenuDialog, }; // 2f544 @@ -13146,7 +13146,7 @@ struct menu_dialog menudialog_trainingstats_completed = { menuitems_trainingstats_completed, menudialogDeviceTrainingResults, 0x00000200, - &menudialog_devicelist, + &g_DeviceTrainingListMenuDialog, }; // 2f5d4 @@ -13156,7 +13156,7 @@ struct menu_item menuitems_holotraining[] = { }; // 2f5fc -struct menu_dialog menudialog_holotraining = { +struct menu_dialog g_HoloTrainingListMenuDialog = { MENUDIALOGTYPE_DEFAULT, 0x51a0, menuitems_holotraining, @@ -13176,7 +13176,7 @@ struct menu_item menuitems_2f614[] = { }; // 2f68c -struct menu_dialog menudialog_2f68c = { +struct menu_dialog g_HoloTrainingDetailsMenuDialog = { MENUDIALOGTYPE_DEFAULT, (u32)&func0f1a6a04, menuitems_2f614, @@ -13202,7 +13202,7 @@ struct menu_dialog menudialog_trainingstats_failed2 = { menuitems_trainingstats_failed2, menudialogFiringRangeResults, 0x00000200, - &menudialog_holotraining, + &g_HoloTrainingListMenuDialog, }; // 2f734 @@ -13222,7 +13222,7 @@ struct menu_dialog menudialog_trainingstats_completed2 = { menuitems_trainingstats_completed2, menudialogFiringRangeResults, 0x00000200, - &menudialog_holotraining, + &g_HoloTrainingListMenuDialog, }; u32 var800897a4 = 0x00000000; diff --git a/src/game/game_01bea0.c b/src/game/game_01bea0.c index 7e66ceef0..f629e9e1c 100644 --- a/src/game/game_01bea0.c +++ b/src/game/game_01bea0.c @@ -430,12 +430,12 @@ glabel var7f1a863c /* f01c394: 3c048007 */ lui $a0,%hi(g_4MbMainMenu) /* f01c398: 24845294 */ addiu $a0,$a0,%lo(g_4MbMainMenu) /* f01c39c: 2405000b */ addiu $a1,$zero,0xb -/* f01c3a0: 0fc3e0cc */ jal func0f0f8330 +/* f01c3a0: 0fc3e0cc */ jal menuPushRootDialog /* f01c3a4: afa80058 */ sw $t0,0x58($sp) /* f01c3a8: 10000004 */ beqz $zero,.L0f01c3bc /* f01c3ac: 8fa80058 */ lw $t0,0x58($sp) .L0f01c3b0: -/* f01c3b0: 0fc3e0cc */ jal func0f0f8330 +/* f01c3b0: 0fc3e0cc */ jal menuPushRootDialog /* f01c3b4: afa80058 */ sw $t0,0x58($sp) /* f01c3b8: 8fa80058 */ lw $t0,0x58($sp) .L0f01c3bc: @@ -765,12 +765,12 @@ glabel var7f1a863c /* f01c844: 16ce0006 */ bne $s6,$t6,.L0f01c860 /* f01c848: 24846500 */ addiu $a0,$a0,%lo(g_MpQuickGoMenuDialog) /* f01c84c: 3c048007 */ lui $a0,%hi(menudialog_mpquickgo2) -/* f01c850: 0fc3e0cc */ jal func0f0f8330 +/* f01c850: 0fc3e0cc */ jal menuPushRootDialog /* f01c854: 24845120 */ addiu $a0,$a0,%lo(menudialog_mpquickgo2) /* f01c858: 1000000a */ beqz $zero,.L0f01c884 /* f01c85c: 32191000 */ andi $t9,$s0,0x1000 .L0f01c860: -/* f01c860: 0fc3e0cc */ jal func0f0f8330 +/* f01c860: 0fc3e0cc */ jal menuPushRootDialog /* f01c864: 24050003 */ addiu $a1,$zero,0x3 /* f01c868: 10000006 */ beqz $zero,.L0f01c884 /* f01c86c: 32191000 */ andi $t9,$s0,0x1000 @@ -812,12 +812,12 @@ glabel var7f1a863c /* f01c8ec: 16cf0006 */ bne $s6,$t7,.L0f01c908 /* f01c8f0: 24846500 */ addiu $a0,$a0,%lo(g_MpQuickGoMenuDialog) /* f01c8f4: 3c048007 */ lui $a0,%hi(menudialog_mpquickgo2) -/* f01c8f8: 0fc3e0cc */ jal func0f0f8330 +/* f01c8f8: 0fc3e0cc */ jal menuPushRootDialog /* f01c8fc: 24845120 */ addiu $a0,$a0,%lo(menudialog_mpquickgo2) /* f01c900: 1000000d */ beqz $zero,.L0f01c938 /* f01c904: 00000000 */ sll $zero,$zero,0x0 .L0f01c908: -/* f01c908: 0fc3e0cc */ jal func0f0f8330 +/* f01c908: 0fc3e0cc */ jal menuPushRootDialog /* f01c90c: 24050003 */ addiu $a1,$zero,0x3 /* f01c910: 10000009 */ beqz $zero,.L0f01c938 /* f01c914: 00000000 */ sll $zero,$zero,0x0 @@ -1066,8 +1066,8 @@ glabel var7f1a863c /* f01cc68: 3c198007 */ lui $t9,%hi(g_MainMenuMenuDialog) /* f01cc6c: 27393a5c */ addiu $t9,$t9,%lo(g_MainMenuMenuDialog) /* f01cc70: 16ce0004 */ bne $s6,$t6,.L0f01cc84 -/* f01cc74: 3c188007 */ lui $t8,%hi(g_MainMenu4MbMenuDialog) -/* f01cc78: 27183a74 */ addiu $t8,$t8,%lo(g_MainMenu4MbMenuDialog) +/* f01cc74: 3c188007 */ lui $t8,%hi(g_CiMainMenuDialogViaPause) +/* f01cc78: 27183a74 */ addiu $t8,$t8,%lo(g_CiMainMenuDialogViaPause) /* f01cc7c: 10000002 */ beqz $zero,.L0f01cc88 /* f01cc80: aeb8000c */ sw $t8,0xc($s5) .L0f01cc84: @@ -1255,7 +1255,7 @@ glabel var7f1a863c .L0f01cf1c: /* f01cf1c: 240e0001 */ addiu $t6,$zero,0x1 /* f01cf20: afae0158 */ sw $t6,0x158($sp) -/* f01cf24: 0fc3e0cc */ jal func0f0f8330 +/* f01cf24: 0fc3e0cc */ jal menuPushRootDialog /* f01cf28: 8ea4000c */ lw $a0,0xc($s5) /* f01cf2c: 8ea30004 */ lw $v1,0x4($s5) /* f01cf30: 24010003 */ addiu $at,$zero,0x3 diff --git a/src/game/game_0b63b0.c b/src/game/game_0b63b0.c index 8156cf4b1..578a05f94 100644 --- a/src/game/game_0b63b0.c +++ b/src/game/game_0b63b0.c @@ -5096,7 +5096,7 @@ glabel var7f1ad630 /* f0badd4: 8c2fd604 */ lw $t7,%lo(var7f1ad604)($at) /* f0badd8: 01e00008 */ jr $t7 /* f0baddc: 00000000 */ sll $zero,$zero,0x0 -/* f0bade0: 0fc41ac8 */ jal func0f106b20 +/* f0bade0: 0fc41ac8 */ jal soloChoosePauseDialog /* f0bade4: 00000000 */ sll $zero,$zero,0x0 /* f0bade8: 10000006 */ beqz $zero,.L0f0bae04 /* f0badec: 00402025 */ or $a0,$v0,$zero diff --git a/src/game/game_0f09f0.c b/src/game/game_0f09f0.c index 250b13b59..f805cc006 100644 --- a/src/game/game_0f09f0.c +++ b/src/game/game_0f09f0.c @@ -9007,60 +9007,60 @@ glabel func0f0f8300 ); GLOBAL_ASM( -glabel func0f0f8330 +glabel menuPushRootDialog .late_rodata glabel var7f1b2994 -.word func0f0f8330+0x134 # f0f8464 +.word menuPushRootDialog+0x134 # f0f8464 glabel var7f1b2998 -.word func0f0f8330+0x134 # f0f8464 +.word menuPushRootDialog+0x134 # f0f8464 glabel var7f1b299c -.word func0f0f8330+0x13c # f0f846c +.word menuPushRootDialog+0x13c # f0f846c glabel var7f1b29a0 -.word func0f0f8330+0x13c # f0f846c +.word menuPushRootDialog+0x13c # f0f846c glabel var7f1b29a4 -.word func0f0f8330+0x13c # f0f846c +.word menuPushRootDialog+0x13c # f0f846c glabel var7f1b29a8 -.word func0f0f8330+0x134 # f0f8464 +.word menuPushRootDialog+0x134 # f0f8464 glabel var7f1b29ac -.word func0f0f8330+0x134 # f0f8464 +.word menuPushRootDialog+0x134 # f0f8464 glabel var7f1b29b0 -.word func0f0f8330+0x134 # f0f8464 +.word menuPushRootDialog+0x134 # f0f8464 glabel var7f1b29b4 -.word func0f0f8330+0x134 # f0f8464 +.word menuPushRootDialog+0x134 # f0f8464 glabel var7f1b29b8 -.word func0f0f8330+0x134 # f0f8464 +.word menuPushRootDialog+0x134 # f0f8464 glabel var7f1b29bc -.word func0f0f8330+0x13c # f0f846c +.word menuPushRootDialog+0x13c # f0f846c glabel var7f1b29c0 -.word func0f0f8330+0x13c # f0f846c +.word menuPushRootDialog+0x13c # f0f846c glabel var7f1b29c4 -.word func0f0f8330+0x134 # f0f8464 +.word menuPushRootDialog+0x134 # f0f8464 glabel var7f1b29c8 -.word func0f0f8330+0x23c # f0f856c +.word menuPushRootDialog+0x23c # f0f856c glabel var7f1b29cc -.word func0f0f8330+0x260 # f0f8590 +.word menuPushRootDialog+0x260 # f0f8590 glabel var7f1b29d0 -.word func0f0f8330+0x204 # f0f8534 +.word menuPushRootDialog+0x204 # f0f8534 glabel var7f1b29d4 -.word func0f0f8330+0x288 # f0f85b8 +.word menuPushRootDialog+0x288 # f0f85b8 glabel var7f1b29d8 -.word func0f0f8330+0x260 # f0f8590 +.word menuPushRootDialog+0x260 # f0f8590 glabel var7f1b29dc -.word func0f0f8330+0x260 # f0f8590 +.word menuPushRootDialog+0x260 # f0f8590 glabel var7f1b29e0 -.word func0f0f8330+0x270 # f0f85a0 +.word menuPushRootDialog+0x270 # f0f85a0 glabel var7f1b29e4 -.word func0f0f8330+0x288 # f0f85b8 +.word menuPushRootDialog+0x288 # f0f85b8 glabel var7f1b29e8 -.word func0f0f8330+0x260 # f0f8590 +.word menuPushRootDialog+0x260 # f0f8590 glabel var7f1b29ec -.word func0f0f8330+0x214 # f0f8544 +.word menuPushRootDialog+0x214 # f0f8544 glabel var7f1b29f0 -.word func0f0f8330+0x230 # f0f8560 +.word menuPushRootDialog+0x230 # f0f8560 glabel var7f1b29f4 -.word func0f0f8330+0x288 # f0f85b8 +.word menuPushRootDialog+0x288 # f0f85b8 glabel var7f1b29f8 -.word func0f0f8330+0x260 # f0f8590 +.word menuPushRootDialog+0x260 # f0f8590 .text /* f0f8330: 3c0e8007 */ lui $t6,%hi(g_MpPlayerNum) /* f0f8334: 8dce1448 */ lw $t6,%lo(g_MpPlayerNum)($t6) @@ -9257,7 +9257,7 @@ glabel func0f0f85e0 /* f0f85fc: afa40018 */ sw $a0,0x18($sp) /* f0f8600: 8fa40018 */ lw $a0,0x18($sp) .L0f0f8604: -/* f0f8604: 0fc3e0cc */ jal func0f0f8330 +/* f0f8604: 0fc3e0cc */ jal menuPushRootDialog /* f0f8608: 8fa5001c */ lw $a1,0x1c($sp) /* f0f860c: 0fc5b350 */ jal setVar80084014 /* f0f8610: 24040001 */ addiu $a0,$zero,0x1 @@ -14532,7 +14532,7 @@ glabel func0f0fce8c /* f0fcf50: 01e5c021 */ addu $t8,$t7,$a1 /* f0fcf54: 1701000b */ bne $t8,$at,.L0f0fcf84 /* f0fcf58: 00e02025 */ or $a0,$a3,$zero -/* f0fcf5c: 0fc3e0cc */ jal func0f0f8330 +/* f0fcf5c: 0fc3e0cc */ jal menuPushRootDialog /* f0fcf60: 24050002 */ addiu $a1,$zero,0x2 /* f0fcf64: 0fc5b350 */ jal setVar80084014 /* f0fcf68: 24040001 */ addiu $a0,$zero,0x1 @@ -14544,7 +14544,7 @@ glabel func0f0fce8c /* f0fcf80: ad391a24 */ sw $t9,0x1a24($t1) .L0f0fcf84: /* f0fcf84: 00e02025 */ or $a0,$a3,$zero -/* f0fcf88: 0fc3e0cc */ jal func0f0f8330 +/* f0fcf88: 0fc3e0cc */ jal menuPushRootDialog /* f0fcf8c: 24050004 */ addiu $a1,$zero,0x4 /* f0fcf90: 10000004 */ beqz $zero,.L0f0fcfa4 /* f0fcf94: 8fbf0014 */ lw $ra,0x14($sp) diff --git a/src/game/game_0fd660.c b/src/game/game_0fd660.c index 10cdf23c2..6b3d2bac9 100644 --- a/src/game/game_0fd660.c +++ b/src/game/game_0fd660.c @@ -42,7 +42,7 @@ void mpOpenPickTarget(void) g_ActiveMenuThings[g_ActiveMenuIndex].unk33 = g_ActiveMenuThings[g_ActiveMenuIndex].allbots; g_Vars.currentplayer->activemenumode = 0; g_MpPlayerNum = g_Vars.currentplayerstats->mpindex; - func0f0f8330(&menudialog_picktarget, 8); + menuPushRootDialog(&menudialog_picktarget, 8); g_MpPlayerNum = prevplayernum; } } diff --git a/src/game/game_102240.c b/src/game/game_102240.c index 42ea13fff..2ad143875 100644 --- a/src/game/game_102240.c +++ b/src/game/game_102240.c @@ -4629,157 +4629,71 @@ char *mainMenuTextLabel(struct menu_item *item) return langGet(nocheats[item->param]); } -GLOBAL_ASM( -glabel func0f106b20 -/* f106b20: 3c0e8007 */ lui $t6,%hi(g_MpPlayerNum) -/* f106b24: 8dce1448 */ lw $t6,%lo(g_MpPlayerNum)($t6) -/* f106b28: 3c18800a */ lui $t8,0x800a -/* f106b2c: 2718e000 */ addiu $t8,$t8,-8192 -/* f106b30: 000e78c0 */ sll $t7,$t6,0x3 -/* f106b34: 01ee7823 */ subu $t7,$t7,$t6 -/* f106b38: 000f7880 */ sll $t7,$t7,0x2 -/* f106b3c: 01ee7821 */ addu $t7,$t7,$t6 -/* f106b40: 000f78c0 */ sll $t7,$t7,0x3 -/* f106b44: 01ee7823 */ subu $t7,$t7,$t6 -/* f106b48: 000f7900 */ sll $t7,$t7,0x4 -/* f106b4c: 01f81021 */ addu $v0,$t7,$t8 -/* f106b50: 9059083c */ lbu $t9,0x83c($v0) -/* f106b54: 27bdffe0 */ addiu $sp,$sp,-32 -/* f106b58: afbf0014 */ sw $ra,0x14($sp) -/* f106b5c: 17200071 */ bnez $t9,.L0f106d24 -/* f106b60: 3c08800a */ lui $t0,%hi(g_Vars+0x4b4) -/* f106b64: a040083b */ sb $zero,0x83b($v0) -/* f106b68: 8d08a474 */ lw $t0,%lo(g_Vars+0x4b4)($t0) -/* f106b6c: 24010026 */ addiu $at,$zero,0x26 -/* f106b70: 3c048007 */ lui $a0,%hi(menudialog_196b0) -/* f106b74: 15010067 */ bne $t0,$at,.L0f106d14 -/* f106b78: 24843690 */ addiu $a0,$a0,%lo(menudialog_196b0) -/* f106b7c: 0fc67264 */ jal ciIsTourDone -/* f106b80: afa0001c */ sw $zero,0x1c($sp) -/* f106b84: 1040005c */ beqz $v0,.L0f106cf8 -/* f106b88: 8fa5001c */ lw $a1,0x1c($sp) -/* f106b8c: 0fc68606 */ jal getDeviceTrainingData -/* f106b90: afa5001c */ sw $a1,0x1c($sp) -/* f106b94: 3c09800a */ lui $t1,%hi(g_Vars+0x284) -/* f106b98: 8d29a244 */ lw $t1,%lo(g_Vars+0x284)($t1) -/* f106b9c: 8fa5001c */ lw $a1,0x1c($sp) -/* f106ba0: 8d2a00bc */ lw $t2,0xbc($t1) -/* f106ba4: 85440028 */ lh $a0,0x28($t2) -/* f106ba8: 28810016 */ slti $at,$a0,0x16 -/* f106bac: 1420001a */ bnez $at,.L0f106c18 -/* f106bb0: 2881001a */ slti $at,$a0,0x1a -/* f106bb4: 50200019 */ beqzl $at,.L0f106c1c -/* f106bb8: 2401001e */ addiu $at,$zero,0x1e -/* f106bbc: 0fc687f8 */ jal getHoloTrainingData -/* f106bc0: 00000000 */ sll $zero,$zero,0x0 -/* f106bc4: 8c430000 */ lw $v1,0x0($v0) -/* f106bc8: 3c048009 */ lui $a0,%hi(menudialog_2f68c) -/* f106bcc: 2484966c */ addiu $a0,$a0,%lo(menudialog_2f68c) -/* f106bd0: 00035fc2 */ srl $t3,$v1,0x1f -/* f106bd4: 11600005 */ beqz $t3,.L0f106bec -/* f106bd8: 000368c0 */ sll $t5,$v1,0x3 -/* f106bdc: 0fc3e0cc */ jal func0f0f8330 -/* f106be0: 2405000d */ addiu $a1,$zero,0xd -/* f106be4: 10000044 */ beqz $zero,.L0f106cf8 -/* f106be8: 24050001 */ addiu $a1,$zero,0x1 -.L0f106bec: -/* f106bec: 05a10005 */ bgez $t5,.L0f106c04 -/* f106bf0: 3c048009 */ lui $a0,%hi(menudialog_holotraining) -/* f106bf4: 0fc687fb */ jal func0f1a1fec -/* f106bf8: 00000000 */ sll $zero,$zero,0x0 -/* f106bfc: 1000003e */ beqz $zero,.L0f106cf8 -/* f106c00: 24050001 */ addiu $a1,$zero,0x1 -.L0f106c04: -/* f106c04: 248495dc */ addiu $a0,$a0,%lo(menudialog_holotraining) -/* f106c08: 0fc3e0cc */ jal func0f0f8330 -/* f106c0c: 2405000d */ addiu $a1,$zero,0xd -/* f106c10: 10000039 */ beqz $zero,.L0f106cf8 -/* f106c14: 24050001 */ addiu $a1,$zero,0x1 -.L0f106c18: -/* f106c18: 2401001e */ addiu $at,$zero,0x1e -.L0f106c1c: -/* f106c1c: 54810017 */ bnel $a0,$at,.L0f106c7c -/* f106c20: 8c430000 */ lw $v1,0x0($v0) -/* f106c24: 8c430000 */ lw $v1,0x0($v0) -/* f106c28: 3c048009 */ lui $a0,%hi(menudialog_2f49c) -/* f106c2c: 2484947c */ addiu $a0,$a0,%lo(menudialog_2f49c) -/* f106c30: 000377c2 */ srl $t6,$v1,0x1f -/* f106c34: 11c00005 */ beqz $t6,.L0f106c4c -/* f106c38: 0003c0c0 */ sll $t8,$v1,0x3 -/* f106c3c: 0fc3e0cc */ jal func0f0f8330 -/* f106c40: 2405000d */ addiu $a1,$zero,0xd -/* f106c44: 1000002c */ beqz $zero,.L0f106cf8 -/* f106c48: 24050001 */ addiu $a1,$zero,0x1 -.L0f106c4c: -/* f106c4c: 07010005 */ bgez $t8,.L0f106c64 -/* f106c50: 3c048009 */ lui $a0,%hi(menudialog_devicelist) -/* f106c54: 0fc68643 */ jal func0f1a190c -/* f106c58: 00000000 */ sll $zero,$zero,0x0 -/* f106c5c: 10000026 */ beqz $zero,.L0f106cf8 -/* f106c60: 24050001 */ addiu $a1,$zero,0x1 -.L0f106c64: -/* f106c64: 248493e0 */ addiu $a0,$a0,%lo(menudialog_devicelist) -/* f106c68: 0fc3e0cc */ jal func0f0f8330 -/* f106c6c: 2405000d */ addiu $a1,$zero,0xd -/* f106c70: 10000021 */ beqz $zero,.L0f106cf8 -/* f106c74: 24050001 */ addiu $a1,$zero,0x1 -/* f106c78: 8c430000 */ lw $v1,0x0($v0) -.L0f106c7c: -/* f106c7c: 0003cfc2 */ srl $t9,$v1,0x1f -/* f106c80: 13200007 */ beqz $t9,.L0f106ca0 -/* f106c84: 000348c0 */ sll $t1,$v1,0x3 -/* f106c88: 3c048009 */ lui $a0,%hi(menudialog_2f49c) -/* f106c8c: 2484947c */ addiu $a0,$a0,%lo(menudialog_2f49c) -/* f106c90: 0fc3e0cc */ jal func0f0f8330 -/* f106c94: 2405000d */ addiu $a1,$zero,0xd -/* f106c98: 10000017 */ beqz $zero,.L0f106cf8 -/* f106c9c: 24050001 */ addiu $a1,$zero,0x1 -.L0f106ca0: -/* f106ca0: 05210005 */ bgez $t1,.L0f106cb8 -/* f106ca4: 2401000a */ addiu $at,$zero,0xa -/* f106ca8: 0fc68643 */ jal func0f1a190c -/* f106cac: 00000000 */ sll $zero,$zero,0x0 -/* f106cb0: 10000011 */ beqz $zero,.L0f106cf8 -/* f106cb4: 24050001 */ addiu $a1,$zero,0x1 -.L0f106cb8: -/* f106cb8: 1481000f */ bne $a0,$at,.L0f106cf8 -/* f106cbc: 00000000 */ sll $zero,$zero,0x0 -/* f106cc0: 0fc6830c */ jal func0f1a0c30 -/* f106cc4: 00000000 */ sll $zero,$zero,0x0 -/* f106cc8: 10400007 */ beqz $v0,.L0f106ce8 -/* f106ccc: 3c048009 */ lui $a0,%hi(g_frWeaponMenuDialog) -/* f106cd0: 3c048009 */ lui $a0,%hi(menudialog_frtraininginfo) -/* f106cd4: 24848e6c */ addiu $a0,$a0,%lo(menudialog_frtraininginfo) -/* f106cd8: 0fc3e0cc */ jal func0f0f8330 -/* f106cdc: 2405000d */ addiu $a1,$zero,0xd -/* f106ce0: 10000005 */ beqz $zero,.L0f106cf8 -/* f106ce4: 24050001 */ addiu $a1,$zero,0x1 -.L0f106ce8: -/* f106ce8: 24848d78 */ addiu $a0,$a0,%lo(g_frWeaponMenuDialog) -/* f106cec: 0fc3e0cc */ jal func0f0f8330 -/* f106cf0: 2405000d */ addiu $a1,$zero,0xd -/* f106cf4: 24050001 */ addiu $a1,$zero,0x1 -.L0f106cf8: -/* f106cf8: 14a00008 */ bnez $a1,.L0f106d1c -/* f106cfc: 3c048007 */ lui $a0,%hi(g_MainMenu4MbMenuDialog) -/* f106d00: 24843a74 */ addiu $a0,$a0,%lo(g_MainMenu4MbMenuDialog) -/* f106d04: 0fc3e0cc */ jal func0f0f8330 -/* f106d08: 24050002 */ addiu $a1,$zero,0x2 -/* f106d0c: 10000006 */ beqz $zero,.L0f106d28 -/* f106d10: 24020001 */ addiu $v0,$zero,0x1 -.L0f106d14: -/* f106d14: 0fc3e0cc */ jal func0f0f8330 -/* f106d18: 24050002 */ addiu $a1,$zero,0x2 -.L0f106d1c: -/* f106d1c: 10000002 */ beqz $zero,.L0f106d28 -/* f106d20: 24020001 */ addiu $v0,$zero,0x1 -.L0f106d24: -/* f106d24: 00001025 */ or $v0,$zero,$zero -.L0f106d28: -/* f106d28: 8fbf0014 */ lw $ra,0x14($sp) -/* f106d2c: 27bd0020 */ addiu $sp,$sp,0x20 -/* f106d30: 03e00008 */ jr $ra -/* f106d34: 00000000 */ sll $zero,$zero,0x0 -/* f106d38: 00000000 */ sll $zero,$zero,0x0 -/* f106d3c: 00000000 */ sll $zero,$zero,0x0 -); +bool soloChoosePauseDialog(void) +{ + if (g_MenuStack[g_MpPlayerNum].unk83c == 0) { + g_MenuStack[g_MpPlayerNum].playernum = 0; + + if (g_Vars.stagenum == STAGE_CITRAINING) { + bool handled = false; + + if (ciIsTourDone()) { + struct trainingdata *dtdata = getDeviceTrainingData(); + s32 room = g_Vars.currentplayer->prop->rooms[0]; + + if (room >= CIROOM_HOLOSTART && room <= CIROOM_HOLOEND) { + struct trainingdata *htdata = getHoloTrainingData(); + + if (htdata->intraining) { + menuPushRootDialog(&g_HoloTrainingDetailsMenuDialog, MENUROOT_TRAINING); + } else if (htdata->finished) { + htPushEndscreen(); + } else { + menuPushRootDialog(&g_HoloTrainingListMenuDialog, MENUROOT_TRAINING); + } + + handled = true; + } else { + if (room == CIROOM_DEVICEROOM) { + if (dtdata->intraining) { + menuPushRootDialog(&g_DeviceTrainingDetailsMenuDialog, MENUROOT_TRAINING); + } else if (dtdata->finished) { + dtPushEndscreen(); + } else { + menuPushRootDialog(&g_DeviceTrainingListMenuDialog, MENUROOT_TRAINING); + } + + handled = true; + } else { + if (dtdata->intraining) { + menuPushRootDialog(&g_DeviceTrainingDetailsMenuDialog, MENUROOT_TRAINING); + handled = true; + } else if (dtdata->finished) { + dtPushEndscreen(); + handled = true; + } else if (room == CIROOM_FIRINGRANGE) { + if (func0f1a0c30()) { + menuPushRootDialog(&g_FrTrainingInfoMenuDialog, MENUROOT_TRAINING); + } else { + menuPushRootDialog(&g_FrWeaponListMenuDialog, MENUROOT_TRAINING); + } + + handled = true; + } + } + } + } + + if (!handled) { + menuPushRootDialog(&g_CiMainMenuDialogViaPause, MENUROOT_SOLOPAUSE); + return true; + } + } else { + menuPushRootDialog(&g_SoloPauseMenuDialog, MENUROOT_SOLOPAUSE); + } + + return true; + } + + return false; +} diff --git a/src/game/game_107fb0.c b/src/game/game_107fb0.c index 70f579e50..81b308629 100644 --- a/src/game/game_107fb0.c +++ b/src/game/game_107fb0.c @@ -5222,7 +5222,7 @@ glabel func0f10c900 /* f10c940: 3c048007 */ lui $a0,%hi(menudialog_fileselect) /* f10c944: a040083b */ sb $zero,0x83b($v0) /* f10c948: 24844dd4 */ addiu $a0,$a0,%lo(menudialog_fileselect) -/* f10c94c: 0fc3e0cc */ jal func0f0f8330 +/* f10c94c: 0fc3e0cc */ jal menuPushRootDialog /* f10c950: 24050006 */ addiu $a1,$zero,0x6 /* f10c954: 10000002 */ beqz $zero,.L0f10c960 /* f10c958: 24020001 */ addiu $v0,$zero,0x1 @@ -5246,7 +5246,7 @@ glabel func0f10c970 /* f10c988: ac400000 */ sw $zero,0x0($v0) /* f10c98c: 24844c38 */ addiu $a0,$a0,%lo(menudialog_controllerpakmenu) /* f10c990: 24050007 */ addiu $a1,$zero,0x7 -/* f10c994: 0fc3e0cc */ jal func0f0f8330 +/* f10c994: 0fc3e0cc */ jal menuPushRootDialog /* f10c998: afae001c */ sw $t6,0x1c($sp) /* f10c99c: 8fbf0014 */ lw $ra,0x14($sp) /* f10c9a0: 8faf001c */ lw $t7,0x1c($sp) diff --git a/src/game/game_10c9c0.c b/src/game/game_10c9c0.c index 5fd8f8b7d..42102fd25 100644 --- a/src/game/game_10c9c0.c +++ b/src/game/game_10c9c0.c @@ -33,7 +33,7 @@ s32 menuhandler0010ca1c(u32 operation, struct menu_item *item, s32 *value) if (g_Vars.stagenum == 0x5d) { func0f0f820c(&g_4MbMainMenu, 11); } else { - func0f0f820c(&menudialog_196b0, 2); + func0f0f820c(&g_SoloPauseMenuDialog, 2); } } @@ -83,7 +83,7 @@ glabel func0f10cb2c /* f10cb78: 3c048007 */ lui $a0,%hi(g_4MbMainMenu) /* f10cb7c: ac590490 */ sw $t9,0x490($v0) /* f10cb80: 24845294 */ addiu $a0,$a0,%lo(g_4MbMainMenu) -/* f10cb84: 0fc3e0cc */ jal func0f0f8330 +/* f10cb84: 0fc3e0cc */ jal menuPushRootDialog /* f10cb88: 2405000b */ addiu $a1,$zero,0xb /* f10cb8c: 10000017 */ beqz $zero,.L0f10cbec /* f10cb90: 8fbf001c */ lw $ra,0x1c($sp) @@ -108,7 +108,7 @@ glabel func0f10cb2c /* f10cbd4: ac43029c */ sw $v1,0x29c($v0) /* f10cbd8: 3c048007 */ lui $a0,%hi(menudialog_fileselect2) /* f10cbdc: 24844f34 */ addiu $a0,$a0,%lo(menudialog_fileselect2) -/* f10cbe0: 0fc3e0cc */ jal func0f0f8330 +/* f10cbe0: 0fc3e0cc */ jal menuPushRootDialog /* f10cbe4: 2405000a */ addiu $a1,$zero,0xa .L0f10cbe8: /* f10cbe8: 8fbf001c */ lw $ra,0x1c($sp) diff --git a/src/game/game_10ccd0.c b/src/game/game_10ccd0.c index e9f431db3..728cabcc4 100644 --- a/src/game/game_10ccd0.c +++ b/src/game/game_10ccd0.c @@ -768,7 +768,7 @@ glabel func0f10d910 /* f10dbbc: 3c048007 */ lui $a0,%hi(menudialog_1b7a4) /* f10dbc0: 3c048007 */ lui $a0,%hi(menudialog_1b7a4) /* f10dbc4: 24845784 */ addiu $a0,$a0,%lo(menudialog_1b7a4) -/* f10dbc8: 0fc3e0cc */ jal func0f0f8330 +/* f10dbc8: 0fc3e0cc */ jal menuPushRootDialog /* f10dbcc: 24050009 */ addiu $a1,$zero,0x9 /* f10dbd0: 10000052 */ beqz $zero,.L0f10dd1c /* f10dbd4: 8fbf0014 */ lw $ra,0x14($sp) @@ -853,7 +853,7 @@ glabel func0f10d910 /* f10dcec: 0fc435cc */ jal func0f10d730 /* f10dcf0: 00000000 */ sll $zero,$zero,0x0 /* f10dcf4: 00402025 */ or $a0,$v0,$zero -/* f10dcf8: 0fc3e0cc */ jal func0f0f8330 +/* f10dcf8: 0fc3e0cc */ jal menuPushRootDialog /* f10dcfc: 24050009 */ addiu $a1,$zero,0x9 /* f10dd00: 10000006 */ beqz $zero,.L0f10dd1c /* f10dd04: 8fbf0014 */ lw $ra,0x14($sp) @@ -1597,7 +1597,7 @@ glabel func0f10e620 .L0f10e794: /* f10e794: 3c048007 */ lui $a0,%hi(menudialog_1bb5c) /* f10e798: 24845b3c */ addiu $a0,$a0,%lo(menudialog_1bb5c) -/* f10e79c: 0fc3e0cc */ jal func0f0f8330 +/* f10e79c: 0fc3e0cc */ jal menuPushRootDialog /* f10e7a0: 24050001 */ addiu $a1,$zero,0x1 /* f10e7a4: 3c02800a */ lui $v0,%hi(g_MissionConfig+0x3) /* f10e7a8: 9042dfeb */ lbu $v0,%lo(g_MissionConfig+0x3)($v0) @@ -1606,7 +1606,7 @@ glabel func0f10e620 /* f10e7b4: 01201025 */ or $v0,$t1,$zero .L0f10e7b8: /* f10e7b8: 24845b24 */ addiu $a0,$a0,%lo(menudialog_1bb44) -/* f10e7bc: 0fc3e0cc */ jal func0f0f8330 +/* f10e7bc: 0fc3e0cc */ jal menuPushRootDialog /* f10e7c0: 24050001 */ addiu $a1,$zero,0x1 /* f10e7c4: 3c02800a */ lui $v0,%hi(g_MissionConfig+0x3) /* f10e7c8: 9042dfeb */ lbu $v0,%lo(g_MissionConfig+0x3)($v0) @@ -2010,13 +2010,13 @@ glabel func0f10ecb4 /* f10ed90: 3c048007 */ lui $a0,%hi(menudialog_1bb8c) /* f10ed94: 3c048007 */ lui $a0,%hi(menudialog_1bbbc) /* f10ed98: 24845b9c */ addiu $a0,$a0,%lo(menudialog_1bbbc) -/* f10ed9c: 0fc3e0cc */ jal func0f0f8330 +/* f10ed9c: 0fc3e0cc */ jal menuPushRootDialog /* f10eda0: 24050005 */ addiu $a1,$zero,0x5 /* f10eda4: 10000016 */ beqz $zero,.L0f10ee00 /* f10eda8: 00000000 */ sll $zero,$zero,0x0 .L0f10edac: /* f10edac: 24845b6c */ addiu $a0,$a0,%lo(menudialog_1bb8c) -/* f10edb0: 0fc3e0cc */ jal func0f0f8330 +/* f10edb0: 0fc3e0cc */ jal menuPushRootDialog /* f10edb4: 24050005 */ addiu $a1,$zero,0x5 /* f10edb8: 10000011 */ beqz $zero,.L0f10ee00 /* f10edbc: 00000000 */ sll $zero,$zero,0x0 @@ -2028,13 +2028,13 @@ glabel func0f10ecb4 /* f10edd0: 3c048007 */ lui $a0,%hi(menudialog_1bb74) /* f10edd4: 3c048007 */ lui $a0,%hi(menudialog_1bba4) /* f10edd8: 24845b84 */ addiu $a0,$a0,%lo(menudialog_1bba4) -/* f10eddc: 0fc3e0cc */ jal func0f0f8330 +/* f10eddc: 0fc3e0cc */ jal menuPushRootDialog /* f10ede0: 24050005 */ addiu $a1,$zero,0x5 /* f10ede4: 10000004 */ beqz $zero,.L0f10edf8 /* f10ede8: 00000000 */ sll $zero,$zero,0x0 .L0f10edec: /* f10edec: 24845b54 */ addiu $a0,$a0,%lo(menudialog_1bb74) -/* f10edf0: 0fc3e0cc */ jal func0f0f8330 +/* f10edf0: 0fc3e0cc */ jal menuPushRootDialog /* f10edf4: 24050005 */ addiu $a1,$zero,0x5 .L0f10edf8: /* f10edf8: 0fc43962 */ jal func0f10e588 @@ -2103,7 +2103,7 @@ glabel func0f10ee40 /* f10eed4: 00000000 */ sll $zero,$zero,0x0 /* f10eed8: 3c048007 */ lui $a0,%hi(menudialog_1b5c0) /* f10eedc: 248455a0 */ addiu $a0,$a0,%lo(menudialog_1b5c0) -/* f10eee0: 0fc3e0cc */ jal func0f0f8330 +/* f10eee0: 0fc3e0cc */ jal menuPushRootDialog /* f10eee4: 24050009 */ addiu $a1,$zero,0x9 /* f10eee8: 10000004 */ beqz $zero,.L0f10eefc /* f10eeec: 8fbf0014 */ lw $ra,0x14($sp) @@ -2178,13 +2178,13 @@ glabel func0f10ef10 /* f10efe4: 3c048007 */ lui $a0,%hi(menudialog_1bb8c) /* f10efe8: 3c048007 */ lui $a0,%hi(menudialog_1bbbc) /* f10efec: 24845b9c */ addiu $a0,$a0,%lo(menudialog_1bbbc) -/* f10eff0: 0fc3e0cc */ jal func0f0f8330 +/* f10eff0: 0fc3e0cc */ jal menuPushRootDialog /* f10eff4: 24050005 */ addiu $a1,$zero,0x5 /* f10eff8: 10000014 */ beqz $zero,.L0f10f04c /* f10effc: 00000000 */ sll $zero,$zero,0x0 .L0f10f000: /* f10f000: 24845b6c */ addiu $a0,$a0,%lo(menudialog_1bb8c) -/* f10f004: 0fc3e0cc */ jal func0f0f8330 +/* f10f004: 0fc3e0cc */ jal menuPushRootDialog /* f10f008: 24050005 */ addiu $a1,$zero,0x5 /* f10f00c: 1000000f */ beqz $zero,.L0f10f04c /* f10f010: 00000000 */ sll $zero,$zero,0x0 @@ -2196,13 +2196,13 @@ glabel func0f10ef10 /* f10f024: 3c048007 */ lui $a0,%hi(menudialog_1bb74) /* f10f028: 3c048007 */ lui $a0,%hi(menudialog_1bba4) /* f10f02c: 24845b84 */ addiu $a0,$a0,%lo(menudialog_1bba4) -/* f10f030: 0fc3e0cc */ jal func0f0f8330 +/* f10f030: 0fc3e0cc */ jal menuPushRootDialog /* f10f034: 24050005 */ addiu $a1,$zero,0x5 /* f10f038: 10000004 */ beqz $zero,.L0f10f04c /* f10f03c: 00000000 */ sll $zero,$zero,0x0 .L0f10f040: /* f10f040: 24845b54 */ addiu $a0,$a0,%lo(menudialog_1bb74) -/* f10f044: 0fc3e0cc */ jal func0f0f8330 +/* f10f044: 0fc3e0cc */ jal menuPushRootDialog /* f10f048: 24050005 */ addiu $a1,$zero,0x5 .L0f10f04c: /* f10f04c: 3c04800a */ lui $a0,%hi(var800a22c0) @@ -2235,13 +2235,13 @@ glabel func0f10ef10 /* f10f0b0: 3c048007 */ lui $a0,%hi(menudialog_1bb74) /* f10f0b4: 3c048007 */ lui $a0,%hi(menudialog_1bba4) /* f10f0b8: 24845b84 */ addiu $a0,$a0,%lo(menudialog_1bba4) -/* f10f0bc: 0fc3e0cc */ jal func0f0f8330 +/* f10f0bc: 0fc3e0cc */ jal menuPushRootDialog /* f10f0c0: 24050005 */ addiu $a1,$zero,0x5 /* f10f0c4: 10000015 */ beqz $zero,.L0f10f11c /* f10f0c8: 8fbf0014 */ lw $ra,0x14($sp) .L0f10f0cc: /* f10f0cc: 24845b54 */ addiu $a0,$a0,%lo(menudialog_1bb74) -/* f10f0d0: 0fc3e0cc */ jal func0f0f8330 +/* f10f0d0: 0fc3e0cc */ jal menuPushRootDialog /* f10f0d4: 24050005 */ addiu $a1,$zero,0x5 /* f10f0d8: 10000010 */ beqz $zero,.L0f10f11c /* f10f0dc: 8fbf0014 */ lw $ra,0x14($sp) @@ -2253,13 +2253,13 @@ glabel func0f10ef10 /* f10f0f0: 3c048007 */ lui $a0,%hi(menudialog_1bb8c) /* f10f0f4: 3c048007 */ lui $a0,%hi(menudialog_1bbbc) /* f10f0f8: 24845b9c */ addiu $a0,$a0,%lo(menudialog_1bbbc) -/* f10f0fc: 0fc3e0cc */ jal func0f0f8330 +/* f10f0fc: 0fc3e0cc */ jal menuPushRootDialog /* f10f100: 24050005 */ addiu $a1,$zero,0x5 /* f10f104: 10000005 */ beqz $zero,.L0f10f11c /* f10f108: 8fbf0014 */ lw $ra,0x14($sp) .L0f10f10c: /* f10f10c: 24845b6c */ addiu $a0,$a0,%lo(menudialog_1bb8c) -/* f10f110: 0fc3e0cc */ jal func0f0f8330 +/* f10f110: 0fc3e0cc */ jal menuPushRootDialog /* f10f114: 24050005 */ addiu $a1,$zero,0x5 /* f10f118: 8fbf0014 */ lw $ra,0x14($sp) .L0f10f11c: diff --git a/src/game/game_177e00.c b/src/game/game_177e00.c index b5878e694..e82bc9f25 100644 --- a/src/game/game_177e00.c +++ b/src/game/game_177e00.c @@ -937,13 +937,13 @@ glabel func0f178dbc /* f178e60: 13000007 */ beqz $t8,.L0f178e80 /* f178e64: 24844890 */ addiu $a0,$a0,%lo(menudialog_2a8b0) /* f178e68: 3c048008 */ lui $a0,%hi(menudialog_2a908) -/* f178e6c: 0fc3e0cc */ jal func0f0f8330 +/* f178e6c: 0fc3e0cc */ jal menuPushRootDialog /* f178e70: 248448e8 */ addiu $a0,$a0,%lo(menudialog_2a908) /* f178e74: 3c068007 */ lui $a2,%hi(g_MpPlayerNum) /* f178e78: 10000017 */ beqz $zero,.L0f178ed8 /* f178e7c: 24c61448 */ addiu $a2,$a2,%lo(g_MpPlayerNum) .L0f178e80: -/* f178e80: 0fc3e0cc */ jal func0f0f8330 +/* f178e80: 0fc3e0cc */ jal menuPushRootDialog /* f178e84: 24050004 */ addiu $a1,$zero,0x4 /* f178e88: 3c068007 */ lui $a2,%hi(g_MpPlayerNum) /* f178e8c: 10000012 */ beqz $zero,.L0f178ed8 @@ -956,14 +956,14 @@ glabel func0f178dbc /* f178ea4: 3c048007 */ lui $a0,%hi(menudialog_196c8) /* f178ea8: 3c048007 */ lui $a0,%hi(menudialog_status) /* f178eac: 248436c0 */ addiu $a0,$a0,%lo(menudialog_status) -/* f178eb0: 0fc3e0cc */ jal func0f0f8330 +/* f178eb0: 0fc3e0cc */ jal menuPushRootDialog /* f178eb4: 24050004 */ addiu $a1,$zero,0x4 /* f178eb8: 3c068007 */ lui $a2,%hi(g_MpPlayerNum) /* f178ebc: 10000006 */ beqz $zero,.L0f178ed8 /* f178ec0: 24c61448 */ addiu $a2,$a2,%lo(g_MpPlayerNum) .L0f178ec4: /* f178ec4: 248436a8 */ addiu $a0,$a0,%lo(menudialog_196c8) -/* f178ec8: 0fc3e0cc */ jal func0f0f8330 +/* f178ec8: 0fc3e0cc */ jal menuPushRootDialog /* f178ecc: 24050004 */ addiu $a1,$zero,0x4 /* f178ed0: 3c068007 */ lui $a2,%hi(g_MpPlayerNum) /* f178ed4: 24c61448 */ addiu $a2,$a2,%lo(g_MpPlayerNum) @@ -1018,7 +1018,7 @@ glabel func0f178ef0 /* f178f78: 11600005 */ beqz $t3,.L0f178f90 /* f178f7c: 00000000 */ sll $zero,$zero,0x0 .L0f178f80: -/* f178f80: 0fc3e0cc */ jal func0f0f8330 +/* f178f80: 0fc3e0cc */ jal menuPushRootDialog /* f178f84: 24050005 */ addiu $a1,$zero,0x5 /* f178f88: 10000018 */ beqz $zero,.L0f178fec /* f178f8c: 00000000 */ sll $zero,$zero,0x0 @@ -1029,25 +1029,25 @@ glabel func0f178ef0 /* f178f9c: 3c048008 */ lui $a0,%hi(menudialog_2aa78) /* f178fa0: 3c048008 */ lui $a0,%hi(menudialog_2aa48) /* f178fa4: 24844a28 */ addiu $a0,$a0,%lo(menudialog_2aa48) -/* f178fa8: 0fc3e0cc */ jal func0f0f8330 +/* f178fa8: 0fc3e0cc */ jal menuPushRootDialog /* f178fac: 24050005 */ addiu $a1,$zero,0x5 /* f178fb0: 1000000e */ beqz $zero,.L0f178fec /* f178fb4: 00000000 */ sll $zero,$zero,0x0 .L0f178fb8: /* f178fb8: 24844a58 */ addiu $a0,$a0,%lo(menudialog_2aa78) -/* f178fbc: 0fc3e0cc */ jal func0f0f8330 +/* f178fbc: 0fc3e0cc */ jal menuPushRootDialog /* f178fc0: 24050005 */ addiu $a1,$zero,0x5 /* f178fc4: 10000009 */ beqz $zero,.L0f178fec /* f178fc8: 00000000 */ sll $zero,$zero,0x0 .L0f178fcc: -/* f178fcc: 0fc3e0cc */ jal func0f0f8330 +/* f178fcc: 0fc3e0cc */ jal menuPushRootDialog /* f178fd0: 24050005 */ addiu $a1,$zero,0x5 /* f178fd4: 10000005 */ beqz $zero,.L0f178fec /* f178fd8: 00000000 */ sll $zero,$zero,0x0 .L0f178fdc: /* f178fdc: 3c048008 */ lui $a0,%hi(menudialog_2aa18) /* f178fe0: 248449f8 */ addiu $a0,$a0,%lo(menudialog_2aa18) -/* f178fe4: 0fc3e0cc */ jal func0f0f8330 +/* f178fe4: 0fc3e0cc */ jal menuPushRootDialog /* f178fe8: 24050005 */ addiu $a1,$zero,0x5 .L0f178fec: /* f178fec: 3c0c8007 */ lui $t4,%hi(g_MpPlayerNum) diff --git a/src/game/game_179060.c b/src/game/game_179060.c index 0e1a9bc9c..d4881cc7a 100644 --- a/src/game/game_179060.c +++ b/src/game/game_179060.c @@ -5873,12 +5873,12 @@ s32 menuhandler0017ef30(u32 operation, struct menu_item *item, s32 *value) if (operation == MENUOP_SET) { if (g_Vars.stagenum == STAGE_CITRAINING) { if (g_Is4Mb == 1) { - func0f0f820c(&g_MainMenu4MbMenuDialog, 2); + func0f0f820c(&g_CiMainMenuDialogViaPause, 2); } else { func0f0f820c(&g_MainMenuMenuDialog, 2); } } else { - func0f0f820c(&menudialog_196b0, 2); + func0f0f820c(&g_SoloPauseMenuDialog, 2); } } diff --git a/src/game/game_17f930.c b/src/game/game_17f930.c index 68bc835dc..bf5dc007b 100644 --- a/src/game/game_17f930.c +++ b/src/game/game_17f930.c @@ -310,7 +310,7 @@ glabel func0f17fcb0 /* f17fcf8: afa40028 */ sw $a0,0x28($sp) /* f17fcfc: 3c048007 */ lui $a0,%hi(g_4MbAdvancedSetupMenuDialog) /* f17fd00: 24845538 */ addiu $a0,$a0,%lo(g_4MbAdvancedSetupMenuDialog) -/* f17fd04: 0fc3e0cc */ jal func0f0f8330 +/* f17fd04: 0fc3e0cc */ jal menuPushRootDialog /* f17fd08: 2405000b */ addiu $a1,$zero,0xb /* f17fd0c: 0fc3e0c0 */ jal func0f0f8300 /* f17fd10: 00000000 */ sll $zero,$zero,0x0 @@ -325,12 +325,12 @@ glabel func0f17fcb0 /* f17fd30: 2484646c */ addiu $a0,$a0,%lo(menudialog_mpgamesetup3) /* f17fd34: 3c048008 */ lui $a0,%hi(menudialog_mpchallengedetails2) /* f17fd38: 24846030 */ addiu $a0,$a0,%lo(menudialog_mpchallengedetails2) -/* f17fd3c: 0fc3e0cc */ jal func0f0f8330 +/* f17fd3c: 0fc3e0cc */ jal menuPushRootDialog /* f17fd40: 24050003 */ addiu $a1,$zero,0x3 /* f17fd44: 10000003 */ beqz $zero,.L0f17fd54 /* f17fd48: 00000000 */ sll $zero,$zero,0x0 .L0f17fd4c: -/* f17fd4c: 0fc3e0cc */ jal func0f0f8330 +/* f17fd4c: 0fc3e0cc */ jal menuPushRootDialog /* f17fd50: 24050003 */ addiu $a1,$zero,0x3 .L0f17fd54: /* f17fd54: 0fc3e0c0 */ jal func0f0f8300 diff --git a/src/game/game_19c990.c b/src/game/game_19c990.c index cbbae948e..291ea8576 100644 --- a/src/game/game_19c990.c +++ b/src/game/game_19c990.c @@ -5912,7 +5912,7 @@ glabel func0f1a1824 ); GLOBAL_ASM( -glabel func0f1a190c +glabel dtPushEndscreen /* f1a190c: 3c02800b */ lui $v0,%hi(g_DeviceTrainingData) /* f1a1910: 2442d1a0 */ addiu $v0,$v0,%lo(g_DeviceTrainingData) /* f1a1914: 8c430000 */ lw $v1,0x0($v0) @@ -6020,7 +6020,7 @@ glabel func0f1a1998 /* f1a1a88: 24849fc0 */ addiu $a0,$a0,%lo(g_Vars) /* f1a1a8c: 5c400006 */ bgtzl $v0,.L0f1a1aa8 /* f1a1a90: 8c990038 */ lw $t9,0x38($a0) -/* f1a1a94: 0fc68643 */ jal func0f1a190c +/* f1a1a94: 0fc68643 */ jal dtPushEndscreen /* f1a1a98: 00000000 */ sll $zero,$zero,0x0 /* f1a1a9c: 10000005 */ beqz $zero,.L0f1a1ab4 /* f1a1aa0: 8fbf0014 */ lw $ra,0x14($sp) @@ -6431,7 +6431,7 @@ glabel getHoloTrainingData ); GLOBAL_ASM( -glabel func0f1a1fec +glabel htPushEndscreen /* f1a1fec: 3c02800b */ lui $v0,%hi(g_HoloTrainingData) /* f1a1ff0: 2442d1b0 */ addiu $v0,$v0,%lo(g_HoloTrainingData) /* f1a1ff4: 8c430000 */ lw $v1,0x0($v0) @@ -6537,7 +6537,7 @@ glabel func0f1a2070 /* f1a2160: 24849fc0 */ addiu $a0,$a0,%lo(g_Vars) /* f1a2164: 5c400006 */ bgtzl $v0,.L0f1a2180 /* f1a2168: 8c990038 */ lw $t9,0x38($a0) -/* f1a216c: 0fc687fb */ jal func0f1a1fec +/* f1a216c: 0fc687fb */ jal htPushEndscreen /* f1a2170: 00000000 */ sll $zero,$zero,0x0 /* f1a2174: 10000005 */ beqz $zero,.L0f1a218c /* f1a2178: 8fbf0014 */ lw $ra,0x14($sp) diff --git a/src/game/game_1a3340.c b/src/game/game_1a3340.c index a05f5b0c1..f0b1aeda3 100644 --- a/src/game/game_1a3340.c +++ b/src/game/game_1a3340.c @@ -2638,7 +2638,7 @@ s32 menuhandlerFrFailedContinue(u32 operation, struct menu_item *item, s32 *valu { if (operation == MENUOP_SET) { if (g_Vars.currentplayer->prop->rooms[0] == 0xa) { - func0f0f3704(&g_frWeaponMenuDialog); + func0f0f3704(&g_FrWeaponListMenuDialog); } else { menuPopDialog(); } @@ -3124,8 +3124,8 @@ glabel var7f1b9994 /* f1a6444: 8fbf0014 */ lw $ra,0x14($sp) /* f1a6448: 8ccf0000 */ lw $t7,0x0($a2) /* f1a644c: 3c018009 */ lui $at,%hi(var80088ad8) -/* f1a6450: 3c048009 */ lui $a0,%hi(menudialog_2f49c) -/* f1a6454: 2484947c */ addiu $a0,$a0,%lo(menudialog_2f49c) +/* f1a6450: 3c048009 */ lui $a0,%hi(g_DeviceTrainingDetailsMenuDialog) +/* f1a6454: 2484947c */ addiu $a0,$a0,%lo(g_DeviceTrainingDetailsMenuDialog) /* f1a6458: 0fc3cbd3 */ jal menuPushDialog /* f1a645c: a02f8ad8 */ sb $t7,%lo(var80088ad8)($at) /* f1a6460: 1000000b */ beqz $zero,.L0f1a6490 @@ -3453,8 +3453,8 @@ glabel var7f1b99b4 /* f1a69a8: 8fbf0014 */ lw $ra,0x14($sp) /* f1a69ac: 8ccf0000 */ lw $t7,0x0($a2) /* f1a69b0: 3c018009 */ lui $at,%hi(var80088bb4) -/* f1a69b4: 3c048009 */ lui $a0,%hi(menudialog_2f68c) -/* f1a69b8: 2484966c */ addiu $a0,$a0,%lo(menudialog_2f68c) +/* f1a69b4: 3c048009 */ lui $a0,%hi(g_HoloTrainingDetailsMenuDialog) +/* f1a69b8: 2484966c */ addiu $a0,$a0,%lo(g_HoloTrainingDetailsMenuDialog) /* f1a69bc: 0fc3cbd3 */ jal menuPushDialog /* f1a69c0: a02f8bb4 */ sb $t7,%lo(var80088bb4)($at) /* f1a69c4: 1000000b */ beqz $zero,.L0f1a69f4 @@ -4208,9 +4208,9 @@ glabel var7f1b99d8 GLOBAL_ASM( glabel func0f1a7554 -/* f1a7554: 3c028009 */ lui $v0,%hi(g_frWeaponMenuDialog) +/* f1a7554: 3c028009 */ lui $v0,%hi(g_FrWeaponListMenuDialog) /* f1a7558: 03e00008 */ jr $ra -/* f1a755c: 24428d78 */ addiu $v0,$v0,%lo(g_frWeaponMenuDialog) +/* f1a755c: 24428d78 */ addiu $v0,$v0,%lo(g_FrWeaponListMenuDialog) ); GLOBAL_ASM( diff --git a/src/game/propobj.c b/src/game/propobj.c index 2ccbbdc94..06d196d66 100644 --- a/src/game/propobj.c +++ b/src/game/propobj.c @@ -37947,14 +37947,14 @@ glabel func0f086f40 /* f086f8c: 240f0001 */ addiu $t7,$zero,0x1 /* f086f90: a3af002b */ sb $t7,0x2b($sp) /* f086f94: 8c580000 */ lw $t8,0x0($v0) -/* f086f98: 3c048009 */ lui $a0,%hi(menudialog_devicelist) +/* f086f98: 3c048009 */ lui $a0,%hi(g_DeviceTrainingListMenuDialog) /* f086f9c: 2405000d */ addiu $a1,$zero,0xd /* f086fa0: 0018cfc2 */ srl $t9,$t8,0x1f /* f086fa4: 13200006 */ beqz $t9,.L0f086fc0 -/* f086fa8: 248493e0 */ addiu $a0,$a0,%lo(menudialog_devicelist) -/* f086fac: 3c048009 */ lui $a0,%hi(menudialog_2f49c) +/* f086fa8: 248493e0 */ addiu $a0,$a0,%lo(g_DeviceTrainingListMenuDialog) +/* f086fac: 3c048009 */ lui $a0,%hi(g_DeviceTrainingDetailsMenuDialog) /* f086fb0: 0fc3e178 */ jal func0f0f85e0 -/* f086fb4: 2484947c */ addiu $a0,$a0,%lo(menudialog_2f49c) +/* f086fb4: 2484947c */ addiu $a0,$a0,%lo(g_DeviceTrainingDetailsMenuDialog) /* f086fb8: 1000002c */ beqz $zero,.L0f08706c /* f086fbc: 93ac002b */ lbu $t4,0x2b($sp) .L0f086fc0: @@ -37971,14 +37971,14 @@ glabel func0f086f40 /* f086fe4: 24080001 */ addiu $t0,$zero,0x1 /* f086fe8: a3a8002b */ sb $t0,0x2b($sp) /* f086fec: 8c490000 */ lw $t1,0x0($v0) -/* f086ff0: 3c048009 */ lui $a0,%hi(menudialog_holotraining) +/* f086ff0: 3c048009 */ lui $a0,%hi(g_HoloTrainingListMenuDialog) /* f086ff4: 2405000d */ addiu $a1,$zero,0xd /* f086ff8: 000957c2 */ srl $t2,$t1,0x1f /* f086ffc: 11400006 */ beqz $t2,.L0f087018 -/* f087000: 248495dc */ addiu $a0,$a0,%lo(menudialog_holotraining) -/* f087004: 3c048009 */ lui $a0,%hi(menudialog_2f68c) +/* f087000: 248495dc */ addiu $a0,$a0,%lo(g_HoloTrainingListMenuDialog) +/* f087004: 3c048009 */ lui $a0,%hi(g_HoloTrainingDetailsMenuDialog) /* f087008: 0fc3e178 */ jal func0f0f85e0 -/* f08700c: 2484966c */ addiu $a0,$a0,%lo(menudialog_2f68c) +/* f08700c: 2484966c */ addiu $a0,$a0,%lo(g_HoloTrainingDetailsMenuDialog) /* f087010: 10000016 */ beqz $zero,.L0f08706c /* f087014: 93ac002b */ lbu $t4,0x2b($sp) .L0f087018: @@ -37993,15 +37993,15 @@ glabel func0f086f40 /* f087034: 0fc6830c */ jal func0f1a0c30 /* f087038: a3ab002b */ sb $t3,0x2b($sp) /* f08703c: 10400007 */ beqz $v0,.L0f08705c -/* f087040: 3c048009 */ lui $a0,%hi(g_frWeaponMenuDialog) -/* f087044: 3c048009 */ lui $a0,%hi(menudialog_frtraininginfo) -/* f087048: 24848e6c */ addiu $a0,$a0,%lo(menudialog_frtraininginfo) +/* f087040: 3c048009 */ lui $a0,%hi(g_FrWeaponListMenuDialog) +/* f087044: 3c048009 */ lui $a0,%hi(g_FrTrainingInfoMenuDialog) +/* f087048: 24848e6c */ addiu $a0,$a0,%lo(g_FrTrainingInfoMenuDialog) /* f08704c: 0fc3e178 */ jal func0f0f85e0 /* f087050: 2405000d */ addiu $a1,$zero,0xd /* f087054: 10000005 */ beqz $zero,.L0f08706c /* f087058: 93ac002b */ lbu $t4,0x2b($sp) .L0f08705c: -/* f08705c: 24848d78 */ addiu $a0,$a0,%lo(g_frWeaponMenuDialog) +/* f08705c: 24848d78 */ addiu $a0,$a0,%lo(g_FrWeaponListMenuDialog) /* f087060: 0fc3e178 */ jal func0f0f85e0 /* f087064: 2405000d */ addiu $a1,$zero,0xd .L0f087068: diff --git a/src/include/constants.h b/src/include/constants.h index a8ea3724e..52d174198 100644 --- a/src/include/constants.h +++ b/src/include/constants.h @@ -414,6 +414,11 @@ #define CHRCFLAG_40000000 0x40000000 // Not used in scripts #define CHRCFLAG_INJURED 0x80000000 +#define CIROOM_FIRINGRANGE 0x0a +#define CIROOM_HOLOSTART 0x16 +#define CIROOM_HOLOEND 0x19 +#define CIROOM_DEVICEROOM 0x1e + #define CMD_LABEL 0x0002 #define CMD_END 0x0004 #define CMD_PRINT 0x00b5 diff --git a/src/include/game/data/data_0160b0.h b/src/include/game/data/data_0160b0.h index 482a538ef..0f7efd8a8 100644 --- a/src/include/game/data/data_0160b0.h +++ b/src/include/game/data/data_0160b0.h @@ -208,7 +208,7 @@ extern u32 var80072d8c; extern u8 g_CassNecklaceUsername[10]; extern u8 g_CassNecklacePassword[14]; extern struct menu_dialog menudialog_weaponsavailable; -extern struct menu_dialog menudialog_196b0; +extern struct menu_dialog g_SoloPauseMenuDialog; extern struct menu_dialog menudialog_196c8; extern struct menu_dialog menudialog_status; extern struct cutsceneentry cutscenetable[]; @@ -217,7 +217,7 @@ extern struct menu_dialog g_SelectMissionMenuDialog; extern u16 g_MainMenuLabelsNoCheats[4]; extern u16 g_MainMenuLabelsWithCheats[4]; extern struct menu_dialog g_MainMenuMenuDialog; -extern struct menu_dialog g_MainMenu4MbMenuDialog; +extern struct menu_dialog g_CiMainMenuDialogViaPause; extern struct cheat g_Cheats[NUM_CHEATS]; extern struct menu_item g_CheatsBuddiesMenuItems[]; extern struct menu_dialog g_CheatsBuddiesMenuDialog; diff --git a/src/include/game/data/data_020df0.h b/src/include/game/data/data_020df0.h index 3213d3986..62d63f2d8 100644 --- a/src/include/game/data/data_020df0.h +++ b/src/include/game/data/data_020df0.h @@ -365,8 +365,8 @@ extern u32 var80088ca0; extern u32 var80088ca4; extern u32 var80088ca8; extern struct menu_dialog menudialog_frdifficulty; -extern struct menu_dialog g_frWeaponMenuDialog; -extern struct menu_dialog menudialog_frtraininginfo; +extern struct menu_dialog g_FrWeaponListMenuDialog; +extern struct menu_dialog g_FrTrainingInfoMenuDialog; extern struct menu_dialog menudialog_frtraininginfo2; extern struct menu_dialog menudialog_frtrainingstats; extern struct menu_dialog menudialog_frtrainingstats2; @@ -376,13 +376,13 @@ extern u32 var80089268; extern u32 var80089280; extern struct menu_dialog menudialog_characterprofile; extern struct menu_dialog menudialog_2f3c0; -extern struct menu_dialog menudialog_devicelist; +extern struct menu_dialog g_DeviceTrainingListMenuDialog; extern u32 var800893f8; -extern struct menu_dialog menudialog_2f49c; +extern struct menu_dialog g_DeviceTrainingDetailsMenuDialog; extern struct menu_dialog menudialog_trainingstats_failed; extern struct menu_dialog menudialog_trainingstats_completed; -extern struct menu_dialog menudialog_holotraining; -extern struct menu_dialog menudialog_2f68c; +extern struct menu_dialog g_HoloTrainingListMenuDialog; +extern struct menu_dialog g_HoloTrainingDetailsMenuDialog; extern struct menu_dialog menudialog_trainingstats_failed2; extern struct menu_dialog menudialog_trainingstats_completed2; extern u32 var800897a4; diff --git a/src/include/game/game_0f09f0.h b/src/include/game/game_0f09f0.h index f7f2f2c37..23307cacb 100644 --- a/src/include/game/game_0f09f0.h +++ b/src/include/game/game_0f09f0.h @@ -54,7 +54,7 @@ void func0f0f8120(void); void func0f0f820c(struct menu_dialog *dialog, s32 arg1); u32 func0f0f82a8(void); void func0f0f8300(void); -void func0f0f8330(struct menu_dialog *dialog, s32 arg1); +void menuPushRootDialog(struct menu_dialog *dialog, s32 arg1); u32 func0f0f85e0(void); u32 func0f0f8634(void); u32 func0f0f86a8(void); diff --git a/src/include/game/game_102240.h b/src/include/game/game_102240.h index 9f16e8260..9c2a08f59 100644 --- a/src/include/game/game_102240.h +++ b/src/include/game/game_102240.h @@ -24,7 +24,7 @@ char *invMenuTextWeaponDescription(struct menu_item *item); u32 func0f106508(void); u32 func0f1065c0(void); char *mainMenuTextLabel(struct menu_item *item); -u32 func0f106b20(void); +bool soloChoosePauseDialog(void); s32 menudialog00103368(u32, u32, u32 *); void menudialog00103608(void); bool menudialogCoopAntiOptions(u32 operation, struct menu_dialog *dialog, struct menustackitem *stackitem); diff --git a/src/include/game/game_19c990.h b/src/include/game/game_19c990.h index ebcefc28b..24accb913 100644 --- a/src/include/game/game_19c990.h +++ b/src/include/game/game_19c990.h @@ -76,7 +76,7 @@ u32 func0f1a176c(void); u32 func0f1a17e4(void); struct trainingdata *getDeviceTrainingData(void); u32 func0f1a1824(void); -u32 func0f1a190c(void); +u32 dtPushEndscreen(void); void func0f1a1998(void); u32 func0f1a1ac0(void); u32 func0f1a1b54(void); @@ -90,7 +90,7 @@ u32 func0f1a1e90(void); u32 func0f1a1f00(void); u32 func0f1a1f70(void); struct trainingdata *getHoloTrainingData(void); -u32 func0f1a1fec(void); +u32 htPushEndscreen(void); void func0f1a2070(void); u32 func0f1a2198(void); u32 func0f1a2220(void); diff --git a/src/include/types.h b/src/include/types.h index 624a3d57a..ab7ac1322 100644 --- a/src/include/types.h +++ b/src/include/types.h @@ -3901,7 +3901,7 @@ struct menustackitem { /*0x838*/ u16 unk838; /*0x83a*/ u8 unk83a; /*0x83b*/ u8 playernum; - /*0x83c*/ u32 unk83c; + /*0x83c*/ u8 unk83c; /*0x840*/ u32 unk840; /*0x844*/ u32 unk844; /*0x848*/ u32 unk848; @@ -4860,7 +4860,7 @@ struct trainingdata { u32 intraining : 1; u32 unk00_01 : 1; u32 unk00_02 : 1; - u32 unk00_03 : 1; + u32 finished : 1; u32 holographedpc : 1; s32 timetaken; u32 unk08;