Added defines for Player->unk_000 bitfields (#63)

This commit is contained in:
CoderStig
2021-11-23 04:24:12 -07:00
committed by GitHub
parent a2dc62ccf8
commit f88c578b98
11 changed files with 210 additions and 176 deletions
+23
View File
@@ -0,0 +1,23 @@
#ifndef DEFINES_H
#define DEFINES_H
/**
* Racing terms:
* Staging means aligning a racecar to the starting line.
* Start sequence means waiting for the light to turn green.
*/
#define PLAYER_INACTIVE 0 // 0x0000
#define PLAYER_EXISTS (1 << 15) // 0x8000
#define PLAYER_CINEMATIC_MODE (1 << 11) // 0x0800
#define PLAYER_STAGING (1 << 9) // 0x0200
#define PLAYER_START_SEQUENCE (1 << 13) // 0x2000
#define PLAYER_CPU (1 << 12) // 0x1000
#define PLAYER_HUMAN (1 << 14) // 0x4000
#define PLAYER_INVISIBLE_OR_BOMB (1 << 8) // 0x0100
#define PLAYER_UNKNOWN (1 << 10) // 0x0400
// Compiles to -0x1000 in diff.py
#define PLAYER_HUMAN_AND_CPU PLAYER_EXISTS | PLAYER_HUMAN | PLAYER_CPU | PLAYER_START_SEQUENCE
#endif // DEFINES_H
+2 -1
View File
@@ -1,5 +1,6 @@
#include <ultra64.h>
#include <macros.h>
#include <defines.h>
extern u32 func_802B5224(void);
extern s32 gIsMirrorMode;
@@ -167,7 +168,7 @@ s32 func_800061DC(void *arg0, f32 arg1, s32 arg2) {
do {
temp_a2 = phi_a0->unk_000;
phi_v1_2 = phi_v1_5;
if (((temp_a2 & 0x4000) != 0) && ((temp_a2 & 0x1000) == 0)) {
if (((temp_a2 & PLAYER_HUMAN) != 0) && ((temp_a2 & PLAYER_CPU) == 0)) {
temp_f12 = phi_a0->posX;
temp_f14 = phi_a0->posZ;
if (((temp_f12 - arg1) < temp_f0) && (temp_f0 < (temp_f12 + arg1)) && ((temp_f14 - arg1) < temp_f2) && (temp_f2 < (temp_f14 + arg1))) {
+2 -1
View File
@@ -1,6 +1,7 @@
#include <ultra64.h>
#include <macros.h>
#include <common_structs.h>
#include <defines.h>
//f32 D_801646C0;
//f32 D_801646C4;
@@ -1317,7 +1318,7 @@ void func_8001EE98(void *arg0, s32 arg1, s8 arg2) {
*sp2C = 1;
phi_v1 = 1;
}
} else if (((D_800DC4DC->unk_000 & 0x800) == 0x800) || (D_800DC51C == 1)) {
} else if (((D_800DC4DC->unk_000 & PLAYER_CINEMATIC_MODE) == PLAYER_CINEMATIC_MODE) || (D_800DC51C == 1)) {
D_80152300.unk0 = 3;
*(&D_80152300 + 2) = 3;
*(&D_80152300 + 4) = 3;
+7 -6
View File
@@ -1,5 +1,6 @@
#include <ultra64.h>
#include <macros.h>
#include <defines.h>
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
@@ -234,13 +235,13 @@ void func_80020000(Player *arg0, s32 arg1, s8 arg2, s8 arg3) {
void *temp_t0;
s16 *phi_a0;
if ((arg0->unk_000 & 0x8000) == 0x8000) {
if ((arg0->unk_000 & PLAYER_EXISTS) == 0x8000) {
func_8001F9E4(arg3);
temp_t3 = arg3 * 4;
sp38 = temp_t3;
temp_v0 = 2 << temp_t3;
if (temp_v0 == (arg0->unk_002 & temp_v0)) {
if ((arg0->unk_000 & 0x2000) == 0) {
if ((arg0->unk_000 & PLAYER_START_SEQUENCE) == 0) {
sp34 = temp_v0;
func_8002934C(arg0, arg1, arg3, arg2);
} else {
@@ -620,7 +621,7 @@ void func_80021244(Player *arg0, s8 arg1, s8 arg2) {
u16 temp_v0;
temp_v0 = arg0->unk_000;
if (((temp_v0 & 0x8000) == 0x8000) && ((temp_v0 & 0x40) == 0)) {
if (((temp_v0 & PLAYER_EXISTS) == PLAYER_EXISTS) && ((temp_v0 & 0x40) == 0)) {
temp_v0_2 = 2 << (arg2 * 4);
if (temp_v0_2 == (arg0->unk_002 & temp_v0_2)) {
func_800267AC(arg0, arg1, arg2);
@@ -1193,11 +1194,11 @@ void func_8002276C(void) {
}
func_80022A98(D_800DC4DC, 0);
temp_a0 = D_800DC4E0;
if ((temp_a0->unk_000 & 0x100) == 0x100) {
if ((temp_a0->unk_000 & PLAYER_INVISIBLE_OR_BOMB) == PLAYER_INVISIBLE_OR_BOMB) {
func_80022A98(temp_a0, 1);
}
temp_a0_2 = D_800DC4E4;
if ((temp_a0_2->unk_000 & 0x100) == 0x100) {
if ((temp_a0_2->unk_000 & PLAYER_INVISIBLE_OR_BOMB) == PLAYER_INVISIBLE_OR_BOMB) {
func_80022A98(temp_a0_2, 2);
return;
}
@@ -3233,7 +3234,7 @@ void func_800267AC(Player *player, s8 arg1, s8 arg2) {
func_80023C84(player, arg1, arg2);
}
}
if ((player->unk_000 & 0x100) != 0x100) {
if ((player->unk_000 & PLAYER_INVISIBLE_OR_BOMB) != PLAYER_INVISIBLE_OR_BOMB) {
func_800248D0(player, arg1, arg2, sp2F);
} else {
func_800256F4(player, arg1, arg2, sp2F);
+3 -2
View File
@@ -1,6 +1,7 @@
#include <ultra64.h>
#include <macros.h>
#include <common_structs.h>
#include <defines.h>
extern Player *D_800DC4DC;
extern Player *D_800DC4E0;
@@ -585,7 +586,7 @@ void func_80028864(Player *arg0, s32 arg1, s8 arg2, s8 arg3) {
temp_v0 = arg0->unk_000;
phi_a0 = arg0;
if ((temp_v0 & 0x2000) == 0) {
if ((temp_v0 & PLAYER_START_SEQUENCE) == 0) {
temp_v0_2 = D_800DC52C;
if (temp_v0_2 != 0) {
if ((temp_v0_2 != 1) && (temp_v0_2 != 2)) {
@@ -642,7 +643,7 @@ void func_80028864(Player *arg0, s32 arg1, s8 arg2, s8 arg3) {
phi_a0 = arg0;
block_17:
}
if ((sp1E == 1) || ((phi_a0->unk_000 & 0x100) == 0x100) || (gModeSelection == 3) || (temp_v0_7 = phi_a0->unk_0CA, ((temp_v0_7 & 2) != 0)) || ((temp_v0_7 & 8) != 0) || (*(&D_801633F8 + (arg2 * 2)) == 1)) {
if ((sp1E == 1) || ((phi_a0->unk_000 & PLAYER_INVISIBLE_OR_BOMB) == PLAYER_INVISIBLE_OR_BOMB) || (gModeSelection == 3) || (temp_v0_7 = phi_a0->unk_0CA, ((temp_v0_7 & 2) != 0)) || ((temp_v0_7 & 8) != 0) || (*(&D_801633F8 + (arg2 * 2)) == 1)) {
temp_t4 = phi_a0->unk_0BC & ~0x1000;
phi_a0->unk_0BC = temp_t4;
if (((temp_t4 & 0x80) == 0x80) || ((temp_t4 & 0x40) == 0x40) || ((temp_t4 & 0x400) == 0x400) || ((temp_t4 & 0x4000) == 0x4000) || ((temp_t4 & 0x80000) == 0x80000) || ((temp_t4 & 0x800000) == 0x800000) || ((temp_t4 & 0x1000000) == 0x1000000) || ((temp_t4 & 0x2000000) == 0x2000000) || ((temp_t4 & 0x20000) == 0x20000) || ((phi_a0->unk_044 & 0x800) != 0)) {
+126 -125
View File
@@ -1,5 +1,6 @@
#include "global.h"
#include <defines.h>
extern s16 D_80165560[];
extern s32* D_800E3C50[];
@@ -20,7 +21,7 @@ void spawn_player(Player *player, s8 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg
f32 ret;
s8 idx;
player->unk_000 = 0;
player->unk_000 = PLAYER_INACTIVE;
player->unk_08C = 0;
player->characterId = arg6;
player->unk_0B6 = 0;
@@ -447,62 +448,62 @@ void func_80039F44(f32 *arg0, f32 *arg1, f32 arg2) {
D_8016556E = 0;
if (D_800DC51C == 1) {
spawn_player(D_800DC4FC, 0, arg0[D_80165270[0]], arg1[D_80165270[0]], arg2, 32768.0f, D_800E86A8[0], -0x1000);
spawn_player(D_800DC4E0, 1, arg0[D_80165270[1]], arg1[D_80165270[1]], arg2, 32768.0f, D_80165560[0], -0x5000);
spawn_player(D_800DC4E4, 2, arg0[D_80165270[2]], arg1[D_80165270[2]], arg2, 32768.0f, D_80165560[1], -0x5000);
spawn_player(D_800DC4E8, 3, arg0[D_80165270[3]], arg1[D_80165270[3]], arg2, 32768.0f, D_80165560[2], -0x5000);
spawn_player(D_800DC4EC, 4, arg0[D_80165270[4]], arg1[D_80165270[4]], arg2, 32768.0f, D_80165560[3], -0x5000);
spawn_player(D_800DC4F0, 5, arg0[D_80165270[5]], arg1[D_80165270[5]], arg2, 32768.0f, D_80165560[4], -0x5000);
spawn_player(D_800DC4F4, 6, arg0[D_80165270[6]], arg1[D_80165270[6]], arg2, 32768.0f, D_80165560[5], -0x5000);
spawn_player(D_800DC4F8, 7, arg0[D_80165270[7]], arg1[D_80165270[7]], arg2, 32768.0f, D_80165560[6], -0x5000);
spawn_player(D_800DC4FC, 0, arg0[D_80165270[0]], arg1[D_80165270[0]], arg2, 32768.0f, D_800E86A8[0], PLAYER_HUMAN_AND_CPU);
spawn_player(D_800DC4E0, 1, arg0[D_80165270[1]], arg1[D_80165270[1]], arg2, 32768.0f, D_80165560[0], PLAYER_EXISTS | PLAYER_CPU | PLAYER_START_SEQUENCE);
spawn_player(D_800DC4E4, 2, arg0[D_80165270[2]], arg1[D_80165270[2]], arg2, 32768.0f, D_80165560[1], PLAYER_EXISTS | PLAYER_CPU | PLAYER_START_SEQUENCE);
spawn_player(D_800DC4E8, 3, arg0[D_80165270[3]], arg1[D_80165270[3]], arg2, 32768.0f, D_80165560[2], PLAYER_EXISTS | PLAYER_CPU | PLAYER_START_SEQUENCE);
spawn_player(D_800DC4EC, 4, arg0[D_80165270[4]], arg1[D_80165270[4]], arg2, 32768.0f, D_80165560[3], PLAYER_EXISTS | PLAYER_CPU | PLAYER_START_SEQUENCE);
spawn_player(D_800DC4F0, 5, arg0[D_80165270[5]], arg1[D_80165270[5]], arg2, 32768.0f, D_80165560[4], PLAYER_EXISTS | PLAYER_CPU | PLAYER_START_SEQUENCE);
spawn_player(D_800DC4F4, 6, arg0[D_80165270[6]], arg1[D_80165270[6]], arg2, 32768.0f, D_80165560[5], PLAYER_EXISTS | PLAYER_CPU | PLAYER_START_SEQUENCE);
spawn_player(D_800DC4F8, 7, arg0[D_80165270[7]], arg1[D_80165270[7]], arg2, 32768.0f, D_80165560[6], PLAYER_EXISTS | PLAYER_CPU | PLAYER_START_SEQUENCE);
D_80164A28 = 0;
} else {
spawn_player(D_800DC4FC, 0, arg0[D_80165270[0]], arg1[D_80165270[0]] + 250.0f, arg2, 32768.0f, D_800E86A8[0], -0x1E00);
spawn_player(D_800DC4E0, 1, arg0[D_80165270[1]], arg1[D_80165270[1]] + 250.0f, arg2, 32768.0f, D_80165560[0], -0x4E00);
spawn_player(D_800DC4E4, 2, arg0[D_80165270[3]], arg1[D_80165270[2]] + 250.0f, arg2, 32768.0f, D_80165560[1], -0x4E00);
spawn_player(D_800DC4E8, 3, arg0[D_80165270[2]], arg1[D_80165270[3]] + 250.0f, arg2, 32768.0f, D_80165560[2], -0x4E00);
spawn_player(D_800DC4EC, 4, arg0[D_80165270[5]], arg1[D_80165270[4]] + 250.0f, arg2, 32768.0f, D_80165560[3], -0x4E00);
spawn_player(D_800DC4F0, 5, arg0[D_80165270[4]], arg1[D_80165270[5]] + 250.0f, arg2, 32768.0f, D_80165560[4], -0x4E00);
spawn_player(D_800DC4F4, 6, arg0[D_80165270[7]], arg1[D_80165270[6]] + 250.0f, arg2, 32768.0f, D_80165560[5], -0x4E00);
spawn_player(D_800DC4F8, 7, arg0[D_80165270[6]], arg1[D_80165270[7]] + 250.0f, arg2, 32768.0f, D_80165560[6], -0x4E00);
spawn_player(D_800DC4FC, 0, arg0[D_80165270[0]], arg1[D_80165270[0]] + 250.0f, arg2, 32768.0f, D_800E86A8[0], PLAYER_EXISTS | PLAYER_STAGING | PLAYER_START_SEQUENCE | PLAYER_HUMAN);
spawn_player(D_800DC4E0, 1, arg0[D_80165270[1]], arg1[D_80165270[1]] + 250.0f, arg2, 32768.0f, D_80165560[0], PLAYER_EXISTS | PLAYER_STAGING | PLAYER_START_SEQUENCE | PLAYER_CPU);
spawn_player(D_800DC4E4, 2, arg0[D_80165270[3]], arg1[D_80165270[2]] + 250.0f, arg2, 32768.0f, D_80165560[1], PLAYER_EXISTS | PLAYER_STAGING | PLAYER_START_SEQUENCE | PLAYER_CPU);
spawn_player(D_800DC4E8, 3, arg0[D_80165270[2]], arg1[D_80165270[3]] + 250.0f, arg2, 32768.0f, D_80165560[2], PLAYER_EXISTS | PLAYER_STAGING | PLAYER_START_SEQUENCE | PLAYER_CPU);
spawn_player(D_800DC4EC, 4, arg0[D_80165270[5]], arg1[D_80165270[4]] + 250.0f, arg2, 32768.0f, D_80165560[3], PLAYER_EXISTS | PLAYER_STAGING | PLAYER_START_SEQUENCE | PLAYER_CPU);
spawn_player(D_800DC4F0, 5, arg0[D_80165270[4]], arg1[D_80165270[5]] + 250.0f, arg2, 32768.0f, D_80165560[4], PLAYER_EXISTS | PLAYER_STAGING | PLAYER_START_SEQUENCE | PLAYER_CPU);
spawn_player(D_800DC4F4, 6, arg0[D_80165270[7]], arg1[D_80165270[6]] + 250.0f, arg2, 32768.0f, D_80165560[5], PLAYER_EXISTS | PLAYER_STAGING | PLAYER_START_SEQUENCE | PLAYER_CPU);
spawn_player(D_800DC4F8, 7, arg0[D_80165270[6]], arg1[D_80165270[7]] + 250.0f, arg2, 32768.0f, D_80165560[6], PLAYER_EXISTS | PLAYER_STAGING | PLAYER_START_SEQUENCE | PLAYER_CPU);
D_80164A28 = 1;
}
func_80039AE4();
}
void func_8003A59C(f32 *arg0, f32 *arg1, f32 arg2) {
spawn_player(D_800DC4E8, 3, arg0[2], arg1[2], arg2, 32768.0f, D_800E86A8[0], 0x3000);
spawn_player(D_800DC4EC, 4, arg0[3], arg1[3], arg2, 32768.0f, D_800E86A8[0], 0x3000);
spawn_player(D_800DC4F0, 5, arg0[4], arg1[4], arg2, 32768.0f, D_800E86A8[0], 0x3000);
spawn_player(D_800DC4F4, 6, arg0[5], arg1[5], arg2, 32768.0f, D_800E86A8[0], 0x3000);
spawn_player(D_800DC4F8, 7, arg0[6], arg1[6], arg2, 32768.0f, D_800E86A8[0], 0x3000);
spawn_player(D_800DC4E8, 3, arg0[2], arg1[2], arg2, 32768.0f, D_800E86A8[0], PLAYER_START_SEQUENCE | PLAYER_CPU);
spawn_player(D_800DC4EC, 4, arg0[3], arg1[3], arg2, 32768.0f, D_800E86A8[0], PLAYER_START_SEQUENCE | PLAYER_CPU);
spawn_player(D_800DC4F0, 5, arg0[4], arg1[4], arg2, 32768.0f, D_800E86A8[0], PLAYER_START_SEQUENCE | PLAYER_CPU);
spawn_player(D_800DC4F4, 6, arg0[5], arg1[5], arg2, 32768.0f, D_800E86A8[0], PLAYER_START_SEQUENCE | PLAYER_CPU);
spawn_player(D_800DC4F8, 7, arg0[6], arg1[6], arg2, 32768.0f, D_800E86A8[0], PLAYER_START_SEQUENCE | PLAYER_CPU);
if (D_800DC51C == 1) {
spawn_player(D_800DC4FC, 0, arg0[0], arg1[0], arg2, 32768.0f, D_800E86A8[0], -0x1000);
spawn_player(D_800DC4E0, 1, arg0[0], arg1[0], arg2, 32768.0f, D_800E86A8[0], 0x3000);
spawn_player(D_800DC4E4, 2, arg0[1], arg1[1], arg2, 32768.0f, D_800E86A8[0], 0x3000);
spawn_player(D_800DC4FC, 0, arg0[0], arg1[0], arg2, 32768.0f, D_800E86A8[0], PLAYER_HUMAN_AND_CPU);
spawn_player(D_800DC4E0, 1, arg0[0], arg1[0], arg2, 32768.0f, D_800E86A8[0], PLAYER_START_SEQUENCE | PLAYER_CPU);
spawn_player(D_800DC4E4, 2, arg0[1], arg1[1], arg2, 32768.0f, D_800E86A8[0], PLAYER_START_SEQUENCE | PLAYER_CPU);
} else if (D_8015F890 != 1) {
spawn_player(D_800DC4FC, 0, arg0[0], arg1[0], arg2, 32768.0f, D_800E86A8[0], -0x2000);
spawn_player(D_800DC4FC, 0, arg0[0], arg1[0], arg2, 32768.0f, D_800E86A8[0], PLAYER_EXISTS | PLAYER_START_SEQUENCE | PLAYER_HUMAN);
if (D_80162DD4[0] == 0) {
spawn_player(D_800DC4E0, 1, arg0[0], arg1[0], arg2, 32768.0f, D_80162DE0, -0x1F00);
spawn_player(D_800DC4E0, 1, arg0[0], arg1[0], arg2, 32768.0f, D_80162DE0, PLAYER_EXISTS | PLAYER_HUMAN | PLAYER_START_SEQUENCE | PLAYER_INVISIBLE_OR_BOMB);
} else {
spawn_player(D_800DC4E0, 1, arg0[0], arg1[0], arg2, 32768.0f, D_800E86A8[0], 0x3000);
spawn_player(D_800DC4E0, 1, arg0[0], arg1[0], arg2, 32768.0f, D_800E86A8[0], PLAYER_START_SEQUENCE | PLAYER_CPU);
}
if (D_80162DD4[1] == 0) {
spawn_player(D_800DC4E4, 2, arg0[0], arg1[0], arg2, 32768.0f, D_80162DE4, -0x1F00);
spawn_player(D_800DC4E4, 2, arg0[0], arg1[0], arg2, 32768.0f, D_80162DE4, PLAYER_EXISTS | PLAYER_HUMAN | PLAYER_START_SEQUENCE | PLAYER_INVISIBLE_OR_BOMB);
} else {
spawn_player(D_800DC4E4, 2, arg0[1], arg1[1], arg2, 32768.0f, D_800E86A8[0], 0x3000);
spawn_player(D_800DC4E4, 2, arg0[1], arg1[1], arg2, 32768.0f, D_800E86A8[0], PLAYER_START_SEQUENCE | PLAYER_CPU);
}
} else {
spawn_player(D_800DC4FC, 0, arg0[0], arg1[0], arg2, 32768.0f, D_80162DE8, -0x1F00);
spawn_player(D_800DC4FC, 0, arg0[0], arg1[0], arg2, 32768.0f, D_80162DE8, PLAYER_EXISTS | PLAYER_HUMAN | PLAYER_START_SEQUENCE | PLAYER_INVISIBLE_OR_BOMB);
if (D_80162DD8 == 0) {
spawn_player(D_800DC4E0, 1, arg0[0], arg1[0], arg2, 32768.0f, D_80162DE0, -0x1F00);
spawn_player(D_800DC4E0, 1, arg0[0], arg1[0], arg2, 32768.0f, D_80162DE0, PLAYER_EXISTS | PLAYER_HUMAN | PLAYER_START_SEQUENCE | PLAYER_INVISIBLE_OR_BOMB);
} else {
spawn_player(D_800DC4E0, 1, arg0[0], arg1[0], arg2, 32768.0f, D_800E86A8[0], 0x3000);
spawn_player(D_800DC4E0, 1, arg0[0], arg1[0], arg2, 32768.0f, D_800E86A8[0], PLAYER_START_SEQUENCE | PLAYER_CPU);
}
if (D_80162DD4[1] == 0) {
spawn_player(D_800DC4E4, 2, arg0[0], arg1[0], arg2, 32768.0f, D_80162DE4, -0x1F00);
spawn_player(D_800DC4E4, 2, arg0[0], arg1[0], arg2, 32768.0f, D_80162DE4, PLAYER_EXISTS | PLAYER_HUMAN | PLAYER_START_SEQUENCE | PLAYER_INVISIBLE_OR_BOMB);
} else {
spawn_player(D_800DC4E4, 2, arg0[1], arg1[1], arg2, 32768.0f, D_800E86A8[0], 0x3000);
spawn_player(D_800DC4E4, 2, arg0[1], arg1[1], arg2, 32768.0f, D_800E86A8[0], PLAYER_START_SEQUENCE | PLAYER_CPU);
}
}
D_80164A28 = 0;
@@ -534,22 +535,22 @@ getRand:
}
}
spawn_player(D_800DC4E4, 2, arg0[D_80165270[2]], arg1[D_80165270[2]], arg2, 32768.0f, D_80165560[0], -0x5000);
spawn_player(D_800DC4E8, 3, arg0[D_80165270[3]], arg1[D_80165270[3]], arg2, 32768.0f, D_80165560[1], -0x5000);
spawn_player(D_800DC4EC, 4, arg0[D_80165270[4]], arg1[D_80165270[4]], arg2, 32768.0f, D_80165560[2], -0x5000);
spawn_player(D_800DC4F0, 5, arg0[D_80165270[5]], arg1[D_80165270[5]], arg2, 32768.0f, D_80165560[3], -0x5000);
spawn_player(D_800DC4F4, 6, arg0[D_80165270[6]], arg1[D_80165270[6]], arg2, 32768.0f, D_80165560[4], -0x5000);
spawn_player(D_800DC4F8, 7, arg0[D_80165270[7]], arg1[D_80165270[7]], arg2, 32768.0f, D_80165560[5], -0x5000);
spawn_player(D_800DC4E4, 2, arg0[D_80165270[2]], arg1[D_80165270[2]], arg2, 32768.0f, D_80165560[0], PLAYER_EXISTS | PLAYER_CPU | PLAYER_START_SEQUENCE);
spawn_player(D_800DC4E8, 3, arg0[D_80165270[3]], arg1[D_80165270[3]], arg2, 32768.0f, D_80165560[1], PLAYER_EXISTS | PLAYER_CPU | PLAYER_START_SEQUENCE);
spawn_player(D_800DC4EC, 4, arg0[D_80165270[4]], arg1[D_80165270[4]], arg2, 32768.0f, D_80165560[2], PLAYER_EXISTS | PLAYER_CPU | PLAYER_START_SEQUENCE);
spawn_player(D_800DC4F0, 5, arg0[D_80165270[5]], arg1[D_80165270[5]], arg2, 32768.0f, D_80165560[3], PLAYER_EXISTS | PLAYER_CPU | PLAYER_START_SEQUENCE);
spawn_player(D_800DC4F4, 6, arg0[D_80165270[6]], arg1[D_80165270[6]], arg2, 32768.0f, D_80165560[4], PLAYER_EXISTS | PLAYER_CPU | PLAYER_START_SEQUENCE);
spawn_player(D_800DC4F8, 7, arg0[D_80165270[7]], arg1[D_80165270[7]], arg2, 32768.0f, D_80165560[5], PLAYER_EXISTS | PLAYER_CPU | PLAYER_START_SEQUENCE);
if (D_800DC51C == 1) {
spawn_player(D_800DC4FC, 0, arg0[D_80165270[0]], arg1[D_80165270[0]], arg2, 32768.0f, D_800E86A8[0], -0x1000);
spawn_player(D_800DC4FC, 0, arg0[D_80165270[0]], arg1[D_80165270[0]], arg2, 32768.0f, D_800E86A8[0], PLAYER_HUMAN_AND_CPU);
} else {
spawn_player(D_800DC4FC, 0, arg0[D_80165270[0]], arg1[D_80165270[0]], arg2, 32768.0f, D_800E86A8[0], -0x2000);
spawn_player(D_800DC4FC, 0, arg0[D_80165270[0]], arg1[D_80165270[0]], arg2, 32768.0f, D_800E86A8[0], PLAYER_EXISTS | PLAYER_START_SEQUENCE | PLAYER_HUMAN);
}
if (D_800DC51C == 1) {
spawn_player(D_800DC4E0, 1, arg0[D_80165270[1]], arg1[D_80165270[1]], arg2, 32768.0f, D_800E86A8[1], -0x5000);
spawn_player(D_800DC4E0, 1, arg0[D_80165270[1]], arg1[D_80165270[1]], arg2, 32768.0f, D_800E86A8[1], PLAYER_EXISTS | PLAYER_CPU | PLAYER_START_SEQUENCE);
} else {
spawn_player(D_800DC4E0, 1, arg0[D_80165270[1]], arg1[D_80165270[1]], arg2, 32768.0f, D_800E86A8[1], -0x2000);
spawn_player(D_800DC4E0, 1, arg0[D_80165270[1]], arg1[D_80165270[1]], arg2, 32768.0f, D_800E86A8[1], PLAYER_EXISTS | PLAYER_START_SEQUENCE | PLAYER_HUMAN);
}
D_80164A28 = 0;
@@ -557,21 +558,21 @@ getRand:
}
void func_8003AE24(f32 *arg0, f32 *arg1, f32 arg2) {
spawn_player(D_800DC4E4, 2, arg0[1], arg1[1], arg2, 32768.0f, D_800E86A8[0], 0x3000);
spawn_player(D_800DC4E8, 3, arg0[2], arg1[2], arg2, 32768.0f, D_800E86A8[0], 0x3000);
spawn_player(D_800DC4EC, 4, arg0[3], arg1[3], arg2, 32768.0f, D_800E86A8[0], 0x3000);
spawn_player(D_800DC4F0, 5, arg0[4], arg1[4], arg2, 32768.0f, D_800E86A8[0], 0x3000);
spawn_player(D_800DC4F4, 6, arg0[5], arg1[5], arg2, 32768.0f, D_800E86A8[0], 0x3000);
spawn_player(D_800DC4F8, 7, arg0[6], arg1[6], arg2, 32768.0f, D_800E86A8[0], 0x3000);
spawn_player(D_800DC4E4, 2, arg0[1], arg1[1], arg2, 32768.0f, D_800E86A8[0], PLAYER_START_SEQUENCE | PLAYER_CPU);
spawn_player(D_800DC4E8, 3, arg0[2], arg1[2], arg2, 32768.0f, D_800E86A8[0], PLAYER_START_SEQUENCE | PLAYER_CPU);
spawn_player(D_800DC4EC, 4, arg0[3], arg1[3], arg2, 32768.0f, D_800E86A8[0], PLAYER_START_SEQUENCE | PLAYER_CPU);
spawn_player(D_800DC4F0, 5, arg0[4], arg1[4], arg2, 32768.0f, D_800E86A8[0], PLAYER_START_SEQUENCE | PLAYER_CPU);
spawn_player(D_800DC4F4, 6, arg0[5], arg1[5], arg2, 32768.0f, D_800E86A8[0], PLAYER_START_SEQUENCE | PLAYER_CPU);
spawn_player(D_800DC4F8, 7, arg0[6], arg1[6], arg2, 32768.0f, D_800E86A8[0], PLAYER_START_SEQUENCE | PLAYER_CPU);
if (D_800DC51C == 1) {
spawn_player(D_800DC4FC, 0, arg0[0], arg1[0], arg2, 32768.0f, D_800E86A8[0], -0x1000);
spawn_player(D_800DC4FC, 0, arg0[0], arg1[0], arg2, 32768.0f, D_800E86A8[0], PLAYER_HUMAN_AND_CPU);
} else {
spawn_player(D_800DC4FC, 0, arg0[0], arg1[0], arg2, 32768.0f, D_800E86A8[0], -0x2000);
spawn_player(D_800DC4FC, 0, arg0[0], arg1[0], arg2, 32768.0f, D_800E86A8[0], PLAYER_EXISTS | PLAYER_START_SEQUENCE | PLAYER_HUMAN);
}
if (D_800DC51C == 1) {
spawn_player(D_800DC4E0, 1, arg0[1], arg1[1], arg2, 32768.0f, D_800E86A8[1], -0x1000);
spawn_player(D_800DC4E0, 1, arg0[1], arg1[1], arg2, 32768.0f, D_800E86A8[1], PLAYER_HUMAN_AND_CPU);
} else {
spawn_player(D_800DC4E0, 1, arg0[1], arg1[1], arg2, 32768.0f, D_800E86A8[1], -0x2000);
spawn_player(D_800DC4E0, 1, arg0[1], arg1[1], arg2, 32768.0f, D_800E86A8[1], PLAYER_EXISTS | PLAYER_START_SEQUENCE | PLAYER_HUMAN);
}
D_80164A28 = 0;
func_80039AE4();
@@ -579,95 +580,95 @@ void func_8003AE24(f32 *arg0, f32 *arg1, f32 arg2) {
void spawn_players_2p_battle(f32 *arg0, f32 *arg1, f32 arg2) {
if (gCurrentCourseId == COURSE_BIG_DONUT) {
spawn_player(D_800DC4DC, 0, arg0[0], arg1[0], arg2, -16384.0f, D_800E86A8[0], -0x2000);
spawn_player(D_800DC4E0, 1, arg0[1], arg1[1], arg2, 16384.0f, D_800E86A8[1], -0x2000);
spawn_player(D_800DC4DC, 0, arg0[0], arg1[0], arg2, -16384.0f, D_800E86A8[0], PLAYER_EXISTS | PLAYER_START_SEQUENCE | PLAYER_HUMAN);
spawn_player(D_800DC4E0, 1, arg0[1], arg1[1], arg2, 16384.0f, D_800E86A8[1], PLAYER_EXISTS | PLAYER_START_SEQUENCE | PLAYER_HUMAN);
} else {
spawn_player(D_800DC4DC, 0, arg0[0], arg1[0], arg2, 32768.0f, D_800E86A8[0], -0x2000);
spawn_player(D_800DC4E0, 1, arg0[1], arg1[1], arg2, 0.0f, D_800E86A8[1], -0x2000);
spawn_player(D_800DC4DC, 0, arg0[0], arg1[0], arg2, 32768.0f, D_800E86A8[0], PLAYER_EXISTS | PLAYER_START_SEQUENCE | PLAYER_HUMAN);
spawn_player(D_800DC4E0, 1, arg0[1], arg1[1], arg2, 0.0f, D_800E86A8[1], PLAYER_EXISTS | PLAYER_START_SEQUENCE | PLAYER_HUMAN);
}
spawn_player(D_800DC4E4, 2, arg0[2], arg1[2], arg2, 32768.0f, D_800E86A8[2], 0x6000);
spawn_player(D_800DC4E8, 3, arg0[3], arg1[3], arg2, 32768.0f, D_800E86A8[3], 0x6000);
spawn_player(D_800DC4EC, 4, arg0[4], arg1[4], arg2, 32768.0f, 4, 0x3000);
spawn_player(D_800DC4F0, 5, arg0[5], arg1[5], arg2, 32768.0f, 5, 0x3000);
spawn_player(D_800DC4F4, 6, arg0[6], arg1[6], arg2, 32768.0f, 6, 0x3000);
spawn_player(D_800DC4F8, 7, arg0[0], arg1[0], arg2, 32768.0f, 7, 0x3000);
spawn_player(D_800DC4E4, 2, arg0[2], arg1[2], arg2, 32768.0f, D_800E86A8[2], PLAYER_START_SEQUENCE | PLAYER_HUMAN);
spawn_player(D_800DC4E8, 3, arg0[3], arg1[3], arg2, 32768.0f, D_800E86A8[3], PLAYER_START_SEQUENCE | PLAYER_HUMAN);
spawn_player(D_800DC4EC, 4, arg0[4], arg1[4], arg2, 32768.0f, 4, PLAYER_START_SEQUENCE | PLAYER_CPU);
spawn_player(D_800DC4F0, 5, arg0[5], arg1[5], arg2, 32768.0f, 5, PLAYER_START_SEQUENCE | PLAYER_CPU);
spawn_player(D_800DC4F4, 6, arg0[6], arg1[6], arg2, 32768.0f, 6, PLAYER_START_SEQUENCE | PLAYER_CPU);
spawn_player(D_800DC4F8, 7, arg0[0], arg1[0], arg2, 32768.0f, 7, PLAYER_START_SEQUENCE | PLAYER_CPU);
D_80164A28 = 0;
func_80039AE4();
}
void func_8003B318(f32 *arg0, f32 *arg1, f32 arg2) {
spawn_player(D_800DC4DC, 0, arg0[0], arg1[0], arg2, 32768.0f, D_800E86A8[0], -0x2000);
spawn_player(D_800DC4E0, 1, arg0[1], arg1[1], arg2, 32768.0f, D_800E86A8[1], -0x2000);
spawn_player(D_800DC4E4, 2, arg0[2], arg1[2], arg2, 32768.0f, D_800E86A8[2], -0x2000);
spawn_player(D_800DC4DC, 0, arg0[0], arg1[0], arg2, 32768.0f, D_800E86A8[0], PLAYER_EXISTS | PLAYER_START_SEQUENCE | PLAYER_HUMAN);
spawn_player(D_800DC4E0, 1, arg0[1], arg1[1], arg2, 32768.0f, D_800E86A8[1], PLAYER_EXISTS | PLAYER_START_SEQUENCE | PLAYER_HUMAN);
spawn_player(D_800DC4E4, 2, arg0[2], arg1[2], arg2, 32768.0f, D_800E86A8[2], PLAYER_EXISTS | PLAYER_START_SEQUENCE | PLAYER_HUMAN);
if (D_800DC51C == 1) {
spawn_player(D_800DC4DC, 0, arg0[0], arg1[0], arg2, 32768.0f, D_800E86A8[0], -0x1000);
spawn_player(D_800DC4E0, 1, arg0[1], arg1[1], arg2, 32768.0f, D_800E86A8[1], -0x1000);
spawn_player(D_800DC4E4, 2, arg0[2], arg1[2], arg2, 32768.0f, D_800E86A8[2], -0x1000);
spawn_player(D_800DC4DC, 0, arg0[0], arg1[0], arg2, 32768.0f, D_800E86A8[0], PLAYER_HUMAN_AND_CPU);
spawn_player(D_800DC4E0, 1, arg0[1], arg1[1], arg2, 32768.0f, D_800E86A8[1], PLAYER_HUMAN_AND_CPU);
spawn_player(D_800DC4E4, 2, arg0[2], arg1[2], arg2, 32768.0f, D_800E86A8[2], PLAYER_HUMAN_AND_CPU);
}
spawn_player(D_800DC4E8, 3, arg0[3], arg1[3], arg2, 32768.0f, 3, 0x3000);
spawn_player(D_800DC4EC, 4, arg0[4], arg1[4], arg2, 32768.0f, 4, 0x3000);
spawn_player(D_800DC4F0, 5, arg0[5], arg1[5], arg2, 32768.0f, 5, 0x3000);
spawn_player(D_800DC4F4, 6, arg0[6], arg1[6], arg2, 32768.0f, 6, 0x3000);
spawn_player(D_800DC4F8, 7, arg0[0], arg1[0], arg2, 32768.0f, 7, 0x3000);
spawn_player(D_800DC4E8, 3, arg0[3], arg1[3], arg2, 32768.0f, 3, PLAYER_START_SEQUENCE | PLAYER_CPU);
spawn_player(D_800DC4EC, 4, arg0[4], arg1[4], arg2, 32768.0f, 4, PLAYER_START_SEQUENCE | PLAYER_CPU);
spawn_player(D_800DC4F0, 5, arg0[5], arg1[5], arg2, 32768.0f, 5, PLAYER_START_SEQUENCE | PLAYER_CPU);
spawn_player(D_800DC4F4, 6, arg0[6], arg1[6], arg2, 32768.0f, 6, PLAYER_START_SEQUENCE | PLAYER_CPU);
spawn_player(D_800DC4F8, 7, arg0[0], arg1[0], arg2, 32768.0f, 7, PLAYER_START_SEQUENCE | PLAYER_CPU);
D_80164A28 = 0;
func_80039AE4();
}
void spawn_players_3p_battle(f32 *arg0, f32 *arg1, f32 arg2) {
if (gCurrentCourseId == COURSE_BIG_DONUT) {
spawn_player(D_800DC4DC, 0, arg0[0], arg1[0], arg2, -16384.0f, D_800E86A8[0], -0x2000);
spawn_player(D_800DC4E0, 1, arg0[1], arg1[1], arg2, 16384.0f, D_800E86A8[1], -0x2000);
spawn_player(D_800DC4E4, 2, arg0[2], arg1[2], arg2, 0.0f, D_800E86A8[2], -0x2000);
spawn_player(D_800DC4DC, 0, arg0[0], arg1[0], arg2, -16384.0f, D_800E86A8[0], PLAYER_EXISTS | PLAYER_START_SEQUENCE | PLAYER_HUMAN);
spawn_player(D_800DC4E0, 1, arg0[1], arg1[1], arg2, 16384.0f, D_800E86A8[1], PLAYER_EXISTS | PLAYER_START_SEQUENCE | PLAYER_HUMAN);
spawn_player(D_800DC4E4, 2, arg0[2], arg1[2], arg2, 0.0f, D_800E86A8[2], PLAYER_EXISTS | PLAYER_START_SEQUENCE | PLAYER_HUMAN);
} else {
spawn_player(D_800DC4DC, 0, arg0[0], arg1[0], arg2, 32768.0f, D_800E86A8[0], -0x2000);
spawn_player(D_800DC4E0, 1, arg0[1], arg1[1], arg2, 0.0f, D_800E86A8[1], -0x2000);
spawn_player(D_800DC4E4, 2, arg0[2], arg1[2], arg2, -16384.0f, D_800E86A8[2], -0x2000);
spawn_player(D_800DC4DC, 0, arg0[0], arg1[0], arg2, 32768.0f, D_800E86A8[0], PLAYER_EXISTS | PLAYER_START_SEQUENCE | PLAYER_HUMAN);
spawn_player(D_800DC4E0, 1, arg0[1], arg1[1], arg2, 0.0f, D_800E86A8[1], PLAYER_EXISTS | PLAYER_START_SEQUENCE | PLAYER_HUMAN);
spawn_player(D_800DC4E4, 2, arg0[2], arg1[2], arg2, -16384.0f, D_800E86A8[2], PLAYER_EXISTS | PLAYER_START_SEQUENCE | PLAYER_HUMAN);
}
spawn_player(D_800DC4E8, 3, arg0[3], arg1[3], arg2, 32768.0f, 3, 0x3000);
spawn_player(D_800DC4EC, 4, arg0[4], arg1[4], arg2, 32768.0f, 4, 0x3000);
spawn_player(D_800DC4F0, 5, arg0[5], arg1[5], arg2, 32768.0f, 5, 0x3000);
spawn_player(D_800DC4F4, 6, arg0[6], arg1[6], arg2, 32768.0f, 6, 0x3000);
spawn_player(D_800DC4F8, 7, arg0[0], arg1[0], arg2, 32768.0f, 7, 0x3000);
spawn_player(D_800DC4E8, 3, arg0[3], arg1[3], arg2, 32768.0f, 3, PLAYER_START_SEQUENCE | PLAYER_CPU);
spawn_player(D_800DC4EC, 4, arg0[4], arg1[4], arg2, 32768.0f, 4, PLAYER_START_SEQUENCE | PLAYER_CPU);
spawn_player(D_800DC4F0, 5, arg0[5], arg1[5], arg2, 32768.0f, 5, PLAYER_START_SEQUENCE | PLAYER_CPU);
spawn_player(D_800DC4F4, 6, arg0[6], arg1[6], arg2, 32768.0f, 6, PLAYER_START_SEQUENCE | PLAYER_CPU);
spawn_player(D_800DC4F8, 7, arg0[0], arg1[0], arg2, 32768.0f, 7, PLAYER_START_SEQUENCE | PLAYER_CPU);
D_80164A28 = 0;
func_80039AE4();
}
void func_8003B870(f32 *arg0, f32 *arg1, f32 arg2) {
spawn_player(D_800DC4DC, 0, arg0[0], arg1[0], arg2, 32768.0f, D_800E86A8[0], -0x2000);
spawn_player(D_800DC4E0, 1, arg0[1], arg1[1], arg2, 32768.0f, D_800E86A8[1], -0x2000);
spawn_player(D_800DC4E4, 2, arg0[2], arg1[2], arg2, 32768.0f, D_800E86A8[2], -0x2000);
spawn_player(D_800DC4E8, 3, arg0[3], arg1[3], arg2, 32768.0f, D_800E86A8[3], -0x2000);
spawn_player(D_800DC4DC, 0, arg0[0], arg1[0], arg2, 32768.0f, D_800E86A8[0], PLAYER_EXISTS | PLAYER_START_SEQUENCE | PLAYER_HUMAN);
spawn_player(D_800DC4E0, 1, arg0[1], arg1[1], arg2, 32768.0f, D_800E86A8[1], PLAYER_EXISTS | PLAYER_START_SEQUENCE | PLAYER_HUMAN);
spawn_player(D_800DC4E4, 2, arg0[2], arg1[2], arg2, 32768.0f, D_800E86A8[2], PLAYER_EXISTS | PLAYER_START_SEQUENCE | PLAYER_HUMAN);
spawn_player(D_800DC4E8, 3, arg0[3], arg1[3], arg2, 32768.0f, D_800E86A8[3], PLAYER_EXISTS | PLAYER_START_SEQUENCE | PLAYER_HUMAN);
if (D_800DC51C == 1) {
spawn_player(D_800DC4DC, 0, arg0[0], arg1[0], arg2, 32768.0f, D_800E86A8[0], -0x1000);
spawn_player(D_800DC4E0, 1, arg0[1], arg1[1], arg2, 32768.0f, D_800E86A8[1], -0x1000);
spawn_player(D_800DC4E4, 2, arg0[2], arg1[2], arg2, 32768.0f, D_800E86A8[2], -0x1000);
spawn_player(D_800DC4E8, 3, arg0[3], arg1[3], arg2, 32768.0f, D_800E86A8[3], -0x1000);
spawn_player(D_800DC4DC, 0, arg0[0], arg1[0], arg2, 32768.0f, D_800E86A8[0], PLAYER_HUMAN_AND_CPU);
spawn_player(D_800DC4E0, 1, arg0[1], arg1[1], arg2, 32768.0f, D_800E86A8[1], PLAYER_HUMAN_AND_CPU);
spawn_player(D_800DC4E4, 2, arg0[2], arg1[2], arg2, 32768.0f, D_800E86A8[2], PLAYER_HUMAN_AND_CPU);
spawn_player(D_800DC4E8, 3, arg0[3], arg1[3], arg2, 32768.0f, D_800E86A8[3], PLAYER_HUMAN_AND_CPU);
}
spawn_player(D_800DC4EC, 4, arg0[4], arg1[4], arg2, 32768.0f, 4, 0x3000);
spawn_player(D_800DC4F0, 5, arg0[5], arg1[5], arg2, 32768.0f, 5, 0x3000);
spawn_player(D_800DC4F4, 6, arg0[6], arg1[6], arg2, 32768.0f, 6, 0x3000);
spawn_player(D_800DC4F8, 7, arg0[0], arg1[0], arg2, 32768.0f, 7, 0x3000);
spawn_player(D_800DC4EC, 4, arg0[4], arg1[4], arg2, 32768.0f, 4, PLAYER_START_SEQUENCE | PLAYER_CPU);
spawn_player(D_800DC4F0, 5, arg0[5], arg1[5], arg2, 32768.0f, 5, PLAYER_START_SEQUENCE | PLAYER_CPU);
spawn_player(D_800DC4F4, 6, arg0[6], arg1[6], arg2, 32768.0f, 6, PLAYER_START_SEQUENCE | PLAYER_CPU);
spawn_player(D_800DC4F8, 7, arg0[0], arg1[0], arg2, 32768.0f, 7, PLAYER_START_SEQUENCE | PLAYER_CPU);
D_80164A28 = 0;
func_80039AE4();
}
void spawn_players_4p_battle(f32 *arg0, f32 *arg1, f32 arg2) {
if (gCurrentCourseId == COURSE_BIG_DONUT) {
spawn_player(D_800DC4DC, 0, arg0[0], arg1[0], arg2, -16384.0f, D_800E86A8[0], -0x2000);
spawn_player(D_800DC4E0, 1, arg0[1], arg1[1], arg2, 16384.0f, D_800E86A8[1], -0x2000);
spawn_player(D_800DC4E4, 2, arg0[2], arg1[2], arg2, 0.0f, D_800E86A8[2], -0x2000);
spawn_player(D_800DC4E8, 3, arg0[3], arg1[3], arg2, 32768.0f, D_800E86A8[3], -0x2000);
spawn_player(D_800DC4DC, 0, arg0[0], arg1[0], arg2, -16384.0f, D_800E86A8[0], PLAYER_EXISTS | PLAYER_START_SEQUENCE | PLAYER_HUMAN);
spawn_player(D_800DC4E0, 1, arg0[1], arg1[1], arg2, 16384.0f, D_800E86A8[1], PLAYER_EXISTS | PLAYER_START_SEQUENCE | PLAYER_HUMAN);
spawn_player(D_800DC4E4, 2, arg0[2], arg1[2], arg2, 0.0f, D_800E86A8[2], PLAYER_EXISTS | PLAYER_START_SEQUENCE | PLAYER_HUMAN);
spawn_player(D_800DC4E8, 3, arg0[3], arg1[3], arg2, 32768.0f, D_800E86A8[3], PLAYER_EXISTS | PLAYER_START_SEQUENCE | PLAYER_HUMAN);
} else {
spawn_player(D_800DC4DC, 0, arg0[0], arg1[0], arg2, 32768.0f, D_800E86A8[0], -0x2000);
spawn_player(D_800DC4E0, 1, arg0[1], arg1[1], arg2, 0.0f, D_800E86A8[1], -0x2000);
spawn_player(D_800DC4E4, 2, arg0[2], arg1[2], arg2, -16384.0f, D_800E86A8[2], -0x2000);
spawn_player(D_800DC4E8, 3, arg0[3], arg1[3], arg2, 16384.0f, D_800E86A8[3], -0x2000);
spawn_player(D_800DC4DC, 0, arg0[0], arg1[0], arg2, 32768.0f, D_800E86A8[0], PLAYER_EXISTS | PLAYER_START_SEQUENCE | PLAYER_HUMAN);
spawn_player(D_800DC4E0, 1, arg0[1], arg1[1], arg2, 0.0f, D_800E86A8[1], PLAYER_EXISTS | PLAYER_START_SEQUENCE | PLAYER_HUMAN);
spawn_player(D_800DC4E4, 2, arg0[2], arg1[2], arg2, -16384.0f, D_800E86A8[2], PLAYER_EXISTS | PLAYER_START_SEQUENCE | PLAYER_HUMAN);
spawn_player(D_800DC4E8, 3, arg0[3], arg1[3], arg2, 16384.0f, D_800E86A8[3], PLAYER_EXISTS | PLAYER_START_SEQUENCE | PLAYER_HUMAN);
}
spawn_player(D_800DC4EC, 4, arg0[4], arg1[4], arg2, 32768.0f, 4, 0x3000);
spawn_player(D_800DC4F0, 5, arg0[5], arg1[5], arg2, 32768.0f, 5, 0x3000);
spawn_player(D_800DC4F4, 6, arg0[6], arg1[6], arg2, 32768.0f, 6, 0x3000);
spawn_player(D_800DC4F8, 7, arg0[0], arg1[0], arg2, 32768.0f, 7, 0x3000);
spawn_player(D_800DC4EC, 4, arg0[4], arg1[4], arg2, 32768.0f, 4, PLAYER_START_SEQUENCE | PLAYER_CPU);
spawn_player(D_800DC4F0, 5, arg0[5], arg1[5], arg2, 32768.0f, 5, PLAYER_START_SEQUENCE | PLAYER_CPU);
spawn_player(D_800DC4F4, 6, arg0[6], arg1[6], arg2, 32768.0f, 6, PLAYER_START_SEQUENCE | PLAYER_CPU);
spawn_player(D_800DC4F8, 7, arg0[0], arg1[0], arg2, 32768.0f, 7, PLAYER_START_SEQUENCE | PLAYER_CPU);
D_80164A28 = 0;
func_80039AE4();
}
@@ -691,13 +692,13 @@ extern f32 D_800EDE58;
extern f32 D_800EDE5C;
void func_8003BE30(void) {
spawn_player(D_800DC4DC, 0, -2770.774f, -345.187f, D_800EDE20, 0.0f, D_8018D9D0[0], -0x5000);
spawn_player(D_800DC4E0, 1, -3691.506f, -6.822f, D_800EDE24, D_800EDE28, D_8018D9D0[1], -0x5000);
spawn_player(D_800DC4E4, 2, -3475.028f, -998.485f, D_800EDE2C, D_800EDE30, D_8018D9D0[2], -0x5000);
spawn_player(D_800DC4DC, 0, -2770.774f, -345.187f, D_800EDE20, 0.0f, D_8018D9D0[0], PLAYER_EXISTS | PLAYER_CPU | PLAYER_START_SEQUENCE);
spawn_player(D_800DC4E0, 1, -3691.506f, -6.822f, D_800EDE24, D_800EDE28, D_8018D9D0[1], PLAYER_EXISTS | PLAYER_CPU | PLAYER_START_SEQUENCE);
spawn_player(D_800DC4E4, 2, -3475.028f, -998.485f, D_800EDE2C, D_800EDE30, D_8018D9D0[2], PLAYER_EXISTS | PLAYER_CPU | PLAYER_START_SEQUENCE);
if (D_802874D8.unk_1D >= 3) {
spawn_player(D_800DC4E8, 3, -3025.772f, 110.039f, D_800EDE34, D_800EDE38, D_802874D8.unk_1E, -0x5000);
spawn_player(D_800DC4E8, 3, -3025.772f, 110.039f, D_800EDE34, D_800EDE38, D_802874D8.unk_1E, PLAYER_EXISTS | PLAYER_CPU | PLAYER_START_SEQUENCE);
} else {
spawn_player(D_800DC4E8, 3, -3025.772f, 110.039f, D_800EDE3C, D_800EDE40, D_8018D9D0[3], -0x5000);
spawn_player(D_800DC4E8, 3, -3025.772f, 110.039f, D_800EDE3C, D_800EDE40, D_8018D9D0[3], PLAYER_EXISTS | PLAYER_CPU | PLAYER_START_SEQUENCE);
}
spawn_player(D_800DC4EC, 4, -2770.774f, -345.187f, D_800EDE44, 0.0f, 0, 0x7000);
spawn_player(D_800DC4F0, 5, -3691.506f, -6.822f, D_800EDE48, D_800EDE4C, 0, 0x7000);
@@ -1019,14 +1020,14 @@ void func_8003C0F0(void) {
D_80165230[5] = 130.0f;
D_80165230[6] = 150.0f;
D_80165230[7] = 170.0f;
spawn_player(D_800DC4FC, 0, D_80165210[0], D_80165230[0], sp5A, 32768.0f, D_800E86A8[0], -0x2000);
spawn_player(D_800DC4E0, 1, D_80165210[1], D_80165230[1], sp5A, 32768.0f, 1, -0x5000);
spawn_player(D_800DC4E4, 2, D_80165210[2], D_80165230[2], sp5A, 32768.0f, 2, -0x5000);
spawn_player(D_800DC4E8, 3, D_80165210[3], D_80165230[3], sp5A, 32768.0f, 3, -0x5000);
spawn_player(D_800DC4EC, 4, D_80165210[4], D_80165230[4], sp5A, 32768.0f, 4, -0x5000);
spawn_player(D_800DC4F0, 5, D_80165210[5], D_80165230[5], sp5A, 32768.0f, 5, -0x5000);
spawn_player(D_800DC4F4, 6, D_80165210[6], D_80165230[6], sp5A, 32768.0f, 6, -0x5000);
spawn_player(D_800DC4F8, 7, D_80165210[7], D_80165230[7], sp5A, 32768.0f, 7, -0x5000);
spawn_player(D_800DC4FC, 0, D_80165210[0], D_80165230[0], sp5A, 32768.0f, D_800E86A8[0], PLAYER_EXISTS | PLAYER_START_SEQUENCE | PLAYER_HUMAN);
spawn_player(D_800DC4E0, 1, D_80165210[1], D_80165230[1], sp5A, 32768.0f, 1, PLAYER_EXISTS | PLAYER_CPU | PLAYER_START_SEQUENCE);
spawn_player(D_800DC4E4, 2, D_80165210[2], D_80165230[2], sp5A, 32768.0f, 2, PLAYER_EXISTS | PLAYER_CPU | PLAYER_START_SEQUENCE);
spawn_player(D_800DC4E8, 3, D_80165210[3], D_80165230[3], sp5A, 32768.0f, 3, PLAYER_EXISTS | PLAYER_CPU | PLAYER_START_SEQUENCE);
spawn_player(D_800DC4EC, 4, D_80165210[4], D_80165230[4], sp5A, 32768.0f, 4, PLAYER_EXISTS | PLAYER_CPU | PLAYER_START_SEQUENCE);
spawn_player(D_800DC4F0, 5, D_80165210[5], D_80165230[5], sp5A, 32768.0f, 5, PLAYER_EXISTS | PLAYER_CPU | PLAYER_START_SEQUENCE);
spawn_player(D_800DC4F4, 6, D_80165210[6], D_80165230[6], sp5A, 32768.0f, 6, PLAYER_EXISTS | PLAYER_CPU | PLAYER_START_SEQUENCE);
spawn_player(D_800DC4F8, 7, D_80165210[7], D_80165230[7], sp5A, 32768.0f, 7, PLAYER_EXISTS | PLAYER_CPU | PLAYER_START_SEQUENCE);
D_80164A28 = 0;
break;
}
@@ -1045,7 +1046,7 @@ void func_8003CD78(void) {
}
void func_8003CD98(Player *player, s32 arg1, s8 arg2, s8 arg3) {
if (player->unk_000 & 0x8000) {
if (player->unk_000 & PLAYER_EXISTS) {
if (arg3 == 0) {
func_8002D268(player, arg1, arg3, arg2);
}
+2 -1
View File
@@ -1,5 +1,6 @@
#include <ultra64.h>
#include <macros.h>
#include <defines.h>
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
@@ -5328,7 +5329,7 @@ void func_8004F168(s32 arg0, s32 arg1, s32 arg2) {
temp_v1 = &D_800DC4DC[arg1];
temp_t0 = arg0 * 2;
if ((temp_v1->unk_000 & 0x8000) != 0) {
if ((temp_v1->unk_000 & PLAYER_EXISTS) != 0) {
temp_f0 = D_8018D2A0;
temp_f12 = temp_v1->posZ * temp_f0;
temp_a0 = ((*(&D_8018D2C0 + temp_t0) + D_8018D2F0) - (D_8018D2B0 / 2)) + D_8018D2E0 + (temp_v1->posX * temp_f0);
+2 -1
View File
@@ -3,6 +3,7 @@
#include "types.h"
#include "common_structs.h"
#include "functions.h"
#include <defines.h>
// external funcs
extern s32 func_80031F48(Player *player, float arg1);
@@ -269,7 +270,7 @@ void func_8008C528(Player *player, s8 arg1) {
player->unk_0C0 = 0;
player->unk_236 = 2;
player->unk_042 = 0;
if (((player->unk_000 & 0x4000) == 0x4000) && ((player->unk_000 & 0x100) != 0x100)) {
if (((player->unk_000 & PLAYER_HUMAN) == PLAYER_HUMAN) && ((player->unk_000 & PLAYER_INVISIBLE_OR_BOMB) != PLAYER_INVISIBLE_OR_BOMB)) {
func_800C90F4( (u8) arg1, (temp_v1 * 0x10) + 0x29008005);
func_800C9060( (u8) arg1, 0x19009005);
} else {
+30 -28
View File
@@ -3,6 +3,7 @@
#include <types.h>
#include <common_structs.h>
#include <config.h>
#include <defines.h>
extern Player *D_800DC4E0;
extern Player *D_800DC4E4;
@@ -178,15 +179,15 @@ void func_8028E0F0(void) {
for(i = 0; i < 4; i++) {
ply = (Player *)&gPlayers[i];
if (!(ply->unk_000 & 0x8000)) {
if (!(ply->unk_000 & PLAYER_EXISTS)) {
continue;
}
if (ply->unk_000 & 0x800) {
if (ply->unk_000 & PLAYER_CINEMATIC_MODE) {
continue;
}
if (D_8018D8C0[i] < 0) {
ply->unk_000 |= 0x800;
ply->unk_000 |= PLAYER_CINEMATIC_MODE;
unk_arr[phi_s2] = (s16) (ply - D_800DC4DC);
phi_s2++;
func_800CA118((u8) i);
@@ -215,7 +216,7 @@ void func_8028E298(void) {
for (i = 0; i < 8; i++) {
if ((gPlayers[i].unk_000 & 0x800)) {
if ((gPlayers[i].unk_000 & PLAYER_CINEMATIC_MODE)) {
continue;
}
temp_a2 = D_801645B0[i];
@@ -575,12 +576,13 @@ void func_8028EDA8(void) {
for (i = 0; i < 8; i++) {
if ((gPlayers[i].unk_000 & 0x8000) == 0) {
if ((gPlayers[i].unk_000 & PLAYER_EXISTS) == 0) {
continue;
}
if (gPlayers[i].unk_000 & 0x2000) {
gPlayers[i].unk_000 ^= 0x2000;
// Sets player to human.
if (gPlayers[i].unk_000 & PLAYER_START_SEQUENCE) {
gPlayers[i].unk_000 ^= PLAYER_START_SEQUENCE;
}
}
@@ -595,7 +597,7 @@ f32 func_8028EE8C(s32 arg0) {
}
void func_8028EEF0(s32 i) {
gPlayers[i].unk_000 |= 0x800;
gPlayers[i].unk_000 |= PLAYER_CINEMATIC_MODE;
}
void func_8028EF28(void) {
@@ -607,7 +609,7 @@ void func_8028EF28(void) {
{
ply = &gPlayers[i];
if ((gPlayers[i].unk_000 & 0x8000) == 0) {
if ((gPlayers[i].unk_000 & PLAYER_EXISTS) == 0) {
continue;
}
@@ -616,27 +618,27 @@ void func_8028EF28(void) {
} else if (lapCount[i] > gPlayers[i].unk_008) {
gPlayers[i].unk_008++;
if ((gPlayers[i].unk_000 & 0x4000) != 0) {
if ((gPlayers[i].unk_000 & PLAYER_HUMAN) != 0) {
if (gPlayers[i].unk_008 == 3) {
func_8028EEF0(i);
currentPosition = gPlayers[i].unk_004;
gPlayers[i].unk_000 |= 0x1000;
gPlayers[i].unk_000 |= PLAYER_CPU;
if (currentPosition < 4) {
D_80150120 = 1;
}
func_800CA118((u8)i);
if ((D_802BA032 & 0x8000) == 0) {
D_802BA032 |= 0x8000;
if ((D_802BA032 & PLAYER_EXISTS) == 0) {
D_802BA032 |= PLAYER_EXISTS;
}
if (gModeSelection == 0 && gPlayerCountSelection1 == 2 && D_802BA048 == 0) {
D_802BA048 = 1;
}
if ((gPlayers[i].unk_000 & 0x100) == 0) {
if ((gPlayers[i].unk_000 & PLAYER_INVISIBLE_OR_BOMB) == 0) {
D_800DC510 = 4;
}
if (gModeSelection == 1) {
@@ -660,7 +662,7 @@ void func_8028EF28(void) {
D_800DC510 = 5;
i = D_8015F8F2[0];
gPlayers[i].unk_00C |= 0x200000;
gPlayers[i].unk_000 |= 0x1000;
gPlayers[i].unk_000 |= PLAYER_CPU;
func_800CA118((u8)i);
break;
case 3:
@@ -678,7 +680,7 @@ void func_8028EF28(void) {
*(D_8015F8BC + i * 3 + 2) = 99;
}
gPlayers[i].unk_00C |= 0x200000;
gPlayers[i].unk_000 |= 0x1000;
gPlayers[i].unk_000 |= PLAYER_CPU;
func_800CA118((u8)i);
}
break;
@@ -693,7 +695,7 @@ void func_8028EF28(void) {
D_800DC510 = 5;
i = D_8015F8F2[2];
gPlayers[i].unk_00C |= 0x200000;
gPlayers[i].unk_000 |= 0x1000;
gPlayers[i].unk_000 |= PLAYER_CPU;
func_800CA118((u8)i);
}
break;
@@ -735,9 +737,9 @@ void func_8028F3F0(void) {
s16 temp_a0_2;
for (i = 0; i < 8; i++) {
if (((gPlayers[i].unk_000 & 0x8000) != 0) &&
((gPlayers[i].unk_000 & 0x800) == 0) &&
((gPlayers[i].unk_000 & 0x100) == 0)) {
if (((gPlayers[i].unk_000 & PLAYER_EXISTS) != 0) &&
((gPlayers[i].unk_000 & PLAYER_CINEMATIC_MODE) == 0) &&
((gPlayers[i].unk_000 & PLAYER_INVISIBLE_OR_BOMB) == 0)) {
temp_a0_2 = D_801643B8[i];
gPlayers[i].unk_004 = temp_a0_2;
D_8015F8F0[temp_a0_2] = i;
@@ -939,7 +941,7 @@ void func_8028F970(void) {
phi_s2 = 0;
loop_2:
temp_v0 = phi_s3->unk_000;
if (((temp_v0 & 0x4000) != 0) && ((temp_v0 & 0x1000) == 0)) {
if (((temp_v0 & PLAYER_HUMAN) != 0) && ((temp_v0 & PLAYER_CPU) == 0)) {
temp_s0 = &gControllers[phi_s2];
if (D_800DC52C != 3) {
temp_v0_2 = temp_s0->buttonPressed;
@@ -1083,10 +1085,10 @@ void func_8028FCBC(void) {
func_8005C64C(&D_8018D2AC);
}
for (i = 0; i < 8; i++) {
if ((ply->unk_000 & 0x8000) == 0) {
if ((ply->unk_000 & PLAYER_EXISTS) == 0) {
continue;
}
ply->unk_000 |= 0x2000;
ply->unk_000 |= PLAYER_START_SEQUENCE;
ply++;
}
D_800DC5B8 = 1;
@@ -1157,7 +1159,7 @@ void func_8028FCBC(void) {
break;
case 1:
case 2:
if (((D_800DC4DC->unk_000 & 0x800) != 0) && ((D_800DC4E0->unk_000 & 0x800) != 0)) {
if (((D_800DC4DC->unk_000 & PLAYER_CINEMATIC_MODE) != 0) && ((D_800DC4E0->unk_000 & PLAYER_CINEMATIC_MODE) != 0)) {
if (D_800DC4DC->unk_004 < D_800DC4E0->unk_004) {
D_800DC5E8 = 1;
@@ -1411,18 +1413,18 @@ void func_802909F0(void) {
for (i = 0; i < 7; i++) {
ply = &gPlayers[i];
//temp_v0 = phi_s1->unk0;
if ((ply->unk_000 & 0x8000) &&
if ((ply->unk_000 & PLAYER_EXISTS) &&
(!(ply->unk_0BC & 0x80000000)) &&
(!(ply->unk_000 & 0x100)) &&
(!(ply->unk_000 & PLAYER_INVISIBLE_OR_BOMB)) &&
(!(ply->unk_0BC & 0x4000000))) { // && (temp_v0_2 < 8)) {
//phi_s0 = (temp_v0_2 * 0xDD8) + &gPlayers;
for (k = i + 1; k < 8; k++) {
ply2 = &gPlayers[k];
//temp_v0_3 = phi_s0->unk0;
if ((ply2->unk_000 & 0x8000) &&
if ((ply2->unk_000 & PLAYER_EXISTS) &&
(!(ply2->unk_0BC & 0x80000000)) &&
(!(ply2->unk_000 & 0x100)) &&
(!(ply2->unk_000 & PLAYER_INVISIBLE_OR_BOMB)) &&
(!(ply2->unk_0BC & 0x4000000))) {
func_802903D8(ply, ply2);
+6 -5
View File
@@ -1,5 +1,6 @@
#include <ultra64.h>
#include <macros.h>
#include <defines.h>
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
@@ -493,7 +494,7 @@ void update_obj_banana_bunch(void *arg0) {
gPlayers[temp_t6].unk_00C &= 0xFFFBFFFF;
return;
}
if (((gPlayers[temp_t6].unk_000 & 0x4000) != 0) && (temp_t4 = arg0->unk10, temp_v1 = gControllers[temp_t4].buttonPressed, ((temp_v1 & 0x2000) != 0))) {
if (((gPlayers[temp_t6].unk_000 & PLAYER_HUMAN) != 0) && (temp_t4 = arg0->unk10, temp_v1 = gControllers[temp_t4].buttonPressed, ((temp_v1 & 0x2000) != 0))) {
gControllers[temp_t4].buttonPressed = temp_v1 & 0xDFFF;
sp2C = &gPlayers[temp_t6];
sp28 = &gControllers[temp_t4];
@@ -1154,7 +1155,7 @@ void update_obj_banana(void *arg0) {
sp88 = &gPlayers[temp_t6];
func_802ADDC8(temp_f12, phi_f14, arg0 + 0x30, arg0->unkC + 1.0f, arg0->unk18, arg0->unk1C, arg0->unk20);
func_802B4E30(arg0);
if ((gPlayers[temp_t6].unk_000 & 0x4000) != 0) {
if ((gPlayers[temp_t6].unk_000 & PLAYER_HUMAN) != 0) {
if (D_800DC51C != 0) {
phi_v1 = D_800DC4BC;
} else {
@@ -1413,7 +1414,7 @@ block_8:
phi_v0 = &D_8015F9B8 + (arg0->unk18 * 0x70);
goto block_8;
}
if ((player->unk_000 & 0x4000) != 0) {
if ((player->unk_000 & PLAYER_HUMAN) != 0) {
func_800C9060(((player - D_800DC4DC) / 3544) & 0xFF, 0x19008012, &D_800DC4DC, 0xDD8);
}
}
@@ -1783,7 +1784,7 @@ void update_obj_green_shell(void *arg0) {
} else {
arg0->unk1C = temp_f14;
}
if (((temp_s1->unk_000 & 0x4000) != 0) && (temp_t9 = arg0->unk14, temp_v1 = gControllers[temp_t9].buttonDepressed, ((temp_v1 & 0x2000) != 0))) {
if (((temp_s1->unk_000 & PLAYER_HUMAN) != 0) && (temp_t9 = arg0->unk14, temp_v1 = gControllers[temp_t9].buttonDepressed, ((temp_v1 & 0x2000) != 0))) {
gControllers[temp_t9].buttonDepressed = temp_v1 & 0xDFFF;
if (gControllers[temp_t9].rawStickY < -0x2D) {
temp_f0_3 = temp_s1->unk_094;
@@ -2284,7 +2285,7 @@ void update_obj_red_blue_shell(void *arg0) {
} else {
arg0->unk1C = temp_f14;
}
if ((temp_s1->unk_000 & 0x4000) != 0) {
if ((temp_s1->unk_000 & PLAYER_HUMAN) != 0) {
if (D_800DC51C != 0) {
goto block_16;
}
+7 -6
View File
@@ -2,6 +2,7 @@
#include <macros.h>
#include <types.h>
#include <common_structs.h>
#include <defines.h>
extern s32 mio0encode(s32 input, s32, s32);
extern s32 func_80040174(void *, s32, s32);
@@ -245,7 +246,7 @@ s32 func_8000546C(void) {
s16 phi_v0 = 0;
if (D_80162DB0 >= 0x1000) {
D_800DC4DC->unk_000 = 0x3800;
D_800DC4DC->unk_000 = PLAYER_CINEMATIC_MODE | PLAYER_START_SEQUENCE | PLAYER_CPU;
return;
}
@@ -474,8 +475,8 @@ GLOBAL_ASM("asm/non_matchings/staff_ghosts/func_8000599C.s")
// sets player to AI? (unconfirmed)
void func_80005AE8(Player *ply) {
if (((ply->unk_000 & 0x100) != 0) && (ply != D_800DC4DC)) {
ply->unk_000 = 0x3800U;
if (((ply->unk_000 & PLAYER_INVISIBLE_OR_BOMB) != 0) && (ply != D_800DC4DC)) {
ply->unk_000 = PLAYER_CINEMATIC_MODE | PLAYER_START_SEQUENCE | PLAYER_CPU;
}
}
@@ -538,7 +539,7 @@ void func_80005B18(void) {
D_80162D84 = D_80162D86;
D_80162DDC = 1;
}
if (( D_800DC4DC->unk_000 & 0x800) == 0x800) {
if (( D_800DC4DC->unk_000 & PLAYER_CINEMATIC_MODE) == PLAYER_CINEMATIC_MODE) {
func_80005AE8(D_800DC4E0); // (u16) &D_80162DDC, 3, phi_a3);
func_80005AE8(D_800DC4E4);
return;
@@ -554,7 +555,7 @@ void func_80005B18(void) {
if ((D_80162DD6 == 0) && (3 != lapCount[8])) {
func_8000561C();
}
if (( D_800DC4DC->unk_000 & 0x800) == 0) {
if (( D_800DC4DC->unk_000 & PLAYER_CINEMATIC_MODE) == 0) {
func_8000599C();
}
}
@@ -573,7 +574,7 @@ void func_80005E6C(void) {
if ((D_80162DD6 == 0) && (D_80164398 != 3)) {
func_8000561C(); //2
}
if ((D_800DC4DC->unk_000 & 0x800) != 0x800) {
if ((D_800DC4DC->unk_000 & PLAYER_CINEMATIC_MODE) != PLAYER_CINEMATIC_MODE) {
func_8000546C(); //1
return;
}