From d0a05e4f8b5906417eec4634b867224979e1063a Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Sat, 26 Oct 2019 20:39:09 +1000 Subject: [PATCH] Decompile aiFadeScreen --- src/game/chr/chraicommands.c | 46 ++++++---------------------- src/include/game/chr/chraicommands.h | 2 +- src/setup/setup_000000.c | 2 +- 3 files changed, 12 insertions(+), 38 deletions(-) diff --git a/src/game/chr/chraicommands.c b/src/game/chr/chraicommands.c index d8a7b8079..03cba49c8 100644 --- a/src/game/chr/chraicommands.c +++ b/src/game/chr/chraicommands.c @@ -16405,42 +16405,16 @@ glabel ai01ca /** * @cmd 01cb */ -GLOBAL_ASM( -glabel ai01cb -/* f05f1f4: 3c03800a */ lui $v1,0x800a -/* f05f1f8: 24639fc0 */ addiu $v1,$v1,-24640 -/* f05f1fc: 8c6e0434 */ lw $t6,0x434($v1) -/* f05f200: 8c6f0438 */ lw $t7,0x438($v1) -/* f05f204: 27bdffe8 */ addiu $sp,$sp,-24 -/* f05f208: afbf0014 */ sw $ra,0x14($sp) -/* f05f20c: 01cf1021 */ addu $v0,$t6,$t7 -/* f05f210: 90480003 */ lbu $t0,0x3($v0) -/* f05f214: 90580002 */ lbu $t8,0x2($v0) -/* f05f218: 904f0006 */ lbu $t7,0x6($v0) -/* f05f21c: 00084c00 */ sll $t1,$t0,0x10 -/* f05f220: 904b0004 */ lbu $t3,0x4($v0) -/* f05f224: 90480007 */ lbu $t0,0x7($v0) -/* f05f228: 0018ce00 */ sll $t9,$t8,0x18 -/* f05f22c: 03295025 */ or $t2,$t9,$t1 -/* f05f230: 000fc200 */ sll $t8,$t7,0x8 -/* f05f234: 904e0005 */ lbu $t6,0x5($v0) -/* f05f238: 000b6200 */ sll $t4,$t3,0x8 -/* f05f23c: 03082825 */ or $a1,$t8,$t0 -/* f05f240: 014c6825 */ or $t5,$t2,$t4 -/* f05f244: 0005cc00 */ sll $t9,$a1,0x10 -/* f05f248: 00192c03 */ sra $a1,$t9,0x10 -/* f05f24c: 0fc5a15b */ jal func0f16856c -/* f05f250: 01ae2025 */ or $a0,$t5,$t6 -/* f05f254: 3c03800a */ lui $v1,0x800a -/* f05f258: 24639fc0 */ addiu $v1,$v1,-24640 -/* f05f25c: 8c6b0438 */ lw $t3,0x438($v1) -/* f05f260: 8fbf0014 */ lw $ra,0x14($sp) -/* f05f264: 27bd0018 */ addiu $sp,$sp,0x18 -/* f05f268: 256a0008 */ addiu $t2,$t3,0x8 -/* f05f26c: ac6a0438 */ sw $t2,0x438($v1) -/* f05f270: 03e00008 */ jr $ra -/* f05f274: 00001025 */ or $v0,$zero,$zero -); +bool aiFadeScreen(void) +{ + u8 *cmd = g_Vars.ailist + g_Vars.aioffset; + u32 color = (cmd[3] << 16) | (cmd[4] << 8) | cmd[5] | (cmd[2] << 24); + u32 num_frames = ((cmd[7] | (cmd[6] << 8)) << 16) >> 16; + func0f16856c(color, num_frames); + g_Vars.aioffset += 8; + + return false; +} /** * @cmd 01cc diff --git a/src/include/game/chr/chraicommands.h b/src/include/game/chr/chraicommands.h index 841168e44..37b55fd93 100644 --- a/src/include/game/chr/chraicommands.h +++ b/src/include/game/chr/chraicommands.h @@ -422,7 +422,7 @@ /*0x01c8*/ bool ai01c8(void); /*0x01c9*/ bool ai01c9(void); /*0x01ca*/ bool ai01ca(void); -/*0x01cb*/ bool ai01cb(void); +/*0x01cb*/ bool aiFadeScreen(void); /*0x01cc*/ bool ai01cc(void); /*0x01cd*/ bool ai01cd(void); /*0x01ce*/ bool ai01ce(void); diff --git a/src/setup/setup_000000.c b/src/setup/setup_000000.c index 1cd78dc6d..585dd790b 100644 --- a/src/setup/setup_000000.c +++ b/src/setup/setup_000000.c @@ -14412,7 +14412,7 @@ bool (*command_pointers[])(void) = { /*0x01c8*/ ai01c8, /*0x01c9*/ ai01c9, /*0x01ca*/ ai01ca, - /*0x01cb*/ ai01cb, + /*0x01cb*/ aiFadeScreen, /*0x01cc*/ ai01cc, /*0x01cd*/ ai01cd, /*0x01ce*/ ai01ce,