Renames for screenId and other changes (#636)

* screenId renames
This commit is contained in:
MegaMech 2024-06-15 12:01:58 -06:00 committed by GitHub
parent aa7e9146c4
commit bbf45b44de
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
15 changed files with 303 additions and 307 deletions

View File

@ -26,8 +26,8 @@ glabel audio_init
.L800BC128:
/* BCD28 800BC128 19E0000C */ blez $t7, .L800BC15C
/* BCD2C 800BC12C 3C04803B */ lui $a0, %hi(gGfxSPTaskOutputBufferSize)
/* BCD30 800BC130 3C18803B */ lui $t8, %hi(D_803B71B0)
/* BCD34 800BC134 270271B0 */ addiu $v0, $t8, %lo(D_803B71B0)
/* BCD30 800BC130 3C18803B */ lui $t8, %hi(gAudioHeap)
/* BCD34 800BC134 270271B0 */ addiu $v0, $t8, %lo(gAudioHeap)
/* BCD38 800BC138 000FC8C0 */ sll $t9, $t7, 3
/* BCD3C 800BC13C 03221821 */ addu $v1, $t9, $v0
.L800BC140:

View File

@ -34,8 +34,8 @@ glabel audio_init
.L800BC128:
/* 0BCD28 800BC128 19E0000C */ blez $t7, .L800BC15C
/* 0BCD2C 800BC12C 3C04803B */ lui $a0, %hi(gGfxSPTaskOutputBufferSize) # 0x803b
/* 0BCD30 800BC130 3C18803B */ lui $t8, %hi(D_803B71B0) # 0x803b
/* 0BCD34 800BC134 270271B0 */ addiu $v0, $t8, %lo(D_803B71B0) # 0x71b0
/* 0BCD30 800BC130 3C18803B */ lui $t8, %hi(gAudioHeap) # 0x803b
/* 0BCD34 800BC134 270271B0 */ addiu $v0, $t8, %lo(gAudioHeap) # 0x71b0
/* 0BCD38 800BC138 000FC8C0 */ sll $t9, $t7, 3
/* 0BCD3C 800BC13C 03221821 */ addu $v1, $t9, $v0
.L800BC140:

View File

@ -441,4 +441,4 @@ u16 D_803B7192; // unconfirmed
u32 gAudioRandom;
s32 gAudioErrorFlags;
u32 D_803B71A0[4]; // unconfirmed
ALIGNED8 u8 D_803B71B0[4]; // unconfirmed
ALIGNED8 u8 gAudioHeap[4]; // unconfirmed

View File

@ -57,7 +57,7 @@ extern u16 D_803B7192; // unconfirmed
extern u32 gAudioRandom;
extern s32 gAudioErrorFlags;
extern u32 D_803B71A0[]; // unconfirmed
extern u8 D_803B71B0[]; // unconfirmed
extern u8 gAudioHeap[]; // unconfirmed
extern struct ReverbSettingsEU sReverbSettings[];
extern struct AudioSessionSettingsEU gAudioSessionPresets[];

View File

@ -194,8 +194,8 @@ void func_800B90E0(struct SoundAllocPool *pool) {
// inspired by sound_init_main_pools in sm64
void sound_init_main_pools(s32 arg0) {
sound_alloc_pool_init(&gAudioInitPool, &D_803B71B0, arg0);
sound_alloc_pool_init(&gAudioSessionPool, D_803B71B0 + arg0, gAudioHeapSize - arg0);
sound_alloc_pool_init(&gAudioInitPool, &gAudioHeap, arg0);
sound_alloc_pool_init(&gAudioSessionPool, gAudioHeap + arg0, gAudioHeapSize - arg0);
}
// inspired by session_pools_init in sm64

View File

@ -785,7 +785,7 @@ void audio_init(void) {
gAudioLoadLock = 0;
for (i = 0; i < gAudioHeapSize / 8; i++) {
((u64 *) D_803B71B0)[i] = 0;
((u64 *) gAudioHeap)[i] = 0;
}
#ifdef TARGET_N64

View File

@ -63,10 +63,8 @@ Gfx *D_8018E75C;
s32 gNumD_8018E768Entries;
struct_8018E768_entry D_8018E768[D_8018E768_SIZE];
s32 gCycleFlashMenu;
s8 D_8018E7AC[4];
s8 D_8018E7B0;
u32 D_8018E7B8[4];
u32 D_8018E7C8;
s8 D_8018E7AC[5];
u32 D_8018E7B8[5];
u32 D_8018E7D0[4];
s32 D_8018E7E0;
struct UnkStruct_8018E7E8 D_8018E7E8[D_8018E7E8_SIZE];
@ -2656,7 +2654,7 @@ void func_80094C60(void) {
void func_80095574(void) {
s32 var_v0;
if ((D_8018EE0C < 3) || (D_8018E7B0 != 0)) {
if ((D_8018EE0C < 3) || (D_8018E7AC[4] != 0)) {
func_800A8230();
}
if (gDebugMenuSelection >= 2) {
@ -4438,7 +4436,7 @@ Gfx *func_8009BA74(Gfx *arg0, MkTexture *arg1, s32 column, s32 row) {
}
temp_v0_3 = (u8*)func_8009B8C4(temp_v0->textureData);
if (temp_v0_3 != 0) {
if (D_8018E7B0 != 4) {
if (D_8018E7AC[4] != 4) {
arg0 = func_80095E10(arg0, var_s4, 0x00000400, 0x00000400, 0, 0, temp_v0->width, temp_v0->height, temp_v0->dX + column, temp_v0->dY + row, temp_v0_3, temp_v0->width, temp_v0->height);
} else {
arg0 = func_800987D0(arg0, 0U, 0U, temp_v0->width, temp_v0->height, temp_v0->dX + column, temp_v0->dY + row, temp_v0_3, temp_v0->width, temp_v0->height);
@ -5211,11 +5209,11 @@ void func_8009DAA8(void) {
u32 var_t0;
D_8018E7D0[4]++;
if (D_8018E7D0[4] >= (D_8018E7C8 + 1)) {
if (D_8018E7D0[4] >= (D_8018E7B8[4] + 1)) {
func_8009CE64(4);
}
gDPPipeSync(gDisplayListHead++);
var_t0 = (D_8018E7D0[4] * 255) / D_8018E7C8;
var_t0 = (D_8018E7D0[4] * 255) / D_8018E7B8[4];
if ((s32) var_t0 >= 0x100) {
var_t0 = 0x000000FF;
}
@ -5232,8 +5230,8 @@ void func_8009DB8C(void) {
D_8018E7D0[4]++;
// why?
var_v1 = D_8018E7D0[4];
if ((u32) var_v1 >= D_8018E7C8) {
if ((u32) var_v1 == D_8018E7C8) {
if ((u32) var_v1 >= D_8018E7B8[4]) {
if ((u32) var_v1 == D_8018E7B8[4]) {
for (var_s0 = 0; var_s0 < 0x4B0; var_s0++) {
D_8018D9B8[var_s0] = 1;
}
@ -5243,8 +5241,8 @@ void func_8009DB8C(void) {
} else {
var_s0 = 0;
var_s3 = 0;
while (var_s3 < (0x4B0U / D_8018E7C8)) {
if ((D_8018D9B8[var_s0] == 0) && (random_int((0x4B0U - D_8018E7D0[4]) / D_8018E7C8) == 0)) {
while (var_s3 < (0x4B0U / D_8018E7B8[4])) {
if ((D_8018D9B8[var_s0] == 0) && (random_int((0x4B0U - D_8018E7D0[4]) / D_8018E7B8[4]) == 0)) {
var_s3 += 1;
D_8018D9B8[var_s0] = 1;
}
@ -5266,7 +5264,7 @@ void func_8009DB8C(void) {
}
}
gDPPipeSync(gDisplayListHead++);
var_v1 = (D_8018E7D0[4] * 255) / D_8018E7C8;
var_v1 = (D_8018E7D0[4] * 255) / D_8018E7B8[4];
if (var_v1 >= 0x100) {
var_v1 = 0x000000FF;
}

View File

@ -437,9 +437,7 @@ extern s32 gNumD_8018E768Entries;
extern struct_8018E768_entry D_8018E768[D_8018E768_SIZE];
extern s32 gCycleFlashMenu;
extern s8 D_8018E7AC[];
extern s8 D_8018E7B0;
extern u32 D_8018E7B8[];
extern u32 D_8018E7C8;
extern u32 D_8018E7D0[];
extern s32 D_8018E7E0;
extern struct UnkStruct_8018E7E8 D_8018E7E8[D_8018E7E8_SIZE];

View File

@ -1693,35 +1693,35 @@ u8 *gKartPalettes[] = {
* @param arg3 Second buffer index appears to always be 0-3.
* @param arg4 First buffer index always zero.
**/
void load_kart_texture(Player *player, s8 playerId, s8 arg2, s8 arg3, s8 arg4) {
void load_kart_texture(Player *player, s8 playerId, s8 screenId, s8 screenId2, s8 index) {
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][playerId], D_800DDEB0[player->characterId]);
if (player->animFrameSelector[screenId] != 0) {
osInvalDCache(&D_802DFB80[index][screenId2][playerId], D_800DDEB0[player->characterId]);
osPiStartDma(
&gDmaIoMesg,
OS_MESG_PRI_NORMAL, OS_READ,
(uintptr_t) &_kart_texturesSegmentRomStart[SEGMENT_OFFSET(
gKartTextureTable1[player->characterId][player->animGroupSelector[arg2]][player->animFrameSelector[arg2]]
gKartTextureTable1[player->characterId][player->animGroupSelector[screenId]][player->animFrameSelector[screenId]]
)],
&D_802DFB80[arg4][arg3][playerId],
&D_802DFB80[index][screenId2][playerId],
D_800DDEB0[player->characterId],
&gDmaMesgQueue
);
osRecvMesg(&gDmaMesgQueue, &gMainReceivedMesg, OS_MESG_BLOCK);
} else {
osInvalDCache(&D_802DFB80[arg4][arg3][playerId], D_800DDEB0[player->characterId]);
osInvalDCache(&D_802DFB80[index][screenId2][playerId], D_800DDEB0[player->characterId]);
osPiStartDma(
&gDmaIoMesg,
OS_MESG_PRI_NORMAL,
OS_READ,
(uintptr_t) &_kart_texturesSegmentRomStart[SEGMENT_OFFSET(
gKartTextureTable0[player->characterId][player->animGroupSelector[arg2]][player->animFrameSelector[arg2]]
gKartTextureTable0[player->characterId][player->animGroupSelector[screenId]][player->animFrameSelector[screenId]]
)],
&D_802DFB80[arg4][arg3][playerId],
&D_802DFB80[index][screenId2][playerId],
D_800DDEB0[player->characterId],
&gDmaMesgQueue
);
@ -1729,7 +1729,7 @@ void load_kart_texture(Player *player, s8 playerId, s8 arg2, s8 arg3, s8 arg4) {
osRecvMesg(&gDmaMesgQueue, &gMainReceivedMesg, OS_MESG_BLOCK);
}
} else if (((temp & 0x400) == 0x400) || ((temp & 0x01000000) == 0x01000000) || ((temp & 0x02000000) == 0x02000000) || ((temp & 0x10000) == 0x10000)) {
osInvalDCache(&D_802DFB80[arg4][arg3][playerId], 0x780U);
osInvalDCache(&D_802DFB80[index][screenId2][playerId], 0x780U);
// player->unk_0A8 >> 8 converts an 8.8 fixed-point animation frame to a whole number.
osPiStartDma(
&gDmaIoMesg,
@ -1738,23 +1738,23 @@ void load_kart_texture(Player *player, s8 playerId, s8 arg2, s8 arg3, s8 arg4) {
(uintptr_t) &_kart_texturesSegmentRomStart[SEGMENT_OFFSET(
gKartTextureTumbles[player->characterId][player->unk_0A8 >> 8]
)],
&D_802DFB80[arg4][arg3][playerId],
&D_802DFB80[index][screenId2][playerId],
0x900,
&gDmaMesgQueue
);
osRecvMesg(&gDmaMesgQueue, &gMainReceivedMesg, OS_MESG_BLOCK);
} else {
osInvalDCache(&D_802DFB80[arg4][arg3][playerId], D_800DDEB0[player->characterId]);
osInvalDCache(&D_802DFB80[index][screenId2][playerId], D_800DDEB0[player->characterId]);
osPiStartDma(
&gDmaIoMesg,
OS_MESG_PRI_NORMAL,
OS_READ,
(uintptr_t) &_kart_texturesSegmentRomStart[SEGMENT_OFFSET(
gKartTextureTable0[player->characterId][player->animGroupSelector[arg2]][player->animFrameSelector[arg2]]
gKartTextureTable0[player->characterId][player->animGroupSelector[screenId]][player->animFrameSelector[screenId]]
)],
&D_802DFB80[arg4][arg3][playerId],
&D_802DFB80[index][screenId2][playerId],
D_800DDEB0[player->characterId],
&gDmaMesgQueue
);
@ -1830,11 +1830,11 @@ void func_80027560(Player *player, s8 arg1, s8 arg2, s8 arg3, s8 arg4) {
}
}
void load_kart_palette(Player *player, s8 playerId, s8 arg2, s8 arg3) {
void load_kart_palette(Player *player, s8 playerId, s8 screenId, s8 index) {
#ifdef AVOID_UB
struct_D_802F1F80 *temp_s0 = &D_802F1F80[arg3][arg2][playerId];
struct_D_802F1F80 *temp_s0 = &D_802F1F80[index][screenId][playerId];
#else
struct_D_802F1F80 *temp_s0 = (struct_D_802F1F80 *) &D_802F1F80[arg3][arg2][playerId * 0x100];
struct_D_802F1F80 *temp_s0 = (struct_D_802F1F80 *) &D_802F1F80[index][screenId][playerId * 0x100];
#endif
switch(gActiveScreenMode) {
case SCREEN_MODE_1P:

View File

@ -2003,7 +2003,7 @@ void func_800B44BC(void) {
// Likely checks that the user is actually in the menus and not racing.
bool func_800B4520(void) {
if ((D_8018E7B0 == 2) || (D_8018E7B0 == 3) || (D_8018E7B0 == 4) || (D_8018E7B0 == 7)) {
if ((D_8018E7AC[4] == 2) || (D_8018E7AC[4] == 3) || (D_8018E7AC[4] == 4) || (D_8018E7AC[4] == 7)) {
return TRUE;
}
return FALSE;

View File

@ -360,24 +360,24 @@ s32 get_player_index_for_player(Player *player) {
return index;
}
void func_80027DA8(Player *arg0, s8 arg1) {
void func_80027DA8(Player *player, s8 playerId) {
if (D_8015F890 != 1) {
if ((arg0->type & 0x10) != 0x10) {
if (((D_8018D168 == 1) && ((arg0->type & 0x4000) == 0x4000)) && ((arg0->type & 0x100) != 0x100)) {
func_800C94A4(arg1);
arg0->type |= 0x10;
} else if ((arg0->type & 0x2000) == 0) {
func_800C9A88(arg1);
arg0->type |= 0x10;
if ((player->type & 0x10) != 0x10) {
if (((D_8018D168 == 1) && ((player->type & 0x4000) == 0x4000)) && ((player->type & 0x100) != 0x100)) {
func_800C94A4(playerId);
player->type |= 0x10;
} else if ((player->type & 0x2000) == 0) {
func_800C9A88(playerId);
player->type |= 0x10;
}
}
} else if ((arg0->type & 0x10) != 0x10) {
if ((D_8018D168 == 1) && (arg0 == gPlayerOne)) {
func_800C94A4(arg1);
arg0->type |= 0x10;
} else if ((arg0->type & 0x2000) == 0) {
func_800C9A88(arg1);
arg0->type |= 0x10;
} else if ((player->type & 0x10) != 0x10) {
if ((D_8018D168 == 1) && (player == gPlayerOne)) {
func_800C94A4(playerId);
player->type |= 0x10;
} else if ((player->type & 0x2000) == 0) {
func_800C9A88(playerId);
player->type |= 0x10;
}
}
}
@ -618,7 +618,7 @@ void func_80027EDC(Player *player, s8 playerId) {
}
}
void func_80028864(Player *player, Camera *camera, s8 arg2, s8 arg3) {
void func_80028864(Player *player, Camera *camera, s8 playerId, s8 screenId) {
u16 sp1E;
if (!(player->type & PLAYER_START_SEQUENCE)) {
@ -648,7 +648,7 @@ void func_80028864(Player *player, Camera *camera, s8 arg2, s8 arg3) {
((player->unk_0CA & 2) != 0) ||
(player->unk_0CA & 8) ||
//! @todo make a proper match
((*(D_801633F8 + (arg2))) == ((s16) 1U))) {
((*(D_801633F8 + (playerId))) == ((s16) 1U))) {
player->effects &= ~0x1000;
if (((player->effects & 0x80) == 0x80) ||
((player->effects & 0x40) == 0x40) ||
@ -660,18 +660,18 @@ void func_80028864(Player *player, Camera *camera, s8 arg2, s8 arg3) {
((player->effects & HIT_BY_ITEM_EFFECT) == HIT_BY_ITEM_EFFECT) ||
((player->effects & 0x20000) == 0x20000) ||
(player->unk_044 & 0x800)) {
func_8002E594(player, camera, arg3, arg2);
func_8002E594(player, camera, screenId, playerId);
} else {
func_8002D268(player, camera, arg3, arg2);
func_8002D268(player, camera, screenId, playerId);
}
} else {
control_kart_ai_movement(player, camera, arg3, arg2);
control_kart_ai_movement(player, camera, screenId, playerId);
}
} else if ((player->type & PLAYER_STAGING) == PLAYER_STAGING) {
func_8002D028(player, arg2);
func_8002F730(player, camera, arg3, arg2);
func_8002D028(player, playerId);
func_8002F730(player, camera, screenId, playerId);
} else if (player->type & 0x80) {
func_8002D268(player, camera, arg3, arg2);
func_8002D268(player, camera, screenId, playerId);
} else {
if ((player->type & PLAYER_HUMAN) != PLAYER_HUMAN) {
player->currentSpeed = 50.0f;
@ -680,7 +680,7 @@ void func_80028864(Player *player, Camera *camera, s8 arg2, s8 arg3) {
}
}
void func_80028C44(Player *player, Camera *camera, s8 arg2, s8 arg3) {
void func_80028C44(Player *player, Camera *camera, s8 playerId, s8 screenId) {
if ((player->type & PLAYER_START_SEQUENCE) == 0) {
player->effects &= ~0x1000;
if (((player->effects & 0x80) == 0x80) ||
@ -693,16 +693,16 @@ void func_80028C44(Player *player, Camera *camera, s8 arg2, s8 arg3) {
((player->effects & HIT_BY_ITEM_EFFECT) == HIT_BY_ITEM_EFFECT) ||
((player->effects & 0x20000) == 0x20000) ||
((player->unk_044 & 0x800) != 0)) {
func_8002E594(player, camera, arg3, arg2);
func_8002E594(player, camera, screenId, playerId);
} else {
func_8002D268(player, camera, arg3, arg2);
func_8002D268(player, camera, screenId, playerId);
}
} else {
player->effects &= -9;
}
}
void func_80028D3C(Player *player, Camera *camera, s8 arg2, s8 arg3) {
void func_80028D3C(Player *player, Camera *camera, s8 playerId, s8 screenId) {
if ((((player->type & PLAYER_START_SEQUENCE) == 0)
&& (D_800DC510 != 5))
|| (player->unk_0CA & 2) != 0
@ -720,37 +720,37 @@ void func_80028D3C(Player *player, Camera *camera, s8 arg2, s8 arg3) {
((player->effects & HIT_BY_ITEM_EFFECT) == HIT_BY_ITEM_EFFECT) ||
((player->effects & 0x20000) == 0x20000) ||
((player->unk_044 & 0x800) != 0)) {
func_8002E594(player, camera, arg3, arg2);
func_8002E594(player, camera, screenId, playerId);
} else {
func_8002D268(player, camera, arg3, arg2);
func_8002D268(player, camera, screenId, playerId);
}
} else {
player->effects = player->effects & ~8;
}
}
void func_80028E70(Player *player, Camera *camera, s8 arg2, s8 arg3) {
void func_80028E70(Player *player, Camera *camera, s8 playerId, s8 screenId) {
if ((player->type & PLAYER_EXISTS) == PLAYER_EXISTS) {
switch (gGamestate) {
case ENDING:
if (!(player->type & PLAYER_START_SEQUENCE)) {
func_80038C6C(player, camera, arg3, arg2);
func_80038C6C(player, camera, screenId, playerId);
} else {
player->effects &= ~8;
}
break;
default:
func_80027DA8(player, arg2);
func_80027DA8(player, playerId);
switch (gModeSelection) {
case TIME_TRIALS:
case VERSUS:
func_80028C44(player, camera, arg2, arg3);
func_80028C44(player, camera, playerId, screenId);
break;
case BATTLE:
func_80028D3C(player, camera, arg2, arg3);
func_80028D3C(player, camera, playerId, screenId);
break;
default:
func_80028864(player, camera, arg2, arg3);
func_80028864(player, camera, playerId, screenId);
break;
}
break;
@ -810,37 +810,37 @@ void func_800291F8(void) {
}
void func_80029200(Player *player, s8 arg1) {
void func_80029200(Player *player, s8 screenId) {
if ((s32) player->slopeAccel < -0x71B) {
player->animGroupSelector[arg1] = 0;
player->animGroupSelector[screenId] = 0;
}
if (((s32) player->slopeAccel < -0x4F9) && ((s32) player->slopeAccel >= -0x71B)) {
player->animGroupSelector[arg1] = 1;
player->animGroupSelector[screenId] = 1;
}
if ((player->slopeAccel < -0x221) && (player->slopeAccel >= -0x4F9)) {
player->animGroupSelector[arg1] = 2;
player->animGroupSelector[screenId] = 2;
}
if ((player->slopeAccel < -0x16B) && (player->slopeAccel >= -0x221)) {
player->animGroupSelector[arg1] = 3;
player->animGroupSelector[screenId] = 3;
}
if ((player->slopeAccel < 0x16C) && (player->slopeAccel >= -0x16B)) {
player->animGroupSelector[arg1] = 4;
player->animGroupSelector[screenId] = 4;
}
if ((player->slopeAccel >= 0x16C) && (player->slopeAccel < 0x222)) {
player->animGroupSelector[arg1] = 5;
player->animGroupSelector[screenId] = 5;
}
if ((player->slopeAccel >= 0x222) && (player->slopeAccel < 0x4FA)) {
player->animGroupSelector[arg1] = 6;
player->animGroupSelector[screenId] = 6;
}
if ((player->slopeAccel >= 0x4FA) && (player->slopeAccel < 0x71C)) {
player->animGroupSelector[arg1] = 7;
player->animGroupSelector[screenId] = 7;
}
if (player->slopeAccel >= 0x71C) {
player->animGroupSelector[arg1] = 8;
player->animGroupSelector[screenId] = 8;
}
}
void func_8002934C(Player *player, Camera *camera, s8 arg2, s8 playerId) {
void func_8002934C(Player *player, Camera *camera, s8 screenId, s8 playerId) {
UNUSED s32 pad[2];
f32 temp_f0;
f32 temp_f2;
@ -852,45 +852,45 @@ void func_8002934C(Player *player, Camera *camera, s8 arg2, s8 playerId) {
s32 var_t0;
u16 var_a0;
player->unk_048[arg2] = atan2s(player->pos[0] - camera->pos[0], player->pos[2] - camera->pos[2]);
player->animFrameSelector[arg2] = (u16) ( (((player->unk_048[arg2]) + player->rotation[1] + player->unk_0C0))) / 128;
player->unk_048[screenId] = atan2s(player->pos[0] - camera->pos[0], player->pos[2] - camera->pos[2]);
player->animFrameSelector[screenId] = (u16) ( (((player->unk_048[screenId]) + player->rotation[1] + player->unk_0C0))) / 128;
temp_f2 = (gCharacterSize[player->characterId] * 18.0f) * player->size;
temp_f0 = player->unk_230 - player->unk_23C;
if ((player->effects & 8) != 8) {
if ((player->effects & LIGHTNING_EFFECT) == LIGHTNING_EFFECT) {
player->unk_0CC[arg2] = (s16) ((s32) (((f64) func_802B7C40(temp_f0 / temp_f2)) * 1.6));
player->unk_0CC[screenId] = (s16) ((s32) (((f64) func_802B7C40(temp_f0 / temp_f2)) * 1.6));
} else {
player->unk_0CC[arg2] = func_802B7C40(temp_f0 / temp_f2) * 2;
player->unk_0CC[screenId] = func_802B7C40(temp_f0 / temp_f2) * 2;
}
}
if ((player->effects & HIT_EFFECT) == HIT_EFFECT) {
player->unk_0CC[arg2] = (s16) ((s32) player->unk_D9C);
player->unk_0CC[screenId] = (s16) ((s32) player->unk_D9C);
}
if ((player->effects & 8) != 8) {
temp_f0 = player->unk_1F8 - player->unk_1FC;
player->unk_0D4[arg2] = (((func_802B7C40(temp_f0 / temp_f2)) * 0.9));
player->unk_0D4[screenId] = (((func_802B7C40(temp_f0 / temp_f2)) * 0.9));
}
else {
if (((player->animFrameSelector[arg2]) >= 0) && ((player->animFrameSelector[arg2]) < 0x101)) {
if (((player->animFrameSelector[screenId]) >= 0) && ((player->animFrameSelector[screenId]) < 0x101)) {
var_f0 = player->copy_rotation_y - player->pos[1];
} else {
var_f0 = player->pos[1] - player->copy_rotation_y;
}
player->unk_0D4[arg2] = (s16) ((s32) (((f64) func_802B7C40(var_f0 / temp_f2)) * 0.5));
player->unk_0D4[screenId] = (s16) ((s32) (((f64) func_802B7C40(var_f0 / temp_f2)) * 0.5));
}
if ((player->effects & HIT_EFFECT) == HIT_EFFECT) {
player->unk_0D4[arg2] = (s16) ((s32) player->unk_D9C);
player->unk_0D4[screenId] = (s16) ((s32) player->unk_D9C);
}
func_80029200(player, arg2);
temp_a0 = ((player->unk_048[arg2] + player->rotation[1]) + player->unk_0C0);
temp_a0 = (s16) player->unk_0D4[arg2] * sins((u16) temp_a0) + player->unk_0CC[arg2] * coss((u16) temp_a0);
move_s16_towards(&player->unk_050[arg2], temp_a0, 0.5f);
var_a0 = player->animFrameSelector[arg2];
player->unk_002 = player->unk_002 & (~(4 << (arg2 * 4)));
func_80029200(player, screenId);
temp_a0 = ((player->unk_048[screenId] + player->rotation[1]) + player->unk_0C0);
temp_a0 = (s16) player->unk_0D4[screenId] * sins((u16) temp_a0) + player->unk_0CC[screenId] * coss((u16) temp_a0);
move_s16_towards(&player->unk_050[screenId], temp_a0, 0.5f);
var_a0 = player->animFrameSelector[screenId];
player->unk_002 = player->unk_002 & (~(4 << (screenId * 4)));
if (var_a0 >= 0x101) {
var_a0 = 0x201 - var_a0;
player->unk_002 |= (4 << (arg2 * 4));
player->unk_002 |= (4 << (screenId * 4));
}
if (((player->effects & 0x80) != 0x80)
&& ((player->effects & 0x40) != 0x40)
@ -913,13 +913,13 @@ void func_8002934C(Player *player, Camera *camera, s8 arg2, s8 playerId) {
if (((player->effects & 0x80000) == 0x80000)
|| ((player->effects & 0x800000) == 0x800000)
|| (player->unk_044 & 0x800)) {
player->unk_050[arg2] = 0;
player->unk_050[screenId] = 0;
}
if (((player->effects & 8) == 8)
&& ((player->unk_0CA & 2) == 2)) {
player->unk_050[arg2] = 0;
player->unk_050[screenId] = 0;
}
var_a0 = (player->unk_048[arg2] + player->rotation[1] + player->unk_0C0);
var_a0 = (player->unk_048[screenId] + player->rotation[1] + player->unk_0C0);
if (((player->effects & 0x80) == 0x80)
|| ((player->effects & 0x40) == 0x40)
|| ((player->effects & 0x80000) == 0x80000)
@ -941,9 +941,9 @@ void func_8002934C(Player *player, Camera *camera, s8 arg2, s8 playerId) {
}
var_a0 /= var_a1;
}
player->animFrameSelector[arg2] = var_a0 + var_t0;
if ((player->animFrameSelector[arg2]) >= 0x23) {
player->animFrameSelector[arg2] = 0x22;
player->animFrameSelector[screenId] = var_a0 + var_t0;
if ((player->animFrameSelector[screenId]) >= 0x23) {
player->animFrameSelector[screenId] = 0x22;
}
if ((player->effects & 0x80)
|| (player->effects & 0x40)
@ -952,18 +952,18 @@ void func_8002934C(Player *player, Camera *camera, s8 arg2, s8 playerId) {
|| (player->effects & 0x20000)
|| (player->unk_044 & 0x800)) {
if ((player->animFrameSelector[arg2]) >= 0x14) {
player->animFrameSelector[arg2] = 0;
if ((player->animFrameSelector[screenId]) >= 0x14) {
player->animFrameSelector[screenId] = 0;
}
}
if ((player->animGroupSelector[arg2]) >= 9) {
player->animGroupSelector[arg2] = 4;
if ((player->animGroupSelector[screenId]) >= 9) {
player->animGroupSelector[screenId] = 4;
}
if (((player->effects & 0x80000) == 0x80000)
|| ((player->effects & 0x800000) == 0x800000)
|| (player->unk_044 & 0x800)) {
player->animGroupSelector[arg2] = 4;
player->animGroupSelector[screenId] = 4;
}
if (((player->effects & 0x400) == 0x400)
|| ((player->effects & 0x01000000) == 0x01000000)
@ -972,27 +972,27 @@ void func_8002934C(Player *player, Camera *camera, s8 arg2, s8 playerId) {
|| (player->effects & 0x80)
|| (player->effects & 0x40)) {
player->unk_002 |= 1 << (arg2 * 4);
D_80165190[arg2][playerId] = 1;
player->unk_002 |= 1 << (screenId * 4);
D_80165190[screenId][playerId] = 1;
if ((player->effects & 0x80) || (player->effects & 0x40)) {
if ((player->animFrameSelector[arg2] == D_801650D0[arg2][playerId])
&& (player->animGroupSelector[arg2] == D_80165110[arg2][playerId])) {
player->unk_002 &= ~(1 << (arg2 * 4));
D_80165190[arg2][playerId] = 1;
if ((player->animFrameSelector[screenId] == D_801650D0[screenId][playerId])
&& (player->animGroupSelector[screenId] == D_80165110[screenId][playerId])) {
player->unk_002 &= ~(1 << (screenId * 4));
D_80165190[screenId][playerId] = 1;
}
} else if (((player->unk_0A8) >> 8) == D_80165150[arg2][playerId] >> 8) {
player->unk_002 &= ~(1 << (arg2 * 4));
} else if (((player->unk_0A8) >> 8) == D_80165150[screenId][playerId] >> 8) {
player->unk_002 &= ~(1 << (screenId * 4));
}
} else {
player->unk_002 |= 1 << (arg2 * 4);
if (((player->animFrameSelector[arg2] == D_801650D0[arg2][playerId]) && (player->animGroupSelector[arg2] == D_80165110[arg2][playerId])) && ((D_80165190[arg2][playerId]) == 0)) {
player->unk_002 &= ~(1 << (arg2 * 4));
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)) {
player->unk_002 &= ~(1 << (screenId * 4));
}
}
temp_a0_2 = D_801650D0[arg2][playerId] - player->animFrameSelector[arg2];
temp_a0_2 = D_801650D0[screenId][playerId] - player->animFrameSelector[screenId];
if ((temp_a0_2 >= 0x14) || (temp_a0_2 < (-0x13))) {
player->unk_002 |= 1 << (arg2 * 4);
player->unk_002 |= 1 << (screenId * 4);
}
}
@ -1516,7 +1516,7 @@ void func_8002B218(Player *player) {
}
}
void apply_sound_effect(Player *player, s8 playerId, UNUSED s8 arg2) {
void apply_sound_effect(Player *player, s8 playerId, UNUSED s8 screenId) {
if ((player->soundEffects & 2) == 2) {
apply_hit_by_item_sound_effect(player, playerId);
}
@ -1573,7 +1573,7 @@ void apply_sound_effect(Player *player, s8 playerId, UNUSED s8 arg2) {
}
}
void func_8002B5C0(Player *player, UNUSED s8 playerId, UNUSED s8 arg2) {
void func_8002B5C0(Player *player, UNUSED s8 playerId, UNUSED s8 screenId) {
if (((player->unk_0CA & 8) != 0) || ((player->unk_0CA & 2) != 0)) {
player->soundEffects &= 0xFE1D0478;
}
@ -1627,12 +1627,12 @@ void func_8002B5C0(Player *player, UNUSED s8 playerId, UNUSED s8 arg2) {
}
}
void func_8002B830(Player *player, s8 playerId, s8 arg2) {
void func_8002B830(Player *player, s8 playerId, s8 screenId) {
if (player->soundEffects != 0) {
func_8002B5C0(player, playerId, arg2);
func_8002B5C0(player, playerId, screenId);
}
if (player->soundEffects != 0) {
apply_sound_effect(player, playerId, arg2);
apply_sound_effect(player, playerId, screenId);
}
if ((player->unk_044 & 0x400) != 0) {
func_800911B4(player, playerId);
@ -2199,7 +2199,7 @@ void func_8002D028(Player *player, s8 arg1) {
}
}
void func_8002D268(Player *player, UNUSED Camera *camera, s8 arg2, s8 playerId)
void func_8002D268(Player *player, UNUSED Camera *camera, s8 screenId, s8 playerId)
{
Vec3f sp184 = {0.0, 0.0, 1.0};
Vec3f sp178 = {0.0, 0.0, 0.0};
@ -2234,11 +2234,11 @@ void func_8002D268(Player *player, UNUSED Camera *camera, s8 arg2, s8 playerId)
if ((player->type & PLAYER_HUMAN) == PLAYER_HUMAN) {
func_8002A79C(player, playerId);
}
func_8002B830(player, playerId, arg2);
func_8002B830(player, playerId, screenId);
if (((player->type & PLAYER_HUMAN) == PLAYER_HUMAN) && ((player->type & PLAYER_INVISIBLE_OR_BOMB) != PLAYER_INVISIBLE_OR_BOMB)) {
func_8002BF4C(player, playerId);
}
apply_effect(player, playerId, arg2);
apply_effect(player, playerId, screenId);
if (((player->effects & 0x20000000) == 0x20000000) && (player->unk_228 >= 0x64)) {
sp7C = 2;
}
@ -2288,7 +2288,7 @@ void func_8002D268(Player *player, UNUSED Camera *camera, s8 arg2, s8 playerId)
mtxf_translate_vec3f_mat3(sp178, player->orientationMatrix);
spB4 += sp178[0];
spAC += sp178[2];
func_8002C7E4(player, playerId, arg2);
func_8002C7E4(player, playerId, screenId);
sp184[2] = func_80030150(player, playerId);
mtxf_translate_vec3f_mat3(sp184, player->orientationMatrix);
sp98[0] = player->velocity[0];
@ -2461,7 +2461,7 @@ void func_8002D268(Player *player, UNUSED Camera *camera, s8 arg2, s8 playerId)
}
player->pos[1] = spF8;
if ((player->type & PLAYER_HUMAN) && (!(player->type & PLAYER_KART_AI))) {
func_8002BB9C(player, &spFC, &spF4, arg2, playerId, sp98);
func_8002BB9C(player, &spFC, &spF4, screenId, playerId, sp98);
}
player->unk_064[0] = sp178[0];
player->unk_064[2] = sp178[2];
@ -2509,7 +2509,7 @@ void func_8002E4C4(Player *player) {
player->velocity[1] = 0.0f;
}
void func_8002E594(Player *player, UNUSED Camera *camera, s8 arg2, s8 playerId) {
void func_8002E594(Player *player, UNUSED Camera *camera, s8 screenId, s8 playerId) {
Vec3f spEC = {0.0f, 0.0f, 1.0f};
Vec3f spE0 = {0.0f, 0.0f, 0.0f};
Vec3f spD4 = {0.0f, 0.0f, 0.0f};
@ -2531,7 +2531,7 @@ void func_8002E594(Player *player, UNUSED Camera *camera, s8 arg2, s8 playerId)
Vec3f sp54;
Vec3f sp48;
s16 sp46;
func_8002B830(player, playerId, arg2);
func_8002B830(player, playerId, screenId);
if ((((((((player->effects & 0x80) == 0x80)
|| ((player->effects & 0x40) == 0x40))
|| ((player->effects & 0x4000) == 0x4000))
@ -2543,7 +2543,7 @@ void func_8002E594(Player *player, UNUSED Camera *camera, s8 arg2, s8 playerId)
} else {
sp46 = 0;
}
apply_effect(player, playerId, arg2);
apply_effect(player, playerId, screenId);
func_8002AB70(player);
func_8002FCA8(player, playerId);
if ((((player->effects & 0x80) == 0x80)
@ -2557,7 +2557,7 @@ void func_8002E594(Player *player, UNUSED Camera *camera, s8 arg2, s8 playerId)
sp7C = -1 * player->kartGravity;
sp78 = -1 * player->unk_064[2];
}
func_8002C7E4(player, playerId, arg2);
func_8002C7E4(player, playerId, screenId);
if (sp46 == 1) {
calculate_orientation_matrix(player->orientationMatrix, player->unk_058, player->unk_05C, player->unk_060, (s16) ((s32) player->rotation[1]));
calculate_orientation_matrix(player->unk_150, player->unk_058, player->unk_05C, player->unk_060, (s16) ((s32) player->unk_0AE));
@ -2827,7 +2827,7 @@ void control_kart_ai_movement(Player *player, UNUSED Camera *camera, s8 arg2, s8
}
}
void func_8002F730(Player *player, UNUSED Camera *camera, UNUSED s8 arg2, s8 arg3) {
void func_8002F730(Player *player, UNUSED Camera *camera, UNUSED s8 screenId, s8 playerId) {
Vec3f spF4 = {0.0f, 0.0f, 1.0f};
Vec3f spE8 = {0.0f, 0.0f, 0.0f};
UNUSED Vec3f spDC = {0.0f, 0.0f, 0.0f};
@ -2853,7 +2853,7 @@ void func_8002F730(Player *player, UNUSED Camera *camera, UNUSED s8 arg2, s8 arg
func_80037BB4(player, spD0);
sp84 = player->unk_064[0] * 0;
sp7C = player->unk_064[2] * 0;
spF4[2] = func_80030150(player, arg3);
spF4[2] = func_80030150(player, playerId);
mtxf_translate_vec3f_mat3(spF4, player->orientationMatrix);
@ -2898,7 +2898,7 @@ void func_8002F730(Player *player, UNUSED Camera *camera, UNUSED s8 arg2, s8 arg
} else {
func_8002A194(player, spCC, spC8, spC4);
}
func_8002AE38(player, arg3, spC0, spB8, spCC, spC4);
func_8002AE38(player, playerId, spC0, spB8, spCC, spC4);
sqrt = (sp68[0] * sp68[0]) + (sp68[1] * sp68[1]) + (sp68[2] * sp68[2]);
player->unk_22C = player->unk_094;
player->unk_094 = sqrtf(sqrt);
@ -2918,9 +2918,9 @@ void func_8002F730(Player *player, UNUSED Camera *camera, UNUSED s8 arg2, s8 arg
player->velocity[1] = sp68[1];
player->velocity[2] = sp68[2];
D_80165070[arg3][0] = sp68[0];
D_80165070[arg3][1] = sp68[1];
D_80165070[arg3][2] = sp68[2];
D_80165070[playerId][0] = sp68[0];
D_80165070[playerId][1] = sp68[1];
D_80165070[playerId][2] = sp68[2];
if ((player->type & PLAYER_HUMAN) == PLAYER_HUMAN) {
if (gKartTopSpeedTable[player->characterId] < player->unk_094) {

View File

@ -44,7 +44,7 @@ void func_800431B0(Vec3f pos, Vec3su orientation, f32 scale, Vtx *vtx) {
void func_80043220(Vec3f pos, Vec3su orientation, f32 scale, Gfx *gfx) {
rsp_set_matrix_transformation(pos, orientation, scale);
gSPDisplayList(gDisplayListHead++, &D_0D0077A0);
gSPDisplayList(gDisplayListHead++, D_0D0077A0);
gSPDisplayList(gDisplayListHead++, gfx);
}

View File

@ -48,7 +48,7 @@ u16 gPlayerBlueEffect[8];
u16 gPlayerCyanEffect[8];
u16 gPlayerMagentaEffect[8];
u16 gPlayerYellowEffect[8];
//if it's also a color effect like before
// Likely an unused colour effect.
UNUSED u16 gPlayerWhiteEffect[8];
s32 D_80164B80[296];
s16 D_80165020[40];
@ -72,7 +72,7 @@ void func_8001F980(s32 *arg0, s32 *arg1) {
*arg1 = 0;
}
void func_8001F9E4(Player *player, Camera *camera, s8 arg2) {
void func_8001F9E4(Player *player, Camera *camera, s8 screenId) {
UNUSED s32 pad;
s32 sp30;
s32 sp2C;
@ -81,14 +81,14 @@ void func_8001F9E4(Player *player, Camera *camera, s8 arg2) {
get_player_index_for_player(player);
func_8001F980(&sp30, &sp2C);
player->unk_002 &= ~(2 << (arg2 * 4));
player->unk_002 &= ~(8 << (arg2 * 4));
player->unk_002 &= ~(2 << (screenId * 4));
player->unk_002 &= ~(8 << (screenId * 4));
if (check_player_camera_collision(player, camera, (f32) (D_80165578 + sp30), (f32) (D_8016557A + sp2C)) == 1) {
player->unk_002 |= 2 << (arg2 * 4);
player->unk_002 |= 2 << (screenId * 4);
}
if (check_player_camera_collision(player, camera, (f32) D_80165580, (f32) D_80165582) == 1) {
player->unk_002 |= 8 << (arg2 * 4);
player->unk_002 |= 8 << (screenId * 4);
}
}
@ -170,7 +170,7 @@ u16 func_8001FD78(Player *player, f32 posX, UNUSED f32 arg2, f32 posZ) {
return ret;
}
void init_render_player(Player *player, Camera *camera, s8 playerId, s8 playerRenderId) {
void init_render_player(Player *player, Camera *camera, s8 playerId, s8 screenId) {
UNUSED s32 pad[4];
s32 sp4C;
s32 sp48;
@ -179,64 +179,64 @@ void init_render_player(Player *player, Camera *camera, s8 playerId, s8 playerRe
s32 temp_v0_2;
if ((player->type & PLAYER_EXISTS) == PLAYER_EXISTS) {
func_8001F9E4(player, camera, playerRenderId);
temp_v0 = 2 << (playerRenderId << 2);
func_8001F9E4(player, camera, screenId);
temp_v0 = 2 << (screenId << 2);
if (temp_v0 == (player->unk_002 & temp_v0)) {
if (!(player->type & PLAYER_START_SEQUENCE)) {
func_8002934C(player, camera, playerRenderId, playerId);
func_8002934C(player, camera, screenId, playerId);
} else {
func_8002934C(player, camera, playerRenderId, playerId);
func_8002934C(player, camera, screenId, playerId);
player->slopeAccel = 0;
player->unk_206 = 0;
player->unk_050[playerRenderId] = 0;
player->unk_050[screenId] = 0;
}
}
func_8001F980(&sp4C, &sp48);
temp_v0_2 = 1 << (playerRenderId << 2);
temp_v0_2 = 1 << (screenId << 2);
if ((temp_v0 == (player->unk_002 & temp_v0)) && (temp_v0_2 == (player->unk_002 & temp_v0_2))) {
if ((check_player_camera_collision(player, camera, D_80165570 + sp4C, D_80165572 + sp48) == 1) & 0xFFFF) {
D_80164AB0[gPlayersToRenderCount] = (s16) playerId;
D_80164AC0[gPlayersToRenderCount] = (s16) playerRenderId;
D_80164AC0[gPlayersToRenderCount] = (s16) screenId;
D_80164AD0[gPlayersToRenderCount] = player;
gPlayersToRenderCount += 1;
D_80165190[playerRenderId][playerId] = 0;
D_801650D0[playerRenderId][playerId] = player->animFrameSelector[playerRenderId];
D_80165110[playerRenderId][playerId] = player->animGroupSelector[playerRenderId];
D_80165150[playerRenderId][playerId] = player->unk_0A8;
D_801651D0[playerRenderId][playerId] += 1;
if (D_801651D0[playerRenderId][playerId] == 2) {
D_801651D0[playerRenderId][playerId] = 0;
D_80165190[screenId][playerId] = 0;
D_801650D0[screenId][playerId] = player->animFrameSelector[screenId];
D_80165110[screenId][playerId] = player->animGroupSelector[screenId];
D_80165150[screenId][playerId] = player->unk_0A8;
D_801651D0[screenId][playerId] += 1;
if (D_801651D0[screenId][playerId] == 2) {
D_801651D0[screenId][playerId] = 0;
}
} else {
if ((check_player_camera_collision(player, camera, D_80165574 + sp4C, D_80165576) == 1) & 0xFFFF) {
if ((sRenderingFramebuffer == gRenderingFramebufferByPlayer[playerId]) || ((D_801650D0[playerRenderId][playerId] - player->animFrameSelector[playerRenderId]) > 0x13) || ((D_801650D0[playerRenderId][playerId] - player->animFrameSelector[playerRenderId]) < -0x13) || (D_80165190[playerRenderId][playerId] == (s16) 1U)) {
if ((sRenderingFramebuffer == gRenderingFramebufferByPlayer[playerId]) || ((D_801650D0[screenId][playerId] - player->animFrameSelector[screenId]) > 0x13) || ((D_801650D0[screenId][playerId] - player->animFrameSelector[screenId]) < -0x13) || (D_80165190[screenId][playerId] == (s16) 1U)) {
D_80164AB0[gPlayersToRenderCount] = (s16) playerId;
D_80164AC0[gPlayersToRenderCount] = (s16) playerRenderId;
D_80164AC0[gPlayersToRenderCount] = (s16) screenId;
D_80164AD0[gPlayersToRenderCount] = player;
gPlayersToRenderCount += 1;
D_801650D0[playerRenderId][playerId] = player->animFrameSelector[playerRenderId];
D_80165110[playerRenderId][playerId] = player->animGroupSelector[playerRenderId];
D_80165150[playerRenderId][playerId] = player->unk_0A8;
D_80165190[playerRenderId][playerId] = 0;
D_801651D0[playerRenderId][playerId] += 1;
if (D_801651D0[playerRenderId][playerId] == 2) {
D_801651D0[playerRenderId][playerId] = 0;
D_801650D0[screenId][playerId] = player->animFrameSelector[screenId];
D_80165110[screenId][playerId] = player->animGroupSelector[screenId];
D_80165150[screenId][playerId] = player->unk_0A8;
D_80165190[screenId][playerId] = 0;
D_801651D0[screenId][playerId] += 1;
if (D_801651D0[screenId][playerId] == 2) {
D_801651D0[screenId][playerId] = 0;
}
}
} else {
if ((
(D_801650D0[playerRenderId][playerId] - player->animFrameSelector[playerRenderId]) > 0x13) || ((D_801650D0[playerRenderId][playerId] - player->animFrameSelector[playerRenderId]) < -0x13) || (D_80165190[playerRenderId][playerId] == (s16) 1U)) {
(D_801650D0[screenId][playerId] - player->animFrameSelector[screenId]) > 0x13) || ((D_801650D0[screenId][playerId] - player->animFrameSelector[screenId]) < -0x13) || (D_80165190[screenId][playerId] == (s16) 1U)) {
D_80164AB0[gPlayersToRenderCount] = (s16) playerId;
D_80164AC0[gPlayersToRenderCount] = (s16) playerRenderId;
D_80164AC0[gPlayersToRenderCount] = (s16) screenId;
D_80164AD0[gPlayersToRenderCount] = player;
gPlayersToRenderCount += 1;
D_801650D0[playerRenderId][playerId] = (s16) player->animFrameSelector[playerRenderId];
D_80165110[playerRenderId][playerId] = player->animGroupSelector[playerRenderId];
D_80165150[playerRenderId][playerId] = player->unk_0A8;
D_80165190[playerRenderId][playerId] = 0;
D_801651D0[playerRenderId][playerId] += 1;
if (D_801651D0[playerRenderId][playerId] == 2) {
D_801651D0[playerRenderId][playerId] = 0;
D_801650D0[screenId][playerId] = (s16) player->animFrameSelector[screenId];
D_80165110[screenId][playerId] = player->animGroupSelector[screenId];
D_80165150[screenId][playerId] = player->unk_0A8;
D_80165190[screenId][playerId] = 0;
D_801651D0[screenId][playerId] += 1;
if (D_801651D0[screenId][playerId] == 2) {
D_801651D0[screenId][playerId] = 0;
}
}
}
@ -337,12 +337,12 @@ void func_80020F1C(void) {
D_802BFB80.arraySize8[D_801651D0[D_80164AC0[gPlayersToRenderCount-1]][D_80164AB0[gPlayersToRenderCount-1]]][D_80164AC0[gPlayersToRenderCount-1] - 2][D_80164AB0[gPlayersToRenderCount-1] + 4].pixel_index_array);
}
void try_render_player(Player *player, s8 playerId, s8 arg2) {
void try_rendering_player(Player *player, s8 playerId, s8 arg2) {
if (((player->type & PLAYER_EXISTS) == PLAYER_EXISTS)
&& ((player->type & PLAYER_UNKNOWN_0x40) == 0)) {
if ((player->unk_002 & 2 << (arg2 * 4)) == 2 << (arg2 * 4)) {
player_render(player, playerId, arg2);
render_player(player, playerId, arg2);
}
}
}
@ -369,15 +369,15 @@ void render_players_on_screen_one(void) {
init_render_player(gPlayerSeven, camera1, 6U, 0U);
init_render_player(gPlayerEight, camera1, 7U, 0U);
}
try_render_player(gPlayerOne, 0U, 0U);
try_render_player(gPlayerTwo, 1U, 0U);
try_render_player(gPlayerThree, 2U, 0U);
try_render_player(gPlayerFour, 3U, 0U);
try_rendering_player(gPlayerOne, 0U, 0U);
try_rendering_player(gPlayerTwo, 1U, 0U);
try_rendering_player(gPlayerThree, 2U, 0U);
try_rendering_player(gPlayerFour, 3U, 0U);
if (gActiveScreenMode != SCREEN_MODE_3P_4P_SPLITSCREEN) {
try_render_player(gPlayerFive, 4U, 0U);
try_render_player(gPlayerSix, 5U, 0U);
try_render_player(gPlayerSeven, 6U, 0U);
try_render_player(gPlayerEight, 7U, 0U);
try_rendering_player(gPlayerFive, 4U, 0U);
try_rendering_player(gPlayerSix, 5U, 0U);
try_rendering_player(gPlayerSeven, 6U, 0U);
try_rendering_player(gPlayerEight, 7U, 0U);
}
if (gPlayersToRenderCount != 0) {
func_80020524();
@ -538,15 +538,15 @@ void render_players_on_screen_two(void) {
init_render_player(gPlayerSeven, camera2, 6, 1);
init_render_player(gPlayerEight, camera2, 7, 1);
}
try_render_player(gPlayerOne, 0, 1);
try_render_player(gPlayerTwo, 1, 1);
try_render_player(gPlayerThree, 2, 1);
try_render_player(gPlayerFour, 3, 1);
try_rendering_player(gPlayerOne, 0, 1);
try_rendering_player(gPlayerTwo, 1, 1);
try_rendering_player(gPlayerThree, 2, 1);
try_rendering_player(gPlayerFour, 3, 1);
if (gActiveScreenMode != SCREEN_MODE_3P_4P_SPLITSCREEN) {
try_render_player(gPlayerFive, 4, 1);
try_render_player(gPlayerSix, 5, 1);
try_render_player(gPlayerSeven, 6, 1);
try_render_player(gPlayerEight, 7, 1);
try_rendering_player(gPlayerFive, 4, 1);
try_rendering_player(gPlayerSix, 5, 1);
try_rendering_player(gPlayerSeven, 6, 1);
try_rendering_player(gPlayerEight, 7, 1);
}
if (gPlayersToRenderCount != 0) {
func_8002088C();
@ -571,10 +571,10 @@ void render_players_on_screen_three(void) {
init_render_player(gPlayerTwo, camera3, 1, 2);
init_render_player(gPlayerThree, camera3, 2, 2);
init_render_player(gPlayerFour, camera3, 3, 2);
try_render_player(gPlayerOne, 0, 2);
try_render_player(gPlayerTwo, 1, 2);
try_render_player(gPlayerThree, 2, 2);
try_render_player(gPlayerFour, 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);
if (gPlayersToRenderCount != 0) {
func_80020BF4();
} else {
@ -592,10 +592,10 @@ void render_players_on_screen_four(void) {
init_render_player(gPlayerTwo, camera4, 1, 3);
init_render_player(gPlayerThree, camera4, 2, 3);
init_render_player(gPlayerFour, camera4, 3, 3);
try_render_player(gPlayerOne, 0, 3);
try_render_player(gPlayerTwo, 1, 3);
try_render_player(gPlayerThree, 2, 3);
try_render_player(gPlayerFour, 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);
if (gPlayersToRenderCount != 0) {
func_80020F1C();
} else {
@ -975,24 +975,24 @@ void func_80022BC4(Player *player, UNUSED s8 arg1) {
player->unk_DB4.unk2 = temp_v0;
}
void func_80022CA8(Player *player, s8 arg1, UNUSED s8 arg2, s8 arg3) {
void func_80022CA8(Player *player, s8 playerId, UNUSED s8 screenId, s8 arg3) {
s16 temp_v0 = player->unk_DA4;
D_800DDBB4[arg1][arg3 + 0x0].v.ob[1] = 18 - (temp_v0 * 2.3);
D_800DDBB4[arg1][arg3 + 0x1].v.ob[1] = 9 - temp_v0;
D_800DDBB4[arg1][arg3 + 0x2].v.ob[1] = 9 - temp_v0;
D_800DDBB4[arg1][arg3 + 0x3].v.ob[1] = 18 - (temp_v0 * 2.3);
D_800DDBB4[arg1][arg3 + 0x4].v.ob[1] = 9 - temp_v0;
D_800DDBB4[arg1][arg3 + 0x7].v.ob[1] = 9 - temp_v0;
D_800DDBB4[playerId][arg3 + 0x0].v.ob[1] = 18 - (temp_v0 * 2.3);
D_800DDBB4[playerId][arg3 + 0x1].v.ob[1] = 9 - temp_v0;
D_800DDBB4[playerId][arg3 + 0x2].v.ob[1] = 9 - temp_v0;
D_800DDBB4[playerId][arg3 + 0x3].v.ob[1] = 18 - (temp_v0 * 2.3);
D_800DDBB4[playerId][arg3 + 0x4].v.ob[1] = 9 - temp_v0;
D_800DDBB4[playerId][arg3 + 0x7].v.ob[1] = 9 - temp_v0;
}
/**
* Seems to stretch/warp a specific players texture for a
* short period of time. Perhaps does not do anything
**/
void func_80022D60(UNUSED Player *player, s8 arg1, UNUSED s8 arg2, s8 arg3) {
D_800DDBB4[arg1][arg3].v.ob[1] = 21;
D_800DDBB4[arg1][arg3 + 0x3].v.ob[1] = 21;
void func_80022D60(UNUSED Player *player, s8 playerId, UNUSED s8 screenId, s8 arg3) {
D_800DDBB4[playerId][arg3].v.ob[1] = 21;
D_800DDBB4[playerId][arg3 + 0x3].v.ob[1] = 21;
}
void func_80022DB4(Player *player, UNUSED s8 arg1) {
@ -1020,15 +1020,15 @@ void func_80022DB4(Player *player, UNUSED s8 arg1) {
player->unk_DB4.unk18 = temp_v0;
}
void func_80022E84(Player *player, s8 arg1, UNUSED s8 arg2, s8 arg3) {
void func_80022E84(Player *player, s8 playerId, UNUSED s8 screenId, s8 arg3) {
s16 temp_v0 = player->unk_DB4.unk1E;
D_800DDBB4[arg1][arg3 + 0x0].v.ob[1] = 18 - temp_v0;
D_800DDBB4[arg1][arg3 + 0x1].v.ob[1] = 9 - temp_v0;
D_800DDBB4[arg1][arg3 + 0x2].v.ob[1] = 9 - temp_v0;
D_800DDBB4[arg1][arg3 + 0x3].v.ob[1] = 18 - temp_v0;
D_800DDBB4[arg1][arg3 + 0x4].v.ob[1] = 9 - temp_v0;
D_800DDBB4[arg1][arg3 + 0x7].v.ob[1] = 9 - temp_v0;
D_800DDBB4[playerId][arg3 + 0x0].v.ob[1] = 18 - temp_v0;
D_800DDBB4[playerId][arg3 + 0x1].v.ob[1] = 9 - temp_v0;
D_800DDBB4[playerId][arg3 + 0x2].v.ob[1] = 9 - temp_v0;
D_800DDBB4[playerId][arg3 + 0x3].v.ob[1] = 18 - temp_v0;
D_800DDBB4[playerId][arg3 + 0x4].v.ob[1] = 9 - temp_v0;
D_800DDBB4[playerId][arg3 + 0x7].v.ob[1] = 9 - temp_v0;
}
/**
@ -1230,18 +1230,18 @@ void func_800235AC(Player *player, s8 arg1) {
}
}
void func_80023BF0(Player *player, s8 arg1, s8 arg2, s8 arg3) {
void func_80023BF0(Player *player, s8 playerId, s8 screenId, s8 arg3) {
if (((player->effects & HIT_EFFECT) == HIT_EFFECT) || ((player->effects & 0x8000000) == 0x8000000)) {
func_80022CA8(player, arg1, arg2, arg3);
func_80022CA8(player, playerId, screenId, arg3);
} else {
func_80022E84(player, arg1, arg2, arg3);
func_80022E84(player, playerId, screenId, arg3);
}
if ((player->unk_0CA & 2) == 2) {
func_80022D60(player, arg1, arg2, arg3);
func_80022D60(player, playerId, screenId, arg3);
}
}
void render_player_shadow(Player *player, s8 arg1, s8 arg2) {
void render_player_shadow(Player *player, s8 playerId, s8 screenId) {
Mat4 sp118;
UNUSED Mat4 pad;
Vec3f spCC;
@ -1254,7 +1254,7 @@ void render_player_shadow(Player *player, s8 arg1, s8 arg2) {
UNUSED Vec3f pad2;
f32 var_f2;
temp_t9 = (u16)(player->unk_048[arg2] + player->rotation[1] + player->unk_0C0) / 128; // << 7) & 0xFFFF;
temp_t9 = (u16)(player->unk_048[screenId] + player->rotation[1] + player->unk_0C0) / 128; // << 7) & 0xFFFF;
spC0 = -player->rotation[1] - player->unk_0C0;
spB0 = -coss(temp_t9 << 7) * 2;
@ -1293,9 +1293,9 @@ void render_player_shadow(Player *player, s8 arg1, s8 arg2) {
mtxf_translate_rotate(sp118, spCC, spC4);
mtxf_scale2(sp118, gCharacterSize[player->characterId] * player->size);
}
convert_to_fixed_point_matrix(&gGfxPool->mtxShadow[arg1 + (arg2 * 8)], sp118);
convert_to_fixed_point_matrix(&gGfxPool->mtxShadow[playerId + (screenId * 8)], sp118);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxShadow[arg1 + (arg2 * 8)]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxShadow[playerId + (screenId * 8)]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(gDisplayListHead++, D_0D008D58);
gDPSetTextureLUT(gDisplayListHead++, G_TT_NONE);
@ -1368,7 +1368,7 @@ void render_player_shadow_credits(Player *player, s8 playerId, s8 arg2) {
gSPTexture(gDisplayListHead++, 1, 1, 0, G_TX_RENDERTILE, G_OFF);
}
void kart_render(Player *player, s8 playerId, s8 arg2, s8 arg3) {
void render_kart(Player *player, s8 playerId, s8 arg2, s8 arg3) {
UNUSED s32 pad;
Mat4 sp1A4;
UNUSED s32 pad2[17];
@ -1501,7 +1501,7 @@ void kart_render(Player *player, s8 playerId, s8 arg2, s8 arg3) {
gDPSetAlphaCompare(gDisplayListHead++, G_AC_NONE);
}
void ghost_render(Player *player, s8 playerId, s8 arg2, s8 arg3) {
void render_ghost(Player *player, s8 playerId, s8 screenId, s8 arg3) {
UNUSED s32 pad;
Mat4 sp12C;
UNUSED s32 pad2[17];
@ -1514,38 +1514,38 @@ void ghost_render(Player *player, s8 playerId, s8 arg2, s8 arg3) {
s16 spC2;
s16 thing;
if (arg2) {}
if (screenId) {}
if (D_8015F890 == 1) {
spC2 = 0x00FF;
} else {
spC2 = 0x0070;
}
thing = (u16)(player->unk_048[arg2] - player->rotation[1]);
thing = (u16)(player->unk_048[screenId] - player->rotation[1]);
spD4[0] = (-(s16)(sins(thing) * (0.0f * 0.0f)) * 0.8);
spD4[1] = player->unk_048[arg2];
spD4[2] = player->unk_050[arg2];
func_80062B18(&spD0, &spCC, &spC8, 0, 1.5f, 0, -player->unk_048[arg2], player->unk_050[arg2]);
spD4[1] = player->unk_048[screenId];
spD4[2] = player->unk_050[screenId];
func_80062B18(&spD0, &spCC, &spC8, 0, 1.5f, 0, -player->unk_048[screenId], player->unk_050[screenId]);
spDC[1] = (player->pos[1] - player->boundingBoxSize) + (spCC - 2.0);
spDC[0] = player->pos[0] + spD0;
spDC[2] = player->pos[2] + spC8;
#ifdef AVOID_UB
gPlayerPalette = &D_802F1F80[D_801651D0[arg2][playerId]][arg2][playerId];
gPlayerPalette = &D_802F1F80[D_801651D0[screenId][playerId]][screenId][playerId];
#else
gPlayerPalette = (struct_D_802F1F80 *) &D_802F1F80[D_801651D0[arg2][playerId]][arg2][playerId * 0x100];
gPlayerPalette = (struct_D_802F1F80 *) &D_802F1F80[D_801651D0[screenId][playerId]][screenId][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];
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];
} 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];
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];
}
mtxf_translate_rotate(sp12C, spDC, spD4);
mtxf_scale2(sp12C, gCharacterSize[player->characterId] * player->size);
convert_to_fixed_point_matrix(&gGfxPool->mtxKart[playerId + (arg2 * 8)], sp12C);
convert_to_fixed_point_matrix(&gGfxPool->mtxKart[playerId + (screenId * 8)], sp12C);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxKart[playerId + (arg2 * 8)]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxKart[playerId + (screenId * 8)]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(gDisplayListHead++, common_setting_render_character);
gDPLoadTLUT_pal256(gDisplayListHead++, gPlayerPalette);
gDPSetTextureLUT(gDisplayListHead++, G_TT_RGBA16);
@ -1571,7 +1571,7 @@ void ghost_render(Player *player, s8 playerId, s8 arg2, s8 arg3) {
gDPSetAlphaCompare(gDisplayListHead++, G_AC_NONE);
}
void func_80025DE8(Player *player, s8 playerId, s8 arg2, s8 arg3) {
void func_80025DE8(Player *player, s8 playerId, s8 screenId, s8 arg3) {
Mat4 spA8;
Vec3f sp9C;
Vec3s sp94;
@ -1580,8 +1580,8 @@ void func_80025DE8(Player *player, s8 playerId, s8 arg2, s8 arg3) {
sp9C[1] = ((player->pos[1] - player->boundingBoxSize) + player->unk_108) + 0.1;
sp9C[2] = player->pos[2] + (coss(-player->rotation[1]) * -1.5);
sp94[0] = -0x00B6;
sp94[1] = player->unk_048[arg2];
sp94[2] = player->unk_050[arg2];
sp94[1] = player->unk_048[screenId];
sp94[2] = player->unk_050[screenId];
mtxf_translate_rotate(spA8, sp9C, sp94);
mtxf_scale2(spA8, gCharacterSize[player->characterId] * player->size);
@ -1612,18 +1612,18 @@ void func_80025DE8(Player *player, s8 playerId, s8 arg2, s8 arg3) {
gMatrixEffectCount += 1;
}
void player_ice_reflection_render(Player *player, s8 playerId, s8 arg2, s8 arg3) {
void render_player_ice_reflection(Player *player, s8 playerId, s8 screenId, s8 arg3) {
Mat4 spA8;
Vec3f sp9C;
Vec3s sp94;
sp94[0] = 0;
sp94[1] = player->unk_048[arg2];
sp94[2] = player->unk_050[arg2] + 0x8000; // invert Y
sp94[1] = player->unk_048[screenId];
sp94[2] = player->unk_050[screenId] + 0x8000; // invert Y
sp9C[0] = player->pos[0];
sp9C[1] = player->unk_074 + (4.0f * player->size);
sp9C[2] = player->pos[2];
if (!(player->unk_002 & (4 << (arg2 * 4)))) {
if (!(player->unk_002 & (4 << (screenId * 4)))) {
arg3 = 8;
} else {
arg3 = 0;
@ -1656,40 +1656,40 @@ void player_ice_reflection_render(Player *player, s8 playerId, s8 arg2, s8 arg3)
gMatrixEffectCount += 1;
}
void player_render(Player *player, s8 playerId, s8 arg2) {
void render_player(Player *player, s8 playerId, s8 screenId) {
UNUSED s32 pad[2];
s32 temp_t1;
s32 var_v1;
OSMesg *sp34;
func_80026B4C(player, playerId, arg2, D_801651D0[arg2][playerId]);
if (!(player->unk_002 & (4 << (arg2 * 4)))) {
func_80026B4C(player, playerId, screenId, D_801651D0[screenId][playerId]);
if (!(player->unk_002 & (4 << (screenId * 4)))) {
var_v1 = 0;
} else {
var_v1 = 8;
}
func_80023BF0(player, playerId, arg2, var_v1);
temp_t1 = 8 << (arg2 * 4);
func_80023BF0(player, playerId, screenId, var_v1);
temp_t1 = 8 << (screenId * 4);
if ((temp_t1 == (player->unk_002 & temp_t1)) && (player->unk_110.unk3C[2] <= 50.0f) && (player->surfaceType != ICE)) {
if ((player->effects & BOO_EFFECT) == BOO_EFFECT) {
if (playerId == arg2) {
render_player_shadow(player, playerId, arg2);
if (playerId == screenId) {
render_player_shadow(player, playerId, screenId);
}
} else {
render_player_shadow(player, playerId, arg2);
render_player_shadow(player, playerId, screenId);
}
}
if ((player->type & PLAYER_INVISIBLE_OR_BOMB) != PLAYER_INVISIBLE_OR_BOMB) {
kart_render(player, playerId, arg2, var_v1);
render_kart(player, playerId, screenId, var_v1);
} else {
ghost_render(player, playerId, arg2, var_v1);
render_ghost(player, playerId, screenId, var_v1);
}
osRecvMesg(&gDmaMesgQueue, (OSMesg *) &sp34, OS_MESG_BLOCK);
if ((temp_t1 == (player->unk_002 & temp_t1)) && (player->surfaceType == ICE) && ((player->unk_0CA & 1) != 1) && (player->unk_110.unk3C[2] <= 30.0f)) {
player_ice_reflection_render(player, playerId, arg2, var_v1);
render_player_ice_reflection(player, playerId, screenId, var_v1);
}
if (player->boostPower >= 2.0f) {
func_80025DE8(player, playerId, arg2, var_v1);
func_80025DE8(player, playerId, screenId, var_v1);
}
}
@ -1722,9 +1722,9 @@ void func_80026A48(Player *player, s8 arg1) {
#define D_802F1F80_WHEEL(a, b, c) &D_802F1F80[a][b][(c * 0x100) + 0xC0]
#endif
void func_80026B4C(Player *player, s8 playerId, s8 arg2, s8 arg3) {
s16 temp_t0 = D_801650D0[arg2][playerId];
s16 temp_t1 = D_80165110[arg2][playerId];
void func_80026B4C(Player *player, s8 playerId, s8 screenId, s8 arg3) {
s16 temp_t0 = D_801650D0[screenId][playerId];
s16 temp_t1 = D_80165110[screenId][playerId];
s16 temp_t2 = player->unk_240;
s16 temp_num = 0x40; // setting this as a variable gets rid of regalloc
@ -1734,15 +1734,15 @@ void func_80026B4C(Player *player, s8 playerId, s8 arg2, s8 arg3) {
&& ((player->effects & 0x800000) != 0x800000) && ((player->unk_044 & 0x800) == 0)) {
if (temp_t0 <= 20) {
func_80027C74(player, (s32) (D_800DDE34[player->characterId][temp_t1] + (temp_t0 * temp_num * 4) + ((temp_t2 >> 8) * 0x40)), D_802F1F80_WHEEL(arg3, arg2, playerId), 0x80);
func_80027C74(player, (s32) (D_800DDE34[player->characterId][temp_t1] + (temp_t0 * temp_num * 4) + ((temp_t2 >> 8) * 0x40)), D_802F1F80_WHEEL(arg3, screenId, playerId), 0x80);
} else {
func_80027C74(player, (s32) (D_800DDE54[player->characterId][temp_t1] + (temp_t0 - 21) * (temp_num * 4) + ((temp_t2 >> 8) * 0x40) + 0x600), D_802F1F80_WHEEL(arg3, arg2, playerId), 0x80);
func_80027C74(player, (s32) (D_800DDE54[player->characterId][temp_t1] + (temp_t0 - 21) * (temp_num * 4) + ((temp_t2 >> 8) * 0x40) + 0x600), D_802F1F80_WHEEL(arg3, screenId, playerId), 0x80);
}
} else {
if (temp_t0 == 0) {
func_80027C74(player, (s32) (D_800DDE34[player->characterId][temp_t1] + (temp_t0 * temp_num * 4) + ((temp_t2 >> 8) * 0x40)), D_802F1F80_WHEEL(arg3, arg2, playerId), 0x80);
func_80027C74(player, (s32) (D_800DDE34[player->characterId][temp_t1] + (temp_t0 * temp_num * 4) + ((temp_t2 >> 8) * 0x40)), D_802F1F80_WHEEL(arg3, screenId, playerId), 0x80);
} else {
func_80027C74(player, (s32) (D_800DDE54[player->characterId][temp_t1] + (temp_t0 * temp_num * 4) + ((temp_t2 >> 8) * 0x40)), D_802F1F80_WHEEL(arg3, arg2, playerId), 0x80);
func_80027C74(player, (s32) (D_800DDE54[player->characterId][temp_t1] + (temp_t0 * temp_num * 4) + ((temp_t2 >> 8) * 0x40)), D_802F1F80_WHEEL(arg3, screenId, playerId), 0x80);
}
}
} else {
@ -1751,15 +1751,15 @@ void func_80026B4C(Player *player, s8 playerId, s8 arg2, s8 arg3) {
&& ((player->effects & 0x20000) != 0x20000) && ((player->unk_044 & 0x800) == 0)) {
if (temp_t0 <= 20) {
func_80027C74(player, (s32) (D_800DDE34[player->characterId][temp_t1] + (temp_t0 * temp_num * 4) + ((temp_t2 >> 8) * 0x40)), D_802F1F80_WHEEL(arg3, arg2, playerId), 0x80);
func_80027C74(player, (s32) (D_800DDE34[player->characterId][temp_t1] + (temp_t0 * temp_num * 4) + ((temp_t2 >> 8) * 0x40)), D_802F1F80_WHEEL(arg3, screenId, playerId), 0x80);
} else {
func_80027C74(player, (s32) (D_800DDE54[player->characterId][temp_t1] + (temp_t0 - 21) * (temp_num * 4) + ((temp_t2 >> 8) * 0x40) + 0x600), D_802F1F80_WHEEL(arg3, arg2, playerId), 0x80);
func_80027C74(player, (s32) (D_800DDE54[player->characterId][temp_t1] + (temp_t0 - 21) * (temp_num * 4) + ((temp_t2 >> 8) * 0x40) + 0x600), D_802F1F80_WHEEL(arg3, screenId, playerId), 0x80);
}
} else {
if (temp_t0 == 0) {
func_80027C74(player, (s32) (D_800DDE34[player->characterId][temp_t1] + (temp_t0 * temp_num * 4) + ((temp_t2 >> 8) * 0x40)), D_802F1F80_WHEEL(arg3, arg2, playerId), 0x80);
func_80027C74(player, (s32) (D_800DDE34[player->characterId][temp_t1] + (temp_t0 * temp_num * 4) + ((temp_t2 >> 8) * 0x40)), D_802F1F80_WHEEL(arg3, screenId, playerId), 0x80);
} else {
func_80027C74(player, (s32) (D_800DDE54[player->characterId][temp_t1] + (temp_t0 * temp_num * 4) + ((temp_t2 >> 8) * 0x40)), D_802F1F80_WHEEL(arg3, arg2, playerId), 0x80);
func_80027C74(player, (s32) (D_800DDE54[player->characterId][temp_t1] + (temp_t0 * temp_num * 4) + ((temp_t2 >> 8) * 0x40)), D_802F1F80_WHEEL(arg3, screenId, playerId), 0x80);
}
}
}

View File

@ -18,7 +18,7 @@ void func_80020524(void);
void func_8002088C(void);
void func_80020BF4(void);
void func_80020F1C(void);
void try_render_player(Player*, s8, s8);
void try_rendering_player(Player*, s8, s8);
void render_players_on_screen_one(void);
void render_players_on_screen_two(void);
void render_players_on_screen_three(void);
@ -54,11 +54,11 @@ void func_800235AC(Player*, s8);
void func_80023BF0(Player*, s8, s8, s8);
void render_player_shadow(Player*, s8, s8);
void render_player_shadow_credits(Player*, s8, s8);
void kart_render(Player*, s8, s8, s8);
void ghost_render(Player*, s8, s8, s8);
void render_kart(Player*, s8, s8, s8);
void render_ghost(Player*, s8, s8, s8);
void func_80025DE8(Player*, s8, s8, s8);
void player_ice_reflection_render(Player*, s8, s8, s8);
void player_render(Player*, s8, s8);
void render_player_ice_reflection(Player*, s8, s8, s8);
void render_player(Player*, s8, s8);
void func_80026A48(Player*, s8);
void func_80026B4C(Player*, s8, s8, s8);
void func_80030A34(Player*);

View File

@ -1070,29 +1070,29 @@ void func_8003CD78(void) {
func_8003BE30();
}
void func_8003CD98(Player *player, Camera *camera, s8 playerId, s8 arg3) {
void func_8003CD98(Player *player, Camera *camera, s8 playerId, s8 screenId) {
if (player->type & PLAYER_EXISTS) {
if (arg3 == 0) {
func_8002D268(player, camera, arg3, playerId);
if (screenId == 0) {
func_8002D268(player, camera, screenId, playerId);
}
func_8002934C(player, camera, arg3, playerId);
if ((arg3 == 0) || (arg3 == 1)) {
load_kart_palette(player, playerId, arg3, 0);
load_kart_palette(player, playerId, arg3, 1);
load_kart_texture(player, playerId, arg3, arg3, 0);
mio0decode((u8 *) &D_802DFB80[0][arg3][playerId], (u8 *) &D_802BFB80.arraySize8[0][arg3][playerId]);
func_8002934C(player, camera, screenId, playerId);
if ((screenId == 0) || (screenId == 1)) {
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]);
} else {
load_kart_palette(player, playerId, arg3, 0);
load_kart_palette(player, playerId, arg3, 1);
load_kart_texture(player, (s8) (playerId + 4), arg3, (s8) (arg3 - 2), 0);
mio0decode((u8 *) &D_802DFB80[0][arg3 - 2][playerId + 4], (u8 *) &D_802BFB80.arraySize8[0][arg3 - 2][playerId + 4]);
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]);
}
D_801650D0[arg3][playerId] = player->animFrameSelector[arg3];
D_80165110[arg3][playerId] = player->animGroupSelector[arg3];
D_80165150[arg3][playerId] = player->unk_0A8;
D_801651D0[arg3][playerId] = 0;
player_render(player, playerId, arg3);
D_801650D0[screenId][playerId] = player->animFrameSelector[screenId];
D_80165110[screenId][playerId] = player->animGroupSelector[screenId];
D_80165150[screenId][playerId] = player->unk_0A8;
D_801651D0[screenId][playerId] = 0;
render_player(player, playerId, screenId);
}
}