From dd3d71082490f6799fee18b14abe54300f35b387 Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Thu, 7 Nov 2019 23:01:44 +1000 Subject: [PATCH] Decompile ai0052 --- src/game/chr/chraicommands.c | 61 ++++++++-------------------------- src/include/game/game_000000.h | 3 +- 2 files changed, 15 insertions(+), 49 deletions(-) diff --git a/src/game/chr/chraicommands.c b/src/game/chr/chraicommands.c index 40d840f36..b210b4106 100644 --- a/src/game/chr/chraicommands.c +++ b/src/game/chr/chraicommands.c @@ -2083,54 +2083,19 @@ bool ai0051(void) /** * @cmd 0052 */ -GLOBAL_ASM( -glabel ai0052 -/* f050a0c: 3c03800a */ lui $v1,0x800a -/* f050a10: 24639fc0 */ addiu $v1,$v1,-24640 -/* f050a14: 8c6e0434 */ lw $t6,0x434($v1) -/* f050a18: 8c6f0438 */ lw $t7,0x438($v1) -/* f050a1c: 27bdffe0 */ addiu $sp,$sp,-32 -/* f050a20: afbf0014 */ sw $ra,0x14($sp) -/* f050a24: 01cf1021 */ addu $v0,$t6,$t7 -/* f050a28: 90580002 */ lbu $t8,0x2($v0) -/* f050a2c: 90480003 */ lbu $t0,0x3($v0) -/* f050a30: 3c014120 */ lui $at,0x4120 -/* f050a34: 0018ca00 */ sll $t9,$t8,0x8 -/* f050a38: 03284825 */ or $t1,$t9,$t0 -/* f050a3c: 44892000 */ mtc1 $t1,$f4 -/* f050a40: 44814000 */ mtc1 $at,$f8 -/* f050a44: afa2001c */ sw $v0,0x1c($sp) -/* f050a48: 468021a0 */ cvt.s.w $f6,$f4 -/* f050a4c: 8c640424 */ lw $a0,0x424($v1) -/* f050a50: 46083282 */ mul.s $f10,$f6,$f8 -/* f050a54: 0fc12472 */ jal func0f0491c8 -/* f050a58: e7aa0018 */ swc1 $f10,0x18($sp) -/* f050a5c: c7b00018 */ lwc1 $f16,0x18($sp) -/* f050a60: 3c03800a */ lui $v1,0x800a -/* f050a64: 24639fc0 */ addiu $v1,$v1,-24640 -/* f050a68: 4610003c */ c.lt.s $f0,$f16 -/* f050a6c: 8fa2001c */ lw $v0,0x1c($sp) -/* f050a70: 4502000a */ bc1fl .L0f050a9c -/* f050a74: 8c6a0438 */ lw $t2,0x438($v1) -/* f050a78: 8c640434 */ lw $a0,0x434($v1) -/* f050a7c: 8c650438 */ lw $a1,0x438($v1) -/* f050a80: 0fc13583 */ jal chraiGoToLabel -/* f050a84: 90460004 */ lbu $a2,0x4($v0) -/* f050a88: 3c03800a */ lui $v1,0x800a -/* f050a8c: 24639fc0 */ addiu $v1,$v1,-24640 -/* f050a90: 10000004 */ beqz $zero,.L0f050aa4 -/* f050a94: ac620438 */ sw $v0,0x438($v1) -/* f050a98: 8c6a0438 */ lw $t2,0x438($v1) -.L0f050a9c: -/* f050a9c: 254b0005 */ addiu $t3,$t2,0x5 -/* f050aa0: ac6b0438 */ sw $t3,0x438($v1) -.L0f050aa4: -/* f050aa4: 8fbf0014 */ lw $ra,0x14($sp) -/* f050aa8: 27bd0020 */ addiu $sp,$sp,0x20 -/* f050aac: 00001025 */ or $v0,$zero,$zero -/* f050ab0: 03e00008 */ jr $ra -/* f050ab4: 00000000 */ sll $zero,$zero,0x0 -); +bool ai0052(void) +{ + u8 *cmd = g_Vars.ailist + g_Vars.aioffset; + float distance = (cmd[3] | (cmd[2] << 8)) * (float)10; + + if (func0f0491c8(g_Vars.chrdata) < distance) { + g_Vars.aioffset = chraiGoToLabel(g_Vars.ailist, g_Vars.aioffset, cmd[4]); + } else { + g_Vars.aioffset += 5; + } + + return false; +} /** * @cmd 0053 diff --git a/src/include/game/game_000000.h b/src/include/game/game_000000.h index a1f5413f2..7708f979e 100644 --- a/src/include/game/game_000000.h +++ b/src/include/game/game_000000.h @@ -33,7 +33,8 @@ u32 func0f01a348(void); u32 func0f01aba8(void); u32 func0f01b148(void); u32 func0f01b154(void); -u32 func0f048f20(struct chrdata *chr, u8 b); void func0f03af44(struct chrdata *chr, u32 anim_id, float fstartframe, float fendframe, u8 flags, u8 transition, float result); +u32 func0f048f20(struct chrdata *chr, u8 b); +float func0f0491c8(struct chrdata *chr); #endif