Mario Kart 64
Loading...
Searching...
No Matches
Game.h
Go to the documentation of this file.
1#ifndef _GAME_H
2#define _GAME_H
3
4#include <libultraship.h>
6#include "engine/HM_Intro.h"
7
8#ifdef __cplusplus
10#include "engine/Registry.h"
11class Track;
12struct Properties;
13class World;
14
15template<class T, typename... TArgs> T* SpawnActor(TArgs&&... args) {
16 return T::Spawn(std::forward<TArgs>(args)...);
17}
18
19extern "C" {
20#endif
21#include "camera.h"
22#include "actor_types.h"
23#include "code_800029B0.h"
24
25extern s32 gTrophyIndex;
26
27#ifdef __cplusplus
28extern TrackEditor::Editor gEditor;
29extern HarbourMastersIntro gMenuIntro;
30extern bool bCleanWorld;
33World* GetWorld(void); // Retrieve the world instance
34#endif
35// NOLINTBEGIN(readability-identifier-naming)
36
37uintptr_t CM_GetTrack();
39
40void HM_InitIntro(void);
41void HM_TickIntro(void);
42void HM_DrawIntro(void);
43
44void CM_DisplayBattleBombKart(s32 playerId, s32 primAlpha);
45void CM_DrawBattleBombKarts(s32 cameraId);
46
47u32 WorldNextCup(void);
48
49u32 WorldPreviousCup(void);
50
51u32 GetCupIndex(void);
52
53const char* GetCupName(void);
54
55void LoadTrack();
56
57void CM_SetCup(void*);
58
59void CM_SetCupIndex(size_t index);
60
61void CM_DrawTrack(ScreenContext* arg0);
62
64void CM_ActivateFinishLakitu(s32 playerId);
65void CM_ActivateSecondLapLakitu(s32 playerId);
66void CM_ActivateFinalLapLakitu(s32 playerId);
67void CM_ActivateReverseLakitu(s32 playerId);
68
69void CM_InitClouds();
70
71void CM_DrawActors(Camera* camera);
73
74Camera* CM_GetPlayerCamera(s32 playerIndex);
75void CM_SetViewProjection(Camera* camera);
76void CM_TickCameras();
77Camera* CM_AddCamera(Vec3f spawn, s16 rot, u32 mode);
78Camera* CM_AddFreeCamera(Vec3f spawn, s16 rot, u32 mode);
79Camera* CM_AddTourCamera(Vec3f spawn, s16 rot, u32 mode);
80bool CM_IsTourEnabled();
81Camera* CM_AddLookBehindCamera(Vec3f spawn, s16 rot, u32 mode);
82void CM_AttachCamera(Camera* camera, s32 playerIdx);
83void CM_SetFreeCamera(bool state);
84void CM_CameraSetActive(size_t idx, bool state);
85void CM_ActivateTourCamera(Camera* camera);
86void CM_TickObjects();
88void CM_DrawObjects(s32 cameraId);
89
90void CM_TickEditor();
91void CM_DrawEditor();
95
96void CM_TickParticles(void);
97void CM_DrawParticles(s32 cameraId);
98
99void CM_TickClouds(s32 arg0, Camera* camera);
100
101void CM_Waypoints(Player* player, int8_t playerId);
102
103void CM_SomeCollisionThing(Player* player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32* arg4, f32* arg5, f32* arg6,
104 f32* arg7);
105
107
109
110void CM_DrawTrackObjects(s32 cameraId);
111
112void CM_SomeSounds();
113
115
116void CM_WhatDoesThisDo(Player* player, int8_t playerId);
117
118void CM_WhatDoesThisDoAI(Player* player, int8_t playerId);
119
120void CM_SetStaffGhost();
121
122void CM_BombKartsWaypoint(s32 cameraId);
123
125
126s32 CM_GetCrossingOnTriggered(uintptr_t* crossing);
127
128void CM_BeginPlay();
129
130void CM_DrawWater(ScreenContext* screen, uint16_t pathCounter, uint16_t cameraRot,
131 uint16_t playerDirection);
132
133void CM_AICrossingBehaviour(s32 playerId);
134
135void CM_ClearVehicles(void);
136
137void CM_CrossingTrigger();
138
139void CM_VehicleCollision(s32 playerId, Player* player);
140
141void CM_TickActors();
142
143void CM_DrawBombKarts(s32 cameraId);
144
145void SetMarioRaceway(void);
146
147size_t GetCupCursorPosition();
148
149void SetCupCursorPosition(size_t position);
150
151size_t GetCupSize();
152
153void* GetTrack(void);
154
155struct Actor* CM_GetActor(size_t index);
156void CM_DeleteActor(size_t index);
157struct Actor* CM_AddBaseActor();
158void CM_ActorBeginPlay(struct Actor* actor);
159void CM_ActorGenerateCollision(struct Actor* actor);
160void Editor_AddLight(s8* direction);
161size_t CM_GetActorSize();
162size_t CM_FindActorIndex(struct Actor* actor);
163void CM_ActorCollision(Player* player, struct Actor* actor);
164void CM_CleanCameras(void);
165void CM_CleanWorld(void);
166
167f32 CM_GetWaterLevel(Vec3f pos, Collision* collision);
168
169bool IsMarioRaceway();
170bool IsLuigiRaceway();
171bool IsChocoMountain();
172bool IsBowsersCastle();
173bool IsBansheeBoardwalk();
174bool IsYoshiValley();
175bool IsFrappeSnowland();
176bool IsKoopaTroopaBeach();
177bool IsRoyalRaceway();
178bool IsMooMooFarm();
179bool IsToadsTurnpike();
180bool IsKalimariDesert();
181bool IsSherbetLand();
182bool IsRainbowRoad();
183bool IsWarioStadium();
184bool IsBlockFort();
185bool IsSkyscraper();
186bool IsDoubleDeck();
187bool IsDkJungle();
188bool IsBigDonut();
189bool IsPodiumCeremony();
190
191void SelectMarioRaceway();
192void SelectLuigiRaceway();
196void SelectYoshiValley();
199void SelectRoyalRaceway();
200void SelectMooMooFarm();
203void SelectSherbetLand();
204void SelectRainbowRoad();
205void SelectWarioStadium();
206void SelectBlockFort();
207void SelectSkyscraper();
208void SelectDoubleDeck();
209void SelectDkJungle();
210void SelectBigDonut();
212
213void* GetMushroomCup(void);
214
215void* GetFlowerCup(void);
216
217void* GetStarCup(void);
218
219void* GetSpecialCup(void);
220
221void* GetBattleCup(void);
222
223void* GetCup();
224
225void CM_RunGarbageCollector(void);
226void CM_ResetAudio(void);
227
228// NOLINTEND(readability-identifier-naming)
229
230#ifdef __cplusplus
231}
232#endif
233
234#endif // _GAME_H
Registry< TrackInfo > gTrackRegistry
Definition Game.cpp:76
bool bCleanWorld
Definition Game.cpp:60
s32 gTrophyIndex
Definition Game.cpp:74
HarbourMastersIntro gMenuIntro
Definition Game.cpp:70
TrackEditor::Editor gEditor
Definition Game.cpp:72
Registry< ActorInfo, const SpawnParams & > gActorRegistry
Definition Game.cpp:77
World * GetWorld()
Definition Game.cpp:81
void CM_InitClouds()
Definition Game.cpp:542
void CM_SomeSounds()
Definition Game.cpp:588
u32 GetCupIndex(void)
Definition Game.cpp:193
size_t CM_GetActorSize()
Definition Game.cpp:788
bool IsBlockFort()
Definition Game.cpp:821
void * GetTrack(void)
Definition Game.cpp:700
void CM_TickClouds(s32 arg0, Camera *camera)
Definition Game.cpp:548
void CM_CleanWorld(void)
Definition Game.cpp:741
void SelectDkJungle()
Definition Game.cpp:846
void SelectSkyscraper()
Definition Game.cpp:844
void SelectChocoMountain()
Definition Game.cpp:830
bool IsWarioStadium()
Definition Game.cpp:820
void CM_AICrossingBehaviour(s32 playerId)
Definition Game.cpp:260
void CM_ActorGenerateCollision(struct Actor *actor)
Definition Game.cpp:761
Camera * CM_AddTourCamera(Vec3f spawn, s16 rot, u32 mode)
Definition Game.cpp:411
void SelectToadsTurnpike()
Definition Game.cpp:838
void CM_DrawActors(Camera *camera)
Definition Game.cpp:325
void CM_DisplayBattleBombKart(s32 playerId, s32 primAlpha)
Definition Game.cpp:227
void SelectBlockFort()
Definition Game.cpp:843
void CM_SetStaffGhost()
Definition Game.cpp:612
bool IsLuigiRaceway()
Definition Game.cpp:807
void CM_AttachCamera(Camera *camera, s32 playerIdx)
Definition Game.cpp:464
Properties * CM_GetProps()
Definition Game.cpp:623
void CM_DrawParticles(s32 cameraId)
Definition Game.cpp:536
void CM_DrawStaticMeshActors()
Definition Game.cpp:342
void CM_ActivateTourCamera(Camera *camera)
Definition Game.cpp:494
void HM_DrawIntro(void)
Definition Game.cpp:165
bool IsBansheeBoardwalk()
Definition Game.cpp:810
void SelectMooMooFarm()
Definition Game.cpp:837
void SelectWarioStadium()
Definition Game.cpp:842
struct Actor * CM_AddBaseActor()
Definition Game.cpp:753
uintptr_t CM_GetTrack()
Definition Game.cpp:619
bool IsSherbetLand()
Definition Game.cpp:818
bool IsDkJungle()
Definition Game.cpp:824
bool IsDoubleDeck()
Definition Game.cpp:823
bool IsMarioRaceway()
Definition Game.cpp:806
bool IsRainbowRoad()
Definition Game.cpp:819
void CM_ClearVehicles(void)
Definition Game.cpp:248
void CM_Waypoints(Player *player, int8_t playerId)
Definition Game.cpp:554
void CM_TickCameras()
Definition Game.cpp:389
void CM_SetViewProjection(Camera *camera)
Definition Game.cpp:381
void HM_InitIntro(void)
Definition Game.cpp:157
void CM_DrawObjects(s32 cameraId)
Definition Game.cpp:516
void CM_RunGarbageCollector(void)
Definition Game.cpp:872
struct Actor * CM_GetActor(size_t index)
Definition Game.cpp:704
void SelectYoshiValley()
Definition Game.cpp:833
void CM_ResetAudio(void)
Definition Game.cpp:876
void Editor_CleanWorld()
Definition Game.cpp:781
void CM_TickEditor()
Definition Game.cpp:522
void CM_DrawTrack(ScreenContext *arg0)
Definition Game.cpp:283
void * GetSpecialCup(void)
Definition Game.cpp:863
void * GetBattleCup(void)
Definition Game.cpp:867
void CM_TickObjects()
Definition Game.cpp:502
Camera * CM_AddCamera(Vec3f spawn, s16 rot, u32 mode)
Definition Game.cpp:393
bool CM_IsTourEnabled()
Definition Game.cpp:443
void CM_DrawBombKarts(s32 cameraId)
void CM_ActivateFinalLapLakitu(s32 playerId)
Definition Game.cpp:673
void CM_TickParticles(void)
Definition Game.cpp:530
bool IsToadsTurnpike()
Definition Game.cpp:816
void CM_SetCupIndex(size_t index)
Definition Game.cpp:197
f32 CM_GetWaterLevel(Vec3f pos, Collision *collision)
Definition Game.cpp:800
void CM_InitTrackObjects()
Definition Game.cpp:567
void CM_BeginPlay()
Definition Game.cpp:346
void CM_WhatDoesThisDo(Player *player, int8_t playerId)
Definition Game.cpp:600
bool IsMooMooFarm()
Definition Game.cpp:815
void CM_SomeCollisionThing(Player *player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32 *arg4, f32 *arg5, f32 *arg6, f32 *arg7)
Definition Game.cpp:560
void SelectRainbowRoad()
Definition Game.cpp:841
bool IsBowsersCastle()
Definition Game.cpp:809
void * GetMushroomCup(void)
Definition Game.cpp:851
void Editor_ClearMatrix()
Definition Game.cpp:777
size_t CM_FindActorIndex(struct Actor *actor)
Definition Game.cpp:714
void CM_ActivateFinishLakitu(s32 playerId)
Definition Game.cpp:659
void SelectBowsersCastle()
Definition Game.cpp:831
void SelectPodiumCeremony()
Definition Game.cpp:848
void SelectRoyalRaceway()
Definition Game.cpp:836
void * GetStarCup(void)
Definition Game.cpp:859
void SelectFrappeSnowland()
Definition Game.cpp:834
Camera * CM_AddLookBehindCamera(Vec3f spawn, s16 rot, u32 mode)
Definition Game.cpp:455
bool IsChocoMountain()
Definition Game.cpp:808
void CM_ActivateReverseLakitu(s32 playerId)
Definition Game.cpp:680
bool IsSkyscraper()
Definition Game.cpp:822
s32 CM_GetCrossingOnTriggered(uintptr_t *crossing)
Definition Game.cpp:268
bool IsKoopaTroopaBeach()
Definition Game.cpp:813
void CM_TickTrackObjects()
Definition Game.cpp:573
u32 WorldPreviousCup(void)
Definition Game.cpp:181
void * GetCup()
Definition Game.cpp:189
void CM_DrawBattleBombKarts(s32 cameraId)
Definition Game.cpp:242
void SelectMarioRaceway()
Definition Game.cpp:828
bool IsPodiumCeremony()
Definition Game.cpp:826
void CM_TickDraw()
void SelectDoubleDeck()
Definition Game.cpp:845
void CM_CreditsSpawnActors()
Definition Game.cpp:594
bool IsYoshiValley()
Definition Game.cpp:811
void SelectKoopaTroopaBeach()
Definition Game.cpp:835
void CM_WhatDoesThisDoAI(Player *player, int8_t playerId)
Definition Game.cpp:606
void * GetFlowerCup(void)
Definition Game.cpp:855
void CM_TickObjects60fps()
Definition Game.cpp:510
void CM_VehicleCollision(s32 playerId, Player *player)
Definition Game.cpp:209
u32 WorldNextCup(void)
Definition Game.cpp:177
void CM_DrawTrackObjects(s32 cameraId)
Definition Game.cpp:580
bool IsBigDonut()
Definition Game.cpp:825
void CM_CleanCameras(void)
Definition Game.cpp:745
void CM_SpawnStarterLakitu()
Definition Game.cpp:646
void HM_TickIntro(void)
Definition Game.cpp:161
void CM_CameraSetActive(size_t idx, bool state)
Definition Game.cpp:468
void SelectBigDonut()
Definition Game.cpp:847
void CM_ActivateSecondLapLakitu(s32 playerId)
Definition Game.cpp:666
void CM_ActorBeginPlay(struct Actor *actor)
Definition Game.cpp:757
void CM_DrawEditor()
Definition Game.cpp:526
void CM_DeleteActor(size_t index)
Definition Game.cpp:731
bool IsKalimariDesert()
Definition Game.cpp:817
Camera * CM_GetPlayerCamera(s32 playerIndex)
Definition Game.cpp:368
void CM_BombKartsWaypoint(s32 cameraId)
Definition Game.cpp:217
void CM_ScrollingTextures()
Definition Game.cpp:630
void CM_DrawWater(ScreenContext *screen, uint16_t pathCounter, uint16_t cameraRot, uint16_t playerDirection)
Definition Game.cpp:636
void SelectLuigiRaceway()
Definition Game.cpp:829
void CM_SetFreeCamera(bool state)
Definition Game.cpp:474
void CM_ActorCollision(Player *player, struct Actor *actor)
Definition Game.cpp:792
void SelectBansheeBoardwalk()
Definition Game.cpp:832
void CM_SetCup(void *)
Definition Game.cpp:185
size_t GetCupCursorPosition()
Definition Game.cpp:687
void CM_TickActors()
Definition Game.cpp:319
void SetCupCursorPosition(size_t position)
Definition Game.cpp:691
void CM_CrossingTrigger()
Definition Game.cpp:252
void Editor_AddLight(s8 *direction)
Definition Game.cpp:771
size_t GetCupSize()
Definition Game.cpp:696
Camera * CM_AddFreeCamera(Vec3f spawn, s16 rot, u32 mode)
Definition Game.cpp:402
void SetMarioRaceway(void)
Definition Game.cpp:170
const char * GetCupName(void)
Definition Game.cpp:201
void SelectKalimariDesert()
Definition Game.cpp:839
bool IsFrappeSnowland()
Definition Game.cpp:812
void SelectSherbetLand()
Definition Game.cpp:840
void LoadTrack()
Definition Game.cpp:205
bool IsRoyalRaceway()
Definition Game.cpp:814
Definition Registry.h:54
Definition World.h:39
f32 Vec3f[3]
Definition common_structs.h:10
Definition actor_types.h:126
Vec3f pos
Definition actor_types.h:135
Definition camera.h:35
Definition common_structs.h:147
Definition common_structs.h:264
Definition Track.h:88
Definition code_800029B0.h:10