Decompile aiIfNumArghsLessThan, aiIfNumArghsGreaterThan and chrGetNumArghs

This commit is contained in:
Ryan Dwyer 2019-11-28 17:01:43 +10:00
parent 454306a7e9
commit f3748ce202
6 changed files with 37 additions and 90 deletions

View File

@ -50627,11 +50627,10 @@ glabel func0f04a0e4
/* f04a0fc: ac8f0018 */ sw $t7,0x18($a0)
);
GLOBAL_ASM(
glabel func0f04a100
/* f04a100: 03e00008 */ jr $ra
/* f04a104: 8082000b */ lb $v0,0xb($a0)
);
s32 chrGetNumArghs(struct chrdata *chr)
{
return chr->numarghs;
}
GLOBAL_ASM(
glabel func0f04a108

View File

@ -3798,86 +3798,34 @@ bool ai0076(void)
/**
* @cmd 007d
*/
GLOBAL_ASM(
glabel ai007d
/* f052878: 3c03800a */ lui $v1,%hi(g_Vars)
/* f05287c: 24639fc0 */ addiu $v1,$v1,%lo(g_Vars)
/* f052880: 8c6e0434 */ lw $t6,0x434($v1)
/* f052884: 8c6f0438 */ lw $t7,0x438($v1)
/* f052888: 27bdffe0 */ addiu $sp,$sp,-32
/* f05288c: afbf0014 */ sw $ra,0x14($sp)
/* f052890: 01cf3821 */ addu $a3,$t6,$t7
/* f052894: afa7001c */ sw $a3,0x1c($sp)
/* f052898: 0fc12840 */ jal func0f04a100
/* f05289c: 8c640424 */ lw $a0,0x424($v1)
/* f0528a0: 8fa7001c */ lw $a3,0x1c($sp)
/* f0528a4: 3c03800a */ lui $v1,%hi(g_Vars)
/* f0528a8: 24639fc0 */ addiu $v1,$v1,%lo(g_Vars)
/* f0528ac: 90f80002 */ lbu $t8,0x2($a3)
/* f0528b0: 0058082a */ slt $at,$v0,$t8
/* f0528b4: 5020000a */ beqzl $at,.L0f0528e0
/* f0528b8: 8c790438 */ lw $t9,0x438($v1)
/* f0528bc: 8c640434 */ lw $a0,0x434($v1)
/* f0528c0: 8c650438 */ lw $a1,0x438($v1)
/* f0528c4: 0fc13583 */ jal chraiGoToLabel
/* f0528c8: 90e60003 */ lbu $a2,0x3($a3)
/* f0528cc: 3c03800a */ lui $v1,%hi(g_Vars)
/* f0528d0: 24639fc0 */ addiu $v1,$v1,%lo(g_Vars)
/* f0528d4: 10000004 */ beqz $zero,.L0f0528e8
/* f0528d8: ac620438 */ sw $v0,0x438($v1)
/* f0528dc: 8c790438 */ lw $t9,0x438($v1)
.L0f0528e0:
/* f0528e0: 27280004 */ addiu $t0,$t9,0x4
/* f0528e4: ac680438 */ sw $t0,0x438($v1)
.L0f0528e8:
/* f0528e8: 8fbf0014 */ lw $ra,0x14($sp)
/* f0528ec: 27bd0020 */ addiu $sp,$sp,0x20
/* f0528f0: 00001025 */ or $v0,$zero,$zero
/* f0528f4: 03e00008 */ jr $ra
/* f0528f8: 00000000 */ sll $zero,$zero,0x0
);
bool aiIfNumArghsLessThan(void)
{
u8 *cmd = g_Vars.ailist + g_Vars.aioffset;
if (chrGetNumArghs(g_Vars.chrdata) < cmd[2]) {
g_Vars.aioffset = chraiGoToLabel(g_Vars.ailist, g_Vars.aioffset, cmd[3]);
} else {
g_Vars.aioffset += 4;
}
return false;
}
/**
* @cmd 007e
*/
GLOBAL_ASM(
glabel ai007e
/* f0528fc: 3c03800a */ lui $v1,%hi(g_Vars)
/* f052900: 24639fc0 */ addiu $v1,$v1,%lo(g_Vars)
/* f052904: 8c6e0434 */ lw $t6,0x434($v1)
/* f052908: 8c6f0438 */ lw $t7,0x438($v1)
/* f05290c: 27bdffe0 */ addiu $sp,$sp,-32
/* f052910: afbf0014 */ sw $ra,0x14($sp)
/* f052914: 01cf3821 */ addu $a3,$t6,$t7
/* f052918: afa7001c */ sw $a3,0x1c($sp)
/* f05291c: 0fc12840 */ jal func0f04a100
/* f052920: 8c640424 */ lw $a0,0x424($v1)
/* f052924: 8fa7001c */ lw $a3,0x1c($sp)
/* f052928: 3c03800a */ lui $v1,%hi(g_Vars)
/* f05292c: 24639fc0 */ addiu $v1,$v1,%lo(g_Vars)
/* f052930: 90f80002 */ lbu $t8,0x2($a3)
/* f052934: 0302082a */ slt $at,$t8,$v0
/* f052938: 5020000a */ beqzl $at,.L0f052964
/* f05293c: 8c790438 */ lw $t9,0x438($v1)
/* f052940: 8c640434 */ lw $a0,0x434($v1)
/* f052944: 8c650438 */ lw $a1,0x438($v1)
/* f052948: 0fc13583 */ jal chraiGoToLabel
/* f05294c: 90e60003 */ lbu $a2,0x3($a3)
/* f052950: 3c03800a */ lui $v1,%hi(g_Vars)
/* f052954: 24639fc0 */ addiu $v1,$v1,%lo(g_Vars)
/* f052958: 10000004 */ beqz $zero,.L0f05296c
/* f05295c: ac620438 */ sw $v0,0x438($v1)
/* f052960: 8c790438 */ lw $t9,0x438($v1)
.L0f052964:
/* f052964: 27280004 */ addiu $t0,$t9,0x4
/* f052968: ac680438 */ sw $t0,0x438($v1)
.L0f05296c:
/* f05296c: 8fbf0014 */ lw $ra,0x14($sp)
/* f052970: 27bd0020 */ addiu $sp,$sp,0x20
/* f052974: 00001025 */ or $v0,$zero,$zero
/* f052978: 03e00008 */ jr $ra
/* f05297c: 00000000 */ sll $zero,$zero,0x0
);
bool aiIfNumArghsGreaterThan(void)
{
u8 *cmd = g_Vars.ailist + g_Vars.aioffset;
if (chrGetNumArghs(g_Vars.chrdata) > cmd[2]) {
g_Vars.aioffset = chraiGoToLabel(g_Vars.ailist, g_Vars.aioffset, cmd[3]);
} else {
g_Vars.aioffset += 4;
}
return false;
}
/**
* @cmd 007f
@ -9681,7 +9629,7 @@ glabel ai0120
/* f059344: 00408825 */ or $s1,$v0,$zero
/* f059348: a3a8002b */ sb $t0,0x2b($sp)
/* f05934c: 00009025 */ or $s2,$zero,$zero
/* f059350: 0fc12840 */ jal func0f04a100
/* f059350: 0fc12840 */ jal chrGetNumArghs
/* f059354: 8e640424 */ lw $a0,0x424($s3)
/* f059358: 18400002 */ blez $v0,.L0f059364
/* f05935c: 24090004 */ addiu $t1,$zero,0x4
@ -10371,7 +10319,7 @@ glabel ai0129
/* f059f20: 00408825 */ or $s1,$v0,$zero
/* f059f24: 24160006 */ addiu $s6,$zero,0x6
/* f059f28: 00009025 */ or $s2,$zero,$zero
/* f059f2c: 0fc12840 */ jal func0f04a100
/* f059f2c: 0fc12840 */ jal chrGetNumArghs
/* f059f30: 8ea40424 */ lw $a0,0x424($s5)
/* f059f34: 18400002 */ blez $v0,.L0f059f40
/* f059f38: 3c017f1b */ lui $at,%hi(var7f1a9d60)

View File

@ -365,7 +365,7 @@ s32 func0f0495d0(struct chrdata *chr, s32 pad_id);
u32 func0f049644(void);
u32 func0f049fcc(struct chrdata *chr);
u32 func0f04a0e4(struct chrdata *chr);
u32 func0f04a100(void);
s32 chrGetNumArghs(struct chrdata *chr);
u32 func0f04a108(void);
u32 func0f04a110(struct chrdata *chr, u32 arg1);
u32 func0f04a1ac(struct chrdata *chr, u32 arg1);

View File

@ -127,8 +127,8 @@
/*0x007a*/ bool aiIfUptimeGreaterThan(void);
/*0x007b*/ bool aiIfStageIdLessThan(void);
/*0x007c*/ bool aiIfStageIdGreaterThan(void);
/*0x007d*/ bool ai007d(void);
/*0x007e*/ bool ai007e(void);
/*0x007d*/ bool aiIfNumArghsLessThan(void);
/*0x007e*/ bool aiIfNumArghsGreaterThan(void);
/*0x007f*/ bool ai007f(void);
/*0x0080*/ bool ai0080(void);
/*0x0081*/ bool ai0081(void);

View File

@ -89,8 +89,8 @@ struct chrdata {
/*0x007*/ s8 actiontype;
/*0x008*/ u8 sleep;
/*0x009*/ u8 invalidmove;
/*0x00a*/ u8 numclosearghs;
/*0x00b*/ u8 numarghs;
/*0x00a*/ s8 numclosearghs;
/*0x00b*/ s8 numarghs;
/*0x00c*/ u8 fadealpha;
/*0x00d*/ s8 arghrating;
/*0x00e*/ u8 aimendcount;

View File

@ -14257,8 +14257,8 @@ bool (*g_CommandPointers[])(void) = {
/*0x007a*/ aiIfUptimeGreaterThan,
/*0x007b*/ aiIfStageIdLessThan,
/*0x007c*/ aiIfStageIdGreaterThan,
/*0x007d*/ ai007d,
/*0x007e*/ ai007e,
/*0x007d*/ aiIfNumArghsLessThan,
/*0x007e*/ aiIfNumArghsGreaterThan,
/*0x007f*/ ai007f,
/*0x0080*/ ai0080,
/*0x0081*/ ai0081,