mirror of
https://github.com/HarbourMasters/SpaghettiKart
synced 2026-05-23 15:02:12 -04:00
fix multiplayer character not show
This commit is contained in:
+38
-37
@@ -536,7 +536,7 @@ void render_players_on_screen_one(void) {
|
||||
|
||||
// This call moved here to sync kart texture and wheel texture tlut loading/rendering
|
||||
if (gPlayersToRenderCount != 0) {
|
||||
load_kart_texture_and_render_kart_particle_on_screen_one();
|
||||
load_kart_texture_and_render_kart_particle_on_screen_one();
|
||||
}
|
||||
|
||||
try_rendering_player(gPlayerOne, PLAYER_ONE, PLAYER_ONE);
|
||||
@@ -1637,12 +1637,14 @@ void render_kart(Player* player, s8 playerId, s8 screenId, s8 arg3) {
|
||||
sp14C[1] = player->unk_048[screenId];
|
||||
sp14C[2] = player->unk_050[screenId];
|
||||
if (((s32) player->effects & HIT_EFFECT) == HIT_EFFECT) {
|
||||
func_80062B18(&sp148, &sp144, &sp140, 0.0f, 8.0f, 0.0f, -player->unk_048[screenId], player->unk_050[screenId]);
|
||||
func_80062B18(&sp148, &sp144, &sp140, 0.0f, 8.0f, 0.0f, -player->unk_048[screenId],
|
||||
player->unk_050[screenId]);
|
||||
sp154[1] = (player->pos[1] - player->boundingBoxSize) + player->unk_108;
|
||||
sp154[0] = player->pos[0] + sp148;
|
||||
sp154[2] = player->pos[2] + sp140;
|
||||
} else {
|
||||
func_80062B18(&sp148, &sp144, &sp140, 0.0f, 1.5f, 0.0f, -player->unk_048[screenId], player->unk_050[screenId]);
|
||||
func_80062B18(&sp148, &sp144, &sp140, 0.0f, 1.5f, 0.0f, -player->unk_048[screenId],
|
||||
player->unk_050[screenId]);
|
||||
sp154[1] = (player->pos[1] - player->boundingBoxSize) + player->unk_108 + (sp144 - 2.0);
|
||||
sp154[0] = player->pos[0] + sp148;
|
||||
sp154[2] = player->pos[2] + sp140;
|
||||
@@ -1651,16 +1653,17 @@ void render_kart(Player* player, s8 playerId, s8 screenId, s8 arg3) {
|
||||
#ifdef AVOID_UB
|
||||
gPlayerPalette = &gPlayerPalettesList[D_801651D0[screenId][playerId]][screenId][playerId];
|
||||
#else
|
||||
gPlayerPalette = (struct_D_802F1F80*) &gPlayerPalettesList[D_801651D0[screenId][playerId]][screenId][playerId * 0x100];
|
||||
gPlayerPalette =
|
||||
(struct_D_802F1F80*) &gPlayerPalettesList[D_801651D0[screenId][playerId]][screenId][playerId * 0x100];
|
||||
#endif
|
||||
if ((screenId == 0) || (screenId == 1)) {
|
||||
sKartUpperTexture = &D_802BFB80.arraySize8[D_801651D0[screenId][playerId]][screenId][playerId].pixel_index_array[0];
|
||||
sKartUpperTexture = gEncodedKartTexture[D_801651D0[screenId][playerId]][screenId][playerId].unk_00;
|
||||
#ifdef TARGET_N64
|
||||
sKartLowerTexture = &D_802BFB80.arraySize8[D_801651D0[screenId][playerId]][screenId][playerId].pixel_index_array[0x7C0];
|
||||
sKartLowerTexture =
|
||||
&D_802BFB80.arraySize8[D_801651D0[screenId][playerId]][screenId][playerId].pixel_index_array[0x7C0];
|
||||
#endif
|
||||
} else {
|
||||
sKartUpperTexture =
|
||||
&D_802BFB80.arraySize8[D_801651D0[screenId][playerId]][screenId - 1][playerId - 4].pixel_index_array[0];
|
||||
sKartUpperTexture = gEncodedKartTexture[D_801651D0[screenId][playerId]][screenId - 1][playerId - 4].unk_00;
|
||||
#ifdef TARGET_N64
|
||||
sKartLowerTexture =
|
||||
&D_802BFB80.arraySize8[D_801651D0[screenId][playerId]][screenId - 1][playerId - 4].pixel_index_array[0x7C0];
|
||||
@@ -1668,7 +1671,7 @@ void render_kart(Player* player, s8 playerId, s8 screenId, s8 arg3) {
|
||||
}
|
||||
mtxf_translate_rotate(mtx, sp154, sp14C);
|
||||
mtxf_scale2(mtx, gCharacterSize[player->characterId] * player->size);
|
||||
//convert_to_fixed_point_matrix(&gGfxPool->mtxKart[playerId + (screenId * 8)], mtx);
|
||||
// convert_to_fixed_point_matrix(&gGfxPool->mtxKart[playerId + (screenId * 8)], mtx);
|
||||
|
||||
if ((player->effects & BOO_EFFECT) == BOO_EFFECT) {
|
||||
if (screenId == playerId) {
|
||||
@@ -1680,10 +1683,10 @@ void render_kart(Player* player, s8 playerId, s8 screenId, s8 arg3) {
|
||||
gPlayerCyanEffect[playerId], gPlayerMagentaEffect[playerId], gPlayerYellowEffect[playerId],
|
||||
(s32) player->unk_0C6);
|
||||
gDPSetRenderMode(gDisplayListHead++,
|
||||
AA_EN | Z_CMP | Z_UPD | IM_RD | CVG_DST_WRAP | ZMODE_XLU | CVG_X_ALPHA | FORCE_BL |
|
||||
GBL_c1(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_1MA),
|
||||
AA_EN | Z_CMP | Z_UPD | IM_RD | CVG_DST_WRAP | ZMODE_XLU | CVG_X_ALPHA | FORCE_BL |
|
||||
GBL_c2(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_1MA));
|
||||
AA_EN | Z_CMP | Z_UPD | IM_RD | CVG_DST_WRAP | ZMODE_XLU | CVG_X_ALPHA | FORCE_BL |
|
||||
GBL_c1(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_1MA),
|
||||
AA_EN | Z_CMP | Z_UPD | IM_RD | CVG_DST_WRAP | ZMODE_XLU | CVG_X_ALPHA | FORCE_BL |
|
||||
GBL_c2(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_1MA));
|
||||
} else {
|
||||
// gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxKart[playerId + (screenId * 8)]),
|
||||
// G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
@@ -1695,10 +1698,10 @@ void render_kart(Player* player, s8 playerId, s8 screenId, s8 arg3) {
|
||||
gPlayerCyanEffect[playerId], gPlayerMagentaEffect[playerId], gPlayerYellowEffect[playerId],
|
||||
D_8018D970[playerId]);
|
||||
gDPSetRenderMode(gDisplayListHead++,
|
||||
AA_EN | Z_CMP | Z_UPD | IM_RD | CVG_DST_WRAP | ZMODE_XLU | CVG_X_ALPHA | FORCE_BL |
|
||||
GBL_c1(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_1MA),
|
||||
AA_EN | Z_CMP | Z_UPD | IM_RD | CVG_DST_WRAP | ZMODE_XLU | CVG_X_ALPHA | FORCE_BL |
|
||||
GBL_c2(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_1MA));
|
||||
AA_EN | Z_CMP | Z_UPD | IM_RD | CVG_DST_WRAP | ZMODE_XLU | CVG_X_ALPHA | FORCE_BL |
|
||||
GBL_c1(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_1MA),
|
||||
AA_EN | Z_CMP | Z_UPD | IM_RD | CVG_DST_WRAP | ZMODE_XLU | CVG_X_ALPHA | FORCE_BL |
|
||||
GBL_c2(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_1MA));
|
||||
}
|
||||
} else if (((player->unk_0CA & 4) == 4) || (player->soundEffects & 0x08000000) ||
|
||||
(player->soundEffects & 0x04000000)) {
|
||||
@@ -1778,13 +1781,11 @@ void render_ghost(Player* player, s8 playerId, s8 screenId, s8 arg3) {
|
||||
(struct_D_802F1F80*) &gPlayerPalettesList[D_801651D0[screenId][playerId]][screenId][playerId * 0x100];
|
||||
#endif
|
||||
if ((screenId == 0) || (screenId == 1)) {
|
||||
sKartUpperTexture =
|
||||
&D_802BFB80.arraySize8[D_801651D0[screenId][playerId]][screenId][playerId].pixel_index_array[0];
|
||||
sKartUpperTexture = gEncodedKartTexture[D_801651D0[screenId][playerId]][screenId][playerId].unk_00;
|
||||
// sKartLowerTexture =
|
||||
// &D_802BFB80.arraySize8[D_801651D0[screenId][playerId]][screenId][playerId].pixel_index_array[0x7C0];
|
||||
} else {
|
||||
sKartUpperTexture =
|
||||
&D_802BFB80.arraySize8[D_801651D0[screenId][playerId]][screenId - 1][playerId - 4].pixel_index_array[0];
|
||||
sKartUpperTexture = gEncodedKartTexture[D_801651D0[screenId][playerId]][screenId - 1][playerId - 4].unk_00;
|
||||
// sKartLowerTexture = &D_802BFB80.arraySize8[D_801651D0[screenId][playerId]][screenId - 1][playerId -
|
||||
// 4].pixel_index_array[0x7C0];
|
||||
}
|
||||
@@ -1803,10 +1804,10 @@ void render_ghost(Player* player, s8 playerId, s8 screenId, s8 arg3) {
|
||||
func_8004B614(gPlayerRedEffect[playerId], gPlayerGreenEffect[playerId], gPlayerBlueEffect[playerId],
|
||||
gPlayerCyanEffect[playerId], gPlayerMagentaEffect[playerId], gPlayerYellowEffect[playerId], spC2);
|
||||
gDPSetRenderMode(gDisplayListHead++,
|
||||
AA_EN | Z_CMP | Z_UPD | IM_RD | CVG_DST_WRAP | ZMODE_XLU | CVG_X_ALPHA | FORCE_BL |
|
||||
GBL_c1(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_1MA),
|
||||
AA_EN | Z_CMP | Z_UPD | IM_RD | CVG_DST_WRAP | ZMODE_XLU | CVG_X_ALPHA | FORCE_BL |
|
||||
GBL_c2(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_1MA));
|
||||
AA_EN | Z_CMP | Z_UPD | IM_RD | CVG_DST_WRAP | ZMODE_XLU | CVG_X_ALPHA | FORCE_BL |
|
||||
GBL_c1(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_1MA),
|
||||
AA_EN | Z_CMP | Z_UPD | IM_RD | CVG_DST_WRAP | ZMODE_XLU | CVG_X_ALPHA | FORCE_BL |
|
||||
GBL_c2(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_1MA));
|
||||
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_NOLOD);
|
||||
@@ -1848,10 +1849,10 @@ void func_80025DE8(Player* player, s8 playerId, s8 screenId, s8 arg3) {
|
||||
gPlayerCyanEffect[playerId], gPlayerMagentaEffect[playerId], gPlayerYellowEffect[playerId],
|
||||
0x00000040);
|
||||
gDPSetRenderMode(gDisplayListHead++,
|
||||
AA_EN | Z_CMP | Z_UPD | IM_RD | CVG_DST_WRAP | ZMODE_XLU | CVG_X_ALPHA | FORCE_BL |
|
||||
GBL_c1(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_1MA),
|
||||
AA_EN | Z_CMP | Z_UPD | IM_RD | CVG_DST_WRAP | ZMODE_XLU | CVG_X_ALPHA | FORCE_BL |
|
||||
GBL_c2(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_1MA));
|
||||
AA_EN | Z_CMP | Z_UPD | IM_RD | CVG_DST_WRAP | ZMODE_XLU | CVG_X_ALPHA | FORCE_BL |
|
||||
GBL_c1(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_1MA),
|
||||
AA_EN | Z_CMP | Z_UPD | IM_RD | CVG_DST_WRAP | ZMODE_XLU | CVG_X_ALPHA | FORCE_BL |
|
||||
GBL_c2(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_1MA));
|
||||
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_NOLOD);
|
||||
@@ -2002,21 +2003,21 @@ void update_wheel_palette(Player* player, s8 playerId, s8 screenId, s8 arg3) {
|
||||
if (frameId <= 20) {
|
||||
int32_t offset = (((frameId * temp_num * 4) + ((temp_t2 >> 8) * 0x40)) * 2) / 0x80;
|
||||
load_wheel_palette_non_blocking(player, wheelPtr[character][wheel0 + offset],
|
||||
D_802F1F80_WHEEL(arg3, screenId, playerId), 0x80);
|
||||
D_802F1F80_WHEEL(arg3, screenId, playerId), 0x80);
|
||||
} else {
|
||||
int32_t offset = (((((frameId - 21) * (temp_num * 4) + ((temp_t2 >> 8) * 0x40)) + 0x600)) * 2) / 0x80;
|
||||
load_wheel_palette_non_blocking(player, wheelPtr[character][wheel1 + offset],
|
||||
D_802F1F80_WHEEL(arg3, screenId, playerId), 0x80);
|
||||
D_802F1F80_WHEEL(arg3, screenId, playerId), 0x80);
|
||||
}
|
||||
} else {
|
||||
if (frameId == 0) {
|
||||
int32_t offset = (((frameId * temp_num * 4) + ((temp_t2 >> 8) * 0x40)) * 2) / 0x80;
|
||||
load_wheel_palette_non_blocking(player, wheelPtr[character][wheel0 + offset],
|
||||
D_802F1F80_WHEEL(arg3, screenId, playerId), 0x80);
|
||||
D_802F1F80_WHEEL(arg3, screenId, playerId), 0x80);
|
||||
} else {
|
||||
int32_t offset = (((frameId * temp_num * 4) + ((temp_t2 >> 8) * 0x40)) * 2) / 0x80;
|
||||
load_wheel_palette_non_blocking(player, wheelPtr[character][wheel1 + offset],
|
||||
D_802F1F80_WHEEL(arg3, screenId, playerId), 0x80);
|
||||
D_802F1F80_WHEEL(arg3, screenId, playerId), 0x80);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
@@ -2027,22 +2028,22 @@ void update_wheel_palette(Player* player, s8 playerId, s8 screenId, s8 arg3) {
|
||||
if (frameId <= 20) {
|
||||
int32_t offset = (((frameId * temp_num * 4) + ((temp_t2 >> 8) * 0x40)) * 2) / 0x80;
|
||||
load_wheel_palette_non_blocking(player, wheelPtr[character][wheel0 + offset],
|
||||
D_802F1F80_WHEEL(arg3, screenId, playerId), 0x80);
|
||||
D_802F1F80_WHEEL(arg3, screenId, playerId), 0x80);
|
||||
} else {
|
||||
|
||||
int32_t offset = (((((frameId - 21) * (temp_num * 4) + ((temp_t2 >> 8) * 0x40)) + 0x600)) * 2) / 0x80;
|
||||
load_wheel_palette_non_blocking(player, wheelPtr[character][wheel1 + offset],
|
||||
D_802F1F80_WHEEL(arg3, screenId, playerId), 0x80);
|
||||
D_802F1F80_WHEEL(arg3, screenId, playerId), 0x80);
|
||||
}
|
||||
} else {
|
||||
if (frameId == 0) {
|
||||
int32_t offset = (((frameId * temp_num * 4) + ((temp_t2 >> 8) * 0x40)) * 2) / 0x80;
|
||||
load_wheel_palette_non_blocking(player, wheelPtr[character][wheel0 + offset],
|
||||
D_802F1F80_WHEEL(arg3, screenId, playerId), 0x80);
|
||||
D_802F1F80_WHEEL(arg3, screenId, playerId), 0x80);
|
||||
} else {
|
||||
int32_t offset = (((frameId * temp_num * 4) + ((temp_t2 >> 8) * 0x40)) * 2) / 0x80;
|
||||
load_wheel_palette_non_blocking(player, wheelPtr[character][wheel1 + offset],
|
||||
D_802F1F80_WHEEL(arg3, screenId, playerId), 0x80);
|
||||
D_802F1F80_WHEEL(arg3, screenId, playerId), 0x80);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user