From 5940d5c3c7c25db86c8faedcfecba957a896bd79 Mon Sep 17 00:00:00 2001 From: coco875 Date: Sat, 3 Aug 2024 02:37:22 +0200 Subject: [PATCH] document texture of kart --- include/defines.h | 15 +- src/buffers.h | 2 +- src/buffers/buffers.c | 5 +- src/code_80057C60.c | 128 +++++++-------- src/code_80057C60.h | 8 +- src/kart_dma.c | 34 ++-- src/kart_dma.h | 2 +- src/player_controller.c | 8 +- src/render_player.c | 343 ++++++++++++++++++++-------------------- src/render_player.h | 22 +-- src/spawn_players.c | 24 +-- 11 files changed, 302 insertions(+), 289 deletions(-) diff --git a/include/defines.h b/include/defines.h index f62a07186..5bc3e09fe 100644 --- a/include/defines.h +++ b/include/defines.h @@ -109,10 +109,17 @@ #define FOUR_PLAYERS_SELECTED 4 #define SELECTED_PLAYER_DEFINES_TOTAL 5 -#define PLAYER_ONE 0 -#define PLAYER_TWO 1 -#define PLAYER_THREE 2 -#define PLAYER_FOUR 3 +enum PlayerId { + PLAYER_NONE = -1, + PLAYER_ONE = 0, + PLAYER_TWO = 1, + PLAYER_THREE = 2, + PLAYER_FOUR = 3, + PLAYER_FIVE = 4, + PLAYER_SIX = 5, + PLAYER_SEVEN = 6, + PLAYER_EIGHT = 7 +}; #define NUM_PLAYERS 8 diff --git a/src/buffers.h b/src/buffers.h index 13584036d..6557f9309 100644 --- a/src/buffers.h +++ b/src/buffers.h @@ -70,7 +70,7 @@ typedef struct { extern u16 gRandomSeed16; extern u8 randomSeedPadding[216]; extern union_D_802BFB80 D_802BFB80; -extern struct_D_802DFB80 D_802DFB80[][2][8]; +extern struct_D_802DFB80 gEncodedKartTexture[][2][8]; /** * It would be nice to define D_802F1F80 as "struct_D_802F1F80 D_802F1F80[2][4][8]". diff --git a/src/buffers/buffers.c b/src/buffers/buffers.c index cc08aa60a..5979c846d 100644 --- a/src/buffers/buffers.c +++ b/src/buffers/buffers.c @@ -3,8 +3,11 @@ #include #include "buffers.h" +/** + * @brief look like to be a buffer of decoded textures + */ ALIGNED8 union_D_802BFB80 D_802BFB80; -ALIGNED8 struct_D_802DFB80 D_802DFB80[2][2][8]; +ALIGNED8 struct_D_802DFB80 gEncodedKartTexture[2][2][8]; #ifdef AVOID_UB ALIGNED8 struct_D_802F1F80 D_802F1F80[2][4][8]; #else diff --git a/src/code_80057C60.c b/src/code_80057C60.c index 34e50a789..4154036d7 100644 --- a/src/code_80057C60.c +++ b/src/code_80057C60.c @@ -6257,27 +6257,27 @@ void func_8006D194(Player *player, s8 arg1, s8 arg2) { } } -void func_8006D474(Player *player, s8 arg1, s8 arg2) { +void func_8006D474(Player *player, s8 playerId, s8 screenPlayerId) { s16 var_s2; - if ((player->unk_002 & (8 << (arg2 * 4))) == (8 << (arg2 * 4))) { + if ((player->unk_002 & (8 << (screenPlayerId * 4))) == (8 << (screenPlayerId * 4))) { for (var_s2 = 0; var_s2 < 10; var_s2++) { switch (player->unk_258[var_s2].unk_012) { case 1: if (gActiveScreenMode == SCREEN_MODE_3P_4P_SPLITSCREEN) { - if (arg2 == arg1) { - func_8006538C(player, arg1, var_s2, arg2); + if (screenPlayerId == playerId) { + func_8006538C(player, playerId, var_s2, screenPlayerId); } } else { - func_8006538C(player, arg1, var_s2, arg2); + func_8006538C(player, playerId, var_s2, screenPlayerId); } break; case 6: if (gActiveScreenMode == SCREEN_MODE_3P_4P_SPLITSCREEN) { - if (arg2 == arg1) { - func_80066BAC(player, arg1, var_s2, arg2); + if (screenPlayerId == playerId) { + func_80066BAC(player, playerId, var_s2, screenPlayerId); } - } else if (arg2 == arg1) { - func_80066BAC(player, arg1, var_s2, arg2); + } else if (screenPlayerId == playerId) { + func_80066BAC(player, playerId, var_s2, screenPlayerId); } break; } @@ -6285,69 +6285,69 @@ void func_8006D474(Player *player, s8 arg1, s8 arg2) { case 1: case 9: if (gActiveScreenMode == SCREEN_MODE_1P) { - func_800691B8(player, arg1, var_s2, arg2); - } else if (arg2 == arg1) { - func_800691B8(player, arg1, var_s2, arg2); + func_800691B8(player, playerId, var_s2, screenPlayerId); + } else if (screenPlayerId == playerId) { + func_800691B8(player, playerId, var_s2, screenPlayerId); } break; case 2: if (gActiveScreenMode == SCREEN_MODE_1P) { - func_800696CC(player, arg1, var_s2, arg2, player->unk_258[var_s2 + 30].unk_00C); - } else if (arg2 == arg1) { - func_800696CC(player, arg1, var_s2, arg2, player->unk_258[var_s2 + 30].unk_00C); + func_800696CC(player, playerId, var_s2, screenPlayerId, player->unk_258[var_s2 + 30].unk_00C); + } else if (screenPlayerId == playerId) { + func_800696CC(player, playerId, var_s2, screenPlayerId, player->unk_258[var_s2 + 30].unk_00C); } break; case 3: if (gActiveScreenMode == SCREEN_MODE_1P) { - func_80067280(player, arg1, var_s2, arg2); - } else if (arg2 == arg1) { - func_80067280(player, (s32) arg1, var_s2, arg2); + func_80067280(player, playerId, var_s2, screenPlayerId); + } else if (screenPlayerId == playerId) { + func_80067280(player, (s32) playerId, var_s2, screenPlayerId); } break; case 4: if (gActiveScreenMode == SCREEN_MODE_1P) { - func_80069444(player, arg1, var_s2, arg2); - } else if (arg2 == arg1) { - func_80069444(player, arg1, var_s2, arg2); + func_80069444(player, playerId, var_s2, screenPlayerId); + } else if (screenPlayerId == playerId) { + func_80069444(player, playerId, var_s2, screenPlayerId); } break; case 5: if (gActiveScreenMode == SCREEN_MODE_1P) { - func_80069938(player, arg1, var_s2, arg2); - } else if (arg2 == arg1) { - func_80069938(player, arg1, var_s2, arg2); + func_80069938(player, playerId, var_s2, screenPlayerId); + } else if (screenPlayerId == playerId) { + func_80069938(player, playerId, var_s2, screenPlayerId); } break; case 6: if (gActiveScreenMode == SCREEN_MODE_1P) { - func_80069BA8(player, arg1, var_s2, arg2); - } else if (arg2 == arg1) { - func_80069BA8(player, arg1, var_s2, arg2); + func_80069BA8(player, playerId, var_s2, screenPlayerId); + } else if (screenPlayerId == playerId) { + func_80069BA8(player, playerId, var_s2, screenPlayerId); } break; case 7: if (gActiveScreenMode == SCREEN_MODE_1P) { - func_80069DB8(player, arg1, var_s2, arg2); - } else if (arg2 == arg1) { - func_80069DB8(player, arg1, var_s2, arg2); + func_80069DB8(player, playerId, var_s2, screenPlayerId); + } else if (screenPlayerId == playerId) { + func_80069DB8(player, playerId, var_s2, screenPlayerId); } break; case 8: if (gActiveScreenMode == SCREEN_MODE_1P) { - func_80067604(player, arg1, var_s2, arg2); - } else if (arg2 == arg1) { - func_80067604(player, arg1, var_s2, arg2); + func_80067604(player, playerId, var_s2, screenPlayerId); + } else if (screenPlayerId == playerId) { + func_80067604(player, playerId, var_s2, screenPlayerId); } break; } switch (player->unk_258[var_s2 + 10].unk_012) { case 1: if (gActiveScreenMode == SCREEN_MODE_3P_4P_SPLITSCREEN) { - if (arg2 == arg1) { - func_80065AB0(player, arg1, var_s2, arg2); + if (screenPlayerId == playerId) { + func_80065AB0(player, playerId, var_s2, screenPlayerId); } } else { - func_80065AB0(player, arg1, var_s2, arg2); + func_80065AB0(player, playerId, var_s2, screenPlayerId); } break; case 2: @@ -6355,36 +6355,36 @@ void func_8006D474(Player *player, s8 arg1, s8 arg2) { case 4: case 5: if (gActiveScreenMode == SCREEN_MODE_3P_4P_SPLITSCREEN) { - if (arg2 == arg1) { - func_80065F0C(player, arg1, var_s2, arg2); + if (screenPlayerId == playerId) { + func_80065F0C(player, playerId, var_s2, screenPlayerId); } } else { - func_80065F0C(player, arg1, var_s2, arg2); + func_80065F0C(player, playerId, var_s2, screenPlayerId); } break; case 9: if (gActiveScreenMode == SCREEN_MODE_3P_4P_SPLITSCREEN) { - if (arg2 == arg1) { - func_800664E0(player, (s32) arg1, var_s2, arg2); + if (screenPlayerId == playerId) { + func_800664E0(player, (s32) playerId, var_s2, screenPlayerId); } } else { - func_800664E0(player, (s32) arg1, var_s2, arg2); + func_800664E0(player, (s32) playerId, var_s2, screenPlayerId); } break; case 11: if (gActiveScreenMode == SCREEN_MODE_3P_4P_SPLITSCREEN) { - if (arg2 == arg1) { - func_8006A01C(player, arg1, var_s2, arg2); + if (screenPlayerId == playerId) { + func_8006A01C(player, playerId, var_s2, screenPlayerId); } - } else if (arg2 == arg1) { - func_8006A01C(player, arg1, var_s2, arg2); + } else if (screenPlayerId == playerId) { + func_8006A01C(player, playerId, var_s2, screenPlayerId); } break; } } } - if ((gModeSelection == BATTLE) && (player->unk_002 & (2 << (arg2 * 4)))) { - func_8006BA94(player, arg1, arg2); + if ((gModeSelection == BATTLE) && (player->unk_002 & (2 << (screenPlayerId * 4)))) { + func_8006BA94(player, playerId, screenPlayerId); } } @@ -6564,7 +6564,20 @@ void func_8006E420(Player* player, s8 arg1, s8 arg2) { } } -void func_8006E5AC(Player* player, s8 arg1, s8 arg2) { +void render_kart_particle_on_screen_one(Player* player, s8 playerId, s8 screenPlayerId) { + if ((player->type & PLAYER_EXISTS) == PLAYER_EXISTS) { + if ((player->effects & BOO_EFFECT) == BOO_EFFECT) { + if (playerId == screenPlayerId) { + func_8006D474(player, playerId, screenPlayerId); + } + } else { + func_8006D474(player, playerId, screenPlayerId); + } + func_8006DC54(player, playerId, screenPlayerId); + } +} + +void render_kart_particle_on_screen_two(Player* player, s8 arg1, s8 arg2) { if ((player->type & PLAYER_EXISTS) == PLAYER_EXISTS) { if ((player->effects & BOO_EFFECT) == BOO_EFFECT) { if (arg1 == arg2) { @@ -6577,7 +6590,7 @@ void func_8006E5AC(Player* player, s8 arg1, s8 arg2) { } } -void func_8006E634(Player* player, s8 arg1, s8 arg2) { +void render_kart_particle_on_screen_three(Player* player, s8 arg1, s8 arg2) { if ((player->type & PLAYER_EXISTS) == PLAYER_EXISTS) { if ((player->effects & BOO_EFFECT) == BOO_EFFECT) { if (arg1 == arg2) { @@ -6590,20 +6603,7 @@ void func_8006E634(Player* player, s8 arg1, s8 arg2) { } } -void func_8006E6BC(Player* player, s8 arg1, s8 arg2) { - if ((player->type & PLAYER_EXISTS) == PLAYER_EXISTS) { - if ((player->effects & BOO_EFFECT) == BOO_EFFECT) { - if (arg1 == arg2) { - func_8006D474(player, arg1, arg2); - } - } else { - func_8006D474(player, arg1, arg2); - } - func_8006DC54(player, arg1, arg2); - } -} - -void func_8006E744(Player* player, s8 arg1, s8 arg2) { +void render_kart_particle_on_screen_four(Player* player, s8 arg1, s8 arg2) { if ((player->type & PLAYER_EXISTS) == PLAYER_EXISTS) { if ((player->effects & BOO_EFFECT) == BOO_EFFECT) { if (arg1 == arg2) { diff --git a/src/code_80057C60.h b/src/code_80057C60.h index 1b65497fc..ba9560306 100644 --- a/src/code_80057C60.h +++ b/src/code_80057C60.h @@ -245,10 +245,10 @@ void func_8006DD3C(Player*, s8, s8); void func_8006E058(void); void func_8006E420(Player*, s8, s8); -void func_8006E5AC(Player*, s8, s8); -void func_8006E634(Player*, s8, s8); -void func_8006E6BC(Player*, s8, s8); -void func_8006E744(Player*, s8, s8); +void render_kart_particle_on_screen_one(Player*, s8, s8); +void render_kart_particle_on_screen_two(Player*, s8, s8); +void render_kart_particle_on_screen_three(Player*, s8, s8); +void render_kart_particle_on_screen_four(Player*, s8, s8); void func_8006E7CC(Player*, s8, s8); void func_8006E848(Player*, s8, s8); void func_8006E8C4(Player*, s8, s8); diff --git a/src/kart_dma.c b/src/kart_dma.c index 5bcf726f6..7337e2f43 100644 --- a/src/kart_dma.c +++ b/src/kart_dma.c @@ -1697,7 +1697,7 @@ void load_kart_texture(Player *player, s8 playerId, s8 screenId, s8 screenId2, s s32 temp = player->effects; if (((temp & 0x80) == 0x80) || ((temp & 0x40) == 0x40) || ((temp & 0x80000) == 0x80000) || ((temp & 0x800000) == 0x800000) || ((temp & 0x20000) == 0x20000) || ((player->unk_044 & 0x800) != 0)) { if (player->animFrameSelector[screenId] != 0) { - osInvalDCache(&D_802DFB80[index][screenId2][playerId], D_800DDEB0[player->characterId]); + osInvalDCache(&gEncodedKartTexture[index][screenId2][playerId], D_800DDEB0[player->characterId]); osPiStartDma( &gDmaIoMesg, @@ -1705,14 +1705,14 @@ void load_kart_texture(Player *player, s8 playerId, s8 screenId, s8 screenId2, s (uintptr_t) &_kart_texturesSegmentRomStart[SEGMENT_OFFSET( gKartTextureTable1[player->characterId][player->animGroupSelector[screenId]][player->animFrameSelector[screenId]] )], - &D_802DFB80[index][screenId2][playerId], + &gEncodedKartTexture[index][screenId2][playerId], D_800DDEB0[player->characterId], &gDmaMesgQueue ); osRecvMesg(&gDmaMesgQueue, &gMainReceivedMesg, OS_MESG_BLOCK); } else { - osInvalDCache(&D_802DFB80[index][screenId2][playerId], D_800DDEB0[player->characterId]); + osInvalDCache(&gEncodedKartTexture[index][screenId2][playerId], D_800DDEB0[player->characterId]); osPiStartDma( &gDmaIoMesg, @@ -1721,7 +1721,7 @@ void load_kart_texture(Player *player, s8 playerId, s8 screenId, s8 screenId2, s (uintptr_t) &_kart_texturesSegmentRomStart[SEGMENT_OFFSET( gKartTextureTable0[player->characterId][player->animGroupSelector[screenId]][player->animFrameSelector[screenId]] )], - &D_802DFB80[index][screenId2][playerId], + &gEncodedKartTexture[index][screenId2][playerId], D_800DDEB0[player->characterId], &gDmaMesgQueue ); @@ -1729,7 +1729,7 @@ void load_kart_texture(Player *player, s8 playerId, s8 screenId, s8 screenId2, s osRecvMesg(&gDmaMesgQueue, &gMainReceivedMesg, OS_MESG_BLOCK); } } else if (((temp & 0x400) == 0x400) || ((temp & 0x01000000) == 0x01000000) || ((temp & 0x02000000) == 0x02000000) || ((temp & 0x10000) == 0x10000)) { - osInvalDCache(&D_802DFB80[index][screenId2][playerId], 0x780U); + osInvalDCache(&gEncodedKartTexture[index][screenId2][playerId], 0x780U); // player->unk_0A8 >> 8 converts an 8.8 fixed-point animation frame to a whole number. osPiStartDma( &gDmaIoMesg, @@ -1738,14 +1738,14 @@ void load_kart_texture(Player *player, s8 playerId, s8 screenId, s8 screenId2, s (uintptr_t) &_kart_texturesSegmentRomStart[SEGMENT_OFFSET( gKartTextureTumbles[player->characterId][player->unk_0A8 >> 8] )], - &D_802DFB80[index][screenId2][playerId], + &gEncodedKartTexture[index][screenId2][playerId], 0x900, &gDmaMesgQueue ); osRecvMesg(&gDmaMesgQueue, &gMainReceivedMesg, OS_MESG_BLOCK); } else { - osInvalDCache(&D_802DFB80[index][screenId2][playerId], D_800DDEB0[player->characterId]); + osInvalDCache(&gEncodedKartTexture[index][screenId2][playerId], D_800DDEB0[player->characterId]); osPiStartDma( &gDmaIoMesg, @@ -1754,7 +1754,7 @@ void load_kart_texture(Player *player, s8 playerId, s8 screenId, s8 screenId2, s (uintptr_t) &_kart_texturesSegmentRomStart[SEGMENT_OFFSET( gKartTextureTable0[player->characterId][player->animGroupSelector[screenId]][player->animFrameSelector[screenId]] )], - &D_802DFB80[index][screenId2][playerId], + &gEncodedKartTexture[index][screenId2][playerId], D_800DDEB0[player->characterId], &gDmaMesgQueue ); @@ -1763,13 +1763,13 @@ void load_kart_texture(Player *player, s8 playerId, s8 screenId, s8 screenId2, s } } -void func_80027560(Player *player, s8 arg1, s8 arg2, s8 arg3, s8 arg4) { +void load_kart_texture_non_blocking(Player *player, s8 arg1, s8 arg2, s8 arg3, s8 arg4) { s32 temp = player->effects; if (((temp & 0x80) == 0x80) || ((temp & 0x40) == 0x40) || ((temp & 0x80000) == 0x80000) || ((temp & 0x800000) == 0x800000) || ((temp & 0x20000) == 0x20000) || ((player->unk_044 & 0x800) != 0)) { if (player->animFrameSelector[arg2] != 0) { - osInvalDCache(&D_802DFB80[arg4][arg3][arg1], D_800DDEB0[player->characterId]); + osInvalDCache(&gEncodedKartTexture[arg4][arg3][arg1], D_800DDEB0[player->characterId]); osPiStartDma( &gDmaIoMesg, @@ -1778,12 +1778,12 @@ void func_80027560(Player *player, s8 arg1, s8 arg2, s8 arg3, s8 arg4) { (uintptr_t) &_kart_texturesSegmentRomStart[SEGMENT_OFFSET( gKartTextureTable1[player->characterId][player->animGroupSelector[arg2]][player->animFrameSelector[arg2]] )], - &D_802DFB80[arg4][arg3][arg1], + &gEncodedKartTexture[arg4][arg3][arg1], D_800DDEB0[player->characterId], &gDmaMesgQueue ); } else { - osInvalDCache(&D_802DFB80[arg4][arg3][arg1], D_800DDEB0[player->characterId]); + osInvalDCache(&gEncodedKartTexture[arg4][arg3][arg1], D_800DDEB0[player->characterId]); osPiStartDma( &gDmaIoMesg, @@ -1792,7 +1792,7 @@ void func_80027560(Player *player, s8 arg1, s8 arg2, s8 arg3, s8 arg4) { (uintptr_t) &_kart_texturesSegmentRomStart[SEGMENT_OFFSET( gKartTextureTable0[player->characterId][player->animGroupSelector[arg2]][player->animFrameSelector[arg2]] )], - &D_802DFB80[arg4][arg3][arg1], + &gEncodedKartTexture[arg4][arg3][arg1], D_800DDEB0[player->characterId], &gDmaMesgQueue ); @@ -1800,7 +1800,7 @@ void func_80027560(Player *player, s8 arg1, s8 arg2, s8 arg3, s8 arg4) { } else if (((temp & 0x400) == 0x400) || ((temp & 0x01000000) == 0x01000000) || ((temp & 0x02000000) == 0x02000000) || ((temp & 0x10000) == 0x10000)) { - osInvalDCache(&D_802DFB80[arg4][arg3][arg1], 0x780); + osInvalDCache(&gEncodedKartTexture[arg4][arg3][arg1], 0x780); // player->unk_0A8 >> 8 converts an 8.8 fixed-point animation frame to a whole number. osPiStartDma( &gDmaIoMesg, @@ -1809,12 +1809,12 @@ void func_80027560(Player *player, s8 arg1, s8 arg2, s8 arg3, s8 arg4) { (uintptr_t) &_kart_texturesSegmentRomStart[SEGMENT_OFFSET( gKartTextureTumbles[player->characterId][player->unk_0A8 >> 8] )], - &D_802DFB80[arg4][arg3][arg1], + &gEncodedKartTexture[arg4][arg3][arg1], 0x900, &gDmaMesgQueue ); } else { - osInvalDCache(&D_802DFB80[arg4][arg3][arg1], D_800DDEB0[player->characterId]); + osInvalDCache(&gEncodedKartTexture[arg4][arg3][arg1], D_800DDEB0[player->characterId]); osPiStartDma( &gDmaIoMesg, @@ -1823,7 +1823,7 @@ void func_80027560(Player *player, s8 arg1, s8 arg2, s8 arg3, s8 arg4) { (uintptr_t) &_kart_texturesSegmentRomStart[SEGMENT_OFFSET( gKartTextureTable0[player->characterId][player->animGroupSelector[arg2]][player->animFrameSelector[arg2]] )], - &D_802DFB80[arg4][arg3][arg1], + &gEncodedKartTexture[arg4][arg3][arg1], D_800DDEB0[player->characterId], &gDmaMesgQueue ); diff --git a/src/kart_dma.h b/src/kart_dma.h index 0c8fc07ae..345e00e30 100644 --- a/src/kart_dma.h +++ b/src/kart_dma.h @@ -7,7 +7,7 @@ /* Function Prototypes */ void load_kart_texture(Player*, s8, s8, s8, s8); -void func_80027560(Player*, s8, s8, s8, s8); +void load_kart_texture_non_blocking(Player*, s8, s8, s8, s8); void load_kart_palette(Player*, s8, s8, s8); void func_80027BDC(Player*, s32, void*, u16); void func_80027C74(Player*, s32, void*, u16); diff --git a/src/player_controller.c b/src/player_controller.c index 740006128..0ab8cc502 100644 --- a/src/player_controller.c +++ b/src/player_controller.c @@ -976,8 +976,8 @@ void func_8002934C(Player *player, Camera *camera, s8 screenId, s8 playerId) { D_80165190[screenId][playerId] = 1; if ((player->effects & 0x80) || (player->effects & 0x40)) { - if ((player->animFrameSelector[screenId] == D_801650D0[screenId][playerId]) - && (player->animGroupSelector[screenId] == D_80165110[screenId][playerId])) { + if ((player->animFrameSelector[screenId] == gLastAnimFrameSelector[screenId][playerId]) + && (player->animGroupSelector[screenId] == gLastAnimGroupSelector[screenId][playerId])) { player->unk_002 &= ~(1 << (screenId * 4)); D_80165190[screenId][playerId] = 1; } @@ -986,11 +986,11 @@ void func_8002934C(Player *player, Camera *camera, s8 screenId, s8 playerId) { } } else { player->unk_002 |= 1 << (screenId * 4); - if (((player->animFrameSelector[screenId] == D_801650D0[screenId][playerId]) && (player->animGroupSelector[screenId] == D_80165110[screenId][playerId])) && ((D_80165190[screenId][playerId]) == 0)) { + if (((player->animFrameSelector[screenId] == gLastAnimFrameSelector[screenId][playerId]) && (player->animGroupSelector[screenId] == gLastAnimGroupSelector[screenId][playerId])) && ((D_80165190[screenId][playerId]) == 0)) { player->unk_002 &= ~(1 << (screenId * 4)); } } - temp_a0_2 = D_801650D0[screenId][playerId] - player->animFrameSelector[screenId]; + temp_a0_2 = gLastAnimFrameSelector[screenId][playerId] - player->animFrameSelector[screenId]; if ((temp_a0_2 >= 0x14) || (temp_a0_2 < (-0x13))) { player->unk_002 |= 1 << (screenId * 4); } diff --git a/src/render_player.c b/src/render_player.c index fc530fdc8..077fbc674 100644 --- a/src/render_player.c +++ b/src/render_player.c @@ -34,14 +34,14 @@ UNUSED void *D_800DDB5C[3] = { gFramebuffer0, gFramebuffer1, gFramebuffer2 }; -s16 D_80164AB0[8]; -s16 D_80164AC0[8]; -Player *D_80164AD0[8]; +s16 gPlayersToRenderPlayerId[8]; +s16 gPlayersToRenderScreenId[8]; +Player *gPlayersToRenderPlayer[8]; s16 gMatrixEffectCount; s32 D_80164AF4[3]; struct_D_802F1F80 *gPlayerPalette; -u8 *D_80164B08; -u8 *D_80164B0C; +u8 *sKartUpperTexture; +u8 *sKartLowerTexture; u16 gPlayerRedEffect[8]; u16 gPlayerGreenEffect[8]; u16 gPlayerBlueEffect[8]; @@ -53,8 +53,8 @@ UNUSED u16 gPlayerWhiteEffect[8]; s32 D_80164B80[296]; s16 D_80165020[40]; Vec3f D_80165070[8]; -s16 D_801650D0[4][8]; -s16 D_80165110[4][8]; +s16 gLastAnimFrameSelector[4][8]; +s16 gLastAnimGroupSelector[4][8]; s16 D_80165150[4][8]; s16 D_80165190[4][8]; s16 D_801651D0[4][8]; @@ -170,6 +170,9 @@ u16 func_8001FD78(Player *player, f32 posX, UNUSED f32 arg2, f32 posZ) { return ret; } +/** + * @brief one of his function is to put the frame to load in to a list to load it to be only applied for the next frame + */ void init_render_player(Player *player, Camera *camera, s8 playerId, s8 screenId) { UNUSED s32 pad[4]; s32 sp4C; @@ -195,13 +198,13 @@ void init_render_player(Player *player, Camera *camera, s8 playerId, s8 screenId 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) screenId; - D_80164AD0[gPlayersToRenderCount] = player; + gPlayersToRenderPlayerId[gPlayersToRenderCount] = (s16) playerId; + gPlayersToRenderScreenId[gPlayersToRenderCount] = (s16) screenId; + gPlayersToRenderPlayer[gPlayersToRenderCount] = player; gPlayersToRenderCount += 1; D_80165190[screenId][playerId] = 0; - D_801650D0[screenId][playerId] = player->animFrameSelector[screenId]; - D_80165110[screenId][playerId] = player->animGroupSelector[screenId]; + gLastAnimFrameSelector[screenId][playerId] = player->animFrameSelector[screenId]; + gLastAnimGroupSelector[screenId][playerId] = player->animGroupSelector[screenId]; D_80165150[screenId][playerId] = player->unk_0A8; D_801651D0[screenId][playerId] += 1; if (D_801651D0[screenId][playerId] == 2) { @@ -209,13 +212,13 @@ void init_render_player(Player *player, Camera *camera, s8 playerId, s8 screenId } } else { if ((check_player_camera_collision(player, camera, D_80165574 + sp4C, D_80165576) == 1) & 0xFFFF) { - 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) screenId; - D_80164AD0[gPlayersToRenderCount] = player; + if ((sRenderingFramebuffer == gRenderingFramebufferByPlayer[playerId]) || ((gLastAnimFrameSelector[screenId][playerId] - player->animFrameSelector[screenId]) > 0x13) || ((gLastAnimFrameSelector[screenId][playerId] - player->animFrameSelector[screenId]) < -0x13) || (D_80165190[screenId][playerId] == (s16) 1U)) { + gPlayersToRenderPlayerId[gPlayersToRenderCount] = (s16) playerId; + gPlayersToRenderScreenId[gPlayersToRenderCount] = (s16) screenId; + gPlayersToRenderPlayer[gPlayersToRenderCount] = player; gPlayersToRenderCount += 1; - D_801650D0[screenId][playerId] = player->animFrameSelector[screenId]; - D_80165110[screenId][playerId] = player->animGroupSelector[screenId]; + gLastAnimFrameSelector[screenId][playerId] = player->animFrameSelector[screenId]; + gLastAnimGroupSelector[screenId][playerId] = player->animGroupSelector[screenId]; D_80165150[screenId][playerId] = player->unk_0A8; D_80165190[screenId][playerId] = 0; D_801651D0[screenId][playerId] += 1; @@ -225,13 +228,13 @@ void init_render_player(Player *player, Camera *camera, s8 playerId, s8 screenId } } else { if (( - (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) screenId; - D_80164AD0[gPlayersToRenderCount] = player; + (gLastAnimFrameSelector[screenId][playerId] - player->animFrameSelector[screenId]) > 0x13) || ((gLastAnimFrameSelector[screenId][playerId] - player->animFrameSelector[screenId]) < -0x13) || (D_80165190[screenId][playerId] == (s16) 1U)) { + gPlayersToRenderPlayerId[gPlayersToRenderCount] = (s16) playerId; + gPlayersToRenderScreenId[gPlayersToRenderCount] = (s16) screenId; + gPlayersToRenderPlayer[gPlayersToRenderCount] = player; gPlayersToRenderCount += 1; - D_801650D0[screenId][playerId] = (s16) player->animFrameSelector[screenId]; - D_80165110[screenId][playerId] = player->animGroupSelector[screenId]; + gLastAnimFrameSelector[screenId][playerId] = (s16) player->animFrameSelector[screenId]; + gLastAnimGroupSelector[screenId][playerId] = player->animGroupSelector[screenId]; D_80165150[screenId][playerId] = player->unk_0A8; D_80165190[screenId][playerId] = 0; D_801651D0[screenId][playerId] += 1; @@ -245,96 +248,96 @@ void init_render_player(Player *player, Camera *camera, s8 playerId, s8 screenId } } -void func_80020524(void) { +void load_kart_texture_and_render_kart_particle_on_screen_one(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_8006E5AC(gPlayerOneCopy, 0, 0); - func_8006E5AC(gPlayerTwo, 1, 0); - func_8006E5AC(gPlayerThree, 2, 0); - func_8006E5AC(gPlayerFour, 3, 0); + 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) { - func_8006E5AC(gPlayerFive, 4, 0); - func_8006E5AC(gPlayerSix, 5, 0); - func_8006E5AC(gPlayerSeven, 6, 0); - func_8006E5AC(gPlayerEight, 7, 0); + 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++) { - func_80027560(D_80164AD0[i], D_80164AB0[i], D_80164AC0[i], D_80164AC0[i], D_801651D0[D_80164AC0[i]][D_80164AB0[i]]); + load_kart_texture_non_blocking(gPlayersToRenderPlayer[i], gPlayersToRenderPlayerId[i], gPlayersToRenderScreenId[i], gPlayersToRenderScreenId[i], D_801651D0[gPlayersToRenderScreenId[i]][gPlayersToRenderPlayerId[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); + mio0decode((u8*) gEncodedKartTexture[D_801651D0[gPlayersToRenderScreenId[i - 1]][gPlayersToRenderPlayerId[i - 1]]][gPlayersToRenderScreenId[i - 1]][gPlayersToRenderPlayerId[i - 1]].unk_00, + D_802BFB80.arraySize8[D_801651D0[gPlayersToRenderScreenId[i - 1]][gPlayersToRenderPlayerId[i - 1]]][gPlayersToRenderScreenId[i - 1]][gPlayersToRenderPlayerId[i - 1]].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]][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*) gEncodedKartTexture[D_801651D0[gPlayersToRenderScreenId[gPlayersToRenderCount-1]][gPlayersToRenderPlayerId[gPlayersToRenderCount-1]]][gPlayersToRenderScreenId[gPlayersToRenderCount-1]][gPlayersToRenderPlayerId[gPlayersToRenderCount-1]].unk_00, + D_802BFB80.arraySize8[D_801651D0[gPlayersToRenderScreenId[gPlayersToRenderCount-1]][gPlayersToRenderPlayerId[gPlayersToRenderCount-1]]][gPlayersToRenderScreenId[gPlayersToRenderCount-1]][gPlayersToRenderPlayerId[gPlayersToRenderCount-1]].pixel_index_array); } -void func_8002088C(void) { +void load_kart_texture_and_render_kart_particle_on_screen_two(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); - func_8006E634(gPlayerFour, 3, 1); + 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) { - func_8006E634(gPlayerFive, 4, 1); - func_8006E634(gPlayerSix, 5, 1); - func_8006E634(gPlayerSeven, 6, 1); - func_8006E634(gPlayerEight, 7, 1); + 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++) { - 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); + load_kart_texture_non_blocking(gPlayersToRenderPlayer[var_s0], gPlayersToRenderPlayerId[var_s0], gPlayersToRenderScreenId[var_s0], gPlayersToRenderScreenId[var_s0], D_801651D0[gPlayersToRenderScreenId[var_s0]][gPlayersToRenderPlayerId[var_s0]]); + mio0decode((u8*) gEncodedKartTexture[D_801651D0[gPlayersToRenderScreenId[var_s0 - 1]][gPlayersToRenderPlayerId[var_s0 - 1]]][gPlayersToRenderScreenId[var_s0 - 1]][gPlayersToRenderPlayerId[var_s0 - 1]].unk_00, + D_802BFB80.arraySize8[D_801651D0[gPlayersToRenderScreenId[var_s0 - 1]][gPlayersToRenderPlayerId[var_s0 - 1]]][gPlayersToRenderScreenId[var_s0 - 1]][gPlayersToRenderPlayerId[var_s0 - 1]].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]][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*) gEncodedKartTexture[D_801651D0[gPlayersToRenderScreenId[gPlayersToRenderCount-1]][gPlayersToRenderPlayerId[gPlayersToRenderCount-1]]][gPlayersToRenderScreenId[gPlayersToRenderCount-1]][gPlayersToRenderPlayerId[gPlayersToRenderCount-1]].unk_00, + D_802BFB80.arraySize8[D_801651D0[gPlayersToRenderScreenId[gPlayersToRenderCount-1]][gPlayersToRenderPlayerId[gPlayersToRenderCount-1]]][gPlayersToRenderScreenId[gPlayersToRenderCount-1]][gPlayersToRenderPlayerId[gPlayersToRenderCount-1]].pixel_index_array); } -void func_80020BF4(void) { +void load_kart_texture_and_render_kart_particle_on_screen_three(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); + 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++) { - 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); + load_kart_texture_non_blocking(gPlayersToRenderPlayer[var_s0], gPlayersToRenderPlayerId[var_s0] + 4, gPlayersToRenderScreenId[var_s0], gPlayersToRenderScreenId[var_s0] - 2, D_801651D0[gPlayersToRenderScreenId[var_s0]][gPlayersToRenderPlayerId[var_s0]]); + mio0decode((u8*) gEncodedKartTexture[D_801651D0[gPlayersToRenderScreenId[var_s0 - 1]][gPlayersToRenderPlayerId[var_s0 - 1]]][gPlayersToRenderScreenId[var_s0 - 1] - 2][gPlayersToRenderPlayerId[var_s0 - 1] + 4].unk_00, + D_802BFB80.arraySize8[D_801651D0[gPlayersToRenderScreenId[var_s0 - 1]][gPlayersToRenderPlayerId[var_s0 - 1]]][gPlayersToRenderScreenId[var_s0 - 1] - 2][gPlayersToRenderPlayerId[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); + mio0decode((u8*) gEncodedKartTexture[D_801651D0[gPlayersToRenderScreenId[gPlayersToRenderCount-1]][gPlayersToRenderPlayerId[gPlayersToRenderCount-1]]][gPlayersToRenderScreenId[gPlayersToRenderCount-1] - 2][gPlayersToRenderPlayerId[gPlayersToRenderCount-1] + 4].unk_00, + D_802BFB80.arraySize8[D_801651D0[gPlayersToRenderScreenId[gPlayersToRenderCount-1]][gPlayersToRenderPlayerId[gPlayersToRenderCount-1]]][gPlayersToRenderScreenId[gPlayersToRenderCount-1] - 2][gPlayersToRenderPlayerId[gPlayersToRenderCount-1] + 4].pixel_index_array); } -void func_80020F1C(void) { +void load_kart_texture_and_render_kart_particle_on_screen_four(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); + 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++) { - 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); + load_kart_texture_non_blocking(gPlayersToRenderPlayer[var_s0], gPlayersToRenderPlayerId[var_s0] + 4, gPlayersToRenderScreenId[var_s0], gPlayersToRenderScreenId[var_s0] - 2, D_801651D0[gPlayersToRenderScreenId[var_s0]][gPlayersToRenderPlayerId[var_s0]]); + mio0decode((u8*) gEncodedKartTexture[D_801651D0[gPlayersToRenderScreenId[var_s0 - 1]][gPlayersToRenderPlayerId[var_s0 - 1]]][gPlayersToRenderScreenId[var_s0 - 1] - 2][gPlayersToRenderPlayerId[var_s0 - 1] + 4].unk_00, + D_802BFB80.arraySize8[D_801651D0[gPlayersToRenderScreenId[var_s0 - 1]][gPlayersToRenderPlayerId[var_s0 - 1]]][gPlayersToRenderScreenId[var_s0 - 1] - 2][gPlayersToRenderPlayerId[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); + mio0decode((u8*) gEncodedKartTexture[D_801651D0[gPlayersToRenderScreenId[gPlayersToRenderCount-1]][gPlayersToRenderPlayerId[gPlayersToRenderCount-1]]][gPlayersToRenderScreenId[gPlayersToRenderCount-1] - 2][gPlayersToRenderPlayerId[gPlayersToRenderCount-1] + 4].unk_00, + D_802BFB80.arraySize8[D_801651D0[gPlayersToRenderScreenId[gPlayersToRenderCount-1]][gPlayersToRenderPlayerId[gPlayersToRenderCount-1]]][gPlayersToRenderScreenId[gPlayersToRenderCount-1] - 2][gPlayersToRenderPlayerId[gPlayersToRenderCount-1] + 4].pixel_index_array); } void try_rendering_player(Player *player, s8 playerId, s8 arg2) { @@ -359,38 +362,38 @@ void render_players_on_screen_one(void) { }; gPlayersToRenderCount = 0; - init_render_player(gPlayerOneCopy, camera1, 0U, 0U); - init_render_player(gPlayerTwo, camera1, 1U, 0U); - init_render_player(gPlayerThree, camera1, 2U, 0U); - init_render_player(gPlayerFour, camera1, 3U, 0U); + init_render_player(gPlayerOneCopy, camera1, PLAYER_ONE, PLAYER_ONE); + init_render_player(gPlayerTwo, camera1, PLAYER_TWO, PLAYER_ONE); + init_render_player(gPlayerThree, camera1, PLAYER_THREE, PLAYER_ONE); + init_render_player(gPlayerFour, camera1, PLAYER_FOUR, PLAYER_ONE); if (gActiveScreenMode != SCREEN_MODE_3P_4P_SPLITSCREEN) { - init_render_player(gPlayerFive, camera1, 4U, 0U); - init_render_player(gPlayerSix, camera1, 5U, 0U); - init_render_player(gPlayerSeven, camera1, 6U, 0U); - init_render_player(gPlayerEight, camera1, 7U, 0U); + init_render_player(gPlayerFive, camera1, PLAYER_FIVE, PLAYER_ONE); + init_render_player(gPlayerSix, camera1, PLAYER_SIX, PLAYER_ONE); + init_render_player(gPlayerSeven, camera1, PLAYER_SEVEN, PLAYER_ONE); + init_render_player(gPlayerEight, camera1, PLAYER_EIGHT, PLAYER_ONE); } - try_rendering_player(gPlayerOne, 0U, 0U); - try_rendering_player(gPlayerTwo, 1U, 0U); - try_rendering_player(gPlayerThree, 2U, 0U); - try_rendering_player(gPlayerFour, 3U, 0U); + try_rendering_player(gPlayerOne, PLAYER_ONE, PLAYER_ONE); + try_rendering_player(gPlayerTwo, PLAYER_TWO, PLAYER_ONE); + try_rendering_player(gPlayerThree, PLAYER_THREE, PLAYER_ONE); + try_rendering_player(gPlayerFour, PLAYER_FOUR, PLAYER_ONE); if (gActiveScreenMode != SCREEN_MODE_3P_4P_SPLITSCREEN) { - try_rendering_player(gPlayerFive, 4U, 0U); - try_rendering_player(gPlayerSix, 5U, 0U); - try_rendering_player(gPlayerSeven, 6U, 0U); - try_rendering_player(gPlayerEight, 7U, 0U); + try_rendering_player(gPlayerFive, PLAYER_FIVE, PLAYER_ONE); + try_rendering_player(gPlayerSix, PLAYER_SIX, PLAYER_ONE); + try_rendering_player(gPlayerSeven, PLAYER_SEVEN, PLAYER_ONE); + try_rendering_player(gPlayerEight, PLAYER_EIGHT, PLAYER_ONE); } if (gPlayersToRenderCount != 0) { - func_80020524(); + load_kart_texture_and_render_kart_particle_on_screen_one(); } else { - func_8006E5AC(gPlayerOneCopy, 0, 0); - func_8006E5AC(gPlayerTwo, 1, 0); - func_8006E5AC(gPlayerThree, 2, 0); - func_8006E5AC(gPlayerFour, 3, 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) { - func_8006E5AC(gPlayerFive, 4, 0); - func_8006E5AC(gPlayerSix, 5, 0); - func_8006E5AC(gPlayerSeven, 6, 0); - func_8006E5AC(gPlayerEight, 7, 0); + 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); } } gPlayersToRenderCount = 0; @@ -528,38 +531,38 @@ s32 maybeCompilerPadding = 0; void render_players_on_screen_two(void) { gPlayersToRenderCount = 0; - init_render_player(gPlayerOneCopy, camera2, 0, 1); - init_render_player(gPlayerTwo, camera2, 1, 1); - init_render_player(gPlayerThree, camera2, 2, 1); - init_render_player(gPlayerFour, camera2, 3, 1); + init_render_player(gPlayerOneCopy, camera2, PLAYER_ONE, PLAYER_TWO); + init_render_player(gPlayerTwo, camera2, PLAYER_TWO, PLAYER_TWO); + init_render_player(gPlayerThree, camera2, PLAYER_THREE, PLAYER_TWO); + init_render_player(gPlayerFour, camera2, PLAYER_FOUR, PLAYER_TWO); if (gActiveScreenMode != SCREEN_MODE_3P_4P_SPLITSCREEN) { - init_render_player(gPlayerFive, camera2, 4, 1); - init_render_player(gPlayerSix, camera2, 5, 1); - init_render_player(gPlayerSeven, camera2, 6, 1); - init_render_player(gPlayerEight, camera2, 7, 1); + init_render_player(gPlayerFive, camera2, PLAYER_FIVE, PLAYER_TWO); + init_render_player(gPlayerSix, camera2, PLAYER_SIX, PLAYER_TWO); + init_render_player(gPlayerSeven, camera2, PLAYER_SEVEN, PLAYER_TWO); + init_render_player(gPlayerEight, camera2, PLAYER_EIGHT, PLAYER_TWO); } - try_rendering_player(gPlayerOne, 0, 1); - try_rendering_player(gPlayerTwo, 1, 1); - try_rendering_player(gPlayerThree, 2, 1); - try_rendering_player(gPlayerFour, 3, 1); + try_rendering_player(gPlayerOne, PLAYER_ONE, PLAYER_TWO); + try_rendering_player(gPlayerTwo, PLAYER_TWO, PLAYER_TWO); + try_rendering_player(gPlayerThree, PLAYER_THREE, PLAYER_TWO); + try_rendering_player(gPlayerFour, PLAYER_FOUR, PLAYER_TWO); if (gActiveScreenMode != SCREEN_MODE_3P_4P_SPLITSCREEN) { - try_rendering_player(gPlayerFive, 4, 1); - try_rendering_player(gPlayerSix, 5, 1); - try_rendering_player(gPlayerSeven, 6, 1); - try_rendering_player(gPlayerEight, 7, 1); + try_rendering_player(gPlayerFive, PLAYER_FIVE, PLAYER_TWO); + try_rendering_player(gPlayerSix, PLAYER_SIX, PLAYER_TWO); + try_rendering_player(gPlayerSeven, PLAYER_SEVEN, PLAYER_TWO); + try_rendering_player(gPlayerEight, PLAYER_EIGHT, PLAYER_TWO); } if (gPlayersToRenderCount != 0) { - func_8002088C(); + load_kart_texture_and_render_kart_particle_on_screen_two(); } else { - func_8006E634(gPlayerOneCopy, 0, 1); - func_8006E634(gPlayerTwo, 1, 1); - func_8006E634(gPlayerThree, 2, 1); - func_8006E634(gPlayerFour, 3, 1); + 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) { - func_8006E634(gPlayerFive, 4, 1); - func_8006E634(gPlayerSix, 5, 1); - func_8006E634(gPlayerSeven, 6, 1); - func_8006E634(gPlayerEight, 7, 1); + 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); } } gPlayersToRenderCount = 0; @@ -567,42 +570,42 @@ void render_players_on_screen_two(void) { void render_players_on_screen_three(void) { gPlayersToRenderCount = 0; - init_render_player(gPlayerOneCopy, camera3, 0, 2); - init_render_player(gPlayerTwo, camera3, 1, 2); - init_render_player(gPlayerThree, camera3, 2, 2); - init_render_player(gPlayerFour, camera3, 3, 2); - try_rendering_player(gPlayerOne, 0, 2); - try_rendering_player(gPlayerTwo, 1, 2); - try_rendering_player(gPlayerThree, 2, 2); - try_rendering_player(gPlayerFour, 3, 2); + init_render_player(gPlayerOneCopy, camera3, PLAYER_ONE, PLAYER_THREE); + 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); + 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) { - func_80020BF4(); + load_kart_texture_and_render_kart_particle_on_screen_three(); } else { - func_8006E6BC(gPlayerOneCopy, 0, 2); - func_8006E6BC(gPlayerTwo, 1, 2); - func_8006E6BC(gPlayerThree, 2, 2); - func_8006E6BC(gPlayerFour, 3, 2); + 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); } gPlayersToRenderCount = 0; } void render_players_on_screen_four(void) { gPlayersToRenderCount = 0; - init_render_player(gPlayerOneCopy, camera4, 0, 3); - init_render_player(gPlayerTwo, camera4, 1, 3); - init_render_player(gPlayerThree, camera4, 2, 3); - init_render_player(gPlayerFour, camera4, 3, 3); - try_rendering_player(gPlayerOne, 0, 3); - try_rendering_player(gPlayerTwo, 1, 3); - try_rendering_player(gPlayerThree, 2, 3); - try_rendering_player(gPlayerFour, 3, 3); + init_render_player(gPlayerOneCopy, camera4, PLAYER_ONE, PLAYER_FOUR); + 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); + 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) { - func_80020F1C(); + load_kart_texture_and_render_kart_particle_on_screen_four(); } else { - func_8006E744(gPlayerOneCopy, 0, 3); - func_8006E744(gPlayerTwo, 1, 3); - func_8006E744(gPlayerThree, 2, 3); - func_8006E744(gPlayerFour, 3, 3); + 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); } gPlayersToRenderCount = 0; } @@ -1416,11 +1419,11 @@ void render_kart(Player *player, s8 playerId, s8 arg2, s8 arg3) { gPlayerPalette = (struct_D_802F1F80 *) &D_802F1F80[D_801651D0[arg2][playerId]][arg2][playerId * 0x100]; #endif if ((arg2 == 0) || (arg2 == 1)) { - D_80164B08 = &D_802BFB80.arraySize8[D_801651D0[arg2][playerId]][arg2][playerId].pixel_index_array[0]; - D_80164B0C = &D_802BFB80.arraySize8[D_801651D0[arg2][playerId]][arg2][playerId].pixel_index_array[0x7C0]; + sKartUpperTexture = &D_802BFB80.arraySize8[D_801651D0[arg2][playerId]][arg2][playerId].pixel_index_array[0]; + sKartLowerTexture = &D_802BFB80.arraySize8[D_801651D0[arg2][playerId]][arg2][playerId].pixel_index_array[0x7C0]; } else { - D_80164B08 = &D_802BFB80.arraySize8[D_801651D0[arg2][playerId]][arg2 - 1][playerId - 4].pixel_index_array[0]; - D_80164B0C = &D_802BFB80.arraySize8[D_801651D0[arg2][playerId]][arg2 - 1][playerId - 4].pixel_index_array[0x7C0]; + sKartUpperTexture = &D_802BFB80.arraySize8[D_801651D0[arg2][playerId]][arg2 - 1][playerId - 4].pixel_index_array[0]; + sKartLowerTexture = &D_802BFB80.arraySize8[D_801651D0[arg2][playerId]][arg2 - 1][playerId - 4].pixel_index_array[0x7C0]; } mtxf_translate_rotate(sp1A4, sp154, sp14C); mtxf_scale2(sp1A4, gCharacterSize[player->characterId] * player->size); @@ -1490,11 +1493,11 @@ void render_kart(Player *player, s8 playerId, s8 arg2, s8 arg3) { gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2); } - gDPLoadTextureBlock(gDisplayListHead++, D_80164B08, 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); + 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); gSPVertex(gDisplayListHead++, &D_800DDBB4[playerId][arg3], 4, 0); gSPDisplayList(gDisplayListHead++, common_square_plain_render); - gDPLoadTextureBlock(gDisplayListHead++, D_80164B0C, 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); + 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_NOLOD); gSPVertex(gDisplayListHead++, &D_800DDBB4[playerId][arg3 + 4], 4, 0); gSPDisplayList(gDisplayListHead++, common_square_plain_render); gSPTexture(gDisplayListHead++, 1, 1, 0, G_TX_RENDERTILE, G_OFF); @@ -1534,11 +1537,11 @@ void render_ghost(Player *player, s8 playerId, s8 screenId, s8 arg3) { gPlayerPalette = (struct_D_802F1F80 *) &D_802F1F80[D_801651D0[screenId][playerId]][screenId][playerId * 0x100]; #endif if ((screenId == 0) || (screenId == 1)) { - D_80164B08 = &D_802BFB80.arraySize8[D_801651D0[screenId][playerId]][screenId][playerId].pixel_index_array[0]; - D_80164B0C = &D_802BFB80.arraySize8[D_801651D0[screenId][playerId]][screenId][playerId].pixel_index_array[0x7C0]; + sKartUpperTexture = &D_802BFB80.arraySize8[D_801651D0[screenId][playerId]][screenId][playerId].pixel_index_array[0]; + sKartLowerTexture = &D_802BFB80.arraySize8[D_801651D0[screenId][playerId]][screenId][playerId].pixel_index_array[0x7C0]; } else { - D_80164B08 = &D_802BFB80.arraySize8[D_801651D0[screenId][playerId]][screenId - 1][playerId - 4].pixel_index_array[0]; - D_80164B0C = &D_802BFB80.arraySize8[D_801651D0[screenId][playerId]][screenId - 1][playerId - 4].pixel_index_array[0x7C0]; + sKartUpperTexture = &D_802BFB80.arraySize8[D_801651D0[screenId][playerId]][screenId - 1][playerId - 4].pixel_index_array[0]; + sKartLowerTexture = &D_802BFB80.arraySize8[D_801651D0[screenId][playerId]][screenId - 1][playerId - 4].pixel_index_array[0x7C0]; } mtxf_translate_rotate(sp12C, spDC, spD4); @@ -1560,11 +1563,11 @@ void render_ghost(Player *player, s8 playerId, s8 screenId, s8 arg3) { ); 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)); - gDPLoadTextureBlock(gDisplayListHead++, D_80164B08, 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); + 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); gSPVertex(gDisplayListHead++, &D_800DDBB4[playerId][arg3], 4, 0); gSPDisplayList(gDisplayListHead++, common_square_plain_render); - gDPLoadTextureBlock(gDisplayListHead++, D_80164B0C, 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); + 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_NOLOD); gSPVertex(gDisplayListHead++, &D_800DDBB4[playerId][arg3 + 4], 4, 0); gSPDisplayList(gDisplayListHead++, common_square_plain_render); gSPTexture(gDisplayListHead++, 1, 1, 0, G_TX_RENDERTILE, G_OFF); @@ -1601,11 +1604,11 @@ void func_80025DE8(Player *player, s8 playerId, s8 screenId, s8 arg3) { ); 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)); - gDPLoadTextureBlock(gDisplayListHead++, D_80164B08, 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); + 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); gSPVertex(gDisplayListHead++, &D_800DDBB4[playerId][arg3], 4, 0); gSPDisplayList(gDisplayListHead++, common_square_plain_render); - gDPLoadTextureBlock(gDisplayListHead++, D_80164B0C, 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); + 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_NOLOD); gSPVertex(gDisplayListHead++, &D_800DDBB4[playerId][arg3 + 4], 4, 0); gSPDisplayList(gDisplayListHead++, common_square_plain_render); gSPTexture(gDisplayListHead++, 1, 1, 0, G_TX_RENDERTILE, G_OFF); @@ -1646,10 +1649,10 @@ void render_player_ice_reflection(Player *player, s8 playerId, s8 screenId, s8 a (s16) player->unk_0C6 / 2 ); gDPSetRenderMode(gDisplayListHead++, G_RM_ZB_XLU_SURF, G_RM_ZB_XLU_SURF2); - gDPLoadTextureBlock(gDisplayListHead++, D_80164B08, 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); + 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); gSPVertex(gDisplayListHead++, &D_800DDBB4[playerId][arg3], 4, 0); gSPDisplayList(gDisplayListHead++, common_square_plain_render); - gDPLoadTextureBlock(gDisplayListHead++, D_80164B0C, 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); + 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_NOLOD); gSPVertex(gDisplayListHead++, &D_800DDBB4[playerId][arg3 + 4], 4, 0); gSPDisplayList(gDisplayListHead++, common_square_plain_render); gSPTexture(gDisplayListHead++, 1, 1, 0, G_TX_RENDERTILE, G_OFF); @@ -1723,8 +1726,8 @@ void func_80026A48(Player *player, s8 arg1) { #endif 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_t0 = gLastAnimFrameSelector[screenId][playerId]; + s16 temp_t1 = gLastAnimGroupSelector[screenId][playerId]; s16 temp_t2 = player->unk_240; s16 temp_num = 0x40; // setting this as a variable gets rid of regalloc diff --git a/src/render_player.h b/src/render_player.h index c1ab0c777..d2a5de8d2 100644 --- a/src/render_player.h +++ b/src/render_player.h @@ -14,10 +14,10 @@ void func_8001F9E4(Player*, Camera*, s8); u16 check_player_camera_collision(Player*, Camera*, f32, f32); u16 func_8001FD78(Player*, f32, f32, f32); void init_render_player(Player*, Camera*, s8, s8); -void func_80020524(void); -void func_8002088C(void); -void func_80020BF4(void); -void func_80020F1C(void); +void load_kart_texture_and_render_kart_particle_on_screen_one(void); +void load_kart_texture_and_render_kart_particle_on_screen_two(void); +void load_kart_texture_and_render_kart_particle_on_screen_three(void); +void load_kart_texture_and_render_kart_particle_on_screen_four(void); void try_rendering_player(Player*, s8, s8); void render_players_on_screen_one(void); void render_players_on_screen_two(void); @@ -68,14 +68,14 @@ void func_80027024(s32, s32, s32); /* This is where I'd put my static data, if I had any */ extern struct_D_802F1F80 *gPlayerPalette; -extern u8 *D_80164B08; -extern u8 *D_80164B0C; +extern u8 *sKartUpperTexture; +extern u8 *sKartLowerTexture; extern s32 D_80164A28; -extern s16 D_80164AB0[]; +extern s16 gPlayersToRenderPlayerId[]; extern s16 D_80164ABE[]; -extern s16 D_80164AC0[]; -extern Player *D_80164AD0[]; +extern s16 gPlayersToRenderScreenId[]; +extern Player *gPlayersToRenderPlayer[]; extern s16 gMatrixEffectCount; extern u16 gPlayerRedEffect[]; extern u16 gPlayerGreenEffect[]; @@ -281,8 +281,8 @@ extern u8 *gKartWario189Wheel0[]; extern s16 D_80165020[40]; extern Vec3f D_80165070[8]; -extern s16 D_801650D0[4][8]; -extern s16 D_80165110[4][8]; +extern s16 gLastAnimFrameSelector[4][8]; +extern s16 gLastAnimGroupSelector[4][8]; extern s16 D_80165150[4][8]; extern s16 D_80165190[4][8]; extern s16 D_801651D0[4][8]; diff --git a/src/spawn_players.c b/src/spawn_players.c index ce3281fa2..a34eba3dc 100644 --- a/src/spawn_players.c +++ b/src/spawn_players.c @@ -250,14 +250,14 @@ void spawn_player(Player *player, s8 playerIndex, f32 startingRow, f32 startingC idx = playerIndex; - D_801650D0[0][idx] = 0; - D_801650D0[1][idx] = 0; - D_801650D0[2][idx] = 0; - D_801650D0[3][idx] = 0; - D_80165110[0][idx] = 0; - D_80165110[1][idx] = 0; - D_80165110[2][idx] = 0; - D_80165110[3][idx] = 0; + gLastAnimFrameSelector[0][idx] = 0; + gLastAnimFrameSelector[1][idx] = 0; + gLastAnimFrameSelector[2][idx] = 0; + gLastAnimFrameSelector[3][idx] = 0; + gLastAnimGroupSelector[0][idx] = 0; + gLastAnimGroupSelector[1][idx] = 0; + gLastAnimGroupSelector[2][idx] = 0; + gLastAnimGroupSelector[3][idx] = 0; D_80165190[0][idx] = 0; D_80165190[1][idx] = 0; D_80165190[2][idx] = 0; @@ -1080,16 +1080,16 @@ void func_8003CD98(Player *player, Camera *camera, s8 playerId, s8 screenId) { load_kart_palette(player, playerId, screenId, 0); load_kart_palette(player, playerId, screenId, 1); load_kart_texture(player, playerId, screenId, screenId, 0); - mio0decode((u8 *) &D_802DFB80[0][screenId][playerId], (u8 *) &D_802BFB80.arraySize8[0][screenId][playerId]); + mio0decode((u8 *) &gEncodedKartTexture[0][screenId][playerId], (u8 *) &D_802BFB80.arraySize8[0][screenId][playerId]); } else { load_kart_palette(player, playerId, screenId, 0); load_kart_palette(player, playerId, screenId, 1); load_kart_texture(player, (s8) (playerId + 4), screenId, (s8) (screenId - 2), 0); - mio0decode((u8 *) &D_802DFB80[0][screenId - 2][playerId + 4], (u8 *) &D_802BFB80.arraySize8[0][screenId - 2][playerId + 4]); + mio0decode((u8 *) &gEncodedKartTexture[0][screenId - 2][playerId + 4], (u8 *) &D_802BFB80.arraySize8[0][screenId - 2][playerId + 4]); } - D_801650D0[screenId][playerId] = player->animFrameSelector[screenId]; - D_80165110[screenId][playerId] = player->animGroupSelector[screenId]; + gLastAnimFrameSelector[screenId][playerId] = player->animFrameSelector[screenId]; + gLastAnimGroupSelector[screenId][playerId] = player->animGroupSelector[screenId]; D_80165150[screenId][playerId] = player->unk_0A8; D_801651D0[screenId][playerId] = 0; render_player(player, playerId, screenId);