1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
|
#ifndef _GAME_H
#define _GAME_H
#include <libultraship.h>
#include "engine/courses/Course.h"
#include "engine/HM_Intro.h"
#ifdef __cplusplus
#include "engine/editor/Editor.h"
class Course;
extern "C" {
#endif
#include "camera.h"
#include "actor_types.h"
extern s32 gTrophyIndex;
#ifdef __cplusplus
extern Editor::Editor gEditor;
extern HarbourMastersIntro gMenuIntro;
#endif
Properties* CM_GetProps();
Properties* CM_GetPropsCourseId(s32 courseId);
void HM_InitIntro(void);
void HM_TickIntro(void);
void HM_DrawIntro(void);
void CM_SpawnFromLevelProps();
void CM_DisplayBattleBombKart(s32 playerId, s32 primAlpha);
void CM_DrawBattleBombKarts(s32 cameraId);
u32 WorldNextCup(void);
u32 WorldPreviousCup(void);
u32 GetCupIndex(void);
const char* GetCupName(void);
void LoadCourse();
size_t GetCourseIndex();
void SetCourse(const char* name);
void NextCourse();
void PreviousCourse();
void CM_SetCup(void*);
void CM_LoadTextures();
void CM_RenderCourse(struct UnkStruct_800DC5EC* arg0);
void CM_RenderCredits();
void CM_SpawnStarterLakitu();
void CM_ActivateFinishLakitu(s32 playerId);
void CM_ActivateSecondLapLakitu(s32 playerId);
void CM_ActivateFinalLapLakitu(s32 playerId);
void CM_ActivateReverseLakitu(s32 playerId);
bool CM_DoesFinishlineExist();
void CM_InitClouds();
void CM_DrawActors(Camera* camera, struct Actor* actor);
void CM_DrawStaticMeshActors();
void CM_TickObjects();
void CM_TickObjects60fps();
void CM_DrawObjects(s32 cameraId);
void CM_TickEditor();
void CM_DrawEditor();
void CM_Editor_SetLevelDimensions(s16 minX, s16 maxX, s16 minZ, s16 maxZ, s16 minY, s16 maxY);
void CM_TickDraw();
void Editor_ClearMatrix();
void CM_TickParticles(void);
void CM_DrawParticles(s32 cameraId);
void CM_UpdateClouds(s32 arg0, Camera* camera);
void CM_Waypoints(Player* player, int8_t playerId);
void CM_SomeCollisionThing(Player* player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32* arg4, f32* arg5, f32* arg6,
f32* arg7);
void CM_InitCourseObjects();
void CM_UpdateCourseObjects();
void CM_RenderCourseObjects(s32 cameraId);
void CM_SomeSounds();
void CM_CreditsSpawnActors();
void CM_WhatDoesThisDo(Player* player, int8_t playerId);
void CM_WhatDoesThisDoAI(Player* player, int8_t playerId);
void CM_SetStaffGhost();
void CM_BombKartsWaypoint(s32 cameraId);
void CM_ScrollingTextures();
s32 CM_GetCrossingOnTriggered(uintptr_t* crossing);
void CM_BeginPlay();
void CM_DrawWater(struct UnkStruct_800DC5EC* screen, uint16_t pathCounter, uint16_t cameraRot,
uint16_t playerDirection);
void CM_AICrossingBehaviour(s32 playerId);
void CM_ClearVehicles(void);
void CM_CrossingTrigger();
void CM_VehicleCollision(s32 playerId, Player* player);
void CM_TickActors();
void CM_DrawBombKarts(s32 cameraId);
size_t GetCupCursorPosition();
void SetCupCursorPosition(size_t position);
size_t GetCupSize();
void SetCourseFromCup();
void* GetCourse(void);
void SetCourseById(s32 course);
void SetCourseByClass(void* course);
struct Actor* CM_GetActor(size_t index);
void CM_DeleteActor(size_t index);
struct Actor* CM_AddBaseActor();
void CM_AddEditorObject(struct Actor* actor, const char* name);
void Editor_AddLight(s8* direction);
size_t CM_GetActorSize();
size_t CM_FindActorIndex(struct Actor* actor);
void CM_ActorCollision(Player* player, struct Actor* actor);
void CM_CleanWorld(void);
f32 CM_GetWaterLevel(Vec3f pos, Collision* collision);
bool IsMarioRaceway();
bool IsLuigiRaceway();
bool IsChocoMountain();
bool IsBowsersCastle();
bool IsBansheeBoardwalk();
bool IsYoshiValley();
bool IsFrappeSnowland();
bool IsKoopaTroopaBeach();
bool IsRoyalRaceway();
bool IsMooMooFarm();
bool IsToadsTurnpike();
bool IsKalimariDesert();
bool IsSherbetLand();
bool IsRainbowRoad();
bool IsWarioStadium();
bool IsBlockFort();
bool IsSkyscraper();
bool IsDoubleDeck();
bool IsDkJungle();
bool IsBigDonut();
bool IsPodiumCeremony();
void SelectMarioRaceway();
void SelectLuigiRaceway();
void SelectChocoMountain();
void SelectBowsersCastle();
void SelectBansheeBoardwalk();
void SelectYoshiValley();
void SelectFrappeSnowland();
void SelectKoopaTroopaBeach();
void SelectRoyalRaceway();
void SelectMooMooFarm();
void SelectToadsTurnpike();
void SelectKalimariDesert();
void SelectSherbetLand();
void SelectRainbowRoad();
void SelectWarioStadium();
void SelectBlockFort();
void SelectSkyscraper();
void SelectDoubleDeck();
void SelectDkJungle();
void SelectBigDonut();
void SelectPodiumCeremony();
void* GetMushroomCup(void);
void* GetFlowerCup(void);
void* GetStarCup(void);
void* GetSpecialCup(void);
void* GetBattleCup(void);
void* GetCup();
void CM_RunGarbageCollector(void);
#ifdef __cplusplus
}
#endif
#endif // _GAME_H
|