From 248076558ba8a4ecbce839ee6a2d893894c19574 Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Mon, 21 Oct 2019 18:01:25 +1000 Subject: [PATCH] Decompile aiChrAdjustMotionBlur --- src/game/chr/chraicommands.c | 56 +++++++++------------------- src/include/game/chr/chraicommands.h | 2 +- src/include/types.h | 2 +- src/setup/setup_000000.c | 2 +- 4 files changed, 20 insertions(+), 42 deletions(-) diff --git a/src/game/chr/chraicommands.c b/src/game/chr/chraicommands.c index 174c518e0..802d7d928 100644 --- a/src/game/chr/chraicommands.c +++ b/src/game/chr/chraicommands.c @@ -14576,45 +14576,23 @@ bool ai016c(void) /** * @cmd 016d */ -GLOBAL_ASM( -glabel ai016d -/* f05c630: 3c06800a */ lui $a2,0x800a -/* f05c634: 24c69fc0 */ addiu $a2,$a2,-24640 -/* f05c638: 8cce0434 */ lw $t6,0x434($a2) -/* f05c63c: 8ccf0438 */ lw $t7,0x438($a2) -/* f05c640: 27bdffe0 */ addiu $sp,$sp,-32 -/* f05c644: afbf0014 */ sw $ra,0x14($sp) -/* f05c648: 01cf1821 */ addu $v1,$t6,$t7 -/* f05c64c: 90650002 */ lbu $a1,0x2($v1) -/* f05c650: afa3001c */ sw $v1,0x1c($sp) -/* f05c654: 0fc126d1 */ jal chrFindById -/* f05c658: 8cc40424 */ lw $a0,0x424($a2) -/* f05c65c: 3c06800a */ lui $a2,0x800a -/* f05c660: 24c69fc0 */ addiu $a2,$a2,-24640 -/* f05c664: 1040000d */ beqz $v0,.L0f05c69c -/* f05c668: 8fa3001c */ lw $v1,0x1c($sp) -/* f05c66c: 90780004 */ lbu $t8,0x4($v1) -/* f05c670: 57000007 */ bnezl $t8,.L0f05c690 -/* f05c674: 844a02d8 */ lh $t2,0x2d8($v0) -/* f05c678: 845902d8 */ lh $t9,0x2d8($v0) -/* f05c67c: 90680003 */ lbu $t0,0x3($v1) -/* f05c680: 03284823 */ subu $t1,$t9,$t0 -/* f05c684: 10000005 */ beqz $zero,.L0f05c69c -/* f05c688: a44902d8 */ sh $t1,0x2d8($v0) -/* f05c68c: 844a02d8 */ lh $t2,0x2d8($v0) -.L0f05c690: -/* f05c690: 906b0003 */ lbu $t3,0x3($v1) -/* f05c694: 014b6021 */ addu $t4,$t2,$t3 -/* f05c698: a44c02d8 */ sh $t4,0x2d8($v0) -.L0f05c69c: -/* f05c69c: 8ccd0438 */ lw $t5,0x438($a2) -/* f05c6a0: 8fbf0014 */ lw $ra,0x14($sp) -/* f05c6a4: 27bd0020 */ addiu $sp,$sp,0x20 -/* f05c6a8: 25ae0005 */ addiu $t6,$t5,0x5 -/* f05c6ac: acce0438 */ sw $t6,0x438($a2) -/* f05c6b0: 03e00008 */ jr $ra -/* f05c6b4: 00001025 */ or $v0,$zero,$zero -); +bool aiChrAdjustMotionBlur(void) +{ + u8 *cmd = g_Vars.ailist + g_Vars.aioffset; + struct chrdata *chr = chrFindById(g_Vars.chrdata, cmd[2]); + + if (chr) { + if (cmd[4] == 0) { + chr->blurdrugamount -= cmd[3]; + } else { + chr->blurdrugamount += cmd[3]; + } + } + + g_Vars.aioffset += 5; + + return false; +} /** * @cmd 016e diff --git a/src/include/game/chr/chraicommands.h b/src/include/game/chr/chraicommands.h index 1168e4b7a..dccf155f6 100644 --- a/src/include/game/chr/chraicommands.h +++ b/src/include/game/chr/chraicommands.h @@ -342,7 +342,7 @@ /*0x016a*/ bool aiIfY(void); /*0x016b*/ bool ai016b(void); /*0x016c*/ bool ai016c(void); -/*0x016d*/ bool ai016d(void); +/*0x016d*/ bool aiChrAdjustMotionBlur(void); /*0x016e*/ bool ai016e(void); /*0x016f*/ bool ai016f(void); /*0x0170*/ bool ai0170(void); diff --git a/src/include/types.h b/src/include/types.h index d1ddb54c8..14745515a 100644 --- a/src/include/types.h +++ b/src/include/types.h @@ -185,7 +185,7 @@ struct chrdata { /*0x2b8*/ u16 oldrooms[8]; /*0x2c8*/ struct coord runfrompos; /*0x2d4*/ u32 unk2d4; - /*0x2d8*/ u16 blurdrugamount; + /*0x2d8*/ s16 blurdrugamount; /*0x2da*/ u16 cloakpause; /*0x2dc*/ u32 drugheadsway; /*0x2e0*/ u8 drugheadcount; diff --git a/src/setup/setup_000000.c b/src/setup/setup_000000.c index e05cd88f7..91aa7dce3 100644 --- a/src/setup/setup_000000.c +++ b/src/setup/setup_000000.c @@ -14318,7 +14318,7 @@ bool (*command_pointers[])(void) = { /*0x016a*/ aiIfY, /*0x016b*/ ai016b, /*0x016c*/ ai016c, - /*0x016d*/ ai016d, + /*0x016d*/ aiChrAdjustMotionBlur, /*0x016e*/ ai016e, /*0x016f*/ ai016f, /*0x0170*/ ai0170,