Mario Kart 64
Loading...
Searching...
No Matches
defines.h
Go to the documentation of this file.
1
#ifndef DEFINES_H
2
#define DEFINES_H
3
7
#define OK 1
8
#define BAD 0
9
40
#if defined(GCC) || defined(DEBUG)
41
#define DEBUG_MODE 1
42
#define DEBUG_MENU 2
43
#else
44
#define DEBUG_MODE 0
45
#define DEBUG_MENU 1
46
#endif
47
48
#define HOLD_ALL_DPAD_AND_C_BUTTONS \
49
(U_JPAD | L_JPAD | R_JPAD | D_JPAD | U_CBUTTONS | L_CBUTTONS | R_CBUTTONS | D_CBUTTONS)
50
54
#define DEBUG_MENU_DISABLED 1
55
#define DEBUG_MENU_DEBUG_MODE 2
56
#define DEBUG_MENU_COURSE 3
57
#define DEBUG_MENU_SCREEN_MODE 4
58
#define DEBUG_MENU_PLAYER 5
59
#define DEBUG_MENU_SOUND_MODE 6
60
#define DEBUG_MENU_GIVE_ALL_GOLD_CUP 7
61
#define DEBUG_MENU_EXITED 64
62
66
#define DEBUG_GOTO_RACING 0
67
#define DEBUG_GOTO_ENDING 1
68
#define DEBUG_GOTO_CREDITS_SEQUENCE_CC_50 2
69
#define DEBUG_GOTO_CREDITS_SEQUENCE_CC_EXTRA 3
70
74
#define DEMO_MODE_ACTIVE 1
75
#define DEMO_MODE_INACTIVE 0
76
77
#ifdef VERSION_EU
78
#define COURSE_TIMER_ITER 0.020041665999999999
// 1 / 50
79
#define COURSE_TIMER_ITER_f 0.020041665999999999f
// 1 / 50
80
#else
81
#define COURSE_TIMER_ITER 0.01666666
// 1 / 60
82
#define COURSE_TIMER_ITER_f 0.01666666f
// 1 / 60
83
#endif
84
85
#define V_BlANK_TIMER_ITER 0.01666666
86
93
#define PLAYER_INACTIVE 0
// 0x0000
94
#define PLAYER_UNKNOWN_0x40 (1 << 6)
// 0x0040
95
#define PLAYER_INVISIBLE_OR_BOMB (1 << 8)
// 0x0100
96
#define PLAYER_STAGING (1 << 9)
// 0x0200
97
#define PLAYER_UNKNOWN (1 << 10)
// 0x0400 // unused ?
98
#define PLAYER_CINEMATIC_MODE (1 << 11)
// 0x0800 // Also used to track eliminations in Battle mode.
99
#define PLAYER_KART_AI (1 << 12)
// 0x1000
100
#define PLAYER_START_SEQUENCE (1 << 13)
// 0x2000
101
#define PLAYER_HUMAN (1 << 14)
// 0x4000
102
#define PLAYER_EXISTS (1 << 15)
// 0x8000
103
104
// Compiles to -0x1000 in diff.py
105
#define PLAYER_HUMAN_AND_KART_AI PLAYER_EXISTS | PLAYER_HUMAN | PLAYER_KART_AI | PLAYER_START_SEQUENCE
106
107
#define ZERO_PLAYERS_SELECTED 0
108
#define ONE_PLAYERS_SELECTED 1
109
#define TWO_PLAYERS_SELECTED 2
110
#define THREE_PLAYERS_SELECTED 3
111
#define FOUR_PLAYERS_SELECTED 4
112
#define SELECTED_PLAYER_DEFINES_TOTAL 5
113
114
enum
PlayerId
{
115
PLAYER_NONE
= -1,
116
PLAYER_ONE
= 0,
117
PLAYER_TWO
= 1,
118
PLAYER_THREE
= 2,
119
PLAYER_FOUR
= 3,
120
PLAYER_FIVE
= 4,
121
PLAYER_SIX
= 5,
122
PLAYER_SEVEN
= 6,
123
PLAYER_EIGHT
= 7
124
};
125
126
#define NUM_PLAYERS 8
127
128
#define MARIO_SIZE 0.75f
129
#define LUIGI_SIZE 0.75f
130
#define YOSHI_SIZE 0.75f
131
#define TOAD_SIZE 0.75f
132
#define DK_SIZE 0.75f
133
#define WARIO_SIZE 0.75f
134
#define PEACH_SIZE 0.75f
135
#define BOWSER_SIZE 0.75f
136
137
// 2P Game has Grand Prix, VS, and Battle as available game types
138
#define MAX_NUM_MAIN_MENU_GAME_TYPES 3
139
143
#define GRAND_PRIX 0
144
#define TIME_TRIALS 1
145
#define VERSUS 2
146
#define BATTLE 3
147
156
#define CC_50 0
157
#define CC_100 1
158
#define CC_150 2
159
#define CC_EXTRA 3
160
#define CC_BATTLE 4
161
168
enum
{
MUSHROOM_CUP
,
FLOWER_CUP
,
STAR_CUP
,
SPECIAL_CUP
,
BATTLE_CUP
,
NUM_CUPS
};
169
170
#define NUM_COURSES_PER_CUP 4
171
175
enum
{
COURSE_ONE
,
COURSE_TWO
,
COURSE_THREE
,
COURSE_FOUR
};
176
183
#define MARIO 0
184
#define LUIGI 1
185
#define YOSHI 2
186
#define TOAD 3
187
#define DK 4
188
#define WARIO 5
189
#define PEACH 6
190
#define BOWSER 7
191
195
#define OPTIONS_MENU 5
196
#define DATA_MENU 6
197
#define COURSE_DATA_MENU 7
198
#define LOGO_INTRO_MENU 8
199
#define CONTROLLER_PAK_MENU 9
200
#define START_MENU 10
201
#define MAIN_MENU 11
202
#define PLAYER_SELECT_MENU 12
203
#define COURSE_SELECT_MENU 13
204
#define RACING_DUPLICATE 14
205
209
#define START_MENU_FROM_QUIT 0
210
#define MAIN_MENU_FROM_QUIT 1
211
#define PLAYER_SELECT_MENU_FROM_QUIT 2
212
#define COURSE_SELECT_MENU_FROM_QUIT 3
213
#define RACING 4
214
#define ENDING 5
215
#define CREDITS_SEQUENCE 9
216
220
#define BLANK_MAIN_MENU 0
221
#define OPTIONS_SELECTION 1
222
#define DATA_SELECTION 2
223
#define PLAYER_NUM_SELECTION 3
224
#define GAME_MODE_SELECTION 4
225
#define GAME_MODE_CC_OR_TIME_TRIALS_OPTIONS_SELECTION \
226
5
// Selecting CC for GP and Versus. Selecting "Begin" or "Data" for Time Trials. Unused for Battle
227
#define CONFIRM_OK_SELECTION 6
228
#define CONFIRM_OK_SELECTION_FROM_BACK_OUT 7
229
#define TIME_TRIALS_DATA_SELECTION_FROM_BACK_OUT 8
230
234
#define CONTROLLER_PAK_MENU_SELECT_RECORD 1
235
#define CONTROLLER_PAK_MENU_END 2
236
#define CONTROLLER_PAK_MENU_ERASE 3
237
#define CONTROLLER_PAK_MENU_QUIT 4
238
#define CONTROLLER_PAK_MENU_TABLE_GAME_DATA 5
239
#define CONTROLLER_PAK_MENU_GO_TO_ERASING 6
240
#define CONTROLLER_PAK_MENU_ERASING 7
241
#define CONTROLLER_PAK_MENU_ERASE_ERROR_NOT_ERASED 8
242
#define CONTROLLER_PAK_MENU_ERASE_ERROR_NO_PAK 9
243
#define CONTROLLER_PAK_MENU_ERASE_ERROR_PAK_CHANGED 10
244
248
#define SCREEN_MODE_1P 0
249
#define SCREEN_MODE_2P_SPLITSCREEN_HORIZONTAL 1
250
#define SCREEN_MODE_2P_SPLITSCREEN_VERTICAL 2
251
#define SCREEN_MODE_3P_4P_SPLITSCREEN 3
252
#define NUM_SCREEN_MODES 4
253
257
#define TIME_TRIAL_3LAP_RECORD_1 0
258
#define TIME_TRIAL_3LAP_RECORD_2 1
259
#define TIME_TRIAL_3LAP_RECORD_3 2
260
#define TIME_TRIAL_3LAP_RECORD_4 3
261
#define TIME_TRIAL_3LAP_RECORD_5 4
262
#define TIME_TRIAL_1LAP_RECORD 5
263
272
#define TEXT_BLUE 0
273
#define TEXT_GREEN 1
274
#define TEXT_RED 2
275
#define TEXT_YELLOW 3
276
#define TEXT_BLUE_GREEN_RED_CYCLE_1 4
277
#define TEXT_BLUE_GREEN_RED_CYCLE_2 5
278
284
#define SOUND_STEREO 0
285
#define SOUND_HEADPHONES 1
286
#define SOUND_UNUSED 2
287
#define SOUND_MONO 3
288
#define NUM_SOUND_MODES 4
289
294
#define DEMO_ONE 0
// Mario, Mario Raceway, Grand Prix
295
#define DEMO_TWO 1
// Yoshi DK, Choco Mountain, Versus
296
#define DEMO_THREE 2
// Luigi, Kalamari Desert, Grand Prix
297
#define DEMO_FOUR 3
// Wario Yoshi Bowser, Wario Stadium, Versus
298
#define DEMO_FIVE 4
// Bowser, Bowser Castle, Grand Prix
299
#define DEMO_SIX 5
// Mario Luigi Peach Toad, Sherbert Land, Versus
300
#define NUM_DEMOS 6
301
305
enum
ITEMS
{
306
/* 0x00 */
ITEM_NONE
= 0,
307
/* 0x01 */
ITEM_BANANA
,
308
/* 0x02 */
ITEM_BANANA_BUNCH
,
309
/* 0x03 */
ITEM_GREEN_SHELL
,
310
/* 0x04 */
ITEM_TRIPLE_GREEN_SHELL
,
311
/* 0x05 */
ITEM_RED_SHELL
,
312
/* 0x06 */
ITEM_TRIPLE_RED_SHELL
,
313
/* 0x07 */
ITEM_BLUE_SPINY_SHELL
,
314
/* 0x08 */
ITEM_THUNDERBOLT
,
315
/* 0x09 */
ITEM_FAKE_ITEM_BOX
,
316
/* 0x0A */
ITEM_STAR
,
317
/* 0x0B */
ITEM_BOO
,
318
/* 0x0C */
ITEM_MUSHROOM
,
319
/* 0x0D */
ITEM_DOUBLE_MUSHROOM
,
320
/* 0x0E */
ITEM_TRIPLE_MUSHROOM
,
321
/* 0x0F */
ITEM_SUPER_MUSHROOM
322
};
323
324
enum
KART_AI_BEHAVIOURS
{
325
BEHAVIOUR_NONE
= 0,
326
BEHAVIOUR_1
,
327
BEHAVIOUR_HOP
,
328
BEHAVIOUR_3
,
329
BEHAVIOUR_4
,
330
BEHAVIOUR_5
,
331
BEHAVIOUR_NORMAL_SPEED
,
332
BEHAVIOUR_FAST_SPEED
,
333
BEHAVIOUR_SLOW_SPEED
,
334
BEHAVIOUR_9
,
335
BEHAVIOUR_10
,
336
BEHAVIOUR_MAX_SPEED
337
};
338
339
enum
DIRECTION
{
340
NORTH
,
341
EAST
,
342
SOUTH
,
343
WEST
344
};
345
349
#define BALLOON_STATUS_GONE 0
350
#define BALLOON_STATUS_PRESENT 1
351
#define BALLOON_STATUS_DEPARTING 2
352
356
#define MAX_TIME 0x927C0
357
362
#define HIT_SOUND_EFFECT 0x100
// hitting an object
363
#define BOOST_SOUND_EFFECT 0x200
// being boosted by trigger a mushroom
364
#define BOO_SOUND_EFFECT 0x800
// being a boo
365
#define STAR_SOUND_EFFECT 0x2000
// being a star
366
#define HIT_ROTATING_SOUND_EFFECT 0x4000
// hitting a rotating object
367
#define BOOST_RAMP_WOOD_SOUND_EFFECT 0x8000
// being boosted by a ramp
368
#define HOLD_BANANA_SOUND_EFFECT 0x40000
// holding a banana
369
#define REVERSE_SOUND_EFFECT 0x400000
// being in the wrong direction
370
#define BOOST_RAMP_ASPHALT_SOUND_EFFECT 0x800000
// being boosted by a boost pad
371
#define HIT_BY_ITEM_SOUND_EFFECT 0x1000000
// being hit by an item
372
377
#define BOOST_RAMP_WOOD_EFFECT 0x4
// being boosted by a ramp
378
#define STAR_EFFECT 0x200
// being a star
379
#define BOOST_EFFECT 0x2000
// being boosted by trigger a mushroom
380
#define BOOST_RAMP_ASPHALT_EFFECT 0x100000
// being boosted by a boost pad
381
#define HIT_BY_ITEM_EFFECT 0x2000000
// being hit by an item
382
#define HIT_EFFECT 0x4000000
// hitting an object
383
#define LIGHTNING_EFFECT 0x40000000
// being hit by lightning
384
#define BOO_EFFECT 0x80000000
// being a boo
385
390
#define SPAWN_FIRST_SHELL 0
391
#define SPAWN_SECOND_SHELL 1
392
#define SPAWN_THIRD_SHELL 2
393
394
#define GPACK_RGB888(r, g, b) (((r) << 16) | ((g) << 8) | (b))
395
#define COLOR_LIGHT GPACK_RGB888(0x1C, 0x00, 0x00)
396
#define COLOR_LAVA GPACK_RGB888(0x34, 0x00, 0x00)
397
#define COLOR_BLACK GPACK_RGB888(0, 0, 0)
398
399
#endif
// DEFINES_H
400
407
#define GRID_SIZE 32
408
409
#define FACING_Y_AXIS 0x4000
410
#define FACING_X_AXIS 0x8000
411
#define FACING_Z_AXIS 0x2000
COURSE_ONE
@ COURSE_ONE
Definition
defines.h:175
COURSE_THREE
@ COURSE_THREE
Definition
defines.h:175
COURSE_TWO
@ COURSE_TWO
Definition
defines.h:175
COURSE_FOUR
@ COURSE_FOUR
Definition
defines.h:175
KART_AI_BEHAVIOURS
KART_AI_BEHAVIOURS
Definition
defines.h:324
BEHAVIOUR_FAST_SPEED
@ BEHAVIOUR_FAST_SPEED
Definition
defines.h:332
BEHAVIOUR_NORMAL_SPEED
@ BEHAVIOUR_NORMAL_SPEED
Definition
defines.h:331
BEHAVIOUR_SLOW_SPEED
@ BEHAVIOUR_SLOW_SPEED
Definition
defines.h:333
BEHAVIOUR_MAX_SPEED
@ BEHAVIOUR_MAX_SPEED
Definition
defines.h:336
BEHAVIOUR_4
@ BEHAVIOUR_4
Definition
defines.h:329
BEHAVIOUR_HOP
@ BEHAVIOUR_HOP
Definition
defines.h:327
BEHAVIOUR_9
@ BEHAVIOUR_9
Definition
defines.h:334
BEHAVIOUR_5
@ BEHAVIOUR_5
Definition
defines.h:330
BEHAVIOUR_3
@ BEHAVIOUR_3
Definition
defines.h:328
BEHAVIOUR_NONE
@ BEHAVIOUR_NONE
Definition
defines.h:325
BEHAVIOUR_1
@ BEHAVIOUR_1
Definition
defines.h:326
BEHAVIOUR_10
@ BEHAVIOUR_10
Definition
defines.h:335
PlayerId
PlayerId
Definition
defines.h:114
PLAYER_SIX
@ PLAYER_SIX
Definition
defines.h:121
PLAYER_FIVE
@ PLAYER_FIVE
Definition
defines.h:120
PLAYER_SEVEN
@ PLAYER_SEVEN
Definition
defines.h:122
PLAYER_FOUR
@ PLAYER_FOUR
Definition
defines.h:119
PLAYER_EIGHT
@ PLAYER_EIGHT
Definition
defines.h:123
PLAYER_NONE
@ PLAYER_NONE
Definition
defines.h:115
PLAYER_TWO
@ PLAYER_TWO
Definition
defines.h:117
PLAYER_ONE
@ PLAYER_ONE
Definition
defines.h:116
PLAYER_THREE
@ PLAYER_THREE
Definition
defines.h:118
ITEMS
ITEMS
Item IDs.
Definition
defines.h:305
ITEM_TRIPLE_MUSHROOM
@ ITEM_TRIPLE_MUSHROOM
Definition
defines.h:320
ITEM_THUNDERBOLT
@ ITEM_THUNDERBOLT
Definition
defines.h:314
ITEM_TRIPLE_GREEN_SHELL
@ ITEM_TRIPLE_GREEN_SHELL
Definition
defines.h:310
ITEM_STAR
@ ITEM_STAR
Definition
defines.h:316
ITEM_BLUE_SPINY_SHELL
@ ITEM_BLUE_SPINY_SHELL
Definition
defines.h:313
ITEM_BANANA_BUNCH
@ ITEM_BANANA_BUNCH
Definition
defines.h:308
ITEM_GREEN_SHELL
@ ITEM_GREEN_SHELL
Definition
defines.h:309
ITEM_FAKE_ITEM_BOX
@ ITEM_FAKE_ITEM_BOX
Definition
defines.h:315
ITEM_NONE
@ ITEM_NONE
Definition
defines.h:306
ITEM_RED_SHELL
@ ITEM_RED_SHELL
Definition
defines.h:311
ITEM_SUPER_MUSHROOM
@ ITEM_SUPER_MUSHROOM
Definition
defines.h:321
ITEM_BANANA
@ ITEM_BANANA
Definition
defines.h:307
ITEM_MUSHROOM
@ ITEM_MUSHROOM
Definition
defines.h:318
ITEM_DOUBLE_MUSHROOM
@ ITEM_DOUBLE_MUSHROOM
Definition
defines.h:319
ITEM_BOO
@ ITEM_BOO
Definition
defines.h:317
ITEM_TRIPLE_RED_SHELL
@ ITEM_TRIPLE_RED_SHELL
Definition
defines.h:312
NUM_CUPS
@ NUM_CUPS
Definition
defines.h:168
STAR_CUP
@ STAR_CUP
Definition
defines.h:168
FLOWER_CUP
@ FLOWER_CUP
Definition
defines.h:168
SPECIAL_CUP
@ SPECIAL_CUP
Definition
defines.h:168
MUSHROOM_CUP
@ MUSHROOM_CUP
Definition
defines.h:168
BATTLE_CUP
@ BATTLE_CUP
Definition
defines.h:168
DIRECTION
DIRECTION
Definition
defines.h:339
SOUTH
@ SOUTH
Definition
defines.h:342
EAST
@ EAST
Definition
defines.h:341
NORTH
@ NORTH
Definition
defines.h:340
WEST
@ WEST
Definition
defines.h:343
include
defines.h
Generated by
1.11.0