document vertex of player (#729)

* document vertex

* Update render_player.c
This commit is contained in:
coco875 2025-06-28 17:35:02 +00:00 committed by GitHub
parent b329e813e6
commit d2b3217754
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 67 additions and 66 deletions

View File

@ -1,6 +1,6 @@
#include "some_data.h" #include "some_data.h"
Vtx D_800E49C0[] = { Vtx gPlayerOneVtx[] = {
{ { { 9, 18, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } }, { { { 9, 18, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 9, -6 }, 0, { 4032, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } }, { { { 9, 9, -6 }, 0, { 4032, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 9, -6 }, 0, { 0, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } }, { { { -9, 9, -6 }, 0, { 0, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
@ -19,7 +19,7 @@ Vtx D_800E49C0[] = {
{ { { -9, 9, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } }, { { { -9, 9, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
}; };
Vtx D_800E4AC0[] = { Vtx gPlayerTwoVtx[] = {
{ { { 9, 18, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } }, { { { 9, 18, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 9, -6 }, 0, { 4032, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } }, { { { 9, 9, -6 }, 0, { 4032, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 9, -6 }, 0, { 0, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } }, { { { -9, 9, -6 }, 0, { 0, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
@ -38,7 +38,7 @@ Vtx D_800E4AC0[] = {
{ { { -9, 9, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } }, { { { -9, 9, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
}; };
Vtx D_800E4BC0[] = { Vtx gPlayerThreeVtx[] = {
{ { { 9, 18, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } }, { { { 9, 18, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 9, -6 }, 0, { 4032, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } }, { { { 9, 9, -6 }, 0, { 4032, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 9, -6 }, 0, { 0, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } }, { { { -9, 9, -6 }, 0, { 0, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
@ -57,7 +57,7 @@ Vtx D_800E4BC0[] = {
{ { { -9, 9, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } }, { { { -9, 9, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
}; };
Vtx D_800E4CC0[] = { Vtx gPlayerFourVtx[] = {
{ { { 9, 18, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } }, { { { 9, 18, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 9, -6 }, 0, { 4032, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } }, { { { 9, 9, -6 }, 0, { 4032, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 9, -6 }, 0, { 0, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } }, { { { -9, 9, -6 }, 0, { 0, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
@ -76,7 +76,7 @@ Vtx D_800E4CC0[] = {
{ { { -9, 9, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } }, { { { -9, 9, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
}; };
Vtx D_800E4DC0[] = { Vtx gPlayerFiveVtx[] = {
{ { { 9, 18, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } }, { { { 9, 18, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 9, -6 }, 0, { 4032, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } }, { { { 9, 9, -6 }, 0, { 4032, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 9, -6 }, 0, { 0, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } }, { { { -9, 9, -6 }, 0, { 0, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
@ -95,7 +95,7 @@ Vtx D_800E4DC0[] = {
{ { { -9, 9, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } }, { { { -9, 9, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
}; };
Vtx D_800E4EC0[] = { Vtx gPlayerSixVtx[] = {
{ { { 9, 18, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } }, { { { 9, 18, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 9, -6 }, 0, { 4032, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } }, { { { 9, 9, -6 }, 0, { 4032, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 9, -6 }, 0, { 0, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } }, { { { -9, 9, -6 }, 0, { 0, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
@ -112,10 +112,10 @@ Vtx D_800E4EC0[] = {
{ { { 9, 0, -6 }, 0, { 0, 1792 }, { 0xFF, 0xFF, 0xFF, 0xFF } } }, { { { 9, 0, -6 }, 0, { 0, 1792 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 0, -6 }, 0, { 4032, 1792 }, { 0xFF, 0xFF, 0xFF, 0xFF } } }, { { { -9, 0, -6 }, 0, { 4032, 1792 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 9, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } }, { { { -9, 9, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 9, -6 }, 0, { 0, 0 }, { 0xFF, 0xFF, 0xFF, 0x60 } } }, { { { -9, 9, -6 }, 0, { 0, 0 }, { 0xFF, 0xFF, 0xFF, 0x60 } } }, // useless
}; };
Vtx D_800E4FD0[] = { Vtx gPlayerSevenVtx[] = {
{ { { 9, 18, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } }, { { { 9, 18, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 9, -6 }, 0, { 4032, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } }, { { { 9, 9, -6 }, 0, { 4032, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 9, -6 }, 0, { 0, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } }, { { { -9, 9, -6 }, 0, { 0, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
@ -134,7 +134,7 @@ Vtx D_800E4FD0[] = {
{ { { -9, 9, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } }, { { { -9, 9, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
}; };
Vtx D_800E50D0[] = { Vtx gPlayerEightVtx[] = {
{ { { 9, 18, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } }, { { { 9, 18, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 9, -6 }, 0, { 4032, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } }, { { { 9, 9, -6 }, 0, { 4032, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 9, -6 }, 0, { 0, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } }, { { { -9, 9, -6 }, 0, { 0, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },

View File

@ -6,14 +6,14 @@
#include "data/other_textures.h" #include "data/other_textures.h"
#include "objects.h" #include "objects.h"
extern Vtx D_800E49C0[]; extern Vtx gPlayerOneVtx[];
extern Vtx D_800E4AC0[]; extern Vtx gPlayerTwoVtx[];
extern Vtx D_800E4BC0[]; extern Vtx gPlayerThreeVtx[];
extern Vtx D_800E4CC0[]; extern Vtx gPlayerFourVtx[];
extern Vtx D_800E4DC0[]; extern Vtx gPlayerFiveVtx[];
extern Vtx D_800E4EC0[]; extern Vtx gPlayerSixVtx[];
extern Vtx D_800E4FD0[]; extern Vtx gPlayerSevenVtx[];
extern Vtx D_800E50D0[]; extern Vtx gPlayerEightVtx[];
extern Vtx D_800E51D0[]; extern Vtx D_800E51D0[];
extern Vtx D_800E5210[]; extern Vtx D_800E5210[];
extern Vtx gBalloonVertexPlane1[]; extern Vtx gBalloonVertexPlane1[];

View File

@ -483,7 +483,7 @@ void render_players_on_screen_one(void) {
s32 junk[] = { 0, 0, 0 }; s32 junk[] = { 0, 0, 0 };
Vtx* D_800DDBB4[] = { D_800E49C0, D_800E4AC0, D_800E4BC0, D_800E4CC0, D_800E4DC0, D_800E4EC0, D_800E4FD0, D_800E50D0 }; Vtx* gPlayerVtx[] = { gPlayerOneVtx, gPlayerTwoVtx, gPlayerThreeVtx, gPlayerFourVtx, gPlayerFiveVtx, gPlayerSixVtx, gPlayerSevenVtx, gPlayerEightVtx };
f32 gCharacterSize[] = { MARIO_SIZE, LUIGI_SIZE, YOSHI_SIZE, TOAD_SIZE, DK_SIZE, WARIO_SIZE, PEACH_SIZE, BOWSER_SIZE }; f32 gCharacterSize[] = { MARIO_SIZE, LUIGI_SIZE, YOSHI_SIZE, TOAD_SIZE, DK_SIZE, WARIO_SIZE, PEACH_SIZE, BOWSER_SIZE };
@ -1010,24 +1010,25 @@ void func_80022BC4(Player* player, UNUSED s8 playerIndex) {
player->unk_DB4.unk2 = temp_v0; player->unk_DB4.unk2 = temp_v0;
} }
void func_80022CA8(Player* player, s8 playerId, UNUSED s8 screenId, s8 arg3) { // look like related to flatten animation
void func_80022CA8(Player* player, s8 playerId, UNUSED s8 screenId, s8 flipOffset) {
s16 temp_v0 = player->unk_DA4; s16 temp_v0 = player->unk_DA4;
D_800DDBB4[playerId][arg3 + 0x0].v.ob[1] = 18 - (temp_v0 * 2.3); gPlayerVtx[playerId][flipOffset + 0x0].v.ob[1] = 18 - (temp_v0 * 2.3);
D_800DDBB4[playerId][arg3 + 0x1].v.ob[1] = 9 - temp_v0; gPlayerVtx[playerId][flipOffset + 0x1].v.ob[1] = 9 - temp_v0;
D_800DDBB4[playerId][arg3 + 0x2].v.ob[1] = 9 - temp_v0; gPlayerVtx[playerId][flipOffset + 0x2].v.ob[1] = 9 - temp_v0;
D_800DDBB4[playerId][arg3 + 0x3].v.ob[1] = 18 - (temp_v0 * 2.3); gPlayerVtx[playerId][flipOffset + 0x3].v.ob[1] = 18 - (temp_v0 * 2.3);
D_800DDBB4[playerId][arg3 + 0x4].v.ob[1] = 9 - temp_v0; gPlayerVtx[playerId][flipOffset + 0x4].v.ob[1] = 9 - temp_v0;
D_800DDBB4[playerId][arg3 + 0x7].v.ob[1] = 9 - temp_v0; gPlayerVtx[playerId][flipOffset + 0x7].v.ob[1] = 9 - temp_v0;
} }
/** /**
* Seems to stretch/warp a specific players texture for a * Seems to stretch/warp a specific players texture for a
* short period of time. Perhaps does not do anything * short period of time. Perhaps does not do anything
**/ **/
void func_80022D60(UNUSED Player* player, s8 playerId, UNUSED s8 screenId, s8 arg3) { void func_80022D60(UNUSED Player* player, s8 playerId, UNUSED s8 screenId, s8 flipOffset) {
D_800DDBB4[playerId][arg3].v.ob[1] = 21; gPlayerVtx[playerId][flipOffset].v.ob[1] = 21;
D_800DDBB4[playerId][arg3 + 0x3].v.ob[1] = 21; gPlayerVtx[playerId][flipOffset + 0x3].v.ob[1] = 21;
} }
void func_80022DB4(Player* player, UNUSED s8 playerIndex) { void func_80022DB4(Player* player, UNUSED s8 playerIndex) {
@ -1054,15 +1055,15 @@ void func_80022DB4(Player* player, UNUSED s8 playerIndex) {
player->unk_DB4.unk18 = temp_v0; player->unk_DB4.unk18 = temp_v0;
} }
void func_80022E84(Player* player, s8 playerId, UNUSED s8 screenId, s8 arg3) { void func_80022E84(Player* player, s8 playerId, UNUSED s8 screenId, s8 flipOffset) {
s16 temp_v0 = player->unk_DB4.unk1E; s16 temp_v0 = player->unk_DB4.unk1E;
D_800DDBB4[playerId][arg3 + 0x0].v.ob[1] = 18 - temp_v0; gPlayerVtx[playerId][flipOffset + 0x0].v.ob[1] = 18 - temp_v0;
D_800DDBB4[playerId][arg3 + 0x1].v.ob[1] = 9 - temp_v0; gPlayerVtx[playerId][flipOffset + 0x1].v.ob[1] = 9 - temp_v0;
D_800DDBB4[playerId][arg3 + 0x2].v.ob[1] = 9 - temp_v0; gPlayerVtx[playerId][flipOffset + 0x2].v.ob[1] = 9 - temp_v0;
D_800DDBB4[playerId][arg3 + 0x3].v.ob[1] = 18 - temp_v0; gPlayerVtx[playerId][flipOffset + 0x3].v.ob[1] = 18 - temp_v0;
D_800DDBB4[playerId][arg3 + 0x4].v.ob[1] = 9 - temp_v0; gPlayerVtx[playerId][flipOffset + 0x4].v.ob[1] = 9 - temp_v0;
D_800DDBB4[playerId][arg3 + 0x7].v.ob[1] = 9 - temp_v0; gPlayerVtx[playerId][flipOffset + 0x7].v.ob[1] = 9 - temp_v0;
} }
/** /**
@ -1411,7 +1412,7 @@ void render_player_shadow_credits(Player* player, s8 playerId, s8 arg2) {
gSPTexture(gDisplayListHead++, 1, 1, 0, G_TX_RENDERTILE, G_OFF); gSPTexture(gDisplayListHead++, 1, 1, 0, G_TX_RENDERTILE, G_OFF);
} }
void render_kart(Player* player, s8 playerId, s8 arg2, s8 arg3) { void render_kart(Player* player, s8 playerId, s8 arg2, s8 flipOffset) {
UNUSED s32 pad; UNUSED s32 pad;
Mat4 sp1A4; Mat4 sp1A4;
UNUSED s32 pad2[17]; UNUSED s32 pad2[17];
@ -1528,19 +1529,19 @@ void render_kart(Player* player, s8 playerId, s8 arg2, s8 arg3) {
gDPLoadTextureBlock(gDisplayListHead++, sKartUpperTexture, G_IM_FMT_CI, G_IM_SIZ_8b, 64, 32, 0, gDPLoadTextureBlock(gDisplayListHead++, sKartUpperTexture, G_IM_FMT_CI, G_IM_SIZ_8b, 64, 32, 0,
G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD,
G_TX_NOLOD); G_TX_NOLOD);
gSPVertex(gDisplayListHead++, &D_800DDBB4[playerId][arg3], 4, 0); gSPVertex(gDisplayListHead++, &gPlayerVtx[playerId][flipOffset], 4, 0);
gSPDisplayList(gDisplayListHead++, common_square_plain_render); gSPDisplayList(gDisplayListHead++, common_square_plain_render);
gDPLoadTextureBlock(gDisplayListHead++, sKartLowerTexture, G_IM_FMT_CI, G_IM_SIZ_8b, 64, 32, 0, gDPLoadTextureBlock(gDisplayListHead++, sKartLowerTexture, G_IM_FMT_CI, G_IM_SIZ_8b, 64, 32, 0,
G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD,
G_TX_NOLOD); G_TX_NOLOD);
gSPVertex(gDisplayListHead++, &D_800DDBB4[playerId][arg3 + 4], 4, 0); gSPVertex(gDisplayListHead++, &gPlayerVtx[playerId][flipOffset + 4], 4, 0);
gSPDisplayList(gDisplayListHead++, common_square_plain_render); gSPDisplayList(gDisplayListHead++, common_square_plain_render);
gSPTexture(gDisplayListHead++, 1, 1, 0, G_TX_RENDERTILE, G_OFF); gSPTexture(gDisplayListHead++, 1, 1, 0, G_TX_RENDERTILE, G_OFF);
gDPSetAlphaCompare(gDisplayListHead++, G_AC_NONE); gDPSetAlphaCompare(gDisplayListHead++, G_AC_NONE);
} }
void render_ghost(Player* player, s8 playerId, s8 screenId, s8 arg3) { void render_ghost(Player* player, s8 playerId, s8 screenId, s8 flipOffset) {
UNUSED s32 pad; UNUSED s32 pad;
Mat4 sp12C; Mat4 sp12C;
UNUSED s32 pad2[17]; UNUSED s32 pad2[17];
@ -1605,19 +1606,19 @@ void render_ghost(Player* player, s8 playerId, s8 screenId, s8 arg3) {
gDPLoadTextureBlock(gDisplayListHead++, sKartUpperTexture, G_IM_FMT_CI, G_IM_SIZ_8b, 64, 32, 0, gDPLoadTextureBlock(gDisplayListHead++, sKartUpperTexture, G_IM_FMT_CI, G_IM_SIZ_8b, 64, 32, 0,
G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD,
G_TX_NOLOD); G_TX_NOLOD);
gSPVertex(gDisplayListHead++, &D_800DDBB4[playerId][arg3], 4, 0); gSPVertex(gDisplayListHead++, &gPlayerVtx[playerId][flipOffset], 4, 0);
gSPDisplayList(gDisplayListHead++, common_square_plain_render); gSPDisplayList(gDisplayListHead++, common_square_plain_render);
gDPLoadTextureBlock(gDisplayListHead++, sKartLowerTexture, G_IM_FMT_CI, G_IM_SIZ_8b, 64, 32, 0, gDPLoadTextureBlock(gDisplayListHead++, sKartLowerTexture, G_IM_FMT_CI, G_IM_SIZ_8b, 64, 32, 0,
G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD,
G_TX_NOLOD); G_TX_NOLOD);
gSPVertex(gDisplayListHead++, &D_800DDBB4[playerId][arg3 + 4], 4, 0); gSPVertex(gDisplayListHead++, &gPlayerVtx[playerId][flipOffset + 4], 4, 0);
gSPDisplayList(gDisplayListHead++, common_square_plain_render); gSPDisplayList(gDisplayListHead++, common_square_plain_render);
gSPTexture(gDisplayListHead++, 1, 1, 0, G_TX_RENDERTILE, G_OFF); gSPTexture(gDisplayListHead++, 1, 1, 0, G_TX_RENDERTILE, G_OFF);
gDPSetAlphaCompare(gDisplayListHead++, G_AC_NONE); gDPSetAlphaCompare(gDisplayListHead++, G_AC_NONE);
} }
void func_80025DE8(Player* player, s8 playerId, s8 screenId, s8 arg3) { void func_80025DE8(Player* player, s8 playerId, s8 screenId, s8 flipOffset) {
Mat4 spA8; Mat4 spA8;
Vec3f sp9C; Vec3f sp9C;
Vec3s sp94; Vec3s sp94;
@ -1649,19 +1650,19 @@ void func_80025DE8(Player* player, s8 playerId, s8 screenId, s8 arg3) {
gDPLoadTextureBlock(gDisplayListHead++, sKartUpperTexture, G_IM_FMT_CI, G_IM_SIZ_8b, 64, 32, 0, gDPLoadTextureBlock(gDisplayListHead++, sKartUpperTexture, G_IM_FMT_CI, G_IM_SIZ_8b, 64, 32, 0,
G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD,
G_TX_NOLOD); G_TX_NOLOD);
gSPVertex(gDisplayListHead++, &D_800DDBB4[playerId][arg3], 4, 0); gSPVertex(gDisplayListHead++, &gPlayerVtx[playerId][flipOffset], 4, 0);
gSPDisplayList(gDisplayListHead++, common_square_plain_render); gSPDisplayList(gDisplayListHead++, common_square_plain_render);
gDPLoadTextureBlock(gDisplayListHead++, sKartLowerTexture, G_IM_FMT_CI, G_IM_SIZ_8b, 64, 32, 0, gDPLoadTextureBlock(gDisplayListHead++, sKartLowerTexture, G_IM_FMT_CI, G_IM_SIZ_8b, 64, 32, 0,
G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD,
G_TX_NOLOD); G_TX_NOLOD);
gSPVertex(gDisplayListHead++, &D_800DDBB4[playerId][arg3 + 4], 4, 0); gSPVertex(gDisplayListHead++, &gPlayerVtx[playerId][flipOffset + 4], 4, 0);
gSPDisplayList(gDisplayListHead++, common_square_plain_render); gSPDisplayList(gDisplayListHead++, common_square_plain_render);
gSPTexture(gDisplayListHead++, 1, 1, 0, G_TX_RENDERTILE, G_OFF); gSPTexture(gDisplayListHead++, 1, 1, 0, G_TX_RENDERTILE, G_OFF);
gMatrixEffectCount += 1; gMatrixEffectCount += 1;
} }
void render_player_ice_reflection(Player* player, s8 playerId, s8 screenId, s8 arg3) { void render_player_ice_reflection(Player* player, s8 playerId, s8 screenId, s8 flipOffset) {
Mat4 spA8; Mat4 spA8;
Vec3f sp9C; Vec3f sp9C;
Vec3s sp94; Vec3s sp94;
@ -1673,9 +1674,9 @@ void render_player_ice_reflection(Player* player, s8 playerId, s8 screenId, s8 a
sp9C[1] = player->unk_074 + (4.0f * player->size); sp9C[1] = player->unk_074 + (4.0f * player->size);
sp9C[2] = player->pos[2]; sp9C[2] = player->pos[2];
if (!(player->unk_002 & (4 << (screenId * 4)))) { if (!(player->unk_002 & (4 << (screenId * 4)))) {
arg3 = 8; flipOffset = 8;
} else { } else {
arg3 = 0; flipOffset = 0;
} }
mtxf_translate_rotate(spA8, sp9C, sp94); mtxf_translate_rotate(spA8, sp9C, sp94);
@ -1693,12 +1694,12 @@ void render_player_ice_reflection(Player* player, s8 playerId, s8 screenId, s8 a
gDPLoadTextureBlock(gDisplayListHead++, sKartUpperTexture, G_IM_FMT_CI, G_IM_SIZ_8b, 64, 32, 0, gDPLoadTextureBlock(gDisplayListHead++, sKartUpperTexture, G_IM_FMT_CI, G_IM_SIZ_8b, 64, 32, 0,
G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD,
G_TX_NOLOD); G_TX_NOLOD);
gSPVertex(gDisplayListHead++, &D_800DDBB4[playerId][arg3], 4, 0); gSPVertex(gDisplayListHead++, &gPlayerVtx[playerId][flipOffset], 4, 0);
gSPDisplayList(gDisplayListHead++, common_square_plain_render); gSPDisplayList(gDisplayListHead++, common_square_plain_render);
gDPLoadTextureBlock(gDisplayListHead++, sKartLowerTexture, G_IM_FMT_CI, G_IM_SIZ_8b, 64, 32, 0, gDPLoadTextureBlock(gDisplayListHead++, sKartLowerTexture, G_IM_FMT_CI, G_IM_SIZ_8b, 64, 32, 0,
G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD,
G_TX_NOLOD); G_TX_NOLOD);
gSPVertex(gDisplayListHead++, &D_800DDBB4[playerId][arg3 + 4], 4, 0); gSPVertex(gDisplayListHead++, &gPlayerVtx[playerId][flipOffset + 4], 4, 0);
gSPDisplayList(gDisplayListHead++, common_square_plain_render); gSPDisplayList(gDisplayListHead++, common_square_plain_render);
gSPTexture(gDisplayListHead++, 1, 1, 0, G_TX_RENDERTILE, G_OFF); gSPTexture(gDisplayListHead++, 1, 1, 0, G_TX_RENDERTILE, G_OFF);
gMatrixEffectCount += 1; gMatrixEffectCount += 1;
@ -1707,16 +1708,16 @@ void render_player_ice_reflection(Player* player, s8 playerId, s8 screenId, s8 a
void render_player(Player* player, s8 playerId, s8 screenId) { void render_player(Player* player, s8 playerId, s8 screenId) {
UNUSED s32 pad[2]; UNUSED s32 pad[2];
s32 temp_t1; s32 temp_t1;
s32 var_v1; s32 flipOffset;
OSMesg* sp34; OSMesg* sp34;
update_wheel_palette(player, playerId, screenId, D_801651D0[screenId][playerId]); update_wheel_palette(player, playerId, screenId, D_801651D0[screenId][playerId]);
if (!(player->unk_002 & (4 << (screenId * 4)))) { if (!(player->unk_002 & (4 << (screenId * 4)))) {
var_v1 = 0; flipOffset = 0;
} else { } else {
var_v1 = 8; flipOffset = 8;
} }
func_80023BF0(player, playerId, screenId, var_v1); func_80023BF0(player, playerId, screenId, flipOffset);
temp_t1 = 8 << (screenId * 4); temp_t1 = 8 << (screenId * 4);
if ((temp_t1 == (player->unk_002 & temp_t1)) && (player->collision.surfaceDistance[2] <= 50.0f) && if ((temp_t1 == (player->unk_002 & temp_t1)) && (player->collision.surfaceDistance[2] <= 50.0f) &&
(player->surfaceType != ICE)) { (player->surfaceType != ICE)) {
@ -1729,17 +1730,17 @@ void render_player(Player* player, s8 playerId, s8 screenId) {
} }
} }
if ((player->type & PLAYER_INVISIBLE_OR_BOMB) != PLAYER_INVISIBLE_OR_BOMB) { if ((player->type & PLAYER_INVISIBLE_OR_BOMB) != PLAYER_INVISIBLE_OR_BOMB) {
render_kart(player, playerId, screenId, var_v1); render_kart(player, playerId, screenId, flipOffset);
} else { } else {
render_ghost(player, playerId, screenId, var_v1); render_ghost(player, playerId, screenId, flipOffset);
} }
osRecvMesg(&gDmaMesgQueue, (OSMesg*) &sp34, OS_MESG_BLOCK); osRecvMesg(&gDmaMesgQueue, (OSMesg*) &sp34, OS_MESG_BLOCK);
if ((temp_t1 == (player->unk_002 & temp_t1)) && (player->surfaceType == ICE) && ((player->unk_0CA & 1) != 1) && if ((temp_t1 == (player->unk_002 & temp_t1)) && (player->surfaceType == ICE) && ((player->unk_0CA & 1) != 1) &&
(player->collision.surfaceDistance[2] <= 30.0f)) { (player->collision.surfaceDistance[2] <= 30.0f)) {
render_player_ice_reflection(player, playerId, screenId, var_v1); render_player_ice_reflection(player, playerId, screenId, flipOffset);
} }
if (player->boostPower >= 2.0f) { if (player->boostPower >= 2.0f) {
func_80025DE8(player, playerId, screenId, var_v1); func_80025DE8(player, playerId, screenId, flipOffset);
} }
} }

View File

@ -92,7 +92,7 @@ extern Gfx D_0D008D58[];
extern s32 gPlayersToRenderCount; extern s32 gPlayersToRenderCount;
extern void* D_800DDB5C[]; extern void* D_800DDB5C[];
extern Vtx* D_800DDBB4[]; extern Vtx* gPlayerVtx[];
extern f32 gCharacterSize[]; extern f32 gCharacterSize[];
extern s32 D_800DDE74[]; extern s32 D_800DDE74[];
extern Vtx D_800E51D0[]; extern Vtx D_800E51D0[];
@ -102,14 +102,14 @@ extern f64 D_800ED688;
extern f32 D_800ED6A8; extern f32 D_800ED6A8;
// There are actually found in data_0DD0A0_2_0.s // There are actually found in data_0DD0A0_2_0.s
extern Vtx D_800E49C0[]; extern Vtx gPlayerOneVtx[];
extern Vtx D_800E4AC0[]; extern Vtx gPlayerTwoVtx[];
extern Vtx D_800E4BC0[]; extern Vtx gPlayerThreeVtx[];
extern Vtx D_800E4CC0[]; extern Vtx gPlayerFourVtx[];
extern Vtx D_800E4DC0[]; extern Vtx gPlayerFiveVtx[];
extern Vtx D_800E4EC0[]; extern Vtx gPlayerSixVtx[];
extern Vtx D_800E4FD0[]; extern Vtx gPlayerSevenVtx[];
extern Vtx D_800E50D0[]; extern Vtx gPlayerEightVtx[];
extern u8** gKartMarioWheels0[]; extern u8** gKartMarioWheels0[];
extern u8** gKartMarioWheels1[]; extern u8** gKartMarioWheels1[];