From 4062595feccfa5e868a498fa8d6abb91cc9a60cf Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Fri, 18 Oct 2019 22:06:00 +1000 Subject: [PATCH] Decompile aiCloseDoor --- src/game/chr/chraicommands.c | 46 ++++++++-------------------- src/include/game/chr/chraicommands.h | 2 +- src/setup/setup_000000.c | 2 +- 3 files changed, 15 insertions(+), 35 deletions(-) diff --git a/src/game/chr/chraicommands.c b/src/game/chr/chraicommands.c index f570b6c37..187a719ec 100644 --- a/src/game/chr/chraicommands.c +++ b/src/game/chr/chraicommands.c @@ -4011,39 +4011,19 @@ bool aiOpenDoor(void) /** * @cmd 006d */ -GLOBAL_ASM( -glabel ai006d -/* f052230: 3c03800a */ lui $v1,0x800a -/* f052234: 24639fc0 */ addiu $v1,$v1,-24640 -/* f052238: 8c6e0434 */ lw $t6,0x434($v1) -/* f05223c: 8c6f0438 */ lw $t7,0x438($v1) -/* f052240: 27bdffe8 */ addiu $sp,$sp,-24 -/* f052244: afbf0014 */ sw $ra,0x14($sp) -/* f052248: 01cf1021 */ addu $v0,$t6,$t7 -/* f05224c: 0fc2556c */ jal objFindByTagId -/* f052250: 90440002 */ lbu $a0,0x2($v0) -/* f052254: 1040000a */ beqz $v0,.L0f052280 -/* f052258: 00402025 */ or $a0,$v0,$zero -/* f05225c: 8c430014 */ lw $v1,0x14($v0) -/* f052260: 10600007 */ beqz $v1,.L0f052280 -/* f052264: 00000000 */ sll $zero,$zero,0x0 -/* f052268: 90780000 */ lbu $t8,0x0($v1) -/* f05226c: 24010002 */ addiu $at,$zero,0x2 -/* f052270: 17010003 */ bne $t8,$at,.L0f052280 -/* f052274: 00000000 */ sll $zero,$zero,0x0 -/* f052278: 0fc23922 */ jal func0f08e488 -/* f05227c: 24050002 */ addiu $a1,$zero,0x2 -.L0f052280: -/* f052280: 3c03800a */ lui $v1,0x800a -/* f052284: 24639fc0 */ addiu $v1,$v1,-24640 -/* f052288: 8c790438 */ lw $t9,0x438($v1) -/* f05228c: 8fbf0014 */ lw $ra,0x14($sp) -/* f052290: 27bd0018 */ addiu $sp,$sp,0x18 -/* f052294: 27280003 */ addiu $t0,$t9,0x3 -/* f052298: ac680438 */ sw $t0,0x438($v1) -/* f05229c: 03e00008 */ jr $ra -/* f0522a0: 00001025 */ or $v0,$zero,$zero -); +bool aiCloseDoor(void) +{ + u8 *cmd = g_Vars.ailist + g_Vars.aioffset; + struct defaultobj *door = objFindByTagId(cmd[2]); + + if (door && door->pos && door->pos->unk00 == 2) { + func0f08e488(door, DOORSTATE_OPEN); + } + + g_Vars.aioffset += 3; + + return false; +} /** * @cmd 006e diff --git a/src/include/game/chr/chraicommands.h b/src/include/game/chr/chraicommands.h index 4f2c56208..3c4991180 100644 --- a/src/include/game/chr/chraicommands.h +++ b/src/include/game/chr/chraicommands.h @@ -111,7 +111,7 @@ /*0x006a*/ bool ai006a(void); /*0x006b*/ bool ai006b(void); /*0x006c*/ bool aiOpenDoor(void); -/*0x006d*/ bool ai006d(void); +/*0x006d*/ bool aiCloseDoor(void); /*0x006e*/ bool ai006e(void); /*0x006f*/ bool ai006f(void); /*0x0070*/ bool ai0070(void); diff --git a/src/setup/setup_000000.c b/src/setup/setup_000000.c index b5819856e..c58d5c89f 100644 --- a/src/setup/setup_000000.c +++ b/src/setup/setup_000000.c @@ -14062,7 +14062,7 @@ bool (*command_pointers[])(void) = { /*0x006a*/ ai006a, /*0x006b*/ ai006b, /*0x006c*/ aiOpenDoor, - /*0x006d*/ ai006d, + /*0x006d*/ aiCloseDoor, /*0x006e*/ ai006e, /*0x006f*/ ai006f, /*0x0070*/ ai0070,