From 9456ca7b5d8ab33338360e153cb2858573fcc0ea Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Tue, 22 Oct 2019 18:41:00 +1000 Subject: [PATCH] Decompile aiChrSetChrflag --- src/game/chr/chraicommands.c | 53 ++++++++-------------------- src/include/game/chr/chraicommands.h | 2 +- src/setup/setup_000000.c | 2 +- 3 files changed, 16 insertions(+), 41 deletions(-) diff --git a/src/game/chr/chraicommands.c b/src/game/chr/chraicommands.c index 3601f0721..0225f2572 100644 --- a/src/game/chr/chraicommands.c +++ b/src/game/chr/chraicommands.c @@ -6106,45 +6106,20 @@ glabel ai00a6 /** * @cmd 00a7 */ -GLOBAL_ASM( -glabel ai00a7 -/* f054350: 3c03800a */ lui $v1,0x800a -/* f054354: 24639fc0 */ addiu $v1,$v1,-24640 -/* f054358: 8c6e0434 */ lw $t6,0x434($v1) -/* f05435c: 8c6f0438 */ lw $t7,0x438($v1) -/* f054360: 27bdffe0 */ addiu $sp,$sp,-32 -/* f054364: afbf0014 */ sw $ra,0x14($sp) -/* f054368: 01cf1021 */ addu $v0,$t6,$t7 -/* f05436c: 90580003 */ lbu $t8,0x3($v0) -/* f054370: 90480004 */ lbu $t0,0x4($v0) -/* f054374: 904b0005 */ lbu $t3,0x5($v0) -/* f054378: 904e0006 */ lbu $t6,0x6($v0) -/* f05437c: 0018ce00 */ sll $t9,$t8,0x18 -/* f054380: 00084c00 */ sll $t1,$t0,0x10 -/* f054384: 03295025 */ or $t2,$t9,$t1 -/* f054388: 000b6200 */ sll $t4,$t3,0x8 -/* f05438c: 014c6825 */ or $t5,$t2,$t4 -/* f054390: 01ae7825 */ or $t7,$t5,$t6 -/* f054394: afaf0018 */ sw $t7,0x18($sp) -/* f054398: 90450002 */ lbu $a1,0x2($v0) -/* f05439c: 0fc126d1 */ jal chrFindById -/* f0543a0: 8c640424 */ lw $a0,0x424($v1) -/* f0543a4: 3c03800a */ lui $v1,0x800a -/* f0543a8: 10400005 */ beqz $v0,.L0f0543c0 -/* f0543ac: 24639fc0 */ addiu $v1,$v1,-24640 -/* f0543b0: 8c580018 */ lw $t8,0x18($v0) -/* f0543b4: 8fa80018 */ lw $t0,0x18($sp) -/* f0543b8: 0308c825 */ or $t9,$t8,$t0 -/* f0543bc: ac590018 */ sw $t9,0x18($v0) -.L0f0543c0: -/* f0543c0: 8c690438 */ lw $t1,0x438($v1) -/* f0543c4: 8fbf0014 */ lw $ra,0x14($sp) -/* f0543c8: 27bd0020 */ addiu $sp,$sp,0x20 -/* f0543cc: 252b0007 */ addiu $t3,$t1,0x7 -/* f0543d0: ac6b0438 */ sw $t3,0x438($v1) -/* f0543d4: 03e00008 */ jr $ra -/* f0543d8: 00001025 */ or $v0,$zero,$zero -); +bool aiChrSetChrflag(void) +{ + u8 *cmd = g_Vars.ailist + g_Vars.aioffset; + u32 flags = (cmd[4] << 16) | (cmd[5] << 8) | cmd[6] | (cmd[3] << 24); + struct chrdata *chr = chrFindById(g_Vars.chrdata, cmd[2]); + + if (chr) { + chr->chrflags |= flags; + } + + g_Vars.aioffset += 7; + + return false; +} /** * @cmd 00a8 diff --git a/src/include/game/chr/chraicommands.h b/src/include/game/chr/chraicommands.h index 976ce8a25..6622d094f 100644 --- a/src/include/game/chr/chraicommands.h +++ b/src/include/game/chr/chraicommands.h @@ -169,7 +169,7 @@ /*0x00a4*/ bool ai00a4(void); /*0x00a5*/ bool ai00a5(void); /*0x00a6*/ bool ai00a6(void); -/*0x00a7*/ bool ai00a7(void); +/*0x00a7*/ bool aiChrSetChrflag(void); /*0x00a8*/ bool ai00a8(void); /*0x00a9*/ bool ai00a9(void); /*0x00aa*/ bool ai00aa(void); diff --git a/src/setup/setup_000000.c b/src/setup/setup_000000.c index 3b1c407b0..3eebf6858 100644 --- a/src/setup/setup_000000.c +++ b/src/setup/setup_000000.c @@ -14120,7 +14120,7 @@ bool (*command_pointers[])(void) = { /*0x00a4*/ ai00a4, /*0x00a5*/ ai00a5, /*0x00a6*/ ai00a6, - /*0x00a7*/ ai00a7, + /*0x00a7*/ aiChrSetChrflag, /*0x00a8*/ ai00a8, /*0x00a9*/ ai00a9, /*0x00aa*/ ai00aa,