From d5de6fd5375f7eb03d606f1db7abfaafa564fae1 Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Mon, 7 Oct 2019 18:43:53 +1000 Subject: [PATCH] Decompile aiIfPlayerInSight --- 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 2461a6c16..7eec66c7f 100644 --- a/src/game/chr/chraicommands.c +++ b/src/game/chr/chraicommands.c @@ -721,37 +721,17 @@ bool aiIfChrUnloaded(void) /** * @cmd 0035 */ -GLOBAL_ASM( -glabel ai0035 -/* f04e73c: 27bdffe8 */ addiu $sp,$sp,-24 -/* f04e740: 3c03800a */ lui $v1,0x800a -/* f04e744: 24639fc0 */ addiu $v1,$v1,-24640 -/* f04e748: afbf0014 */ sw $ra,0x14($sp) -/* f04e74c: 0fc0e5e3 */ jal func0f03978c -/* f04e750: 8c640424 */ lw $a0,0x424($v1) -/* f04e754: 3c03800a */ lui $v1,0x800a -/* f04e758: 1040000a */ beqz $v0,.L0f04e784 -/* f04e75c: 24639fc0 */ addiu $v1,$v1,-24640 -/* f04e760: 8c640434 */ lw $a0,0x434($v1) -/* f04e764: 8c650438 */ lw $a1,0x438($v1) -/* f04e768: 00851021 */ addu $v0,$a0,$a1 -/* f04e76c: 0fc13583 */ jal chraiGoToLabel -/* f04e770: 90460002 */ lbu $a2,0x2($v0) -/* f04e774: 3c03800a */ lui $v1,0x800a -/* f04e778: 24639fc0 */ addiu $v1,$v1,-24640 -/* f04e77c: 10000004 */ beqz $zero,.L0f04e790 -/* f04e780: ac620438 */ sw $v0,0x438($v1) -.L0f04e784: -/* f04e784: 8c6e0438 */ lw $t6,0x438($v1) -/* f04e788: 25cf0003 */ addiu $t7,$t6,0x3 -/* f04e78c: ac6f0438 */ sw $t7,0x438($v1) -.L0f04e790: -/* f04e790: 8fbf0014 */ lw $ra,0x14($sp) -/* f04e794: 27bd0018 */ addiu $sp,$sp,0x18 -/* f04e798: 00001025 */ or $v0,$zero,$zero -/* f04e79c: 03e00008 */ jr $ra -/* f04e7a0: 00000000 */ sll $zero,$zero,0x0 -); +bool aiIfPlayerInSight(void) +{ + if (func0f03978c(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 000f diff --git a/src/include/game/chr/chraicommands.h b/src/include/game/chr/chraicommands.h index 02bc30ea9..1ca33f8d1 100644 --- a/src/include/game/chr/chraicommands.h +++ b/src/include/game/chr/chraicommands.h @@ -56,7 +56,7 @@ /*0x0032*/ bool aiIfStopped(void); /*0x0033*/ bool aiIfDying(void); /*0x0034*/ bool ai0034(void); -/*0x0035*/ bool ai0035(void); +/*0x0035*/ bool aiIfPlayerInSight(void); /*0x0036*/ bool ai0036(void); /*0x0037*/ bool ai0037(void); /*0x0038*/ bool ai0038(void); diff --git a/src/setup/setup.c b/src/setup/setup.c index 053872a89..82e15c132 100644 --- a/src/setup/setup.c +++ b/src/setup/setup.c @@ -14002,7 +14002,7 @@ bool (*command_pointers[])(void) = { /*0x0032*/ aiIfStopped, /*0x0033*/ aiIfDying, /*0x0034*/ ai0034, - /*0x0035*/ ai0035, + /*0x0035*/ aiIfPlayerInSight, /*0x0036*/ ai0036, /*0x0037*/ ai0037, /*0x0038*/ ai0038,