diff --git a/src/game/credits.c b/src/game/credits.c index 5ebd1405f..13a632db1 100644 --- a/src/game/credits.c +++ b/src/game/credits.c @@ -1601,7 +1601,7 @@ glabel var7f1b5800 ); GLOBAL_ASM( -glabel func0f13838c +glabel creditsRandomiseBackground .late_rodata glabel var7f1b5804 .word 0x3b122531 @@ -1686,6 +1686,26 @@ glabel var7f1b5804 /* f1384b0: 27bd0040 */ addiu $sp,$sp,0x40 ); +// Mismatch: regalloc +//void creditsRandomiseBackground(u32 arg0) +//{ +// s32 i; +// +// for (i = 0; i < 2; i++) { +// s32 tmp = i * 8; +// +// if (g_CreditsData->unk41b0[i] == 0) { +// g_CreditsData->unk41b4[i + 2].type = random() % 12; +// g_CreditsData->unk41b4[i + 2].rotatespeed = func0f1382e0(0.00223f); +// g_CreditsData->unk41b4[i + 2].unk08 = func0f1382e0(0.00223f); +// +// if ((arg0 >> tmp) & 2) { +// g_CreditsData->unk41b4[i + 2].unk0c = random() % 6; +// } +// } +// } +//} + GLOBAL_ASM( glabel func0f1384b4 /* f1384b4: 27bdffd0 */ addiu $sp,$sp,-48 @@ -3871,7 +3891,7 @@ glabel var7f1b5874 .L0f13a3b4: /* f13a3b4: 1615ffe6 */ bne $s0,$s5,.L0f13a350 /* f13a3b8: 00000000 */ nop -/* f13a3bc: 0fc4e0e3 */ jal func0f13838c +/* f13a3bc: 0fc4e0e3 */ jal creditsRandomiseBackground /* f13a3c0: 2404ffff */ addiu $a0,$zero,-1 /* f13a3c4: 8fbf0034 */ lw $ra,0x34($sp) .L0f13a3c8: @@ -4698,21 +4718,21 @@ void creditsTick(void) static u32 var8007f6d8 = 0xffff; if (contGetButtonsPressedThisFrame(0, L_TRIG)) { - func0f13838c(-1); + creditsRandomiseBackground(0xffffffff); } func0000db30("for", &var8007f6d8); if (var8007f6d8 < 0xffff) { for (i = 0; i < 4; i++) { - g_CreditsData->unk41b4[i].unk00 = var8007f6d8; + g_CreditsData->unk41b4[i].type = var8007f6d8; } } func0000db30("flick", &var8007f6d4); if (var8007f6d4 != 0) { - func0f13838c(-1); + creditsRandomiseBackground(0xffffffff); var8007f6d4 = 0; } @@ -4736,7 +4756,7 @@ void creditsTick(void) if (g_CreditsData->unk41f4) { func0f13a164(); } else if (random() * (1.0f / U32_MAX) < 0.01f && !contGetButtons(0, L_TRIG | R_TRIG)) { - func0f13838c(-1); + creditsRandomiseBackground(0xffffffff); } if (g_CreditsData->unk41f4 == 0 && g_CreditsData->unk4204 < 1360) { @@ -5179,10 +5199,10 @@ void creditsInit(void) g_CreditsData = malloc(sizeof(struct creditsdata), MEMPOOL_STAGE); g_CreditsData->unk2eec = 0; - g_CreditsData->unk41b0 = 0; - g_CreditsData->unk41b1 = 0; + g_CreditsData->unk41b0[0] = 0; + g_CreditsData->unk41b0[1] = 0; - func0f13838c(-1); + creditsRandomiseBackground(0xffffffff); func0f137ea8(2, 0, 1); func0f137ea8(3, 1, 1); diff --git a/src/include/game/credits.h b/src/include/game/credits.h index 37ace40f5..cdb4cd56c 100644 --- a/src/include/game/credits.h +++ b/src/include/game/credits.h @@ -9,8 +9,8 @@ u32 func0f137874(void); u32 func0f137b4c(void); void func0f137ea8(s32 arg0, s32 arg1, s32 arg2); Gfx *creditsRenderBackground(Gfx *gdl); -u32 func0f1382e0(void); -void func0f13838c(s32 arg0); +f32 func0f1382e0(f32 arg0); +void creditsRandomiseBackground(u32 arg0); Gfx *func0f1384b4(Gfx *gdl, u32 arg1); u32 func0f13870c(void); void func0f13899c(void); @@ -29,9 +29,9 @@ void creditsInit(void); void func0f13b660(void); struct credits41b4 { - u32 unk00; - u32 unk04; - u32 unk08; + u32 type; + f32 rotatespeed; + f32 unk08; u32 unk0c; }; @@ -4244,8 +4244,7 @@ struct creditsdata { /*0x41a4*/ u32 unk41a4; /*0x41a8*/ u32 unk41a8; /*0x41ac*/ u32 unk41ac; - /*0x41b0*/ u8 unk41b0; - /*0x41b1*/ u8 unk41b1; + /*0x41b0*/ s8 unk41b0[2]; /*0x41b4*/ struct credits41b4 unk41b4[4]; /*0x41f4*/ u8 unk41f4; /*0x41f8*/ u32 unk41f8;