diff --git a/include/defines.h b/include/defines.h new file mode 100644 index 000000000..69e561f1e --- /dev/null +++ b/include/defines.h @@ -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 diff --git a/src/code_80005FD0.c b/src/code_80005FD0.c index 18d60090a..3e2f9e3b1 100644 --- a/src/code_80005FD0.c +++ b/src/code_80005FD0.c @@ -1,5 +1,6 @@ #include #include +#include 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))) { diff --git a/src/code_8001C4D0.c b/src/code_8001C4D0.c index c5317521e..611ee09e5 100644 --- a/src/code_8001C4D0.c +++ b/src/code_8001C4D0.c @@ -1,6 +1,7 @@ #include #include #include +#include //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; diff --git a/src/code_8001F980.c b/src/code_8001F980.c index dad1d6017..f5f08a7d2 100644 --- a/src/code_8001F980.c +++ b/src/code_8001F980.c @@ -1,5 +1,6 @@ #include #include +#include #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); diff --git a/src/code_80027D00.c b/src/code_80027D00.c index 0c4c74190..6799f8b98 100644 --- a/src/code_80027D00.c +++ b/src/code_80027D00.c @@ -1,6 +1,7 @@ #include #include #include +#include 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)) { diff --git a/src/code_800393C0.c b/src/code_800393C0.c index 3fc3d878c..708815999 100644 --- a/src/code_800393C0.c +++ b/src/code_800393C0.c @@ -1,5 +1,6 @@ #include "global.h" +#include 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); } diff --git a/src/code_800431B0.c b/src/code_800431B0.c index 1e0fecb78..6f90c91d8 100644 --- a/src/code_800431B0.c +++ b/src/code_800431B0.c @@ -1,5 +1,6 @@ #include #include +#include #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); diff --git a/src/code_8008C1D0.c b/src/code_8008C1D0.c index 8703c811b..4983af4aa 100644 --- a/src/code_8008C1D0.c +++ b/src/code_8008C1D0.c @@ -3,6 +3,7 @@ #include "types.h" #include "common_structs.h" #include "functions.h" +#include // 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 { diff --git a/src/code_8028DF00.c b/src/code_8028DF00.c index d3b0c1d5e..39ad3a414 100644 --- a/src/code_8028DF00.c +++ b/src/code_8028DF00.c @@ -3,6 +3,7 @@ #include #include #include +#include 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); diff --git a/src/code_802B0210.c b/src/code_802B0210.c index c01fa8fa4..4db0ca5cf 100644 --- a/src/code_802B0210.c +++ b/src/code_802B0210.c @@ -1,5 +1,6 @@ #include #include +#include #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; } diff --git a/src/staff_ghosts.c b/src/staff_ghosts.c index 3f438b058..36dbf4005 100644 --- a/src/staff_ghosts.c +++ b/src/staff_ghosts.c @@ -2,6 +2,7 @@ #include #include #include +#include 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; }