mirror of
https://github.com/n64decomp/mk64
synced 2026-08-16 20:47:42 -04:00
Match a couple functions and migrate assets related to HUD Type C (#328)
Signed-off-by: Taggerung <tyler.taggerung@email.com>
This commit is contained in:
@@ -242,7 +242,11 @@ extern s8 D_0D016A58[];
|
||||
extern s8 D_0D017258[];
|
||||
extern s16 tlutPad[];
|
||||
extern s8 D_0D017458[];
|
||||
extern s8 D_0D01A2D8[];
|
||||
extern u8 gTLUTHudTypeCRankFont[];
|
||||
extern u8 gTextureHudTypeCRankFont[][256];
|
||||
extern u8 gTLUTHudTypeCRankTinyFont[];
|
||||
extern u8 gTextureHudTypeCRankTinyFont[][64];
|
||||
extern u8 gTextureCharacterPortraitBorder[];
|
||||
extern s8 gTLUTPortraitMario[];
|
||||
extern s8 gTLUTPortraitLuigi[];
|
||||
extern s8 gTLUTPortraitPeach[];
|
||||
@@ -259,9 +263,9 @@ extern s8 gTexturePortraitToad[];
|
||||
extern s8 gTexturePortraitYoshi[];
|
||||
extern s8 gTexturePortraitDonkeyKong[];
|
||||
extern s8 gTexturePortraitWario[];
|
||||
extern s8 gTexturePortraitBowser[];
|
||||
extern s8 gTexturePortraitBombKartAndQuestionMark[];
|
||||
extern s8 gTexturePortraitQuestionMark[];
|
||||
extern u8 gTexturePortraitBowser[];
|
||||
extern u8 gTexturePortraitBombKart[];
|
||||
extern u8 gTexturePortraitQuestionMark[];
|
||||
extern s8 gTLUTItemWindowNone[];
|
||||
extern s8 gTLUTItemWindowBanana[];
|
||||
extern s8 gTLUTItemWindowBananaBunch[];
|
||||
|
||||
+64
-14
@@ -2557,30 +2557,80 @@ u8 D_0D017458[] = {
|
||||
};
|
||||
|
||||
// font tlut for 12345678
|
||||
s8 D_0D019458[] = {
|
||||
#include "textures/common/tlut/132B50_19658.rgba16.ci8.tlut.inc.c"
|
||||
u8 gTLUTHudTypeCRankFont[] = {
|
||||
#include "assets/hud_type_c/gTLUTHudTypeCRankFont.inc.c"
|
||||
};
|
||||
|
||||
// font 12345678
|
||||
s8 D_0D019658[] = {
|
||||
#include "textures/common/tlut/132B50_19658.rgba16.ci8.inc.c"
|
||||
u8 gTextureHudTypeCRankFont[][256] = {
|
||||
{
|
||||
#include "assets/hud_type_c/gTextureHudTypeCRankFont1.inc.c"
|
||||
},
|
||||
{
|
||||
#include "assets/hud_type_c/gTextureHudTypeCRankFont2.inc.c"
|
||||
},
|
||||
{
|
||||
#include "assets/hud_type_c/gTextureHudTypeCRankFont3.inc.c"
|
||||
},
|
||||
{
|
||||
#include "assets/hud_type_c/gTextureHudTypeCRankFont4.inc.c"
|
||||
},
|
||||
{
|
||||
#include "assets/hud_type_c/gTextureHudTypeCRankFont5.inc.c"
|
||||
},
|
||||
{
|
||||
#include "assets/hud_type_c/gTextureHudTypeCRankFont6.inc.c"
|
||||
},
|
||||
{
|
||||
#include "assets/hud_type_c/gTextureHudTypeCRankFont7.inc.c"
|
||||
},
|
||||
{
|
||||
#include "assets/hud_type_c/gTextureHudTypeCRankFont8.inc.c"
|
||||
},
|
||||
};
|
||||
|
||||
// font tlut for 0123456789
|
||||
s8 D_0D019E58[] = {
|
||||
#include "textures/common/tlut/132B50_1A058.rgba16.ci8.tlut.inc.c"
|
||||
u8 gTLUTHudTypeCRankTinyFont[] = {
|
||||
#include "assets/hud_type_c/gTLUTHudTypeCRankTinyFont.inc.c"
|
||||
};
|
||||
|
||||
// 0123456789
|
||||
s8 D_0D01A058[] = {
|
||||
#include "textures/common/tlut/132B50_1A058.rgba16.ci8.inc.c"
|
||||
u8 gTextureHudTypeCRankTinyFont[][64] = {
|
||||
{
|
||||
#include "assets/hud_type_c/gTextureHudTypeCRankTinyFont0.inc.c"
|
||||
},
|
||||
{
|
||||
#include "assets/hud_type_c/gTextureHudTypeCRankTinyFont1.inc.c"
|
||||
},
|
||||
{
|
||||
#include "assets/hud_type_c/gTextureHudTypeCRankTinyFont2.inc.c"
|
||||
},
|
||||
{
|
||||
#include "assets/hud_type_c/gTextureHudTypeCRankTinyFont3.inc.c"
|
||||
},
|
||||
{
|
||||
#include "assets/hud_type_c/gTextureHudTypeCRankTinyFont4.inc.c"
|
||||
},
|
||||
{
|
||||
#include "assets/hud_type_c/gTextureHudTypeCRankTinyFont5.inc.c"
|
||||
},
|
||||
{
|
||||
#include "assets/hud_type_c/gTextureHudTypeCRankTinyFont6.inc.c"
|
||||
},
|
||||
{
|
||||
#include "assets/hud_type_c/gTextureHudTypeCRankTinyFont7.inc.c"
|
||||
},
|
||||
{
|
||||
#include "assets/hud_type_c/gTextureHudTypeCRankTinyFont8.inc.c"
|
||||
},
|
||||
{
|
||||
#include "assets/hud_type_c/gTextureHudTypeCRankTinyFont9.inc.c"
|
||||
},
|
||||
};
|
||||
|
||||
// some padding or file split?
|
||||
|
||||
// Square
|
||||
s8 D_0D01A2D8[] = {
|
||||
#include "textures/common/132B50_1A2D8.ia4.inc.c"
|
||||
u8 gTextureCharacterPortraitBorder[] = {
|
||||
#include "assets/hud_type_c/gTextureCharacterPortraitBorder.inc.c"
|
||||
};
|
||||
|
||||
// 1A4D8 mario tlut
|
||||
@@ -2670,12 +2720,12 @@ s8 gTexturePortraitBowser[] = {
|
||||
};
|
||||
|
||||
// Mini Bomb Kart
|
||||
s8 gTexturePortraitBombKart[] = {
|
||||
u8 gTexturePortraitBombKart[] = {
|
||||
#include "assets/character_portraits/gTexturePortraitBombKart.inc.c"
|
||||
};
|
||||
|
||||
// Question Mark
|
||||
s8 gTexturePortraitQuestionMark[] = {
|
||||
u8 gTexturePortraitQuestionMark[] = {
|
||||
#include "assets/character_portraits/gTexturePortraitQuestionMark.inc.c"
|
||||
};
|
||||
|
||||
|
||||
+78
-403
@@ -3078,218 +3078,45 @@ void func_8004FC78(s16 arg0, s16 arg1, s8 arg2) {
|
||||
gSPDisplayList(gDisplayListHead++, D_0D007EB8);
|
||||
}
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by m2c commit b7eac665cffd02361f73cec283ef16d0a35a0e5b
|
||||
? func_80044924(s8 *, ?, ?); /* extern */
|
||||
extern ? D_0D019458;
|
||||
extern ? D_0D019658;
|
||||
extern s32 D_8018D3E0;
|
||||
extern s32 D_8018D3E4;
|
||||
extern s32 D_8018D3E8;
|
||||
extern s32 D_8018D3EC;
|
||||
static u32 gPortraitTLUTs[8] = {
|
||||
(u32) gTLUTPortraitMario,
|
||||
(u32) gTLUTPortraitLuigi,
|
||||
(u32) gTLUTPortraitYoshi,
|
||||
(u32) gTLUTPortraitToad,
|
||||
(u32) gTLUTPortraitDonkeyKong,
|
||||
(u32) gTLUTPortraitWario,
|
||||
(u32) gTLUTPortraitPeach,
|
||||
(u32) gTLUTPortraitBowser,
|
||||
};
|
||||
static s8 *gPortraitTextures[9] = {
|
||||
gTexturePortraitMario,
|
||||
gTexturePortraitLuigi,
|
||||
gTexturePortraitYoshi,
|
||||
gTexturePortraitToad,
|
||||
gTexturePortraitDonkeyKong,
|
||||
gTexturePortraitWario,
|
||||
gTexturePortraitPeach,
|
||||
gTexturePortraitBowser,
|
||||
NULL,
|
||||
};
|
||||
s16 gCurrentCourseId; /* unable to generate initializer */
|
||||
|
||||
void func_8004FDB4(f32 arg0, f32 arg1, s16 arg2, s16 arg3, s16 arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8) {
|
||||
s32 sp34;
|
||||
s32 sp30;
|
||||
Gfx *sp2C;
|
||||
Gfx *sp28;
|
||||
Gfx *temp_s0;
|
||||
Gfx *temp_s0_10;
|
||||
Gfx *temp_s0_11;
|
||||
Gfx *temp_s0_12;
|
||||
Gfx *temp_s0_13;
|
||||
Gfx *temp_s0_14;
|
||||
Gfx *temp_s0_15;
|
||||
Gfx *temp_s0_16;
|
||||
Gfx *temp_s0_17;
|
||||
Gfx *temp_s0_18;
|
||||
Gfx *temp_s0_19;
|
||||
Gfx *temp_s0_20;
|
||||
Gfx *temp_s0_21;
|
||||
Gfx *temp_s0_22;
|
||||
Gfx *temp_s0_23;
|
||||
Gfx *temp_s0_24;
|
||||
Gfx *temp_s0_25;
|
||||
Gfx *temp_s0_26;
|
||||
Gfx *temp_s0_27;
|
||||
Gfx *temp_s0_28;
|
||||
Gfx *temp_s0_2;
|
||||
Gfx *temp_s0_3;
|
||||
Gfx *temp_s0_4;
|
||||
Gfx *temp_s0_5;
|
||||
Gfx *temp_s0_6;
|
||||
Gfx *temp_s0_7;
|
||||
Gfx *temp_s0_8;
|
||||
Gfx *temp_s0_9;
|
||||
s32 temp_f10;
|
||||
s32 temp_f8;
|
||||
|
||||
if ((gCurrentCourseId == 4) && (arg3 < 3) && (arg8 == 0)) {
|
||||
if ((gCurrentCourseId == COURSE_YOSHI_VALLEY) && (arg3 < 3) && (arg8 == 0)) {
|
||||
func_80042330((s32) arg0, (s32) arg1, 0U, 1.0f);
|
||||
temp_s0 = gDisplayListHead;
|
||||
gDisplayListHead = temp_s0 + 8;
|
||||
temp_s0->words.w1 = (u32) D_0D007DB8;
|
||||
temp_s0->words.w0 = 0x06000000;
|
||||
gSPDisplayList(gDisplayListHead++, D_0D007DB8);
|
||||
func_8004B35C(0x000000FF, 0x000000FF, 0x000000FF, D_8018D3E0);
|
||||
temp_s0_2 = gDisplayListHead;
|
||||
gDisplayListHead = temp_s0_2 + 8;
|
||||
temp_s0_2->words.w0 = 0xFD100000;
|
||||
temp_s0_2->words.w1 = (u32) gTLUTPortraitBombKartAndQuestionMark;
|
||||
temp_s0_3 = gDisplayListHead;
|
||||
gDisplayListHead = temp_s0_3 + 8;
|
||||
temp_s0_3->words.w1 = 0;
|
||||
temp_s0_3->words.w0 = 0xE8000000;
|
||||
temp_s0_4 = gDisplayListHead;
|
||||
gDisplayListHead = temp_s0_4 + 8;
|
||||
temp_s0_4->words.w1 = 0x07000000;
|
||||
temp_s0_4->words.w0 = 0xF5000100;
|
||||
temp_s0_5 = gDisplayListHead;
|
||||
gDisplayListHead = temp_s0_5 + 8;
|
||||
temp_s0_5->words.w1 = 0;
|
||||
temp_s0_5->words.w0 = 0xE6000000;
|
||||
temp_s0_6 = gDisplayListHead;
|
||||
gDisplayListHead = temp_s0_6 + 8;
|
||||
temp_s0_6->words.w1 = 0x073FC000;
|
||||
temp_s0_6->words.w0 = 0xF0000000;
|
||||
temp_s0_7 = gDisplayListHead;
|
||||
gDisplayListHead = temp_s0_7 + 8;
|
||||
temp_s0_7->words.w1 = 0;
|
||||
temp_s0_7->words.w0 = 0xE7000000;
|
||||
gDPLoadTLUT_pal256(gDisplayListHead++, gTLUTPortraitBombKartAndQuestionMark);
|
||||
func_800452A4(gTexturePortraitQuestionMark, 0x00000020, 0x00000020);
|
||||
temp_s0_8 = gDisplayListHead;
|
||||
gDisplayListHead = temp_s0_8 + 8;
|
||||
temp_s0_8->words.w1 = (u32) D_0D0069E0;
|
||||
gSPDisplayList(gDisplayListHead++, D_0D0069E0);
|
||||
} else {
|
||||
temp_f8 = (s32) arg0;
|
||||
temp_f10 = (s32) arg1;
|
||||
sp34 = temp_f8;
|
||||
sp30 = temp_f10;
|
||||
func_80042330(temp_f8, temp_f10, 0U, 1.0f);
|
||||
temp_s0_9 = gDisplayListHead;
|
||||
gDisplayListHead = temp_s0_9 + 8;
|
||||
temp_s0_9->words.w1 = (u32) D_0D007DB8;
|
||||
temp_s0_9->words.w0 = 0x06000000;
|
||||
sp2C = D_0D007DB8;
|
||||
func_80042330(arg0, arg1, 0U, 1.0f);
|
||||
gSPDisplayList(gDisplayListHead++, D_0D007DB8);
|
||||
func_8004B35C(0x000000FF, 0x000000FF, 0x000000FF, arg5);
|
||||
temp_s0_10 = gDisplayListHead;
|
||||
gDisplayListHead = temp_s0_10 + 8;
|
||||
temp_s0_10->words.w0 = 0xFD100000;
|
||||
temp_s0_10->words.w1 = gPortraitTLUTs[arg4];
|
||||
temp_s0_11 = gDisplayListHead;
|
||||
gDisplayListHead = temp_s0_11 + 8;
|
||||
temp_s0_11->words.w1 = 0;
|
||||
temp_s0_11->words.w0 = 0xE8000000;
|
||||
temp_s0_12 = gDisplayListHead;
|
||||
gDisplayListHead = temp_s0_12 + 8;
|
||||
temp_s0_12->words.w1 = 0x07000000;
|
||||
temp_s0_12->words.w0 = 0xF5000100;
|
||||
temp_s0_13 = gDisplayListHead;
|
||||
gDisplayListHead = temp_s0_13 + 8;
|
||||
temp_s0_13->words.w1 = 0;
|
||||
temp_s0_13->words.w0 = 0xE6000000;
|
||||
temp_s0_14 = gDisplayListHead;
|
||||
gDisplayListHead = temp_s0_14 + 8;
|
||||
temp_s0_14->words.w1 = 0x073FC000;
|
||||
temp_s0_14->words.w0 = 0xF0000000;
|
||||
temp_s0_15 = gDisplayListHead;
|
||||
gDisplayListHead = temp_s0_15 + 8;
|
||||
temp_s0_15->words.w1 = 0;
|
||||
temp_s0_15->words.w0 = 0xE7000000;
|
||||
gDPLoadTLUT_pal256(gDisplayListHead++, gPortraitTLUTs[arg4]);
|
||||
func_800452A4(gPortraitTextures[arg4], 0x00000020, 0x00000020);
|
||||
if (arg7 != 0) {
|
||||
temp_s0_16 = gDisplayListHead;
|
||||
gDisplayListHead = temp_s0_16 + 8;
|
||||
temp_s0_16->words.w1 = (u32) D_0D0069F8;
|
||||
gSPDisplayList(gDisplayListHead++, D_0D0069F8);
|
||||
} else {
|
||||
temp_s0_17 = gDisplayListHead;
|
||||
gDisplayListHead = temp_s0_17 + 8;
|
||||
temp_s0_17->words.w1 = (u32) D_0D0069E0;
|
||||
gSPDisplayList(gDisplayListHead++, D_0D0069E0);
|
||||
}
|
||||
gDisplayListHead->words.w0 = 0x06000000;
|
||||
if (arg6 != 0) {
|
||||
sp28 = D_0D0069E0;
|
||||
func_80042330(sp34, sp30, 0U, 1.0f);
|
||||
temp_s0_18 = gDisplayListHead;
|
||||
gDisplayListHead = temp_s0_18 + 8;
|
||||
temp_s0_18->words.w1 = (u32) D_0D007A60;
|
||||
temp_s0_18->words.w0 = 0x06000000;
|
||||
func_80042330(arg0, arg1, 0U, 1.0f);
|
||||
gSPDisplayList(gDisplayListHead++, D_0D007A60);
|
||||
func_8004B35C(D_8018D3E4, D_8018D3E8, D_8018D3EC, 0x000000FF);
|
||||
func_80044924(D_0D01A2D8, 0x20, 0x20);
|
||||
temp_s0_19 = gDisplayListHead;
|
||||
gDisplayListHead = temp_s0_19 + 8;
|
||||
temp_s0_19->words.w0 = 0x06000000;
|
||||
temp_s0_19->words.w1 = (u32) sp28;
|
||||
func_80044924(gTextureCharacterPortraitBorder, 0x20, 0x20);
|
||||
gSPDisplayList(gDisplayListHead++, D_0D0069E0);
|
||||
}
|
||||
temp_s0_20 = gDisplayListHead;
|
||||
gDisplayListHead = temp_s0_20 + 8;
|
||||
temp_s0_20->words.w0 = 0x06000000;
|
||||
temp_s0_20->words.w1 = (u32) sp2C;
|
||||
gSPDisplayList(gDisplayListHead++, D_0D007DB8);
|
||||
func_8004B35C(0x000000FF, 0x000000FF, 0x000000FF, arg5);
|
||||
temp_s0_21 = gDisplayListHead;
|
||||
gDisplayListHead = temp_s0_21 + 8;
|
||||
temp_s0_21->words.w1 = (u32) D_0D007CB8;
|
||||
temp_s0_21->words.w0 = 0x06000000;
|
||||
temp_s0_22 = gDisplayListHead;
|
||||
gDisplayListHead = temp_s0_22 + 8;
|
||||
temp_s0_22->words.w0 = 0xFD100000;
|
||||
temp_s0_22->words.w1 = (u32) &D_0D019458;
|
||||
temp_s0_23 = gDisplayListHead;
|
||||
gDisplayListHead = temp_s0_23 + 8;
|
||||
temp_s0_23->words.w1 = 0;
|
||||
temp_s0_23->words.w0 = 0xE8000000;
|
||||
temp_s0_24 = gDisplayListHead;
|
||||
gDisplayListHead = temp_s0_24 + 8;
|
||||
temp_s0_24->words.w1 = 0x07000000;
|
||||
temp_s0_24->words.w0 = 0xF5000100;
|
||||
temp_s0_25 = gDisplayListHead;
|
||||
gDisplayListHead = temp_s0_25 + 8;
|
||||
temp_s0_25->words.w1 = 0;
|
||||
temp_s0_25->words.w0 = 0xE6000000;
|
||||
temp_s0_26 = gDisplayListHead;
|
||||
gDisplayListHead = temp_s0_26 + 8;
|
||||
temp_s0_26->words.w1 = 0x073FC000;
|
||||
temp_s0_26->words.w0 = 0xF0000000;
|
||||
temp_s0_27 = gDisplayListHead;
|
||||
gDisplayListHead = temp_s0_27 + 8;
|
||||
temp_s0_27->words.w1 = 0;
|
||||
temp_s0_27->words.w0 = 0xE7000000;
|
||||
func_800452A4((arg2 << 8) + &D_0D019658, 0x00000010, 0x00000010);
|
||||
gSPDisplayList(gDisplayListHead++, D_0D007CB8);
|
||||
gDPLoadTLUT_pal256(gDisplayListHead++, gTLUTHudTypeCRankFont);
|
||||
func_800452A4(gTextureHudTypeCRankFont[arg2], 0x00000010, 0x00000010);
|
||||
if (arg7 != 0) {
|
||||
func_80042330((s32) (arg0 + 9.0f), (s32) (arg1 + 7.0f), 0U, 1.0f);
|
||||
} else {
|
||||
func_80042330((s32) (arg0 - 9.0f), (s32) (arg1 + 7.0f), 0U, 1.0f);
|
||||
}
|
||||
temp_s0_28 = gDisplayListHead;
|
||||
gDisplayListHead = temp_s0_28 + 8;
|
||||
temp_s0_28->words.w1 = (u32) D_0D006980;
|
||||
gSPDisplayList(gDisplayListHead++, D_0D006980);
|
||||
}
|
||||
gDisplayListHead->words.w0 = 0x06000000;
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/hud_renderer/func_8004FDB4.s")
|
||||
#endif
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by m2c commit b7eac665cffd02361f73cec283ef16d0a35a0e5b
|
||||
@@ -3632,238 +3459,86 @@ void func_80050C68(void) {
|
||||
GLOBAL_ASM("asm/non_matchings/hud_renderer/func_80050C68.s")
|
||||
#endif
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by m2c commit b7eac665cffd02361f73cec283ef16d0a35a0e5b
|
||||
? func_80044924(s8 *, ?, ?); /* extern */
|
||||
s32 func_80050644(s32, s32 *, s32 *, s32); /* extern */
|
||||
extern ? D_0D019E58;
|
||||
extern ? D_0D01A058;
|
||||
extern u16 D_801656C0;
|
||||
extern u16 D_801656D0;
|
||||
extern u16 D_801656E0;
|
||||
extern ? D_8018CE24;
|
||||
extern s32 D_8018D3E4;
|
||||
extern s32 D_8018D3E8;
|
||||
extern s32 D_8018D3EC;
|
||||
static u32 gPortraitTLUTs[8] = {
|
||||
(u32) gTLUTPortraitMario,
|
||||
(u32) gTLUTPortraitLuigi,
|
||||
(u32) gTLUTPortraitYoshi,
|
||||
(u32) gTLUTPortraitToad,
|
||||
(u32) gTLUTPortraitDonkeyKong,
|
||||
(u32) gTLUTPortraitWario,
|
||||
(u32) gTLUTPortraitPeach,
|
||||
(u32) gTLUTPortraitBowser,
|
||||
};
|
||||
static ? gPortraitTextures; /* unable to generate initializer */
|
||||
s16 gCurrentCourseId; /* unable to generate initializer */
|
||||
#ifdef NON_MATCHING
|
||||
extern struct_D_8018CE10 D_8018CE10[];
|
||||
|
||||
// Something about the handling of the `player` variable is weird.
|
||||
// All commands are preset and correct, 2 of them are out of position
|
||||
void func_80050E34(s32 playerId, s32 arg1) {
|
||||
s32 spD4;
|
||||
s32 objectIndex;
|
||||
s32 spD0;
|
||||
s32 spCC;
|
||||
s32 stackPadding;
|
||||
s32 spC4;
|
||||
s32 lapCount;
|
||||
s32 characterId;
|
||||
s32 spB8;
|
||||
Player *spAC;
|
||||
s32 sp3C; /* compiler-managed */
|
||||
s16 *sp38;
|
||||
Gfx *sp34;
|
||||
Gfx *temp_v0_10;
|
||||
Gfx *temp_v0_11;
|
||||
Gfx *temp_v0_12;
|
||||
Gfx *temp_v0_13;
|
||||
Gfx *temp_v0_14;
|
||||
Gfx *temp_v0_15;
|
||||
Gfx *temp_v0_16;
|
||||
Gfx *temp_v0_17;
|
||||
Gfx *temp_v0_18;
|
||||
Gfx *temp_v0_19;
|
||||
Gfx *temp_v0_20;
|
||||
Gfx *temp_v0_21;
|
||||
Gfx *temp_v0_22;
|
||||
Gfx *temp_v0_23;
|
||||
Gfx *temp_v0_24;
|
||||
Gfx *temp_v0_25;
|
||||
Gfx *temp_v0_26;
|
||||
Gfx *temp_v0_27;
|
||||
Gfx *temp_v0_28;
|
||||
Gfx *temp_v0_3;
|
||||
Gfx *temp_v0_4;
|
||||
Gfx *temp_v0_5;
|
||||
Gfx *temp_v0_6;
|
||||
Gfx *temp_v0_7;
|
||||
Gfx *temp_v0_8;
|
||||
Gfx *temp_v0_9;
|
||||
Player *temp_v0;
|
||||
f32 *temp_a0;
|
||||
s16 *temp_a1;
|
||||
s32 temp_s0;
|
||||
s32 temp_t2;
|
||||
s32 temp_v0_2;
|
||||
struct_80165C18_entry *temp_s1_2;
|
||||
u16 temp_s1;
|
||||
struct_80165C18_entry *object;
|
||||
Player *player;
|
||||
|
||||
player = &gPlayerOne[playerId];
|
||||
lapCount = gLapCountByPlayerId[playerId];
|
||||
characterId = player->characterId;
|
||||
objectIndex = D_8018CE10[playerId].objectIndex;
|
||||
|
||||
temp_v0 = &gPlayerOne[playerId];
|
||||
spAC = temp_v0;
|
||||
temp_s0 = gLapCountByPlayerId[playerId];
|
||||
temp_s1 = temp_v0->characterId;
|
||||
if (gPlayerCountSelection1 == 1) {
|
||||
spC4 = 0x00000012;
|
||||
} else {
|
||||
spC4 = 0x00000078;
|
||||
}
|
||||
spD4 = *(&D_8018CE24 + (playerId << 5));
|
||||
temp_v0_2 = func_80050644(playerId & 0xFFFF, &spD0, &spCC, playerId);
|
||||
|
||||
temp_v0_2 = func_80050644(playerId, &spD0, &spCC);
|
||||
if ((temp_v0_2 == 2) || (temp_v0_2 == 3)) {
|
||||
spB8 = 1;
|
||||
} else {
|
||||
spB8 = 0;
|
||||
}
|
||||
temp_t2 = temp_s1 * 4;
|
||||
if ((gCurrentCourseId == 4) && (temp_s0 < 3)) {
|
||||
temp_v0_3 = gDisplayListHead;
|
||||
gDisplayListHead = temp_v0_3 + 8;
|
||||
temp_v0_3->words.w0 = 0x06000000;
|
||||
temp_v0_3->words.w1 = (u32) D_0D007DB8;
|
||||
temp_v0_4 = gDisplayListHead;
|
||||
gDisplayListHead = temp_v0_4 + 8;
|
||||
temp_v0_4->words.w0 = 0xFD100000;
|
||||
temp_v0_4->words.w1 = (u32) gTLUTPortraitBombKartAndQuestionMark;
|
||||
temp_v0_5 = gDisplayListHead;
|
||||
gDisplayListHead = temp_v0_5 + 8;
|
||||
temp_v0_5->words.w1 = 0;
|
||||
temp_v0_5->words.w0 = 0xE8000000;
|
||||
temp_v0_6 = gDisplayListHead;
|
||||
gDisplayListHead = temp_v0_6 + 8;
|
||||
temp_v0_6->words.w1 = 0x07000000;
|
||||
temp_v0_6->words.w0 = 0xF5000100;
|
||||
temp_v0_7 = gDisplayListHead;
|
||||
gDisplayListHead = temp_v0_7 + 8;
|
||||
temp_v0_7->words.w1 = 0;
|
||||
temp_v0_7->words.w0 = 0xE6000000;
|
||||
temp_v0_8 = gDisplayListHead;
|
||||
gDisplayListHead = temp_v0_8 + 8;
|
||||
temp_v0_8->words.w1 = 0x073FC000;
|
||||
temp_v0_8->words.w0 = 0xF0000000;
|
||||
temp_v0_9 = gDisplayListHead;
|
||||
gDisplayListHead = temp_v0_9 + 8;
|
||||
temp_v0_9->words.w1 = 0;
|
||||
temp_v0_9->words.w0 = 0xE7000000;
|
||||
spD4 = spD4;
|
||||
|
||||
if ((gCurrentCourseId == COURSE_YOSHI_VALLEY) && (lapCount < 3)) {
|
||||
gSPDisplayList(gDisplayListHead++, D_0D007DB8);
|
||||
gDPLoadTLUT_pal256(gDisplayListHead++, gTLUTPortraitBombKartAndQuestionMark);
|
||||
func_800452A4(gTexturePortraitQuestionMark, 0x00000020, 0x00000020);
|
||||
temp_s1_2 = &D_80165C18[spD4];
|
||||
temp_s1_2->unk_004[0] = temp_s1_2->unk_028[0] + (f32) (spD0 + 0x20);
|
||||
temp_s1_2->unk_004[2] = temp_s1_2->unk_028[2];
|
||||
temp_s1_2->unk_004[1] = temp_s1_2->unk_028[1] + (f32) (spC4 + spCC);
|
||||
func_80042E00(temp_s1_2->unk_004, (s16 *) temp_s1_2->unk_0BE, temp_s1_2->unk_000);
|
||||
temp_v0_10 = gDisplayListHead;
|
||||
gDisplayListHead = temp_v0_10 + 8;
|
||||
temp_v0_10->words.w0 = 0x06000000;
|
||||
temp_v0_10->words.w1 = (u32) D_0D0069E0;
|
||||
return;
|
||||
}
|
||||
temp_v0_11 = gDisplayListHead;
|
||||
gDisplayListHead = temp_v0_11 + 8;
|
||||
temp_v0_11->words.w0 = 0xFD100000;
|
||||
temp_v0_11->words.w1 = gPortraitTLUTs[temp_s1];
|
||||
temp_v0_12 = gDisplayListHead;
|
||||
gDisplayListHead = temp_v0_12 + 8;
|
||||
temp_v0_12->words.w1 = 0;
|
||||
temp_v0_12->words.w0 = 0xE8000000;
|
||||
temp_v0_13 = gDisplayListHead;
|
||||
gDisplayListHead = temp_v0_13 + 8;
|
||||
temp_v0_13->words.w1 = 0x07000000;
|
||||
temp_v0_13->words.w0 = 0xF5000100;
|
||||
temp_v0_14 = gDisplayListHead;
|
||||
gDisplayListHead = temp_v0_14 + 8;
|
||||
temp_v0_14->words.w1 = 0;
|
||||
temp_v0_14->words.w0 = 0xE6000000;
|
||||
temp_v0_15 = gDisplayListHead;
|
||||
gDisplayListHead = temp_v0_15 + 8;
|
||||
temp_v0_15->words.w1 = 0x073FC000;
|
||||
temp_v0_15->words.w0 = 0xF0000000;
|
||||
temp_v0_16 = gDisplayListHead;
|
||||
gDisplayListHead = temp_v0_16 + 8;
|
||||
temp_v0_16->words.w1 = 0;
|
||||
temp_v0_16->words.w0 = 0xE7000000;
|
||||
temp_v0_17 = gDisplayListHead;
|
||||
gDisplayListHead = temp_v0_17 + 8;
|
||||
temp_v0_17->words.w1 = (u32) D_0D007DB8;
|
||||
temp_v0_17->words.w0 = 0x06000000;
|
||||
if (spAC->unk_0BC & 0x200) {
|
||||
sp3C = temp_t2;
|
||||
func_8004B614((s32) D_801656C0, (s32) D_801656D0, (s32) D_801656E0, 0x00000080, 0x00000080, 0x00000080, (s32) D_80165C18[spD4].unk_0A0);
|
||||
object = &D_80165C18[objectIndex];
|
||||
object->unk_004[0] = object->unk_028[0] + ((f32) (spD0 + 0x20));
|
||||
object->unk_004[1] = object->unk_028[1] + ((f32) (spC4 + spCC));
|
||||
object->unk_004[2] = object->unk_028[2];
|
||||
func_80042E00(object->unk_004, object->unk_0BE, object->unk_000);
|
||||
gSPDisplayList(gDisplayListHead++, D_0D0069E0);
|
||||
} else {
|
||||
sp3C = temp_t2;
|
||||
func_8004B2BC((s32) D_80165C18[spD4].unk_0A0);
|
||||
}
|
||||
func_800452A4(*(&gPortraitTextures + sp3C), 0x00000020, 0x00000020);
|
||||
temp_a0 = &D_80165C18[spD4] + 4;
|
||||
temp_a1 = &D_80165C18[spD4] + 0xBE;
|
||||
sp38 = temp_a1;
|
||||
sp3C = temp_a0;
|
||||
D_80165C18[spD4].unk_004[0] = D_80165C18[spD4].unk_028[0] + (f32) (spD0 + 0x20);
|
||||
D_80165C18[spD4].unk_004[2] = D_80165C18[spD4].unk_028[2];
|
||||
D_80165C18[spD4].unk_004[1] = D_80165C18[spD4].unk_028[1] + (f32) (spC4 + spCC);
|
||||
func_80042E00(temp_a0, temp_a1, D_80165C18[spD4].unk_000);
|
||||
if (spB8 != 0) {
|
||||
temp_v0_18 = gDisplayListHead;
|
||||
gDisplayListHead = temp_v0_18 + 8;
|
||||
temp_v0_18->words.w1 = (u32) D_0D0069F8;
|
||||
temp_v0_18->words.w0 = 0x06000000;
|
||||
} else {
|
||||
temp_v0_19 = gDisplayListHead;
|
||||
gDisplayListHead = temp_v0_19 + 8;
|
||||
temp_v0_19->words.w1 = (u32) D_0D0069E0;
|
||||
temp_v0_19->words.w0 = 0x06000000;
|
||||
}
|
||||
temp_v0_20 = gDisplayListHead;
|
||||
gDisplayListHead = temp_v0_20 + 8;
|
||||
temp_v0_20->words.w0 = 0xFD100000;
|
||||
temp_v0_20->words.w1 = (u32) &D_0D019E58;
|
||||
temp_v0_21 = gDisplayListHead;
|
||||
gDisplayListHead = temp_v0_21 + 8;
|
||||
temp_v0_21->words.w1 = 0;
|
||||
temp_v0_21->words.w0 = 0xE8000000;
|
||||
temp_v0_22 = gDisplayListHead;
|
||||
gDisplayListHead = temp_v0_22 + 8;
|
||||
temp_v0_22->words.w1 = 0x07000000;
|
||||
temp_v0_22->words.w0 = 0xF5000100;
|
||||
temp_v0_23 = gDisplayListHead;
|
||||
gDisplayListHead = temp_v0_23 + 8;
|
||||
temp_v0_23->words.w1 = 0;
|
||||
temp_v0_23->words.w0 = 0xE6000000;
|
||||
temp_v0_24 = gDisplayListHead;
|
||||
gDisplayListHead = temp_v0_24 + 8;
|
||||
temp_v0_24->words.w1 = 0x073FC000;
|
||||
temp_v0_24->words.w0 = 0xF0000000;
|
||||
temp_v0_25 = gDisplayListHead;
|
||||
gDisplayListHead = temp_v0_25 + 8;
|
||||
temp_v0_25->words.w1 = 0;
|
||||
temp_v0_25->words.w0 = 0xE7000000;
|
||||
func_800452A4((arg1 << 6) + 0x40 + &D_0D01A058, 8, 8);
|
||||
if (spB8 != 0) {
|
||||
func_80042330(spD0 + 0x26, spC4 + spCC + 4, 0U, 1.0f);
|
||||
} else {
|
||||
func_80042330(spD0 + 0x1B, spC4 + spCC + 4, 0U, 1.0f);
|
||||
}
|
||||
temp_v0_26 = gDisplayListHead;
|
||||
gDisplayListHead = temp_v0_26 + 8;
|
||||
temp_v0_26->words.w0 = 0x06000000;
|
||||
temp_v0_26->words.w1 = (u32) D_0D006950;
|
||||
if ((spAC == gPlayerOne) && (gScreenModeSelection == 0)) {
|
||||
temp_v0_27 = gDisplayListHead;
|
||||
gDisplayListHead = temp_v0_27 + 8;
|
||||
temp_v0_27->words.w1 = (u32) D_0D007A40;
|
||||
temp_v0_27->words.w0 = 0x06000000;
|
||||
sp34 = D_0D0069E0;
|
||||
func_8004B35C(D_8018D3E4, D_8018D3E8, D_8018D3EC, 0x000000FF);
|
||||
func_80044924(D_0D01A2D8, 0x20, 0x20);
|
||||
func_80042E00(sp3C, sp38, D_80165C18[spD4].unk_000);
|
||||
temp_v0_28 = gDisplayListHead;
|
||||
gDisplayListHead = temp_v0_28 + 8;
|
||||
temp_v0_28->words.w0 = 0x06000000;
|
||||
temp_v0_28->words.w1 = (u32) sp34;
|
||||
gDPLoadTLUT_pal256(gDisplayListHead++, gPortraitTLUTs[characterId]);
|
||||
gSPDisplayList(gDisplayListHead++, D_0D007DB8);
|
||||
if (player->unk_0BC & 0x200) {
|
||||
func_8004B614((s32) D_801656C0, (s32) D_801656D0, (s32) D_801656E0, 0x00000080, 0x00000080, 0x00000080, (s32) D_80165C18[objectIndex].unk_0A0);
|
||||
} else {
|
||||
func_8004B2BC((s32) D_80165C18[objectIndex].unk_0A0);
|
||||
}
|
||||
func_800452A4(gPortraitTextures[characterId], 0x00000020, 0x00000020);
|
||||
object = &D_80165C18[objectIndex];
|
||||
object->unk_004[0] = object->unk_028[0] + ((f32) (spD0 + 0x20));
|
||||
object->unk_004[1] = object->unk_028[1] + ((f32) (spC4 + spCC));
|
||||
object->unk_004[2] = object->unk_028[2];
|
||||
func_80042E00(object->unk_004, object->unk_0BE, object->unk_000);
|
||||
if (spB8 != 0) {
|
||||
gSPDisplayList(gDisplayListHead++, D_0D0069F8);
|
||||
} else {
|
||||
gSPDisplayList(gDisplayListHead++, D_0D0069E0);
|
||||
}
|
||||
gDPLoadTLUT_pal256(gDisplayListHead++, gTLUTHudTypeCRankTinyFont);
|
||||
func_800452A4(gTextureHudTypeCRankTinyFont[arg1 + 1], 8, 8);
|
||||
if (spB8 != 0) {
|
||||
func_80042330(spD0 + 0x26, (spC4 + spCC) + 4, 0U, 1.0f);
|
||||
} else {
|
||||
func_80042330(spD0 + 0x1B, (spC4 + spCC) + 4, 0U, 1.0f);
|
||||
}
|
||||
gSPDisplayList(gDisplayListHead++, D_0D006950);
|
||||
if ((player == gPlayerOne) && (gScreenModeSelection == 0)) {
|
||||
gSPDisplayList(gDisplayListHead++, D_0D007A40);
|
||||
func_8004B35C(D_8018D3E4, D_8018D3E8, D_8018D3EC, 0x000000FF);
|
||||
func_80044924(gTextureCharacterPortraitBorder, 0x00000020, 0x00000020);
|
||||
func_80042E00(object->unk_004, object->unk_0BE, object->unk_000);
|
||||
gSPDisplayList(gDisplayListHead++, D_0D0069E0);
|
||||
}
|
||||
}
|
||||
}
|
||||
#else
|
||||
|
||||
@@ -298,9 +298,11 @@ void func_8004F950(s32, s32, s32, s32);
|
||||
void func_8004F9CC(s32, s32, s32);
|
||||
void func_8004FA78(s32);
|
||||
void func_8004FC78(s16, s16, s8);
|
||||
void func_8004FDB4(f32, f32, s16, s16, s16, s32, s32, s32, s32);
|
||||
|
||||
void func_80050320();
|
||||
s32 func_80050644(u16, s32*, s32*);
|
||||
void func_80050E34(s32, s32);
|
||||
|
||||
void func_800514BC();
|
||||
void func_80051638(s32);
|
||||
@@ -418,8 +420,17 @@ extern UnkActorInner D_8018C830;
|
||||
extern u8 *D_8018D1E0;
|
||||
extern s32 D_8018D1F0;
|
||||
|
||||
extern s32 D_8018D3E0; // some alpha
|
||||
extern s32 D_8018D3E4; // some red
|
||||
extern s32 D_8018D3E8; // some green
|
||||
extern s32 D_8018D3EC; // some blue
|
||||
|
||||
extern struct UnkStruct_800DC5EC *D_800DC5F0;
|
||||
|
||||
// Probably aren't really part of this file, but don't have a better place to put them
|
||||
extern u8 *gPortraitTLUTs[];
|
||||
extern u8 *gPortraitTextures[];
|
||||
|
||||
extern Lights1 D_800E4638;
|
||||
extern Lights1 D_800E4650;
|
||||
extern Lights1 D_800E4668;
|
||||
|
||||
Reference in New Issue
Block a user