Super Mario 64 Source
A Super Mario 64 decompilation, brought to you by a bunch of clever folks.
include
object_constants.h
Go to the documentation of this file.
1
#ifndef _OBJECT_CONSTANTS_H
2
#define _OBJECT_CONSTANTS_H
3
4
// This file contains macros that provide descriptive names for
5
// field-specific and object-specific constants, e.g. actions.
6
7
/* activeFlags */
8
#define ACTIVE_FLAG_ACTIVE (1 << 0) // 0x0001
9
#define ACTIVE_FLAG_FAR_AWAY (1 << 1) // 0x0002
10
#define ACTIVE_FLAG_UNK2 (1 << 2) // 0x0004
11
#define ACTIVE_FLAG_IN_DIFFERENT_ROOM (1 << 3) // 0x0008
12
#define ACTIVE_FLAG_UNIMPORTANT (1 << 4) // 0x0010
13
#define ACTIVE_FLAG_INITIATED_TIME_STOP (1 << 5) // 0x0020
14
#define ACTIVE_FLAG_MOVE_THROUGH_GRATE (1 << 6) // 0x0040
15
#define ACTIVE_FLAG_UNK7 (1 << 7) // 0x0080
16
#define ACTIVE_FLAG_UNK8 (1 << 8) // 0x0100
17
#define ACTIVE_FLAG_UNK9 (1 << 9) // 0x0200
18
#define ACTIVE_FLAG_UNK10 (1 << 10) // 0x0400
19
20
#define ACTIVE_FLAGS_DEACTIVATED 0
21
22
/* respawnInfoType */
23
#define RESPAWN_INFO_TYPE_NULL 0
24
#define RESPAWN_INFO_TYPE_32 1
25
#define RESPAWN_INFO_TYPE_16 2
26
27
/* respawnInfo */
28
#define RESPAWN_INFO_DONT_RESPAWN 0xFF
29
30
/* oFlags */
31
#define OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE (1 << 0) // 0x00000001
32
#define OBJ_FLAG_MOVE_XZ_USING_FVEL (1 << 1) // 0x00000002
33
#define OBJ_FLAG_MOVE_Y_WITH_TERMINAL_VEL (1 << 2) // 0x00000004
34
#define OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW (1 << 3) // 0x00000008
35
#define OBJ_FLAG_0010 (1 << 4) // 0x00000010
36
#define OBJ_FLAG_0020 (1 << 5) // 0x00000020
37
#define OBJ_FLAG_COMPUTE_DIST_TO_MARIO (1 << 6) // 0x00000040
38
#define OBJ_FLAG_ACTIVE_FROM_AFAR (1 << 7) // 0x00000080
39
#define OBJ_FLAG_0100 (1 << 8) // 0x00000100
40
#define OBJ_FLAG_TRANSFORM_RELATIVE_TO_PARENT (1 << 9) // 0x00000200
41
#define OBJ_FLAG_HOLDABLE (1 << 10) // 0x00000400
42
#define OBJ_FLAG_0800 (1 << 11) // 0x00000800
43
#define OBJ_FLAG_1000 (1 << 12) // 0x00001000
44
#define OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO (1 << 13) // 0x00002000
45
#define OBJ_FLAG_PERSISTENT_RESPAWN (1 << 14) // 0x00004000
46
#define OBJ_FLAG_8000 (1 << 15) // 0x00008000
47
#define OBJ_FLAG_30 (1 << 30) // 0x40000000
48
49
/* oHeldState */
50
#define HELD_FREE 0
51
#define HELD_HELD 1
52
#define HELD_THROWN 2
53
#define HELD_DROPPED 3
54
55
/* oDialogState */
56
#define DIALOG_UNK1_ENABLE_TIME_STOP 0
57
#define DIALOG_UNK1_INTERRUPT_MARIO_ACTION 1
58
#define DIALOG_UNK1_BEGIN_DIALOG 2
59
#define DIALOG_UNK1_AWAIT_DIALOG 3
60
#define DIALOG_UNK1_DISABLE_TIME_STOP 4
61
62
#define DIALOG_UNK1_FLAG_1 (1 << 1) // 0x02
63
#define DIALOG_UNK1_FLAG_2 (1 << 2) // 0x04
64
#define DIALOG_UNK1_FLAG_4 (1 << 4) // 0x10
65
66
#define DIALOG_UNK2_ENABLE_TIME_STOP 0
67
#define DIALOG_UNK2_TURN_AND_INTERRUPT_MARIO_ACTION 1
68
#define DIALOG_UNK2_AWAIT_DIALOG 2
69
#define DIALOG_UNK2_END_DIALOG 3
70
71
#define DIALOG_UNK2_FLAG_0 (1 << 0) // 0x01
72
#define DIALOG_UNK2_LEAVE_TIME_STOP_ENABLED (1 << 4) // 0x10
73
74
/* oMoveFlags */
75
#define OBJ_MOVE_LANDED (1 << 0) // 0x0001
76
#define OBJ_MOVE_ON_GROUND (1 << 1) // 0x0002 // mutually exclusive to OBJ_MOVE_LANDED
77
#define OBJ_MOVE_LEFT_GROUND (1 << 2) // 0x0004
78
#define OBJ_MOVE_ENTERED_WATER (1 << 3) // 0x0008
79
#define OBJ_MOVE_AT_WATER_SURFACE (1 << 4) // 0x0010
80
#define OBJ_MOVE_UNDERWATER_OFF_GROUND (1 << 5) // 0x0020
81
#define OBJ_MOVE_UNDERWATER_ON_GROUND (1 << 6) // 0x0040
82
#define OBJ_MOVE_IN_AIR (1 << 7) // 0x0080
83
#define OBJ_MOVE_8 (1 << 8) // 0x0100
84
#define OBJ_MOVE_HIT_WALL (1 << 9) // 0x0200
85
#define OBJ_MOVE_HIT_EDGE (1 << 10) // 0x0400
86
#define OBJ_MOVE_ABOVE_LAVA (1 << 11) // 0x0800
87
#define OBJ_MOVE_LEAVING_WATER (1 << 12) // 0x1000
88
#define OBJ_MOVE_13 (1 << 13) // 0x2000
89
#ifndef VERSION_JP
90
#define OBJ_MOVE_ABOVE_DEATH_BARRIER (1 << 14) // 0x4000
91
#endif
92
93
#define OBJ_MOVE_MASK_ON_GROUND (OBJ_MOVE_LANDED | OBJ_MOVE_ON_GROUND)
94
#define OBJ_MOVE_MASK_33 0x33
95
#define OBJ_MOVE_MASK_IN_WATER (\
96
OBJ_MOVE_ENTERED_WATER |\
97
OBJ_MOVE_AT_WATER_SURFACE |\
98
OBJ_MOVE_UNDERWATER_OFF_GROUND |\
99
OBJ_MOVE_UNDERWATER_ON_GROUND)
100
#define OBJ_MOVE_MASK_HIT_WALL_OR_IN_WATER \
101
(OBJ_MOVE_HIT_WALL | OBJ_MOVE_MASK_IN_WATER)
102
103
/* oActiveParticleFlags */
104
#define ACTIVE_PARTICLE_0 0x00000001
105
#define ACTIVE_PARTICLE_3 0x00000008
106
#define ACTIVE_PARTICLE_4 0x00000010
107
#define ACTIVE_PARTICLE_5 0x00000020
108
#define ACTIVE_PARTICLE_6 0x00000040
109
#define ACTIVE_PARTICLE_7 0x00000080
110
#define ACTIVE_PARTICLE_8 0x00000100
111
#define ACTIVE_PARTICLE_9 0x00000200
112
#define ACTIVE_PARTICLE_10 0x00000400
113
#define ACTIVE_PARTICLE_11 0x00000800
114
#define ACTIVE_PARTICLE_12 0x00001000
115
#define ACTIVE_PARTICLE_13 0x00002000
116
#define ACTIVE_PARTICLE_14 0x00004000
117
#define ACTIVE_PARTICLE_15 0x00008000
118
#define ACTIVE_PARTICLE_16 0x00010000
119
#define ACTIVE_PARTICLE_17 0x00020000
120
#define ACTIVE_PARTICLE_18 0x00040000
121
#define ACTIVE_PARTICLE_19 0x00080000
122
123
/* oAction */
124
#define OBJ_ACT_LAVA_DEATH 100
125
#define OBJ_ACT_DEATH_PLANE_DEATH 101
126
127
#define OBJ_ACT_HORIZONTAL_KNOCKBACK 100
128
#define OBJ_ACT_VERTICAL_KNOCKBACK 101
129
#define OBJ_ACT_SQUISHED 102
130
131
/* gTTCSpeedSetting */
132
#define TTC_SPEED_SLOW 0
133
#define TTC_SPEED_FAST 1
134
#define TTC_SPEED_RANDOM 2
135
#define TTC_SPEED_STOPPED 3
136
137
/* Bob-omb */
138
/* oBehParams2ndByte */
139
#define BOBOMB_BP_STYPE_GENERIC 0
140
#define BOBOMB_BP_STYPE_STATIONARY 1
141
/* oAction */
142
#define BOBOMB_ACT_PATROL 0
143
#define BOBOMB_ACT_LAUNCHED 1
144
#define BOBOMB_ACT_CHASE_MARIO 2
145
#define BOBOMB_ACT_EXPLODE 3
146
#define BOBOMB_ACT_LAVA_DEATH 100
147
#define BOBOMB_ACT_DEATH_PLANE_DEATH 101
148
149
/* Hidden Blue Coin */
150
/* oAction */
151
#define HIDDEN_BLUE_COIN_ACT_INACTIVE 0
152
#define HIDDEN_BLUE_COIN_ACT_WAITING 1
153
#define HIDDEN_BLUE_COIN_ACT_ACTIVE 2
154
155
/* Blue Coin Switch */
156
/* oAction */
157
#define BLUE_COIN_SWITCH_ACT_IDLE 0
158
#define BLUE_COIN_SWITCH_ACT_RECEDING 1
159
#define BLUE_COIN_SWITCH_ACT_TICKING 2
160
161
/* Moving Blue Coin */
162
/* oAction */
163
#define MOV_BCOIN_ACT_STILL 0
164
#define MOV_BCOIN_ACT_MOVING 1
165
166
/* Moving Yellow Coin */
167
/* oAction */
168
#define MOV_YCOIN_ACT_IDLE 0
169
#define MOV_YCOIN_ACT_BLINKING 1
170
#define MOV_YCOIN_ACT_LAVA_DEATH 100
171
#define MOV_YCOIN_ACT_DEATH_PLANE_DEATH 101
172
173
/* Bob-omb Buddy */
174
/* oBehParams2ndByte */
175
#define BOBOMB_BUDDY_BP_STYPE_GENERIC 0
176
#define BOBOMB_BUDDY_BP_STYPE_BOB_GRASS_KBB 1
177
#define BOBOMB_BUDDY_BP_STYPE_BOB_CANNON_KBB 2
178
#define BOBOMB_BUDDY_BP_STYPE_BOB_GRASS 3
179
/* oAction */
180
#define BOBOMB_BUDDY_ACT_IDLE 0
181
#define BOBOMB_BUDDY_ACT_TURN_TO_TALK 2
182
#define BOBOMB_BUDDY_ACT_TALK 3
183
/* oBobombBuddyRole */
184
#define BOBOMB_BUDDY_ROLE_ADVICE 0
185
#define BOBOMB_BUDDY_ROLE_CANNON 1
186
/* oBobombBuddyCannonStatus */
187
#define BOBOMB_BUDDY_CANNON_UNOPENED 0
188
#define BOBOMB_BUDDY_CANNON_OPENING 1
189
#define BOBOMB_BUDDY_CANNON_OPENED 2
190
#define BOBOMB_BUDDY_CANNON_STOP_TALKING 3
191
/* oBobombBuddyHasTalkedToMario */
192
#define BOBOMB_BUDDY_HAS_NOT_TALKED 0
193
#define BOBOMB_BUDDY_HAS_TALKED 2
194
195
/* Cannon Trap Door */
196
/* oAction */
197
#define CANNON_TRAP_DOOR_ACT_CLOSED 0
198
#define CANNON_TRAP_DOOR_ACT_CAM_ZOOM 1
199
#define CANNON_TRAP_DOOR_ACT_OPENING 2
200
#define CANNON_TRAP_DOOR_ACT_OPEN 3
201
202
/* Homing Amp */
203
/* oAction */
204
#define HOMING_AMP_ACT_INACTIVE 0
205
#define HOMING_AMP_ACT_APPEAR 1
206
#define HOMING_AMP_ACT_CHASE 2
207
#define HOMING_AMP_ACT_GIVE_UP 3
208
#define HOMING_AMP_ACT_ATTACK_COOLDOWN 4
209
210
/* Amp */
211
/* oBehParams2ndByte */
212
#define AMP_BP_ROT_RADIUS_200 0
213
#define AMP_BP_ROT_RADIUS_300 1
214
#define AMP_BP_ROT_RADIUS_400 2
215
#define AMP_BP_ROT_RADIUS_0 3
216
217
/* oAction */
218
#define AMP_ACT_IDLE 2
219
#define AMP_ACT_ATTACK_COOLDOWN 4
220
221
/* Butterfly */
222
/* oAction */
223
#define BUTTERFLY_ACT_RESTING 0
224
#define BUTTERFLY_ACT_FOLLOW_MARIO 1
225
#define BUTTERFLY_ACT_RETURN_HOME 2
226
227
/* Hoot */
228
/* oHootAvailability */
229
#define HOOT_AVAIL_ASLEEP_IN_TREE 0
230
#define HOOT_AVAIL_WANTS_TO_TALK 1
231
#define HOOT_AVAIL_READY_TO_FLY 2
232
/* oAction */
233
#define HOOT_ACT_ASCENT 0
234
#define HOOT_ACT_CARRY 1
235
#define HOOT_ACT_TIRED 2
236
237
/* Bully (all variants) */
238
/* oBehParams2ndByte */
239
#define BULLY_BP_SIZE_SMALL 0
240
#define BULLY_BP_SIZE_BIG 1
241
/* oAction */
242
#define BULLY_ACT_PATROL 0
243
#define BULLY_ACT_CHASE_MARIO 1
244
#define BULLY_ACT_KNOCKBACK 2
245
#define BULLY_ACT_BACK_UP 3
246
#define BULLY_ACT_INACTIVE 4
247
#define BULLY_ACT_ACTIVATE_AND_FALL 5
248
#define BULLY_ACT_LAVA_DEATH 100
249
#define BULLY_ACT_DEATH_PLANE_DEATH 101
250
/* oBullySubtype */
251
#define BULLY_STYPE_GENERIC 0
252
#define BULLY_STYPE_MINION 1
253
#define BULLY_STYPE_CHILL 16
254
255
/* Water Ring (all variants) */
256
/* oAction */
257
#define WATER_RING_ACT_NOT_COLLECTED 0
258
#define WATER_RING_ACT_COLLECTED 1
259
260
/* Jet Stream Water Ring Spawner */
261
/* oAction */
262
#define JS_RING_SPAWNER_ACT_ACTIVE 0
263
#define JS_RING_SPAWNER_ACT_INACTIVE 1
264
265
/* Celebration Star */
266
/* oAction */
267
#define CELEB_STAR_ACT_SPIN_AROUND_MARIO 0
268
#define CELEB_STAR_ACT_FACE_CAMERA 1
269
270
/* LLL Drawbridge */
271
/* oAction */
272
#define LLL_DRAWBRIDGE_ACT_LOWER 0
273
#define LLL_DRAWBRIDGE_ACT_RAISE 1
274
275
/* Bomp (both variants) */
276
/* oAction */
277
#define BOMP_ACT_WAIT 0
278
#define BOMP_ACT_POKE_OUT 1
279
#define BOMP_ACT_EXTEND 2
280
#define BOMP_ACT_RETRACT 3
281
282
/* WF Sliding Brick Platform */
283
/* oBehParams2ndByte */
284
#define WF_SLID_BRICK_PTFM_BP_MOV_VEL_10 1
285
#define WF_SLID_BRICK_PTFM_BP_MOV_VEL_15 2
286
#define WF_SLID_BRICK_PTFM_BP_MOV_VEL_20 3
287
/* oAction */
288
#define WF_SLID_BRICK_PTFM_ACT_WAIT 0
289
#define WF_SLID_BRICK_PTFM_ACT_EXTEND 1
290
#define WF_SLID_BRICK_PTFM_ACT_RETRACT 2
291
292
/* Fake Moneybag Coin */
293
/* oAction */
294
#define FAKE_MONEYBAG_COIN_ACT_IDLE 0
295
#define FAKE_MONEYBAG_COIN_ACT_TRANSFORM 1
296
297
/* Moneybag */
298
/* oAction */
299
#define MONEYBAG_ACT_APPEAR 0
300
#define MONEYBAG_ACT_UNUSED_APPEAR 1
301
#define MONEYBAG_ACT_MOVE_AROUND 2
302
#define MONEYBAG_ACT_RETURN_HOME 3
303
#define MONEYBAG_ACT_DISAPPEAR 4
304
#define MONEYBAG_ACT_DEATH 5
305
/* oMoneybagJumpState */
306
#define MONEYBAG_JUMP_LANDING 0
307
#define MONEYBAG_JUMP_PREPARE 1
308
#define MONEYBAG_JUMP_JUMP 2
309
#define MONEYBAG_JUMP_JUMP_AND_BOUNCE 3
310
#define MONEYBAG_JUMP_WALK_AROUND 4
311
#define MONEYBAG_JUMP_WALK_HOME 5
312
313
/* Bowling Ball */
314
/* oAction */
315
#define BBALL_ACT_INITIALIZE 0
316
#define BBALL_ACT_ROLL 1
317
318
/* Bowling Ball + Bowling Ball Spawner (all variants) */
319
/* oBehParams2ndByte */
320
#define BBALL_BP_STYPE_BOB_UPPER 0
321
#define BBALL_BP_STYPE_TTM 1
322
#define BBALL_BP_STYPE_BOB_LOWER 2
323
#define BBALL_BP_STYPE_THI_LARGE 3
324
#define BBALL_BP_STYPE_THI_SMALL 4
325
326
/* Bowling Ball (Free) */
327
/* oAction */
328
#define FREE_BBALL_ACT_IDLE 0
329
#define FREE_BBALL_ACT_ROLL 1
330
#define FREE_BBALL_ACT_RESET 2
331
332
/* Beta Chest Lid */
333
/* oAction */
334
#define BETA_CHEST_ACT_IDLE_CLOSED 0
335
#define BETA_CHEST_ACT_OPENING 1
336
#define BETA_CHEST_ACT_IDLE_OPEN 2
337
338
/* BBH Tilting Trap Platform */
339
/* oAction */
340
// Unused in original Japanese version
341
#define BBH_TILTING_TRAP_PLATFORM_ACT_MARIO_ON 0
342
#define BBH_TILTING_TRAP_PLATFORM_ACT_MARIO_OFF 1
343
344
/* Boo */
345
/* oBooDeathStatus */
346
#define BOO_DEATH_STATUS_ALIVE 0
347
#define BOO_DEATH_STATUS_DYING 1
348
#define BOO_DEATH_STATUS_DEAD 2
349
350
/* Beta Boo Key */
351
/* oAction */
352
#define BETA_BOO_KEY_ACT_IN_BOO 0
353
#define BETA_BOO_KEY_ACT_DROPPING 1
354
#define BETA_BOO_KEY_ACT_DROPPED 2
355
356
/* Boo Cage */
357
/* oAction */
358
#define BOO_CAGE_ACT_IN_BOO 0
359
#define BOO_CAGE_ACT_FALLING 1
360
#define BOO_CAGE_ACT_ON_GROUND 2
361
#define BOO_CAGE_ACT_MARIO_JUMPING_IN 3
362
#define BOO_CAGE_ACT_USELESS 4
363
364
/* BBH Haunted Bookshelf */
365
/* oAction */
366
#define HAUNTED_BOOKSHELF_ACT_IDLE 0
367
#define HAUNTED_BOOKSHELF_ACT_RECEDE 1
368
369
/* BBH Merry-Go-Round */
370
/* gMarioCurrentRoom */
371
#define BBH_NEAR_MERRY_GO_ROUND_ROOM 10
372
#define BBH_DYNAMIC_SURFACE_ROOM 0
373
#define BBH_OUTSIDE_ROOM 13
374
375
/* WDW Arrow Lift */
376
/* oAction */
377
#define ARROW_LIFT_ACT_IDLE 0
378
#define ARROW_LIFT_ACT_MOVING_AWAY 1
379
#define ARROW_LIFT_ACT_MOVING_BACK 2
380
381
/* status */
382
#define ARROW_LIFT_NOT_DONE_MOVING 0
383
#define ARROW_LIFT_DONE_MOVING 1
384
385
/* Yoshi */
386
/* oAction */
387
#define YOSHI_ACT_IDLE 0
388
#define YOSHI_ACT_WALK 1
389
#define YOSHI_ACT_TALK 2
390
#define YOSHI_ACT_WALK_JUMP_OFF_ROOF 3
391
#define YOSHI_ACT_FINISH_JUMPING_AND_DESPAWN 4
392
#define YOSHI_ACT_GIVE_PRESENT 5
393
#define YOSHI_ACT_CREDITS 10
394
395
/* Koopa */
396
/* oAction */
397
#define KOOPA_UNSHELLED_ACT_RUN 0
398
#define KOOPA_UNSHELLED_ACT_DIVE 1
399
#define KOOPA_UNSHELLED_ACT_LYING 2
400
#define KOOPA_UNSHELLED_ACT_UNUSED3 3
401
402
#define KOOPA_SHELLED_ACT_STOPPED 0
403
#define KOOPA_SHELLED_ACT_WALK 1
404
#define KOOPA_SHELLED_ACT_RUN_FROM_MARIO 2
405
#define KOOPA_SHELLED_ACT_LYING 3
406
#define KOOPA_SHELLED_ACT_DIE 4
407
408
#define KOOPA_THE_QUICK_ACT_WAIT_BEFORE_RACE 0
409
#define KOOPA_THE_QUICK_ACT_UNUSED1 1
410
#define KOOPA_THE_QUICK_ACT_SHOW_INIT_TEXT 2
411
#define KOOPA_THE_QUICK_ACT_RACE 3
412
#define KOOPA_THE_QUICK_ACT_DECELERATE 4
413
#define KOOPA_THE_QUICK_ACT_STOP 5
414
#define KOOPA_THE_QUICK_ACT_AFTER_RACE 6
415
416
/* oSubAction */
417
#define KOOPA_SHELLED_SUB_ACT_START_WALK 0
418
#define KOOPA_SHELLED_SUB_ACT_WALK 1
419
#define KOOPA_SHELLED_SUB_ACT_STOP_WALK 2
420
421
#define KOOPA_THE_QUICK_SUB_ACT_START_RUN 0
422
#define KOOPA_THE_QUICK_SUB_ACT_RUN 1
423
#define KOOPA_THE_QUICK_SUB_ACT_JUMP 2
424
425
/* oKoopaTheQuickRaceIndex */
426
#define KOOPA_THE_QUICK_BOB_INDEX 0
427
#define KOOPA_THE_QUICK_THI_INDEX 1
428
429
/* oBehParams2ndByte */
430
#define KOOPA_BP_UNSHELLED 0
431
#define KOOPA_BP_NORMAL 1
432
#define KOOPA_BP_KOOPA_THE_QUICK_BASE 2
433
#define KOOPA_BP_KOOPA_THE_QUICK_BOB (KOOPA_BP_KOOPA_THE_QUICK_BASE + KOOPA_THE_QUICK_BOB_INDEX)
434
#define KOOPA_BP_KOOPA_THE_QUICK_THI (KOOPA_BP_KOOPA_THE_QUICK_BASE + KOOPA_THE_QUICK_THI_INDEX)
435
#define KOOPA_BP_TINY 4
436
437
/* Pokey */
438
/* oAction */
439
#define POKEY_ACT_UNINITIALIZED 0
440
#define POKEY_ACT_WANDER 1
441
#define POKEY_ACT_UNLOAD_PARTS 2
442
443
/* Swoop */
444
/* oAction */
445
#define SWOOP_ACT_IDLE 0
446
#define SWOOP_ACT_MOVE 1
447
448
/* Fly guy */
449
/* oAction */
450
#define FLY_GUY_ACT_IDLE 0
451
#define FLY_GUY_ACT_APPROACH_MARIO 1
452
#define FLY_GUY_ACT_LUNGE 2
453
#define FLY_GUY_ACT_SHOOT_FIRE 3
454
455
/* Goomba triplet spawner */
456
/* oBehParams2ndByte */
457
#define GOOMBA_TRIPLET_SPAWNER_BP_SIZE_MASK 0x00000003
458
#define GOOMBA_TRIPLET_SPAWNER_BP_EXTRA_GOOMBAS_MASK 0x000000FC
459
/* oAction */
460
#define GOOMBA_TRIPLET_SPAWNER_ACT_UNLOADED 0
461
#define GOOMBA_TRIPLET_SPAWNER_ACT_LOADED 1
462
463
/* Goomba */
464
/* oBehParams2ndByte */
465
#define GOOMBA_BP_SIZE_MASK 0x00000003
466
#define GOOMBA_SIZE_REGULAR 0
467
#define GOOMBA_SIZE_HUGE 1
468
#define GOOMBA_SIZE_TINY 2
469
#define GOOMBA_BP_TRIPLET_FLAG_MASK 0x000000FC
470
/* oAction */
471
#define GOOMBA_ACT_WALK 0
472
#define GOOMBA_ACT_ATTACKED_MARIO 1
473
#define GOOMBA_ACT_JUMP 2
474
475
/* Chain chomp */
476
/* oAction */
477
#define CHAIN_CHOMP_ACT_UNINITIALIZED 0
478
#define CHAIN_CHOMP_ACT_MOVE 1
479
#define CHAIN_CHOMP_ACT_UNLOAD_CHAIN 2
480
481
/* oSubAction */
482
#define CHAIN_CHOMP_SUB_ACT_TURN 0
483
#define CHAIN_CHOMP_SUB_ACT_LUNGE 1
484
485
/* oChainChompReleaseStatus */
486
#define CHAIN_CHOMP_NOT_RELEASED 0
487
#define CHAIN_CHOMP_RELEASED_TRIGGER_CUTSCENE 1
488
#define CHAIN_CHOMP_RELEASED_LUNGE_AROUND 2
489
#define CHAIN_CHOMP_RELEASED_BREAK_GATE 3
490
#define CHAIN_CHOMP_RELEASED_JUMP_AWAY 4
491
#define CHAIN_CHOMP_RELEASED_END_CUTSCENE 5
492
493
/* Chain chomp chain part */
494
/* oBehParams2ndByte */
495
#define CHAIN_CHOMP_CHAIN_PART_BP_PIVOT 0
496
497
/* Wooden post */
498
/* oBehParams */
499
#define WOODEN_POST_BP_NO_COINS_MASK 0x0000FF00
500
501
/* Wiggler */
502
/* oAction */
503
#define WIGGLER_ACT_UNINITIALIZED 0
504
#define WIGGLER_ACT_WALK 1
505
#define WIGGLER_ACT_KNOCKBACK 2
506
#define WIGGLER_ACT_JUMPED_ON 3
507
#define WIGGLER_ACT_SHRINK 4
508
#define WIGGLER_ACT_FALL_THROUGH_FLOOR 5
509
510
/* oWigglerTextStatus */
511
#define WIGGLER_TEXT_STATUS_AWAIT_DIALOG 0
512
#define WIGGLER_TEXT_STATUS_SHOWING_DIALOG 1
513
#define WIGGLER_TEXT_STATUS_COMPLETED_DIALOG 2
514
515
/* Spiny */
516
/* oAction */
517
#define SPINY_ACT_WALK 0
518
#define SPINY_ACT_HELD_BY_LAKITU 1
519
#define SPINY_ACT_THROWN_BY_LAKITU 2
520
#define SPINY_ACT_ATTACKED_MARIO 3
521
522
/* Evil lakitu */
523
/* oAction */
524
#define ENEMY_LAKITU_ACT_UNINITIALIZED 0
525
#define ENEMY_LAKITU_ACT_MAIN 1
526
527
/* oSubAction */
528
#define ENEMY_LAKITU_SUB_ACT_NO_SPINY 0
529
#define ENEMY_LAKITU_SUB_ACT_HOLD_SPINY 1
530
#define ENEMY_LAKITU_SUB_ACT_THROW_SPINY 2
531
532
/* Cloud */
533
/* oAction */
534
#define CLOUD_ACT_SPAWN_PARTS 0
535
#define CLOUD_ACT_MAIN 1
536
#define CLOUD_ACT_UNLOAD 2
537
#define CLOUD_ACT_FWOOSH_HIDDEN 3
538
539
/* oBehParams2ndByte */
540
#define CLOUD_BP_FWOOSH 0
541
#define CLOUD_BP_LAKITU_CLOUD 1
542
543
/* Camera lakitu */
544
/* oAction */
545
#define CAMERA_LAKITU_INTRO_ACT_TRIGGER_CUTSCENE 0
546
#define CAMERA_LAKITU_INTRO_ACT_SPAWN_CLOUD 1
547
#define CAMERA_LAKITU_INTRO_ACT_UNK2 2
548
549
/* oBehParams2ndByte */
550
#define CAMERA_LAKITU_BP_FOLLOW_CAMERA 0
551
#define CAMERA_LAKITU_BP_INTRO 1
552
553
/* Monty mole */
554
/* oAction */
555
#define MONTY_MOLE_ACT_SELECT_HOLE 0
556
#define MONTY_MOLE_ACT_RISE_FROM_HOLE 1
557
#define MONTY_MOLE_ACT_SPAWN_ROCK 2
558
#define MONTY_MOLE_ACT_BEGIN_JUMP_INTO_HOLE 3
559
#define MONTY_MOLE_ACT_THROW_ROCK 4
560
#define MONTY_MOLE_ACT_JUMP_INTO_HOLE 5
561
#define MONTY_MOLE_ACT_HIDE 6
562
#define MONTY_MOLE_ACT_JUMP_OUT_OF_HOLE 7
563
564
/* oBehParams2ndByte */
565
#define MONTY_MOLE_BP_NO_ROCK 0
566
567
/* Monty mole rock */
568
/* oAction */
569
#define MONTY_MOLE_ROCK_ACT_HELD 0
570
#define MONTY_MOLE_ROCK_ACT_MOVE 1
571
572
/* Piranha Plant */
573
/* oAction */
574
#define PIRANHA_PLANT_ACT_IDLE 0
575
#define PIRANHA_PLANT_ACT_SLEEPING 1
576
#define PIRANHA_PLANT_ACT_BITING 2
577
#define PIRANHA_PLANT_ACT_WOKEN_UP 3
578
#define PIRANHA_PLANT_ACT_STOPPED_BITING 4
579
#define PIRANHA_PLANT_ACT_ATTACKED 5
580
#define PIRANHA_PLANT_ACT_SHRINK_AND_DIE 6
581
#define PIRANHA_PLANT_ACT_WAIT_TO_RESPAWN 7
582
#define PIRANHA_PLANT_ACT_RESPAWN 8
583
584
/* Piranha Plant bubble */
585
#define PIRANHA_PLANT_BUBBLE_ACT_IDLE 0
586
#define PIRANHA_PLANT_BUBBLE_ACT_GROW_SHRINK_LOOP 1
587
#define PIRANHA_PLANT_BUBBLE_ACT_BURST 2
588
589
/* Platform on track */
590
/* oAction */
591
#define PLATFORM_ON_TRACK_ACT_INIT 0
592
#define PLATFORM_ON_TRACK_ACT_WAIT_FOR_MARIO 1
593
#define PLATFORM_ON_TRACK_ACT_MOVE_ALONG_TRACK 2
594
#define PLATFORM_ON_TRACK_ACT_PAUSE_BRIEFLY 3
595
#define PLATFORM_ON_TRACK_ACT_FALL 4
596
597
/* oBehParams >> 16 */
598
#define PLATFORM_ON_TRACK_BP_MASK_PATH 0xF
599
#define PLATFORM_ON_TRACK_BP_MASK_TYPE (0x7 << 4)
600
#define PLATFORM_ON_TRACK_BP_RETURN_TO_START (1 << 8)
601
#define PLATFORM_ON_TRACK_BP_DONT_DISAPPEAR (1 << 9)
602
#define PLATFORM_ON_TRACK_BP_DONT_TURN_YAW (1 << 10)
603
#define PLATFORM_ON_TRACK_BP_DONT_TURN_ROLL (1 << 11)
604
605
#define PLATFORM_ON_TRACK_TYPE_CARPET 0
606
#define PLATFORM_ON_TRACK_TYPE_SKI_LIFT 1
607
#define PLATFORM_ON_TRACK_TYPE_CHECKERED 2
608
#define PLATFORM_ON_TRACK_TYPE_GRATE 3
609
610
/* Purple switch */
611
#define PURPLE_SWITCH_IDLE 0
612
#define PURPLE_SWITCH_PRESSED 1
613
#define PURPLE_SWITCH_TICKING 2
614
#define PURPLE_SWITCH_UNPRESSED 3
615
#define PURPLE_SWITCH_WAIT_FOR_MARIO_TO_GET_OFF 4
616
617
/* Pyramid elevator */
618
#define PYRAMID_ELEVATOR_IDLE 0
619
#define PYRAMID_ELEVATOR_START_MOVING 1
620
#define PYRAMID_ELEVATOR_CONSTANT_VELOCITY 2
621
#define PYRAMID_ELEVATOR_AT_BOTTOM 3
622
623
/* Pyramid top */
624
#define PYRAMID_TOP_ACT_CHECK_IF_SOLVED 0
625
#define PYRAMID_TOP_ACT_SPINNING 1
626
#define PYRAMID_TOP_ACT_EXPLODE 2
627
628
/* Pyramid wall */
629
/* oAction */
630
#define PYRAMID_WALL_ACT_MOVING_DOWN 0
631
#define PYRAMID_WALL_ACT_MOVING_UP 1
632
633
/* oBehParams2ndByte */
634
#define PYRAMID_WALL_BP_POSITION_HIGH 0
635
#define PYRAMID_WALL_BP_POSITION_MIDDLE 1
636
#define PYRAMID_WALL_BP_POSITION_LOW 2
637
638
/* Tuxie */
639
/* Walking sounds */
640
#define PENGUIN_WALK_BABY 0
641
#define PENGUIN_WALK_BIG 1
642
643
/* Water bomb */
644
/* oAction */
645
#define WATER_BOMB_ACT_SHOT_FROM_CANNON 0
646
#define WATER_BOMB_ACT_INIT 1
647
#define WATER_BOMB_ACT_DROP 2
648
#define WATER_BOMB_ACT_EXPLODE 3
649
650
/* TTC rotating solid */
651
/* oBehParams2ndByte */
652
#define TTC_ROTATING_SOLID_BP_CUBE 0
653
#define TTC_ROTATING_SOLID_BP_TRIANGULAR_PRISM 1
654
655
/* TTC moving bar */
656
/* oAction */
657
#define TTC_MOVING_BAR_ACT_WAIT 0
658
#define TTC_MOVING_BAR_ACT_PULL_BACK 1
659
#define TTC_MOVING_BAR_ACT_EXTEND 2
660
#define TTC_MOVING_BAR_ACT_RETRACT 3
661
662
/* TTC cog */
663
/* oBehParams2ndByte */
664
#define TTC_COG_BP_SHAPE_MASK 0x00000002
665
#define TTC_COG_BP_SHAPE_HEXAGON (0 << 1)
666
#define TTC_COG_BP_SHAPE_TRIANGLE (1 << 1)
667
#define TTC_COG_BP_DIR_MASK 0x00000001
668
#define TTC_COG_BP_DIR_CCW (0 << 0) // TODO: Check these
669
#define TTC_COG_BP_DIR_CW (1 << 0)
670
671
/* TTC 2D Rotator */
672
/* oBehParams2ndByte */
673
#define TTC_2D_ROTATOR_BP_HAND 0
674
#define TTC_2D_ROTATOR_BP_2D_COG 1
675
676
/* Activated Back-and-Forth Platform */
677
/* ((u16)(o->oBehParams >> 16) & 0x0300) >> 8 aka platform type */
678
#define ACTIVATED_BF_PLAT_TYPE_BITS_ARROW_PLAT 0
679
#define ACTIVATED_BF_PLAT_TYPE_BITFS_MESH_PLAT 1
680
#define ACTIVATED_BF_PLAT_TYPE_BITFS_ELEVATOR 2
681
682
/* Dorrie */
683
/* oAction */
684
#define DORRIE_ACT_MOVE 0
685
#define DORRIE_ACT_LOWER_HEAD 1
686
#define DORRIE_ACT_RAISE_HEAD 2
687
688
/* Mad piano */
689
/* oAction */
690
#define MAD_PIANO_ACT_WAIT 0
691
#define MAD_PIANO_ACT_ATTACK 1
692
693
/* Fire piranha plant */
694
/* oAction */
695
#define FIRE_PIRANHA_PLANT_ACT_HIDE 0
696
#define FIRE_PIRANHA_PLANT_ACT_GROW 1
697
698
/* Fire spitter */
699
/* oAction */
700
#define FIRE_SPITTER_ACT_IDLE 0
701
#define FIRE_SPITTER_ACT_SPIT_FIRE 1
702
703
/* Eyerok boss */
704
/* oAction */
705
#define EYEROK_BOSS_ACT_SLEEP 0
706
#define EYEROK_BOSS_ACT_WAKE_UP 1
707
#define EYEROK_BOSS_ACT_SHOW_INTRO_TEXT 2
708
#define EYEROK_BOSS_ACT_FIGHT 3
709
#define EYEROK_BOSS_ACT_DIE 4
710
711
/* Eyerok hand */
712
/* oAction */
713
#define EYEROK_HAND_ACT_SLEEP 0
714
#define EYEROK_HAND_ACT_IDLE 1
715
#define EYEROK_HAND_ACT_OPEN 2
716
#define EYEROK_HAND_ACT_SHOW_EYE 3
717
#define EYEROK_HAND_ACT_CLOSE 4
718
#define EYEROK_HAND_ACT_RETREAT 5
719
#define EYEROK_HAND_ACT_TARGET_MARIO 6
720
#define EYEROK_HAND_ACT_SMASH 7
721
#define EYEROK_HAND_ACT_FIST_PUSH 8
722
#define EYEROK_HAND_ACT_FIST_SWEEP 9
723
#define EYEROK_HAND_ACT_BEGIN_DOUBLE_POUND 10 // raising for double smash
724
#define EYEROK_HAND_ACT_DOUBLE_POUND 11 // double smashing
725
#define EYEROK_HAND_ACT_ATTACKED 12
726
#define EYEROK_HAND_ACT_RECOVER 13
727
#define EYEROK_HAND_ACT_BECOME_ACTIVE 14
728
#define EYEROK_HAND_ACT_DIE 15
729
730
/* Klepto */
731
/* oAction */
732
#define KLEPTO_ACT_CIRCLE_TARGET_HOLDING 0
733
#define KLEPTO_ACT_APPROACH_TARGET_HOLDING 1
734
#define KLEPTO_ACT_WAIT_FOR_MARIO 2
735
#define KLEPTO_ACT_TURN_TOWARD_MARIO 3
736
#define KLEPTO_ACT_DIVE_AT_MARIO 4
737
#define KLEPTO_ACT_RESET_POSITION 5
738
#define KLEPTO_ACT_STRUCK_BY_MARIO 6
739
#define KLEPTO_ACT_RETREAT 7
740
741
/* oAnimState */
742
#define KLEPTO_ANIM_STATE_HOLDING_NOTHING 0
743
#define KLEPTO_ANIM_STATE_HOLDING_CAP 1
744
#define KLEPTO_ANIM_STATE_HOLDING_STAR 2
745
746
/* Bird */
747
/* oAction */
748
#define BIRD_ACT_INACTIVE 0
749
#define BIRD_ACT_FLY 1
750
751
/* oBehParams2ndByte */
752
#define BIRD_BP_SPAWNED 0
753
#define BIRD_BP_SPAWNER 1
754
755
/* Racing penguin */
756
/* oAction */
757
#define RACING_PENGUIN_ACT_WAIT_FOR_MARIO 0
758
#define RACING_PENGUIN_ACT_SHOW_INIT_TEXT 1
759
#define RACING_PENGUIN_ACT_PREPARE_FOR_RACE 2
760
#define RACING_PENGUIN_ACT_RACE 3
761
#define RACING_PENGUIN_ACT_FINISH_RACE 4
762
#define RACING_PENGUIN_ACT_SHOW_FINAL_TEXT 5
763
764
/* Skeeter */
765
/* oAction */
766
#define SKEETER_ACT_IDLE 0
767
#define SKEETER_ACT_LUNGE 1
768
#define SKEETER_ACT_WALK 2
769
770
/* Triplet butterfly */
771
/* oAction */
772
#define TRIPLET_BUTTERFLY_ACT_INIT 0
773
#define TRIPLET_BUTTERFLY_ACT_WANDER 1
774
#define TRIPLET_BUTTERFLY_ACT_ACTIVATE 2
775
#define TRIPLET_BUTTERFLY_ACT_EXPLODE 3
776
777
/* oBehParams2ndByte */
778
#define TRIPLET_BUTTERFLY_BP_BUTTERFLY_NUM 0x00000003
779
#define TRIPLET_BUTTERFLY_BP_NO_BOMBS 0x00000004
780
781
/* oTripletButterflyType */
782
#define TRIPLET_BUTTERFLY_TYPE_NORMAL -1
783
#define TRIPLET_BUTTERFLY_TYPE_EXPLODES 0
784
#define TRIPLET_BUTTERFLY_TYPE_SPAWN_1UP 1
785
786
/* Water level diamond */
787
/* oAction */
788
// Loading
789
#define WATER_LEVEL_DIAMOND_ACT_INIT 0
790
// Idling when Mario isn't inside its hitbox
791
#define WATER_LEVEL_DIAMOND_ACT_IDLE 1
792
// While the water level is changing
793
#define WATER_LEVEL_DIAMOND_ACT_CHANGE_WATER_LEVEL 2
794
// After the water level has changed but Mario hasn't left its hitbox yet
795
#define WATER_LEVEL_DIAMOND_ACT_IDLE_SPINNING 3
796
797
/* Mips */
798
/* oAction */
799
#define MIPS_ACT_WAIT_FOR_NEARBY_MARIO 0
800
#define MIPS_ACT_FOLLOW_PATH 1
801
#define MIPS_ACT_WAIT_FOR_ANIMATION_DONE 2
802
#define MIPS_ACT_FALL_DOWN 3
803
#define MIPS_ACT_IDLE 4
804
805
/* oMipsStarStatus */
806
#define MIPS_STAR_STATUS_HAVENT_SPAWNED_STAR 0
807
#define MIPS_STAR_STATUS_SHOULD_SPAWN_STAR 1
808
#define MIPS_STAR_STATUS_ALREADY_SPAWNED_STAR 2
809
810
/* Falling Pillar */
811
/* oAction */
812
#define FALLING_PILLAR_ACT_IDLE 0
813
#define FALLING_PILLAR_ACT_TURNING 1
814
#define FALLING_PILLAR_ACT_FALLING 2
815
816
/* Bowser Puzzle */
817
/* oAction */
818
#define BOWSER_PUZZLE_ACT_SPAWN_PIECES 0
819
#define BOWSER_PUZZLE_ACT_WAIT_FOR_COMPLETE 1
820
#define BOWSER_PUZZLE_ACT_DONE 2
821
822
#endif
Generated by
1.8.13