From 6d3dc999122e369fee6a7e999b6c86dafc2f4318 Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Sat, 26 Oct 2019 15:50:17 +1000 Subject: [PATCH] Decompile ai0122 --- src/game/chr/chraicommands.c | 71 +++++++----------------------------- 1 file changed, 14 insertions(+), 57 deletions(-) diff --git a/src/game/chr/chraicommands.c b/src/game/chr/chraicommands.c index 657602336..dccb20003 100644 --- a/src/game/chr/chraicommands.c +++ b/src/game/chr/chraicommands.c @@ -10509,63 +10509,20 @@ bool ai0121(void) /** * @cmd 0122 */ -GLOBAL_ASM( -glabel ai0122 -/* f0595c4: 3c07800a */ lui $a3,0x800a -/* f0595c8: 24e79fc0 */ addiu $a3,$a3,-24640 -/* f0595cc: 8cee0434 */ lw $t6,0x434($a3) -/* f0595d0: 8cef0438 */ lw $t7,0x438($a3) -/* f0595d4: 27bdffe0 */ addiu $sp,$sp,-32 -/* f0595d8: afbf0014 */ sw $ra,0x14($sp) -/* f0595dc: 01cf1821 */ addu $v1,$t6,$t7 -/* f0595e0: 90780002 */ lbu $t8,0x2($v1) -/* f0595e4: 90680003 */ lbu $t0,0x3($v1) -/* f0595e8: 906a0004 */ lbu $t2,0x4($v1) -/* f0595ec: 906c0005 */ lbu $t4,0x5($v1) -/* f0595f0: 906f0006 */ lbu $t7,0x6($v1) -/* f0595f4: 0018ca00 */ sll $t9,$t8,0x8 -/* f0595f8: 03282825 */ or $a1,$t9,$t0 -/* f0595fc: 8ce40424 */ lw $a0,0x424($a3) -/* f059600: 000a5e00 */ sll $t3,$t2,0x18 -/* f059604: 000c6c00 */ sll $t5,$t4,0x10 -/* f059608: 90680007 */ lbu $t0,0x7($v1) -/* f05960c: 016d7025 */ or $t6,$t3,$t5 -/* f059610: 000fc200 */ sll $t8,$t7,0x8 -/* f059614: 30a9ffff */ andi $t1,$a1,0xffff -/* f059618: 01d8c825 */ or $t9,$t6,$t8 -/* f05961c: 01202825 */ or $a1,$t1,$zero -/* f059620: 10800013 */ beqz $a0,.L0f059670 -/* f059624: 03283025 */ or $a2,$t9,$t0 -/* f059628: 8c89001c */ lw $t1,0x1c($a0) -/* f05962c: 51200011 */ beqzl $t1,.L0f059674 -/* f059630: 8cea0438 */ lw $t2,0x438($a3) -/* f059634: 0fc12e8d */ jal func0f04ba34 -/* f059638: afa3001c */ sw $v1,0x1c($sp) -/* f05963c: 3c07800a */ lui $a3,0x800a -/* f059640: 2401ffff */ addiu $at,$zero,-1 -/* f059644: 24e79fc0 */ addiu $a3,$a3,-24640 -/* f059648: 10410009 */ beq $v0,$at,.L0f059670 -/* f05964c: 8fa3001c */ lw $v1,0x1c($sp) -/* f059650: 8ce40434 */ lw $a0,0x434($a3) -/* f059654: 8ce50438 */ lw $a1,0x438($a3) -/* f059658: 0fc13583 */ jal chraiGoToLabel -/* f05965c: 90660008 */ lbu $a2,0x8($v1) -/* f059660: 3c07800a */ lui $a3,0x800a -/* f059664: 24e79fc0 */ addiu $a3,$a3,-24640 -/* f059668: 10000004 */ beqz $zero,.L0f05967c -/* f05966c: ace20438 */ sw $v0,0x438($a3) -.L0f059670: -/* f059670: 8cea0438 */ lw $t2,0x438($a3) -.L0f059674: -/* f059674: 254c0009 */ addiu $t4,$t2,0x9 -/* f059678: acec0438 */ sw $t4,0x438($a3) -.L0f05967c: -/* f05967c: 8fbf0014 */ lw $ra,0x14($sp) -/* f059680: 27bd0020 */ addiu $sp,$sp,0x20 -/* f059684: 00001025 */ or $v0,$zero,$zero -/* f059688: 03e00008 */ jr $ra -/* f05968c: 00000000 */ sll $zero,$zero,0x0 -); +bool ai0122(void) +{ + u8 *cmd = g_Vars.ailist + g_Vars.aioffset; + u16 thing = cmd[3] | (cmd[2] << 8); + u32 flags = (cmd[5] << 16) | (cmd[6] << 8) | cmd[7] | (cmd[4] << 24); + + if (g_Vars.chrdata && g_Vars.chrdata->pos && func0f04ba34(g_Vars.chrdata, thing, flags) != -1) { + g_Vars.aioffset = chraiGoToLabel(g_Vars.ailist, g_Vars.aioffset, cmd[8]); + } else { + g_Vars.aioffset += 9; + } + + return false; +} /** * @cmd 0123