From a80ccb462ff29bde213990547d1dd04604f7bc48 Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Tue, 22 Oct 2019 19:12:30 +1000 Subject: [PATCH] Decompile aiUnsetObjFlag3 --- src/game/chr/chraicommands.c | 57 +++++++--------------------- src/include/game/chr/chraicommands.h | 2 +- src/setup/setup_000000.c | 2 +- 3 files changed, 16 insertions(+), 45 deletions(-) diff --git a/src/game/chr/chraicommands.c b/src/game/chr/chraicommands.c index 40a00c19b..7ee06cbc6 100644 --- a/src/game/chr/chraicommands.c +++ b/src/game/chr/chraicommands.c @@ -6329,49 +6329,20 @@ bool aiSetObjFlag3(void) /** * @cmd 0119 */ -GLOBAL_ASM( -glabel ai0119 -/* f054b74: 3c03800a */ lui $v1,0x800a -/* f054b78: 24639fc0 */ addiu $v1,$v1,-24640 -/* f054b7c: 8c6e0434 */ lw $t6,0x434($v1) -/* f054b80: 8c6f0438 */ lw $t7,0x438($v1) -/* f054b84: 27bdffe0 */ addiu $sp,$sp,-32 -/* f054b88: afbf0014 */ sw $ra,0x14($sp) -/* f054b8c: 01cf1021 */ addu $v0,$t6,$t7 -/* f054b90: 90580003 */ lbu $t8,0x3($v0) -/* f054b94: 90480004 */ lbu $t0,0x4($v0) -/* f054b98: 904b0005 */ lbu $t3,0x5($v0) -/* f054b9c: 904e0006 */ lbu $t6,0x6($v0) -/* f054ba0: 0018ce00 */ sll $t9,$t8,0x18 -/* f054ba4: 00084c00 */ sll $t1,$t0,0x10 -/* f054ba8: 03295025 */ or $t2,$t9,$t1 -/* f054bac: 000b6200 */ sll $t4,$t3,0x8 -/* f054bb0: 014c6825 */ or $t5,$t2,$t4 -/* f054bb4: 01ae7825 */ or $t7,$t5,$t6 -/* f054bb8: afaf0018 */ sw $t7,0x18($sp) -/* f054bbc: 0fc2556c */ jal objFindByTagId -/* f054bc0: 90440002 */ lbu $a0,0x2($v0) -/* f054bc4: 3c03800a */ lui $v1,0x800a -/* f054bc8: 10400009 */ beqz $v0,.L0f054bf0 -/* f054bcc: 24639fc0 */ addiu $v1,$v1,-24640 -/* f054bd0: 8c580014 */ lw $t8,0x14($v0) -/* f054bd4: 8fb90018 */ lw $t9,0x18($sp) -/* f054bd8: 53000006 */ beqzl $t8,.L0f054bf4 -/* f054bdc: 8c6a0438 */ lw $t2,0x438($v1) -/* f054be0: 8c480010 */ lw $t0,0x10($v0) -/* f054be4: 03204827 */ nor $t1,$t9,$zero -/* f054be8: 01095824 */ and $t3,$t0,$t1 -/* f054bec: ac4b0010 */ sw $t3,0x10($v0) -.L0f054bf0: -/* f054bf0: 8c6a0438 */ lw $t2,0x438($v1) -.L0f054bf4: -/* f054bf4: 8fbf0014 */ lw $ra,0x14($sp) -/* f054bf8: 27bd0020 */ addiu $sp,$sp,0x20 -/* f054bfc: 254c0007 */ addiu $t4,$t2,0x7 -/* f054c00: ac6c0438 */ sw $t4,0x438($v1) -/* f054c04: 03e00008 */ jr $ra -/* f054c08: 00001025 */ or $v0,$zero,$zero -); +bool aiUnsetObjFlag3(void) +{ + u8 *cmd = g_Vars.ailist + g_Vars.aioffset; + u32 flags = (cmd[4] << 16) | (cmd[5] << 8) | cmd[6] | (cmd[3] << 24); + struct defaultobj *obj = objFindByTagId(cmd[2]); + + if (obj && obj->pos) { + obj->flags3 &= ~flags; + } + + g_Vars.aioffset += 7; + + return false; +} /** * @cmd 011a diff --git a/src/include/game/chr/chraicommands.h b/src/include/game/chr/chraicommands.h index ac4e7ec87..77d4d74d9 100644 --- a/src/include/game/chr/chraicommands.h +++ b/src/include/game/chr/chraicommands.h @@ -281,7 +281,7 @@ /*0x0116*/ bool aiShowObj(void); /*0x0117*/ bool aiHideObj(void); /*0x0118*/ bool aiSetObjFlag3(void); -/*0x0119*/ bool ai0119(void); +/*0x0119*/ bool aiUnsetObjFlag3(void); /*0x011a*/ bool ai011a(void); /*0x011b*/ bool aiChrSetHiddenFlag(void); /*0x011c*/ bool aiChrUnsetHiddenFlag(void); diff --git a/src/setup/setup_000000.c b/src/setup/setup_000000.c index c793fdac7..c407b6a9b 100644 --- a/src/setup/setup_000000.c +++ b/src/setup/setup_000000.c @@ -14234,7 +14234,7 @@ bool (*command_pointers[])(void) = { /*0x0116*/ aiShowObj, /*0x0117*/ aiHideObj, /*0x0118*/ aiSetObjFlag3, - /*0x0119*/ ai0119, + /*0x0119*/ aiUnsetObjFlag3, /*0x011a*/ ai011a, /*0x011b*/ aiChrSetHiddenFlag, /*0x011c*/ aiChrUnsetHiddenFlag,