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#include "engine/CoreMath.h"
9
10typedef struct {
11 /* 0x00 */ struct Controller* controllers; // gControllers ptr 800F6910
12 /* 0x04 */ Camera* camera; // The active camera
14 /* */ Camera* lookBehindCamera; // The lookBehind camera
16 /* */ Camera* pendingCamera; // The camera to switch too next frame
17 /* 0x08 */ Player* player; // Player ptr 800F6990
18 /* 0x0C */ s32* unkC; // unk struct?
19 /* 0x10 */ Vp viewport;
20 /* 0x20 */ s32 pad[2];
21 /* 0x28 */ s16 cameraHeight;
22 /* 0x2A */ s16 unk;
23 /* 0x2C */ s16 screenWidth;
24 /* 0x2E */ s16 screenHeight;
25 /* 0x30 */ s16 screenStartX;
26 /* 0x32 */ s16 screenStartY;
27 /* 0x34 */ s16 unk3C;
28 /* 0x36 */ s16 playerDirection;
29 /* 0x38 */ s16 pathCounter;
30 /* 0x3A */ s16 unk42;
31 /* 0x3C */ s32 pad2;
33
34/* Function Prototypes */
35
36void func_800029B0(void);
37void setup_race(void);
38void setup_editor(void);
39void func_80002DAC(void);
40void clear_nmi_buffer(void);
41void credits_spawn_actors(void);
42
43extern s16 gCurrentCourseId; // D_800DC5A0
44extern uintptr_t gCurrentlyLoadedTrackAddr;
45extern u16 D_800DC5A8;
46extern s32 D_800DC5AC;
47extern u16 D_800DC5B0;
48extern u16 D_800DC5B4;
49extern u16 D_800DC5B8;
50extern bool bFog;
53extern u16 D_800DC5C8;
54extern u16 D_800DC5CC;
55extern s32 D_800DC5D0;
56extern s32 D_800DC5D4;
57extern s32 D_800DC5D8;
58extern s32 D_800DC5DC;
59extern s32 D_800DC5E0;
60// This is tracking which credit "state" we're in, decides which credits are shown (and probably other stuff)
61extern u16 D_800DC5E4;
62extern s32 gPlayerWinningIndex;
63
69extern u16 gIsGamePaused;
70extern u8* pAppNmiBuffer;
71extern s32 gIsMirrorMode; // D_800DC604
72extern void set_mirror_mode(s32 mirror);
73extern s16 gCreditsCourseId;
74extern s16 gPlaceItemBoxes;
75extern Vec3f gVtxStretch;
76
78extern u16* gCollisionIndices;
79extern u16 gCollisionMeshCount;
80extern u16 gNumCollisionTriangles;
81extern u32 D_8015F58C;
82
83extern Vec3f D_8015F590;
84extern s32 D_8015F59C;
85extern s32 D_8015F5A0;
86extern s32 D_8015F5A4;
87
88extern Vtx* vtxBuffer[];
89extern s16 gTrackMaxX;
90extern s16 gTrackMinX;
91
92extern s16 gTrackMaxY;
93extern s16 gTrackMinY;
94
95extern s16 gTrackMaxZ;
96extern s16 gTrackMinZ;
97extern s16 D_8015F6F4;
98extern s16 D_8015F6F6;
99extern u16 D_8015F6F8;
100extern s16 D_8015F6FA;
101extern s16 D_8015F6FC;
102extern u16 gNumSpawnedShells;
103
104extern u16 D_8015F700;
105extern u16 D_8015F702;
106extern f32 D_8015F704;
107extern Vec3f D_8015F708;
108extern UNUSED u32 D_8015F718[3];
109extern size_t gFreeMemorySize;
110extern uintptr_t gNextFreeMemoryAddress;
111extern uintptr_t gHeapEndPtr;
112
120extern uintptr_t gFreeMemoryCourseAnchor;
121extern uintptr_t gFreeMemoryResetAnchor;
122extern Vec3f D_8015F738;
123extern Vec3f D_8015F748;
124extern Vec3f D_8015F758;
125extern Vec3f D_8015F768;
126extern Vec3f D_8015F778;
127
128extern f32 gTrackDirection;
129extern s32 gNumScreens;
130
131extern s32 D_8015F790[];
132extern u16 D_8015F890;
133extern u16 D_8015F892;
134extern u16 D_8015F894;
136
137extern u8* gNmiUnknown1;
138extern u8* gNmiUnknown2;
139extern u8* gNmiUnknown3;
140extern u8* gNmiUnknown4;
141extern u8* gNmiUnknown5;
142extern u8* gNmiUnknown6;
143
144extern Vec3f D_8015F8D0;
145extern s32 D_8015F8DC;
146
147extern s32 D_8015F8E0;
148extern f32 gWaterLevel;
149extern f32 gWaterVelocity;
150extern s16 gPlayerPositionLUT[]; // Player index at each position
151extern u16 gNumPermanentActors;
152
153extern UNUSED u8 D_80162578[];
154extern s16 gDebugPathCount;
155extern s16 sIsController1Unplugged;
156extern struct RGBA8 gFogColour;
157extern uintptr_t D_801625F8;
158extern f32 D_801625FC;
159
160#endif
s32 D_800DC5D0
Definition code_800029B0.c:47
u16 * gCollisionIndices
Definition code_800029B0.c:84
u8 * gNmiUnknown2
Definition code_800029B0.c:142
Vec3f gVtxStretch
Definition code_800029B0.c:72
s16 gCurrentCourseId
Definition code_800029B0.c:35
f32 gWaterLevel
Definition code_800029B0.c:152
u32 D_8015F58C
Definition code_800029B0.c:87
s32 D_800DC5DC
Definition code_800029B0.c:50
UNUSED u8 D_80162578[sizeof(struct Actor)]
Definition code_800029B0.c:160
u8 * pAppNmiBuffer
Definition code_800029B0.c:66
u16 gIsGamePaused
Definition code_800029B0.c:65
f32 D_8015F704
Definition code_800029B0.c:118
Vec3f D_8015F708
Definition code_800029B0.c:119
u16 D_800DC5E4
Definition code_800029B0.c:55
s16 gTrackMinY
Definition code_800029B0.c:100
u16 gIsInQuitToMenuTransition
Definition code_800029B0.c:43
bool bFog
Definition code_800029B0.c:42
s32 D_800DC5AC
Definition code_800029B0.c:38
u16 gNumCollisionTriangles
Definition code_800029B0.c:86
s16 D_8015F6F6
Definition code_800029B0.c:106
Vec3f D_8015F738
Definition code_800029B0.c:126
ScreenContext * gScreenTwoCtx
Definition code_800029B0.c:62
f32 gTimePlayerLastTouchedFinishLine[NUM_PLAYERS]
Definition code_800029B0.c:139
s32 D_8015F5A4
Definition code_800029B0.c:92
f32 D_801625FC
Definition code_800029B0.c:166
uintptr_t gFreeMemoryResetAnchor
Definition code_800029B0.c:125
ScreenContext * gScreenThreeCtx
Definition code_800029B0.c:63
s16 sIsController1Unplugged
Definition code_800029B0.c:163
ScreenContext * gScreenOneCtx
Definition code_800029B0.c:61
s32 D_8015F8DC
Definition code_800029B0.c:149
Vec3f D_8015F758
Definition code_800029B0.c:128
u16 gQuitToMenuTransitionCounter
Definition code_800029B0.c:44
u16 D_8015F894
Definition code_800029B0.c:137
s32 gNumScreens
Definition code_800029B0.c:133
s16 D_8015F6F4
Definition code_800029B0.c:105
s16 gTrackMaxX
Definition code_800029B0.c:96
u16 D_8015F890
Definition code_800029B0.c:135
u16 gNumPermanentActors
Definition code_800029B0.c:155
s32 D_8015F59C
Definition code_800029B0.c:90
s32 D_8015F8E0
Definition code_800029B0.c:151
u16 D_8015F702
Definition code_800029B0.c:117
u8 * gNmiUnknown3
Definition code_800029B0.c:143
struct RGBA8 gFogColour
Definition code_800029B0.c:164
s16 D_8015F6FC
Definition code_800029B0.c:109
u16 D_800DC5B0
Definition code_800029B0.c:39
s32 D_8015F5A0
Definition code_800029B0.c:91
s32 D_800DC5D4
Definition code_800029B0.c:48
uintptr_t D_801625F8
Definition code_800029B0.c:165
s16 gCreditsCourseId
Definition code_800029B0.c:79
Vec3f D_8015F778
Definition code_800029B0.c:130
u16 D_8015F892
Definition code_800029B0.c:136
uintptr_t gFreeMemoryCourseAnchor
Definition code_800029B0.c:124
s32 gPlayerWinningIndex
Definition code_800029B0.c:58
s16 gTrackMaxY
Definition code_800029B0.c:99
s16 gTrackMinZ
Definition code_800029B0.c:103
u8 * gNmiUnknown4
Definition code_800029B0.c:144
u16 D_800DC5A8
Definition code_800029B0.c:37
s16 gTrackMaxZ
Definition code_800029B0.c:102
Vtx * vtxBuffer[32]
Definition code_800029B0.c:94
u16 D_800DC5C8
Definition code_800029B0.c:45
s32 D_800DC5E0
Definition code_800029B0.c:52
size_t gFreeMemorySize
Definition code_800029B0.c:121
s32 D_8015F790[64]
Definition code_800029B0.c:134
s16 gTrackMinX
Definition code_800029B0.c:97
u16 gNumSpawnedShells
Definition code_800029B0.c:114
s32 D_800DC5D8
Definition code_800029B0.c:49
s32 gIsMirrorMode
Definition code_800029B0.c:68
s16 gPlaceItemBoxes
Definition code_800029B0.c:80
uintptr_t gHeapEndPtr
Definition code_800029B0.c:123
u8 * gNmiUnknown5
Definition code_800029B0.c:145
ALIGNED16 ScreenContext gScreenContexts[4]
Definition code_800029B0.c:60
uintptr_t gNextFreeMemoryAddress
Definition code_800029B0.c:122
u16 gCollisionMeshCount
Definition code_800029B0.c:85
CollisionTriangle * gCollisionMesh
Definition code_800029B0.c:83
ScreenContext * gScreenFourCtx
Definition code_800029B0.c:64
u16 D_800DC5B4
Definition code_800029B0.c:40
u8 * gNmiUnknown1
Definition code_800029B0.c:141
Vec3f D_8015F768
Definition code_800029B0.c:129
Vec3f D_8015F8D0
Definition code_800029B0.c:148
uintptr_t gCurrentlyLoadedTrackAddr
Definition code_800029B0.c:36
u16 D_8015F700
Definition code_800029B0.c:116
s16 D_8015F6FA
Definition code_800029B0.c:108
u16 D_800DC5B8
Definition code_800029B0.c:41
f32 gWaterVelocity
Definition code_800029B0.c:153
UNUSED u32 D_8015F718[3]
Definition code_800029B0.c:120
s16 gPlayerPositionLUT[8]
Definition code_800029B0.c:154
Vec3f D_8015F590
Definition code_800029B0.c:89
UNUSED u16 D_800DC5CC
Definition code_800029B0.c:46
f32 gTrackDirection
Definition code_800029B0.c:132
u16 D_8015F6F8
Definition code_800029B0.c:107
u8 * gNmiUnknown6
Definition code_800029B0.c:146
s16 gDebugPathCount
Definition code_800029B0.c:162
Vec3f D_8015F748
Definition code_800029B0.c:127
void clear_nmi_buffer(void)
Definition code_800029B0.c:328
void set_mirror_mode(s32 mirror)
Definition code_800029B0.c:69
void func_800029B0(void)
Definition code_800029B0.c:174
void func_80002DAC(void)
Definition code_800029B0.c:320
void setup_editor(void)
Definition code_800029B0.c:273
void credits_spawn_actors(void)
Definition code_800029B0.c:338
void setup_race(void)
Definition code_800029B0.c:188
f32 Vec3f[3]
Definition common_structs.h:10
#define UNUSED
Definition macros.h:26
Definition camera.h:35
Definition common_structs.h:205
Definition common_structs.h:66
Definition common_structs.h:264
Definition CoreMath.h:17
Definition code_800029B0.h:10
Player * player
Definition code_800029B0.h:17
Vp viewport
Definition code_800029B0.h:19
struct Controller * controllers
Definition code_800029B0.h:11
s16 unk42
Definition code_800029B0.h:30
s16 screenWidth
Definition code_800029B0.h:23
s32 pad2
Definition code_800029B0.h:31
s16 unk3C
Definition code_800029B0.h:27
s16 unk
Definition code_800029B0.h:22
Camera * freeCamera
Definition code_800029B0.h:15
s16 pathCounter
Definition code_800029B0.h:29
Camera * lookBehindCamera
Definition code_800029B0.h:14
s16 screenStartY
Definition code_800029B0.h:26
s16 playerDirection
Definition code_800029B0.h:28
s16 screenStartX
Definition code_800029B0.h:25
Camera * pendingCamera
Definition code_800029B0.h:16
s32 * unkC
Definition code_800029B0.h:18
Camera * raceCamera
Definition code_800029B0.h:13
Camera * camera
Definition code_800029B0.h:12
s32 pad[2]
Definition code_800029B0.h:20
s16 cameraHeight
Definition code_800029B0.h:21
s16 screenHeight
Definition code_800029B0.h:24