Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
MorsGames
GitHub Repository: MorsGames/sm64plus
Path: blob/master/include/object_constants.h
7854 views
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_DEACTIVATED 0 // 0x0000
9
#define ACTIVE_FLAG_ACTIVE (1 << 0) // 0x0001
10
#define ACTIVE_FLAG_FAR_AWAY (1 << 1) // 0x0002
11
#define ACTIVE_FLAG_UNK2 (1 << 2) // 0x0004
12
#define ACTIVE_FLAG_IN_DIFFERENT_ROOM (1 << 3) // 0x0008
13
#define ACTIVE_FLAG_UNIMPORTANT (1 << 4) // 0x0010
14
#define ACTIVE_FLAG_INITIATED_TIME_STOP (1 << 5) // 0x0020
15
#define ACTIVE_FLAG_MOVE_THROUGH_GRATE (1 << 6) // 0x0040
16
#define ACTIVE_FLAG_DITHERED_ALPHA (1 << 7) // 0x0080
17
#define ACTIVE_FLAG_UNK8 (1 << 8) // 0x0100
18
#define ACTIVE_FLAG_UNK9 (1 << 9) // 0x0200
19
#define ACTIVE_FLAG_UNK10 (1 << 10) // 0x0400
20
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_SET_FACE_ANGLE_TO_MOVE_ANGLE (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_SET_THROW_MATRIX_FROM_TRANSFORM (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_STATUS_ENABLE_TIME_STOP 0
57
#define DIALOG_STATUS_INTERRUPT 1
58
#define DIALOG_STATUS_START_DIALOG 2
59
#define DIALOG_STATUS_STOP_DIALOG 3
60
#define DIALOG_STATUS_DISABLE_TIME_STOP 4
61
62
#define DIALOG_FLAG_NONE 0
63
#define DIALOG_FLAG_TURN_TO_MARIO (1 << 0) // 0x01 // cutscene only
64
#define DIALOG_FLAG_TEXT_DEFAULT (1 << 1) // 0x02
65
#define DIALOG_FLAG_TEXT_RESPONSE (1 << 2) // 0x04 // non-cutscene only
66
#define DIALOG_FLAG_UNK_CAPSWITCH (1 << 3) // 0x08 // not defined
67
#define DIALOG_FLAG_TIME_STOP_ENABLED (1 << 4) // 0x10
68
69
/* oMoveFlags */
70
#define OBJ_MOVE_LANDED (1 << 0) // 0x0001
71
#define OBJ_MOVE_ON_GROUND (1 << 1) // 0x0002 // mutually exclusive to OBJ_MOVE_LANDED
72
#define OBJ_MOVE_LEFT_GROUND (1 << 2) // 0x0004
73
#define OBJ_MOVE_ENTERED_WATER (1 << 3) // 0x0008
74
#define OBJ_MOVE_AT_WATER_SURFACE (1 << 4) // 0x0010
75
#define OBJ_MOVE_UNDERWATER_OFF_GROUND (1 << 5) // 0x0020
76
#define OBJ_MOVE_UNDERWATER_ON_GROUND (1 << 6) // 0x0040
77
#define OBJ_MOVE_IN_AIR (1 << 7) // 0x0080
78
#define OBJ_MOVE_OUT_SCOPE (1 << 8) // 0x0100
79
#define OBJ_MOVE_HIT_WALL (1 << 9) // 0x0200
80
#define OBJ_MOVE_HIT_EDGE (1 << 10) // 0x0400
81
#define OBJ_MOVE_ABOVE_LAVA (1 << 11) // 0x0800
82
#define OBJ_MOVE_LEAVING_WATER (1 << 12) // 0x1000
83
#define OBJ_MOVE_BOUNCE (1 << 13) // 0x2000
84
#ifndef VERSION_JP
85
#define OBJ_MOVE_ABOVE_DEATH_BARRIER (1 << 14) // 0x4000
86
#endif
87
88
#define OBJ_MOVE_MASK_ON_GROUND (OBJ_MOVE_LANDED | OBJ_MOVE_ON_GROUND)
89
#define OBJ_MOVE_MASK_IN_WATER (\
90
OBJ_MOVE_ENTERED_WATER |\
91
OBJ_MOVE_AT_WATER_SURFACE |\
92
OBJ_MOVE_UNDERWATER_OFF_GROUND |\
93
OBJ_MOVE_UNDERWATER_ON_GROUND)
94
95
/* oActiveParticleFlags */
96
#define ACTIVE_PARTICLE_DUST (1 << 0) // 0x00000001
97
#define ACTIVE_PARTICLE_UNUSED_1 (1 << 1) // 0x00000002
98
#define ACTIVE_PARTICLE_UNUSED_2 (1 << 2) // 0x00000004
99
#define ACTIVE_PARTICLE_SPARKLES (1 << 3) // 0x00000008
100
#define ACTIVE_PARTICLE_H_STAR (1 << 4) // 0x00000010
101
#define ACTIVE_PARTICLE_BUBBLE (1 << 5) // 0x00000020
102
#define ACTIVE_PARTICLE_WATER_SPLASH (1 << 6) // 0x00000040
103
#define ACTIVE_PARTICLE_IDLE_WATER_WAVE (1 << 7) // 0x00000080
104
#define ACTIVE_PARTICLE_SHALLOW_WATER_WAVE (1 << 8) // 0x00000100
105
#define ACTIVE_PARTICLE_PLUNGE_BUBBLE (1 << 9) // 0x00000200
106
#define ACTIVE_PARTICLE_WAVE_TRAIL (1 << 10) // 0x00000400
107
#define ACTIVE_PARTICLE_FIRE (1 << 11) // 0x00000800
108
#define ACTIVE_PARTICLE_SHALLOW_WATER_SPLASH (1 << 12) // 0x00001000
109
#define ACTIVE_PARTICLE_LEAF (1 << 13) // 0x00002000
110
#define ACTIVE_PARTICLE_DIRT (1 << 14) // 0x00004000
111
#define ACTIVE_PARTICLE_MIST_CIRCLE (1 << 15) // 0x00008000
112
#define ACTIVE_PARTICLE_SNOW (1 << 16) // 0x00010000
113
#define ACTIVE_PARTICLE_BREATH (1 << 17) // 0x00020000
114
#define ACTIVE_PARTICLE_V_STAR (1 << 18) // 0x00040000
115
#define ACTIVE_PARTICLE_TRIANGLE (1 << 19) // 0x00080000
116
117
/* oAction */
118
#define OBJ_ACT_LAVA_DEATH 100
119
#define OBJ_ACT_DEATH_PLANE_DEATH 101
120
121
#define OBJ_ACT_HORIZONTAL_KNOCKBACK 100
122
#define OBJ_ACT_VERTICAL_KNOCKBACK 101
123
#define OBJ_ACT_SQUISHED 102
124
125
/* gTTCSpeedSetting */
126
#define TTC_SPEED_SLOW 0
127
#define TTC_SPEED_FAST 1
128
#define TTC_SPEED_RANDOM 2
129
#define TTC_SPEED_STOPPED 3
130
131
/* Bob-omb */
132
/* oBehParams2ndByte */
133
#define BOBOMB_BP_STYPE_GENERIC 0
134
#define BOBOMB_BP_STYPE_STATIONARY 1
135
/* oAction */
136
#define BOBOMB_ACT_PATROL 0
137
#define BOBOMB_ACT_LAUNCHED 1
138
#define BOBOMB_ACT_CHASE_MARIO 2
139
#define BOBOMB_ACT_EXPLODE 3
140
#define BOBOMB_ACT_LAVA_DEATH 100
141
#define BOBOMB_ACT_DEATH_PLANE_DEATH 101
142
143
/* Hidden Blue Coin */
144
/* oAction */
145
#define HIDDEN_BLUE_COIN_ACT_INACTIVE 0
146
#define HIDDEN_BLUE_COIN_ACT_WAITING 1
147
#define HIDDEN_BLUE_COIN_ACT_ACTIVE 2
148
149
/* Blue Coin Switch */
150
/* oAction */
151
#define BLUE_COIN_SWITCH_ACT_IDLE 0
152
#define BLUE_COIN_SWITCH_ACT_RECEDING 1
153
#define BLUE_COIN_SWITCH_ACT_TICKING 2
154
155
/* Moving Blue Coin */
156
/* oAction */
157
#define MOV_BCOIN_ACT_STILL 0
158
#define MOV_BCOIN_ACT_MOVING 1
159
160
/* Moving Yellow Coin */
161
/* oAction */
162
#define MOV_YCOIN_ACT_IDLE 0
163
#define MOV_YCOIN_ACT_BLINKING 1
164
#define MOV_YCOIN_ACT_LAVA_DEATH 100
165
#define MOV_YCOIN_ACT_DEATH_PLANE_DEATH 101
166
167
/* Bob-omb Buddy */
168
/* oBehParams2ndByte */
169
#define BOBOMB_BUDDY_BP_STYPE_GENERIC 0
170
#define BOBOMB_BUDDY_BP_STYPE_BOB_GRASS_KBB 1
171
#define BOBOMB_BUDDY_BP_STYPE_BOB_CANNON_KBB 2
172
#define BOBOMB_BUDDY_BP_STYPE_BOB_GRASS 3
173
/* oAction */
174
#define BOBOMB_BUDDY_ACT_IDLE 0
175
#define BOBOMB_BUDDY_ACT_TURN_TO_TALK 2
176
#define BOBOMB_BUDDY_ACT_TALK 3
177
/* oBobombBuddyRole */
178
#define BOBOMB_BUDDY_ROLE_ADVICE 0
179
#define BOBOMB_BUDDY_ROLE_CANNON 1
180
/* oBobombBuddyCannonStatus */
181
#define BOBOMB_BUDDY_CANNON_UNOPENED 0
182
#define BOBOMB_BUDDY_CANNON_OPENING 1
183
#define BOBOMB_BUDDY_CANNON_OPENED 2
184
#define BOBOMB_BUDDY_CANNON_STOP_TALKING 3
185
/* oBobombBuddyHasTalkedToMario */
186
#define BOBOMB_BUDDY_HAS_NOT_TALKED 0
187
#define BOBOMB_BUDDY_HAS_TALKED 2
188
189
/* Bowser */
190
/* Tail oAction */
191
#define BOWSER_ACT_TAIL_DEFAULT 0
192
#define BOWSER_ACT_TAIL_THROWN 1
193
#define BOWSER_ACT_TAIL_TOUCHED_MARIO 2
194
/* oAction */
195
#define BOWSER_ACT_DEFAULT 0
196
#define BOWSER_ACT_THROWN 1
197
#define BOWSER_ACT_JUMP_ONTO_STAGE 2
198
#define BOWSER_ACT_DANCE 3
199
#define BOWSER_ACT_DEAD 4
200
#define BOWSER_ACT_WAIT 5
201
#define BOWSER_ACT_INTRO_WALK 6
202
#define BOWSER_ACT_CHARGE_MARIO 7
203
#define BOWSER_ACT_SPIT_FIRE_INTO_SKY 8
204
#define BOWSER_ACT_SPIT_FIRE_ONTO_FLOOR 9
205
#define BOWSER_ACT_HIT_EDGE 10
206
#define BOWSER_ACT_TURN_FROM_EDGE 11
207
#define BOWSER_ACT_HIT_MINE 12
208
#define BOWSER_ACT_BIG_JUMP 13
209
#define BOWSER_ACT_WALK_TO_MARIO 14
210
#define BOWSER_ACT_BREATH_FIRE 15
211
#define BOWSER_ACT_TELEPORT 16
212
#define BOWSER_ACT_QUICK_JUMP 17
213
#define BOWSER_ACT_UNUSED_SLOW_WALK 18
214
#define BOWSER_ACT_TILT_LAVA_PLATFORM 19
215
/* Animations */
216
#define BOWSER_ANIM_STAND_UP 0
217
#define BOWSER_ANIM_STAND_UP_UNUSED 1 // slightly different
218
#define BOWSER_ANIM_SHAKING 2
219
#define BOWSER_ANIM_GRABBED 3
220
#define BOWSER_ANIM_BROKEN 4 // broken animation
221
#define BOWSER_ANIM_FALL_DOWN 5 // unused
222
#define BOWSER_ANIM_BREATH 6
223
#define BOWSER_ANIM_JUMP 7 // unused, short jump, replaced by start/stop
224
#define BOWSER_ANIM_JUMP_STOP 8
225
#define BOWSER_ANIM_JUMP_START 9
226
#define BOWSER_ANIM_DANCE 10
227
#define BOWSER_ANIM_BREATH_UP 11
228
#define BOWSER_ANIM_IDLE 12
229
#define BOWSER_ANIM_SLOW_GAIT 13
230
#define BOWSER_ANIM_LOOK_DOWN_STOP_WALK 14
231
#define BOWSER_ANIM_LOOK_UP_START_WALK 15
232
#define BOWSER_ANIM_FLIP_DOWN 16
233
#define BOWSER_ANIM_LAY_DOWN 17
234
#define BOWSER_ANIM_RUN_START 18
235
#define BOWSER_ANIM_RUN 19
236
#define BOWSER_ANIM_RUN_STOP 20
237
#define BOWSER_ANIM_RUN_SLIP 21
238
#define BOWSER_ANIM_BREATH_QUICK 22
239
#define BOWSER_ANIM_EDGE_MOVE 23
240
#define BOWSER_ANIM_EDGE_STOP 24
241
#define BOWSER_ANIM_FLIP 25
242
#define BOWSER_ANIM_STAND_UP_FROM_FLIP 26
243
/* oBehParams2ndByte */
244
#define BOWSER_BP_BITDW 0
245
#define BOWSER_BP_BITFS 1
246
#define BOWSER_BP_BITS 2
247
/* oBowserCamAct */
248
#define BOWSER_CAM_ACT_IDLE 0
249
#define BOWSER_CAM_ACT_WALK 1
250
#define BOWSER_CAM_ACT_END 2
251
/* oBowserStatus */
252
#define BOWSER_STATUS_ANGLE_MARIO (1 << 1) // 0x00000002
253
#define BOWSER_STATUS_ANGLE_CENTRE (1 << 2) // 0x00000004
254
#define BOWSER_STATUS_DIST_MARIO (1 << 3) // 0x00000008
255
#define BOWSER_STATUS_DIST_CENTRE (1 << 4) // 0x00000010
256
#define BOWSER_STATUS_BIG_JUMP (1 << 16) // 0x00010000
257
#define BOWSER_STATUS_FIRE_SKY (1 << 17) // 0x00020000
258
/* oBowserGrabbedStatus */
259
#define BOWSER_GRAB_STATUS_NONE 0
260
#define BOWSER_GRAB_STATUS_GRABBED 1
261
#define BOWSER_GRAB_STATUS_HOLDING 2
262
/* oSubAction */
263
#define BOWSER_SUB_ACT_DEAD_FLY_BACK 0
264
#define BOWSER_SUB_ACT_DEAD_BOUNCE 1
265
#define BOWSER_SUB_ACT_DEAD_WAIT 2
266
#define BOWSER_SUB_ACT_DEAD_DEFAULT_END 3
267
#define BOWSER_SUB_ACT_DEAD_DEFAULT_END_OVER 4
268
#define BOWSER_SUB_ACT_DEAD_FINAL_END 10
269
#define BOWSER_SUB_ACT_DEAD_FINAL_END_OVER 11
270
271
#define BOWSER_SUB_ACT_CHARGE_START 0
272
#define BOWSER_SUB_ACT_CHARGE_RUN 1
273
#define BOWSER_SUB_ACT_CHARGE_END 2
274
#define BOWSER_SUB_ACT_CHARGE_SLIP 3
275
276
#define BOWSER_SUB_ACT_TELEPORT_START 0
277
#define BOWSER_SUB_ACT_TELEPORT_MOVE 1
278
#define BOWSER_SUB_ACT_TELEPORT_STOP 2
279
280
#define BOWSER_SUB_ACT_HIT_MINE_START 0
281
#define BOWSER_SUB_ACT_HIT_MINE_FALL 1
282
#define BOWSER_SUB_ACT_HIT_MINE_STOP 2
283
284
#define BOWSER_SUB_ACT_JUMP_ON_STAGE_IDLE 0
285
#define BOWSER_SUB_ACT_JUMP_ON_STAGE_START 1
286
#define BOWSER_SUB_ACT_JUMP_ON_STAGE_LAND 2
287
#define BOWSER_SUB_ACT_JUMP_ON_STAGE_STOP 3
288
289
/* Bowser Bits Platform*/
290
/* oAction */
291
#define BOWSER_BITS_PLAT_ACT_START 0
292
#define BOWSER_BITS_PLAT_ACT_CHECK 1
293
#define BOWSER_BITS_PLAT_ACT_FALL 2
294
295
/* Fish Spawer */
296
/* oAction */
297
#define FISH_SPAWNER_ACT_SPAWN 0
298
#define FISH_SPAWNER_ACT_IDLE 1
299
#define FISH_SPAWNER_ACT_RESPAWN 2
300
/* oBehParams2ndByte */
301
#define FISH_SPAWNER_BP_MANY_BLUE 0
302
#define FISH_SPAWNER_BP_FEW_BLUE 1
303
#define FISH_SPAWNER_BP_MANY_CYAN 2
304
#define FISH_SPAWNER_BP_FEW_CYAN 3
305
306
/* Fish */
307
/* oAction */
308
#define FISH_ACT_INIT 0
309
#define FISH_ACT_ROAM 1
310
#define FISH_ACT_FLEE 2
311
312
/* Blue_Fish */
313
/* oAction */
314
#define BLUE_FISH_ACT_DIVE 0
315
#define BLUE_FISH_ACT_TURN 1
316
#define BLUE_FISH_ACT_ASCEND 2
317
#define BLUE_FISH_ACT_TURN_BACK 3
318
319
/* oAction: bhv_blue_fish_spawn_loop */
320
#define BLUE_FISH_ACT_SPAWN 0
321
#define BLUE_FISH_ACT_ROOM 1
322
#define BLUE_FISH_ACT_DUPLICATE 2
323
324
/* Cannon Trap Door */
325
/* oAction */
326
#define CANNON_TRAP_DOOR_ACT_CLOSED 0
327
#define CANNON_TRAP_DOOR_ACT_CAM_ZOOM 1
328
#define CANNON_TRAP_DOOR_ACT_OPENING 2
329
#define CANNON_TRAP_DOOR_ACT_OPEN 3
330
331
/* Homing Amp */
332
/* oAction */
333
#define HOMING_AMP_ACT_INACTIVE 0
334
#define HOMING_AMP_ACT_APPEAR 1
335
#define HOMING_AMP_ACT_CHASE 2
336
#define HOMING_AMP_ACT_GIVE_UP 3
337
#define HOMING_AMP_ACT_ATTACK_COOLDOWN 4
338
339
/* Amp */
340
/* oBehParams2ndByte */
341
#define AMP_BP_ROT_RADIUS_200 0
342
#define AMP_BP_ROT_RADIUS_300 1
343
#define AMP_BP_ROT_RADIUS_400 2
344
#define AMP_BP_ROT_RADIUS_0 3
345
346
/* oAction */
347
#define AMP_ACT_IDLE 2
348
#define AMP_ACT_ATTACK_COOLDOWN 4
349
350
/* Butterfly */
351
/* oAction */
352
#define BUTTERFLY_ACT_RESTING 0
353
#define BUTTERFLY_ACT_FOLLOW_MARIO 1
354
#define BUTTERFLY_ACT_RETURN_HOME 2
355
356
/* Hoot */
357
/* oHootAvailability */
358
#define HOOT_AVAIL_ASLEEP_IN_TREE 0
359
#define HOOT_AVAIL_WANTS_TO_TALK 1
360
#define HOOT_AVAIL_READY_TO_FLY 2
361
/* oAction */
362
#define HOOT_ACT_ASCENT 0
363
#define HOOT_ACT_CARRY 1
364
#define HOOT_ACT_TIRED 2
365
366
/* Bully (all variants) */
367
/* oBehParams2ndByte */
368
#define BULLY_BP_SIZE_SMALL 0
369
#define BULLY_BP_SIZE_BIG 1
370
/* oAction */
371
#define BULLY_ACT_PATROL 0
372
#define BULLY_ACT_CHASE_MARIO 1
373
#define BULLY_ACT_KNOCKBACK 2
374
#define BULLY_ACT_BACK_UP 3
375
#define BULLY_ACT_INACTIVE 4
376
#define BULLY_ACT_ACTIVATE_AND_FALL 5
377
#define BULLY_ACT_LAVA_DEATH 100
378
#define BULLY_ACT_DEATH_PLANE_DEATH 101
379
/* oBullySubtype */
380
#define BULLY_STYPE_GENERIC 0
381
#define BULLY_STYPE_MINION 1
382
#define BULLY_STYPE_CHILL 16
383
384
/* Water Ring (all variants) */
385
/* oAction */
386
#define WATER_RING_ACT_NOT_COLLECTED 0
387
#define WATER_RING_ACT_COLLECTED 1
388
389
/* Jet Stream Water Ring Spawner */
390
/* oAction */
391
#define JS_RING_SPAWNER_ACT_ACTIVE 0
392
#define JS_RING_SPAWNER_ACT_INACTIVE 1
393
394
/* Celebration Star */
395
/* oAction */
396
#define CELEB_STAR_ACT_SPIN_AROUND_MARIO 0
397
#define CELEB_STAR_ACT_FACE_CAMERA 1
398
399
/* LLL Drawbridge */
400
/* oAction */
401
#define LLL_DRAWBRIDGE_ACT_LOWER 0
402
#define LLL_DRAWBRIDGE_ACT_RAISE 1
403
404
/* Bomp (both variants) */
405
/* oAction */
406
#define BOMP_ACT_WAIT 0
407
#define BOMP_ACT_POKE_OUT 1
408
#define BOMP_ACT_EXTEND 2
409
#define BOMP_ACT_RETRACT 3
410
411
/* WF Sliding Brick Platform */
412
/* oBehParams2ndByte */
413
#define WF_SLID_BRICK_PTFM_BP_MOV_VEL_10 1
414
#define WF_SLID_BRICK_PTFM_BP_MOV_VEL_15 2
415
#define WF_SLID_BRICK_PTFM_BP_MOV_VEL_20 3
416
/* oAction */
417
#define WF_SLID_BRICK_PTFM_ACT_WAIT 0
418
#define WF_SLID_BRICK_PTFM_ACT_EXTEND 1
419
#define WF_SLID_BRICK_PTFM_ACT_RETRACT 2
420
421
/* Fake Moneybag Coin */
422
/* oAction */
423
#define FAKE_MONEYBAG_COIN_ACT_IDLE 0
424
#define FAKE_MONEYBAG_COIN_ACT_TRANSFORM 1
425
426
/* Moneybag */
427
/* oAction */
428
#define MONEYBAG_ACT_APPEAR 0
429
#define MONEYBAG_ACT_UNUSED_APPEAR 1
430
#define MONEYBAG_ACT_MOVE_AROUND 2
431
#define MONEYBAG_ACT_RETURN_HOME 3
432
#define MONEYBAG_ACT_DISAPPEAR 4
433
#define MONEYBAG_ACT_DEATH 5
434
/* oMoneybagJumpState */
435
#define MONEYBAG_JUMP_LANDING 0
436
#define MONEYBAG_JUMP_PREPARE 1
437
#define MONEYBAG_JUMP_JUMP 2
438
#define MONEYBAG_JUMP_JUMP_AND_BOUNCE 3
439
#define MONEYBAG_JUMP_WALK_AROUND 4
440
#define MONEYBAG_JUMP_WALK_HOME 5
441
442
/* Bowling Ball */
443
/* oAction */
444
#define BBALL_ACT_INITIALIZE 0
445
#define BBALL_ACT_ROLL 1
446
447
/* Bowling Ball + Bowling Ball Spawner (all variants) */
448
/* oBehParams2ndByte */
449
#define BBALL_BP_STYPE_BOB_UPPER 0
450
#define BBALL_BP_STYPE_TTM 1
451
#define BBALL_BP_STYPE_BOB_LOWER 2
452
#define BBALL_BP_STYPE_THI_LARGE 3
453
#define BBALL_BP_STYPE_THI_SMALL 4
454
455
/* Bowling Ball (Free) */
456
/* oAction */
457
#define FREE_BBALL_ACT_IDLE 0
458
#define FREE_BBALL_ACT_ROLL 1
459
#define FREE_BBALL_ACT_RESET 2
460
461
/* Beta Chest Lid */
462
/* oAction */
463
#define BETA_CHEST_ACT_IDLE_CLOSED 0
464
#define BETA_CHEST_ACT_OPENING 1
465
#define BETA_CHEST_ACT_IDLE_OPEN 2
466
467
/* BBH Tilting Trap Platform */
468
/* oAction */
469
// Unused in original Japanese version
470
#define BBH_TILTING_TRAP_PLATFORM_ACT_MARIO_ON 0
471
#define BBH_TILTING_TRAP_PLATFORM_ACT_MARIO_OFF 1
472
473
/* Boo */
474
/* oBooDeathStatus */
475
#define BOO_DEATH_STATUS_ALIVE 0
476
#define BOO_DEATH_STATUS_DYING 1
477
#define BOO_DEATH_STATUS_DEAD 2
478
479
/* attackStatus */
480
#define BOO_NOT_ATTACKED 0
481
#define BOO_ATTACKED 1
482
#define BOO_BOUNCED_ON -1
483
484
/* Beta Boo Key */
485
/* oAction */
486
#define BETA_BOO_KEY_ACT_IN_BOO 0
487
#define BETA_BOO_KEY_ACT_DROPPING 1
488
#define BETA_BOO_KEY_ACT_DROPPED 2
489
490
/* Boo Cage */
491
/* oAction */
492
#define BOO_CAGE_ACT_IN_BOO 0
493
#define BOO_CAGE_ACT_FALLING 1
494
#define BOO_CAGE_ACT_ON_GROUND 2
495
#define BOO_CAGE_ACT_MARIO_JUMPING_IN 3
496
#define BOO_CAGE_ACT_USELESS 4
497
498
/* BBH Haunted Bookshelf */
499
/* oAction */
500
#define HAUNTED_BOOKSHELF_ACT_IDLE 0
501
#define HAUNTED_BOOKSHELF_ACT_RECEDE 1
502
503
/* BBH Merry-Go-Round */
504
/* gMarioCurrentRoom */
505
#define BBH_NEAR_MERRY_GO_ROUND_ROOM 10
506
#define BBH_DYNAMIC_SURFACE_ROOM 0
507
#define BBH_OUTSIDE_ROOM 13
508
509
/* Coffin Spawner */
510
/* oAction */
511
#define COFFIN_SPAWNER_ACT_COFFINS_UNLOADED 0
512
513
/* Coffin */
514
/* oAction */
515
#define COFFIN_ACT_IDLE 0
516
#define COFFIN_ACT_STAND_UP 1
517
518
/* oBehParams2ndByte */
519
#define COFFIN_BP_STATIC 0
520
521
/* WDW Arrow Lift */
522
/* oAction */
523
#define ARROW_LIFT_ACT_IDLE 0
524
#define ARROW_LIFT_ACT_MOVING_AWAY 1
525
#define ARROW_LIFT_ACT_MOVING_BACK 2
526
527
/* status */
528
#define ARROW_LIFT_NOT_DONE_MOVING 0
529
#define ARROW_LIFT_DONE_MOVING 1
530
531
/* Yoshi */
532
/* oAction */
533
#define YOSHI_ACT_IDLE 0
534
#define YOSHI_ACT_WALK 1
535
#define YOSHI_ACT_TALK 2
536
#define YOSHI_ACT_WALK_JUMP_OFF_ROOF 3
537
#define YOSHI_ACT_FINISH_JUMPING_AND_DESPAWN 4
538
#define YOSHI_ACT_GIVE_PRESENT 5
539
#define YOSHI_ACT_CREDITS 10
540
541
/* Koopa */
542
/* oAction */
543
#define KOOPA_UNSHELLED_ACT_RUN 0
544
#define KOOPA_UNSHELLED_ACT_DIVE 1
545
#define KOOPA_UNSHELLED_ACT_LYING 2
546
#define KOOPA_UNSHELLED_ACT_UNUSED3 3
547
548
#define KOOPA_SHELLED_ACT_STOPPED 0
549
#define KOOPA_SHELLED_ACT_WALK 1
550
#define KOOPA_SHELLED_ACT_RUN_FROM_MARIO 2
551
#define KOOPA_SHELLED_ACT_LYING 3
552
#define KOOPA_SHELLED_ACT_DIE 4
553
554
#define KOOPA_THE_QUICK_ACT_WAIT_BEFORE_RACE 0
555
#define KOOPA_THE_QUICK_ACT_UNUSED1 1
556
#define KOOPA_THE_QUICK_ACT_SHOW_INIT_TEXT 2
557
#define KOOPA_THE_QUICK_ACT_RACE 3
558
#define KOOPA_THE_QUICK_ACT_DECELERATE 4
559
#define KOOPA_THE_QUICK_ACT_STOP 5
560
#define KOOPA_THE_QUICK_ACT_AFTER_RACE 6
561
562
/* oSubAction */
563
#define KOOPA_SHELLED_SUB_ACT_START_WALK 0
564
#define KOOPA_SHELLED_SUB_ACT_WALK 1
565
#define KOOPA_SHELLED_SUB_ACT_STOP_WALK 2
566
567
#define KOOPA_THE_QUICK_SUB_ACT_START_RUN 0
568
#define KOOPA_THE_QUICK_SUB_ACT_RUN 1
569
#define KOOPA_THE_QUICK_SUB_ACT_JUMP 2
570
571
/* oKoopaTheQuickRaceIndex */
572
#define KOOPA_THE_QUICK_BOB_INDEX 0
573
#define KOOPA_THE_QUICK_THI_INDEX 1
574
575
/* oBehParams2ndByte */
576
#define KOOPA_BP_UNSHELLED 0
577
#define KOOPA_BP_NORMAL 1
578
#define KOOPA_BP_KOOPA_THE_QUICK_BASE 2
579
#define KOOPA_BP_KOOPA_THE_QUICK_BOB (KOOPA_BP_KOOPA_THE_QUICK_BASE + KOOPA_THE_QUICK_BOB_INDEX)
580
#define KOOPA_BP_KOOPA_THE_QUICK_THI (KOOPA_BP_KOOPA_THE_QUICK_BASE + KOOPA_THE_QUICK_THI_INDEX)
581
#define KOOPA_BP_TINY 4
582
583
/* Pokey */
584
/* oAction */
585
#define POKEY_ACT_UNINITIALIZED 0
586
#define POKEY_ACT_WANDER 1
587
#define POKEY_ACT_UNLOAD_PARTS 2
588
589
/* Swoop */
590
/* oAction */
591
#define SWOOP_ACT_IDLE 0
592
#define SWOOP_ACT_MOVE 1
593
594
/* Fly guy */
595
/* oAction */
596
#define FLY_GUY_ACT_IDLE 0
597
#define FLY_GUY_ACT_APPROACH_MARIO 1
598
#define FLY_GUY_ACT_LUNGE 2
599
#define FLY_GUY_ACT_SHOOT_FIRE 3
600
601
/* Goomba triplet spawner */
602
/* oBehParams2ndByte */
603
#define GOOMBA_TRIPLET_SPAWNER_BP_SIZE_MASK 0x00000003
604
#define GOOMBA_TRIPLET_SPAWNER_BP_EXTRA_GOOMBAS_MASK 0x000000FC
605
/* oAction */
606
#define GOOMBA_TRIPLET_SPAWNER_ACT_UNLOADED 0
607
#define GOOMBA_TRIPLET_SPAWNER_ACT_LOADED 1
608
609
/* Goomba */
610
/* oBehParams2ndByte */
611
#define GOOMBA_BP_SIZE_MASK 0x00000003
612
#define GOOMBA_SIZE_REGULAR 0
613
#define GOOMBA_SIZE_HUGE 1
614
#define GOOMBA_SIZE_TINY 2
615
#define GOOMBA_BP_TRIPLET_FLAG_MASK 0x000000FC
616
/* oAction */
617
#define GOOMBA_ACT_WALK 0
618
#define GOOMBA_ACT_ATTACKED_MARIO 1
619
#define GOOMBA_ACT_JUMP 2
620
621
/* Chain chomp */
622
/* oAction */
623
#define CHAIN_CHOMP_ACT_UNINITIALIZED 0
624
#define CHAIN_CHOMP_ACT_MOVE 1
625
#define CHAIN_CHOMP_ACT_UNLOAD_CHAIN 2
626
627
/* oSubAction */
628
#define CHAIN_CHOMP_SUB_ACT_TURN 0
629
#define CHAIN_CHOMP_SUB_ACT_LUNGE 1
630
631
/* oChainChompReleaseStatus */
632
#define CHAIN_CHOMP_NOT_RELEASED 0
633
#define CHAIN_CHOMP_RELEASED_TRIGGER_CUTSCENE 1
634
#define CHAIN_CHOMP_RELEASED_LUNGE_AROUND 2
635
#define CHAIN_CHOMP_RELEASED_BREAK_GATE 3
636
#define CHAIN_CHOMP_RELEASED_JUMP_AWAY 4
637
#define CHAIN_CHOMP_RELEASED_END_CUTSCENE 5
638
639
/* Chain chomp chain part */
640
/* oBehParams2ndByte */
641
#define CHAIN_CHOMP_CHAIN_PART_BP_PIVOT 0
642
643
/* Wooden post */
644
/* oBehParams */
645
#define WOODEN_POST_BP_NO_COINS_MASK 0x0000FF00
646
647
/* Wiggler */
648
/* oAction */
649
#define WIGGLER_ACT_UNINITIALIZED 0
650
#define WIGGLER_ACT_WALK 1
651
#define WIGGLER_ACT_KNOCKBACK 2
652
#define WIGGLER_ACT_JUMPED_ON 3
653
#define WIGGLER_ACT_SHRINK 4
654
#define WIGGLER_ACT_FALL_THROUGH_FLOOR 5
655
656
/* oWigglerTextStatus */
657
#define WIGGLER_TEXT_STATUS_AWAIT_DIALOG 0
658
#define WIGGLER_TEXT_STATUS_SHOWING_DIALOG 1
659
#define WIGGLER_TEXT_STATUS_COMPLETED_DIALOG 2
660
661
/* Spiny */
662
/* oAction */
663
#define SPINY_ACT_WALK 0
664
#define SPINY_ACT_HELD_BY_LAKITU 1
665
#define SPINY_ACT_THROWN_BY_LAKITU 2
666
#define SPINY_ACT_ATTACKED_MARIO 3
667
668
/* Evil lakitu */
669
/* oAction */
670
#define ENEMY_LAKITU_ACT_UNINITIALIZED 0
671
#define ENEMY_LAKITU_ACT_MAIN 1
672
673
/* oSubAction */
674
#define ENEMY_LAKITU_SUB_ACT_NO_SPINY 0
675
#define ENEMY_LAKITU_SUB_ACT_HOLD_SPINY 1
676
#define ENEMY_LAKITU_SUB_ACT_THROW_SPINY 2
677
678
/* Cloud */
679
/* oAction */
680
#define CLOUD_ACT_SPAWN_PARTS 0
681
#define CLOUD_ACT_MAIN 1
682
#define CLOUD_ACT_UNLOAD 2
683
#define CLOUD_ACT_FWOOSH_HIDDEN 3
684
685
/* oBehParams2ndByte */
686
#define CLOUD_BP_FWOOSH 0
687
#define CLOUD_BP_LAKITU_CLOUD 1
688
689
/* Camera lakitu */
690
/* oAction */
691
#define CAMERA_LAKITU_INTRO_ACT_TRIGGER_CUTSCENE 0
692
#define CAMERA_LAKITU_INTRO_ACT_SPAWN_CLOUD 1
693
#define CAMERA_LAKITU_INTRO_ACT_UNK2 2
694
695
/* oBehParams2ndByte */
696
#define CAMERA_LAKITU_BP_FOLLOW_CAMERA 0
697
#define CAMERA_LAKITU_BP_INTRO 1
698
699
/* Manta Ray */
700
/* oAction */
701
#define MANTA_ACT_SPAWN_RINGS 0
702
#define MANTA_ACT_NO_RINGS 1
703
704
/* Monty mole */
705
/* oAction */
706
#define MONTY_MOLE_ACT_SELECT_HOLE 0
707
#define MONTY_MOLE_ACT_RISE_FROM_HOLE 1
708
#define MONTY_MOLE_ACT_SPAWN_ROCK 2
709
#define MONTY_MOLE_ACT_BEGIN_JUMP_INTO_HOLE 3
710
#define MONTY_MOLE_ACT_THROW_ROCK 4
711
#define MONTY_MOLE_ACT_JUMP_INTO_HOLE 5
712
#define MONTY_MOLE_ACT_HIDE 6
713
#define MONTY_MOLE_ACT_JUMP_OUT_OF_HOLE 7
714
715
/* oBehParams2ndByte */
716
#define MONTY_MOLE_BP_NO_ROCK 0
717
718
/* Monty mole rock */
719
/* oAction */
720
#define MONTY_MOLE_ROCK_ACT_HELD 0
721
#define MONTY_MOLE_ROCK_ACT_MOVE 1
722
723
/* Ukiki */
724
/* oAction */
725
#define UKIKI_ACT_IDLE 0
726
#define UKIKI_ACT_RUN 1
727
#define UKIKI_ACT_TURN_TO_MARIO 2
728
#define UKIKI_ACT_JUMP 3
729
#define UKIKI_ACT_GO_TO_CAGE 4
730
#define UKIKI_ACT_WAIT_TO_RESPAWN 5
731
#define UKIKI_ACT_UNUSED_TURN 6
732
#define UKIKI_ACT_RETURN_HOME 7
733
734
/* oSubAction */
735
#define UKIKI_SUB_ACT_TAUNT_NONE 0
736
#define UKIKI_SUB_ACT_TAUNT_ITCH 1
737
#define UKIKI_SUB_ACT_TAUNT_SCREECH 2
738
#define UKIKI_SUB_ACT_TAUNT_JUMP_CLAP 3
739
#define UKIKI_SUB_ACT_TAUNT_HANDSTAND 4
740
741
#define UKIKI_SUB_ACT_CAGE_RUN_TO_CAGE 0
742
#define UKIKI_SUB_ACT_CAGE_WAIT_FOR_MARIO 1
743
#define UKIKI_SUB_ACT_CAGE_TALK_TO_MARIO 2
744
#define UKIKI_SUB_ACT_CAGE_TURN_TO_CAGE 3
745
#define UKIKI_SUB_ACT_CAGE_JUMP_TO_CAGE 4
746
#define UKIKI_SUB_ACT_CAGE_LAND_ON_CAGE 5
747
#define UKIKI_SUB_ACT_CAGE_SPIN_ON_CAGE 6
748
#define UKIKI_SUB_ACT_CAGE_DESPAWN 7
749
750
/* oUkikiTextState */
751
#define UKIKI_TEXT_DEFAULT 0
752
#define UKIKI_TEXT_CAGE_TEXTBOX 1
753
#define UKIKI_TEXT_GO_TO_CAGE 2
754
#define UKIKI_TEXT_STOLE_CAP 3
755
#define UKIKI_TEXT_HAS_CAP 4
756
#define UKIKI_TEXT_GAVE_CAP_BACK 5
757
#define UKIKI_TEXT_DO_NOT_LET_GO 6
758
#define UKIKI_TEXT_STEAL_CAP 7
759
760
/* oBehParams2ndByte */
761
#define UKIKI_CAGE 0
762
#define UKIKI_CAP 1
763
764
/* Animations */
765
#define UKIKI_ANIM_RUN 0
766
#define UKIKI_ANIM_UNUSED_WALK 1
767
#define UKIKI_ANIM_UNUSED_APOSE 2
768
#define UKIKI_ANIM_UNUSED_DEATH 3
769
#define UKIKI_ANIM_SCREECH 4
770
#define UKIKI_ANIM_JUMP_CLAP 5
771
#define UKIKI_ANIM_UNUSED_HOP 6
772
#define UKIKI_ANIM_LAND 7
773
#define UKIKI_ANIM_JUMP 8
774
#define UKIKI_ANIM_ITCH 9
775
#define UKIKI_ANIM_HANDSTAND 10
776
#define UKIKI_ANIM_TURN 11
777
#define UKIKI_ANIM_HELD 12
778
779
/* oAnimState */
780
#define UKIKI_ANIM_STATE_DEFAULT 0
781
#define UKIKI_ANIM_STATE_EYE_CLOSED 1
782
#define UKIKI_ANIM_STATE_CAP_ON 2
783
784
/* oUkikiHasCap */
785
#define UKIKI_CAP_ON 1
786
787
/* Ukiki Cage Star */
788
/* oAction */
789
#define UKIKI_CAGE_STAR_ACT_IN_CAGE 0
790
#define UKIKI_CAGE_STAR_ACT_SPAWN_STAR 1
791
792
/* Ukiki Cage */
793
/* oAction */
794
#define UKIKI_CAGE_ACT_WAIT_FOR_UKIKI 0
795
#define UKIKI_CAGE_ACT_SPIN 1
796
#define UKIKI_CAGE_ACT_FALL 2
797
#define UKIKI_CAGE_ACT_HIDE 3
798
799
/* Piranha Plant */
800
/* oAction */
801
#define PIRANHA_PLANT_ACT_IDLE 0
802
#define PIRANHA_PLANT_ACT_SLEEPING 1
803
#define PIRANHA_PLANT_ACT_BITING 2
804
#define PIRANHA_PLANT_ACT_WOKEN_UP 3
805
#define PIRANHA_PLANT_ACT_STOPPED_BITING 4
806
#define PIRANHA_PLANT_ACT_ATTACKED 5
807
#define PIRANHA_PLANT_ACT_SHRINK_AND_DIE 6
808
#define PIRANHA_PLANT_ACT_WAIT_TO_RESPAWN 7
809
#define PIRANHA_PLANT_ACT_RESPAWN 8
810
811
/* Piranha Plant bubble */
812
#define PIRANHA_PLANT_BUBBLE_ACT_IDLE 0
813
#define PIRANHA_PLANT_BUBBLE_ACT_GROW_SHRINK_LOOP 1
814
#define PIRANHA_PLANT_BUBBLE_ACT_BURST 2
815
816
/* Platform on track */
817
/* oAction */
818
#define PLATFORM_ON_TRACK_ACT_INIT 0
819
#define PLATFORM_ON_TRACK_ACT_WAIT_FOR_MARIO 1
820
#define PLATFORM_ON_TRACK_ACT_MOVE_ALONG_TRACK 2
821
#define PLATFORM_ON_TRACK_ACT_PAUSE_BRIEFLY 3
822
#define PLATFORM_ON_TRACK_ACT_FALL 4
823
824
/* oBehParams >> 16 */
825
#define PLATFORM_ON_TRACK_BP_MASK_PATH 0xF
826
#define PLATFORM_ON_TRACK_BP_MASK_TYPE (0x7 << 4)
827
#define PLATFORM_ON_TRACK_BP_RETURN_TO_START (1 << 8)
828
#define PLATFORM_ON_TRACK_BP_DONT_DISAPPEAR (1 << 9)
829
#define PLATFORM_ON_TRACK_BP_DONT_TURN_YAW (1 << 10)
830
#define PLATFORM_ON_TRACK_BP_DONT_TURN_ROLL (1 << 11)
831
832
#define PLATFORM_ON_TRACK_TYPE_CARPET 0
833
#define PLATFORM_ON_TRACK_TYPE_SKI_LIFT 1
834
#define PLATFORM_ON_TRACK_TYPE_CHECKERED 2
835
#define PLATFORM_ON_TRACK_TYPE_GRATE 3
836
837
/* Purple switch */
838
#define PURPLE_SWITCH_IDLE 0
839
#define PURPLE_SWITCH_PRESSED 1
840
#define PURPLE_SWITCH_TICKING 2
841
#define PURPLE_SWITCH_UNPRESSED 3
842
#define PURPLE_SWITCH_WAIT_FOR_MARIO_TO_GET_OFF 4
843
844
/* Pyramid elevator */
845
#define PYRAMID_ELEVATOR_IDLE 0
846
#define PYRAMID_ELEVATOR_START_MOVING 1
847
#define PYRAMID_ELEVATOR_CONSTANT_VELOCITY 2
848
#define PYRAMID_ELEVATOR_AT_BOTTOM 3
849
850
/* Pyramid top */
851
#define PYRAMID_TOP_ACT_CHECK_IF_SOLVED 0
852
#define PYRAMID_TOP_ACT_SPINNING 1
853
#define PYRAMID_TOP_ACT_EXPLODE 2
854
855
/* Pyramid wall */
856
/* oAction */
857
#define PYRAMID_WALL_ACT_MOVING_DOWN 0
858
#define PYRAMID_WALL_ACT_MOVING_UP 1
859
860
/* oBehParams2ndByte */
861
#define PYRAMID_WALL_BP_POSITION_HIGH 0
862
#define PYRAMID_WALL_BP_POSITION_MIDDLE 1
863
#define PYRAMID_WALL_BP_POSITION_LOW 2
864
865
/* Penguins (general) */
866
/* Walking sounds */
867
#define PENGUIN_WALK_BABY 0
868
#define PENGUIN_WALK_BIG 1
869
870
/* Animations */
871
#define PENGUIN_ANIM_WALK 0
872
#define PENGUIN_ANIM_IDLE 3
873
874
/* Racing penguin */
875
/* oAction */
876
#define RACING_PENGUIN_ACT_WAIT_FOR_MARIO 0
877
#define RACING_PENGUIN_ACT_SHOW_INIT_TEXT 1
878
#define RACING_PENGUIN_ACT_PREPARE_FOR_RACE 2
879
#define RACING_PENGUIN_ACT_RACE 3
880
#define RACING_PENGUIN_ACT_FINISH_RACE 4
881
#define RACING_PENGUIN_ACT_SHOW_FINAL_TEXT 5
882
883
/* SL walking penguin */
884
/* oAction */
885
#define SL_WALKING_PENGUIN_ACT_MOVING_FORWARDS 0
886
#define SL_WALKING_PENGUIN_ACT_TURNING_BACK 1
887
#define SL_WALKING_PENGUIN_ACT_RETURNING 2
888
#define SL_WALKING_PENGUIN_ACT_TURNING_FORWARDS 3
889
890
/* Snowman wind */
891
/* oSubAction */
892
#define SL_SNOWMAN_WIND_ACT_IDLE 0
893
#define SL_SNOWMAN_WIND_ACT_TALKING 1
894
#define SL_SNOWMAN_WIND_ACT_BLOWING 2
895
896
897
/* Water bomb */
898
/* oAction */
899
#define WATER_BOMB_ACT_SHOT_FROM_CANNON 0
900
#define WATER_BOMB_ACT_INIT 1
901
#define WATER_BOMB_ACT_DROP 2
902
#define WATER_BOMB_ACT_EXPLODE 3
903
904
/* TTC rotating solid */
905
/* oBehParams2ndByte */
906
#define TTC_ROTATING_SOLID_BP_CUBE 0
907
#define TTC_ROTATING_SOLID_BP_TRIANGULAR_PRISM 1
908
909
/* TTC moving bar */
910
/* oAction */
911
#define TTC_MOVING_BAR_ACT_WAIT 0
912
#define TTC_MOVING_BAR_ACT_PULL_BACK 1
913
#define TTC_MOVING_BAR_ACT_EXTEND 2
914
#define TTC_MOVING_BAR_ACT_RETRACT 3
915
916
/* TTC cog */
917
/* oBehParams2ndByte */
918
#define TTC_COG_BP_SHAPE_MASK 0x00000002
919
#define TTC_COG_BP_SHAPE_HEXAGON (0 << 1)
920
#define TTC_COG_BP_SHAPE_TRIANGLE (1 << 1)
921
#define TTC_COG_BP_DIR_MASK 0x00000001
922
#define TTC_COG_BP_DIR_CCW (0 << 0) // TODO: Check these
923
#define TTC_COG_BP_DIR_CW (1 << 0)
924
925
/* TTC 2D Rotator */
926
/* oBehParams2ndByte */
927
#define TTC_2D_ROTATOR_BP_HAND 0
928
#define TTC_2D_ROTATOR_BP_2D_COG 1
929
930
/* Activated Back-and-Forth Platform */
931
/* ((u16)(o->oBehParams >> 16) & 0x0300) >> 8 aka platform type */
932
#define ACTIVATED_BF_PLAT_TYPE_BITS_ARROW_PLAT 0
933
#define ACTIVATED_BF_PLAT_TYPE_BITFS_MESH_PLAT 1
934
#define ACTIVATED_BF_PLAT_TYPE_BITFS_ELEVATOR 2
935
936
/* Dorrie */
937
/* oAction */
938
#define DORRIE_ACT_MOVE 0
939
#define DORRIE_ACT_LOWER_HEAD 1
940
#define DORRIE_ACT_RAISE_HEAD 2
941
942
/* Mad piano */
943
/* oAction */
944
#define MAD_PIANO_ACT_WAIT 0
945
#define MAD_PIANO_ACT_ATTACK 1
946
947
/* Fire piranha plant */
948
/* oAction */
949
#define FIRE_PIRANHA_PLANT_ACT_HIDE 0
950
#define FIRE_PIRANHA_PLANT_ACT_GROW 1
951
952
/* Fire spitter */
953
/* oAction */
954
#define FIRE_SPITTER_ACT_IDLE 0
955
#define FIRE_SPITTER_ACT_SPIT_FIRE 1
956
957
/* Eyerok boss */
958
/* oAction */
959
#define EYEROK_BOSS_ACT_SLEEP 0
960
#define EYEROK_BOSS_ACT_WAKE_UP 1
961
#define EYEROK_BOSS_ACT_SHOW_INTRO_TEXT 2
962
#define EYEROK_BOSS_ACT_FIGHT 3
963
#define EYEROK_BOSS_ACT_DIE 4
964
965
/* Eyerok hand */
966
/* oAction */
967
#define EYEROK_HAND_ACT_SLEEP 0
968
#define EYEROK_HAND_ACT_IDLE 1
969
#define EYEROK_HAND_ACT_OPEN 2
970
#define EYEROK_HAND_ACT_SHOW_EYE 3
971
#define EYEROK_HAND_ACT_CLOSE 4
972
#define EYEROK_HAND_ACT_RETREAT 5
973
#define EYEROK_HAND_ACT_TARGET_MARIO 6
974
#define EYEROK_HAND_ACT_SMASH 7
975
#define EYEROK_HAND_ACT_FIST_PUSH 8
976
#define EYEROK_HAND_ACT_FIST_SWEEP 9
977
#define EYEROK_HAND_ACT_BEGIN_DOUBLE_POUND 10 // raising for double smash
978
#define EYEROK_HAND_ACT_DOUBLE_POUND 11 // double smashing
979
#define EYEROK_HAND_ACT_ATTACKED 12
980
#define EYEROK_HAND_ACT_RECOVER 13
981
#define EYEROK_HAND_ACT_BECOME_ACTIVE 14
982
#define EYEROK_HAND_ACT_DIE 15
983
984
/* Klepto */
985
/* oAction */
986
#define KLEPTO_ACT_CIRCLE_TARGET_HOLDING 0
987
#define KLEPTO_ACT_APPROACH_TARGET_HOLDING 1
988
#define KLEPTO_ACT_WAIT_FOR_MARIO 2
989
#define KLEPTO_ACT_TURN_TOWARD_MARIO 3
990
#define KLEPTO_ACT_DIVE_AT_MARIO 4
991
#define KLEPTO_ACT_RESET_POSITION 5
992
#define KLEPTO_ACT_STRUCK_BY_MARIO 6
993
#define KLEPTO_ACT_RETREAT 7
994
995
/* oAnimState */
996
#define KLEPTO_ANIM_STATE_HOLDING_NOTHING 0
997
#define KLEPTO_ANIM_STATE_HOLDING_CAP 1
998
#define KLEPTO_ANIM_STATE_HOLDING_STAR 2
999
1000
/* Bird */
1001
/* oAction */
1002
#define BIRD_ACT_INACTIVE 0
1003
#define BIRD_ACT_FLY 1
1004
1005
/* oBehParams2ndByte */
1006
#define BIRD_BP_SPAWNED 0
1007
#define BIRD_BP_SPAWNER 1
1008
1009
/* Skeeter */
1010
/* oAction */
1011
#define SKEETER_ACT_IDLE 0
1012
#define SKEETER_ACT_LUNGE 1
1013
#define SKEETER_ACT_WALK 2
1014
1015
/* Snufit */
1016
/* oAction */
1017
#define SNUFIT_ACT_IDLE 0
1018
#define SNUFIT_ACT_SHOOT 1
1019
1020
/* Tweester */
1021
/* oAction */
1022
#define TWEESTER_ACT_IDLE 0
1023
#define TWEESTER_ACT_CHASE 1
1024
#define TWEESTER_ACT_HIDE 2
1025
1026
/* oSubAction */
1027
#define TWEESTER_SUB_ACT_WAIT 0
1028
1029
#define TWEESTER_SUB_ACT_CHASE 0
1030
1031
/* Triplet butterfly */
1032
/* oAction */
1033
#define TRIPLET_BUTTERFLY_ACT_INIT 0
1034
#define TRIPLET_BUTTERFLY_ACT_WANDER 1
1035
#define TRIPLET_BUTTERFLY_ACT_ACTIVATE 2
1036
#define TRIPLET_BUTTERFLY_ACT_EXPLODE 3
1037
1038
/* oBehParams2ndByte */
1039
#define TRIPLET_BUTTERFLY_BP_BUTTERFLY_NUM 0x00000003
1040
#define TRIPLET_BUTTERFLY_BP_NO_BOMBS 0x00000004
1041
1042
/* oTripletButterflyType */
1043
#define TRIPLET_BUTTERFLY_TYPE_NORMAL -1
1044
#define TRIPLET_BUTTERFLY_TYPE_EXPLODES 0
1045
#define TRIPLET_BUTTERFLY_TYPE_SPAWN_1UP 1
1046
1047
/* Water level diamond */
1048
/* oAction */
1049
// Loading
1050
#define WATER_LEVEL_DIAMOND_ACT_INIT 0
1051
// Idling when Mario isn't inside its hitbox
1052
#define WATER_LEVEL_DIAMOND_ACT_IDLE 1
1053
// While the water level is changing
1054
#define WATER_LEVEL_DIAMOND_ACT_CHANGE_WATER_LEVEL 2
1055
// After the water level has changed but Mario hasn't left its hitbox yet
1056
#define WATER_LEVEL_DIAMOND_ACT_IDLE_SPINNING 3
1057
1058
/* Mips */
1059
/* oAction */
1060
#define MIPS_ACT_WAIT_FOR_NEARBY_MARIO 0
1061
#define MIPS_ACT_FOLLOW_PATH 1
1062
#define MIPS_ACT_WAIT_FOR_ANIMATION_DONE 2
1063
#define MIPS_ACT_FALL_DOWN 3
1064
#define MIPS_ACT_IDLE 4
1065
1066
/* oMipsStarStatus */
1067
#define MIPS_STAR_STATUS_HAVENT_SPAWNED_STAR 0
1068
#define MIPS_STAR_STATUS_SHOULD_SPAWN_STAR 1
1069
#define MIPS_STAR_STATUS_ALREADY_SPAWNED_STAR 2
1070
1071
/* Falling Pillar */
1072
/* oAction */
1073
#define FALLING_PILLAR_ACT_IDLE 0
1074
#define FALLING_PILLAR_ACT_TURNING 1
1075
#define FALLING_PILLAR_ACT_FALLING 2
1076
1077
/* Bowser Puzzle */
1078
/* oAction */
1079
#define BOWSER_PUZZLE_ACT_SPAWN_PIECES 0
1080
#define BOWSER_PUZZLE_ACT_WAIT_FOR_COMPLETE 1
1081
#define BOWSER_PUZZLE_ACT_DONE 2
1082
1083
/* Mr Blizzard */
1084
/* oAction */
1085
#define MR_BLIZZARD_ACT_SPAWN_SNOWBALL 0
1086
#define MR_BLIZZARD_ACT_HIDE_UNHIDE 1
1087
#define MR_BLIZZARD_ACT_RISE_FROM_GROUND 2
1088
#define MR_BLIZZARD_ACT_ROTATE 3
1089
#define MR_BLIZZARD_ACT_THROW_SNOWBALL 4
1090
#define MR_BLIZZARD_ACT_BURROW 5
1091
#define MR_BLIZZARD_ACT_DEATH 6
1092
#define MR_BLIZZARD_ACT_JUMP 7
1093
/* oBehParams2ndByte */
1094
#define MR_BLIZZARD_STYPE_NO_CAP 0
1095
#define MR_BLIZZARD_STYPE_JUMPING 1
1096
1097
#endif // OBJECT_CONSTANTS_H
1098
1099