From be5c26b123db64d704f3695973dc90ca35d42d3f Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Sat, 4 Jan 2020 00:38:25 +1000 Subject: [PATCH] Decompile menuhandlerMpWeaponSetDropdown --- src/game/game_176d70.c | 64 ++++++++++------------------------ src/include/game/game_176d70.h | 2 +- src/include/game/game_187770.h | 2 +- src/setup/setup_020df0.c | 4 +-- 4 files changed, 22 insertions(+), 50 deletions(-) diff --git a/src/game/game_176d70.c b/src/game/game_176d70.c index 57bebc794..4d1bce791 100644 --- a/src/game/game_176d70.c +++ b/src/game/game_176d70.c @@ -3365,52 +3365,24 @@ glabel func0f17960c /* f179630: 00000000 */ sll $zero,$zero,0x0 ); -GLOBAL_ASM( -glabel menuhandler00179634 -/* f179634: 27bdffe8 */ addiu $sp,$sp,-24 -/* f179638: 24010001 */ addiu $at,$zero,0x1 -/* f17963c: 1081000a */ beq $a0,$at,.L0f179668 -/* f179640: afbf0014 */ sw $ra,0x14($sp) -/* f179644: 24010003 */ addiu $at,$zero,0x3 -/* f179648: 1081000d */ beq $a0,$at,.L0f179680 -/* f17964c: 24010006 */ addiu $at,$zero,0x6 -/* f179650: 1081000f */ beq $a0,$at,.L0f179690 -/* f179654: 24010007 */ addiu $at,$zero,0x7 -/* f179658: 10810011 */ beq $a0,$at,.L0f1796a0 -/* f17965c: 00000000 */ sll $zero,$zero,0x0 -/* f179660: 10000014 */ beqz $zero,.L0f1796b4 -/* f179664: 00001025 */ or $v0,$zero,$zero -.L0f179668: -/* f179668: 90a40001 */ lbu $a0,0x1($a1) -/* f17966c: 0fc62416 */ jal func0f189058 -/* f179670: afa60020 */ sw $a2,0x20($sp) -/* f179674: 8fa60020 */ lw $a2,0x20($sp) -/* f179678: 1000000d */ beqz $zero,.L0f1796b0 -/* f17967c: acc20000 */ sw $v0,0x0($a2) -.L0f179680: -/* f179680: 0fc6242a */ jal func0f1890a8 -/* f179684: 8cc40000 */ lw $a0,0x0($a2) -/* f179688: 1000000b */ beqz $zero,.L0f1796b8 -/* f17968c: 8fbf0014 */ lw $ra,0x14($sp) -.L0f179690: -/* f179690: 0fc6256f */ jal func0f1895bc -/* f179694: 8cc40000 */ lw $a0,0x0($a2) -/* f179698: 10000006 */ beqz $zero,.L0f1796b4 -/* f17969c: 00001025 */ or $v0,$zero,$zero -.L0f1796a0: -/* f1796a0: 0fc62587 */ jal func0f18961c -/* f1796a4: afa60020 */ sw $a2,0x20($sp) -/* f1796a8: 8fa60020 */ lw $a2,0x20($sp) -/* f1796ac: acc20000 */ sw $v0,0x0($a2) -.L0f1796b0: -/* f1796b0: 00001025 */ or $v0,$zero,$zero -.L0f1796b4: -/* f1796b4: 8fbf0014 */ lw $ra,0x14($sp) -.L0f1796b8: -/* f1796b8: 27bd0018 */ addiu $sp,$sp,0x18 -/* f1796bc: 03e00008 */ jr $ra -/* f1796c0: 00000000 */ sll $zero,$zero,0x0 -); +s32 menuhandlerMpWeaponSetDropdown(u32 operation, struct menu_item *item, s32 *value) +{ + switch (operation) { + case MENUOP_GETOPTIONCOUNT: + *value = func0f189058(item->param); + break; + case MENUOP_GETOPTIONTEXT: + return func0f1890a8(*value); + case MENUOP_SET: + func0f1895bc(*value); + break; + case MENUOP_GETOPTIONVALUE: + *value = func0f18961c(); + break; + } + + return 0; +} s32 menuhandlerMpControlCheckbox(u32 operation, struct menu_item *item, s32 *value) { diff --git a/src/include/game/game_176d70.h b/src/include/game/game_176d70.h index 159c3ff1c..5b4bd55a7 100644 --- a/src/include/game/game_176d70.h +++ b/src/include/game/game_176d70.h @@ -191,7 +191,7 @@ s32 menuhandler00178bf4(u32, u32, u32 *); s32 menuhandlerMpDropOut(u32 operation, struct menu_item *item, s32 *value); s32 menuhandlerMpTeamsLabel(u32 operation, struct menu_item *item, s32 *value); s32 menuhandler001791c8(u32, u32, u32 *); -s32 menuhandler00179634(u32, u32, u32 *); +s32 menuhandlerMpWeaponSetDropdown(u32 operation, struct menu_item *item, s32 *value); s32 menuhandler00179968(u32, u32, u32 *); s32 menuhandlerMpConfirmSaveChr(u32 operation, struct menu_item *item, s32 *value); s32 menuhandlerMpPlayerName(u32 operation, struct menu_item *item, char **value); diff --git a/src/include/game/game_187770.h b/src/include/game/game_187770.h index 7346b7d36..39feaf3bf 100644 --- a/src/include/game/game_187770.h +++ b/src/include/game/game_187770.h @@ -29,7 +29,7 @@ u32 func0f188ed4(void); u32 func0f188f9c(void); s32 func0f189058(s32 arg0); u32 func0f189088(void); -u32 func0f1890a8(void); +s32 func0f1890a8(s32 arg0); u32 func0f18913c(void); u32 func0f1892dc(void); void func0f1895bc(s32 arg0); diff --git a/src/setup/setup_020df0.c b/src/setup/setup_020df0.c index 701c37206..3cef9b4f2 100644 --- a/src/setup/setup_020df0.c +++ b/src/setup/setup_020df0.c @@ -10394,7 +10394,7 @@ struct menu_dialog menudialog_mpsavesetup = { // 2adb8 struct menu_item menuitems_mpweapons[] = { - { MENUITEMTYPE_DROPDOWN, 1, 0x00020090, 0x000050ae, 0x00000000, menuhandler00179634 }, // "Set:" + { MENUITEMTYPE_DROPDOWN, 1, 0x00020090, 0x000050ae, 0x00000000, menuhandlerMpWeaponSetDropdown }, // "Set:" { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, { MENUITEMTYPE_LABEL, 0, 0x00000212, 0x000050af, 0x00000000, NULL }, // "Current Weapon Setup:" { MENUITEMTYPE_DROPDOWN, 0, 0x000a0080, 0x000050b0, 0x00000000, menuhandlerMpWeaponSlot }, // "1:" @@ -10420,7 +10420,7 @@ struct menu_dialog menudialog_mpweapons = { // 2aec0 struct menu_item menuitems_mpweapons2[] = { - { MENUITEMTYPE_DROPDOWN, 0, 0x00020090, 0x000050ae, 0x00000000, menuhandler00179634 }, // "Set:" + { MENUITEMTYPE_DROPDOWN, 0, 0x00020090, 0x000050ae, 0x00000000, menuhandlerMpWeaponSetDropdown }, // "Set:" { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, { MENUITEMTYPE_LABEL, 0, 0x00000002, 0x000050b0, (u32)&func0f17960c, NULL }, // "1:" { MENUITEMTYPE_LABEL, 1, 0x00000002, 0x000050b1, (u32)&func0f17960c, NULL }, // "2:"