From ecb5a43102cb19a8e61600e785ea5f7264864c76 Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Tue, 22 Oct 2019 18:53:23 +1000 Subject: [PATCH] Decompile aiSetFlag --- src/game/chr/chraicommands.c | 42 +++++++--------------------- src/include/game/chr/chraicommands.h | 2 +- src/setup/setup_000000.c | 2 +- 3 files changed, 12 insertions(+), 34 deletions(-) diff --git a/src/game/chr/chraicommands.c b/src/game/chr/chraicommands.c index f830f00a3..b9c888185 100644 --- a/src/game/chr/chraicommands.c +++ b/src/game/chr/chraicommands.c @@ -5613,38 +5613,16 @@ bool aiSetUnarmedDodgeRating(void) /** * @cmd 009b */ -GLOBAL_ASM( -glabel ai009b -/* f053d1c: 3c03800a */ lui $v1,0x800a -/* f053d20: 24639fc0 */ addiu $v1,$v1,-24640 -/* f053d24: 8c6e0434 */ lw $t6,0x434($v1) -/* f053d28: 8c6f0438 */ lw $t7,0x438($v1) -/* f053d2c: 27bdffe8 */ addiu $sp,$sp,-24 -/* f053d30: afbf0014 */ sw $ra,0x14($sp) -/* f053d34: 01cf1021 */ addu $v0,$t6,$t7 -/* f053d38: 90580002 */ lbu $t8,0x2($v0) -/* f053d3c: 90480003 */ lbu $t0,0x3($v0) -/* f053d40: 904b0004 */ lbu $t3,0x4($v0) -/* f053d44: 0018ce00 */ sll $t9,$t8,0x18 -/* f053d48: 00084c00 */ sll $t1,$t0,0x10 -/* f053d4c: 904e0005 */ lbu $t6,0x5($v0) -/* f053d50: 03295025 */ or $t2,$t9,$t1 -/* f053d54: 000b6200 */ sll $t4,$t3,0x8 -/* f053d58: 014c6825 */ or $t5,$t2,$t4 -/* f053d5c: 90460006 */ lbu $a2,0x6($v0) -/* f053d60: 8c640424 */ lw $a0,0x424($v1) -/* f053d64: 0fc12776 */ jal chrSetFlags -/* f053d68: 01ae2825 */ or $a1,$t5,$t6 -/* f053d6c: 3c03800a */ lui $v1,0x800a -/* f053d70: 24639fc0 */ addiu $v1,$v1,-24640 -/* f053d74: 8c6f0438 */ lw $t7,0x438($v1) -/* f053d78: 8fbf0014 */ lw $ra,0x14($sp) -/* f053d7c: 27bd0018 */ addiu $sp,$sp,0x18 -/* f053d80: 25f80007 */ addiu $t8,$t7,0x7 -/* f053d84: ac780438 */ sw $t8,0x438($v1) -/* f053d88: 03e00008 */ jr $ra -/* f053d8c: 00001025 */ or $v0,$zero,$zero -); +bool aiSetFlag(void) +{ + u8 *cmd = g_Vars.ailist + g_Vars.aioffset; + u32 flags = (cmd[3] << 16) | (cmd[4] << 8) | cmd[5] | (cmd[2] << 24); + chrSetFlags(g_Vars.chrdata, flags, cmd[6]); + + g_Vars.aioffset += 7; + + return false; +} /** * @cmd 009c diff --git a/src/include/game/chr/chraicommands.h b/src/include/game/chr/chraicommands.h index 60729ad6c..19dbc0e4d 100644 --- a/src/include/game/chr/chraicommands.h +++ b/src/include/game/chr/chraicommands.h @@ -157,7 +157,7 @@ /*0x0098*/ bool aiSetReactionSpeed(void); /*0x0099*/ bool aiSetRecoverySpeed(void); /*0x009a*/ bool aiSetAccuracy(void); -/*0x009b*/ bool ai009b(void); +/*0x009b*/ bool aiSetFlag(void); /*0x009c*/ bool ai009c(void); /*0x009d*/ bool ai009d(void); /*0x009e*/ bool ai009e(void); diff --git a/src/setup/setup_000000.c b/src/setup/setup_000000.c index ff5311bf1..0cf864b03 100644 --- a/src/setup/setup_000000.c +++ b/src/setup/setup_000000.c @@ -14108,7 +14108,7 @@ bool (*command_pointers[])(void) = { /*0x0098*/ aiSetReactionSpeed, /*0x0099*/ aiSetRecoverySpeed, /*0x009a*/ aiSetAccuracy, - /*0x009b*/ ai009b, + /*0x009b*/ aiSetFlag, /*0x009c*/ ai009c, /*0x009d*/ ai009d, /*0x009e*/ ai009e,