Decompile menuResolveParam1Text and menuResolveParam2Text

This commit is contained in:
Ryan Dwyer 2020-03-25 23:05:00 +10:00
parent 463ab52adb
commit d545b6b994
4 changed files with 34 additions and 50 deletions

View File

@ -6307,7 +6307,7 @@ glabel func0f0e7a8c
/* f0e7aa8: afae0074 */ sw $t6,0x74($sp)
/* f0e7aac: 84af0002 */ lh $t7,0x2($a1)
/* f0e7ab0: afaf0070 */ sw $t7,0x70($sp)
/* f0e7ab4: 0fc3c557 */ jal func0f0f155c
/* f0e7ab4: 0fc3c557 */ jal menuResolveParam2Text
/* f0e7ab8: 8ca40008 */ lw $a0,0x8($a1)
/* f0e7abc: afa20078 */ sw $v0,0x78($sp)
/* f0e7ac0: 8e030010 */ lw $v1,0x10($s0)
@ -9265,7 +9265,7 @@ glabel func0f0ea52c
/* f0ea598: afae00a0 */ sw $t6,0xa0($sp)
/* f0ea59c: 8ca70008 */ lw $a3,0x8($a1)
.L0f0ea5a0:
/* f0ea5a0: 0fc3c557 */ jal func0f0f155c
/* f0ea5a0: 0fc3c557 */ jal menuResolveParam2Text
/* f0ea5a4: 00e02025 */ or $a0,$a3,$zero
/* f0ea5a8: 14400003 */ bnez $v0,.L0f0ea5b8
/* f0ea5ac: afa200a4 */ sw $v0,0xa4($sp)
@ -9842,7 +9842,7 @@ glabel func0f0eac18
/* f0eae14: 0fc54e0e */ jal func0f153838
/* f0eae18: ac4c0004 */ sw $t4,0x4($v0)
/* f0eae1c: afa20078 */ sw $v0,0x78($sp)
/* f0eae20: 0fc3c557 */ jal func0f0f155c
/* f0eae20: 0fc3c557 */ jal menuResolveParam2Text
/* f0eae24: 8e040008 */ lw $a0,0x8($s0)
/* f0eae28: 1040001f */ beqz $v0,.L0f0eaea8
/* f0eae2c: 8fa40078 */ lw $a0,0x78($sp)
@ -9921,7 +9921,7 @@ glabel func0f0eaec0
/* f0eaf38: 8ce7fb14 */ lw $a3,%lo(var8007fb14)($a3)
.L0f0eaf3c:
/* f0eaf3c: afa30068 */ sw $v1,0x68($sp)
/* f0eaf40: 0fc3c557 */ jal func0f0f155c
/* f0eaf40: 0fc3c557 */ jal menuResolveParam2Text
/* f0eaf44: afa70064 */ sw $a3,0x64($sp)
/* f0eaf48: afa20074 */ sw $v0,0x74($sp)
/* f0eaf4c: 8e030010 */ lw $v1,0x10($s0)
@ -10369,7 +10369,7 @@ glabel func0f0eb508
/* f0eb5ac: afa80094 */ sw $t0,0x94($sp)
/* f0eb5b0: 8e270008 */ lw $a3,0x8($s1)
.L0f0eb5b4:
/* f0eb5b4: 0fc3c557 */ jal func0f0f155c
/* f0eb5b4: 0fc3c557 */ jal menuResolveParam2Text
/* f0eb5b8: 00e02025 */ or $a0,$a3,$zero
/* f0eb5bc: 8fac0070 */ lw $t4,0x70($sp)
/* f0eb5c0: afa200a8 */ sw $v0,0xa8($sp)
@ -11555,7 +11555,7 @@ glabel func0f0ec64c
/* f0ec6b0: afa90068 */ sw $t1,0x68($sp)
/* f0ec6b4: 8e240008 */ lw $a0,0x8($s1)
/* f0ec6b8: afa30054 */ sw $v1,0x54($sp)
/* f0ec6bc: 0fc3c557 */ jal func0f0f155c
/* f0ec6bc: 0fc3c557 */ jal menuResolveParam2Text
/* f0ec6c0: afa20058 */ sw $v0,0x58($sp)
/* f0ec6c4: afa20070 */ sw $v0,0x70($sp)
/* f0ec6c8: a3a00064 */ sb $zero,0x64($sp)
@ -12590,7 +12590,7 @@ glabel func0f0ed528
/* f0ed53c: 8cae0014 */ lw $t6,0x14($a1)
/* f0ed540: 00a08825 */ or $s1,$a1,$zero
/* f0ed544: afae0084 */ sw $t6,0x84($sp)
/* f0ed548: 0fc3c557 */ jal func0f0f155c
/* f0ed548: 0fc3c557 */ jal menuResolveParam2Text
/* f0ed54c: 8ca40008 */ lw $a0,0x8($a1)
/* f0ed550: 3c0f8007 */ lui $t7,%hi(var800711ec)
/* f0ed554: 3c188008 */ lui $t8,%hi(var8007fb0c)
@ -12936,7 +12936,7 @@ glabel func0f0eda34
/* f0eda3c: afb00020 */ sw $s0,0x20($sp)
/* f0eda40: 00a08025 */ or $s0,$a1,$zero
/* f0eda44: afa40058 */ sw $a0,0x58($sp)
/* f0eda48: 0fc3c557 */ jal func0f0f155c
/* f0eda48: 0fc3c557 */ jal menuResolveParam2Text
/* f0eda4c: a7a0003e */ sh $zero,0x3e($sp)
/* f0eda50: 8fae0058 */ lw $t6,0x58($sp)
/* f0eda54: afa20038 */ sw $v0,0x38($sp)

