Decompile menuhandlerMpWeaponSlot

This commit is contained in:
Ryan Dwyer 2020-01-02 19:39:06 +10:00
parent 85b0f0e31c
commit d74a0297a8
5 changed files with 35 additions and 65 deletions

View File

@ -3390,62 +3390,31 @@ glabel menuhandlerMpControlStyle
/* f179570: 00000000 */ sll $zero,$zero,0x0
);
GLOBAL_ASM(
glabel menuhandlerMpWeaponSlot
/* f179574: 27bdffe8 */ addiu $sp,$sp,-24
/* f179578: 24010001 */ addiu $at,$zero,0x1
/* f17957c: afbf0014 */ sw $ra,0x14($sp)
/* f179580: 1081000a */ beq $a0,$at,.L0f1795ac
/* f179584: 00a03825 */ or $a3,$a1,$zero
/* f179588: 24010003 */ addiu $at,$zero,0x3
/* f17958c: 1081000c */ beq $a0,$at,.L0f1795c0
/* f179590: 24010006 */ addiu $at,$zero,0x6
/* f179594: 1081000e */ beq $a0,$at,.L0f1795d0
/* f179598: 24010007 */ addiu $at,$zero,0x7
/* f17959c: 50810012 */ beql $a0,$at,.L0f1795e8
/* f1795a0: 8ce4000c */ lw $a0,0xc($a3)
/* f1795a4: 10000015 */ beqz $zero,.L0f1795fc
/* f1795a8: 00001025 */ or $v0,$zero,$zero
.L0f1795ac:
/* f1795ac: 0fc622f5 */ jal func0f188bd4
/* f1795b0: afa60020 */ sw $a2,0x20($sp)
/* f1795b4: 8fa60020 */ lw $a2,0x20($sp)
/* f1795b8: 1000000f */ beqz $zero,.L0f1795f8
/* f1795bc: acc20000 */ sw $v0,0x0($a2)
.L0f1795c0:
/* f1795c0: 0fc6230f */ jal func0f188c3c
/* f1795c4: 8cc40000 */ lw $a0,0x0($a2)
/* f1795c8: 1000000d */ beqz $zero,.L0f179600
/* f1795cc: 8fbf0014 */ lw $ra,0x14($sp)
.L0f1795d0:
/* f1795d0: 8ce4000c */ lw $a0,0xc($a3)
/* f1795d4: 0fc62346 */ jal func0f188d18
/* f1795d8: 8cc50000 */ lw $a1,0x0($a2)
/* f1795dc: 10000007 */ beqz $zero,.L0f1795fc
/* f1795e0: 00001025 */ or $v0,$zero,$zero
/* f1795e4: 8ce4000c */ lw $a0,0xc($a3)
.L0f1795e8:
/* f1795e8: 0fc62365 */ jal func0f188d94
/* f1795ec: afa60020 */ sw $a2,0x20($sp)
/* f1795f0: 8fa60020 */ lw $a2,0x20($sp)
/* f1795f4: acc20000 */ sw $v0,0x0($a2)
.L0f1795f8:
/* f1795f8: 00001025 */ or $v0,$zero,$zero
.L0f1795fc:
/* f1795fc: 8fbf0014 */ lw $ra,0x14($sp)
.L0f179600:
/* f179600: 27bd0018 */ addiu $sp,$sp,0x18
/* f179604: 03e00008 */ jr $ra
/* f179608: 00000000 */ sll $zero,$zero,0x0
);
char *menuhandlerMpWeaponSlot(u32 operation, struct menu_item *item, s32 *value)
{
switch (operation) {
case MENUOP_GETOPTIONCOUNT:
*value = mpGetNumWeaponOptions();
break;
case MENUOP_GETOPTIONTEXT:
return mpGetWeaponLabel(*value);
case MENUOP_SET:
mpSetWeaponSlot(item->right, *value);
break;
case MENUOP_GETOPTIONVALUE:
*value = mpGetWeaponSlot(item->right);
}
return 0;
}
GLOBAL_ASM(
glabel func0f17960c
/* f17960c: 27bdffe8 */ addiu $sp,$sp,-24
/* f179610: afbf0014 */ sw $ra,0x14($sp)
/* f179614: 0fc62365 */ jal func0f188d94
/* f179614: 0fc62365 */ jal mpGetWeaponSlot
/* f179618: 90840001 */ lbu $a0,0x1($a0)
/* f17961c: 0fc6230f */ jal func0f188c3c
/* f17961c: 0fc6230f */ jal mpGetWeaponLabel
/* f179620: 00402025 */ or $a0,$v0,$zero
/* f179624: 8fbf0014 */ lw $ra,0x14($sp)
/* f179628: 27bd0018 */ addiu $sp,$sp,0x18

View File

@ -1721,7 +1721,7 @@ u32 func0f188bcc(void)
}
GLOBAL_ASM(
glabel func0f188bd4
glabel mpGetNumWeaponOptions
/* f188bd4: 27bdffd8 */ addiu $sp,$sp,-40
/* f188bd8: afb20020 */ sw $s2,0x20($sp)
/* f188bdc: afb00018 */ sw $s0,0x18($sp)
@ -1753,7 +1753,7 @@ glabel func0f188bd4
);
GLOBAL_ASM(
glabel func0f188c3c
glabel mpGetWeaponLabel
/* f188c3c: 27bdffd8 */ addiu $sp,$sp,-40
/* f188c40: afb20020 */ sw $s2,0x20($sp)
/* f188c44: afb00018 */ sw $s0,0x18($sp)
@ -1819,7 +1819,7 @@ glabel func0f188c3c
);
GLOBAL_ASM(
glabel func0f188d18
glabel mpSetWeaponSlot
/* f188d18: 27bdffd8 */ addiu $sp,$sp,-40
/* f188d1c: afb20020 */ sw $s2,0x20($sp)
/* f188d20: afb1001c */ sw $s1,0x1c($sp)
@ -1857,7 +1857,7 @@ glabel func0f188d18
);
GLOBAL_ASM(
glabel func0f188d94
glabel mpGetWeaponSlot
/* f188d94: 27bdffd8 */ addiu $sp,$sp,-40
/* f188d98: 3c0e800b */ lui $t6,%hi(g_MpSetup)
/* f188d9c: afb30020 */ sw $s3,0x20($sp)
@ -2399,7 +2399,7 @@ glabel func0f1892dc
/* f1894d4: 2401000d */ addiu $at,$zero,0xd
/* f1894d8: 54410017 */ bnel $v0,$at,.L0f189538
/* f1894dc: 2401000c */ addiu $at,$zero,0xc
/* f1894e0: 0fc622f5 */ jal func0f188bd4
/* f1894e0: 0fc622f5 */ jal mpGetNumWeaponOptions
/* f1894e4: 00000000 */ sll $zero,$zero,0x0
/* f1894e8: afa20034 */ sw $v0,0x34($sp)
/* f1894ec: 00008025 */ or $s0,$zero,$zero
@ -2414,7 +2414,7 @@ glabel func0f1892dc
/* f18950c: 00000000 */ sll $zero,$zero,0x0
/* f189510: 0007000d */ break 0x7
.L0f189514:
/* f189514: 0fc62346 */ jal func0f188d18
/* f189514: 0fc62346 */ jal mpSetWeaponSlot
/* f189518: 00000000 */ sll $zero,$zero,0x0
/* f18951c: 26100001 */ addiu $s0,$s0,0x1
/* f189520: 24010006 */ addiu $at,$zero,0x6
@ -2426,7 +2426,7 @@ glabel func0f1892dc
.L0f189538:
/* f189538: 5441001c */ bnel $v0,$at,.L0f1895ac
/* f18953c: 8fbf001c */ lw $ra,0x1c($sp)
/* f189540: 0fc622f5 */ jal func0f188bd4
/* f189540: 0fc622f5 */ jal mpGetNumWeaponOptions
/* f189544: 00000000 */ sll $zero,$zero,0x0
/* f189548: 2458fffe */ addiu $t8,$v0,-2
/* f18954c: afb80030 */ sw $t8,0x30($sp)
@ -2443,16 +2443,16 @@ glabel func0f1892dc
/* f189574: 00000000 */ sll $zero,$zero,0x0
/* f189578: 0007000d */ break 0x7
.L0f18957c:
/* f18957c: 0fc62346 */ jal func0f188d18
/* f18957c: 0fc62346 */ jal mpSetWeaponSlot
/* f189580: 00000000 */ sll $zero,$zero,0x0
/* f189584: 26100001 */ addiu $s0,$s0,0x1
/* f189588: 24010005 */ addiu $at,$zero,0x5
/* f18958c: 1601fff1 */ bne $s0,$at,.L0f189554
/* f189590: 00000000 */ sll $zero,$zero,0x0
/* f189594: 0fc622f5 */ jal func0f188bd4
/* f189594: 0fc622f5 */ jal mpGetNumWeaponOptions
/* f189598: 00000000 */ sll $zero,$zero,0x0
/* f18959c: 02002025 */ or $a0,$s0,$zero
/* f1895a0: 0fc62346 */ jal func0f188d18
/* f1895a0: 0fc62346 */ jal mpSetWeaponSlot
/* f1895a4: 2445ffff */ addiu $a1,$v0,-1
.L0f1895a8:
/* f1895a8: 8fbf001c */ lw $ra,0x1c($sp)

View File

@ -463,6 +463,7 @@
#define MENUOP_GETOPTIONCOUNT 1
#define MENUOP_GETOPTIONTEXT 3
#define MENUOP_SET 6
#define MENUOP_GETOPTIONVALUE 7
#define MENUOP_GET 8
#define MENUOP_GETSLIDER 9
#define MENUOP_CHECKDISABLED 12

View File

@ -261,6 +261,6 @@ s32 menuhandlerMpTeamsEnabled(u32 operation, struct menu_item *item, s32 *value)
s32 menuhandlerMpThreeTeams(u32 operation, struct menu_item *item, s32 *value);
s32 menuhandlerMpTime(u32, u32, u32 *);
s32 menuhandlerMpTwoTeams(u32 operation, struct menu_item *item, s32 *value);
s32 menuhandlerMpWeaponSlot(u32, u32, u32 *);
char *menuhandlerMpWeaponSlot(u32 operation, struct menu_item *item, s32 *value);
#endif

View File

@ -20,10 +20,10 @@ u32 func0f1885e4(void);
u32 func0f188930(void);
u32 func0f188a84(void);
u32 func0f188bcc(void);
u32 func0f188bd4(void);
u32 func0f188c3c(void);
u32 func0f188d18(void);
u32 func0f188d94(void);
u32 mpGetNumWeaponOptions(void);
char *mpGetWeaponLabel(s32 weapon_id);
void mpSetWeaponSlot(s32 slot, s32 weapon_id);
s32 mpGetWeaponSlot(s32 slot);
u32 func0f188e24(void);
u32 func0f188ed4(void);
u32 func0f188f9c(void);