diff options
| author | MegaMech <MegaMech@users.noreply.github.com> | 2024-11-14 23:32:55 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-11-14 23:32:55 -0700 |
| commit | 475f167bb2803999c5116bc285601d1f9a05d7de (patch) | |
| tree | 859fec292c5c9807cc9690ebf4f0600f558b6063 /src/render_player.c | |
| parent | 4fbb031dd95f2a84e73fbca269f517e98808d293 (diff) | |
[modding] Big Update PR (#118)
* Implement kart vehicle
* Fix menu CC
* Actors
* variable framerate
* Implement Actors vector
* Fix water & scrolling textures
* Finish ACoin
* Refactor finishline
* Refactor mtx to vector
* Fix refactored screen code bugs
* Fix playlist bug
* Switching courses working now
* Fix podium ceremony
* Mostly Fix Demo and Credits
* Credits Load Actors and Textures
* Fix credits
* Formatting
* Update lus and torch
* Fix water features
* Fix crabs
* Combine function
* Fix wheels
* Add Moon Jump Cheat
* Wheel Change
* Fix smoke due to wheel change
* Fix screens for wheels
* Fix transparency
* Fix staff ghost
* Fix lakitu transition widescreen
* Rename and export credits text
* Fixes
---------
Co-authored-by: MegaMech <7255464+MegaMech@users.noreply.github.com>
Diffstat (limited to 'src/render_player.c')
| -rw-r--r-- | src/render_player.c | 300 |
1 files changed, 153 insertions, 147 deletions
diff --git a/src/render_player.c b/src/render_player.c index 42f5e6d04..64e2fe9be 100644 --- a/src/render_player.c +++ b/src/render_player.c @@ -267,16 +267,7 @@ void load_kart_texture_and_render_kart_particle_on_screen_one(void) { load_kart_texture_non_blocking(gPlayersToRenderPlayer[0], gPlayersToRenderPlayerId[0], gPlayersToRenderScreenId[0], gPlayersToRenderScreenId[0], D_801651D0[gPlayersToRenderScreenId[0]][gPlayersToRenderPlayerId[0]]); - render_kart_particle_on_screen_one(gPlayerOneCopy, PLAYER_ONE, PLAYER_ONE); - render_kart_particle_on_screen_one(gPlayerTwo, PLAYER_TWO, PLAYER_ONE); - render_kart_particle_on_screen_one(gPlayerThree, PLAYER_THREE, PLAYER_ONE); - render_kart_particle_on_screen_one(gPlayerFour, PLAYER_FOUR, PLAYER_ONE); - if (gActiveScreenMode != SCREEN_MODE_3P_4P_SPLITSCREEN) { - render_kart_particle_on_screen_one(gPlayerFive, PLAYER_FIVE, PLAYER_ONE); - render_kart_particle_on_screen_one(gPlayerSix, PLAYER_SIX, PLAYER_ONE); - render_kart_particle_on_screen_one(gPlayerSeven, PLAYER_SEVEN, PLAYER_ONE); - render_kart_particle_on_screen_one(gPlayerEight, PLAYER_EIGHT, PLAYER_ONE); - } + osRecvMesg(&gDmaMesgQueue, &gMainReceivedMesg, OS_MESG_BLOCK); for (i = 1; i < gPlayersToRenderCount; i++) { @@ -338,16 +329,6 @@ void load_kart_texture_and_render_kart_particle_on_screen_two(void) { load_kart_texture_non_blocking(gPlayersToRenderPlayer[0], gPlayersToRenderPlayerId[0], gPlayersToRenderScreenId[0], gPlayersToRenderScreenId[0], D_801651D0[gPlayersToRenderScreenId[0]][gPlayersToRenderPlayerId[0]]); - render_kart_particle_on_screen_two(gPlayerOneCopy, PLAYER_ONE, PLAYER_TWO); - render_kart_particle_on_screen_two(gPlayerTwo, PLAYER_TWO, PLAYER_TWO); - render_kart_particle_on_screen_two(gPlayerThree, PLAYER_THREE, PLAYER_TWO); - render_kart_particle_on_screen_two(gPlayerFour, PLAYER_FOUR, PLAYER_TWO); - if (gActiveScreenMode != SCREEN_MODE_3P_4P_SPLITSCREEN) { - render_kart_particle_on_screen_two(gPlayerFive, PLAYER_FIVE, PLAYER_TWO); - render_kart_particle_on_screen_two(gPlayerSix, PLAYER_SIX, PLAYER_TWO); - render_kart_particle_on_screen_two(gPlayerSeven, PLAYER_SEVEN, PLAYER_TWO); - render_kart_particle_on_screen_two(gPlayerEight, PLAYER_EIGHT, PLAYER_TWO); - } osRecvMesg(&gDmaMesgQueue, &gMainReceivedMesg, OS_MESG_BLOCK); for (var_s0 = 1; var_s0 < gPlayersToRenderCount; var_s0++) { load_kart_texture_non_blocking(gPlayersToRenderPlayer[var_s0], gPlayersToRenderPlayerId[var_s0], @@ -408,10 +389,6 @@ void load_kart_texture_and_render_kart_particle_on_screen_three(void) { load_kart_texture_non_blocking(gPlayersToRenderPlayer[0], gPlayersToRenderPlayerId[0] + 4, gPlayersToRenderScreenId[0], gPlayersToRenderScreenId[0] - 2, D_801651D0[gPlayersToRenderScreenId[0]][gPlayersToRenderPlayerId[0]]); - render_kart_particle_on_screen_three(gPlayerOneCopy, PLAYER_ONE, PLAYER_THREE); - render_kart_particle_on_screen_three(gPlayerTwo, PLAYER_TWO, PLAYER_THREE); - render_kart_particle_on_screen_three(gPlayerThree, PLAYER_THREE, PLAYER_THREE); - render_kart_particle_on_screen_three(gPlayerFour, PLAYER_FOUR, PLAYER_THREE); osRecvMesg(&gDmaMesgQueue, &gMainReceivedMesg, OS_MESG_BLOCK); for (var_s0 = 1; var_s0 < gPlayersToRenderCount; var_s0++) { load_kart_texture_non_blocking(gPlayersToRenderPlayer[var_s0], gPlayersToRenderPlayerId[var_s0] + 4, @@ -472,10 +449,6 @@ void load_kart_texture_and_render_kart_particle_on_screen_four(void) { load_kart_texture_non_blocking(gPlayersToRenderPlayer[0], gPlayersToRenderPlayerId[0] + 4, gPlayersToRenderScreenId[0], gPlayersToRenderScreenId[0] - 2, D_801651D0[gPlayersToRenderScreenId[0]][gPlayersToRenderPlayerId[0]]); - render_kart_particle_on_screen_four(gPlayerOneCopy, PLAYER_ONE, PLAYER_FOUR); - render_kart_particle_on_screen_four(gPlayerTwo, PLAYER_TWO, PLAYER_FOUR); - render_kart_particle_on_screen_four(gPlayerThree, PLAYER_THREE, PLAYER_FOUR); - render_kart_particle_on_screen_four(gPlayerFour, PLAYER_FOUR, PLAYER_FOUR); osRecvMesg(&gDmaMesgQueue, &gMainReceivedMesg, OS_MESG_BLOCK); for (var_s0 = 1; var_s0 < gPlayersToRenderCount; var_s0++) { load_kart_texture_non_blocking(gPlayersToRenderPlayer[var_s0], gPlayersToRenderPlayerId[var_s0] + 4, @@ -559,6 +532,12 @@ void render_players_on_screen_one(void) { init_render_player(gPlayerSeven, camera1, PLAYER_SEVEN, PLAYER_ONE); init_render_player(gPlayerEight, camera1, PLAYER_EIGHT, PLAYER_ONE); } + + // 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(); + } + try_rendering_player(gPlayerOne, PLAYER_ONE, PLAYER_ONE); try_rendering_player(gPlayerTwo, PLAYER_TWO, PLAYER_ONE); try_rendering_player(gPlayerThree, PLAYER_THREE, PLAYER_ONE); @@ -569,8 +548,20 @@ void render_players_on_screen_one(void) { try_rendering_player(gPlayerSeven, PLAYER_SEVEN, PLAYER_ONE); try_rendering_player(gPlayerEight, PLAYER_EIGHT, PLAYER_ONE); } + if (gPlayersToRenderCount != 0) { - load_kart_texture_and_render_kart_particle_on_screen_one(); + // Old call which is out of sync + // load_kart_texture_and_render_kart_particle_on_screen_one(); + render_kart_particle_on_screen_one(gPlayerOneCopy, PLAYER_ONE, PLAYER_ONE); + render_kart_particle_on_screen_one(gPlayerTwo, PLAYER_TWO, PLAYER_ONE); + render_kart_particle_on_screen_one(gPlayerThree, PLAYER_THREE, PLAYER_ONE); + render_kart_particle_on_screen_one(gPlayerFour, PLAYER_FOUR, PLAYER_ONE); + if (gActiveScreenMode != SCREEN_MODE_3P_4P_SPLITSCREEN) { + render_kart_particle_on_screen_one(gPlayerFive, PLAYER_FIVE, PLAYER_ONE); + render_kart_particle_on_screen_one(gPlayerSix, PLAYER_SIX, PLAYER_ONE); + render_kart_particle_on_screen_one(gPlayerSeven, PLAYER_SEVEN, PLAYER_ONE); + render_kart_particle_on_screen_one(gPlayerEight, PLAYER_EIGHT, PLAYER_ONE); + } } else { render_kart_particle_on_screen_one(gPlayerOneCopy, PLAYER_ONE, PLAYER_ONE); render_kart_particle_on_screen_one(gPlayerTwo, PLAYER_TWO, PLAYER_ONE); @@ -746,6 +737,10 @@ void render_players_on_screen_two(void) { init_render_player(gPlayerSeven, camera2, PLAYER_SEVEN, PLAYER_TWO); init_render_player(gPlayerEight, camera2, PLAYER_EIGHT, PLAYER_TWO); } + + // Call moved to sync kart and wheel tlut loading/rendering + load_kart_texture_and_render_kart_particle_on_screen_two(); + try_rendering_player(gPlayerOne, PLAYER_ONE, PLAYER_TWO); try_rendering_player(gPlayerTwo, PLAYER_TWO, PLAYER_TWO); try_rendering_player(gPlayerThree, PLAYER_THREE, PLAYER_TWO); @@ -757,7 +752,17 @@ void render_players_on_screen_two(void) { try_rendering_player(gPlayerEight, PLAYER_EIGHT, PLAYER_TWO); } if (gPlayersToRenderCount != 0) { - load_kart_texture_and_render_kart_particle_on_screen_two(); + // load_kart_texture_and_render_kart_particle_on_screen_two(); + render_kart_particle_on_screen_two(gPlayerOneCopy, PLAYER_ONE, PLAYER_TWO); + render_kart_particle_on_screen_two(gPlayerTwo, PLAYER_TWO, PLAYER_TWO); + render_kart_particle_on_screen_two(gPlayerThree, PLAYER_THREE, PLAYER_TWO); + render_kart_particle_on_screen_two(gPlayerFour, PLAYER_FOUR, PLAYER_TWO); + if (gActiveScreenMode != SCREEN_MODE_3P_4P_SPLITSCREEN) { + render_kart_particle_on_screen_two(gPlayerFive, PLAYER_FIVE, PLAYER_TWO); + render_kart_particle_on_screen_two(gPlayerSix, PLAYER_SIX, PLAYER_TWO); + render_kart_particle_on_screen_two(gPlayerSeven, PLAYER_SEVEN, PLAYER_TWO); + render_kart_particle_on_screen_two(gPlayerEight, PLAYER_EIGHT, PLAYER_TWO); + } } else { render_kart_particle_on_screen_two(gPlayerOneCopy, PLAYER_ONE, PLAYER_TWO); render_kart_particle_on_screen_two(gPlayerTwo, PLAYER_TWO, PLAYER_TWO); @@ -779,12 +784,19 @@ void render_players_on_screen_three(void) { init_render_player(gPlayerTwo, camera3, PLAYER_TWO, PLAYER_THREE); init_render_player(gPlayerThree, camera3, PLAYER_THREE, PLAYER_THREE); init_render_player(gPlayerFour, camera3, PLAYER_FOUR, PLAYER_THREE); + + load_kart_texture_and_render_kart_particle_on_screen_three(); + try_rendering_player(gPlayerOne, PLAYER_ONE, PLAYER_THREE); try_rendering_player(gPlayerTwo, PLAYER_TWO, PLAYER_THREE); try_rendering_player(gPlayerThree, PLAYER_THREE, PLAYER_THREE); try_rendering_player(gPlayerFour, PLAYER_FOUR, PLAYER_THREE); if (gPlayersToRenderCount != 0) { - load_kart_texture_and_render_kart_particle_on_screen_three(); + // load_kart_texture_and_render_kart_particle_on_screen_three(); + render_kart_particle_on_screen_three(gPlayerOneCopy, PLAYER_ONE, PLAYER_THREE); + render_kart_particle_on_screen_three(gPlayerTwo, PLAYER_TWO, PLAYER_THREE); + render_kart_particle_on_screen_three(gPlayerThree, PLAYER_THREE, PLAYER_THREE); + render_kart_particle_on_screen_three(gPlayerFour, PLAYER_FOUR, PLAYER_THREE); } else { render_kart_particle_on_screen_three(gPlayerOneCopy, PLAYER_ONE, PLAYER_THREE); render_kart_particle_on_screen_three(gPlayerTwo, PLAYER_TWO, PLAYER_THREE); @@ -800,12 +812,19 @@ void render_players_on_screen_four(void) { init_render_player(gPlayerTwo, camera4, PLAYER_TWO, PLAYER_FOUR); init_render_player(gPlayerThree, camera4, PLAYER_THREE, PLAYER_FOUR); init_render_player(gPlayerFour, camera4, PLAYER_FOUR, PLAYER_FOUR); + + load_kart_texture_and_render_kart_particle_on_screen_four(); + try_rendering_player(gPlayerOne, PLAYER_ONE, PLAYER_FOUR); try_rendering_player(gPlayerTwo, PLAYER_TWO, PLAYER_FOUR); try_rendering_player(gPlayerThree, PLAYER_THREE, PLAYER_FOUR); try_rendering_player(gPlayerFour, PLAYER_FOUR, PLAYER_FOUR); if (gPlayersToRenderCount != 0) { - load_kart_texture_and_render_kart_particle_on_screen_four(); + // load_kart_texture_and_render_kart_particle_on_screen_four(); + render_kart_particle_on_screen_four(gPlayerOneCopy, PLAYER_ONE, PLAYER_FOUR); + render_kart_particle_on_screen_four(gPlayerTwo, PLAYER_TWO, PLAYER_FOUR); + render_kart_particle_on_screen_four(gPlayerThree, PLAYER_THREE, PLAYER_FOUR); + render_kart_particle_on_screen_four(gPlayerFour, PLAYER_FOUR, PLAYER_FOUR); } else { render_kart_particle_on_screen_four(gPlayerOneCopy, PLAYER_ONE, PLAYER_FOUR); render_kart_particle_on_screen_four(gPlayerTwo, PLAYER_TWO, PLAYER_FOUR); @@ -1447,7 +1466,7 @@ void func_80023BF0(Player* player, s8 playerId, s8 screenId, s8 arg3) { } void render_player_shadow(Player* player, s8 playerId, s8 screenId) { - Mat4 sp118; + Mat4 mtx; UNUSED Mat4 pad; Vec3f spCC; Vec3s spC4; @@ -1485,7 +1504,7 @@ void render_player_shadow(Player* player, s8 playerId, s8 screenId) { spCC[0] = player->pos[0] + ((spB0 * sins(spC0)) + (spAC * coss(spC0))); spCC[1] = player->unk_074 + 1.0f; spCC[2] = player->pos[2] + ((spB0 * coss(spC0)) - (spAC * sins(spC0))); - set_transform_matrix(sp118, spB4, spCC, (spC0 + player->unk_042), + set_transform_matrix(mtx, spB4, spCC, (spC0 + player->unk_042), gCharacterSize[player->characterId] * player->size * var_f2); } else { spC4[0] = player->slopeAccel; @@ -1495,13 +1514,14 @@ void render_player_shadow(Player* player, s8 playerId, s8 screenId) { spCC[0] = player->pos[0] + ((spB0 * sins(spC0)) + (spAC * coss(spC0))); spCC[1] = player->unk_074 + 1.0f; spCC[2] = player->pos[2] + ((spB0 * coss(spC0)) - (spAC * sins(spC0))); - mtxf_translate_rotate(sp118, spCC, spC4); - mtxf_scale2(sp118, gCharacterSize[player->characterId] * player->size); + mtxf_translate_rotate(mtx, spCC, spC4); + mtxf_scale2(mtx, gCharacterSize[player->characterId] * player->size); } - convert_to_fixed_point_matrix(&gGfxPool->mtxShadow[playerId + (screenId * 8)], sp118); + // convert_to_fixed_point_matrix(&gGfxPool->mtxShadow[playerId + (screenId * 8)], mtx); - gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxShadow[playerId + (screenId * 8)]), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + // gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxShadow[playerId + (screenId * 8)]), + // G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + AddShadowMatrix(mtx, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPDisplayList(gDisplayListHead++, D_0D008D58); gDPSetTextureLUT(gDisplayListHead++, G_TT_NONE); @@ -1524,7 +1544,7 @@ void render_player_shadow(Player* player, s8 playerId, s8 screenId) { } void render_player_shadow_credits(Player* player, s8 playerId, s8 arg2) { - Mat4 sp118; + Mat4 mtx; UNUSED Mat4 pad; Vec3f spCC; Vec3s spC4; @@ -1550,12 +1570,14 @@ void render_player_shadow_credits(Player* player, s8 playerId, s8 arg2) { spCC[2] = player->pos[2] + ((spB0 * coss(spC0)) - (spAC * sins(spC0))); spCC[1] = gObjectList[indexObjectList1[playerId]].pos[1] + sp94[playerId]; - mtxf_translate_rotate(sp118, spCC, spC4); - mtxf_scale2(sp118, gCharacterSize[player->characterId] * player->size); - convert_to_fixed_point_matrix(&gGfxPool->mtxShadow[playerId + (arg2 * 8)], sp118); + mtxf_translate_rotate(mtx, spCC, spC4); + mtxf_scale2(mtx, gCharacterSize[player->characterId] * player->size); + // convert_to_fixed_point_matrix(&gGfxPool->mtxShadow[playerId + (arg2 * 8)], mtx); - gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxShadow[playerId + (arg2 * 8)]), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + // gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxShadow[playerId + (arg2 * 8)]), + // G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + + AddShadowMatrix(mtx, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPDisplayList(gDisplayListHead++, D_0D008D58); gDPSetTextureLUT(gDisplayListHead++, G_TT_NONE); @@ -1577,9 +1599,9 @@ void render_player_shadow_credits(Player* player, s8 playerId, s8 arg2) { 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 screenId, s8 arg3) { UNUSED s32 pad; - Mat4 sp1A4; + Mat4 mtx; UNUSED s32 pad2[17]; Vec3f sp154; Vec3s sp14C; @@ -1591,60 +1613,59 @@ void render_kart(Player* player, s8 playerId, s8 arg2, s8 arg3) { if (player->unk_044 & 0x2000) { sp14C[0] = 0; - sp14C[1] = player->unk_048[arg2]; + sp14C[1] = player->unk_048[screenId]; sp14C[2] = 0; - func_80062B18(&sp148, &sp144, &sp140, 0.0f, 1.5f, 0.0f, -player->unk_048[arg2], player->unk_050[arg2]); + 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) + (sp144 - 2.0); sp154[0] = player->pos[0] + sp148; sp154[2] = player->pos[2] + sp140; } else { - thing = (u16) (player->unk_048[arg2] + player->rotation[1] + player->unk_0C0); - temp_v1 = player->unk_0CC[arg2] * sins(thing); + thing = (u16) (player->unk_048[screenId] + player->rotation[1] + player->unk_0C0); + temp_v1 = player->unk_0CC[screenId] * sins(thing); if ((player->effects & 8) == 8) { - sp14C[0] = cameras[arg2].rot[0] - 0x4000; + sp14C[0] = cameras[screenId].rot[0] - 0x4000; } else { sp14C[0] = -temp_v1 * 0.8; } - sp14C[1] = player->unk_048[arg2]; - sp14C[2] = player->unk_050[arg2]; + 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[arg2], player->unk_050[arg2]); + 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[arg2], player->unk_050[arg2]); + 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; } } #ifdef AVOID_UB - gPlayerPalette = &gPlayerPalettesList[D_801651D0[arg2][playerId]][arg2][playerId]; + gPlayerPalette = &gPlayerPalettesList[D_801651D0[screenId][playerId]][screenId][playerId]; #else - gPlayerPalette = (struct_D_802F1F80*) &gPlayerPalettesList[D_801651D0[arg2][playerId]][arg2][playerId * 0x100]; + gPlayerPalette = (struct_D_802F1F80*) &gPlayerPalettesList[D_801651D0[screenId][playerId]][screenId][playerId * 0x100]; #endif - if ((arg2 == 0) || (arg2 == 1)) { - sKartUpperTexture = &D_802BFB80.arraySize8[D_801651D0[arg2][playerId]][arg2][playerId].pixel_index_array[0]; + if ((screenId == 0) || (screenId == 1)) { + sKartUpperTexture = &D_802BFB80.arraySize8[D_801651D0[screenId][playerId]][screenId][playerId].pixel_index_array[0]; #ifdef TARGET_N64 - sKartLowerTexture = &D_802BFB80.arraySize8[D_801651D0[arg2][playerId]][arg2][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[arg2][playerId]][arg2 - 1][playerId - 4].pixel_index_array[0]; + &D_802BFB80.arraySize8[D_801651D0[screenId][playerId]][screenId - 1][playerId - 4].pixel_index_array[0]; #ifdef TARGET_N64 sKartLowerTexture = - &D_802BFB80.arraySize8[D_801651D0[arg2][playerId]][arg2 - 1][playerId - 4].pixel_index_array[0x7C0]; + &D_802BFB80.arraySize8[D_801651D0[screenId][playerId]][screenId - 1][playerId - 4].pixel_index_array[0x7C0]; #endif } - mtxf_translate_rotate(sp1A4, sp154, sp14C); - mtxf_scale2(sp1A4, gCharacterSize[player->characterId] * player->size); - convert_to_fixed_point_matrix(&gGfxPool->mtxKart[playerId + (arg2 * 8)], sp1A4); + 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); if ((player->effects & BOO_EFFECT) == BOO_EFFECT) { - if (arg2 == playerId) { - gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxKart[playerId + (arg2 * 8)]), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + if (screenId == playerId) { + AddKartMatrix(mtx, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPDisplayList(gDisplayListHead++, common_setting_render_character); gDPLoadTLUT_pal256(gDisplayListHead++, gPlayerPalette); gDPSetTextureLUT(gDisplayListHead++, G_TT_RGBA16); @@ -1652,13 +1673,14 @@ void render_kart(Player* player, s8 playerId, s8 arg2, 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 + (arg2 * 8)]), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + // gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxKart[playerId + (screenId * 8)]), + // G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + AddKartMatrix(mtx, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPDisplayList(gDisplayListHead++, common_setting_render_character); gDPLoadTLUT_pal256(gDisplayListHead++, gPlayerPalette); gDPSetTextureLUT(gDisplayListHead++, G_TT_RGBA16); @@ -1666,15 +1688,16 @@ void render_kart(Player* player, s8 playerId, s8 arg2, 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)) { - gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxKart[playerId + (arg2 * 8)]), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + // gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxKart[playerId + (screenId * 8)]), + // G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + AddKartMatrix(mtx, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPDisplayList(gDisplayListHead++, common_setting_render_character); gDPLoadTLUT_pal256(gDisplayListHead++, gPlayerPalette); gDPSetTextureLUT(gDisplayListHead++, G_TT_RGBA16); @@ -1684,8 +1707,9 @@ void render_kart(Player* player, s8 playerId, s8 arg2, s8 arg3) { gDPSetAlphaCompare(gDisplayListHead++, G_AC_DITHER); gDPSetRenderMode(gDisplayListHead++, G_RM_ZB_XLU_SURF, G_RM_ZB_XLU_SURF2); } else { - gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxKart[playerId + (arg2 * 8)]), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + // gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxKart[playerId + (screenId * 8)]), + // G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + AddKartMatrix(mtx, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPDisplayList(gDisplayListHead++, common_setting_render_character); gDPLoadTLUT_pal256(gDisplayListHead++, gPlayerPalette); gDPSetTextureLUT(gDisplayListHead++, G_TT_RGBA16); @@ -1704,7 +1728,7 @@ void render_kart(Player* player, s8 playerId, s8 arg2, s8 arg3) { // Render karts u8* test = (u8*) LOAD_ASSET(sKartUpperTexture); - gDPLoadTextureBlock(gDisplayListHead++, test + 0x800, G_IM_FMT_CI, G_IM_SIZ_8b, 64, 32, 0, + gDPLoadTextureBlock(gDisplayListHead++, test + 0x7C0, 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); gSPVertex(gDisplayListHead++, &D_800DDBB4[playerId][arg3 + 4], 4, 0); @@ -1715,7 +1739,7 @@ void render_kart(Player* player, s8 playerId, s8 arg2, s8 arg3) { void render_ghost(Player* player, s8 playerId, s8 screenId, s8 arg3) { UNUSED s32 pad; - Mat4 sp12C; + Mat4 mtx; UNUSED s32 pad2[17]; Vec3f spDC; Vec3s spD4; @@ -1758,23 +1782,24 @@ void render_ghost(Player* player, s8 playerId, s8 screenId, s8 arg3) { // 4].pixel_index_array[0x7C0]; } - mtxf_translate_rotate(sp12C, spDC, spD4); - mtxf_scale2(sp12C, gCharacterSize[player->characterId] * player->size); - convert_to_fixed_point_matrix(&gGfxPool->mtxKart[playerId + (screenId * 8)], sp12C); + mtxf_translate_rotate(mtx, spDC, spD4); + mtxf_scale2(mtx, gCharacterSize[player->characterId] * player->size); + // convert_to_fixed_point_matrix(&gGfxPool->mtxKart[playerId + (screenId * 8)], mtx); + + // gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxKart[playerId + (screenId * 8)]), + // G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + AddKartMatrix(mtx, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxKart[playerId + (screenId * 8)]), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPDisplayList(gDisplayListHead++, common_setting_render_character); gDPLoadTLUT_pal256(gDisplayListHead++, gPlayerPalette); gDPSetTextureLUT(gDisplayListHead++, G_TT_RGBA16); 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); @@ -1782,7 +1807,7 @@ void render_ghost(Player* player, s8 playerId, s8 screenId, s8 arg3) { gSPDisplayList(gDisplayListHead++, common_square_plain_render); u8* test = (u8*) LOAD_ASSET(sKartUpperTexture); - gDPLoadTextureBlock(gDisplayListHead++, test + 0x800, G_IM_FMT_CI, G_IM_SIZ_8b, 64, 32, 0, + gDPLoadTextureBlock(gDisplayListHead++, test + 0x7C0, 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); gSPVertex(gDisplayListHead++, &D_800DDBB4[playerId][arg3 + 4], 4, 0); @@ -1792,7 +1817,7 @@ void render_ghost(Player* player, s8 playerId, s8 screenId, s8 arg3) { } void func_80025DE8(Player* player, s8 playerId, s8 screenId, s8 arg3) { - Mat4 spA8; + Mat4 mtx; Vec3f sp9C; Vec3s sp94; @@ -1803,23 +1828,23 @@ void func_80025DE8(Player* player, s8 playerId, s8 screenId, s8 arg3) { sp94[1] = player->unk_048[screenId]; sp94[2] = player->unk_050[screenId]; - mtxf_translate_rotate(spA8, sp9C, sp94); - mtxf_scale2(spA8, gCharacterSize[player->characterId] * player->size); - convert_to_fixed_point_matrix(&gGfxPool->mtxEffect[gMatrixEffectCount], spA8); + mtxf_translate_rotate(mtx, sp9C, sp94); + mtxf_scale2(mtx, gCharacterSize[player->characterId] * player->size); + // convert_to_fixed_point_matrix(&gGfxPool->mtxEffect[gMatrixEffectCount], mtx); - gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxEffect[gMatrixEffectCount]), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + // gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxEffect[gMatrixEffectCount]), + // G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + AddEffectMatrix(mtx, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPDisplayList(gDisplayListHead++, D_0D008D10); gDPSetTextureLUT(gDisplayListHead++, G_TT_RGBA16); func_8004B614(gPlayerRedEffect[playerId], gPlayerGreenEffect[playerId], gPlayerBlueEffect[playerId], 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); @@ -1827,7 +1852,7 @@ void func_80025DE8(Player* player, s8 playerId, s8 screenId, s8 arg3) { gSPDisplayList(gDisplayListHead++, common_square_plain_render); u8* test = (u8*) LOAD_ASSET(sKartUpperTexture); - gDPLoadTextureBlock(gDisplayListHead++, test + 0x800, G_IM_FMT_CI, G_IM_SIZ_8b, 64, 32, 0, + gDPLoadTextureBlock(gDisplayListHead++, test + 0x7C0, 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); gSPVertex(gDisplayListHead++, &D_800DDBB4[playerId][arg3 + 4], 4, 0); @@ -1837,7 +1862,7 @@ void func_80025DE8(Player* player, s8 playerId, s8 screenId, s8 arg3) { } void render_player_ice_reflection(Player* player, s8 playerId, s8 screenId, s8 arg3) { - Mat4 spA8; + Mat4 mtx; Vec3f sp9C; Vec3s sp94; @@ -1853,12 +1878,13 @@ void render_player_ice_reflection(Player* player, s8 playerId, s8 screenId, s8 a arg3 = 0; } - mtxf_translate_rotate(spA8, sp9C, sp94); - mtxf_scale2(spA8, gCharacterSize[player->characterId] * player->size); - convert_to_fixed_point_matrix(&gGfxPool->mtxEffect[gMatrixEffectCount], spA8); + mtxf_translate_rotate(mtx, sp9C, sp94); + mtxf_scale2(mtx, gCharacterSize[player->characterId] * player->size); + // convert_to_fixed_point_matrix(&gGfxPool->mtxEffect[gMatrixEffectCount], mtx); - gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxEffect[gMatrixEffectCount]), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + // gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxEffect[gMatrixEffectCount]), + // G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + AddEffectMatrix(mtx, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPDisplayList(gDisplayListHead++, common_setting_render_character); gDPSetTextureLUT(gDisplayListHead++, G_TT_RGBA16); func_8004B614(gPlayerRedEffect[playerId], gPlayerGreenEffect[playerId], gPlayerBlueEffect[playerId], @@ -1872,7 +1898,7 @@ void render_player_ice_reflection(Player* player, s8 playerId, s8 screenId, s8 a gSPDisplayList(gDisplayListHead++, common_square_plain_render); u8* test = (u8*) LOAD_ASSET(sKartUpperTexture); - gDPLoadTextureBlock(gDisplayListHead++, test + 0x800, G_IM_FMT_CI, G_IM_SIZ_8b, 64, 32, 0, + gDPLoadTextureBlock(gDisplayListHead++, test + 0x7C0, 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); gSPVertex(gDisplayListHead++, &D_800DDBB4[playerId][arg3 + 4], 4, 0); @@ -1918,6 +1944,8 @@ void render_player(Player* player, s8 playerId, s8 screenId) { if (player->boostPower >= 2.0f) { func_80025DE8(player, playerId, screenId, var_v1); } + // Allows wheels to spin + gSPInvalidateTexCache(gDisplayListHead++, sKartLowerTexture); } void func_80026A48(Player* player, s8 arg1) { @@ -1944,9 +1972,9 @@ void func_80026A48(Player* player, s8 arg1) { // Properly define struct pointers, see buffers.h comment for more information. #ifdef AVOID_UB -#define D_802F1F80_WHEEL(a, b, c) &gPlayerPalettesList[a][b][c].wheel_palette +#define D_802F1F80_WHEEL(a, screenId, playerId) &gPlayerPalettesList[a][screenId][playerId].wheel_palette #else -#define D_802F1F80_WHEEL(a, b, c) &gPlayerPalettesList[a][b][(c * 0x100) + 0xC0] +#define D_802F1F80_WHEEL(a, screenId, playerId) &gPlayerPalettesList[a][screenId][(PlayerId * 0x100) + 0xC0] #endif void update_wheel_palette(Player* player, s8 playerId, s8 screenId, s8 arg3) { @@ -1966,21 +1994,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_player_data_non_blocking(player, wheelPtr[character][wheel0 + offset], + load_wheel_palette_non_blocking(player, wheelPtr[character][wheel0 + offset], D_802F1F80_WHEEL(arg3, screenId, playerId), 0x80); } else { int32_t offset = (((((frameId - 21) * (temp_num * 4) + ((temp_t2 >> 8) * 0x40)) + 0x600)) * 2) / 0x80; - load_player_data_non_blocking(player, wheelPtr[character][wheel1 + offset], + load_wheel_palette_non_blocking(player, wheelPtr[character][wheel1 + offset], 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_player_data_non_blocking(player, wheelPtr[character][wheel0 + offset], + load_wheel_palette_non_blocking(player, wheelPtr[character][wheel0 + offset], D_802F1F80_WHEEL(arg3, screenId, playerId), 0x80); } else { int32_t offset = (((frameId * temp_num * 4) + ((temp_t2 >> 8) * 0x40)) * 2) / 0x80; - load_player_data_non_blocking(player, wheelPtr[character][wheel1 + offset], + load_wheel_palette_non_blocking(player, wheelPtr[character][wheel1 + offset], D_802F1F80_WHEEL(arg3, screenId, playerId), 0x80); } } @@ -1989,49 +2017,27 @@ void update_wheel_palette(Player* player, s8 playerId, s8 screenId, s8 arg3) { ((player->effects & 0x80000) != 0x80000) && ((player->effects & 0x800000) != 0x800000) && ((player->effects & 0x20000) != 0x20000) && ((player->unk_044 & 0x800) == 0)) { - // printf("---start---\n"); - if (frameId <= 20) { int32_t offset = (((frameId * temp_num * 4) + ((temp_t2 >> 8) * 0x40)) * 2) / 0x80; - // printf("OFFSET VAL 0x%X\n", ((frameId * temp_num * 4) + ((temp_t2 >> 8) * 0x40))); - // printf("OFFSET IDX %d\n", offset); - load_player_data_non_blocking(player, wheelPtr[character][wheel0 + offset], + load_wheel_palette_non_blocking(player, wheelPtr[character][wheel0 + offset], D_802F1F80_WHEEL(arg3, screenId, playerId), 0x80); } else { - // printf("wheel1\n"); - // printf("OFFSET: 0x%X, t0: 0x%X, temp_num: 0x%X t2: 0x%X, t2_8: 0x%X\n", (((frameId - 21) * (temp_num - // * 4) + ((temp_t2 >> 8) * 0x40) + 0x600)), frameId, temp_num, temp_t2, (temp_t2 >> 8)); printf("wheel - // offset: 0x%X, w0: 0x%X, t0: 0x%X\n", wheel1 + (((frameId - 21) * (temp_num * 4) + ((temp_t2 >> 8) * - // 0x40) + 0x600)), wheel1, frameId); printf("wheel: 0x%X, char: 0x%X, t1: 0x%X\n", wheel1, - // player->characterId, temp_t1); - int32_t offset = (((((frameId - 21) * (temp_num * 4) + ((temp_t2 >> 8) * 0x40)) + 0x600)) * 2) / 0x80; - load_player_data_non_blocking(player, wheelPtr[character][wheel1 + offset], + load_wheel_palette_non_blocking(player, wheelPtr[character][wheel1 + offset], D_802F1F80_WHEEL(arg3, screenId, playerId), 0x80); } } else { if (frameId == 0) { - // printf("wheel0\n"); - // printf("OFFSET: 0x%X, t0: 0x%X, temp_num: 0x%X t2: 0x%X, t2_8: 0x%X\n", (frameId * temp_num * 4) + - // ((temp_t2 >> 8) * 0x40), frameId, temp_num, temp_t2, (temp_t2 >> 8)); printf("wheel offset: 0x%X, w0: - // 0x%X, t0: 0x%X\n", wheel0 + ((frameId * temp_num * 4) + ((temp_t2 >> 8) * 0x40)), wheel0, frameId); - // printf("wheel: 0x%X, char: 0x%X, t1: 0x%X\n", wheel0, player->characterId, temp_t1); int32_t offset = (((frameId * temp_num * 4) + ((temp_t2 >> 8) * 0x40)) * 2) / 0x80; - load_player_data_non_blocking(player, wheelPtr[character][wheel0 + offset], + load_wheel_palette_non_blocking(player, wheelPtr[character][wheel0 + offset], D_802F1F80_WHEEL(arg3, screenId, playerId), 0x80); } else { - // printf("wheel1_2\n"); - // printf("OFFSET: 0x%X, t0: 0x%X, temp_num: 0x%X t2: 0x%X, t2_8: 0x%X\n", (frameId * temp_num * 4) + - // ((temp_t2 >> 8) * 0x40), frameId, temp_num, temp_t2, (temp_t2 >> 8)); printf("wheel offset: 0x%X, w0: - // 0x%X, t0: 0x%X\n", wheel1 + ((frameId * temp_num * 4) + ((temp_t2 >> 8) * 0x40)), wheel1, frameId); - // printf("wheel: 0x%X, char: 0x%X, t1: 0x%X\n", wheel1, player->characterId, temp_t1); int32_t offset = (((frameId * temp_num * 4) + ((temp_t2 >> 8) * 0x40)) * 2) / 0x80; - load_player_data_non_blocking(player, wheelPtr[character][wheel1 + offset], + load_wheel_palette_non_blocking(player, wheelPtr[character][wheel1 + offset], D_802F1F80_WHEEL(arg3, screenId, playerId), 0x80); } } - // printf("---end---\n"); } } |
