Mario Kart 64
waypoints.h
Go to the documentation of this file.
1 #ifndef WAYPOINTS_H
2 #define WAYPOINTS_H
3 
4 typedef struct {
5  /* 0x00 */ s16 posX;
6  /* 0x02 */ s16 posY;
7  /* 0x04 */ s16 posZ;
8  /* 0x06 */ u16 trackSegment;
9 } TrackWaypoint; // size = 0x08
10 
17 extern TrackWaypoint *D_80164550[];
18 extern TrackWaypoint *D_80164560[];
19 extern TrackWaypoint *D_80164570[];
20 
25 // Waypoint types?
26 extern s16 *D_80164580[];
27 // Based on func_80010DBC this may be angles between waypoints
28 // D_80164590[i] = atan2(waypoint_i, waypoint_i+1)?
29 extern s16 *D_80164590[];
30 // No idea. Adjacency list?
31 extern s16 *D_801645A0[];
32 
38 // Shadows values from gNearestWaypointByPlayerId
39 extern s16 D_80162FCE;
40 // Shadows values from gPathIndexByPlayerId
41 extern s32 D_80163448;
42 // Shadows values from gPathIndexByPlayerId, but is an array
43 extern u16 D_80165310[];
44 // Shadows values from gNearestWaypointByPlayerId, but is an array
45 extern s16 D_80165320[];
46 // Don't think this really belongs with waypoint stuff, but don't know where else to put it
47 extern s16 D_80165330[];
48 // Shadows values from D_80164560
50 // Shadows values from D_80164570
52 // Shadows values from D_80164580
53 extern s16 *D_801631D8;
54 // Shadows values from D_80164590
55 extern s16 *D_801631DC;
56 // Shadowd values from gWaypointCountByPathIndex
57 extern u16 D_80164430;
58 // Shadows values from D_80164550
60 // Shadows values from D_801645A0
61 extern s16 *D_801645E0;
62 
63 
64 extern u16 gNearestWaypointByPlayerId[]; // D_80164438
65 // Total waypoints passed by playerId?
66 extern s32 D_80164450[];
67 extern u16 gPathIndexByPlayerId[]; // D_801645B0
68 extern u16 gWaypointCountByPathIndex[]; // D_801645C8
69 // These values are only used when the camera is in "cinematic" mode
70 extern s16 gNearestWaypointByCameraId[]; // D_80164668
71 
77 // Tracks something on a per-player basis, no idea what though
78 extern f32 D_80163068[];
79 // Track segment by playerId, although it curiously does NOT track values for human players
80 // So, in 2 Player Grand Prix, the first 2 entries are always 0
81 extern u16 D_80163318[];
82 // Seems to be a per-path overcount of the waypoint count
83 extern s32 D_80163368[];
84 // Seemingly the Z position of the 1st waypoint in the 0th path?
85 extern f32 D_8016344C;
86 // These seem to track whether a player has entered or exited the "unknown" zone in yoshi's valley
87 // See func_80009000 and func_800090F0
88 // Is 1 when a player is in the "unknown" zone in yoshi's valley
89 extern s16 D_80163490[];
90 // Is 1 when a player leaves the "unknown" zone in yoshi's valley
91 extern s16 D_801634A8[];
92 // Tracks whether a given player is in the "unknown" zone of yoshi's valley
93 extern s16 D_801644F8[];
94 
95 #endif
Definition: waypoints.h:4
u16 trackSegment
Definition: waypoints.h:8
s16 posZ
Definition: waypoints.h:7
s16 posY
Definition: waypoints.h:6
s16 posX
Definition: waypoints.h:5
signed int s32
Definition: ultratypes.h:15
signed short int s16
Definition: ultratypes.h:13
float f32
Definition: ultratypes.h:32
unsigned short int u16
Definition: ultratypes.h:14
s16 D_80163490[]
Definition: code_80005FD0.c:129
TrackWaypoint * D_80164550[]
Definition: code_80005FD0.c:173
TrackWaypoint * D_80164560[]
Definition: code_80005FD0.c:174
TrackWaypoint * D_801631D4
Definition: code_80005FD0.c:82
TrackWaypoint * D_80164490
Definition: code_80005FD0.c:166
s16 * D_80164580[]
Definition: code_80005FD0.c:176
s16 D_801644F8[]
Definition: code_80005FD0.c:170
s16 D_80165320[]
u16 gNearestWaypointByPlayerId[]
Definition: code_80005FD0.c:162
s32 D_80163448
Definition: code_80005FD0.c:118
s16 gNearestWaypointByCameraId[]
Definition: code_80005FD0.c:191
u16 D_80163318[]
Definition: code_80005FD0.c:99
s16 * D_801631DC
Definition: code_80005FD0.c:84
f32 D_8016344C
Definition: code_80005FD0.c:119
s16 * D_801631D8
Definition: code_80005FD0.c:83
s16 * D_801645E0
Definition: code_80005FD0.c:182
TrackWaypoint * D_801631D0
Definition: code_80005FD0.c:81
u16 D_80165310[]
s16 * D_80164590[]
Definition: code_80005FD0.c:177
u16 gPathIndexByPlayerId[]
Definition: code_80005FD0.c:179
s16 * D_801645A0[]
Definition: code_80005FD0.c:178
TrackWaypoint * D_80164570[]
Definition: code_80005FD0.c:175
s16 D_801634A8[]
Definition: code_80005FD0.c:130
s32 D_80163368[]
Definition: code_80005FD0.c:105
s16 D_80162FCE
Definition: code_80005FD0.c:54
s32 D_80164450[]
Definition: code_80005FD0.c:163
s16 D_80165330[]
u16 gWaypointCountByPathIndex[]
Definition: code_80005FD0.c:180
f32 D_80163068[]
Definition: code_80005FD0.c:67
u16 D_80164430
Definition: code_80005FD0.c:161