match func_8000F628 and add NUM_PLAYERS define (#479)

* Match two funcs and add NUM_PLAYERS define
This commit is contained in:
MegaMech
2023-10-28 12:39:32 -06:00
committed by GitHub
parent c17d5c76c9
commit a1f432e9dc
16 changed files with 272 additions and 1412 deletions
+218 -520
View File
@@ -25,6 +25,7 @@
#include "common_structs.h"
#include "main.h"
#include "menus.h"
#include "code_80091750.h"
extern UnkCommonTextureStruct0 *D_800DC720[];
@@ -536,7 +537,7 @@ void set_places(void) {
return; // HEY! returns, not breaks
case GRAND_PRIX:
case TIME_TRIALS:
var_t4 = 8;
var_t4 = NUM_PLAYERS;
break;
case VERSUS:
var_t4 = gPlayerCount;
@@ -574,7 +575,7 @@ void set_places(void) {
}
}
for (playerId = 0; playerId < 8; playerId++) {
for (playerId = 0; playerId < NUM_PLAYERS; playerId++) {
D_801643E0[playerId] = gGPCurrentRaceRankByPlayerId[playerId];
}
@@ -650,7 +651,7 @@ void func_800070F4(void) {
}
}
for (var_a3 = 0; var_a3 < 8; var_a3++) {
for (var_a3 = 0; var_a3 < NUM_PLAYERS; var_a3++) {
D_801643E0[var_a3] = gGPCurrentRaceRankByPlayerId[var_a3];
}
@@ -676,7 +677,7 @@ void func_800074D4(void) {
s32 var_a3;
s32 var_a3_2;
s32 var_v0;
s32 this_loops_upper_bound_is_brough_to_you_by_the_number_eight = 8;
s32 this_loops_upper_bound_is_brough_to_you_by_the_number_eight = NUM_PLAYERS;
for (var_a3 = 0; var_a3 < this_loops_upper_bound_is_brough_to_you_by_the_number_eight; ) {
gCourseCompletionPercentByRank[var_a3++] = 0.0f;
@@ -728,7 +729,7 @@ void func_800074D4(void) {
}
}
for (var_a3 = 0; var_a3 < 8; var_a3++) {
for (var_a3 = 0; var_a3 < NUM_PLAYERS; var_a3++) {
D_801643E0[var_a3] = gGPCurrentRaceRankByPlayerId[var_a3];
}
@@ -3807,7 +3808,7 @@ void func_8000EE58(s32 actorIndex) {
struct unexpiredActors *phi;
s32 i;
for (i = 0; i < 8; i++) {
for (i = 0; i < NUM_PLAYERS; i++) {
phi = &gUnexpiredActorsList[i];
if (actorIndex == phi->actorIndex) {
phi->unkC = 0;
@@ -3820,7 +3821,7 @@ void func_8000EEDC(void) {
struct unexpiredActors *phi;
s32 i;
for (i = 0; i < 8; i++) {
for (i = 0; i < NUM_PLAYERS; i++) {
phi = &gUnexpiredActorsList[i];
phi->unkC = 0;
phi->actorIndex = 1000; // out of bounds
@@ -3833,7 +3834,7 @@ void func_8000EF20(void) {
struct Actor *temp_s1;
struct unexpiredActors *var_s0;
for (someIndex = 0; someIndex < 8; someIndex++) {
for (someIndex = 0; someIndex < NUM_PLAYERS; someIndex++) {
var_s0 = &gUnexpiredActorsList[someIndex];
if (var_s0->unkC == 1) {
temp_s1 = &gActorList[var_s0->actorIndex];
@@ -3882,102 +3883,46 @@ void func_8000F0E0(void) {
D_8016467E = 0;
}
#ifdef MIPS_TO_C
//generated by m2c commit 08138748803d75e73e4a94bb0c619a273754ee9c on Oct-09-2023
extern u16 D_80163348;
extern ? D_8016334C;
extern u16 D_80163348[];
void func_8000F124(void) {
s32 temp_a3;
s32 var_a0;
s32 var_a1;
s32 var_s0;
s8 *var_v0_2;
s8 temp_t9;
u16 *var_s1;
u16 *var_v0;
u16 *var_v0_3;
u16 *var_v0_4;
u16 temp_t9_2;
u16 temp_v1;
s32 i, j;
var_v0 = &D_80163348;
do {
var_v0 += 2;
var_v0->unk-2 = 0;
} while (var_v0 != &D_8016334C);
if (gDemoMode != 1) {
var_s1 = &D_80163348;
var_s0 = 0;
if (gModeSelection == 0) {
do {
loop_5:
*var_s1 = random_int(8U);
var_a1 = 0;
if (gPlayerCount < 3) {
var_v0_2 = gCharacterSelections;
if (gPlayerCount > 0) {
var_a0 = 0;
if (gPlayerCount > 0) {
do {
temp_t9 = *var_v0_2;
var_v0_2 += 1;
if (temp_t9 == *var_s1) {
var_a1 = 1;
}
} while ((u32) var_v0_2 < (u32) &gCharacterSelections[gPlayerCount]);
var_a0 = 0;
}
temp_a3 = var_s0 & 3;
if (var_s0 > 0) {
temp_v1 = *var_s1;
if (temp_a3 != 0) {
var_v0_3 = &(&D_80163348)[0];
do {
var_a0 += 1;
if (*var_v0_3 == temp_v1) {
var_a1 = 1;
}
var_v0_3 += 2;
} while (temp_a3 != var_a0);
if (var_a0 != var_s0) {
goto block_20;
}
} else {
block_20:
var_v0_4 = &(&D_80163348)[var_a0];
do {
if (var_v0_4->unk0 == temp_v1) {
var_a1 = 1;
}
if (var_v0_4->unk2 == temp_v1) {
var_a1 = 1;
}
if (var_v0_4->unk4 == temp_v1) {
var_a1 = 1;
}
temp_t9_2 = var_v0_4->unk6;
var_v0_4 += 8;
if (temp_t9_2 == temp_v1) {
var_a1 = 1;
}
} while (var_v0_4 != &(&D_80163348)[var_s0]);
}
}
if (var_a1 != 0) {
goto loop_5;
}
}
for (j = 0; j < 2; j++) {
D_80163348[j] = 0;
}
if (gDemoMode == 1) { return; }
if (gModeSelection != 0) { return; }
for (i = 0; i < 2; i++) {
while(1) {
D_80163348[i] = random_int(8);
if (gPlayerCount > 2) { break; }
if (gPlayerCount < 1) { break; }
var_a1 = 0;
for (j = 0; j < gPlayerCount; j++) {
if (gCharacterSelections[j] == D_80163348[i]) {
var_a1 = 1;
}
var_s0 += 1;
var_s1 += 2;
} while (var_s0 != 2);
}
for (j = 0; j < i; j++) {
if (D_80163348[j] == D_80163348[i]) {
var_a1 = 1;
}
}
if (var_a1 == 0) {
break;
}
}
}
}
#else
GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_8000F124.s")
#endif
// Delete track waypoints
void func_8000F2BC(TrackWaypoint *arg0, size_t size) {
@@ -4071,433 +4016,205 @@ void func_8000F2DC(void) {
func_8000EEDC();
}
#ifdef MIPS_TO_C
//generated by m2c commit 08138748803d75e73e4a94bb0c619a273754ee9c on Oct-13-2023
? func_80011A5C(); /* extern */
extern ? D_80162F10;
extern ? D_80162F50;
extern ? D_80162F8C;
extern s16 D_80162FF8;
extern s16 D_80163010;
extern f32 D_80163028;
extern s16 D_80163050;
extern f32 D_80163090;
extern ? D_801630B8;
extern s16 D_801630E8;
extern s32 D_80163100;
extern s32 D_80163128;
extern s32 D_80163150;
extern f32 D_80163178;
extern f32 D_801631A0;
extern s16 D_80162F10[];
extern s16 D_80162F50[];
extern s16 D_80162FF8[];
extern s16 D_80163010[];
extern f32 D_80163028[];
extern s16 D_80163050[];
extern f32 D_80163090[];
extern u16 D_80163258[];
extern u16 D_80163270[];
extern s16 D_80163346[];
extern s32 D_801630B8[];
extern s16 D_801630E8[];
extern s32 D_80163100[];
extern s32 D_80163128[];
extern s32 D_80163150[];
extern f32 D_80163178[];
extern f32 D_801631A0[];
extern s32 D_801631CC;
extern s16 D_801631F8;
extern f32 D_80163210;
extern s16 D_80163258;
extern s16 D_80163270;
extern s32 D_80163288;
extern u16 D_80163330;
extern ? D_80163340;
extern s16 D_80163344;
extern ? D_80163346;
extern u16 D_80163348;
extern ? D_8016334C;
extern s16 D_80163350;
extern s16 D_801631F8[];
extern f32 D_80163210[];
extern s32 D_80163288[];
extern u16 D_80163330[]; // static?
extern u16 D_80163344[];
extern u16 D_8016334C[];
extern s16 D_80163350[];
extern s32 D_80163378;
extern s16 D_80163380;
extern s16 D_80163398;
extern s16 D_801633B0;
extern s16 D_801633C8;
extern s16 D_801633F8;
extern f32 D_80163450;
extern ? D_801634C0;
extern s16 D_80163380[];
extern s16 D_80163398[];
extern s16 D_801633B0[];
extern s16 D_801633C8[];
extern s16 D_801633F8[];
extern f32 D_80163450[];
extern s16 D_801634C0[];
extern s16 D_801634EC;
extern s32 D_801634F0;
extern s32 D_801634F4;
extern s16 D_80164358;
extern s16 D_8016435A;
extern s16 D_8016435C;
extern ? D_80164448;
extern ? D_80164538;
//extern ? D_80164448;
extern s16 D_80164538[];
extern f32 D_80164698;
extern f32 D_8016469C;
extern f32 D_801646A0;
s16 gCurrentCourseId; /* unable to generate initializer */
static f32 D_800DCAA0[0x15] = {
0.3f,
0.3f,
0.2f,
0.4f,
0.0f,
0.3f,
0.5f,
0.4f,
0.7f,
0.5f,
0.5f,
0.3f,
0.3f,
0.4f,
0.6f,
0.1f,
0.5f,
0.5f,
0.1f,
0.5f,
0.5f,
};
extern f32 D_800DCAA0[];
// static f32 D_800DCAA0[21] = {
// 0.3f,
// 0.3f,
// 0.2f,
// 0.4f,
// 0.0f,
// 0.3f,
// 0.5f,
// 0.4f,
// 0.7f,
// 0.5f,
// 0.5f,
// 0.3f,
// 0.3f,
// 0.4f,
// 0.6f,
// 0.1f,
// 0.5f,
// 0.5f,
// 0.1f,
// 0.5f,
// 0.5f,
// };
void func_8000F628(void) {
void *sp104;
s16 *spF8;
s16 *spF4;
s16 *spF0;
f32 *spE8;
s16 *spE4;
s32 *spE0;
f32 *spDC;
f32 *spD8;
f32 *spD4;
s32 *spD0;
f32 *spCC;
f32 *spC8;
s32 *spBC;
s16 *spB8;
s16 *spB4;
u16 *spB0;
s16 *spAC;
s32 *spA8;
s32 *spA4;
f32 *sp9C;
f32 *sp98;
s16 *sp90;
s16 *sp8C;
s16 *sp88;
s16 *sp84;
s16 *sp80;
s16 *sp7C;
u16 *sp78;
f32 *sp74;
s16 *sp70;
s16 *sp68;
s16 *sp64;
s32 *sp60;
s32 *sp5C;
? *sp58;
? *sp54;
s16 *sp50;
? *sp4C;
? *temp_a1;
? *temp_a2;
? *temp_v1;
? *var_v0_2;
? *var_v0_4;
? *var_v1_2;
Camera *var_a0_2;
Player *temp_s1;
Player *temp_s1_2;
Player *temp_s1_3;
Player *temp_s1_4;
Player *var_s1;
Test *var_s5;
f32 *var_ra;
f32 *var_t2;
f32 *var_t5;
f32 temp_f0;
s16 *temp_a0;
s16 *var_a3;
s16 *var_t0;
s16 *var_t1;
s16 *var_t3;
s16 *var_v0;
s16 temp_t6;
s16 temp_t6_2;
s16 temp_t9;
s16 temp_t9_2;
s16 temp_v0;
s16 temp_v0_2;
s16 var_s0_2;
s16 var_s0_3;
s32 *var_s4;
s32 *var_s4_2;
s32 *var_s6;
s32 *var_t4;
s32 temp_s3;
s32 temp_v0_3;
s32 temp_v1_2;
s32 temp_v1_3;
s32 temp_v1_4;
s32 var_fp;
s32 var_s0;
s32 var_s0_4;
s32 var_s7;
u16 *var_a0;
u16 *var_s2;
u16 *var_s2_2;
u16 *var_s2_3;
u16 *var_v0_3;
u16 *var_v1;
u16 temp_t7;
spD4 = &D_80163210;
spD0 = gLapCountByPlayerId;
spB8 = &D_80163258;
spBC = D_80164408;
spCC = gCourseCompletionPercentByPlayerId;
spC8 = gTimePlayerLastTouchedFinishLine;
spB0 = D_801631E0;
spB4 = &D_80163270;
spAC = &D_801631F8;
spA8 = D_80164450;
sp90 = &D_80163350;
sp98 = &D_80163090;
spA4 = &D_80163288;
sp9C = D_80163068;
sp88 = &D_80163398;
sp8C = D_801644F8;
sp84 = &D_801633B0;
sp80 = &D_801633C8;
sp70 = &D_80163380;
sp74 = &D_80163450;
sp7C = &D_801633F8;
sp78 = D_80163318;
sp64 = D_801634A8;
sp68 = D_80163490;
sp60 = &D_80163128;
sp5C = &D_80163150;
var_t5 = &D_80163178;
var_t4 = &D_80163100;
var_t3 = &D_801630E8;
var_t2 = &D_80163028;
var_t1 = &D_80163010;
var_t0 = &D_80162FF8;
var_a3 = &D_80163050;
var_ra = &D_801631A0;
var_s6 = D_801643E0;
var_s5 = D_801634F8;
var_s4 = gGPCurrentRaceRankByPlayerId;
var_s2 = &D_80163330;
var_s1 = gPlayers;
sp4C = &D_801630B8;
sp50 = D_801634D8;
sp58 = &D_80164538;
sp54 = &D_801634C0;
var_s0 = 0;
var_s7 = 0;
var_fp = 0;
do {
*var_a3 = 0;
*var_t0 = 0;
*var_t1 = 0;
temp_v0 = gCurrentCourseId;
sp104 = var_s7 + gPlayerOne;
if (temp_v0 < 0x14) {
spD8 = var_ra;
spF8 = var_a3;
spF4 = var_t0;
spF0 = var_t1;
spE8 = var_t2;
spE4 = var_t3;
spE0 = var_t4;
spDC = var_t5;
func_8000B95C(var_s0, 0U, 0);
Camera *camera;
s32 temp_v0_3;
s32 i;
Test *var_s5;
s32 temp_v1;
s32 pad;
for (i = 0; i < NUM_PLAYERS; i++) {
Player *player = &gPlayerOne[i];
D_80163050[i] = 0;
D_80162FF8[i] = 0;
D_80163010[i] = 0;
if (gCurrentCourseId < (NUM_COURSES - 1)) {
func_8000B95C(i, 0, 0);
}
spD8 = var_ra;
spF8 = var_a3;
spF4 = var_t0;
spF0 = var_t1;
spE8 = var_t2;
spE4 = var_t3;
spE0 = var_t4;
spDC = var_t5;
*var_t2 = *segmented_to_virtual_dupe_2((temp_v0 * 0x10) + (gCCSelection * 4) + D_0D009418);
*var_t3 = 0;
*var_t4 = 0;
*var_t5 = 0.0f;
*var_ra = 0.0f;
*spD4 = 0.0f;
*spD0 = -1;
*spCC = 0.0f;
*spC8 = 0.0f;
D_80163028[i] = *(f32 *) segmented_to_virtual_dupe_2(&D_0D009418[gCurrentCourseId][gCCSelection]);
D_801630E8[i] = 0;
D_80163100[i] = 0;
D_80163178[i] = 0.0f;
D_801631A0[i] = 0.0f;
D_80163210[i] = 0.0f;
gLapCountByPlayerId[i] = -1;
gCourseCompletionPercentByPlayerId[i] = 0.0f;
gTimePlayerLastTouchedFinishLine[i] = 0.0f;
if (gModeSelection == 0) {
temp_v0_2 = *(var_fp + D_80165270);
*var_s4 = (s32) temp_v0_2;
*var_s6 = (s32) temp_v0_2;
if(1); if(1); // Maybe some debug code?
gGPCurrentRaceRankByPlayerId[i] = (s32) D_80165270[i];
D_801643E0[i] = (s32) D_80165270[i];
} else {
*var_s4 = var_s0;
*var_s6 = var_s0;
gGPCurrentRaceRankByPlayerId[i] = i;
D_801643E0[i] = i;
}
temp_v0_3 = *var_s4;
gGPCurrentRacePlayerIdByRank[temp_v0_3] = (s16) var_s0;
D_80164378[temp_v0_3] = (s16) var_s0;
*spBC = temp_v0_3;
*spB8 = 0;
temp_s3 = var_s0 + 1;
*spB4 = 0;
*spB0 = 0;
*spAC = 0;
*spA8 = -0x00000014;
*spA4 = -0x00000014;
D_80164478[var_s1->characterId] = (s16) var_s0;
*sp9C = 0.0f;
*sp98 = 0.0f;
spD8 = var_ra;
spDC = var_t5;
temp_v0_3 = gGPCurrentRaceRankByPlayerId[i];
gGPCurrentRacePlayerIdByRank[temp_v0_3] = (s16) i;
D_80164378[temp_v0_3] = (s16) i;
D_80164408[i] = temp_v0_3;
D_80163258[i] = 0;
D_80163270[i] = 0;
D_801631E0[i] = 0;
D_801631F8[i] = 0;
D_80164450[i] = -20;
D_80163288[i] = -20;
D_80164478[gPlayers[i].characterId] = (s16) i;
D_80163068[i] = 0.0f;
D_80163090[i] = 0.0f;
var_s5 = &D_801634F8[i];
var_s5->unkC = D_800DCAA0[gCurrentCourseId] * (f32) (((i + 1) % 3) - 1);
var_s5->unk4 = var_s5->unkC;
var_s5->unk0 = 0.0f;
spE0 = var_t4;
spE4 = var_t3;
spE8 = var_t2;
spF0 = var_t1;
spF4 = var_t0;
temp_f0 = D_800DCAA0[gCurrentCourseId] * (f32) ((temp_s3 % 3) - 1);
spF8 = var_a3;
var_s5->unkC = temp_f0;
var_s5->unk4 = temp_f0;
var_s5->unk8 = 0.015f;
func_80011AB8(var_s0);
*sp90 = 0;
var_s0 = temp_s3;
*sp8C = 0;
var_s7 += 0xDD8;
*sp88 = 0;
var_fp += 2;
var_s4 += 4;
*sp84 = 0;
var_s6 += 4;
var_s1 += 0xDD8;
*sp80 = 0;
var_s5 += 0x10;
*sp7C = 0;
*sp78 = 0;
var_a3 += 2;
var_t0 += 2;
var_t1 += 2;
*sp74 = sp104->unk1C;
var_t2 += 4;
var_t3 += 2;
*sp70 = 6;
var_t4 += 4;
var_t5 += 4;
var_ra += 4;
if (var_s1->unk-DD8 & 0x4000) {
*var_s2 = 3;
func_80011AB8(i);
D_80163350[i] = 0;
D_801644F8[i] = 0;
D_80163398[i] = 0;
D_801633B0[i] = 0;
D_801633C8[i] = 0;
D_801633F8[i] = 0;
D_80163318[i] = 0;
D_80163450[i] = player->pos[2];
D_80163380[i] = 6;
if (gPlayers[i].type & PLAYER_HUMAN) {
D_80163330[i] = 3;
} else {
*var_s2 = 0;
D_80163330[i] = 0;
}
*sp68 = 0;
temp_v1 = sp4C + 4;
*sp64 = 0;
temp_a0 = sp50 + 2;
temp_a1 = sp54 + 2;
*sp60 = -1;
temp_a2 = sp58 + 2;
var_s2 += 2;
*sp5C = -1;
temp_v1->unk-4 = 1;
spD4 += 4;
spD0 += 4;
spC8 += 4;
spCC += 4;
spBC += 4;
spB8 += 2;
spB0 += 2;
spB4 += 2;
spAC += 2;
spA8 += 4;
sp9C += 4;
spA4 += 4;
sp98 += 4;
sp90 += 2;
sp88 += 2;
sp8C += 2;
sp84 += 2;
sp80 += 2;
sp78 += 2;
sp7C += 2;
sp74 += 4;
sp70 += 2;
sp64 += 2;
sp68 += 2;
sp60 += 4;
sp5C += 4;
sp58 = temp_a2;
sp54 = temp_a1;
sp50 = temp_a0;
sp4C = temp_v1;
temp_a0->unk-2 = 0;
temp_a1->unk-2 = 0;
temp_a2->unk-2 = (s16) -1;
} while (temp_s3 < 8);
D_801637BC->unk0 = 0;
D_801637BC->unk2 = 0;
if (gDemoMode == 0) {
var_v0 = &D_80163344;
var_s0_2 = 0;
if (gModeSelection == 0) {
var_a0 = &D_80163348;
do {
temp_t7 = *var_a0;
var_v0 += 2;
var_a0 += 2;
temp_t9 = D_80164478[temp_t7];
temp_v1_2 = temp_t9 & 0xFFFF;
(&D_80163330)[temp_v1_2] = 1;
*(&D_8016334C + (temp_v1_2 * 2)) = var_s0_2;
var_s0_2 += 1;
var_v0->unk-2 = temp_t9;
} while (var_s0_2 != 2);
D_80163490[i] = 0;
D_801634A8[i] = 0;
D_80163128[i] = -1;
D_80163150[i] = -1;
D_80164538[i] = -1;
D_801634C0[i] = 0;
D_801634D8[i] = 0;
D_801630B8[i] = 1;
}
D_801637BC[0] = 0;
D_801637BC[1] = 0;
if (gDemoMode == DEMO_MODE_INACTIVE) {
if (gModeSelection == GRAND_PRIX) {
for (i = 0; i < 2; i++) {
D_80163344[i] = D_80164478[D_80163348[i]];
D_80163330[ D_80163344[i] ] = 1;
D_8016334C[ D_80163344[i] ] = i;
}
}
}
if ((D_8018EE08 == (s8) 1) && (gCurrentCourseId != 0x0014)) {
var_s2_2 = &D_80163330;
do {
var_s2_2 += 2;
var_s2_2->unk-2 = 0;
} while ((u32) var_s2_2 < (u32) &D_80163340);
if (gModeSelection == 2) {
temp_t6 = cameras->playerId;
temp_v1_3 = temp_t6 & 0xFFFF;
(&D_80163330)[temp_v1_3] = 1;
*(&D_8016334C + (temp_v1_3 * 2)) = 0;
var_a0_2 = cameras + 0xB8;
var_v0_2 = &D_80163346;
var_s0_3 = 1;
D_80163344 = temp_t6;
do {
temp_t6_2 = var_a0_2->playerId;
var_v0_2 += 2;
var_a0_2 += 0xB8;
temp_v1_4 = temp_t6_2 & 0xFFFF;
(&D_80163330)[temp_v1_4] = 1;
*(&D_8016334C + (temp_v1_4 * 2)) = var_s0_3;
var_s0_3 += 1;
var_v0_2->unk-2 = temp_t6_2;
} while (var_s0_3 != (s16) 2);
if ((D_8018EE08 == 1) && (gCurrentCourseId != COURSE_AWARD_CEREMONY)) {
for (i = 0; i < NUM_PLAYERS; i++) {
D_80163330[i] = 0;
}
if (gModeSelection == VERSUS) {
D_80163344[0] = cameras->playerId;
D_80163330[D_80163344[0]] = 1;
D_8016334C[D_80163344[0]] = 0;
for (i = 1; i < 2; i++)
{
D_80163344[i] = cameras[i].playerId;
D_80163330[D_80163344[i]] = 1;
D_8016334C[D_80163344[i]] = i;
}
}
}
var_v1 = gNearestWaypointByPlayerId;
var_v0_3 = gPathIndexByPlayerId;
var_s4_2 = gGPCurrentRaceRankByPlayerId;
do {
var_v1 += 2;
temp_t9_2 = (gWaypointCountByPathIndex[0 & 0xFFFF] - *var_s4_2) - 4;
var_s4_2 += 4;
var_v0_3 += 2;
var_v0_3->unk-2 = 0;
var_v1->unk-2 = temp_t9_2;
} while ((u32) var_v1 < (u32) &D_80164448);
for (i = 0; i < NUM_PLAYERS; i++) {
if (1);
gPathIndexByPlayerId[i] = 0;
gNearestWaypointByPlayerId[i] = gWaypointCountByPathIndex[gPathIndexByPlayerId[i]] - gGPCurrentRaceRankByPlayerId[i] - 4;
}
D_8016347A = 0;
var_v1_2 = &D_80162F10;
if (gCCSelection == 3) {
D_8016347A = 1;
}
var_v0_4 = &D_80162F50;
do {
var_v0_4 += 2;
var_v1_2 += 2;
var_v1_2->unk-2 = -1;
var_v0_4->unk-2 = -1;
} while ((u32) var_v0_4 < (u32) &D_80162F8C);
D_801631CC = 0x000186A0;
for (i = 0; i < 30; i++) {
D_80162F10[i] = -1;
D_80162F50[i] = -1;
}
D_801631CC = 100000; // 100,000
D_80164698 = 0.0f;
D_8016469C = 100.0f;
D_801646A0 = 0.0f;
@@ -4507,44 +4224,25 @@ void func_8000F628(void) {
D_80163478 = 0;
D_80163378 = 0;
D_8016337C = 0;
D_8016344C = (f32) (*D_80164550)->posZ;
D_8016344C = (f32) D_80164550[0][0].posZ; // [i][2]
D_801634F0 = 0;
D_801634F4 = 0;
D_80163488 = 0;
D_8016348C = 0;
D_801634EC = 0;
func_8001AB00();
if (D_8018EE08 == (s8) 1) {
var_s2_3 = &D_80163330;
var_s0_4 = 0;
if (gDemoMode == (u16) 1) {
do {
if (var_s2_3->unk0 == (u16) 1) {
temp_s1 = &gPlayers[var_s0_4];
temp_s1->statusEffects |= 0x02000000;
if (D_8018EE08 == 1) {
if (gDemoMode == 1) {
for (i = 0; i < NUM_PLAYERS; i++) {
if (D_80163330[i] == 1) {
gPlayers[i].statusEffects |= 0x02000000;
}
if (var_s2_3->unk2 == (u16) 1) {
temp_s1_2 = &gPlayers[var_s0_4];
temp_s1_2->unkDE4 = (s32) (temp_s1_2->unkDE4 | 0x02000000);
}
if (var_s2_3->unk4 == (u16) 1) {
temp_s1_3 = &gPlayers[var_s0_4];
temp_s1_3->unk1BBC = (s32) (temp_s1_3->unk1BBC | 0x02000000);
}
if (var_s2_3->unk6 == (u16) 1) {
temp_s1_4 = &gPlayers[var_s0_4];
temp_s1_4->unk2994 = (s32) (temp_s1_4->unk2994 | 0x02000000);
}
var_s0_4 += 4;
var_s2_3 += 8;
} while (var_s0_4 != 8);
}
}
}
func_80011A5C();
}
#else
GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_8000F628.s")
#endif
extern uintptr_t gCoursePathTable[20][4];
extern uintptr_t D_800DC8D0[20][4];