Mario Kart 64
Loading...
Searching...
No Matches
code_800029B0.h
Go to the documentation of this file.
1#ifndef CODE_800029B0_H
2#define CODE_800029B0_H
3
4#include <macros.h>
5#include <libultraship.h>
6#include <actor_types.h>
7#include "camera.h"
8
10 /* 0x00 */ struct Controller* controllers; // gControllers ptr 800F6910
11 /* 0x04 */ Camera* camera; // Player camera ptr
12 /* 0x08 */ Player* player; // Player ptr 800F6990
13 /* 0x0C */ s32* unkC; // unk struct?
14 /* 0x10 */ Vp viewport;
15 /* 0x20 */ s32 pad[2];
16 /* 0x28 */ s16 cameraHeight;
17 /* 0x2A */ s16 unk;
18 /* 0x2C */ s16 screenWidth;
19 /* 0x2E */ s16 screenHeight;
20 /* 0x30 */ s16 screenStartX;
21 /* 0x32 */ s16 screenStartY;
22 /* 0x34 */ s16 unk3C;
23 /* 0x36 */ s16 playerDirection;
24 /* 0x38 */ s16 pathCounter;
25 /* 0x3A */ s16 unk42;
26 /* 0x3C */ s32 pad2;
27}; // size = 0x40
28
29/* Function Prototypes */
30
31void func_800029B0(void);
32void setup_race(void);
33void setup_editor(void);
34void func_80002DAC(void);
35void clear_nmi_buffer(void);
36void credits_spawn_actors(void);
37
38extern s16 gCurrentCourseId; // D_800DC5A0
40extern u16 D_800DC5A8;
41extern s32 D_800DC5AC;
42extern u16 D_800DC5B0;
43extern u16 D_800DC5B4;
44extern u16 D_800DC5B8;
45extern u16 D_800DC5BC;
48extern u16 D_800DC5C8;
49extern u16 D_800DC5CC;
50extern s32 D_800DC5D0;
51extern s32 D_800DC5D4;
52extern s32 D_800DC5D8;
53extern s32 D_800DC5DC;
54extern s32 D_800DC5E0;
55// This is tracking which credit "state" we're in, decides which credits are shown (and probably other stuff)
56extern u16 D_800DC5E4;
57extern s32 gPlayerWinningIndex;
58
59extern struct UnkStruct_800DC5EC D_8015F480[4];
60extern struct UnkStruct_800DC5EC* D_800DC5EC;
61extern struct UnkStruct_800DC5EC* D_800DC5F0;
62extern struct UnkStruct_800DC5EC* D_800DC5F4;
63extern struct UnkStruct_800DC5EC* D_800DC5F8;
64extern u16 gIsGamePaused;
65extern bool gIsEditorPaused;
66extern u8* pAppNmiBuffer;
67extern s32 gIsMirrorMode; // D_800DC604
68extern void set_mirror_mode(s32 mirror);
69extern s16 gCreditsCourseId;
70extern s16 gPlaceItemBoxes;
71extern Vec3f gVtxStretch;
72
74extern u16* gCollisionIndices;
75extern u16 gCollisionMeshCount;
76extern u16 gNumCollisionTriangles;
77extern u32 D_8015F58C;
78
79extern Vec3f D_8015F590;
80extern s32 D_8015F59C;
81extern s32 D_8015F5A0;
82extern s32 D_8015F5A4;
83
84extern Vtx* vtxBuffer[];
85extern s16 gCourseMaxX;
86extern s16 gCourseMinX;
87
88extern s16 gCourseMaxY;
89extern s16 gCourseMinY;
90
91extern s16 gCourseMaxZ;
92extern s16 gCourseMinZ;
93extern s16 D_8015F6F4;
94extern s16 D_8015F6F6;
95extern u16 D_8015F6F8;
96extern s16 D_8015F6FA;
97extern s16 D_8015F6FC;
98extern u16 gNumSpawnedShells;
99
100extern u16 D_8015F700;
101extern u16 D_8015F702;
102extern f32 D_8015F704;
103extern Vec3f D_8015F708;
104extern UNUSED u32 D_8015F718[3];
105extern size_t gFreeMemorySize;
106extern uintptr_t gNextFreeMemoryAddress;
107extern uintptr_t gHeapEndPtr;
108
116extern uintptr_t gFreeMemoryCourseAnchor;
117extern uintptr_t gFreeMemoryResetAnchor;
118extern Vec3f D_8015F738;
119extern Vec3f D_8015F748;
120extern Vec3f D_8015F758;
121extern Vec3f D_8015F768;
122extern Vec3f D_8015F778;
123
124extern f32 gCourseDirection;
125extern s32 gNumScreens;
126
127extern s32 D_8015F790[];
128extern u16 D_8015F890;
129extern u16 D_8015F892;
130extern u16 D_8015F894;
132
133extern u8* gNmiUnknown1;
134extern u8* gNmiUnknown2;
135extern u8* gNmiUnknown3;
136extern u8* gNmiUnknown4;
137extern u8* gNmiUnknown5;
138extern u8* gNmiUnknown6;
139
140extern Vec3f D_8015F8D0;
141extern s32 D_8015F8DC;
142
143extern s32 D_8015F8E0;
144extern f32 gWaterLevel;
145extern f32 gWaterVelocity;
146extern s16 gPlayerPositionLUT[]; // Player index at each position
147extern u16 gNumPermanentActors;
148
149extern UNUSED u8 D_80162578[];
150extern s16 gDebugPathCount;
151extern s16 sIsController1Unplugged;
152extern s32 D_801625EC;
153extern s32 D_801625F0;
154extern s32 D_801625F4;
155extern uintptr_t D_801625F8;
156extern f32 D_801625FC;
157
158#endif
s16 gCourseMaxY
Definition code_800029B0.c:101
s32 D_800DC5D0
Definition code_800029B0.c:45
u16 * gCollisionIndices
Definition code_800029B0.c:86
u8 * gNmiUnknown2
Definition code_800029B0.c:144
ALIGNED16 struct UnkStruct_800DC5EC D_8015F480[4]
Definition code_800029B0.c:58
Vec3f gVtxStretch
Definition code_800029B0.c:74
s16 gCurrentCourseId
Definition code_800029B0.c:33
f32 gWaterLevel
Definition code_800029B0.c:154
s16 gCourseMinZ
Definition code_800029B0.c:105
u32 D_8015F58C
Definition code_800029B0.c:89
s32 D_800DC5DC
Definition code_800029B0.c:48
UNUSED u8 D_80162578[sizeof(struct Actor)]
Definition code_800029B0.c:162
s16 gCourseMaxZ
Definition code_800029B0.c:104
u8 * pAppNmiBuffer
Definition code_800029B0.c:65
u16 gIsGamePaused
Definition code_800029B0.c:63
f32 D_8015F704
Definition code_800029B0.c:120
Vec3f D_8015F708
Definition code_800029B0.c:121
u16 D_800DC5E4
Definition code_800029B0.c:53
s16 gCourseMinX
Definition code_800029B0.c:99
u16 gIsInQuitToMenuTransition
Definition code_800029B0.c:41
s32 D_800DC5AC
Definition code_800029B0.c:36
u16 gNumCollisionTriangles
Definition code_800029B0.c:88
s16 D_8015F6F6
Definition code_800029B0.c:108
Vec3f D_8015F738
Definition code_800029B0.c:128
f32 gTimePlayerLastTouchedFinishLine[NUM_PLAYERS]
Definition code_800029B0.c:141
s32 D_8015F5A4
Definition code_800029B0.c:94
f32 D_801625FC
Definition code_800029B0.c:170
uintptr_t gFreeMemoryResetAnchor
Definition code_800029B0.c:127
s16 sIsController1Unplugged
Definition code_800029B0.c:165
struct UnkStruct_800DC5EC * D_800DC5F8
Definition code_800029B0.c:62
s32 D_8015F8DC
Definition code_800029B0.c:151
f32 gCourseDirection
Definition code_800029B0.c:134
bool gIsEditorPaused
Definition code_800029B0.c:64
Vec3f D_8015F758
Definition code_800029B0.c:130
u16 gQuitToMenuTransitionCounter
Definition code_800029B0.c:42
u16 D_8015F894
Definition code_800029B0.c:139
s32 gNumScreens
Definition code_800029B0.c:135
s16 D_8015F6F4
Definition code_800029B0.c:107
u16 D_8015F890
Definition code_800029B0.c:137
u16 gNumPermanentActors
Definition code_800029B0.c:157
s32 D_8015F59C
Definition code_800029B0.c:92
s32 D_8015F8E0
Definition code_800029B0.c:153
u16 D_8015F702
Definition code_800029B0.c:119
u8 * gNmiUnknown3
Definition code_800029B0.c:145
s16 D_8015F6FC
Definition code_800029B0.c:111
s32 D_801625EC
Definition code_800029B0.c:166
s16 gCurrentlyLoadedCourseId
Definition code_800029B0.c:34
u16 D_800DC5B0
Definition code_800029B0.c:37
s32 D_8015F5A0
Definition code_800029B0.c:93
s32 D_800DC5D4
Definition code_800029B0.c:46
uintptr_t D_801625F8
Definition code_800029B0.c:169
s16 gCreditsCourseId
Definition code_800029B0.c:81
s32 D_801625F0
Definition code_800029B0.c:167
Vec3f D_8015F778
Definition code_800029B0.c:132
u16 D_8015F892
Definition code_800029B0.c:138
struct UnkStruct_800DC5EC * D_800DC5F4
Definition code_800029B0.c:61
uintptr_t gFreeMemoryCourseAnchor
Definition code_800029B0.c:126
s32 gPlayerWinningIndex
Definition code_800029B0.c:56
s32 D_801625F4
Definition code_800029B0.c:168
u8 * gNmiUnknown4
Definition code_800029B0.c:146
u16 D_800DC5A8
Definition code_800029B0.c:35
Vtx * vtxBuffer[32]
Definition code_800029B0.c:96
u16 D_800DC5C8
Definition code_800029B0.c:43
s32 D_800DC5E0
Definition code_800029B0.c:50
s16 gCourseMinY
Definition code_800029B0.c:102
size_t gFreeMemorySize
Definition code_800029B0.c:123
s32 D_8015F790[64]
Definition code_800029B0.c:136
u16 gNumSpawnedShells
Definition code_800029B0.c:116
s32 D_800DC5D8
Definition code_800029B0.c:47
s32 gIsMirrorMode
Definition code_800029B0.c:67
s16 gPlaceItemBoxes
Definition code_800029B0.c:82
uintptr_t gHeapEndPtr
Definition code_800029B0.c:125
struct UnkStruct_800DC5EC * D_800DC5F0
Definition code_800029B0.c:60
u8 * gNmiUnknown5
Definition code_800029B0.c:147
uintptr_t gNextFreeMemoryAddress
Definition code_800029B0.c:124
struct UnkStruct_800DC5EC * D_800DC5EC
Definition code_800029B0.c:59
s16 gCourseMaxX
Definition code_800029B0.c:98
u16 gCollisionMeshCount
Definition code_800029B0.c:87
CollisionTriangle * gCollisionMesh
Definition code_800029B0.c:85
u16 D_800DC5B4
Definition code_800029B0.c:38
u8 * gNmiUnknown1
Definition code_800029B0.c:143
Vec3f D_8015F768
Definition code_800029B0.c:131
Vec3f D_8015F8D0
Definition code_800029B0.c:150
u16 D_8015F700
Definition code_800029B0.c:118
u16 D_800DC5BC
Definition code_800029B0.c:40
s16 D_8015F6FA
Definition code_800029B0.c:110
u16 D_800DC5B8
Definition code_800029B0.c:39
f32 gWaterVelocity
Definition code_800029B0.c:155
UNUSED u32 D_8015F718[3]
Definition code_800029B0.c:122
s16 gPlayerPositionLUT[8]
Definition code_800029B0.c:156
Vec3f D_8015F590
Definition code_800029B0.c:91
UNUSED u16 D_800DC5CC
Definition code_800029B0.c:44
u16 D_8015F6F8
Definition code_800029B0.c:109
u8 * gNmiUnknown6
Definition code_800029B0.c:148
s16 gDebugPathCount
Definition code_800029B0.c:164
Vec3f D_8015F748
Definition code_800029B0.c:129
void clear_nmi_buffer(void)
Definition code_800029B0.c:365
void set_mirror_mode(s32 mirror)
Definition code_800029B0.c:68
void func_800029B0(void)
Definition code_800029B0.c:178
void func_80002DAC(void)
Definition code_800029B0.c:322
void setup_editor(void)
Definition code_800029B0.c:276
void credits_spawn_actors(void)
Definition code_800029B0.c:375
void setup_race(void)
Definition code_800029B0.c:192
f32 Vec3f[3]
Definition common_structs.h:10
#define UNUSED
Definition macros.h:26
Definition camera.h:27
Definition common_structs.h:205
Definition common_structs.h:66
Definition common_structs.h:264
Definition code_800029B0.h:9
s32 pad2
Definition code_800029B0.h:26
struct Controller * controllers
Definition code_800029B0.h:10
Camera * camera
Definition code_800029B0.h:11
s32 pad[2]
Definition code_800029B0.h:15
s16 screenHeight
Definition code_800029B0.h:19
s16 unk
Definition code_800029B0.h:17
Player * player
Definition code_800029B0.h:12
s32 * unkC
Definition code_800029B0.h:13
s16 screenStartX
Definition code_800029B0.h:20
s16 playerDirection
Definition code_800029B0.h:23
s16 screenWidth
Definition code_800029B0.h:18
s16 cameraHeight
Definition code_800029B0.h:16
s16 screenStartY
Definition code_800029B0.h:21
Vp viewport
Definition code_800029B0.h:14
s16 pathCounter
Definition code_800029B0.h:24
s16 unk42
Definition code_800029B0.h:25
s16 unk3C
Definition code_800029B0.h:22