From 13c5512bc7c0917a545a38abb4296ab14837afc7 Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Fri, 18 Oct 2019 22:01:56 +1000 Subject: [PATCH] Decompile aiOpenDoor --- src/game/chr/chraicommands.c | 55 ++++++++-------------------- src/include/game/chr/chraicommands.h | 2 +- src/setup/setup_000000.c | 2 +- 3 files changed, 17 insertions(+), 42 deletions(-) diff --git a/src/game/chr/chraicommands.c b/src/game/chr/chraicommands.c index c931c10fd..f570b6c37 100644 --- a/src/game/chr/chraicommands.c +++ b/src/game/chr/chraicommands.c @@ -3992,46 +3992,21 @@ glabel ai006b /** * @cmd 006c */ -GLOBAL_ASM( -glabel ai006c -/* f0521a0: 3c03800a */ lui $v1,0x800a -/* f0521a4: 24639fc0 */ addiu $v1,$v1,-24640 -/* f0521a8: 8c6e0434 */ lw $t6,0x434($v1) -/* f0521ac: 8c6f0438 */ lw $t7,0x438($v1) -/* f0521b0: 27bdffe0 */ addiu $sp,$sp,-32 -/* f0521b4: afbf0014 */ sw $ra,0x14($sp) -/* f0521b8: 01cf1021 */ addu $v0,$t6,$t7 -/* f0521bc: 0fc2556c */ jal objFindByTagId -/* f0521c0: 90440002 */ lbu $a0,0x2($v0) -/* f0521c4: 10400011 */ beqz $v0,.L0f05220c -/* f0521c8: 00000000 */ sll $zero,$zero,0x0 -/* f0521cc: 8c430014 */ lw $v1,0x14($v0) -/* f0521d0: 1060000e */ beqz $v1,.L0f05220c -/* f0521d4: 00000000 */ sll $zero,$zero,0x0 -/* f0521d8: 90780000 */ lbu $t8,0x0($v1) -/* f0521dc: 24010002 */ addiu $at,$zero,0x2 -/* f0521e0: 00002825 */ or $a1,$zero,$zero -/* f0521e4: 17010009 */ bne $t8,$at,.L0f05220c -/* f0521e8: 00000000 */ sll $zero,$zero,0x0 -/* f0521ec: 8c440014 */ lw $a0,0x14($v0) -/* f0521f0: 0fc198c4 */ jal func0f066310 -/* f0521f4: afa20018 */ sw $v0,0x18($sp) -/* f0521f8: 14400004 */ bnez $v0,.L0f05220c -/* f0521fc: 8fa60018 */ lw $a2,0x18($sp) -/* f052200: 00c02025 */ or $a0,$a2,$zero -/* f052204: 0fc23922 */ jal func0f08e488 -/* f052208: 24050001 */ addiu $a1,$zero,0x1 -.L0f05220c: -/* f05220c: 3c03800a */ lui $v1,0x800a -/* f052210: 24639fc0 */ addiu $v1,$v1,-24640 -/* f052214: 8c790438 */ lw $t9,0x438($v1) -/* f052218: 8fbf0014 */ lw $ra,0x14($sp) -/* f05221c: 27bd0020 */ addiu $sp,$sp,0x20 -/* f052220: 27280003 */ addiu $t0,$t9,0x3 -/* f052224: ac680438 */ sw $t0,0x438($v1) -/* f052228: 03e00008 */ jr $ra -/* f05222c: 00001025 */ or $v0,$zero,$zero -); +bool aiOpenDoor(void) +{ + u8 *cmd = g_Vars.ailist + g_Vars.aioffset; + struct defaultobj *door = objFindByTagId(cmd[2]); + + if (door && door->pos && door->pos->unk00 == 2) { + if (!func0f066310(door->pos, 0)) { + func0f08e488(door, DOORSTATE_CLOSED); + } + } + + g_Vars.aioffset += 3; + + return false; +} /** * @cmd 006d diff --git a/src/include/game/chr/chraicommands.h b/src/include/game/chr/chraicommands.h index ca22151d3..4f2c56208 100644 --- a/src/include/game/chr/chraicommands.h +++ b/src/include/game/chr/chraicommands.h @@ -110,7 +110,7 @@ /*0x0069*/ bool ai0069(void); /*0x006a*/ bool ai006a(void); /*0x006b*/ bool ai006b(void); -/*0x006c*/ bool ai006c(void); +/*0x006c*/ bool aiOpenDoor(void); /*0x006d*/ bool ai006d(void); /*0x006e*/ bool ai006e(void); /*0x006f*/ bool ai006f(void); diff --git a/src/setup/setup_000000.c b/src/setup/setup_000000.c index eeedad9a3..b5819856e 100644 --- a/src/setup/setup_000000.c +++ b/src/setup/setup_000000.c @@ -14061,7 +14061,7 @@ bool (*command_pointers[])(void) = { /*0x0069*/ ai0069, /*0x006a*/ ai006a, /*0x006b*/ ai006b, - /*0x006c*/ ai006c, + /*0x006c*/ aiOpenDoor, /*0x006d*/ ai006d, /*0x006e*/ ai006e, /*0x006f*/ ai006f,