From f2d79a38583de1087a8f446f8c1f1411076001a3 Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Thu, 10 Oct 2019 18:16:12 +1000 Subject: [PATCH] Decompile aiSetObjHealth --- src/game/chr/chraicommands.c | 48 ++++++++-------------------- src/include/game/chr/chraicommands.h | 2 +- src/setup/setup_000000.c | 2 +- 3 files changed, 16 insertions(+), 36 deletions(-) diff --git a/src/game/chr/chraicommands.c b/src/game/chr/chraicommands.c index 7c95a5bfb..7222718e3 100644 --- a/src/game/chr/chraicommands.c +++ b/src/game/chr/chraicommands.c @@ -18334,40 +18334,20 @@ bool aiIfObjHealthLessThan(void) /** * @cmd 019f */ -GLOBAL_ASM( -glabel ai019f -/* f05d9d8: 3c03800a */ lui $v1,0x800a -/* f05d9dc: 24639fc0 */ addiu $v1,$v1,-24640 -/* f05d9e0: 8c6e0434 */ lw $t6,0x434($v1) -/* f05d9e4: 8c6f0438 */ lw $t7,0x438($v1) -/* f05d9e8: 27bdffe0 */ addiu $sp,$sp,-32 -/* f05d9ec: afbf0014 */ sw $ra,0x14($sp) -/* f05d9f0: 01cf1021 */ addu $v0,$t6,$t7 -/* f05d9f4: 90580003 */ lbu $t8,0x3($v0) -/* f05d9f8: 90480004 */ lbu $t0,0x4($v0) -/* f05d9fc: 0018ca00 */ sll $t9,$t8,0x8 -/* f05da00: 03284825 */ or $t1,$t9,$t0 -/* f05da04: afa90018 */ sw $t1,0x18($sp) -/* f05da08: 0fc2556c */ jal objFindByTagId -/* f05da0c: 90440002 */ lbu $a0,0x2($v0) -/* f05da10: 3c03800a */ lui $v1,0x800a -/* f05da14: 10400006 */ beqz $v0,.L0f05da30 -/* f05da18: 24639fc0 */ addiu $v1,$v1,-24640 -/* f05da1c: 8c4a0014 */ lw $t2,0x14($v0) -/* f05da20: 8fab0018 */ lw $t3,0x18($sp) -/* f05da24: 51400003 */ beqzl $t2,.L0f05da34 -/* f05da28: 8c6c0438 */ lw $t4,0x438($v1) -/* f05da2c: a44b004c */ sh $t3,0x4c($v0) -.L0f05da30: -/* f05da30: 8c6c0438 */ lw $t4,0x438($v1) -.L0f05da34: -/* f05da34: 8fbf0014 */ lw $ra,0x14($sp) -/* f05da38: 27bd0020 */ addiu $sp,$sp,0x20 -/* f05da3c: 258d0005 */ addiu $t5,$t4,0x5 -/* f05da40: ac6d0438 */ sw $t5,0x438($v1) -/* f05da44: 03e00008 */ jr $ra -/* f05da48: 00001025 */ or $v0,$zero,$zero -); +bool aiSetObjHealth(void) +{ + u8 *cmd = g_Vars.ailist + g_Vars.aioffset; + s32 damage = cmd[4] | (cmd[3] << 8); + struct defaultobj *obj = objFindByTagId(cmd[2]); + + if (obj && obj->pos) { + obj->damage = damage; + } + + g_Vars.aioffset += 5; + + return false; +} /** * @cmd 01a0 diff --git a/src/include/game/chr/chraicommands.h b/src/include/game/chr/chraicommands.h index 46cf1276d..846197dcd 100644 --- a/src/include/game/chr/chraicommands.h +++ b/src/include/game/chr/chraicommands.h @@ -382,7 +382,7 @@ /*0x0192*/ bool aiIfEepromSet(void); /*0x0193*/ bool aiIfEepromUnset(void); /*0x019e*/ bool aiIfObjHealthLessThan(void); -/*0x019f*/ bool ai019f(void); +/*0x019f*/ bool aiSetObjHealth(void); /*0x01a0*/ bool ai01a0(void); /*0x01a1*/ bool ai01a1(void); /*0x01a2*/ bool ai01a2(void); diff --git a/src/setup/setup_000000.c b/src/setup/setup_000000.c index ecce9e398..2071f16c6 100644 --- a/src/setup/setup_000000.c +++ b/src/setup/setup_000000.c @@ -14364,7 +14364,7 @@ bool (*command_pointers[])(void) = { /*0x019c*/ NULL, /*0x019d*/ NULL, /*0x019e*/ aiIfObjHealthLessThan, - /*0x019f*/ ai019f, + /*0x019f*/ aiSetObjHealth, /*0x01a0*/ ai01a0, /*0x01a1*/ ai01a1, /*0x01a2*/ ai01a2,