mirror of
https://github.com/n64decomp/mk64
synced 2026-06-02 17:48:34 -04:00
document texture of kart
This commit is contained in:
+11
-4
@@ -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
|
||||
|
||||
|
||||
+1
-1
@@ -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]".
|
||||
|
||||
@@ -3,8 +3,11 @@
|
||||
#include <mk64.h>
|
||||
#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
|
||||
|
||||
+64
-64
@@ -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) {
|
||||
|
||||
+4
-4
@@ -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);
|
||||
|
||||
+17
-17
@@ -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
|
||||
);
|
||||
|
||||
+1
-1
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
+173
-170
@@ -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
|
||||
|
||||
|
||||
+11
-11
@@ -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];
|
||||
|
||||
+12
-12
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user