From 055cb7aa8bac486dcf338b1c94097cf6e2e78f5c Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Mon, 7 Oct 2019 18:02:32 +1000 Subject: [PATCH] Decompile aiIfStopped --- src/game/chr/chraicommands.c | 42 ++++++++-------------------- src/include/game/chr/chraicommands.h | 2 +- src/setup/setup.c | 2 +- 3 files changed, 13 insertions(+), 33 deletions(-) diff --git a/src/game/chr/chraicommands.c b/src/game/chr/chraicommands.c index faea63f45..c8aa8e7c6 100644 --- a/src/game/chr/chraicommands.c +++ b/src/game/chr/chraicommands.c @@ -609,37 +609,17 @@ bool ai000e(void) /** * @cmd 0032 */ -GLOBAL_ASM( -glabel ai0032 -/* f04e490: 27bdffe8 */ addiu $sp,$sp,-24 -/* f04e494: 3c03800a */ lui $v1,0x800a -/* f04e498: 24639fc0 */ addiu $v1,$v1,-24640 -/* f04e49c: afbf0014 */ sw $ra,0x14($sp) -/* f04e4a0: 0fc0e576 */ jal func0f0395d8 -/* f04e4a4: 8c640424 */ lw $a0,0x424($v1) -/* f04e4a8: 3c03800a */ lui $v1,0x800a -/* f04e4ac: 1040000a */ beqz $v0,.L0f04e4d8 -/* f04e4b0: 24639fc0 */ addiu $v1,$v1,-24640 -/* f04e4b4: 8c640434 */ lw $a0,0x434($v1) -/* f04e4b8: 8c650438 */ lw $a1,0x438($v1) -/* f04e4bc: 00851021 */ addu $v0,$a0,$a1 -/* f04e4c0: 0fc13583 */ jal chraiGoToLabel -/* f04e4c4: 90460002 */ lbu $a2,0x2($v0) -/* f04e4c8: 3c03800a */ lui $v1,0x800a -/* f04e4cc: 24639fc0 */ addiu $v1,$v1,-24640 -/* f04e4d0: 10000004 */ beqz $zero,.L0f04e4e4 -/* f04e4d4: ac620438 */ sw $v0,0x438($v1) -.L0f04e4d8: -/* f04e4d8: 8c6e0438 */ lw $t6,0x438($v1) -/* f04e4dc: 25cf0003 */ addiu $t7,$t6,0x3 -/* f04e4e0: ac6f0438 */ sw $t7,0x438($v1) -.L0f04e4e4: -/* f04e4e4: 8fbf0014 */ lw $ra,0x14($sp) -/* f04e4e8: 27bd0018 */ addiu $sp,$sp,0x18 -/* f04e4ec: 00001025 */ or $v0,$zero,$zero -/* f04e4f0: 03e00008 */ jr $ra -/* f04e4f4: 00000000 */ sll $zero,$zero,0x0 -); +bool aiIfStopped(void) +{ + if (func0f0395d8(g_Vars.chrdata)) { + u8 *cmd = g_Vars.ailist + g_Vars.aioffset; + g_Vars.aioffset = chraiGoToLabel(g_Vars.ailist, g_Vars.aioffset, cmd[2]); + } else { + g_Vars.aioffset += 3; + } + + return false; +} /** * @cmd 0033 diff --git a/src/include/game/chr/chraicommands.h b/src/include/game/chr/chraicommands.h index a94703b01..0543487f3 100644 --- a/src/include/game/chr/chraicommands.h +++ b/src/include/game/chr/chraicommands.h @@ -53,7 +53,7 @@ /*0x002f*/ bool ai002f(void); /*0x0030*/ bool ai0030(void); /*0x0031*/ bool ai0031(void); -/*0x0032*/ bool ai0032(void); +/*0x0032*/ bool aiIfStopped(void); /*0x0033*/ bool ai0033(void); /*0x0034*/ bool ai0034(void); /*0x0035*/ bool ai0035(void); diff --git a/src/setup/setup.c b/src/setup/setup.c index 19eec7c1f..dcdcc9a0a 100644 --- a/src/setup/setup.c +++ b/src/setup/setup.c @@ -13999,7 +13999,7 @@ bool (*command_pointers[])(void) = { /*0x002f*/ ai002f, /*0x0030*/ ai0030, /*0x0031*/ ai0031, - /*0x0032*/ ai0032, + /*0x0032*/ aiIfStopped, /*0x0033*/ ai0033, /*0x0034*/ ai0034, /*0x0035*/ ai0035,