From 60b03dacd51a3fbfe763e7cefab50b86a840d401 Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Thu, 30 Jan 2020 20:17:43 +1000 Subject: [PATCH] Rename fade symbols and discover if_fade_complete AI command --- src/game/chr/chraicommands.c | 12 ++--- src/game/game_0b28d0.c | 74 +++++++++++++++------------- src/include/commands.h | 5 +- src/include/game/chr/chraicommands.h | 2 +- src/include/game/game_0b28d0.h | 8 +-- src/include/types.h | 28 +++++------ src/setup/setup_000000.c | 2 +- 7 files changed, 69 insertions(+), 62 deletions(-) diff --git a/src/game/chr/chraicommands.c b/src/game/chr/chraicommands.c index cb9d3d130..b46eaf491 100644 --- a/src/game/chr/chraicommands.c +++ b/src/game/chr/chraicommands.c @@ -7416,8 +7416,8 @@ bool ai00e3(void) setCurrentPlayerNum(playernum); if (var8007074c != 2) { - func0f0bb320(0, 0, 0, 0); - func0f0bb3c8(60, 1); + currentPlayerSetFadeColour(0, 0, 0, 0); + currentPlayerSetFadeFrac(60, 1); } setCurrentPlayerNum(prevplayernum); @@ -7440,8 +7440,8 @@ bool ai00e4(void) setCurrentPlayerNum(playernum); if (var8007074c != 2) { - func0f0bb320(0, 0, 0, 1); - func0f0bb3c8(60, 0); + currentPlayerSetFadeColour(0, 0, 0, 1); + currentPlayerSetFadeFrac(60, 0); } } @@ -7454,7 +7454,7 @@ bool ai00e4(void) /** * @cmd 00e5 */ -bool ai00e5(void) +bool aiIfFadeComplete(void) { u8 *cmd = g_Vars.ailist + g_Vars.aioffset; bool pass = false; @@ -7463,7 +7463,7 @@ bool ai00e5(void) if (chr && chr->prop && chr->prop->type == PROPTYPE_PLAYER) { u32 playernum = propGetPlayerNum(chr->prop); - if (g_Vars.players[playernum]->unk02ec < 0) { + if (g_Vars.players[playernum]->colourfadetimemax60 < 0) { pass = true; } } diff --git a/src/game/game_0b28d0.c b/src/game/game_0b28d0.c index da1e8e050..b7eef3de1 100644 --- a/src/game/game_0b28d0.c +++ b/src/game/game_0b28d0.c @@ -8356,12 +8356,12 @@ glabel func0f0b9a20 /* f0b9a54: 00002025 */ or $a0,$zero,$zero /* f0b9a58: 00002825 */ or $a1,$zero,$zero /* f0b9a5c: 00003025 */ or $a2,$zero,$zero -/* f0b9a60: 0fc2ecc8 */ jal func0f0bb320 +/* f0b9a60: 0fc2ecc8 */ jal currentPlayerSetFadeColour /* f0b9a64: 3c073f80 */ lui $a3,0x3f80 /* f0b9a68: 3c013f80 */ lui $at,0x3f80 /* f0b9a6c: 44817000 */ mtc1 $at,$f14 /* f0b9a70: 44806000 */ mtc1 $zero,$f12 -/* f0b9a74: 0fc2ecf2 */ jal func0f0bb3c8 +/* f0b9a74: 0fc2ecf2 */ jal currentPlayerSetFadeFrac /* f0b9a78: 00000000 */ sll $zero,$zero,0x0 /* f0b9a7c: 1000000d */ beqz $zero,.L0f0b9ab4 /* f0b9a80: 00000000 */ sll $zero,$zero,0x0 @@ -8371,12 +8371,12 @@ glabel func0f0b9a20 /* f0b9a8c: 00002825 */ or $a1,$zero,$zero /* f0b9a90: 11c00008 */ beqz $t6,.L0f0b9ab4 /* f0b9a94: 00003025 */ or $a2,$zero,$zero -/* f0b9a98: 0fc2ecc8 */ jal func0f0bb320 +/* f0b9a98: 0fc2ecc8 */ jal currentPlayerSetFadeColour /* f0b9a9c: 3c073f80 */ lui $a3,0x3f80 /* f0b9aa0: 3c014270 */ lui $at,0x4270 /* f0b9aa4: 44816000 */ mtc1 $at,$f12 /* f0b9aa8: 44807000 */ mtc1 $zero,$f14 -/* f0b9aac: 0fc2ecf2 */ jal func0f0bb3c8 +/* f0b9aac: 0fc2ecf2 */ jal currentPlayerSetFadeFrac /* f0b9ab0: 00000000 */ sll $zero,$zero,0x0 .L0f0b9ab4: /* f0b9ab4: 0c003a61 */ jal getCurrentStageId @@ -10096,36 +10096,40 @@ glabel func0f0bb2e8 /* f0bb31c: 00000000 */ sll $zero,$zero,0x0 ); -void func0f0bb320(s32 arg0, s32 arg1, s32 arg2, f32 arg3) +void currentPlayerSetFadeColour(s32 r, s32 g, s32 b, f32 frac) { - g_Vars.currentplayer->unk02d8 = arg0; - g_Vars.currentplayer->unk02dc = arg1; - g_Vars.currentplayer->unk02e0 = arg2; - g_Vars.currentplayer->unk02e4 = arg3; + g_Vars.currentplayer->colourscreenred = r; + g_Vars.currentplayer->colourscreengreen = g; + g_Vars.currentplayer->colourscreenblue = b; + g_Vars.currentplayer->colourscreenfrac = frac; } -void func0f0bb350(f32 arg0, s32 arg1, s32 arg2, s32 arg3, f32 arg4) +void currentPlayerAdjustFade(f32 maxfadetime, s32 r, s32 g, s32 b, f32 frac) { - g_Vars.currentplayer->unk02e8 = 0; - g_Vars.currentplayer->unk02ec = arg0; - g_Vars.currentplayer->unk02f0 = g_Vars.currentplayer->unk02d8; - g_Vars.currentplayer->unk02f4 = arg1; - g_Vars.currentplayer->unk02f8 = g_Vars.currentplayer->unk02dc; - g_Vars.currentplayer->unk02fc = arg2; - g_Vars.currentplayer->unk0300 = g_Vars.currentplayer->unk02e0; - g_Vars.currentplayer->unk0304 = arg3; - g_Vars.currentplayer->unk0308 = g_Vars.currentplayer->unk02e4; - g_Vars.currentplayer->unk030c = arg4; + g_Vars.currentplayer->colourfadetime60 = 0; + g_Vars.currentplayer->colourfadetimemax60 = maxfadetime; + g_Vars.currentplayer->colourfaderedold = g_Vars.currentplayer->colourscreenred; + g_Vars.currentplayer->colourfaderednew = r; + g_Vars.currentplayer->colourfadegreenold = g_Vars.currentplayer->colourscreengreen; + g_Vars.currentplayer->colourfadegreennew = g; + g_Vars.currentplayer->colourfadeblueold = g_Vars.currentplayer->colourscreenblue; + g_Vars.currentplayer->colourfadebluenew = b; + g_Vars.currentplayer->colourfadefracold = g_Vars.currentplayer->colourscreenfrac; + g_Vars.currentplayer->colourfadefracnew = frac; } -void func0f0bb3c8(f32 arg0, f32 arg1) +void currentPlayerSetFadeFrac(f32 maxfadetime, f32 frac) { - func0f0bb350(arg0,g_Vars.currentplayer->unk02d8, g_Vars.currentplayer->unk02dc, g_Vars.currentplayer->unk02e0, arg1); + currentPlayerAdjustFade(maxfadetime, + g_Vars.currentplayer->colourscreenred, + g_Vars.currentplayer->colourscreengreen, + g_Vars.currentplayer->colourscreenblue, + frac); } -bool func0f0bb3fc(void) +bool currentPlayerIsFadeComplete(void) { - return g_Vars.currentplayer->unk02ec < 0; + return g_Vars.currentplayer->colourfadetimemax60 < 0; } GLOBAL_ASM( @@ -10501,7 +10505,7 @@ glabel func0f0bb814 /* f0bb9c8: 44070000 */ mfc1 $a3,$f0 /* f0bb9cc: 8c640010 */ lw $a0,0x10($v1) /* f0bb9d0: 8c650014 */ lw $a1,0x14($v1) -/* f0bb9d4: 0fc2ecc8 */ jal func0f0bb320 +/* f0bb9d4: 0fc2ecc8 */ jal currentPlayerSetFadeColour /* f0bb9d8: 8c660018 */ lw $a2,0x18($v1) /* f0bb9dc: 1000000f */ beqz $zero,.L0f0bba1c /* f0bb9e0: 00000000 */ sll $zero,$zero,0x0 @@ -10510,7 +10514,7 @@ glabel func0f0bb814 .L0f0bb9e8: /* f0bb9e8: 240400ff */ addiu $a0,$zero,0xff /* f0bb9ec: 240500ff */ addiu $a1,$zero,0xff -/* f0bb9f0: 0fc2ecc8 */ jal func0f0bb320 +/* f0bb9f0: 0fc2ecc8 */ jal currentPlayerSetFadeColour /* f0bb9f4: e44600f4 */ swc1 $f6,0xf4($v0) /* f0bb9f8: 3c08800a */ lui $t0,%hi(g_Vars) /* f0bb9fc: 25089fc0 */ addiu $t0,$t0,%lo(g_Vars) @@ -14939,7 +14943,7 @@ glabel func0f0bd904 /* f0bf990: 3405f030 */ dli $a1,0xf030 /* f0bf994: 10400024 */ beqz $v0,.L0f0bfa28 /* f0bf998: 240e0002 */ addiu $t6,$zero,0x2 -/* f0bf99c: 0fc2ecff */ jal func0f0bb3fc +/* f0bf99c: 0fc2ecff */ jal currentPlayerIsFadeComplete /* f0bf9a0: ae2e0000 */ sw $t6,0x0($s1) /* f0bf9a4: 50400016 */ beqzl $v0,.L0f0bfa00 /* f0bf9a8: 8e700284 */ lw $s0,0x284($s3) @@ -14953,13 +14957,13 @@ glabel func0f0bd904 /* f0bf9c8: 45020018 */ bc1fl .L0f0bfa2c /* f0bf9cc: 8e2f0000 */ lw $t7,0x0($s1) /* f0bf9d0: 44070000 */ mfc1 $a3,$f0 -/* f0bf9d4: 0fc2ecc8 */ jal func0f0bb320 +/* f0bf9d4: 0fc2ecc8 */ jal currentPlayerSetFadeColour /* f0bf9d8: 00003025 */ or $a2,$zero,$zero /* f0bf9dc: 3c014270 */ lui $at,0x4270 /* f0bf9e0: 44816000 */ mtc1 $at,$f12 /* f0bf9e4: 3c013f80 */ lui $at,0x3f80 /* f0bf9e8: 44817000 */ mtc1 $at,$f14 -/* f0bf9ec: 0fc2ecf2 */ jal func0f0bb3c8 +/* f0bf9ec: 0fc2ecf2 */ jal currentPlayerSetFadeFrac /* f0bf9f0: 00000000 */ sll $zero,$zero,0x0 /* f0bf9f4: 1000000d */ beqz $zero,.L0f0bfa2c /* f0bf9f8: 8e2f0000 */ lw $t7,0x0($s1) @@ -14973,7 +14977,7 @@ glabel func0f0bd904 /* f0bfa14: 45020005 */ bc1fl .L0f0bfa2c /* f0bfa18: 8e2f0000 */ lw $t7,0x0($s1) /* f0bfa1c: 44817000 */ mtc1 $at,$f14 -/* f0bfa20: 0fc2ecf2 */ jal func0f0bb3c8 +/* f0bfa20: 0fc2ecf2 */ jal currentPlayerSetFadeFrac /* f0bfa24: c60c02e8 */ lwc1 $f12,0x2e8($s0) .L0f0bfa28: /* f0bfa28: 8e2f0000 */ lw $t7,0x0($s1) @@ -14981,7 +14985,7 @@ glabel func0f0bd904 /* f0bfa2c: 24010002 */ addiu $at,$zero,0x2 /* f0bfa30: 15e1000f */ bne $t7,$at,.L0f0bfa70 /* f0bfa34: 00000000 */ sll $zero,$zero,0x0 -/* f0bfa38: 0fc2ecff */ jal func0f0bb3fc +/* f0bfa38: 0fc2ecff */ jal currentPlayerIsFadeComplete /* f0bfa3c: 00000000 */ sll $zero,$zero,0x0 /* f0bfa40: 1040000b */ beqz $v0,.L0f0bfa70 /* f0bfa44: 00000000 */ sll $zero,$zero,0x0 @@ -15067,7 +15071,7 @@ glabel func0f0bd904 /* f0bfb68: 24010005 */ addiu $at,$zero,0x5 /* f0bfb6c: 55610008 */ bnel $t3,$at,.L0f0bfb90 /* f0bfb70: 8fbf004c */ lw $ra,0x4c($sp) -/* f0bfb74: 0fc2ecff */ jal func0f0bb3fc +/* f0bfb74: 0fc2ecff */ jal currentPlayerIsFadeComplete /* f0bfb78: 00000000 */ sll $zero,$zero,0x0 /* f0bfb7c: 50400004 */ beqzl $v0,.L0f0bfb90 /* f0bfb80: 8fbf004c */ lw $ra,0x4c($sp) @@ -16196,7 +16200,7 @@ glabel func0f0c07c8 /* f0c0c64: 3c073f34 */ lui $a3,0x3f34 /* f0c0c68: 13000005 */ beqz $t8,.L0f0c0c80 /* f0c0c6c: 24190001 */ addiu $t9,$zero,0x1 -/* f0c0c70: 0fc2ecc8 */ jal func0f0bb320 +/* f0c0c70: 0fc2ecc8 */ jal currentPlayerSetFadeColour /* f0c0c74: 34e7b4b5 */ ori $a3,$a3,0xb4b5 /* f0c0c78: 10000003 */ beqz $zero,.L0f0c0c88 /* f0c0c7c: 8e030284 */ lw $v1,0x284($s0) @@ -16230,7 +16234,7 @@ glabel func0f0c07c8 /* f0c0ce4: ac6f0330 */ sw $t7,0x330($v1) /* f0c0ce8: 00003025 */ or $a2,$zero,$zero /* f0c0cec: 00003825 */ or $a3,$zero,$zero -/* f0c0cf0: 0fc2ecd4 */ jal func0f0bb350 +/* f0c0cf0: 0fc2ecd4 */ jal currentPlayerAdjustFade /* f0c0cf4: e7aa0010 */ swc1 $f10,0x10($sp) /* f0c0cf8: 3c0142f0 */ lui $at,0x42f0 /* f0c0cfc: 44816000 */ mtc1 $at,$f12 @@ -16238,7 +16242,7 @@ glabel func0f0c07c8 /* f0c0d04: 0fc2ed5f */ jal func0f0bb57c /* f0c0d08: 00000000 */ sll $zero,$zero,0x0 .L0f0c0d0c: -/* f0c0d0c: 0fc2ecff */ jal func0f0bb3fc +/* f0c0d0c: 0fc2ecff */ jal currentPlayerIsFadeComplete /* f0c0d10: 00000000 */ sll $zero,$zero,0x0 /* f0c0d14: 50400111 */ beqzl $v0,.L0f0c115c /* f0c0d18: 8e0e0284 */ lw $t6,0x284($s0) diff --git a/src/include/commands.h b/src/include/commands.h index 896032cf6..dc0d26424 100644 --- a/src/include/commands.h +++ b/src/include/commands.h @@ -1994,7 +1994,10 @@ mkshort(0x00e4), \ u1, -#define cmd00e5(chr, label) \ +/** + * Checks if the screen fade is complete. Follows the label if complete. + */ +#define if_fade_complete(chr, label) \ mkshort(0x00e5), \ chr, \ label, diff --git a/src/include/game/chr/chraicommands.h b/src/include/game/chr/chraicommands.h index dfd888d50..75da3f9e9 100644 --- a/src/include/game/chr/chraicommands.h +++ b/src/include/game/chr/chraicommands.h @@ -231,7 +231,7 @@ /*0x00e2*/ bool ai00e2(void); /*0x00e3*/ bool ai00e3(void); /*0x00e4*/ bool ai00e4(void); -/*0x00e5*/ bool ai00e5(void); +/*0x00e5*/ bool aiIfFadeComplete(void); /*0x00e8*/ bool aiSetDoorOpen(void); /*0x00e9*/ bool ai00e9(void); /*0x00ea*/ bool aiIfNumPlayersLessThan(void); diff --git a/src/include/game/game_0b28d0.h b/src/include/game/game_0b28d0.h index 77ac3a33d..13a5438d8 100644 --- a/src/include/game/game_0b28d0.h +++ b/src/include/game/game_0b28d0.h @@ -105,10 +105,10 @@ u32 func0f0baf38(void); u32 func0f0baf84(void); u32 func0f0bb04c(void); u32 func0f0bb2e8(void); -void func0f0bb320(s32 arg0, s32 arg1, s32 arg2, f32 arg3); -void func0f0bb350(f32 arg0, s32 arg1, s32 arg2, s32 arg3, f32 arg4); -void func0f0bb3c8(f32 arg0, f32 arg1); -bool func0f0bb3fc(void); +void currentPlayerSetFadeColour(s32 r, s32 g, s32 b, f32 a); +void currentPlayerAdjustFade(f32 maxfadetime, s32 r, s32 g, s32 b, f32 frac); +void currentPlayerSetFadeFrac(f32 maxfadetime, f32 frac); +bool currentPlayerIsFadeComplete(void); u32 func0f0bb42c(void); void func0f0bb57c(f32 arg0, f32 arg1); u32 func0f0bb5ec(void); diff --git a/src/include/types.h b/src/include/types.h index a8e31fce6..3f71d6953 100644 --- a/src/include/types.h +++ b/src/include/types.h @@ -1129,20 +1129,20 @@ struct player { /*0x02cc*/ u32 unk02cc; /*0x02d0*/ u32 unk02d0; /*0x02d4*/ u32 unk02d4; - /*0x02d8*/ u32 unk02d8; - /*0x02dc*/ u32 unk02dc; - /*0x02e0*/ u32 unk02e0; - /*0x02e4*/ f32 unk02e4; - /*0x02e8*/ f32 unk02e8; - /*0x02ec*/ f32 unk02ec; - /*0x02f0*/ u32 unk02f0; - /*0x02f4*/ u32 unk02f4; - /*0x02f8*/ u32 unk02f8; - /*0x02fc*/ u32 unk02fc; - /*0x0300*/ u32 unk0300; - /*0x0304*/ u32 unk0304; - /*0x0308*/ f32 unk0308; - /*0x030c*/ f32 unk030c; + /*0x02d8*/ u32 colourscreenred; + /*0x02dc*/ u32 colourscreengreen; + /*0x02e0*/ u32 colourscreenblue; + /*0x02e4*/ f32 colourscreenfrac; + /*0x02e8*/ f32 colourfadetime60; + /*0x02ec*/ f32 colourfadetimemax60; + /*0x02f0*/ u32 colourfaderedold; + /*0x02f4*/ u32 colourfaderednew; + /*0x02f8*/ u32 colourfadegreenold; + /*0x02fc*/ u32 colourfadegreennew; + /*0x0300*/ u32 colourfadeblueold; + /*0x0304*/ u32 colourfadebluenew; + /*0x0308*/ f32 colourfadefracold; + /*0x030c*/ f32 colourfadefracnew; /*0x0310*/ u32 unk0310; /*0x0314*/ u32 unk0314; /*0x0318*/ u32 unk0318; diff --git a/src/setup/setup_000000.c b/src/setup/setup_000000.c index b4d6a66af..9b5fcbb77 100644 --- a/src/setup/setup_000000.c +++ b/src/setup/setup_000000.c @@ -14363,7 +14363,7 @@ bool (*g_CommandPointers[])(void) = { /*0x00e2*/ ai00e2, /*0x00e3*/ ai00e3, /*0x00e4*/ ai00e4, - /*0x00e5*/ ai00e5, + /*0x00e5*/ aiIfFadeComplete, /*0x00e6*/ NULL, /*0x00e7*/ NULL, /*0x00e8*/ aiSetDoorOpen,