mirror of
https://github.com/HarbourMasters/SpaghettiKart
synced 2026-07-10 23:22:33 -04:00
+113
-91
@@ -57,7 +57,7 @@ u16 gPlayerBlueEffect[8];
|
||||
u16 gPlayerCyanEffect[8];
|
||||
u16 gPlayerMagentaEffect[8];
|
||||
u16 gPlayerYellowEffect[8];
|
||||
//if it's also a color effect like before
|
||||
// If it's also a colour effect like before
|
||||
UNUSED u16 gPlayerWhiteEffect[8];
|
||||
s32 D_80164B80[296];
|
||||
s16 D_80165020[40];
|
||||
@@ -81,7 +81,7 @@ void func_8001F980(s32 *arg0, s32 *arg1) {
|
||||
*arg1 = 0;
|
||||
}
|
||||
|
||||
void func_8001F9E4(Player *player, Camera *camera, s8 arg2) {
|
||||
void func_8001F9E4(Player *player, Camera *camera, s8 screenId) {
|
||||
UNUSED s32 pad;
|
||||
s32 sp30;
|
||||
s32 sp2C;
|
||||
@@ -90,14 +90,14 @@ void func_8001F9E4(Player *player, Camera *camera, s8 arg2) {
|
||||
get_player_index_for_player(player);
|
||||
func_8001F980(&sp30, &sp2C);
|
||||
|
||||
player->unk_002 &= ~(2 << (arg2 * 4));
|
||||
player->unk_002 &= ~(8 << (arg2 * 4));
|
||||
player->unk_002 &= ~(2 << (screenId * 4));
|
||||
player->unk_002 &= ~(8 << (screenId * 4));
|
||||
|
||||
if (check_player_camera_collision(player, camera, (f32) (D_80165578 + sp30), (f32) (D_8016557A + sp2C)) == 1) {
|
||||
player->unk_002 |= 2 << (arg2 * 4);
|
||||
player->unk_002 |= 2 << (screenId * 4);
|
||||
}
|
||||
if (check_player_camera_collision(player, camera, (f32) D_80165580, (f32) D_80165582) == 1) {
|
||||
player->unk_002 |= 8 << (arg2 * 4);
|
||||
player->unk_002 |= 8 << (screenId * 4);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -179,7 +179,7 @@ u16 func_8001FD78(Player *player, f32 posX, UNUSED f32 arg2, f32 posZ) {
|
||||
return ret;
|
||||
}
|
||||
|
||||
void init_render_player(Player *player, Camera *camera, s8 playerId, s8 playerRenderId) {
|
||||
void init_render_player(Player *player, Camera *camera, s8 playerId, s8 screenId) {
|
||||
UNUSED s32 pad[4];
|
||||
s32 sp4C;
|
||||
s32 sp48;
|
||||
@@ -188,64 +188,64 @@ void init_render_player(Player *player, Camera *camera, s8 playerId, s8 playerRe
|
||||
s32 temp_v0_2;
|
||||
|
||||
if ((player->type & PLAYER_EXISTS) == PLAYER_EXISTS) {
|
||||
func_8001F9E4(player, camera, playerRenderId);
|
||||
temp_v0 = 2 << (playerRenderId << 2);
|
||||
func_8001F9E4(player, camera, screenId);
|
||||
temp_v0 = 2 << (screenId << 2);
|
||||
if (temp_v0 == (player->unk_002 & temp_v0)) {
|
||||
if (!(player->type & PLAYER_START_SEQUENCE)) {
|
||||
func_8002934C(player, camera, playerRenderId, playerId);
|
||||
func_8002934C(player, camera, screenId, playerId);
|
||||
} else {
|
||||
func_8002934C(player, camera, playerRenderId, playerId);
|
||||
func_8002934C(player, camera, screenId, playerId);
|
||||
player->slopeAccel = 0;
|
||||
player->unk_206 = 0;
|
||||
player->unk_050[playerRenderId] = 0;
|
||||
player->unk_050[screenId] = 0;
|
||||
}
|
||||
}
|
||||
func_8001F980(&sp4C, &sp48);
|
||||
temp_v0_2 = 1 << (playerRenderId << 2);
|
||||
temp_v0_2 = 1 << (screenId << 2);
|
||||
if ((temp_v0 == (player->unk_002 & temp_v0)) && (temp_v0_2 == (player->unk_002 & temp_v0_2))) {
|
||||
if ((check_player_camera_collision(player, camera, D_80165570 + sp4C, D_80165572 + sp48) == 1) & 0xFFFF) {
|
||||
D_80164AB0[gPlayersToRenderCount] = (s16) playerId;
|
||||
D_80164AC0[gPlayersToRenderCount] = (s16) playerRenderId;
|
||||
D_80164AC0[gPlayersToRenderCount] = (s16) screenId;
|
||||
D_80164AD0[gPlayersToRenderCount] = player;
|
||||
gPlayersToRenderCount += 1;
|
||||
D_80165190[playerRenderId][playerId] = 0;
|
||||
D_801650D0[playerRenderId][playerId] = player->animFrameSelector[playerRenderId];
|
||||
D_80165110[playerRenderId][playerId] = player->animGroupSelector[playerRenderId];
|
||||
D_80165150[playerRenderId][playerId] = player->unk_0A8;
|
||||
D_801651D0[playerRenderId][playerId] += 1;
|
||||
if (D_801651D0[playerRenderId][playerId] == 2) {
|
||||
D_801651D0[playerRenderId][playerId] = 0;
|
||||
D_80165190[screenId][playerId] = 0;
|
||||
D_801650D0[screenId][playerId] = player->animFrameSelector[screenId];
|
||||
D_80165110[screenId][playerId] = player->animGroupSelector[screenId];
|
||||
D_80165150[screenId][playerId] = player->unk_0A8;
|
||||
D_801651D0[screenId][playerId] += 1;
|
||||
if (D_801651D0[screenId][playerId] == 2) {
|
||||
D_801651D0[screenId][playerId] = 0;
|
||||
}
|
||||
} else {
|
||||
if ((check_player_camera_collision(player, camera, D_80165574 + sp4C, D_80165576) == 1) & 0xFFFF) {
|
||||
if ((sRenderingFramebuffer == gRenderingFramebufferByPlayer[playerId]) || ((D_801650D0[playerRenderId][playerId] - player->animFrameSelector[playerRenderId]) > 0x13) || ((D_801650D0[playerRenderId][playerId] - player->animFrameSelector[playerRenderId]) < -0x13) || (D_80165190[playerRenderId][playerId] == (s16) 1U)) {
|
||||
if ((sRenderingFramebuffer == gRenderingFramebufferByPlayer[playerId]) || ((D_801650D0[screenId][playerId] - player->animFrameSelector[screenId]) > 0x13) || ((D_801650D0[screenId][playerId] - player->animFrameSelector[screenId]) < -0x13) || (D_80165190[screenId][playerId] == (s16) 1U)) {
|
||||
D_80164AB0[gPlayersToRenderCount] = (s16) playerId;
|
||||
D_80164AC0[gPlayersToRenderCount] = (s16) playerRenderId;
|
||||
D_80164AC0[gPlayersToRenderCount] = (s16) screenId;
|
||||
D_80164AD0[gPlayersToRenderCount] = player;
|
||||
gPlayersToRenderCount += 1;
|
||||
D_801650D0[playerRenderId][playerId] = player->animFrameSelector[playerRenderId];
|
||||
D_80165110[playerRenderId][playerId] = player->animGroupSelector[playerRenderId];
|
||||
D_80165150[playerRenderId][playerId] = player->unk_0A8;
|
||||
D_80165190[playerRenderId][playerId] = 0;
|
||||
D_801651D0[playerRenderId][playerId] += 1;
|
||||
if (D_801651D0[playerRenderId][playerId] == 2) {
|
||||
D_801651D0[playerRenderId][playerId] = 0;
|
||||
D_801650D0[screenId][playerId] = player->animFrameSelector[screenId];
|
||||
D_80165110[screenId][playerId] = player->animGroupSelector[screenId];
|
||||
D_80165150[screenId][playerId] = player->unk_0A8;
|
||||
D_80165190[screenId][playerId] = 0;
|
||||
D_801651D0[screenId][playerId] += 1;
|
||||
if (D_801651D0[screenId][playerId] == 2) {
|
||||
D_801651D0[screenId][playerId] = 0;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if ((
|
||||
(D_801650D0[playerRenderId][playerId] - player->animFrameSelector[playerRenderId]) > 0x13) || ((D_801650D0[playerRenderId][playerId] - player->animFrameSelector[playerRenderId]) < -0x13) || (D_80165190[playerRenderId][playerId] == (s16) 1U)) {
|
||||
(D_801650D0[screenId][playerId] - player->animFrameSelector[screenId]) > 0x13) || ((D_801650D0[screenId][playerId] - player->animFrameSelector[screenId]) < -0x13) || (D_80165190[screenId][playerId] == (s16) 1U)) {
|
||||
D_80164AB0[gPlayersToRenderCount] = (s16) playerId;
|
||||
D_80164AC0[gPlayersToRenderCount] = (s16) playerRenderId;
|
||||
D_80164AC0[gPlayersToRenderCount] = (s16) screenId;
|
||||
D_80164AD0[gPlayersToRenderCount] = player;
|
||||
gPlayersToRenderCount += 1;
|
||||
D_801650D0[playerRenderId][playerId] = (s16) player->animFrameSelector[playerRenderId];
|
||||
D_80165110[playerRenderId][playerId] = player->animGroupSelector[playerRenderId];
|
||||
D_80165150[playerRenderId][playerId] = player->unk_0A8;
|
||||
D_80165190[playerRenderId][playerId] = 0;
|
||||
D_801651D0[playerRenderId][playerId] += 1;
|
||||
if (D_801651D0[playerRenderId][playerId] == 2) {
|
||||
D_801651D0[playerRenderId][playerId] = 0;
|
||||
D_801650D0[screenId][playerId] = (s16) player->animFrameSelector[screenId];
|
||||
D_80165110[screenId][playerId] = player->animGroupSelector[screenId];
|
||||
D_80165150[screenId][playerId] = player->unk_0A8;
|
||||
D_80165190[screenId][playerId] = 0;
|
||||
D_801651D0[screenId][playerId] += 1;
|
||||
if (D_801651D0[screenId][playerId] == 2) {
|
||||
D_801651D0[screenId][playerId] = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -257,7 +257,7 @@ void init_render_player(Player *player, Camera *camera, s8 playerId, s8 playerRe
|
||||
void func_80020524(void) {
|
||||
s16 i;
|
||||
|
||||
func_80027560(D_80164AD0[0], D_80164AB0[0], D_80164AC0[0], D_80164AC0[0], D_801651D0[D_80164AC0[0]][D_80164AB0[0]]);
|
||||
func_80027560(D_80164AD0[0], D_80164AB0[0], D_80164AC0[0], D_80164AC0[0], D_801651D0[D_80164AC0[0]][D_80164AB0[0]], 0);
|
||||
func_8006E5AC(gPlayerOneCopy, 0, 0);
|
||||
func_8006E5AC(gPlayerTwo, 1, 0);
|
||||
func_8006E5AC(gPlayerThree, 2, 0);
|
||||
@@ -272,21 +272,32 @@ void func_80020524(void) {
|
||||
|
||||
for (i = 1; i < gPlayersToRenderCount; i++) {
|
||||
|
||||
func_80027560(D_80164AD0[i], D_80164AB0[i], D_80164AC0[i], D_80164AC0[i], D_801651D0[D_80164AC0[i]][D_80164AB0[i]]);
|
||||
func_80027560(D_80164AD0[i], D_80164AB0[i], D_80164AC0[i], D_80164AC0[i], D_801651D0[D_80164AC0[i]][D_80164AB0[i]], i);
|
||||
|
||||
mio0decode((u8*) D_802DFB80[D_801651D0[D_80164AC0[i - 1]][D_80164AB0[i - 1]]][D_80164AC0[i - 1]][D_80164AB0[i - 1]].unk_00,
|
||||
D_802BFB80.arraySize8[D_801651D0[D_80164AC0[i - 1]][D_80164AB0[i - 1]]][D_80164AC0[i - 1]][D_80164AB0[i - 1]].pixel_index_array);
|
||||
osRecvMesg(&gDmaMesgQueue, &gMainReceivedMesg, OS_MESG_BLOCK);
|
||||
//size_t textureSize = ResourceGetSizeByName(texture);
|
||||
//printf("test %s\n",texture);
|
||||
// memcpy(vAddr, texture, textureSize);
|
||||
|
||||
//mio0decode((u8*) D_802DFB80[D_801651D0[D_80164AC0[i - 1]][D_80164AB0[i - 1]]][D_80164AC0[i - 1]][D_80164AB0[i - 1]].unk_00,
|
||||
// D_802BFB80.arraySize8[D_801651D0[D_80164AC0[i - 1]][D_80164AB0[i - 1]]][D_80164AC0[i - 1]][D_80164AB0[i - 1]].pixel_index_array);
|
||||
|
||||
// memcpy(&D_802BFB80.arraySize8[D_801651D0[D_80164AC0[i - 1]][D_80164AB0[i - 1]]][D_80164AC0[i - 1]][D_80164AB0[i - 1]].pixel_index_array,
|
||||
// D_802DFB80[D_801651D0[D_80164AC0[i - 1]][D_80164AB0[i - 1]]][D_80164AC0[i - 1]][D_80164AB0[i - 1]].unk_00, 0x1000);
|
||||
|
||||
//osRecvMesg(&gDmaMesgQueue, &gMainReceivedMesg, OS_MESG_BLOCK);
|
||||
}
|
||||
|
||||
mio0decode((u8*) D_802DFB80[D_801651D0[D_80164AC0[gPlayersToRenderCount-1]][D_80164AB0[gPlayersToRenderCount-1]]][D_80164AC0[gPlayersToRenderCount-1]][D_80164AB0[gPlayersToRenderCount-1]].unk_00,
|
||||
D_802BFB80.arraySize8[D_801651D0[D_80164AC0[gPlayersToRenderCount-1]][D_80164AB0[gPlayersToRenderCount-1]]][D_80164AC0[gPlayersToRenderCount-1]][D_80164AB0[gPlayersToRenderCount-1]].pixel_index_array);
|
||||
//mio0decode((u8*) D_802DFB80[D_801651D0[D_80164AC0[gPlayersToRenderCount-1]][D_80164AB0[gPlayersToRenderCount-1]]][D_80164AC0[gPlayersToRenderCount-1]][D_80164AB0[gPlayersToRenderCount-1]].unk_00,
|
||||
// D_802BFB80.arraySize8[D_801651D0[D_80164AC0[gPlayersToRenderCount-1]][D_80164AB0[gPlayersToRenderCount-1]]][D_80164AC0[gPlayersToRenderCount-1]][D_80164AB0[gPlayersToRenderCount-1]].pixel_index_array);
|
||||
|
||||
// memcpy(&D_802BFB80.arraySize8[D_801651D0[D_80164AC0[gPlayersToRenderCount-1]][D_80164AB0[gPlayersToRenderCount-1]]][D_80164AC0[gPlayersToRenderCount-1]][D_80164AB0[gPlayersToRenderCount-1]].pixel_index_array,
|
||||
// D_802DFB80[D_801651D0[D_80164AC0[gPlayersToRenderCount-1]][D_80164AB0[gPlayersToRenderCount-1]]][D_80164AC0[gPlayersToRenderCount-1]][D_80164AB0[gPlayersToRenderCount-1]].unk_00, 0x1000);
|
||||
|
||||
}
|
||||
|
||||
void func_8002088C(void) {
|
||||
s16 var_s0;
|
||||
|
||||
func_80027560(D_80164AD0[0], D_80164AB0[0], D_80164AC0[0], D_80164AC0[0], D_801651D0[D_80164AC0[0]][D_80164AB0[0]]);
|
||||
func_8006E634(gPlayerOneCopy, 0, 1);
|
||||
func_8006E634(gPlayerTwo, 1, 1);
|
||||
func_8006E634(gPlayerThree, 2, 1);
|
||||
@@ -299,51 +310,59 @@ void func_8002088C(void) {
|
||||
}
|
||||
osRecvMesg(&gDmaMesgQueue, &gMainReceivedMesg, OS_MESG_BLOCK);
|
||||
for (var_s0 = 1; var_s0 < gPlayersToRenderCount; var_s0++) {
|
||||
func_80027560(D_80164AD0[var_s0], D_80164AB0[var_s0], D_80164AC0[var_s0], D_80164AC0[var_s0], D_801651D0[D_80164AC0[var_s0]][D_80164AB0[var_s0]]);
|
||||
mio0decode((u8*) D_802DFB80[D_801651D0[D_80164AC0[var_s0 - 1]][D_80164AB0[var_s0 - 1]]][D_80164AC0[var_s0 - 1]][D_80164AB0[var_s0 - 1]].unk_00,
|
||||
D_802BFB80.arraySize8[D_801651D0[D_80164AC0[var_s0 - 1]][D_80164AB0[var_s0 - 1]]][D_80164AC0[var_s0 - 1]][D_80164AB0[var_s0 - 1]].pixel_index_array);
|
||||
osRecvMesg(&gDmaMesgQueue, &gMainReceivedMesg, OS_MESG_BLOCK);
|
||||
func_80027560(D_80164AD0[var_s0], D_80164AB0[var_s0], D_80164AC0[var_s0], D_80164AC0[var_s0], D_801651D0[D_80164AC0[var_s0]][D_80164AB0[var_s0]], var_s0);
|
||||
//mio0decode((u8*) D_802DFB80[D_801651D0[D_80164AC0[var_s0 - 1]][D_80164AB0[var_s0 - 1]]][D_80164AC0[var_s0 - 1]][D_80164AB0[var_s0 - 1]].unk_00,
|
||||
// D_802BFB80.arraySize8[D_801651D0[D_80164AC0[var_s0 - 1]][D_80164AB0[var_s0 - 1]]][D_80164AC0[var_s0 - 1]][D_80164AB0[var_s0 - 1]].pixel_index_array);
|
||||
|
||||
// memcpy(&D_802BFB80.arraySize8[D_801651D0[D_80164AC0[var_s0 - 1]][D_80164AB0[var_s0 - 1]]][D_80164AC0[var_s0 - 1]][D_80164AB0[var_s0 - 1]].pixel_index_array,
|
||||
// D_802DFB80[D_801651D0[D_80164AC0[var_s0 - 1]][D_80164AB0[var_s0 - 1]]][D_80164AC0[var_s0 - 1]][D_80164AB0[var_s0 - 1]].unk_00, 0x1000);
|
||||
|
||||
//osRecvMesg(&gDmaMesgQueue, &gMainReceivedMesg, OS_MESG_BLOCK);
|
||||
}
|
||||
mio0decode((u8*) D_802DFB80[D_801651D0[D_80164AC0[gPlayersToRenderCount-1]][D_80164AB0[gPlayersToRenderCount-1]]][D_80164AC0[gPlayersToRenderCount-1]][D_80164AB0[gPlayersToRenderCount-1]].unk_00,
|
||||
D_802BFB80.arraySize8[D_801651D0[D_80164AC0[gPlayersToRenderCount-1]][D_80164AB0[gPlayersToRenderCount-1]]][D_80164AC0[gPlayersToRenderCount-1]][D_80164AB0[gPlayersToRenderCount-1]].pixel_index_array);
|
||||
//func_80027560(D_80164AD0[0], D_80164AB0[0], D_80164AC0[0], D_80164AC0[0], D_801651D0[D_80164AC0[0]][D_80164AB0[0]], 0);
|
||||
|
||||
//mio0decode((u8*) D_802DFB80[D_801651D0[D_80164AC0[gPlayersToRenderCount-1]][D_80164AB0[gPlayersToRenderCount-1]]][D_80164AC0[gPlayersToRenderCount-1]][D_80164AB0[gPlayersToRenderCount-1]].unk_00,
|
||||
// D_802BFB80.arraySize8[D_801651D0[D_80164AC0[gPlayersToRenderCount-1]][D_80164AB0[gPlayersToRenderCount-1]]][D_80164AC0[gPlayersToRenderCount-1]][D_80164AB0[gPlayersToRenderCount-1]].pixel_index_array);
|
||||
// memcpy(&D_802BFB80.arraySize8[D_801651D0[D_80164AC0[gPlayersToRenderCount-1]][D_80164AB0[gPlayersToRenderCount-1]]][D_80164AC0[gPlayersToRenderCount-1]][D_80164AB0[gPlayersToRenderCount-1]].pixel_index_array,
|
||||
// D_802DFB80[D_801651D0[D_80164AC0[gPlayersToRenderCount-1]][D_80164AB0[gPlayersToRenderCount-1]]][D_80164AC0[gPlayersToRenderCount-1]][D_80164AB0[gPlayersToRenderCount-1]].unk_00, 0x1000);
|
||||
}
|
||||
|
||||
void func_80020BF4(void) {
|
||||
s16 var_s0;
|
||||
|
||||
func_80027560(D_80164AD0[0], D_80164AB0[0] + 4, D_80164AC0[0], D_80164AC0[0] - 2, D_801651D0[D_80164AC0[0]][D_80164AB0[0]]);
|
||||
func_8006E6BC(gPlayerOneCopy, 0, 2);
|
||||
func_8006E6BC(gPlayerTwo, 1, 2);
|
||||
func_8006E6BC(gPlayerThree, 2, 2);
|
||||
func_8006E6BC(gPlayerFour, 3, 2);
|
||||
osRecvMesg(&gDmaMesgQueue, &gMainReceivedMesg, OS_MESG_BLOCK);
|
||||
for (var_s0 = 1; var_s0 < gPlayersToRenderCount; var_s0++) {
|
||||
func_80027560(D_80164AD0[var_s0], D_80164AB0[var_s0] + 4, D_80164AC0[var_s0], D_80164AC0[var_s0] - 2, D_801651D0[D_80164AC0[var_s0]][D_80164AB0[var_s0]]);
|
||||
mio0decode((u8*) D_802DFB80[D_801651D0[D_80164AC0[var_s0 - 1]][D_80164AB0[var_s0 - 1]]][D_80164AC0[var_s0 - 1] - 2][D_80164AB0[var_s0 - 1] + 4].unk_00,
|
||||
D_802BFB80.arraySize8[D_801651D0[D_80164AC0[var_s0 - 1]][D_80164AB0[var_s0 - 1]]][D_80164AC0[var_s0 - 1] - 2][D_80164AB0[var_s0 - 1] + 4].pixel_index_array);
|
||||
osRecvMesg(&gDmaMesgQueue, &gMainReceivedMesg, OS_MESG_BLOCK);
|
||||
func_80027560(D_80164AD0[var_s0], D_80164AB0[var_s0] + 4, D_80164AC0[var_s0], D_80164AC0[var_s0] - 2, D_801651D0[D_80164AC0[var_s0]][D_80164AB0[var_s0]], var_s0);
|
||||
// mio0decode((u8*) D_802DFB80[D_801651D0[D_80164AC0[var_s0 - 1]][D_80164AB0[var_s0 - 1]]][D_80164AC0[var_s0 - 1] - 2][D_80164AB0[var_s0 - 1] + 4].unk_00,
|
||||
// D_802BFB80.arraySize8[D_801651D0[D_80164AC0[var_s0 - 1]][D_80164AB0[var_s0 - 1]]][D_80164AC0[var_s0 - 1] - 2][D_80164AB0[var_s0 - 1] + 4].pixel_index_array);
|
||||
// osRecvMesg(&gDmaMesgQueue, &gMainReceivedMesg, OS_MESG_BLOCK);
|
||||
}
|
||||
mio0decode((u8*) D_802DFB80[D_801651D0[D_80164AC0[gPlayersToRenderCount-1]][D_80164AB0[gPlayersToRenderCount-1]]][D_80164AC0[gPlayersToRenderCount-1] - 2][D_80164AB0[gPlayersToRenderCount-1] + 4].unk_00,
|
||||
D_802BFB80.arraySize8[D_801651D0[D_80164AC0[gPlayersToRenderCount-1]][D_80164AB0[gPlayersToRenderCount-1]]][D_80164AC0[gPlayersToRenderCount-1] - 2][D_80164AB0[gPlayersToRenderCount-1] + 4].pixel_index_array);
|
||||
//func_80027560(D_80164AD0[0], D_80164AB0[0] + 4, D_80164AC0[0], D_80164AC0[0] - 2, D_801651D0[D_80164AC0[0]][D_80164AB0[0]], 0);
|
||||
// mio0decode((u8*) D_802DFB80[D_801651D0[D_80164AC0[gPlayersToRenderCount-1]][D_80164AB0[gPlayersToRenderCount-1]]][D_80164AC0[gPlayersToRenderCount-1] - 2][D_80164AB0[gPlayersToRenderCount-1] + 4].unk_00,
|
||||
// D_802BFB80.arraySize8[D_801651D0[D_80164AC0[gPlayersToRenderCount-1]][D_80164AB0[gPlayersToRenderCount-1]]][D_80164AC0[gPlayersToRenderCount-1] - 2][D_80164AB0[gPlayersToRenderCount-1] + 4].pixel_index_array);
|
||||
}
|
||||
|
||||
void func_80020F1C(void) {
|
||||
s16 var_s0;
|
||||
|
||||
func_80027560(D_80164AD0[0], D_80164AB0[0] + 4, D_80164AC0[0], D_80164AC0[0] - 2, D_801651D0[D_80164AC0[0]][D_80164AB0[0]]);
|
||||
func_8006E744(gPlayerOneCopy, 0, 3);
|
||||
func_8006E744(gPlayerTwo, 1, 3);
|
||||
func_8006E744(gPlayerThree, 2, 3);
|
||||
func_8006E744(gPlayerFour, 3, 3);
|
||||
osRecvMesg(&gDmaMesgQueue, &gMainReceivedMesg, OS_MESG_BLOCK);
|
||||
for (var_s0 = 1; var_s0 < gPlayersToRenderCount; var_s0++) {
|
||||
func_80027560(D_80164AD0[var_s0], D_80164AB0[var_s0] + 4, D_80164AC0[var_s0], D_80164AC0[var_s0] - 2, D_801651D0[D_80164AC0[var_s0]][D_80164AB0[var_s0]]);
|
||||
mio0decode((u8*) D_802DFB80[D_801651D0[D_80164AC0[var_s0 - 1]][D_80164AB0[var_s0 - 1]]][D_80164AC0[var_s0 - 1] - 2][D_80164AB0[var_s0 - 1] + 4].unk_00,
|
||||
D_802BFB80.arraySize8[D_801651D0[D_80164AC0[var_s0 - 1]][D_80164AB0[var_s0 - 1]]][D_80164AC0[var_s0 - 1] - 2][D_80164AB0[var_s0 - 1] + 4].pixel_index_array);
|
||||
osRecvMesg(&gDmaMesgQueue, &gMainReceivedMesg, OS_MESG_BLOCK);
|
||||
func_80027560(D_80164AD0[var_s0], D_80164AB0[var_s0] + 4, D_80164AC0[var_s0], D_80164AC0[var_s0] - 2, D_801651D0[D_80164AC0[var_s0]][D_80164AB0[var_s0]], var_s0);
|
||||
// mio0decode((u8*) D_802DFB80[D_801651D0[D_80164AC0[var_s0 - 1]][D_80164AB0[var_s0 - 1]]][D_80164AC0[var_s0 - 1] - 2][D_80164AB0[var_s0 - 1] + 4].unk_00,
|
||||
// D_802BFB80.arraySize8[D_801651D0[D_80164AC0[var_s0 - 1]][D_80164AB0[var_s0 - 1]]][D_80164AC0[var_s0 - 1] - 2][D_80164AB0[var_s0 - 1] + 4].pixel_index_array);
|
||||
// osRecvMesg(&gDmaMesgQueue, &gMainReceivedMesg, OS_MESG_BLOCK);
|
||||
}
|
||||
mio0decode((u8*) D_802DFB80[D_801651D0[D_80164AC0[gPlayersToRenderCount-1]][D_80164AB0[gPlayersToRenderCount-1]]][D_80164AC0[gPlayersToRenderCount-1] - 2][D_80164AB0[gPlayersToRenderCount-1] + 4].unk_00,
|
||||
D_802BFB80.arraySize8[D_801651D0[D_80164AC0[gPlayersToRenderCount-1]][D_80164AB0[gPlayersToRenderCount-1]]][D_80164AC0[gPlayersToRenderCount-1] - 2][D_80164AB0[gPlayersToRenderCount-1] + 4].pixel_index_array);
|
||||
//func_80027560(D_80164AD0[0], D_80164AB0[0] + 4, D_80164AC0[0], D_80164AC0[0] - 2, D_801651D0[D_80164AC0[0]][D_80164AB0[0]], 0);
|
||||
// mio0decode((u8*) D_802DFB80[D_801651D0[D_80164AC0[gPlayersToRenderCount-1]][D_80164AB0[gPlayersToRenderCount-1]]][D_80164AC0[gPlayersToRenderCount-1] - 2][D_80164AB0[gPlayersToRenderCount-1] + 4].unk_00,
|
||||
// D_802BFB80.arraySize8[D_801651D0[D_80164AC0[gPlayersToRenderCount-1]][D_80164AB0[gPlayersToRenderCount-1]]][D_80164AC0[gPlayersToRenderCount-1] - 2][D_80164AB0[gPlayersToRenderCount-1] + 4].pixel_index_array);
|
||||
}
|
||||
|
||||
void try_render_player(Player *player, s8 playerId, s8 arg2) {
|
||||
@@ -351,7 +370,7 @@ void try_render_player(Player *player, s8 playerId, s8 arg2) {
|
||||
if (((player->type & PLAYER_EXISTS) == PLAYER_EXISTS)
|
||||
&& ((player->type & PLAYER_UNKNOWN_0x40) == 0)) {
|
||||
if ((player->unk_002 & 2 << (arg2 * 4)) == 2 << (arg2 * 4)) {
|
||||
player_render(player, playerId, arg2);
|
||||
render_player(player, playerId, arg2);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1665,40 +1684,40 @@ void player_ice_reflection_render(Player *player, s8 playerId, s8 arg2, s8 arg3)
|
||||
gMatrixEffectCount += 1;
|
||||
}
|
||||
|
||||
void player_render(Player *player, s8 playerId, s8 arg2) {
|
||||
void render_player(Player *player, s8 playerId, s8 screenId) {
|
||||
UNUSED s32 pad[2];
|
||||
s32 temp_t1;
|
||||
s32 var_v1;
|
||||
OSMesg *sp34;
|
||||
|
||||
func_80026B4C(player, playerId, arg2, D_801651D0[arg2][playerId]);
|
||||
if (!(player->unk_002 & (4 << (arg2 * 4)))) {
|
||||
func_80026B4C(player, playerId, screenId, D_801651D0[screenId][playerId]);
|
||||
if (!(player->unk_002 & (4 << (screenId * 4)))) {
|
||||
var_v1 = 0;
|
||||
} else {
|
||||
var_v1 = 8;
|
||||
}
|
||||
func_80023BF0(player, playerId, arg2, var_v1);
|
||||
temp_t1 = 8 << (arg2 * 4);
|
||||
func_80023BF0(player, playerId, screenId, var_v1);
|
||||
temp_t1 = 8 << (screenId * 4);
|
||||
if ((temp_t1 == (player->unk_002 & temp_t1)) && (player->unk_110.unk3C[2] <= 50.0f) && (player->surfaceType != ICE)) {
|
||||
if ((player->effects & BOO_EFFECT) == BOO_EFFECT) {
|
||||
if (playerId == arg2) {
|
||||
render_player_shadow(player, playerId, arg2);
|
||||
if (playerId == screenId) {
|
||||
render_player_shadow(player, playerId, screenId);
|
||||
}
|
||||
} else {
|
||||
render_player_shadow(player, playerId, arg2);
|
||||
render_player_shadow(player, playerId, screenId);
|
||||
}
|
||||
}
|
||||
if ((player->type & PLAYER_INVISIBLE_OR_BOMB) != PLAYER_INVISIBLE_OR_BOMB) {
|
||||
kart_render(player, playerId, arg2, var_v1);
|
||||
kart_render(player, playerId, screenId, var_v1);
|
||||
} else {
|
||||
ghost_render(player, playerId, arg2, var_v1);
|
||||
ghost_render(player, playerId, screenId, var_v1);
|
||||
}
|
||||
osRecvMesg(&gDmaMesgQueue, (OSMesg *) &sp34, OS_MESG_BLOCK);
|
||||
if ((temp_t1 == (player->unk_002 & temp_t1)) && (player->surfaceType == ICE) && ((player->unk_0CA & 1) != 1) && (player->unk_110.unk3C[2] <= 30.0f)) {
|
||||
player_ice_reflection_render(player, playerId, arg2, var_v1);
|
||||
player_ice_reflection_render(player, playerId, screenId, var_v1);
|
||||
}
|
||||
if (player->boostPower >= 2.0f) {
|
||||
func_80025DE8(player, playerId, arg2, var_v1);
|
||||
func_80025DE8(player, playerId, screenId, var_v1);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1731,27 +1750,30 @@ void func_80026A48(Player *player, s8 arg1) {
|
||||
#define D_802F1F80_WHEEL(a, b, c) &D_802F1F80[a][b][(c * 0x100) + 0xC0]
|
||||
#endif
|
||||
|
||||
void func_80026B4C(Player *player, s8 playerId, s8 arg2, s8 arg3) {
|
||||
s16 temp_t0 = D_801650D0[arg2][playerId];
|
||||
s16 temp_t1 = D_80165110[arg2][playerId];
|
||||
void func_80026B4C(Player *player, s8 playerId, s8 screenId, s8 arg3) {
|
||||
s16 temp_t0 = D_801650D0[screenId][playerId];
|
||||
s16 temp_t1 = D_80165110[screenId][playerId];
|
||||
s16 temp_t2 = player->unk_240;
|
||||
s16 temp_num = 0x40; // setting this as a variable gets rid of regalloc
|
||||
|
||||
u8 *wheel0 = LOAD_ASSET(D_800DDE34[player->characterId][temp_t1]);
|
||||
u8 *wheel1 = LOAD_ASSET(D_800DDE54[player->characterId][temp_t1]);
|
||||
|
||||
if (((player->effects & 0x4000) == 0x4000) && ((player->type & PLAYER_START_SEQUENCE) == 0)) {
|
||||
if (((player->effects & 0x80) != 0x80) && ((player->effects & 0x40) != 0x40)
|
||||
&& ((player->effects & 0x20000) != 0x20000) && ((player->effects & 0x80000) != 0x80000)
|
||||
&& ((player->effects & 0x800000) != 0x800000) && ((player->unk_044 & 0x800) == 0)) {
|
||||
|
||||
if (temp_t0 <= 20) {
|
||||
func_80027C74(player, (s32) (D_800DDE34[player->characterId][temp_t1] + (temp_t0 * temp_num * 4) + ((temp_t2 >> 8) * 0x40)), D_802F1F80_WHEEL(arg3, arg2, playerId), 0x80);
|
||||
func_80027C74(player, (uintptr_t*) (wheel0 + (temp_t0 * temp_num * 4) + ((temp_t2 >> 8) * 0x40)), D_802F1F80_WHEEL(arg3, screenId, playerId), 0x80);
|
||||
} else {
|
||||
func_80027C74(player, (s32) (D_800DDE54[player->characterId][temp_t1] + (temp_t0 - 21) * (temp_num * 4) + ((temp_t2 >> 8) * 0x40) + 0x600), D_802F1F80_WHEEL(arg3, arg2, playerId), 0x80);
|
||||
func_80027C74(player, (uintptr_t*) (wheel1 + (temp_t0 - 21) * (temp_num * 4) + ((temp_t2 >> 8) * 0x40) + 0x600), D_802F1F80_WHEEL(arg3, screenId, playerId), 0x80);
|
||||
}
|
||||
} else {
|
||||
if (temp_t0 == 0) {
|
||||
func_80027C74(player, (s32) (D_800DDE34[player->characterId][temp_t1] + (temp_t0 * temp_num * 4) + ((temp_t2 >> 8) * 0x40)), D_802F1F80_WHEEL(arg3, arg2, playerId), 0x80);
|
||||
func_80027C74(player, (uintptr_t*) (wheel0 + (temp_t0 * temp_num * 4) + ((temp_t2 >> 8) * 0x40)), D_802F1F80_WHEEL(arg3, screenId, playerId), 0x80);
|
||||
} else {
|
||||
func_80027C74(player, (s32) (D_800DDE54[player->characterId][temp_t1] + (temp_t0 * temp_num * 4) + ((temp_t2 >> 8) * 0x40)), D_802F1F80_WHEEL(arg3, arg2, playerId), 0x80);
|
||||
func_80027C74(player, (uintptr_t*) (wheel1 + (temp_t0 * temp_num * 4) + ((temp_t2 >> 8) * 0x40)), D_802F1F80_WHEEL(arg3, screenId, playerId), 0x80);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
@@ -1760,15 +1782,15 @@ void func_80026B4C(Player *player, s8 playerId, s8 arg2, s8 arg3) {
|
||||
&& ((player->effects & 0x20000) != 0x20000) && ((player->unk_044 & 0x800) == 0)) {
|
||||
|
||||
if (temp_t0 <= 20) {
|
||||
func_80027C74(player, (s32) (D_800DDE34[player->characterId][temp_t1] + (temp_t0 * temp_num * 4) + ((temp_t2 >> 8) * 0x40)), D_802F1F80_WHEEL(arg3, arg2, playerId), 0x80);
|
||||
func_80027C74(player, (uintptr_t*) (wheel0 + (temp_t0 * temp_num * 4) + ((temp_t2 >> 8) * 0x40)), D_802F1F80_WHEEL(arg3, screenId, playerId), 0x80);
|
||||
} else {
|
||||
func_80027C74(player, (s32) (D_800DDE54[player->characterId][temp_t1] + (temp_t0 - 21) * (temp_num * 4) + ((temp_t2 >> 8) * 0x40) + 0x600), D_802F1F80_WHEEL(arg3, arg2, playerId), 0x80);
|
||||
func_80027C74(player, (uintptr_t*) (wheel1 + (temp_t0 - 21) * (temp_num * 4) + ((temp_t2 >> 8) * 0x40) + 0x600), D_802F1F80_WHEEL(arg3, screenId, playerId), 0x80);
|
||||
}
|
||||
} else {
|
||||
if (temp_t0 == 0) {
|
||||
func_80027C74(player, (s32) (D_800DDE34[player->characterId][temp_t1] + (temp_t0 * temp_num * 4) + ((temp_t2 >> 8) * 0x40)), D_802F1F80_WHEEL(arg3, arg2, playerId), 0x80);
|
||||
func_80027C74(player, (uintptr_t*) (wheel0 + (temp_t0 * temp_num * 4) + ((temp_t2 >> 8) * 0x40)), D_802F1F80_WHEEL(arg3, screenId, playerId), 0x80);
|
||||
} else {
|
||||
func_80027C74(player, (s32) (D_800DDE54[player->characterId][temp_t1] + (temp_t0 * temp_num * 4) + ((temp_t2 >> 8) * 0x40)), D_802F1F80_WHEEL(arg3, arg2, playerId), 0x80);
|
||||
func_80027C74(player, (uintptr_t*) (wheel1 + (temp_t0 * temp_num * 4) + ((temp_t2 >> 8) * 0x40)), D_802F1F80_WHEEL(arg3, screenId, playerId), 0x80);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user