mirror of
https://github.com/n64decomp/mk64
synced 2026-08-19 05:22:09 -04:00
match func_8000F628 and add NUM_PLAYERS define (#479)
* Match two funcs and add NUM_PLAYERS define
This commit is contained in:
+218
-520
@@ -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];
|
||||
|
||||
Reference in New Issue
Block a user