From a6e0d3175c71664c71073755c0eddb17c6f08d97 Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Sat, 19 Oct 2019 18:15:51 +1000 Subject: [PATCH] Decompile aiIfInCutscene --- src/game/chr/chraicommands.c | 39 +++++++++------------------- src/include/game/chr/chraicommands.h | 2 +- src/include/gvars/gvars.h | 2 +- src/setup/setup_000000.c | 2 +- 4 files changed, 15 insertions(+), 30 deletions(-) diff --git a/src/game/chr/chraicommands.c b/src/game/chr/chraicommands.c index 515d1cc94..bf63fc3d6 100644 --- a/src/game/chr/chraicommands.c +++ b/src/game/chr/chraicommands.c @@ -9023,33 +9023,18 @@ glabel ai0111 /** * @cmd 0113 */ -GLOBAL_ASM( -glabel ai0113 -/* f056e2c: 3c03800a */ lui $v1,0x800a -/* f056e30: 24639fc0 */ addiu $v1,$v1,-24640 -/* f056e34: 8c6e04cc */ lw $t6,0x4cc($v1) -/* f056e38: 8c640434 */ lw $a0,0x434($v1) -/* f056e3c: 8c650438 */ lw $a1,0x438($v1) -/* f056e40: 27bdffe8 */ addiu $sp,$sp,-24 -/* f056e44: afbf0014 */ sw $ra,0x14($sp) -/* f056e48: 11c00007 */ beqz $t6,.L0f056e68 -/* f056e4c: 00851021 */ addu $v0,$a0,$a1 -/* f056e50: 0fc13583 */ jal chraiGoToLabel -/* f056e54: 90460002 */ lbu $a2,0x2($v0) -/* f056e58: 3c03800a */ lui $v1,0x800a -/* f056e5c: 24639fc0 */ addiu $v1,$v1,-24640 -/* f056e60: 10000003 */ beqz $zero,.L0f056e70 -/* f056e64: ac620438 */ sw $v0,0x438($v1) -.L0f056e68: -/* f056e68: 24af0003 */ addiu $t7,$a1,0x3 -/* f056e6c: ac6f0438 */ sw $t7,0x438($v1) -.L0f056e70: -/* f056e70: 8fbf0014 */ lw $ra,0x14($sp) -/* f056e74: 27bd0018 */ addiu $sp,$sp,0x18 -/* f056e78: 00001025 */ or $v0,$zero,$zero -/* f056e7c: 03e00008 */ jr $ra -/* f056e80: 00000000 */ sll $zero,$zero,0x0 -); +bool aiIfInCutscene(void) +{ + u8 *cmd = g_Vars.ailist + g_Vars.aioffset; + + if (g_Vars.in_cutscene) { + g_Vars.aioffset = chraiGoToLabel(g_Vars.ailist, g_Vars.aioffset, cmd[2]); + } else { + g_Vars.aioffset += 3; + } + + return false; +} /** * @cmd 0174 diff --git a/src/include/game/chr/chraicommands.h b/src/include/game/chr/chraicommands.h index e0e4d82c8..7a6ad9d3a 100644 --- a/src/include/game/chr/chraicommands.h +++ b/src/include/game/chr/chraicommands.h @@ -275,7 +275,7 @@ /*0x0110*/ bool ai0110(void); /*0x0111*/ bool ai0111(void); /*0x0112*/ bool ai0112(void); -/*0x0113*/ bool ai0113(void); +/*0x0113*/ bool aiIfInCutscene(void); /*0x0114*/ bool ai0114(void); /*0x0115*/ bool ai0115(void); /*0x0116*/ bool ai0116(void); diff --git a/src/include/gvars/gvars.h b/src/include/gvars/gvars.h index d88d3b9e9..f0211ea50 100644 --- a/src/include/gvars/gvars.h +++ b/src/include/gvars/gvars.h @@ -322,7 +322,7 @@ struct g_vars { /*0004c0*/ u32 unk0004c0; /*0004c4*/ u32 unk0004c4; /*0004c8*/ u32 unk0004c8; - /*0004cc*/ u32 unk0004cc; + /*0004cc*/ u32 in_cutscene; /*0004d0*/ u32 unk0004d0; /*0004d4*/ u32 unk0004d4; /*0004d8*/ u32 unk0004d8; diff --git a/src/setup/setup_000000.c b/src/setup/setup_000000.c index f2a9486fd..c4d0b3493 100644 --- a/src/setup/setup_000000.c +++ b/src/setup/setup_000000.c @@ -14228,7 +14228,7 @@ bool (*command_pointers[])(void) = { /*0x0110*/ ai0110, /*0x0111*/ ai0111, /*0x0112*/ ai0112, - /*0x0113*/ ai0113, + /*0x0113*/ aiIfInCutscene, /*0x0114*/ ai0114, /*0x0115*/ ai0115, /*0x0116*/ ai0116,