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 u16 *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[]
TrackWaypoint * D_80164550[]
TrackWaypoint * D_80164560[]
TrackWaypoint * D_801631D4
TrackWaypoint * D_80164490
s16 * D_80164580[]
s16 D_801644F8[]
s16 D_80165320[]
u16 gNearestWaypointByPlayerId[]
s32 D_80163448
s16 gNearestWaypointByCameraId[]
u16 D_80163318[]
f32 D_8016344C
s16 * D_801631D8
s16 * D_801645E0
TrackWaypoint * D_801631D0
u16 D_80165310[]
s16 * D_80164590[]
u16 gPathIndexByPlayerId[]
s16 * D_801645A0[]
TrackWaypoint * D_80164570[]
s16 D_801634A8[]
s32 D_80163368[]
s16 D_80162FCE
s32 D_80164450[]
s16 D_80165330[]
u16 * D_801631DC
u16 gWaypointCountByPathIndex[]
f32 D_80163068[]
u16 D_80164430