some rename in player controller and spawn players (#524)

* some rename in player controller and spawn players
This commit is contained in:
coco875
2024-01-01 04:36:11 +01:00
committed by GitHub
parent 98474c5b94
commit 21a639a480
8 changed files with 591 additions and 587 deletions
+16 -16
View File
@@ -303,10 +303,10 @@ void func_8008C73C(Player *player, s8 arg1) {
D_80165190[2][arg1] = 1;
D_80165190[3][arg1] = 1;
D_80165280[arg1] = player->currentSpeed;
D_80165480[arg1] = 0;
gTimerBoostTripleACombo[arg1] = 0;
gIsPlayerTripleAButtonCombo[arg1] = FALSE;
D_80165440[arg1] = 0;
D_80165420[arg1] = 0;
gCountASwitch[arg1] = 0;
gFrameSinceLastACombo[arg1] = 0;
D_8018D920[arg1] = 0;
if (((player->type & PLAYER_HUMAN) == PLAYER_HUMAN) && ((player->type & PLAYER_INVISIBLE_OR_BOMB) != PLAYER_INVISIBLE_OR_BOMB)) {
@@ -388,7 +388,7 @@ void func_8008C9EC(Player *player, s8 arg1) {
}
}
if ((gIsPlayerTripleAButtonCombo[arg1] == TRUE) && ((player->type & PLAYER_HUMAN) == PLAYER_HUMAN)) {
D_80165480[arg1] = 0x00000078;
gTimerBoostTripleACombo[arg1] = 0x00000078;
if (player->currentSpeed <= 90.0f) {
player->currentSpeed = 90.0f;
}
@@ -1047,10 +1047,10 @@ void func_8008E6C0(Player *player, s8 arg1)
player->statusEffects &= ~0x00480000;
player->unk_0B6 |= 0x40;
D_80165480[arg1] = 0;
gTimerBoostTripleACombo[arg1] = 0;
gIsPlayerTripleAButtonCombo[arg1] = FALSE;
D_80165440[arg1] = 0;
D_80165420[arg1] = 0;
gCountASwitch[arg1] = 0;
gFrameSinceLastACombo[arg1] = 0;
}
void func_8008E884(Player* player, s8 arg1) {
@@ -1147,10 +1147,10 @@ void func_8008EAE0(Player* player, s8 arg1) {
player->unk_0B6 |= 0x40;
player->statusEffects &= ~0x01000002;
D_80165480[arg1] = 0;
gTimerBoostTripleACombo[arg1] = 0;
gIsPlayerTripleAButtonCombo[arg1] = FALSE;
D_80165440[arg1] = 0;
D_80165420[arg1] = 0;
gCountASwitch[arg1] = 0;
gFrameSinceLastACombo[arg1] = 0;
}
void func_8008EC34(Player* player, s8 arg1) {
@@ -1637,20 +1637,20 @@ void func_8008FF08(Player *player, s8 playerId) {
break;
case COURSE_YOSHI_VALLEY:
case COURSE_RAINBOW_ROAD:
player->nearestWaypointId = D_80165320[playerId];
player->nearestWaypointId = gCopyNearestWaypointByPlayerId[playerId];
break;
case COURSE_FRAPPE_SNOWLAND:
waypoint = gNearestWaypointByPlayerId[playerId];
#ifdef VERSION_EU
if (((waypoint >= 0xF0) && (waypoint < 0x11E)) ||
((D_80165320[playerId] >= 0xF0) && (D_80165320[playerId] < 0x11E)))
((gCopyNearestWaypointByPlayerId[playerId] >= 0xF0) && (gCopyNearestWaypointByPlayerId[playerId] < 0x11E)))
#else
if ((waypoint >= 0xF0) && (waypoint < 0x105))
#endif
{
player->nearestWaypointId = 0xF0U;
} else {
player->nearestWaypointId = D_80165320[playerId];
player->nearestWaypointId = gCopyNearestWaypointByPlayerId[playerId];
if (player->nearestWaypointId < 0) {
player->nearestWaypointId = gWaypointCountByPathIndex[0] + player->nearestWaypointId;
}
@@ -1661,7 +1661,7 @@ void func_8008FF08(Player *player, s8 playerId) {
if ((waypoint >= 0x258) && (waypoint < 0x2A4)) {
player->nearestWaypointId = 0x258U;
} else {
player->nearestWaypointId = D_80165320[playerId];
player->nearestWaypointId = gCopyNearestWaypointByPlayerId[playerId];
if (player->nearestWaypointId < 0) {
player->nearestWaypointId = gWaypointCountByPathIndex[0] + player->nearestWaypointId;
}
@@ -1716,11 +1716,11 @@ void func_80090178(Player *player, s8 playerId, Vec3f arg2, Vec3f arg3) {
switch (gCurrentCourseId) {
case COURSE_YOSHI_VALLEY:
test = player->nearestWaypointId;
temp_v1 = &D_80164550[D_80165310[playerId]][test];
temp_v1 = &D_80164550[gCopyPathIndexByPlayerId[playerId]][test];
arg2[0] = temp_v1->posX;
arg2[1] = temp_v1->posY;
arg2[2] = temp_v1->posZ;
temp_v1 = &D_80164550[D_80165310[playerId]][(player->nearestWaypointId + 5) % (gWaypointCountByPathIndex[D_80165310[playerId]] + 1)];
temp_v1 = &D_80164550[gCopyPathIndexByPlayerId[playerId]][(player->nearestWaypointId + 5) % (gWaypointCountByPathIndex[gCopyPathIndexByPlayerId[playerId]] + 1)];
arg3[0] = temp_v1->posX;
arg3[1] = temp_v1->posY;
arg3[2] = temp_v1->posZ;
+1 -1
View File
@@ -135,7 +135,7 @@ extern f32 D_800E37D0[];
extern f32 D_800E37F0[];
extern s16 D_80165190[4][8];
extern f32 D_80165280[];
extern s32 D_80165420[];
extern s32 gFrameSinceLastACombo[];
extern s8 D_801658BC;
extern s32 D_8018D900[];
extern s16 D_8018D920[];
+323 -324
View File
@@ -22,310 +22,310 @@
extern s16 D_801633F8;
extern s32 D_8018D168;
s16 D_800E3810[] = {
1, 2, 3, 4, 5, 6, 7, 0
s16 gCPUforMario[] = {
LUIGI, YOSHI, TOAD, DK, WARIO, PEACH, BOWSER, 0
};
s16 D_800E3820[] = {
0, 2, 3, 4, 5, 6, 7, 0
s16 gCPUforLuigi[] = {
MARIO, YOSHI, TOAD, DK, WARIO, PEACH, BOWSER, 0
};
s16 D_800E3830[] = {
0, 1, 3, 4, 5, 6, 7, 0
s16 gCPUforYoshi[] = {
MARIO, LUIGI, TOAD, DK, WARIO, PEACH, BOWSER, 0
};
s16 D_800E3840[] = {
0, 1, 2, 4, 5, 6, 7, 0
s16 gCPUforToad[] = {
MARIO, LUIGI, YOSHI, DK, WARIO, PEACH, BOWSER, 0
};
s16 D_800E3850[] = {
0, 1, 2, 3, 5, 6, 7, 0
s16 gCPUforDk[] = {
MARIO, LUIGI, YOSHI, TOAD, WARIO, PEACH, BOWSER, 0
};
s16 D_800E3860[] = {
0, 1, 2, 3, 4, 6, 7, 0
s16 gCPUforWario[] = {
MARIO, LUIGI, YOSHI, TOAD, DK, PEACH, BOWSER, 0
};
s16 D_800E3870[] = {
0, 1, 2, 3, 4, 5, 7, 0
s16 gCPUforPeach[] = {
MARIO, LUIGI, YOSHI, TOAD, DK, WARIO, BOWSER, 0
};
s16 D_800E3880[] = {
0, 1, 2, 3, 4, 5, 6, 0
s16 gCPUforBowser[] = {
MARIO, LUIGI, YOSHI, TOAD, DK, WARIO, PEACH, 0
};
s16 *D_800E3890[] = {
D_800E3810, D_800E3820, D_800E3830, D_800E3840,
D_800E3850, D_800E3860, D_800E3870, D_800E3880
s16 *gCPUforPlayer[] = {
gCPUforMario, gCPUforLuigi, gCPUforYoshi, gCPUforToad,
gCPUforDk, gCPUforWario, gCPUforPeach, gCPUforBowser
};
s16 D_800E38B0[] = {
2, 3, 4, 5, 6, 7
s16 gCPUforMarioAndLuigi[] = {
YOSHI, TOAD, DK, WARIO, PEACH, BOWSER
};
s16 D_800E38BC[] = {
1, 3, 4, 5, 6, 7
s16 gCPUforMarioAndYoshi[] = {
LUIGI, TOAD, DK, WARIO, PEACH, BOWSER
};
s16 D_800E38C8[] = {
1, 2, 4, 5, 6, 7
s16 gCPUforMarioAndToad[] = {
LUIGI, YOSHI, DK, WARIO, PEACH, BOWSER
};
s16 D_800E38D4[] = {
1, 2, 3, 5, 6, 7
s16 gCPUforMarioAndDk[] = {
LUIGI, YOSHI, TOAD, WARIO, PEACH, BOWSER
};
s16 D_800E38E0[] = {
1, 2, 3, 4, 6, 7
s16 gCPUforMarioAndWario[] = {
LUIGI, YOSHI, TOAD, DK, PEACH, BOWSER
};
s16 D_800E38EC[] = {
1, 2, 3, 4, 5, 7
s16 gCPUforMarioAndPeach[] = {
LUIGI, YOSHI, TOAD, DK, WARIO, BOWSER
};
s16 D_800E38F8[] = {
1, 2, 3, 4, 5, 6
s16 gCPUforMarioAndBowser[] = {
LUIGI, YOSHI, TOAD, DK, WARIO, PEACH
};
s16 D_800E3904[] = {
2, 3, 4, 5, 6, 7
s16 gCPUforLuigiAndMario[] = {
YOSHI, TOAD, DK, WARIO, PEACH, BOWSER
};
s16 D_800E3910[] = {
0, 3, 4, 5, 6, 7
s16 gCPUforLuigiAndYoshi[] = {
MARIO, TOAD, DK, WARIO, PEACH, BOWSER
};
s16 D_800E391C[] = {
0, 2, 4, 5, 6, 7
s16 gCPUforLuigiAndToad[] = {
MARIO, YOSHI, DK, WARIO, PEACH, BOWSER
};
s16 D_800E3928[] = {
0, 2, 3, 5, 6, 7
s16 gCPUforLuigiAndDk[] = {
MARIO, YOSHI, TOAD, WARIO, PEACH, BOWSER
};
s16 D_800E3934[] = {
0, 2, 3, 4, 6, 7
s16 gCPUforLuigiAndWario[] = {
MARIO, YOSHI, TOAD, DK, PEACH, BOWSER
};
s16 D_800E3940[] = {
0, 2, 3, 4, 5, 7
s16 gCPUforLuigiAndPeach[] = {
MARIO, YOSHI, TOAD, DK, WARIO, BOWSER
};
s16 D_800E394C[] = {
0, 2, 3, 4, 5, 6
s16 gCPUforLuigiAndBowser[] = {
MARIO, YOSHI, TOAD, DK, WARIO, PEACH
};
s16 D_800E3958[] = {
1, 3, 4, 5, 6, 7
s16 gCPUforYoshiAndMario[] = {
LUIGI, TOAD, DK, WARIO, PEACH, BOWSER
};
s16 D_800E3964[] = {
0, 3, 4, 5, 6, 7
s16 gCPUforYoshiAndLuigi[] = {
MARIO, TOAD, DK, WARIO, PEACH, BOWSER
};
s16 D_800E3970[] = {
0, 1, 4, 5, 6, 7
s16 gCPUforYoshiAndToad[] = {
MARIO, LUIGI, DK, WARIO, PEACH, BOWSER
};
s16 D_800E397C[] = {
0, 1, 3, 5, 6, 7
s16 gCPUforYoshiAndDk[] = {
MARIO, LUIGI, TOAD, WARIO, PEACH, BOWSER
};
s16 D_800E3988[] = {
0, 1, 3, 4, 6, 7
s16 gCPUforYoshiAndWario[] = {
MARIO, LUIGI, TOAD, DK, PEACH, BOWSER
};
s16 D_800E3994[] = {
0, 1, 3, 4, 5, 7
s16 gCPUforYoshiAndPeach[] = {
MARIO, LUIGI, TOAD, DK, WARIO, BOWSER
};
s16 D_800E39A0[] = {
0, 1, 3, 4, 5, 6
s16 gCPUforYoshiAndBowser[] = {
MARIO, LUIGI, TOAD, DK, WARIO, PEACH
};
s16 D_800E39AC[] = {
1, 2, 4, 5, 6, 7
s16 gCPUforToadAndMario[] = {
LUIGI, YOSHI, DK, WARIO, PEACH, BOWSER
};
s16 D_800E39B8[] = {
0, 2, 4, 5, 6, 7
s16 gCPUforToadAndLuigi[] = {
MARIO, YOSHI, DK, WARIO, PEACH, BOWSER
};
s16 D_800E39C4[] = {
0, 1, 4, 5, 6, 7
s16 gCPUforToadAndYoshi[] = {
MARIO, LUIGI, DK, WARIO, PEACH, BOWSER
};
s16 D_800E39D0[] = {
0, 1, 2, 5, 6, 7
s16 gCPUforToadAndDk[] = {
MARIO, LUIGI, YOSHI, WARIO, PEACH, BOWSER
};
s16 D_800E39DC[] = {
0, 1, 2, 4, 6, 7
s16 gCPUforToadAndWario[] = {
MARIO, LUIGI, YOSHI, DK, PEACH, BOWSER
};
s16 D_800E39E8[] = {
0, 1, 2, 4, 5, 7
s16 gCPUforToadAndPeach[] = {
MARIO, LUIGI, YOSHI, DK, WARIO, BOWSER
};
s16 D_800E39F4[] = {
0, 1, 2, 4, 5, 6
s16 gCPUforToadAndBowser[] = {
MARIO, LUIGI, YOSHI, DK, WARIO, PEACH
};
s16 D_800E3A00[] = {
1, 2, 3, 5, 6, 7
s16 gCPUforDkAndMario[] = {
LUIGI, YOSHI, TOAD, WARIO, PEACH, BOWSER
};
s16 D_800E3A0C[] = {
0, 2, 3, 5, 6, 7
s16 gCPUforDkAndLuigi[] = {
MARIO, YOSHI, TOAD, WARIO, PEACH, BOWSER
};
s16 D_800E3A18[] = {
0, 1, 3, 5, 6, 7
s16 gCPUforDkAndToad[] = {
MARIO, LUIGI, TOAD, WARIO, PEACH, BOWSER
};
s16 D_800E3A24[] = {
0, 1, 2, 5, 6, 7
s16 gCPUforDkAndYoshi[] = {
MARIO, LUIGI, YOSHI, WARIO, PEACH, BOWSER
};
s16 D_800E3A30[] = {
0, 1, 2, 3, 6, 7
s16 gCPUforDkAndWario[] = {
MARIO, LUIGI, YOSHI, TOAD, PEACH, BOWSER
};
s16 D_800E3A3C[] = {
0, 1, 2, 3, 5, 7
s16 gCPUforDkAndPeach[] = {
MARIO, LUIGI, YOSHI, TOAD, WARIO, BOWSER
};
s16 D_800E3A48[] = {
0, 1, 2, 3, 5, 6
s16 gCPUforDkAndBowser[] = {
MARIO, LUIGI, YOSHI, TOAD, WARIO, PEACH
};
s16 D_800E3A54[] = {
1, 2, 3, 4, 6, 7
s16 gCPUforWarioAndMario[] = {
LUIGI, YOSHI, TOAD, DK, PEACH, BOWSER
};
s16 D_800E3A60[] = {
0, 2, 3, 4, 6, 7
s16 gCPUforWarioAndLuigi[] = {
MARIO, YOSHI, TOAD, DK, PEACH, BOWSER
};
s16 D_800E3A6C[] = {
0, 1, 3, 4, 6, 7
s16 gCPUforWarioAndYoshi[] = {
MARIO, LUIGI, TOAD, DK, PEACH, BOWSER
};
s16 D_800E3A78[] = {
0, 1, 2, 3, 6, 7
s16 gCPUforWarioAndDk[] = {
MARIO, LUIGI, YOSHI, TOAD, PEACH, BOWSER
};
s16 D_800E3A84[] = {
0, 1, 2, 4, 6, 7
s16 gCPUforWarioAndToad[] = {
MARIO, LUIGI, YOSHI, DK, PEACH, BOWSER
};
s16 D_800E3A90[] = {
0, 1, 2, 3, 4, 7
s16 gCPUforWarioAndPeach[] = {
MARIO, LUIGI, YOSHI, TOAD, DK, BOWSER
};
s16 D_800E3A9C[] = {
0, 1, 2, 3, 4, 6
s16 gCPUforWarioAndBowser[] = {
MARIO, LUIGI, YOSHI, TOAD, DK, PEACH
};
s16 D_800E3AA8[] = {
1, 2, 3, 4, 5, 7
s16 gCPUforPeachAndMario[] = {
LUIGI, YOSHI, TOAD, DK, WARIO, BOWSER
};
s16 D_800E3AB4[] = {
0, 2, 3, 4, 5, 7
s16 gCPUforPeachAndLuigi[] = {
MARIO, YOSHI, TOAD, DK, WARIO, BOWSER
};
s16 D_800E3AC0[] = {
0, 1, 3, 4, 5, 7
s16 gCPUforPeachAndYoshi[] = {
MARIO, LUIGI, TOAD, DK, WARIO, BOWSER
};
s16 D_800E3ACC[] = {
0, 1, 2, 3, 5, 7
s16 gCPUforPeachAndDk[] = {
MARIO, LUIGI, YOSHI, TOAD, WARIO, BOWSER
};
s16 D_800E3AD8[] = {
0, 1, 2, 3, 4, 7
s16 gCPUforPeachAndWario[] = {
MARIO, LUIGI, YOSHI, TOAD, DK, BOWSER
};
s16 D_800E3AE4[] = {
0, 1, 2, 4, 5, 7
s16 gCPUforPeachAndToad[] = {
MARIO, LUIGI, YOSHI, DK, WARIO, BOWSER
};
s16 D_800E3AF0[] = {
0, 1, 2, 3, 4, 5
s16 gCPUforPeachAndBowser[] = {
MARIO, LUIGI, YOSHI, TOAD, DK, WARIO
};
s16 D_800E3AFC[] = {
1, 2, 3, 4, 5, 6
s16 gCPUforBowserAndMario[] = {
LUIGI, YOSHI, TOAD, DK, WARIO, PEACH
};
s16 D_800E3B08[] = {
0, 2, 3, 4, 5, 6
s16 gCPUforBowserAndLuigi[] = {
MARIO, YOSHI, TOAD, DK, WARIO, PEACH
};
s16 D_800E3B14[] = {
0, 1, 3, 4, 5, 6
s16 gCPUforBowserAndYoshi[] = {
MARIO, LUIGI, TOAD, DK, WARIO, PEACH
};
s16 D_800E3B20[] = {
0, 1, 2, 3, 5, 6
s16 gCPUforBowserAndDk[] = {
MARIO, LUIGI, YOSHI, TOAD, WARIO, PEACH
};
s16 D_800E3B2C[] = {
0, 1, 2, 3, 4, 6
s16 gCPUforBowserAndWario[] = {
MARIO, LUIGI, YOSHI, TOAD, DK, PEACH
};
s16 D_800E3B38[] = {
0, 1, 2, 4, 5, 6
s16 gCPUforBowserAndToad[] = {
MARIO, LUIGI, YOSHI, DK, WARIO, PEACH
};
s16 D_800E3B44[] = {
0, 1, 2, 3, 4, 5
s16 gCPUforBowserAndPeach[] = {
MARIO, LUIGI, YOSHI, TOAD, DK, WARIO
};
s16 *D_800E3B50[] = {
D_800E38B0, D_800E38B0, D_800E38BC, D_800E38C8,
D_800E38D4, D_800E38E0, D_800E38EC, D_800E38F8
s16 *gListCPUforMario[] = {
gCPUforMarioAndLuigi, gCPUforMarioAndLuigi, gCPUforMarioAndYoshi, gCPUforMarioAndToad,
gCPUforMarioAndDk, gCPUforMarioAndWario, gCPUforMarioAndPeach, gCPUforMarioAndBowser
};
s16 *D_800E3B70[] = {
D_800E3904, D_800E3904, D_800E3910, D_800E391C,
D_800E3928, D_800E3934, D_800E3940, D_800E394C
s16 *gListCPUforLuigi[] = {
gCPUforLuigiAndMario, gCPUforLuigiAndMario, gCPUforLuigiAndYoshi, gCPUforLuigiAndToad,
gCPUforLuigiAndDk, gCPUforLuigiAndWario, gCPUforLuigiAndPeach, gCPUforLuigiAndBowser
};
s16 *D_800E3B90[] = {
D_800E3958, D_800E3964, D_800E3964, D_800E3970,
D_800E397C, D_800E3988, D_800E3994, D_800E39A0
s16 *gListCPUforYoshi[] = {
gCPUforYoshiAndMario, gCPUforYoshiAndLuigi, gCPUforYoshiAndLuigi, gCPUforYoshiAndToad,
gCPUforYoshiAndDk, gCPUforYoshiAndWario, gCPUforYoshiAndPeach, gCPUforYoshiAndBowser
};
s16 *D_800E3BB0[] = {
D_800E39AC, D_800E39B8, D_800E39C4, D_800E39C4,
D_800E39D0, D_800E39DC, D_800E39E8, D_800E39F4
s16 *gListCPUforToad[] = {
gCPUforToadAndMario, gCPUforToadAndLuigi, gCPUforToadAndYoshi, gCPUforToadAndYoshi,
gCPUforToadAndDk, gCPUforToadAndWario, gCPUforToadAndPeach, gCPUforToadAndBowser
};
s16 *D_800E3BD0[] = {
D_800E3A00, D_800E3A0C, D_800E3A18, D_800E3A24,
D_800E3A24, D_800E3A30, D_800E3A3C, D_800E3A48
s16 *gListCPUforDk[] = {
gCPUforDkAndMario, gCPUforDkAndLuigi, gCPUforDkAndToad, gCPUforDkAndYoshi,
gCPUforDkAndYoshi, gCPUforDkAndWario, gCPUforDkAndPeach, gCPUforDkAndBowser
};
s16 *D_800E3BF0[] = {
D_800E3A54, D_800E3A60, D_800E3A6C, D_800E3A84,
D_800E3A78, D_800E3A78, D_800E3A90, D_800E3A9C
s16 *gListCPUforWario[] = {
gCPUforWarioAndMario, gCPUforWarioAndLuigi, gCPUforWarioAndYoshi, gCPUforWarioAndToad,
gCPUforWarioAndDk, gCPUforWarioAndDk, gCPUforWarioAndPeach, gCPUforWarioAndBowser
};
s16 *D_800E3C10[] = {
D_800E3AA8, D_800E3AB4, D_800E3AC0, D_800E3AE4,
D_800E3ACC, D_800E3AD8, D_800E3ACC, D_800E3AF0
s16 *gListCPUforPeach[] = {
gCPUforPeachAndMario, gCPUforPeachAndLuigi, gCPUforPeachAndYoshi, gCPUforPeachAndToad,
gCPUforPeachAndDk, gCPUforPeachAndWario, gCPUforPeachAndDk, gCPUforPeachAndBowser
};
s16 *D_800E3C30[] = {
D_800E3AFC, D_800E3B08, D_800E3B14, D_800E3B38,
D_800E3B20, D_800E3B2C, D_800E3B44, D_800E3B44
s16 *gListCPUforBowser[] = {
gCPUforBowserAndMario, gCPUforBowserAndLuigi, gCPUforBowserAndYoshi, gCPUforBowserAndToad,
gCPUforBowserAndDk, gCPUforBowserAndWario, gCPUforBowserAndPeach, gCPUforBowserAndPeach
};
s16 **D_800E3C50[] = {
D_800E3B50, D_800E3B70, D_800E3B90, D_800E3BB0,
D_800E3BD0, D_800E3BF0, D_800E3C10, D_800E3C30
s16 **gCPUforTwoPlayer[] = {
gListCPUforMario, gListCPUforLuigi, gListCPUforYoshi, gListCPUforToad,
gListCPUforDk, gListCPUforWario, gListCPUforPeach, gListCPUforBowser
};
// func_80027D00
@@ -1637,7 +1637,7 @@ void func_8002B830(Player *player, s8 arg1, s8 arg2) {
}
}
void func_8002B8A4(Player *player_one, Player *player_two) {
UNUSED void func_8002B8A4(Player *player_one, Player *player_two) {
s32 var_v1;
/*
@@ -1860,11 +1860,11 @@ void func_8002C17C(Player *player, s8 playerId) {
case COURSE_YOSHI_VALLEY:
if ((player->unk_110.unk3C[2] >= 600.0f) && (D_80165330[playerId] == 0)) {
D_80165330[playerId] = 1;
D_80165320[playerId] = gNearestWaypointByPlayerId[playerId];
D_80165310[playerId] = gPathIndexByPlayerId[playerId];
gCopyNearestWaypointByPlayerId[playerId] = gNearestWaypointByPlayerId[playerId];
gCopyPathIndexByPlayerId[playerId] = gPathIndexByPlayerId[playerId];
} else if (D_80165330[playerId] == 0) {
D_80165320[playerId] = gNearestWaypointByPlayerId[playerId];
D_80165310[playerId] = gPathIndexByPlayerId[playerId];
gCopyNearestWaypointByPlayerId[playerId] = gNearestWaypointByPlayerId[playerId];
gCopyPathIndexByPlayerId[playerId] = gPathIndexByPlayerId[playerId];
} else if (!(player->effects & 8)) {
if (func_802ABDF4(player->unk_110.unk3A) == 0) {
D_80165330[playerId] = 0;
@@ -1874,33 +1874,33 @@ void func_8002C17C(Player *player, s8 playerId) {
case COURSE_FRAPPE_SNOWLAND:
if ((player->unk_0F8 == 0x000B) && (D_80165330[playerId] == 0)) {
D_80165330[playerId] = 1;
D_80165320[playerId] = gNearestWaypointByPlayerId[playerId];
D_80165310[playerId] = gPathIndexByPlayerId[playerId];
gCopyNearestWaypointByPlayerId[playerId] = gNearestWaypointByPlayerId[playerId];
gCopyPathIndexByPlayerId[playerId] = gPathIndexByPlayerId[playerId];
} else if (player->unk_0F8 != 0x000B) {
D_80165330[playerId] = 0;
D_80165320[playerId] = gNearestWaypointByPlayerId[playerId];
D_80165310[playerId] = gPathIndexByPlayerId[playerId];
gCopyNearestWaypointByPlayerId[playerId] = gNearestWaypointByPlayerId[playerId];
gCopyPathIndexByPlayerId[playerId] = gPathIndexByPlayerId[playerId];
}
break;
case COURSE_ROYAL_RACEWAY:
if (((player->effects & 0x100000) != 0) && (D_80165330[playerId] == 0)) {
D_80165330[playerId] = 1;
D_80165320[playerId] = gNearestWaypointByPlayerId[playerId];
D_80165310[playerId] = gPathIndexByPlayerId[playerId];
gCopyNearestWaypointByPlayerId[playerId] = gNearestWaypointByPlayerId[playerId];
gCopyPathIndexByPlayerId[playerId] = gPathIndexByPlayerId[playerId];
} else if (((player->effects & 0x100000) == 0) && !(player->effects & 8)) {
D_80165330[playerId] = 0;
D_80165320[playerId] = gNearestWaypointByPlayerId[playerId];
D_80165310[playerId] = gPathIndexByPlayerId[playerId];
gCopyNearestWaypointByPlayerId[playerId] = gNearestWaypointByPlayerId[playerId];
gCopyPathIndexByPlayerId[playerId] = gPathIndexByPlayerId[playerId];
}
break;
case COURSE_RAINBOW_ROAD:
if ((player->unk_110.unk3C[2] >= 600.0f) && (D_80165330[playerId] == 0)) {
D_80165330[playerId] = 1;
D_80165320[playerId] = gNearestWaypointByPlayerId[playerId];
D_80165310[playerId] = gPathIndexByPlayerId[playerId];
gCopyNearestWaypointByPlayerId[playerId] = gNearestWaypointByPlayerId[playerId];
gCopyPathIndexByPlayerId[playerId] = gPathIndexByPlayerId[playerId];
} else if (D_80165330[playerId] == 0) {
D_80165320[playerId] = gNearestWaypointByPlayerId[playerId];
D_80165310[playerId] = gPathIndexByPlayerId[playerId];
gCopyNearestWaypointByPlayerId[playerId] = gNearestWaypointByPlayerId[playerId];
gCopyPathIndexByPlayerId[playerId] = gPathIndexByPlayerId[playerId];
} else if (!((player->effects & 8) || (player->unk_0CA & 1))) {
D_80165330[playerId] = 0;
}
@@ -3200,68 +3200,7 @@ void func_80030A34(Player *player) {
}
}
// This is likely the function responsible for detecting triple-tap "A" for "fast" acceleration
void func_80030C34(Player *player) {
s32 var_v0;
if (player == gPlayerOne) {
var_v0 = 0;
}
if (player == gPlayerTwo) {
var_v0 = 1;
}
if (player == gPlayerThree) {
var_v0 = 2;
}
if (player == gPlayerFour) {
var_v0 = 3;
}
if (player == gPlayerFive) {
var_v0 = 4;
}
if (player == gPlayerSix) {
var_v0 = 5;
}
if (player == gPlayerSeven) {
var_v0 = 6;
}
if (player == gPlayerEight) {
var_v0 = 7;
}
if (gIsPlayerTripleAButtonCombo[var_v0] == FALSE) {
if (gPlayerIsThrottleActive[var_v0] == 1) {
if ((D_80165420[var_v0] < 2) || (D_80165420[var_v0] >= 9)) {
D_80165440[var_v0] = 0;
}
D_80165420[var_v0] = 0;
D_80165400[var_v0] = 0;
}
gPlayerIsThrottleActive[var_v0] = 0;
D_80165420[var_v0]++;
if (D_80165420[var_v0] >= 9) {
D_80165420[var_v0] = 9;
}
if ((D_80165420[var_v0] >= 2) && (D_80165420[var_v0] < 9)) {
if (D_80165400[var_v0] == 0) {
D_80165440[var_v0] += 1;
}
D_80165400[var_v0] = 1;
}
if (D_80165440[var_v0] == 5) {
gIsPlayerTripleAButtonCombo[var_v0] = TRUE;
D_80165480[var_v0] = 120;
D_80165440[var_v0] = 0;
D_80165420[var_v0] = 0;
}
} else {
D_80165480[var_v0]--;
if (D_80165480[var_v0] <= 0) {
gIsPlayerTripleAButtonCombo[var_v0] = FALSE;
}
}
}
void func_80030E00(Player *player) {
void detect_triple_a_combo_a_released(Player *player) {
s32 playerIndex;
if (player == gPlayerOne) {
@@ -3289,33 +3228,93 @@ void func_80030E00(Player *player) {
playerIndex = 7;
}
if (gIsPlayerTripleAButtonCombo[playerIndex] == FALSE) {
if (gPlayerIsThrottleActive[playerIndex] == 0) {
if ((D_80165420[playerIndex] < 2) || (D_80165420[playerIndex] >= 9)) {
D_80165440[playerIndex] = 0;
if (gPlayerIsThrottleActive[playerIndex] == TRUE) {
if ((gFrameSinceLastACombo[playerIndex] < 2) || (gFrameSinceLastACombo[playerIndex] >= 9)) {
gCountASwitch[playerIndex] = 0;
}
D_80165420[playerIndex] = 0;
gFrameSinceLastACombo[playerIndex] = 0;
D_80165400[playerIndex] = 0;
}
gPlayerIsThrottleActive[playerIndex] = 1;
D_80165420[playerIndex]++;
if (D_80165420[playerIndex] >= 9) {
D_80165420[playerIndex] = 9;
gPlayerIsThrottleActive[playerIndex] = FALSE;
gFrameSinceLastACombo[playerIndex]++;
if (gFrameSinceLastACombo[playerIndex] >= 9) {
gFrameSinceLastACombo[playerIndex] = 9;
}
if ((D_80165420[playerIndex] >= 2) && (D_80165420[playerIndex] < 9)) {
if ((gFrameSinceLastACombo[playerIndex] >= 2) && (gFrameSinceLastACombo[playerIndex] < 9)) {
if (D_80165400[playerIndex] == 0) {
D_80165440[playerIndex] += 1;
gCountASwitch[playerIndex] += 1;
}
D_80165400[playerIndex] = 1;
}
if (D_80165440[playerIndex] == 5) {
if (gCountASwitch[playerIndex] == 5) {
gIsPlayerTripleAButtonCombo[playerIndex] = TRUE;
D_80165480[playerIndex] = 0x00000078;
D_80165440[playerIndex] = 0;
D_80165420[playerIndex] = 0;
gTimerBoostTripleACombo[playerIndex] = 120;
gCountASwitch[playerIndex] = 0;
gFrameSinceLastACombo[playerIndex] = 0;
}
} else {
D_80165480[playerIndex]--;
if (D_80165480[playerIndex] <= 0) {
gTimerBoostTripleACombo[playerIndex]--;
if (gTimerBoostTripleACombo[playerIndex] <= 0) {
gIsPlayerTripleAButtonCombo[playerIndex] = FALSE;
}
}
}
void detect_triple_a_combo_a_pressed(Player *player) {
s32 playerIndex;
if (player == gPlayerOne) {
playerIndex = 0;
}
if (player == gPlayerTwo) {
playerIndex = 1;
}
if (player == gPlayerThree) {
playerIndex = 2;
}
if (player == gPlayerFour) {
playerIndex = 3;
}
if (player == gPlayerFive) {
playerIndex = 4;
}
if (player == gPlayerSix) {
playerIndex = 5;
}
if (player == gPlayerSeven) {
playerIndex = 6;
}
if (player == gPlayerEight) {
playerIndex = 7;
}
if (gIsPlayerTripleAButtonCombo[playerIndex] == FALSE) {
if (gPlayerIsThrottleActive[playerIndex] == FALSE) {
if ((gFrameSinceLastACombo[playerIndex] < 2) || (gFrameSinceLastACombo[playerIndex] >= 9)) {
gCountASwitch[playerIndex] = 0;
}
gFrameSinceLastACombo[playerIndex] = 0;
D_80165400[playerIndex] = 0;
}
gPlayerIsThrottleActive[playerIndex] = TRUE;
gFrameSinceLastACombo[playerIndex]++;
if (gFrameSinceLastACombo[playerIndex] >= 9) {
gFrameSinceLastACombo[playerIndex] = 9;
}
if ((gFrameSinceLastACombo[playerIndex] >= 2) && (gFrameSinceLastACombo[playerIndex] < 9)) {
if (D_80165400[playerIndex] == 0) {
gCountASwitch[playerIndex] += 1;
}
D_80165400[playerIndex] = 1;
}
if (gCountASwitch[playerIndex] == 5) {
gIsPlayerTripleAButtonCombo[playerIndex] = TRUE;
gTimerBoostTripleACombo[playerIndex] = 120;
gCountASwitch[playerIndex] = 0;
gFrameSinceLastACombo[playerIndex] = 0;
}
} else {
gTimerBoostTripleACombo[playerIndex]--;
if (gTimerBoostTripleACombo[playerIndex] <= 0) {
gIsPlayerTripleAButtonCombo[playerIndex] = FALSE;
}
}
@@ -3428,124 +3427,124 @@ void func_80031F48(Player *player, f32 arg1) {
}
}
void func_80032050(Player *player) {
s32 var_v0;
void detect_triple_b_combo_b_released(Player *player) {
s32 playerIndex;
if (player == gPlayerOne) {
var_v0 = 0;
playerIndex = 0;
}
if (player == gPlayerTwo) {
var_v0 = 1;
playerIndex = 1;
}
if (player == gPlayerThree) {
var_v0 = 2;
playerIndex = 2;
}
if (player == gPlayerFour) {
var_v0 = 3;
playerIndex = 3;
}
if (player == gPlayerFive) {
var_v0 = 4;
playerIndex = 4;
}
if (player == gPlayerSix) {
var_v0 = 5;
playerIndex = 5;
}
if (player == gPlayerSeven) {
var_v0 = 6;
playerIndex = 6;
}
if (player == gPlayerEight) {
var_v0 = 7;
playerIndex = 7;
}
if (D_80165520[var_v0] == 0) {
if (D_801654A0[var_v0] == 1) {
if ((D_801654E0[var_v0] < 2) || (D_801654E0[var_v0] >= 9)) {
D_80165500[var_v0] = 0;
if (gIsPlayerTripleBButtonCombo[playerIndex] == FALSE) {
if (gPlayerIsBrakeActive[playerIndex] == TRUE) {
if ((gFrameSinceLastBCombo[playerIndex] < 2) || (gFrameSinceLastBCombo[playerIndex] >= 9)) {
gCountBChangement[playerIndex] = 0;
}
D_801654E0[var_v0] = 0;
D_801654C0[var_v0] = 0;
gFrameSinceLastBCombo[playerIndex] = 0;
D_801654C0[playerIndex] = 0;
}
D_801654A0[var_v0] = 0;
D_801654E0[var_v0]++;
if (D_801654E0[var_v0] >= 9) {
D_801654E0[var_v0] = 9;
gPlayerIsBrakeActive[playerIndex] = FALSE;
gFrameSinceLastBCombo[playerIndex]++;
if (gFrameSinceLastBCombo[playerIndex] >= 9) {
gFrameSinceLastBCombo[playerIndex] = 9;
}
if ((D_801654E0[var_v0] >= 2) && (D_801654E0[var_v0] < 9)) {
if (D_801654C0[var_v0] == 0) {
D_80165500[var_v0]++;
if ((gFrameSinceLastBCombo[playerIndex] >= 2) && (gFrameSinceLastBCombo[playerIndex] < 9)) {
if (D_801654C0[playerIndex] == 0) {
gCountBChangement[playerIndex]++;
}
D_801654C0[var_v0] = 1;
D_801654C0[playerIndex] = 1;
}
if (D_80165500[var_v0] == 5) {
D_80165520[var_v0] = 1;
D_80165540[var_v0] = 0x00000078;
D_80165500[var_v0] = 0;
D_801654E0[var_v0] = 0;
if (gCountBChangement[playerIndex] == 5) {
gIsPlayerTripleBButtonCombo[playerIndex] = TRUE;
gTimerBoostTripleBCombo[playerIndex] = 120;
gCountBChangement[playerIndex] = 0;
gFrameSinceLastBCombo[playerIndex] = 0;
}
} else {
D_80165540[var_v0]--;
if (D_80165540[var_v0] <= 0) {
D_80165520[var_v0] = 0;
gTimerBoostTripleBCombo[playerIndex]--;
if (gTimerBoostTripleBCombo[playerIndex] <= 0) {
gIsPlayerTripleBButtonCombo[playerIndex] = FALSE;
}
}
}
void func_8003221C(Player *player) {
s32 var_v0;
void detect_triple_b_combo_b_pressed(Player *player) {
s32 playerIndex;
if (player == gPlayerOne) {
var_v0 = 0;
playerIndex = 0;
}
if (player == gPlayerTwo) {
var_v0 = 1;
playerIndex = 1;
}
if (player == gPlayerThree) {
var_v0 = 2;
playerIndex = 2;
}
if (player == gPlayerFour) {
var_v0 = 3;
playerIndex = 3;
}
if (player == gPlayerFive) {
var_v0 = 4;
playerIndex = 4;
}
if (player == gPlayerSix) {
var_v0 = 5;
playerIndex = 5;
}
if (player == gPlayerSeven) {
var_v0 = 6;
playerIndex = 6;
}
if (player == gPlayerEight) {
var_v0 = 7;
playerIndex = 7;
}
if (D_80165520[var_v0] == 0) {
if (D_801654A0[var_v0] == 0) {
if ((D_801654E0[var_v0] < 2) || (D_801654E0[var_v0] >= 9)) {
D_80165500[var_v0] = 0;
if (gIsPlayerTripleBButtonCombo[playerIndex] == FALSE) {
if (gPlayerIsBrakeActive[playerIndex] == FALSE) {
if ((gFrameSinceLastBCombo[playerIndex] < 2) || (gFrameSinceLastBCombo[playerIndex] >= 9)) {
gCountBChangement[playerIndex] = 0;
}
D_801654E0[var_v0] = 0;
D_801654C0[var_v0] = 0;
gFrameSinceLastBCombo[playerIndex] = 0;
D_801654C0[playerIndex] = 0;
}
D_801654A0[var_v0] = 1;
D_801654E0[var_v0]++;
if (D_801654E0[var_v0] >= 9) {
D_801654E0[var_v0] = 9;
gPlayerIsBrakeActive[playerIndex] = TRUE;
gFrameSinceLastBCombo[playerIndex]++;
if (gFrameSinceLastBCombo[playerIndex] >= 9) {
gFrameSinceLastBCombo[playerIndex] = 9;
}
if ((D_801654E0[var_v0] >= 2) && (D_801654E0[var_v0] < 9)) {
if (D_801654C0[var_v0] == 0) {
D_80165500[var_v0]++;
if ((gFrameSinceLastBCombo[playerIndex] >= 2) && (gFrameSinceLastBCombo[playerIndex] < 9)) {
if (D_801654C0[playerIndex] == 0) {
gCountBChangement[playerIndex]++;
}
D_801654C0[var_v0] = 1;
D_801654C0[playerIndex] = 1;
}
if (D_80165500[var_v0] == 5) {
D_80165520[var_v0] = 1;
D_80165540[var_v0] = 0x00000078;
D_80165500[var_v0] = 0;
D_801654E0[var_v0] = 0;
if (gCountBChangement[playerIndex] == 5) {
gIsPlayerTripleBButtonCombo[playerIndex] = TRUE;
gTimerBoostTripleBCombo[playerIndex] = 120;
gCountBChangement[playerIndex] = 0;
gFrameSinceLastBCombo[playerIndex] = 0;
}
} else {
D_80165540[var_v0]--;
if (D_80165540[var_v0] <= 0) {
D_80165520[var_v0] = 0;
gTimerBoostTripleBCombo[playerIndex]--;
if (gTimerBoostTripleBCombo[playerIndex] <= 0) {
gIsPlayerTripleBButtonCombo[playerIndex] = FALSE;
}
}
}
@@ -3601,7 +3600,7 @@ void func_800323E4(Player *player) {
player->unk_20C = 2.0f;
}
}
if (D_80165520[var_v1] == 1) {
if (gIsPlayerTripleBButtonCombo[var_v1] == TRUE) {
if (player->unk_20C >= 2.0f) {
func_80031F48(player, (1.0f - var_f2) * 5.0f);
} else {
@@ -4673,7 +4672,7 @@ void func_80037CFC(Player *player, struct Controller *controller, s8 arg2) {
if ((player->unk_044 & 1) != 1) {
if (controller->button & A_BUTTON) {
player_speed(player);
func_80030E00(player);
detect_triple_a_combo_a_pressed(player);
} else {
if (gModeSelection == BATTLE)
{
@@ -4683,14 +4682,14 @@ void func_80037CFC(Player *player, struct Controller *controller, s8 arg2) {
{
func_80031F48(player, 1.0f);
}
func_80030C34(player);
detect_triple_a_combo_a_released(player);
}
if (controller->button & B_BUTTON) {
func_800323E4(player);
func_8003221C(player);
detect_triple_b_combo_b_pressed(player);
} else {
player->unk_20C = 0.0f;
func_80032050(player);
detect_triple_b_combo_b_released(player);
}
}
if ((!(player->effects & 0x100000)) && (!(player->effects & 4))) {
@@ -4722,11 +4721,11 @@ void func_80037CFC(Player *player, struct Controller *controller, s8 arg2) {
((player->effects & 0x01000000) == 0x01000000)) ||
((player->effects & 0x02000000) == 0x02000000)) {
if (controller->button & A_BUTTON) {
func_80030E00(player);
detect_triple_a_combo_a_pressed(player);
func_800332E8(player, arg2);
return;
}
func_80030C34(player);
detect_triple_a_combo_a_released(player);
func_800337CC(player, 5.0f, arg2);
}
}
+78 -78
View File
@@ -71,12 +71,12 @@ void func_8002FE84(Player*, f32);
f32 func_80030150(Player*, s8);
void func_80030A34(Player*);
void func_80030C34(Player*);
void func_80030E00(Player*);
void detect_triple_a_combo_a_released(Player*);
void detect_triple_a_combo_a_pressed(Player*);
void player_speed(Player*);
void func_80031F48(Player*, f32);
void func_80032050(Player*);
void func_8003221C(Player*);
void detect_triple_b_combo_b_released(Player*);
void detect_triple_b_combo_b_pressed(Player*);
void func_800323E4(Player*);
void func_80032700(Player*);
void func_80032CB0(Player*, f32);
@@ -113,81 +113,81 @@ void func_80038C6C(Player*, Camera*, s8, s8);
/* This is where I'd put my static data, if I had any */
extern s16 D_800E3810[];
extern s16 D_800E3820[];
extern s16 D_800E3830[];
extern s16 D_800E3840[];
extern s16 D_800E3850[];
extern s16 D_800E3860[];
extern s16 D_800E3870[];
extern s16 D_800E3880[];
extern s16 *D_800E3890[];
extern s16 gCPUforMario[];
extern s16 gCPUforLuigi[];
extern s16 gCPUforYoshi[];
extern s16 gCPUforToad[];
extern s16 gCPUforDk[];
extern s16 gCPUforWario[];
extern s16 gCPUforPeach[];
extern s16 gCPUforBowser[];
extern s16 *gCPUforPlayer[];
extern s16 D_800E38B0[];
extern s16 D_800E38BC[];
extern s16 D_800E38C8[];
extern s16 D_800E38D4[];
extern s16 D_800E38E0[];
extern s16 D_800E38EC[];
extern s16 D_800E38F8[];
extern s16 D_800E3904[];
extern s16 D_800E3910[];
extern s16 D_800E391C[];
extern s16 D_800E3928[];
extern s16 D_800E3934[];
extern s16 D_800E3940[];
extern s16 D_800E394C[];
extern s16 D_800E3958[];
extern s16 D_800E3964[];
extern s16 D_800E3970[];
extern s16 D_800E397C[];
extern s16 D_800E3988[];
extern s16 D_800E3994[];
extern s16 D_800E39A0[];
extern s16 D_800E39AC[];
extern s16 D_800E39B8[];
extern s16 D_800E39C4[];
extern s16 D_800E39D0[];
extern s16 D_800E39DC[];
extern s16 D_800E39E8[];
extern s16 D_800E39F4[];
extern s16 D_800E3A00[];
extern s16 D_800E3A0C[];
extern s16 D_800E3A18[];
extern s16 D_800E3A24[];
extern s16 D_800E3A30[];
extern s16 D_800E3A3C[];
extern s16 D_800E3A48[];
extern s16 D_800E3A54[];
extern s16 D_800E3A60[];
extern s16 D_800E3A6C[];
extern s16 D_800E3A78[];
extern s16 D_800E3A84[];
extern s16 D_800E3A90[];
extern s16 D_800E3A9C[];
extern s16 D_800E3AA8[];
extern s16 D_800E3AB4[];
extern s16 D_800E3AC0[];
extern s16 D_800E3ACC[];
extern s16 D_800E3AD8[];
extern s16 D_800E3AE4[];
extern s16 D_800E3AF0[];
extern s16 D_800E3AFC[];
extern s16 D_800E3B08[];
extern s16 D_800E3B14[];
extern s16 D_800E3B20[];
extern s16 D_800E3B2C[];
extern s16 D_800E3B38[];
extern s16 D_800E3B44[];
extern s16 *D_800E3B50[];
extern s16 *D_800E3B70[];
extern s16 *D_800E3B90[];
extern s16 *D_800E3BB0[];
extern s16 *D_800E3BD0[];
extern s16 *D_800E3BF0[];
extern s16 *D_800E3C10[];
extern s16 *D_800E3C30[];
extern s16 **D_800E3C50[];
extern s16 gCPUforMarioAndLuigi[];
extern s16 gCPUforMarioAndYoshi[];
extern s16 gCPUforMarioAndToad[];
extern s16 gCPUforMarioAndDk[];
extern s16 gCPUforMarioAndWario[];
extern s16 gCPUforMarioAndPeach[];
extern s16 gCPUforMarioAndBowser[];
extern s16 gCPUforLuigiAndMario[];
extern s16 gCPUforLuigiAndYoshi[];
extern s16 gCPUforLuigiAndToad[];
extern s16 gCPUforLuigiAndDk[];
extern s16 gCPUforLuigiAndWario[];
extern s16 gCPUforLuigiAndPeach[];
extern s16 gCPUforLuigiAndBowser[];
extern s16 gCPUforYoshiAndMario[];
extern s16 gCPUforYoshiAndLuigi[];
extern s16 gCPUforYoshiAndToad[];
extern s16 gCPUforYoshiAndDk[];
extern s16 gCPUforYoshiAndWario[];
extern s16 gCPUforYoshiAndPeach[];
extern s16 gCPUforYoshiAndBowser[];
extern s16 gCPUforToadAndMario[];
extern s16 gCPUforToadAndLuigi[];
extern s16 gCPUforToadAndYoshi[];
extern s16 gCPUforToadAndDk[];
extern s16 gCPUforToadAndWario[];
extern s16 gCPUforToadAndPeach[];
extern s16 gCPUforToadAndBowser[];
extern s16 gCPUforDkAndMario[];
extern s16 gCPUforDkAndLuigi[];
extern s16 gCPUforDkAndToad[];
extern s16 gCPUforDkAndYoshi[];
extern s16 gCPUforDkAndWario[];
extern s16 gCPUforDkAndPeach[];
extern s16 gCPUforDkAndBowser[];
extern s16 gCPUforWarioAndMario[];
extern s16 gCPUforWarioAndLuigi[];
extern s16 gCPUforWarioAndYoshi[];
extern s16 gCPUforWarioAndDk[];
extern s16 gCPUforWarioAndToad[];
extern s16 gCPUforWarioAndPeach[];
extern s16 gCPUforWarioAndBowser[];
extern s16 gCPUforPeachAndMario[];
extern s16 gCPUforPeachAndLuigi[];
extern s16 gCPUforPeachAndYoshi[];
extern s16 gCPUforPeachAndDk[];
extern s16 gCPUforPeachAndWario[];
extern s16 gCPUforPeachAndToad[];
extern s16 gCPUforPeachAndBowser[];
extern s16 gCPUforBowserAndMario[];
extern s16 gCPUforBowserAndLuigi[];
extern s16 gCPUforBowserAndYoshi[];
extern s16 gCPUforBowserAndDk[];
extern s16 gCPUforBowserAndWario[];
extern s16 gCPUforBowserAndToad[];
extern s16 gCPUforBowserAndPeach[];
extern s16 *gListCPUforMario[];
extern s16 *gListCPUforLuigi[];
extern s16 *gListCPUforYoshi[];
extern s16 *gListCPUforToad[];
extern s16 *gListCPUforDk[];
extern s16 *gListCPUforWario[];
extern s16 *gListCPUforPeach[];
extern s16 *gListCPUforBowser[];
extern s16 **gCPUforTwoPlayer[];
extern s16 gMatrixEffectCount;
+1 -1
View File
@@ -1682,7 +1682,7 @@ void func_80026A48(Player *player, s8 arg1) {
}
temp_f0 = ((player->unk_094 * (1.0f + player->unk_104)) / 18.0f) * 216.0f;
if ((temp_f0 <= 1.0f) || (D_80165520[arg1] == 1)) {
if ((temp_f0 <= 1.0f) || (gIsPlayerTripleBButtonCombo[arg1] == TRUE)) {
player->unk_240 = 0;
} else {
player->unk_240 += D_800DDE74[(s32)(temp_f0 / 12.0f)];
+62 -58
View File
@@ -24,7 +24,7 @@
f32 D_80165210[8];
f32 D_80165230[8];
f32 D_80165250[8];
UNUSED f32 D_80165250[8];
s16 D_80165270[8];
f32 D_80165280[8];
f32 D_801652A0[8];
@@ -32,27 +32,30 @@ s32 D_801652C0[8];
s32 D_801652E0[8];
s16 D_80165300[8];
// Shadows values from gPathIndexByPlayerId, but is an array
u16 D_80165310[8];
u16 gCopyPathIndexByPlayerId[8];
// Shadows values from gNearestWaypointByPlayerId, but is an array
s16 D_80165320[8];
// Don't think this really belongs with waypoint stuff, but don't know where else to put it
s16 gCopyNearestWaypointByPlayerId[8];
s16 D_80165330[8];
s16 D_80165340;
UNUSED s32 D_80165348[29];
Player *D_801653C0[8];
s32 gPlayerIsThrottleActive[8];
bool gPlayerIsThrottleActive[8];
s32 D_80165400[8];
s32 D_80165420[8];
s32 D_80165440[8];
s32 gFrameSinceLastACombo[8];
s32 gCountASwitch[8];
bool gIsPlayerTripleAButtonCombo[8];
s32 D_80165480[8];
s32 D_801654A0[8];
s32 gTimerBoostTripleACombo[8];
bool gPlayerIsBrakeActive[8];
s32 D_801654C0[8];
s32 D_801654E0[8];
s32 D_80165500[8];
s32 D_80165520[8];
s32 D_80165540[8];
s16 D_80165560[7];
s32 gFrameSinceLastBCombo[8];
s32 gCountBChangement[8];
bool gIsPlayerTripleBButtonCombo[8];
s32 gTimerBoostTripleBCombo[8];
s16 chooseCPUPlayers[7];
s16 D_8016556E;
s16 D_80165570;
s16 D_80165572;
@@ -261,14 +264,14 @@ void spawn_player(Player *player, s8 playerIndex, f32 startingRow, f32 startingC
D_801651D0[2][idx] = 0;
D_801651D0[3][idx] = 0;
D_80165420[idx] = 0;
D_80165440[idx] = 0;
gFrameSinceLastACombo[idx] = 0;
gCountASwitch[idx] = 0;
gIsPlayerTripleAButtonCombo[idx] = FALSE;
D_80165480[idx] = 0;
D_801654E0[idx] = 0;
D_80165500[idx] = 0;
D_80165520[idx] = 0;
D_80165540[playerIndex] = 0;
gTimerBoostTripleACombo[idx] = 0;
gFrameSinceLastBCombo[idx] = 0;
gCountBChangement[idx] = 0;
gIsPlayerTripleBButtonCombo[idx] = FALSE;
gTimerBoostTripleBCombo[playerIndex] = 0;
D_8018D900[0] = 0;
D_801652E0[playerIndex] = 0;
@@ -281,7 +284,7 @@ void spawn_player(Player *player, s8 playerIndex, f32 startingRow, f32 startingC
D_801652A0[playerIndex] = 0.0f;
gPlayerIsThrottleActive[playerIndex] = 0;
D_80165400[playerIndex] = 0;
D_801654A0[playerIndex] = 0;
gPlayerIsBrakeActive[playerIndex] = 0;
D_801654C0[playerIndex] = 0;
D_80165340 = 0;
@@ -478,7 +481,7 @@ UNUSED f32 D_800E43A0 = 1.0f;
UNUSED s16 D_800E43A4 = 1;
UNUSED s16 D_800E43A8 = 0;
void func_80039F44(f32 *arg0, f32 *arg1, f32 arg2) {
void spawn_players_gp_one_player(f32 *arg0, f32 *arg1, f32 arg2) {
func_80039DA4();
if (((gCupCourseSelection == CUP_COURSE_ONE) && (D_8016556E == 0)) ||
(gDemoMode == 1) ||
@@ -491,16 +494,16 @@ void func_80039F44(f32 *arg0, f32 *arg1, f32 arg2) {
} while(rand == gCharacterSelections[0]);
// Randomize gPlayerTwo
D_80165560[0] = rand;
chooseCPUPlayers[0] = rand;
// Chooses arr[0] as a fallback to prevent duplicating characters.
// If it doesn't find the if, it will grab the final index as a fallback.
for (i = 1; i < 7; i++) {
u16* arr = (u16 *) D_800E3890[gCharacterSelections[0]];
u16* arr = (u16 *) gCPUforPlayer[gCharacterSelections[0]];
if (rand == arr[i]) {
D_80165560[i] = arr[0];
chooseCPUPlayers[i] = arr[0];
} else {
D_80165560[i] = arr[i];
chooseCPUPlayers[i] = arr[i];
}
}
}
@@ -508,29 +511,29 @@ void func_80039F44(f32 *arg0, f32 *arg1, f32 arg2) {
D_8016556E = 0;
if (gDemoMode == 1) {
spawn_player(gPlayerOneCopy, 0, arg0[D_80165270[0]], arg1[D_80165270[0]], arg2, 32768.0f, gCharacterSelections[0], PLAYER_HUMAN_AND_CPU);
spawn_player(gPlayerTwo, 1, arg0[D_80165270[1]], arg1[D_80165270[1]], arg2, 32768.0f, D_80165560[0], PLAYER_EXISTS | PLAYER_CPU | PLAYER_START_SEQUENCE);
spawn_player(gPlayerThree, 2, arg0[D_80165270[2]], arg1[D_80165270[2]], arg2, 32768.0f, D_80165560[1], PLAYER_EXISTS | PLAYER_CPU | PLAYER_START_SEQUENCE);
spawn_player(gPlayerFour, 3, arg0[D_80165270[3]], arg1[D_80165270[3]], arg2, 32768.0f, D_80165560[2], PLAYER_EXISTS | PLAYER_CPU | PLAYER_START_SEQUENCE);
spawn_player(gPlayerFive, 4, arg0[D_80165270[4]], arg1[D_80165270[4]], arg2, 32768.0f, D_80165560[3], PLAYER_EXISTS | PLAYER_CPU | PLAYER_START_SEQUENCE);
spawn_player(gPlayerSix, 5, arg0[D_80165270[5]], arg1[D_80165270[5]], arg2, 32768.0f, D_80165560[4], PLAYER_EXISTS | PLAYER_CPU | PLAYER_START_SEQUENCE);
spawn_player(gPlayerSeven, 6, arg0[D_80165270[6]], arg1[D_80165270[6]], arg2, 32768.0f, D_80165560[5], PLAYER_EXISTS | PLAYER_CPU | PLAYER_START_SEQUENCE);
spawn_player(gPlayerEight, 7, arg0[D_80165270[7]], arg1[D_80165270[7]], arg2, 32768.0f, D_80165560[6], PLAYER_EXISTS | PLAYER_CPU | PLAYER_START_SEQUENCE);
spawn_player(gPlayerTwo, 1, arg0[D_80165270[1]], arg1[D_80165270[1]], arg2, 32768.0f, chooseCPUPlayers[0], PLAYER_EXISTS | PLAYER_CPU | PLAYER_START_SEQUENCE);
spawn_player(gPlayerThree, 2, arg0[D_80165270[2]], arg1[D_80165270[2]], arg2, 32768.0f, chooseCPUPlayers[1], PLAYER_EXISTS | PLAYER_CPU | PLAYER_START_SEQUENCE);
spawn_player(gPlayerFour, 3, arg0[D_80165270[3]], arg1[D_80165270[3]], arg2, 32768.0f, chooseCPUPlayers[2], PLAYER_EXISTS | PLAYER_CPU | PLAYER_START_SEQUENCE);
spawn_player(gPlayerFive, 4, arg0[D_80165270[4]], arg1[D_80165270[4]], arg2, 32768.0f, chooseCPUPlayers[3], PLAYER_EXISTS | PLAYER_CPU | PLAYER_START_SEQUENCE);
spawn_player(gPlayerSix, 5, arg0[D_80165270[5]], arg1[D_80165270[5]], arg2, 32768.0f, chooseCPUPlayers[4], PLAYER_EXISTS | PLAYER_CPU | PLAYER_START_SEQUENCE);
spawn_player(gPlayerSeven, 6, arg0[D_80165270[6]], arg1[D_80165270[6]], arg2, 32768.0f, chooseCPUPlayers[5], PLAYER_EXISTS | PLAYER_CPU | PLAYER_START_SEQUENCE);
spawn_player(gPlayerEight, 7, arg0[D_80165270[7]], arg1[D_80165270[7]], arg2, 32768.0f, chooseCPUPlayers[6], PLAYER_EXISTS | PLAYER_CPU | PLAYER_START_SEQUENCE);
D_80164A28 = 0;
} else {
spawn_player(gPlayerOneCopy, 0, arg0[D_80165270[0]], arg1[D_80165270[0]] + 250.0f, arg2, 32768.0f, gCharacterSelections[0], PLAYER_EXISTS | PLAYER_STAGING | PLAYER_START_SEQUENCE | PLAYER_HUMAN);
spawn_player(gPlayerTwo, 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(gPlayerThree, 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(gPlayerFour, 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(gPlayerFive, 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(gPlayerSix, 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(gPlayerSeven, 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(gPlayerEight, 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);
spawn_player(gPlayerTwo, 1, arg0[D_80165270[1]], arg1[D_80165270[1]] + 250.0f, arg2, 32768.0f, chooseCPUPlayers[0], PLAYER_EXISTS | PLAYER_STAGING | PLAYER_START_SEQUENCE | PLAYER_CPU);
spawn_player(gPlayerThree, 2, arg0[D_80165270[3]], arg1[D_80165270[2]] + 250.0f, arg2, 32768.0f, chooseCPUPlayers[1], PLAYER_EXISTS | PLAYER_STAGING | PLAYER_START_SEQUENCE | PLAYER_CPU);
spawn_player(gPlayerFour, 3, arg0[D_80165270[2]], arg1[D_80165270[3]] + 250.0f, arg2, 32768.0f, chooseCPUPlayers[2], PLAYER_EXISTS | PLAYER_STAGING | PLAYER_START_SEQUENCE | PLAYER_CPU);
spawn_player(gPlayerFive, 4, arg0[D_80165270[5]], arg1[D_80165270[4]] + 250.0f, arg2, 32768.0f, chooseCPUPlayers[3], PLAYER_EXISTS | PLAYER_STAGING | PLAYER_START_SEQUENCE | PLAYER_CPU);
spawn_player(gPlayerSix, 5, arg0[D_80165270[4]], arg1[D_80165270[5]] + 250.0f, arg2, 32768.0f, chooseCPUPlayers[4], PLAYER_EXISTS | PLAYER_STAGING | PLAYER_START_SEQUENCE | PLAYER_CPU);
spawn_player(gPlayerSeven, 6, arg0[D_80165270[7]], arg1[D_80165270[6]] + 250.0f, arg2, 32768.0f, chooseCPUPlayers[5], PLAYER_EXISTS | PLAYER_STAGING | PLAYER_START_SEQUENCE | PLAYER_CPU);
spawn_player(gPlayerEight, 7, arg0[D_80165270[6]], arg1[D_80165270[7]] + 250.0f, arg2, 32768.0f, chooseCPUPlayers[6], PLAYER_EXISTS | PLAYER_STAGING | PLAYER_START_SEQUENCE | PLAYER_CPU);
D_80164A28 = 1;
}
func_80039AE4();
}
void func_8003A59C(f32 *arg0, f32 *arg1, f32 arg2) {
void spawn_players_versus_one_player(f32 *arg0, f32 *arg1, f32 arg2) {
spawn_player(gPlayerFour, 3, arg0[2], arg1[2], arg2, 32768.0f, gCharacterSelections[0], PLAYER_START_SEQUENCE | PLAYER_CPU);
spawn_player(gPlayerFive, 4, arg0[3], arg1[3], arg2, 32768.0f, gCharacterSelections[0], PLAYER_START_SEQUENCE | PLAYER_CPU);
spawn_player(gPlayerSix, 5, arg0[4], arg1[4], arg2, 32768.0f, gCharacterSelections[0], PLAYER_START_SEQUENCE | PLAYER_CPU);
@@ -569,12 +572,13 @@ void func_8003A59C(f32 *arg0, f32 *arg1, f32 arg2) {
func_80039AE4();
}
void func_8003A9F0(f32* arg0, f32* arg1, f32 arg2) {
void spawn_players_gp_two_player(f32* arg0, f32* arg1, f32 arg2) {
func_80039DA4();
if ((gCupCourseSelection == CUP_COURSE_ONE) || (gDemoMode == 1) || (gDebugMenuSelection == DEBUG_MENU_EXITED)) {
s16 rand;
s16 i;
// @todo: this is a do-while loop
getRand:
rand = random_int(7);
if (gCharacterSelections[0] == rand)
@@ -582,24 +586,24 @@ getRand:
if (gCharacterSelections[1] == rand)
goto getRand;
D_80165560[0] = rand;
chooseCPUPlayers[0] = rand;
for (i = 1; i < 6; i++) {
u16* arr = (u16 *) D_800E3C50[gCharacterSelections[0]][gCharacterSelections[1]];
u16* arr = (u16 *) gCPUforTwoPlayer[gCharacterSelections[0]][gCharacterSelections[1]];
if (rand == arr[i]) {
D_80165560[i] = arr[0];
chooseCPUPlayers[i] = arr[0];
} else {
D_80165560[i] = arr[i];
chooseCPUPlayers[i] = arr[i];
}
}
}
spawn_player(gPlayerThree, 2, arg0[D_80165270[2]], arg1[D_80165270[2]], arg2, 32768.0f, D_80165560[0], PLAYER_EXISTS | PLAYER_CPU | PLAYER_START_SEQUENCE);
spawn_player(gPlayerFour, 3, arg0[D_80165270[3]], arg1[D_80165270[3]], arg2, 32768.0f, D_80165560[1], PLAYER_EXISTS | PLAYER_CPU | PLAYER_START_SEQUENCE);
spawn_player(gPlayerFive, 4, arg0[D_80165270[4]], arg1[D_80165270[4]], arg2, 32768.0f, D_80165560[2], PLAYER_EXISTS | PLAYER_CPU | PLAYER_START_SEQUENCE);
spawn_player(gPlayerSix, 5, arg0[D_80165270[5]], arg1[D_80165270[5]], arg2, 32768.0f, D_80165560[3], PLAYER_EXISTS | PLAYER_CPU | PLAYER_START_SEQUENCE);
spawn_player(gPlayerSeven, 6, arg0[D_80165270[6]], arg1[D_80165270[6]], arg2, 32768.0f, D_80165560[4], PLAYER_EXISTS | PLAYER_CPU | PLAYER_START_SEQUENCE);
spawn_player(gPlayerEight, 7, arg0[D_80165270[7]], arg1[D_80165270[7]], arg2, 32768.0f, D_80165560[5], PLAYER_EXISTS | PLAYER_CPU | PLAYER_START_SEQUENCE);
spawn_player(gPlayerThree, 2, arg0[D_80165270[2]], arg1[D_80165270[2]], arg2, 32768.0f, chooseCPUPlayers[0], PLAYER_EXISTS | PLAYER_CPU | PLAYER_START_SEQUENCE);
spawn_player(gPlayerFour, 3, arg0[D_80165270[3]], arg1[D_80165270[3]], arg2, 32768.0f, chooseCPUPlayers[1], PLAYER_EXISTS | PLAYER_CPU | PLAYER_START_SEQUENCE);
spawn_player(gPlayerFive, 4, arg0[D_80165270[4]], arg1[D_80165270[4]], arg2, 32768.0f, chooseCPUPlayers[2], PLAYER_EXISTS | PLAYER_CPU | PLAYER_START_SEQUENCE);
spawn_player(gPlayerSix, 5, arg0[D_80165270[5]], arg1[D_80165270[5]], arg2, 32768.0f, chooseCPUPlayers[3], PLAYER_EXISTS | PLAYER_CPU | PLAYER_START_SEQUENCE);
spawn_player(gPlayerSeven, 6, arg0[D_80165270[6]], arg1[D_80165270[6]], arg2, 32768.0f, chooseCPUPlayers[4], PLAYER_EXISTS | PLAYER_CPU | PLAYER_START_SEQUENCE);
spawn_player(gPlayerEight, 7, arg0[D_80165270[7]], arg1[D_80165270[7]], arg2, 32768.0f, chooseCPUPlayers[5], PLAYER_EXISTS | PLAYER_CPU | PLAYER_START_SEQUENCE);
if (gDemoMode == 1) {
spawn_player(gPlayerOneCopy, 0, arg0[D_80165270[0]], arg1[D_80165270[0]], arg2, 32768.0f, gCharacterSelections[0], PLAYER_HUMAN_AND_CPU);
@@ -616,7 +620,7 @@ getRand:
func_80039AE4();
}
void func_8003AE24(f32 *arg0, f32 *arg1, f32 arg2) {
void spawn_players_versus_two_player(f32 *arg0, f32 *arg1, f32 arg2) {
spawn_player(gPlayerThree, 2, arg0[1], arg1[1], arg2, 32768.0f, gCharacterSelections[0], PLAYER_START_SEQUENCE | PLAYER_CPU);
spawn_player(gPlayerFour, 3, arg0[2], arg1[2], arg2, 32768.0f, gCharacterSelections[0], PLAYER_START_SEQUENCE | PLAYER_CPU);
spawn_player(gPlayerFive, 4, arg0[3], arg1[3], arg2, 32768.0f, gCharacterSelections[0], PLAYER_START_SEQUENCE | PLAYER_CPU);
@@ -820,7 +824,7 @@ void func_8003C0F0(void) {
D_80165230[5] = sp5C + 0x82;
D_80165230[6] = sp5C + 0x96;
D_80165230[7] = sp5C + 0xAA;
func_80039F44(D_80165210, D_80165230, sp5A);
spawn_players_gp_one_player(D_80165210, D_80165230, sp5A);
break;
case TIME_TRIALS:
@@ -834,7 +838,7 @@ void func_8003C0F0(void) {
D_80165230[5] = sp5C + 0x1E;
D_80165230[6] = sp5C + 0x1E;
D_80165230[7] = sp5C + 0x1E;
func_8003A59C(D_80165210, D_80165230, sp5A);
spawn_players_versus_one_player(D_80165210, D_80165230, sp5A);
break;
}
break;
@@ -853,7 +857,7 @@ void func_8003C0F0(void) {
D_80165230[5] = sp5C + 0x82;
D_80165230[6] = sp5C + 0x96;
D_80165230[7] = sp5C + 0xAA;
func_8003A9F0(D_80165210, D_80165230, sp5A);
spawn_players_gp_two_player(D_80165210, D_80165230, sp5A);
break;
case VERSUS:
@@ -867,7 +871,7 @@ void func_8003C0F0(void) {
D_80165230[5] = sp5C + 0x1E;
D_80165230[6] = sp5C + 0x1E;
D_80165230[7] = sp5C + 0x1E;
func_8003AE24(D_80165210, D_80165230, sp5A);
spawn_players_versus_two_player(D_80165210, D_80165230, sp5A);
break;
}
break;
+17 -16
View File
@@ -5,14 +5,14 @@
#include "common_structs.h"
/* Function Prototypes */
/** @cond */
void spawn_player(Player*, s8, f32, f32, f32, f32, u16, s16);
void func_80039AE4(void);
void func_80039DA4(void);
void func_80039F44(f32*, f32*, f32);
void func_8003A59C(f32*, f32*, f32);
void func_8003A9F0(f32* arg0, f32* arg1, f32);
void func_8003AE24(f32*, f32*, f32);
void spawn_players_gp_one_player(f32*, f32*, f32);
void spawn_players_versus_one_player(f32*, f32*, f32);
void spawn_players_gp_two_player(f32* arg0, f32* arg1, f32);
void spawn_players_versus_two_player(f32*, f32*, f32);
void spawn_players_2p_battle(f32*, f32*, f32);
void func_8003B318(f32*, f32*, f32);
void spawn_players_3p_battle(f32*, f32*, f32);
@@ -33,24 +33,24 @@ extern f32 D_801652A0[];
extern s32 D_801652C0[];
extern s32 D_801652E0[];
extern s16 D_80165300[];
extern u16 D_80165310[];
extern s16 D_80165320[];
extern u16 gCopyPathIndexByPlayerId[];
extern s16 gCopyNearestWaypointByPlayerId[];
extern s16 D_80165330[];
extern s16 D_80165340;
extern Player *D_801653C0[];
extern s32 gPlayerIsThrottleActive[];
extern s32 D_80165400[];
extern s32 D_80165420[];
extern s32 D_80165440[];
extern s32 gFrameSinceLastACombo[];
extern s32 gCountASwitch[];
extern bool gIsPlayerTripleAButtonCombo[];
extern s32 D_80165480[];
extern s32 D_801654A0[];
extern s32 gTimerBoostTripleACombo[];
extern s32 gPlayerIsBrakeActive[];
extern s32 D_801654C0[];
extern s32 D_801654E0[];
extern s32 D_80165500[];
extern s32 D_80165520[];
extern s32 D_80165540[];
extern s16 D_80165560[];
extern s32 gFrameSinceLastBCombo[];
extern s32 gCountBChangement[];
extern s32 gIsPlayerTripleBButtonCombo[];
extern s32 gTimerBoostTripleBCombo[];
extern s16 chooseCPUPlayers[];
extern s16 D_8016556E;
extern s16 D_80165570;
extern s16 D_80165572;
@@ -62,5 +62,6 @@ extern s16 D_8016557C;
extern s16 D_8016557E;
extern s16 D_80165580;
extern s16 D_80165582;
/** @endcond */
#endif