From ecdad8931d3d7295949bb0d298f3febe20f40f3c Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Sat, 19 Oct 2019 13:50:27 +1000 Subject: [PATCH] Decompile aiIfMoraleLessThan --- src/game/chr/chraicommands.c | 42 ++++++++-------------------- src/include/game/chr/chraicommands.h | 2 +- src/setup/setup_000000.c | 2 +- 3 files changed, 14 insertions(+), 32 deletions(-) diff --git a/src/game/chr/chraicommands.c b/src/game/chr/chraicommands.c index d3de8bb9f..eb395db3c 100644 --- a/src/game/chr/chraicommands.c +++ b/src/game/chr/chraicommands.c @@ -5124,36 +5124,18 @@ bool aiSubtractMorale(void) /** * @cmd 0088 */ -GLOBAL_ASM( -glabel ai0088 -/* f053438: 3c03800a */ lui $v1,0x800a -/* f05343c: 24639fc0 */ addiu $v1,$v1,-24640 -/* f053440: 8c640434 */ lw $a0,0x434($v1) -/* f053444: 8c650438 */ lw $a1,0x438($v1) -/* f053448: 8c6e0424 */ lw $t6,0x424($v1) -/* f05344c: 27bdffe8 */ addiu $sp,$sp,-24 -/* f053450: afbf0014 */ sw $ra,0x14($sp) -/* f053454: 00851021 */ addu $v0,$a0,$a1 -/* f053458: 90580002 */ lbu $t8,0x2($v0) -/* f05345c: 91cf0112 */ lbu $t7,0x112($t6) -/* f053460: 24b90004 */ addiu $t9,$a1,0x4 -/* f053464: 01f8082a */ slt $at,$t7,$t8 -/* f053468: 50200008 */ beqzl $at,.L0f05348c -/* f05346c: ac790438 */ sw $t9,0x438($v1) -/* f053470: 0fc13583 */ jal chraiGoToLabel -/* f053474: 90460003 */ lbu $a2,0x3($v0) -/* f053478: 3c03800a */ lui $v1,0x800a -/* f05347c: 24639fc0 */ addiu $v1,$v1,-24640 -/* f053480: 10000002 */ beqz $zero,.L0f05348c -/* f053484: ac620438 */ sw $v0,0x438($v1) -/* f053488: ac790438 */ sw $t9,0x438($v1) -.L0f05348c: -/* f05348c: 8fbf0014 */ lw $ra,0x14($sp) -/* f053490: 27bd0018 */ addiu $sp,$sp,0x18 -/* f053494: 00001025 */ or $v0,$zero,$zero -/* f053498: 03e00008 */ jr $ra -/* f05349c: 00000000 */ sll $zero,$zero,0x0 -); +bool aiIfMoraleLessThan(void) +{ + u8 *cmd = g_Vars.ailist + g_Vars.aioffset; + + if (g_Vars.chrdata->morale < cmd[2]) { + g_Vars.aioffset = chraiGoToLabel(g_Vars.ailist, g_Vars.aioffset, cmd[3]); + } else { + g_Vars.aioffset += 4; + } + + return false; +} /** * @cmd 0089 diff --git a/src/include/game/chr/chraicommands.h b/src/include/game/chr/chraicommands.h index 7ce84045b..a30768d53 100644 --- a/src/include/game/chr/chraicommands.h +++ b/src/include/game/chr/chraicommands.h @@ -138,7 +138,7 @@ /*0x0085*/ bool aiAddMorale(void); /*0x0086*/ bool aiChrAddMorale(void); /*0x0087*/ bool aiSubtractMorale(void); -/*0x0088*/ bool ai0088(void); +/*0x0088*/ bool aiIfMoraleLessThan(void); /*0x0089*/ bool ai0089(void); /*0x008a*/ bool ai008a(void); /*0x008b*/ bool ai008b(void); diff --git a/src/setup/setup_000000.c b/src/setup/setup_000000.c index 9eedb60e4..6e5b5c716 100644 --- a/src/setup/setup_000000.c +++ b/src/setup/setup_000000.c @@ -14089,7 +14089,7 @@ bool (*command_pointers[])(void) = { /*0x0085*/ aiAddMorale, /*0x0086*/ aiChrAddMorale, /*0x0087*/ aiSubtractMorale, - /*0x0088*/ ai0088, + /*0x0088*/ aiIfMoraleLessThan, /*0x0089*/ ai0089, /*0x008a*/ ai008a, /*0x008b*/ ai008b,