View File

@ -1048,21 +1048,21 @@ void func0f0f1494(void)
}
}
char *menuResolveText(void *thing, struct menu_item *item)
char *menuResolveText(u32 thing, struct menu_item *item)
{
char *(*handler)(struct menu_item *item) = thing;
char *(*handler)(struct menu_item *item) = (void *)thing;
// Null/zero
if (thing == NULL) {
if (thing == 0) {
return NULL;
}
// Text ID
if ((u32)thing < 0x5a00) {
if (thing < 0x5a00) {
return langGet((u32)thing);
}
if ((u32)thing > (u32)func0f1a78b0) {
if (thing > (u32)func0f1a78b0) {
return NULL;
}
@ -1120,31 +1120,15 @@ const u32 var7f1b264c[] = {0x88445500};
const u32 var7f1b2650[] = {0x48242000};
const u32 var7f1b2654[] = {0x88445500};
GLOBAL_ASM(
glabel func0f0f155c
/* f0f155c: 27bdffe8 */ addiu $sp,$sp,-24
/* f0f1560: afbf0014 */ sw $ra,0x14($sp)
/* f0f1564: 00802825 */ or $a1,$a0,$zero
/* f0f1568: 0fc3c539 */ jal menuResolveText
/* f0f156c: 8c840008 */ lw $a0,0x8($a0)
/* f0f1570: 8fbf0014 */ lw $ra,0x14($sp)
/* f0f1574: 27bd0018 */ addiu $sp,$sp,0x18
/* f0f1578: 03e00008 */ jr $ra
/* f0f157c: 00000000 */ sll $zero,$zero,0x0
);
char *menuResolveParam2Text(struct menu_item *item)
{
return menuResolveText(item->param2, item);
}
GLOBAL_ASM(
glabel func0f0f1580
/* f0f1580: 27bdffe8 */ addiu $sp,$sp,-24
/* f0f1584: afbf0014 */ sw $ra,0x14($sp)
/* f0f1588: 00802825 */ or $a1,$a0,$zero
/* f0f158c: 0fc3c539 */ jal menuResolveText
/* f0f1590: 8c840004 */ lw $a0,0x4($a0)
/* f0f1594: 8fbf0014 */ lw $ra,0x14($sp)
/* f0f1598: 27bd0018 */ addiu $sp,$sp,0x18
/* f0f159c: 03e00008 */ jr $ra
/* f0f15a0: 00000000 */ sll $zero,$zero,0x0
);
char *menuResolveParam1Text(struct menu_item *item)
{
return menuResolveText(item->param1, item);
}
void func0f0f15a4(u8 *arg0, u32 *arg1)
{
@ -1330,7 +1314,7 @@ glabel var7f1b28c0
.L0f0f177c:
/* f0f177c: 10000175 */ beqz $zero,.L0f0f1d54
/* f0f1780: a6580000 */ sh $t8,0x0($s2)
/* f0f1784: 0fc3c557 */ jal func0f0f155c
/* f0f1784: 0fc3c557 */ jal menuResolveParam2Text
/* f0f1788: 02002025 */ or $a0,$s0,$zero
/* f0f178c: 1040000b */ beqz $v0,.L0f0f17bc
/* f0f1790: 00403025 */ or $a2,$v0,$zero
@ -1435,7 +1419,7 @@ glabel var7f1b28c0
/* f0f190c: afa90068 */ sw $t1,0x68($sp)
/* f0f1910: afaa0064 */ sw $t2,0x64($sp)
.L0f0f1914:
/* f0f1914: 0fc3c557 */ jal func0f0f155c
/* f0f1914: 0fc3c557 */ jal menuResolveParam2Text
/* f0f1918: 02002025 */ or $a0,$s0,$zero
/* f0f191c: 14400004 */ bnez $v0,.L0f0f1930
/* f0f1920: 00403025 */ or $a2,$v0,$zero
@ -1496,7 +1480,7 @@ glabel var7f1b28c0
.L0f0f19ec:
/* f0f19ec: 100000d9 */ beqz $zero,.L0f0f1d54
/* f0f19f0: a64c0000 */ sh $t4,0x0($s2)
/* f0f19f4: 0fc3c557 */ jal func0f0f155c
/* f0f19f4: 0fc3c557 */ jal menuResolveParam2Text
/* f0f19f8: 02002025 */ or $a0,$s0,$zero
/* f0f19fc: 14400004 */ bnez $v0,.L0f0f1a10
/* f0f1a00: 00403025 */ or $a2,$v0,$zero
@ -2108,7 +2092,7 @@ glabel func0f0f2134
/* f0f2298: 00a31021 */ addu $v0,$a1,$v1
.L0f0f229c:
/* f0f229c: 2610000c */ addiu $s0,$s0,0xc
/* f0f22a0: 0fc3c560 */ jal func0f0f1580
/* f0f22a0: 0fc3c560 */ jal menuResolveParam1Text
/* f0f22a4: 8d640000 */ lw $a0,0x0($t3)
/* f0f22a8: 3c0c8008 */ lui $t4,%hi(var8007fb0c)
/* f0f22ac: 8d8cfb0c */ lw $t4,%lo(var8007fb0c)($t4)
@ -2553,7 +2537,7 @@ glabel func0f0f288c
/* f0f28f4: 5420fff2 */ bnezl $at,.L0f0f28c0
/* f0f28f8: 8e460000 */ lw $a2,0x0($s2)
.L0f0f28fc:
/* f0f28fc: 0fc3c560 */ jal func0f0f1580
/* f0f28fc: 0fc3c560 */ jal menuResolveParam1Text
/* f0f2900: 8e440000 */ lw $a0,0x0($s2)
/* f0f2904: 8e580000 */ lw $t8,0x0($s2)
/* f0f2908: 8f020008 */ lw $v0,0x8($t8)
@ -2602,7 +2586,7 @@ glabel func0f0f2928
/* f0f2998: 5420fff2 */ bnezl $at,.L0f0f2964
/* f0f299c: 8e460000 */ lw $a2,0x0($s2)
.L0f0f29a0:
/* f0f29a0: 0fc3c560 */ jal func0f0f1580
/* f0f29a0: 0fc3c560 */ jal menuResolveParam1Text
/* f0f29a4: 8e440000 */ lw $a0,0x0($s2)
/* f0f29a8: 8e580000 */ lw $t8,0x0($s2)
/* f0f29ac: 8f020008 */ lw $v0,0x8($t8)
@ -5798,7 +5782,7 @@ glabel func0f0f5360
/* f0f5654: 02021821 */ addu $v1,$s0,$v0
/* f0f5658: afa301d4 */ sw $v1,0x1d4($sp)
/* f0f565c: afa30084 */ sw $v1,0x84($sp)
/* f0f5660: 0fc3c560 */ jal func0f0f1580
/* f0f5660: 0fc3c560 */ jal menuResolveParam1Text
/* f0f5664: afa201dc */ sw $v0,0x1dc($sp)
/* f0f5668: 8fa701ec */ lw $a3,0x1ec($sp)
/* f0f566c: 0040b825 */ or $s7,$v0,$zero
@ -7706,7 +7690,7 @@ glabel func0f0f5360
.L0f0f7298:
/* f0f7298: 02386021 */ addu $t4,$s1,$t8
/* f0f729c: 8d8f0000 */ lw $t7,0x0($t4)
/* f0f72a0: 0fc3c560 */ jal func0f0f1580
/* f0f72a0: 0fc3c560 */ jal menuResolveParam1Text
/* f0f72a4: 8de40000 */ lw $a0,0x0($t7)
/* f0f72a8: 3c138008 */ lui $s3,%hi(var8007fb04)
/* f0f72ac: 2673fb04 */ addiu $s3,$s3,%lo(var8007fb04)
@ -7773,7 +7757,7 @@ glabel func0f0f5360
.L0f0f7398:
/* f0f7398: 02397021 */ addu $t6,$s1,$t9
/* f0f739c: 8dcb0000 */ lw $t3,0x0($t6)
/* f0f73a0: 0fc3c560 */ jal func0f0f1580
/* f0f73a0: 0fc3c560 */ jal menuResolveParam1Text
/* f0f73a4: 8d640000 */ lw $a0,0x0($t3)
/* f0f73a8: 8e780000 */ lw $t8,0x0($s3)
/* f0f73ac: 00408025 */ or $s0,$v0,$zero

View File

@ -14,9 +14,9 @@ u32 func0f0f139c(void);
u32 func0f0f13ec(void);
void func0f0f1418(void);
void func0f0f1494(void);
char *menuResolveText(void *thing, struct menu_item *item);
u32 func0f0f155c(void);
u32 func0f0f1580(void);
char *menuResolveText(u32 thing, struct menu_item *item);
char *menuResolveParam2Text(struct menu_item *item);
char *menuResolveParam1Text(struct menu_item *item);
void func0f0f15a4(u8 *arg0, u32 *arg1);
u32 func0f0f1618(void);
u32 func0f0f1d6c(void);

View File

@ -3203,7 +3203,7 @@ struct hoverprop {
struct menu_item {
u8 type;
u8 param;
u32 flags;
u32 param1;
u32 param2;
u32 param3;
void *handler;