forked from sm64pc/sm64ex
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathobject_constants.h
974 lines (831 loc) · 30.4 KB
/
object_constants.h
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
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
#ifndef _OBJECT_CONSTANTS_H
#define _OBJECT_CONSTANTS_H
// This file contains macros that provide descriptive names for
// field-specific and object-specific constants, e.g. actions.
/* activeFlags */
#define ACTIVE_FLAG_ACTIVE (1 << 0) // 0x0001
#define ACTIVE_FLAG_FAR_AWAY (1 << 1) // 0x0002
#define ACTIVE_FLAG_UNK2 (1 << 2) // 0x0004
#define ACTIVE_FLAG_IN_DIFFERENT_ROOM (1 << 3) // 0x0008
#define ACTIVE_FLAG_UNIMPORTANT (1 << 4) // 0x0010
#define ACTIVE_FLAG_INITIATED_TIME_STOP (1 << 5) // 0x0020
#define ACTIVE_FLAG_MOVE_THROUGH_GRATE (1 << 6) // 0x0040
#define ACTIVE_FLAG_UNK7 (1 << 7) // 0x0080
#define ACTIVE_FLAG_UNK8 (1 << 8) // 0x0100
#define ACTIVE_FLAG_UNK9 (1 << 9) // 0x0200
#define ACTIVE_FLAG_UNK10 (1 << 10) // 0x0400
#define ACTIVE_FLAGS_DEACTIVATED 0
/* respawnInfoType */
#define RESPAWN_INFO_TYPE_NULL 0
#define RESPAWN_INFO_TYPE_32 1
#define RESPAWN_INFO_TYPE_16 2
/* respawnInfo */
#define RESPAWN_INFO_DONT_RESPAWN 0xFF
/* oFlags */
#define OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE (1 << 0) // 0x00000001
#define OBJ_FLAG_MOVE_XZ_USING_FVEL (1 << 1) // 0x00000002
#define OBJ_FLAG_MOVE_Y_WITH_TERMINAL_VEL (1 << 2) // 0x00000004
#define OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW (1 << 3) // 0x00000008
#define OBJ_FLAG_SET_FACE_ANGLE_TO_MOVE_ANGLE (1 << 4) // 0x00000010
#define OBJ_FLAG_0020 (1 << 5) // 0x00000020
#define OBJ_FLAG_COMPUTE_DIST_TO_MARIO (1 << 6) // 0x00000040
#define OBJ_FLAG_ACTIVE_FROM_AFAR (1 << 7) // 0x00000080
#define OBJ_FLAG_0100 (1 << 8) // 0x00000100
#define OBJ_FLAG_TRANSFORM_RELATIVE_TO_PARENT (1 << 9) // 0x00000200
#define OBJ_FLAG_HOLDABLE (1 << 10) // 0x00000400
#define OBJ_FLAG_SET_THROW_MATRIX_FROM_TRANSFORM (1 << 11) // 0x00000800
#define OBJ_FLAG_1000 (1 << 12) // 0x00001000
#define OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO (1 << 13) // 0x00002000
#define OBJ_FLAG_PERSISTENT_RESPAWN (1 << 14) // 0x00004000
#define OBJ_FLAG_8000 (1 << 15) // 0x00008000
#define OBJ_FLAG_30 (1 << 30) // 0x40000000
/* oHeldState */
#define HELD_FREE 0
#define HELD_HELD 1
#define HELD_THROWN 2
#define HELD_DROPPED 3
/* oDialogState */
#define DIALOG_UNK1_ENABLE_TIME_STOP 0
#define DIALOG_UNK1_INTERRUPT_MARIO_ACTION 1
#define DIALOG_UNK1_BEGIN_DIALOG 2
#define DIALOG_UNK1_AWAIT_DIALOG 3
#define DIALOG_UNK1_DISABLE_TIME_STOP 4
#define DIALOG_UNK1_FLAG_DEFAULT (1 << 1) // 0x02
#define DIALOG_UNK1_FLAG_RESPONSE (1 << 2) // 0x04
#define DIALOG_UNK1_FLAG_4 (1 << 4) // 0x10
#define DIALOG_UNK2_ENABLE_TIME_STOP 0
#define DIALOG_UNK2_TURN_AND_INTERRUPT_MARIO_ACTION 1
#define DIALOG_UNK2_AWAIT_DIALOG 2
#define DIALOG_UNK2_END_DIALOG 3
#define DIALOG_UNK2_FLAG_0 (1 << 0) // 0x01
#define DIALOG_UNK2_LEAVE_TIME_STOP_ENABLED (1 << 4) // 0x10
/* oMoveFlags */
#define OBJ_MOVE_LANDED (1 << 0) // 0x0001
#define OBJ_MOVE_ON_GROUND (1 << 1) // 0x0002 // mutually exclusive to OBJ_MOVE_LANDED
#define OBJ_MOVE_LEFT_GROUND (1 << 2) // 0x0004
#define OBJ_MOVE_ENTERED_WATER (1 << 3) // 0x0008
#define OBJ_MOVE_AT_WATER_SURFACE (1 << 4) // 0x0010
#define OBJ_MOVE_UNDERWATER_OFF_GROUND (1 << 5) // 0x0020
#define OBJ_MOVE_UNDERWATER_ON_GROUND (1 << 6) // 0x0040
#define OBJ_MOVE_IN_AIR (1 << 7) // 0x0080
#define OBJ_MOVE_8 (1 << 8) // 0x0100
#define OBJ_MOVE_HIT_WALL (1 << 9) // 0x0200
#define OBJ_MOVE_HIT_EDGE (1 << 10) // 0x0400
#define OBJ_MOVE_ABOVE_LAVA (1 << 11) // 0x0800
#define OBJ_MOVE_LEAVING_WATER (1 << 12) // 0x1000
#define OBJ_MOVE_13 (1 << 13) // 0x2000
#ifndef VERSION_JP
#define OBJ_MOVE_ABOVE_DEATH_BARRIER (1 << 14) // 0x4000
#endif
#define OBJ_MOVE_MASK_ON_GROUND (OBJ_MOVE_LANDED | OBJ_MOVE_ON_GROUND)
#define OBJ_MOVE_MASK_33 0x33
#define OBJ_MOVE_MASK_IN_WATER (\
OBJ_MOVE_ENTERED_WATER |\
OBJ_MOVE_AT_WATER_SURFACE |\
OBJ_MOVE_UNDERWATER_OFF_GROUND |\
OBJ_MOVE_UNDERWATER_ON_GROUND)
#define OBJ_MOVE_MASK_HIT_WALL_OR_IN_WATER \
(OBJ_MOVE_HIT_WALL | OBJ_MOVE_MASK_IN_WATER)
#define OBJ_MOVE_MASK_NOT_AIR (\
OBJ_MOVE_LANDED |\
OBJ_MOVE_ON_GROUND |\
OBJ_MOVE_AT_WATER_SURFACE |\
OBJ_MOVE_UNDERWATER_ON_GROUND)
/* oActiveParticleFlags */
#define ACTIVE_PARTICLE_DUST (1 << 0) // 0x00000001
#define ACTIVE_PARTICLE_UNUSED_1 (1 << 1) // 0x00000002
#define ACTIVE_PARTICLE_UNUSED_2 (1 << 2) // 0x00000004
#define ACTIVE_PARTICLE_SPARKLES (1 << 3) // 0x00000008
#define ACTIVE_PARTICLE_H_STAR (1 << 4) // 0x00000010
#define ACTIVE_PARTICLE_BUBBLE (1 << 5) // 0x00000020
#define ACTIVE_PARTICLE_WATER_SPLASH (1 << 6) // 0x00000040
#define ACTIVE_PARTICLE_IDLE_WATER_WAVE (1 << 7) // 0x00000080
#define ACTIVE_PARTICLE_SHALLOW_WATER_WAVE (1 << 8) // 0x00000100
#define ACTIVE_PARTICLE_PLUNGE_BUBBLE (1 << 9) // 0x00000200
#define ACTIVE_PARTICLE_WAVE_TRAIL (1 << 10) // 0x00000400
#define ACTIVE_PARTICLE_FIRE (1 << 11) // 0x00000800
#define ACTIVE_PARTICLE_SHALLOW_WATER_SPLASH (1 << 12) // 0x00001000
#define ACTIVE_PARTICLE_LEAF (1 << 13) // 0x00002000
#define ACTIVE_PARTICLE_DIRT (1 << 14) // 0x00004000
#define ACTIVE_PARTICLE_MIST_CIRCLE (1 << 15) // 0x00008000
#define ACTIVE_PARTICLE_SNOW (1 << 16) // 0x00010000
#define ACTIVE_PARTICLE_BREATH (1 << 17) // 0x00020000
#define ACTIVE_PARTICLE_V_STAR (1 << 18) // 0x00040000
#define ACTIVE_PARTICLE_TRIANGLE (1 << 19) // 0x00080000
/* oAction */
#define OBJ_ACT_LAVA_DEATH 100
#define OBJ_ACT_DEATH_PLANE_DEATH 101
#define OBJ_ACT_HORIZONTAL_KNOCKBACK 100
#define OBJ_ACT_VERTICAL_KNOCKBACK 101
#define OBJ_ACT_SQUISHED 102
/* gTTCSpeedSetting */
#define TTC_SPEED_SLOW 0
#define TTC_SPEED_FAST 1
#define TTC_SPEED_RANDOM 2
#define TTC_SPEED_STOPPED 3
/* Bob-omb */
/* oBehParams2ndByte */
#define BOBOMB_BP_STYPE_GENERIC 0
#define BOBOMB_BP_STYPE_STATIONARY 1
/* oAction */
#define BOBOMB_ACT_PATROL 0
#define BOBOMB_ACT_LAUNCHED 1
#define BOBOMB_ACT_CHASE_MARIO 2
#define BOBOMB_ACT_EXPLODE 3
#define BOBOMB_ACT_LAVA_DEATH 100
#define BOBOMB_ACT_DEATH_PLANE_DEATH 101
/* Hidden Blue Coin */
/* oAction */
#define HIDDEN_BLUE_COIN_ACT_INACTIVE 0
#define HIDDEN_BLUE_COIN_ACT_WAITING 1
#define HIDDEN_BLUE_COIN_ACT_ACTIVE 2
/* Blue Coin Switch */
/* oAction */
#define BLUE_COIN_SWITCH_ACT_IDLE 0
#define BLUE_COIN_SWITCH_ACT_RECEDING 1
#define BLUE_COIN_SWITCH_ACT_TICKING 2
/* Moving Blue Coin */
/* oAction */
#define MOV_BCOIN_ACT_STILL 0
#define MOV_BCOIN_ACT_MOVING 1
/* Moving Yellow Coin */
/* oAction */
#define MOV_YCOIN_ACT_IDLE 0
#define MOV_YCOIN_ACT_BLINKING 1
#define MOV_YCOIN_ACT_LAVA_DEATH 100
#define MOV_YCOIN_ACT_DEATH_PLANE_DEATH 101
/* Bob-omb Buddy */
/* oBehParams2ndByte */
#define BOBOMB_BUDDY_BP_STYPE_GENERIC 0
#define BOBOMB_BUDDY_BP_STYPE_BOB_GRASS_KBB 1
#define BOBOMB_BUDDY_BP_STYPE_BOB_CANNON_KBB 2
#define BOBOMB_BUDDY_BP_STYPE_BOB_GRASS 3
/* oAction */
#define BOBOMB_BUDDY_ACT_IDLE 0
#define BOBOMB_BUDDY_ACT_TURN_TO_TALK 2
#define BOBOMB_BUDDY_ACT_TALK 3
/* oBobombBuddyRole */
#define BOBOMB_BUDDY_ROLE_ADVICE 0
#define BOBOMB_BUDDY_ROLE_CANNON 1
/* oBobombBuddyCannonStatus */
#define BOBOMB_BUDDY_CANNON_UNOPENED 0
#define BOBOMB_BUDDY_CANNON_OPENING 1
#define BOBOMB_BUDDY_CANNON_OPENED 2
#define BOBOMB_BUDDY_CANNON_STOP_TALKING 3
/* oBobombBuddyHasTalkedToMario */
#define BOBOMB_BUDDY_HAS_NOT_TALKED 0
#define BOBOMB_BUDDY_HAS_TALKED 2
/* Fish */
/* oAction */
#define FISH_ACT_INIT 0
#define FISH_ACT_ACTIVE 1
#define FISH_ACT_RESPAWN 2
/* Blue_Fish */
/* oAction */
#define BLUE_FISH_ACT_DIVE 0
#define BLUE_FISH_ACT_TURN 1
#define BLUE_FISH_ACT_ASCEND 2
#define BLUE_FISH_ACT_TURN_BACK 3
/* oAction: bhv_blue_fish_spawn_loop */
#define BLUE_FISH_ACT_SPAWN 0
#define BLUE_FISH_ACT_ROOM 1
#define BLUE_FISH_ACT_DUPLICATE 2
/* Cannon Trap Door */
/* oAction */
#define CANNON_TRAP_DOOR_ACT_CLOSED 0
#define CANNON_TRAP_DOOR_ACT_CAM_ZOOM 1
#define CANNON_TRAP_DOOR_ACT_OPENING 2
#define CANNON_TRAP_DOOR_ACT_OPEN 3
/* Homing Amp */
/* oAction */
#define HOMING_AMP_ACT_INACTIVE 0
#define HOMING_AMP_ACT_APPEAR 1
#define HOMING_AMP_ACT_CHASE 2
#define HOMING_AMP_ACT_GIVE_UP 3
#define HOMING_AMP_ACT_ATTACK_COOLDOWN 4
/* Amp */
/* oBehParams2ndByte */
#define AMP_BP_ROT_RADIUS_200 0
#define AMP_BP_ROT_RADIUS_300 1
#define AMP_BP_ROT_RADIUS_400 2
#define AMP_BP_ROT_RADIUS_0 3
/* oAction */
#define AMP_ACT_IDLE 2
#define AMP_ACT_ATTACK_COOLDOWN 4
/* Butterfly */
/* oAction */
#define BUTTERFLY_ACT_RESTING 0
#define BUTTERFLY_ACT_FOLLOW_MARIO 1
#define BUTTERFLY_ACT_RETURN_HOME 2
/* Hoot */
/* oHootAvailability */
#define HOOT_AVAIL_ASLEEP_IN_TREE 0
#define HOOT_AVAIL_WANTS_TO_TALK 1
#define HOOT_AVAIL_READY_TO_FLY 2
/* oAction */
#define HOOT_ACT_ASCENT 0
#define HOOT_ACT_CARRY 1
#define HOOT_ACT_TIRED 2
/* Bully (all variants) */
/* oBehParams2ndByte */
#define BULLY_BP_SIZE_SMALL 0
#define BULLY_BP_SIZE_BIG 1
/* oAction */
#define BULLY_ACT_PATROL 0
#define BULLY_ACT_CHASE_MARIO 1
#define BULLY_ACT_KNOCKBACK 2
#define BULLY_ACT_BACK_UP 3
#define BULLY_ACT_INACTIVE 4
#define BULLY_ACT_ACTIVATE_AND_FALL 5
#define BULLY_ACT_LAVA_DEATH 100
#define BULLY_ACT_DEATH_PLANE_DEATH 101
/* oBullySubtype */
#define BULLY_STYPE_GENERIC 0
#define BULLY_STYPE_MINION 1
#define BULLY_STYPE_CHILL 16
/* Water Ring (all variants) */
/* oAction */
#define WATER_RING_ACT_NOT_COLLECTED 0
#define WATER_RING_ACT_COLLECTED 1
/* Jet Stream Water Ring Spawner */
/* oAction */
#define JS_RING_SPAWNER_ACT_ACTIVE 0
#define JS_RING_SPAWNER_ACT_INACTIVE 1
/* Celebration Star */
/* oAction */
#define CELEB_STAR_ACT_SPIN_AROUND_MARIO 0
#define CELEB_STAR_ACT_FACE_CAMERA 1
/* LLL Drawbridge */
/* oAction */
#define LLL_DRAWBRIDGE_ACT_LOWER 0
#define LLL_DRAWBRIDGE_ACT_RAISE 1
/* Bomp (both variants) */
/* oAction */
#define BOMP_ACT_WAIT 0
#define BOMP_ACT_POKE_OUT 1
#define BOMP_ACT_EXTEND 2
#define BOMP_ACT_RETRACT 3
/* WF Sliding Brick Platform */
/* oBehParams2ndByte */
#define WF_SLID_BRICK_PTFM_BP_MOV_VEL_10 1
#define WF_SLID_BRICK_PTFM_BP_MOV_VEL_15 2
#define WF_SLID_BRICK_PTFM_BP_MOV_VEL_20 3
/* oAction */
#define WF_SLID_BRICK_PTFM_ACT_WAIT 0
#define WF_SLID_BRICK_PTFM_ACT_EXTEND 1
#define WF_SLID_BRICK_PTFM_ACT_RETRACT 2
/* Fake Moneybag Coin */
/* oAction */
#define FAKE_MONEYBAG_COIN_ACT_IDLE 0
#define FAKE_MONEYBAG_COIN_ACT_TRANSFORM 1
/* Moneybag */
/* oAction */
#define MONEYBAG_ACT_APPEAR 0
#define MONEYBAG_ACT_UNUSED_APPEAR 1
#define MONEYBAG_ACT_MOVE_AROUND 2
#define MONEYBAG_ACT_RETURN_HOME 3
#define MONEYBAG_ACT_DISAPPEAR 4
#define MONEYBAG_ACT_DEATH 5
/* oMoneybagJumpState */
#define MONEYBAG_JUMP_LANDING 0
#define MONEYBAG_JUMP_PREPARE 1
#define MONEYBAG_JUMP_JUMP 2
#define MONEYBAG_JUMP_JUMP_AND_BOUNCE 3
#define MONEYBAG_JUMP_WALK_AROUND 4
#define MONEYBAG_JUMP_WALK_HOME 5
/* Bowling Ball */
/* oAction */
#define BBALL_ACT_INITIALIZE 0
#define BBALL_ACT_ROLL 1
/* Bowling Ball + Bowling Ball Spawner (all variants) */
/* oBehParams2ndByte */
#define BBALL_BP_STYPE_BOB_UPPER 0
#define BBALL_BP_STYPE_TTM 1
#define BBALL_BP_STYPE_BOB_LOWER 2
#define BBALL_BP_STYPE_THI_LARGE 3
#define BBALL_BP_STYPE_THI_SMALL 4
/* Bowling Ball (Free) */
/* oAction */
#define FREE_BBALL_ACT_IDLE 0
#define FREE_BBALL_ACT_ROLL 1
#define FREE_BBALL_ACT_RESET 2
/* Beta Chest Lid */
/* oAction */
#define BETA_CHEST_ACT_IDLE_CLOSED 0
#define BETA_CHEST_ACT_OPENING 1
#define BETA_CHEST_ACT_IDLE_OPEN 2
/* BBH Tilting Trap Platform */
/* oAction */
// Unused in original Japanese version
#define BBH_TILTING_TRAP_PLATFORM_ACT_MARIO_ON 0
#define BBH_TILTING_TRAP_PLATFORM_ACT_MARIO_OFF 1
/* Boo */
/* oBooDeathStatus */
#define BOO_DEATH_STATUS_ALIVE 0
#define BOO_DEATH_STATUS_DYING 1
#define BOO_DEATH_STATUS_DEAD 2
/* attackStatus */
#define BOO_NOT_ATTACKED 0
#define BOO_ATTACKED 1
#define BOO_BOUNCED_ON -1
/* Beta Boo Key */
/* oAction */
#define BETA_BOO_KEY_ACT_IN_BOO 0
#define BETA_BOO_KEY_ACT_DROPPING 1
#define BETA_BOO_KEY_ACT_DROPPED 2
/* Boo Cage */
/* oAction */
#define BOO_CAGE_ACT_IN_BOO 0
#define BOO_CAGE_ACT_FALLING 1
#define BOO_CAGE_ACT_ON_GROUND 2
#define BOO_CAGE_ACT_MARIO_JUMPING_IN 3
#define BOO_CAGE_ACT_USELESS 4
/* BBH Haunted Bookshelf */
/* oAction */
#define HAUNTED_BOOKSHELF_ACT_IDLE 0
#define HAUNTED_BOOKSHELF_ACT_RECEDE 1
/* BBH Merry-Go-Round */
/* gMarioCurrentRoom */
#define BBH_NEAR_MERRY_GO_ROUND_ROOM 10
#define BBH_DYNAMIC_SURFACE_ROOM 0
#define BBH_OUTSIDE_ROOM 13
/* Coffin Spawner */
/* oAction */
#define COFFIN_SPAWNER_ACT_COFFINS_UNLOADED 0
/* Coffin */
/* oAction */
#define COFFIN_ACT_IDLE 0
#define COFFIN_ACT_STAND_UP 1
/* oBehParams2ndByte */
#define COFFIN_BP_STATIC 0
/* WDW Arrow Lift */
/* oAction */
#define ARROW_LIFT_ACT_IDLE 0
#define ARROW_LIFT_ACT_MOVING_AWAY 1
#define ARROW_LIFT_ACT_MOVING_BACK 2
/* status */
#define ARROW_LIFT_NOT_DONE_MOVING 0
#define ARROW_LIFT_DONE_MOVING 1
/* Yoshi */
/* oAction */
#define YOSHI_ACT_IDLE 0
#define YOSHI_ACT_WALK 1
#define YOSHI_ACT_TALK 2
#define YOSHI_ACT_WALK_JUMP_OFF_ROOF 3
#define YOSHI_ACT_FINISH_JUMPING_AND_DESPAWN 4
#define YOSHI_ACT_GIVE_PRESENT 5
#define YOSHI_ACT_CREDITS 10
/* Koopa */
/* oAction */
#define KOOPA_UNSHELLED_ACT_RUN 0
#define KOOPA_UNSHELLED_ACT_DIVE 1
#define KOOPA_UNSHELLED_ACT_LYING 2
#define KOOPA_UNSHELLED_ACT_UNUSED3 3
#define KOOPA_SHELLED_ACT_STOPPED 0
#define KOOPA_SHELLED_ACT_WALK 1
#define KOOPA_SHELLED_ACT_RUN_FROM_MARIO 2
#define KOOPA_SHELLED_ACT_LYING 3
#define KOOPA_SHELLED_ACT_DIE 4
#define KOOPA_THE_QUICK_ACT_WAIT_BEFORE_RACE 0
#define KOOPA_THE_QUICK_ACT_UNUSED1 1
#define KOOPA_THE_QUICK_ACT_SHOW_INIT_TEXT 2
#define KOOPA_THE_QUICK_ACT_RACE 3
#define KOOPA_THE_QUICK_ACT_DECELERATE 4
#define KOOPA_THE_QUICK_ACT_STOP 5
#define KOOPA_THE_QUICK_ACT_AFTER_RACE 6
/* oSubAction */
#define KOOPA_SHELLED_SUB_ACT_START_WALK 0
#define KOOPA_SHELLED_SUB_ACT_WALK 1
#define KOOPA_SHELLED_SUB_ACT_STOP_WALK 2
#define KOOPA_THE_QUICK_SUB_ACT_START_RUN 0
#define KOOPA_THE_QUICK_SUB_ACT_RUN 1
#define KOOPA_THE_QUICK_SUB_ACT_JUMP 2
/* oKoopaTheQuickRaceIndex */
#define KOOPA_THE_QUICK_BOB_INDEX 0
#define KOOPA_THE_QUICK_THI_INDEX 1
/* oBehParams2ndByte */
#define KOOPA_BP_UNSHELLED 0
#define KOOPA_BP_NORMAL 1
#define KOOPA_BP_KOOPA_THE_QUICK_BASE 2
#define KOOPA_BP_KOOPA_THE_QUICK_BOB (KOOPA_BP_KOOPA_THE_QUICK_BASE + KOOPA_THE_QUICK_BOB_INDEX)
#define KOOPA_BP_KOOPA_THE_QUICK_THI (KOOPA_BP_KOOPA_THE_QUICK_BASE + KOOPA_THE_QUICK_THI_INDEX)
#define KOOPA_BP_TINY 4
/* Pokey */
/* oAction */
#define POKEY_ACT_UNINITIALIZED 0
#define POKEY_ACT_WANDER 1
#define POKEY_ACT_UNLOAD_PARTS 2
/* Swoop */
/* oAction */
#define SWOOP_ACT_IDLE 0
#define SWOOP_ACT_MOVE 1
/* Fly guy */
/* oAction */
#define FLY_GUY_ACT_IDLE 0
#define FLY_GUY_ACT_APPROACH_MARIO 1
#define FLY_GUY_ACT_LUNGE 2
#define FLY_GUY_ACT_SHOOT_FIRE 3
/* Goomba triplet spawner */
/* oBehParams2ndByte */
#define GOOMBA_TRIPLET_SPAWNER_BP_SIZE_MASK 0x00000003
#define GOOMBA_TRIPLET_SPAWNER_BP_EXTRA_GOOMBAS_MASK 0x000000FC
/* oAction */
#define GOOMBA_TRIPLET_SPAWNER_ACT_UNLOADED 0
#define GOOMBA_TRIPLET_SPAWNER_ACT_LOADED 1
/* Goomba */
/* oBehParams2ndByte */
#define GOOMBA_BP_SIZE_MASK 0x00000003
#define GOOMBA_SIZE_REGULAR 0
#define GOOMBA_SIZE_HUGE 1
#define GOOMBA_SIZE_TINY 2
#define GOOMBA_BP_TRIPLET_FLAG_MASK 0x000000FC
/* oAction */
#define GOOMBA_ACT_WALK 0
#define GOOMBA_ACT_ATTACKED_MARIO 1
#define GOOMBA_ACT_JUMP 2
/* Chain chomp */
/* oAction */
#define CHAIN_CHOMP_ACT_UNINITIALIZED 0
#define CHAIN_CHOMP_ACT_MOVE 1
#define CHAIN_CHOMP_ACT_UNLOAD_CHAIN 2
/* oSubAction */
#define CHAIN_CHOMP_SUB_ACT_TURN 0
#define CHAIN_CHOMP_SUB_ACT_LUNGE 1
/* oChainChompReleaseStatus */
#define CHAIN_CHOMP_NOT_RELEASED 0
#define CHAIN_CHOMP_RELEASED_TRIGGER_CUTSCENE 1
#define CHAIN_CHOMP_RELEASED_LUNGE_AROUND 2
#define CHAIN_CHOMP_RELEASED_BREAK_GATE 3
#define CHAIN_CHOMP_RELEASED_JUMP_AWAY 4
#define CHAIN_CHOMP_RELEASED_END_CUTSCENE 5
/* Chain chomp chain part */
/* oBehParams2ndByte */
#define CHAIN_CHOMP_CHAIN_PART_BP_PIVOT 0
/* Wooden post */
/* oBehParams */
#define WOODEN_POST_BP_NO_COINS_MASK 0x0000FF00
/* Wiggler */
/* oAction */
#define WIGGLER_ACT_UNINITIALIZED 0
#define WIGGLER_ACT_WALK 1
#define WIGGLER_ACT_KNOCKBACK 2
#define WIGGLER_ACT_JUMPED_ON 3
#define WIGGLER_ACT_SHRINK 4
#define WIGGLER_ACT_FALL_THROUGH_FLOOR 5
/* oWigglerTextStatus */
#define WIGGLER_TEXT_STATUS_AWAIT_DIALOG 0
#define WIGGLER_TEXT_STATUS_SHOWING_DIALOG 1
#define WIGGLER_TEXT_STATUS_COMPLETED_DIALOG 2
/* Spiny */
/* oAction */
#define SPINY_ACT_WALK 0
#define SPINY_ACT_HELD_BY_LAKITU 1
#define SPINY_ACT_THROWN_BY_LAKITU 2
#define SPINY_ACT_ATTACKED_MARIO 3
/* Evil lakitu */
/* oAction */
#define ENEMY_LAKITU_ACT_UNINITIALIZED 0
#define ENEMY_LAKITU_ACT_MAIN 1
/* oSubAction */
#define ENEMY_LAKITU_SUB_ACT_NO_SPINY 0
#define ENEMY_LAKITU_SUB_ACT_HOLD_SPINY 1
#define ENEMY_LAKITU_SUB_ACT_THROW_SPINY 2
/* Cloud */
/* oAction */
#define CLOUD_ACT_SPAWN_PARTS 0
#define CLOUD_ACT_MAIN 1
#define CLOUD_ACT_UNLOAD 2
#define CLOUD_ACT_FWOOSH_HIDDEN 3
/* oBehParams2ndByte */
#define CLOUD_BP_FWOOSH 0
#define CLOUD_BP_LAKITU_CLOUD 1
/* Camera lakitu */
/* oAction */
#define CAMERA_LAKITU_INTRO_ACT_TRIGGER_CUTSCENE 0
#define CAMERA_LAKITU_INTRO_ACT_SPAWN_CLOUD 1
#define CAMERA_LAKITU_INTRO_ACT_UNK2 2
/* oBehParams2ndByte */
#define CAMERA_LAKITU_BP_FOLLOW_CAMERA 0
#define CAMERA_LAKITU_BP_INTRO 1
/* Monty mole */
/* oAction */
#define MONTY_MOLE_ACT_SELECT_HOLE 0
#define MONTY_MOLE_ACT_RISE_FROM_HOLE 1
#define MONTY_MOLE_ACT_SPAWN_ROCK 2
#define MONTY_MOLE_ACT_BEGIN_JUMP_INTO_HOLE 3
#define MONTY_MOLE_ACT_THROW_ROCK 4
#define MONTY_MOLE_ACT_JUMP_INTO_HOLE 5
#define MONTY_MOLE_ACT_HIDE 6
#define MONTY_MOLE_ACT_JUMP_OUT_OF_HOLE 7
/* oBehParams2ndByte */
#define MONTY_MOLE_BP_NO_ROCK 0
/* Monty mole rock */
/* oAction */
#define MONTY_MOLE_ROCK_ACT_HELD 0
#define MONTY_MOLE_ROCK_ACT_MOVE 1
/* Ukiki */
/* oAction */
#define UKIKI_ACT_IDLE 0
#define UKIKI_ACT_RUN 1
#define UKIKI_ACT_TURN_TO_MARIO 2
#define UKIKI_ACT_JUMP 3
#define UKIKI_ACT_GO_TO_CAGE 4
#define UKIKI_ACT_WAIT_TO_RESPAWN 5
#define UKIKI_ACT_UNUSED_TURN 6
#define UKIKI_ACT_RETURN_HOME 7
/* oSubAction */
#define UKIKI_SUB_ACT_TAUNT_NONE 0
#define UKIKI_SUB_ACT_TAUNT_ITCH 1
#define UKIKI_SUB_ACT_TAUNT_SCREECH 2
#define UKIKI_SUB_ACT_TAUNT_JUMP_CLAP 3
#define UKIKI_SUB_ACT_TAUNT_HANDSTAND 4
#define UKIKI_SUB_ACT_CAGE_RUN_TO_CAGE 0
#define UKIKI_SUB_ACT_CAGE_WAIT_FOR_MARIO 1
#define UKIKI_SUB_ACT_CAGE_TALK_TO_MARIO 2
#define UKIKI_SUB_ACT_CAGE_TURN_TO_CAGE 3
#define UKIKI_SUB_ACT_CAGE_JUMP_TO_CAGE 4
#define UKIKI_SUB_ACT_CAGE_LAND_ON_CAGE 5
#define UKIKI_SUB_ACT_CAGE_SPIN_ON_CAGE 6
#define UKIKI_SUB_ACT_CAGE_DESPAWN 7
/* oUkikiTextState */
#define UKIKI_TEXT_DEFAULT 0
#define UKIKI_TEXT_CAGE_TEXTBOX 1
#define UKIKI_TEXT_GO_TO_CAGE 2
#define UKIKI_TEXT_STOLE_HAT 3
#define UKIKI_TEXT_HAS_HAT 4
#define UKIKI_TEXT_GAVE_HAT_BACK 5
#define UKIKI_TEXT_DO_NOT_LET_GO 6
#define UKIKI_TEXT_STEAL_HAT 7
/* oBehParams2ndByte */
#define UKIKI_CAGE 0
#define UKIKI_HAT 1
/* Animations */
#define UKIKI_ANIM_RUN 0
#define UKIKI_ANIM_UNUSED_WALK 1
#define UKIKI_ANIM_UNUSED_APOSE 2
#define UKIKI_ANIM_UNUSED_DEATH 3
#define UKIKI_ANIM_SCREECH 4
#define UKIKI_ANIM_JUMP_CLAP 5
#define UKIKI_ANIM_UNUSED_HOP 6
#define UKIKI_ANIM_LAND 7
#define UKIKI_ANIM_JUMP 8
#define UKIKI_ANIM_ITCH 9
#define UKIKI_ANIM_HANDSTAND 10
#define UKIKI_ANIM_TURN 11
#define UKIKI_ANIM_HELD 12
/* oAnimState */
#define UKIKI_ANIM_STATE_DEFAULT 0
#define UKIKI_ANIM_STATE_EYE_CLOSED 1
#define UKIKI_ANIM_STATE_HAT_ON 2
/* oUkikiHasHat */
#define UKIKI_HAT_ON 1
/* Ukiki Cage Star */
/* oAction */
#define UKIKI_CAGE_STAR_ACT_IN_CAGE 0
#define UKIKI_CAGE_STAR_ACT_SPAWN_STAR 1
/* Ukiki Cage */
/* oAction */
#define UKIKI_CAGE_ACT_WAIT_FOR_UKIKI 0
#define UKIKI_CAGE_ACT_SPIN 1
#define UKIKI_CAGE_ACT_FALL 2
#define UKIKI_CAGE_ACT_HIDE 3
/* Piranha Plant */
/* oAction */
#define PIRANHA_PLANT_ACT_IDLE 0
#define PIRANHA_PLANT_ACT_SLEEPING 1
#define PIRANHA_PLANT_ACT_BITING 2
#define PIRANHA_PLANT_ACT_WOKEN_UP 3
#define PIRANHA_PLANT_ACT_STOPPED_BITING 4
#define PIRANHA_PLANT_ACT_ATTACKED 5
#define PIRANHA_PLANT_ACT_SHRINK_AND_DIE 6
#define PIRANHA_PLANT_ACT_WAIT_TO_RESPAWN 7
#define PIRANHA_PLANT_ACT_RESPAWN 8
/* Piranha Plant bubble */
#define PIRANHA_PLANT_BUBBLE_ACT_IDLE 0
#define PIRANHA_PLANT_BUBBLE_ACT_GROW_SHRINK_LOOP 1
#define PIRANHA_PLANT_BUBBLE_ACT_BURST 2
/* Platform on track */
/* oAction */
#define PLATFORM_ON_TRACK_ACT_INIT 0
#define PLATFORM_ON_TRACK_ACT_WAIT_FOR_MARIO 1
#define PLATFORM_ON_TRACK_ACT_MOVE_ALONG_TRACK 2
#define PLATFORM_ON_TRACK_ACT_PAUSE_BRIEFLY 3
#define PLATFORM_ON_TRACK_ACT_FALL 4
/* oBehParams >> 16 */
#define PLATFORM_ON_TRACK_BP_MASK_PATH 0xF
#define PLATFORM_ON_TRACK_BP_MASK_TYPE (0x7 << 4)
#define PLATFORM_ON_TRACK_BP_RETURN_TO_START (1 << 8)
#define PLATFORM_ON_TRACK_BP_DONT_DISAPPEAR (1 << 9)
#define PLATFORM_ON_TRACK_BP_DONT_TURN_YAW (1 << 10)
#define PLATFORM_ON_TRACK_BP_DONT_TURN_ROLL (1 << 11)
#define PLATFORM_ON_TRACK_TYPE_CARPET 0
#define PLATFORM_ON_TRACK_TYPE_SKI_LIFT 1
#define PLATFORM_ON_TRACK_TYPE_CHECKERED 2
#define PLATFORM_ON_TRACK_TYPE_GRATE 3
/* Purple switch */
#define PURPLE_SWITCH_IDLE 0
#define PURPLE_SWITCH_PRESSED 1
#define PURPLE_SWITCH_TICKING 2
#define PURPLE_SWITCH_UNPRESSED 3
#define PURPLE_SWITCH_WAIT_FOR_MARIO_TO_GET_OFF 4
/* Pyramid elevator */
#define PYRAMID_ELEVATOR_IDLE 0
#define PYRAMID_ELEVATOR_START_MOVING 1
#define PYRAMID_ELEVATOR_CONSTANT_VELOCITY 2
#define PYRAMID_ELEVATOR_AT_BOTTOM 3
/* Pyramid top */
#define PYRAMID_TOP_ACT_CHECK_IF_SOLVED 0
#define PYRAMID_TOP_ACT_SPINNING 1
#define PYRAMID_TOP_ACT_EXPLODE 2
/* Pyramid wall */
/* oAction */
#define PYRAMID_WALL_ACT_MOVING_DOWN 0
#define PYRAMID_WALL_ACT_MOVING_UP 1
/* oBehParams2ndByte */
#define PYRAMID_WALL_BP_POSITION_HIGH 0
#define PYRAMID_WALL_BP_POSITION_MIDDLE 1
#define PYRAMID_WALL_BP_POSITION_LOW 2
/* Penguins (general) */
/* Walking sounds */
#define PENGUIN_WALK_BABY 0
#define PENGUIN_WALK_BIG 1
/* Animations */
#define PENGUIN_ANIM_WALK 0
#define PENGUIN_ANIM_IDLE 3
/* Racing penguin */
/* oAction */
#define RACING_PENGUIN_ACT_WAIT_FOR_MARIO 0
#define RACING_PENGUIN_ACT_SHOW_INIT_TEXT 1
#define RACING_PENGUIN_ACT_PREPARE_FOR_RACE 2
#define RACING_PENGUIN_ACT_RACE 3
#define RACING_PENGUIN_ACT_FINISH_RACE 4
#define RACING_PENGUIN_ACT_SHOW_FINAL_TEXT 5
/* SL walking penguin */
/* oAction */
#define SL_WALKING_PENGUIN_ACT_MOVING_FORWARDS 0
#define SL_WALKING_PENGUIN_ACT_TURNING_BACK 1
#define SL_WALKING_PENGUIN_ACT_RETURNING 2
#define SL_WALKING_PENGUIN_ACT_TURNING_FORWARDS 3
/* Snowman wind */
/* oSubAction */
#define SL_SNOWMAN_WIND_ACT_IDLE 0
#define SL_SNOWMAN_WIND_ACT_TALKING 1
#define SL_SNOWMAN_WIND_ACT_BLOWING 2
/* Water bomb */
/* oAction */
#define WATER_BOMB_ACT_SHOT_FROM_CANNON 0
#define WATER_BOMB_ACT_INIT 1
#define WATER_BOMB_ACT_DROP 2
#define WATER_BOMB_ACT_EXPLODE 3
/* TTC rotating solid */
/* oBehParams2ndByte */
#define TTC_ROTATING_SOLID_BP_CUBE 0
#define TTC_ROTATING_SOLID_BP_TRIANGULAR_PRISM 1
/* TTC moving bar */
/* oAction */
#define TTC_MOVING_BAR_ACT_WAIT 0
#define TTC_MOVING_BAR_ACT_PULL_BACK 1
#define TTC_MOVING_BAR_ACT_EXTEND 2
#define TTC_MOVING_BAR_ACT_RETRACT 3
/* TTC cog */
/* oBehParams2ndByte */
#define TTC_COG_BP_SHAPE_MASK 0x00000002
#define TTC_COG_BP_SHAPE_HEXAGON (0 << 1)
#define TTC_COG_BP_SHAPE_TRIANGLE (1 << 1)
#define TTC_COG_BP_DIR_MASK 0x00000001
#define TTC_COG_BP_DIR_CCW (0 << 0) // TODO: Check these
#define TTC_COG_BP_DIR_CW (1 << 0)
/* TTC 2D Rotator */
/* oBehParams2ndByte */
#define TTC_2D_ROTATOR_BP_HAND 0
#define TTC_2D_ROTATOR_BP_2D_COG 1
/* Activated Back-and-Forth Platform */
/* ((u16)(o->oBehParams >> 16) & 0x0300) >> 8 aka platform type */
#define ACTIVATED_BF_PLAT_TYPE_BITS_ARROW_PLAT 0
#define ACTIVATED_BF_PLAT_TYPE_BITFS_MESH_PLAT 1
#define ACTIVATED_BF_PLAT_TYPE_BITFS_ELEVATOR 2
/* Dorrie */
/* oAction */
#define DORRIE_ACT_MOVE 0
#define DORRIE_ACT_LOWER_HEAD 1
#define DORRIE_ACT_RAISE_HEAD 2
/* Mad piano */
/* oAction */
#define MAD_PIANO_ACT_WAIT 0
#define MAD_PIANO_ACT_ATTACK 1
/* Fire piranha plant */
/* oAction */
#define FIRE_PIRANHA_PLANT_ACT_HIDE 0
#define FIRE_PIRANHA_PLANT_ACT_GROW 1
/* Fire spitter */
/* oAction */
#define FIRE_SPITTER_ACT_IDLE 0
#define FIRE_SPITTER_ACT_SPIT_FIRE 1
/* Eyerok boss */
/* oAction */
#define EYEROK_BOSS_ACT_SLEEP 0
#define EYEROK_BOSS_ACT_WAKE_UP 1
#define EYEROK_BOSS_ACT_SHOW_INTRO_TEXT 2
#define EYEROK_BOSS_ACT_FIGHT 3
#define EYEROK_BOSS_ACT_DIE 4
/* Eyerok hand */
/* oAction */
#define EYEROK_HAND_ACT_SLEEP 0
#define EYEROK_HAND_ACT_IDLE 1
#define EYEROK_HAND_ACT_OPEN 2
#define EYEROK_HAND_ACT_SHOW_EYE 3
#define EYEROK_HAND_ACT_CLOSE 4
#define EYEROK_HAND_ACT_RETREAT 5
#define EYEROK_HAND_ACT_TARGET_MARIO 6
#define EYEROK_HAND_ACT_SMASH 7
#define EYEROK_HAND_ACT_FIST_PUSH 8
#define EYEROK_HAND_ACT_FIST_SWEEP 9
#define EYEROK_HAND_ACT_BEGIN_DOUBLE_POUND 10 // raising for double smash
#define EYEROK_HAND_ACT_DOUBLE_POUND 11 // double smashing
#define EYEROK_HAND_ACT_ATTACKED 12
#define EYEROK_HAND_ACT_RECOVER 13
#define EYEROK_HAND_ACT_BECOME_ACTIVE 14
#define EYEROK_HAND_ACT_DIE 15
/* Klepto */
/* oAction */
#define KLEPTO_ACT_CIRCLE_TARGET_HOLDING 0
#define KLEPTO_ACT_APPROACH_TARGET_HOLDING 1
#define KLEPTO_ACT_WAIT_FOR_MARIO 2
#define KLEPTO_ACT_TURN_TOWARD_MARIO 3
#define KLEPTO_ACT_DIVE_AT_MARIO 4
#define KLEPTO_ACT_RESET_POSITION 5
#define KLEPTO_ACT_STRUCK_BY_MARIO 6
#define KLEPTO_ACT_RETREAT 7
/* oAnimState */
#define KLEPTO_ANIM_STATE_HOLDING_NOTHING 0
#define KLEPTO_ANIM_STATE_HOLDING_CAP 1
#define KLEPTO_ANIM_STATE_HOLDING_STAR 2
/* Bird */
/* oAction */
#define BIRD_ACT_INACTIVE 0
#define BIRD_ACT_FLY 1
/* oBehParams2ndByte */
#define BIRD_BP_SPAWNED 0
#define BIRD_BP_SPAWNER 1
/* Skeeter */
/* oAction */
#define SKEETER_ACT_IDLE 0
#define SKEETER_ACT_LUNGE 1
#define SKEETER_ACT_WALK 2
/* Snufit */
/* oAction */
#define SNUFIT_ACT_IDLE 0
#define SNUFIT_ACT_SHOOT 1
/* Tweester */
/* oAction */
#define TWEESTER_ACT_IDLE 0
#define TWEESTER_ACT_CHASE 1
#define TWEESTER_ACT_HIDE 2
/* oSubAction */
#define TWEESTER_SUB_ACT_WAIT 0
#define TWEESTER_SUB_ACT_CHASE 0
/* Triplet butterfly */
/* oAction */
#define TRIPLET_BUTTERFLY_ACT_INIT 0
#define TRIPLET_BUTTERFLY_ACT_WANDER 1
#define TRIPLET_BUTTERFLY_ACT_ACTIVATE 2
#define TRIPLET_BUTTERFLY_ACT_EXPLODE 3
/* oBehParams2ndByte */
#define TRIPLET_BUTTERFLY_BP_BUTTERFLY_NUM 0x00000003
#define TRIPLET_BUTTERFLY_BP_NO_BOMBS 0x00000004
/* oTripletButterflyType */
#define TRIPLET_BUTTERFLY_TYPE_NORMAL -1
#define TRIPLET_BUTTERFLY_TYPE_EXPLODES 0
#define TRIPLET_BUTTERFLY_TYPE_SPAWN_1UP 1
/* Water level diamond */
/* oAction */
// Loading
#define WATER_LEVEL_DIAMOND_ACT_INIT 0
// Idling when Mario isn't inside its hitbox
#define WATER_LEVEL_DIAMOND_ACT_IDLE 1
// While the water level is changing
#define WATER_LEVEL_DIAMOND_ACT_CHANGE_WATER_LEVEL 2
// After the water level has changed but Mario hasn't left its hitbox yet
#define WATER_LEVEL_DIAMOND_ACT_IDLE_SPINNING 3
/* Mips */
/* oAction */
#define MIPS_ACT_WAIT_FOR_NEARBY_MARIO 0
#define MIPS_ACT_FOLLOW_PATH 1
#define MIPS_ACT_WAIT_FOR_ANIMATION_DONE 2
#define MIPS_ACT_FALL_DOWN 3
#define MIPS_ACT_IDLE 4
/* oMipsStarStatus */
#define MIPS_STAR_STATUS_HAVENT_SPAWNED_STAR 0
#define MIPS_STAR_STATUS_SHOULD_SPAWN_STAR 1
#define MIPS_STAR_STATUS_ALREADY_SPAWNED_STAR 2
/* Falling Pillar */
/* oAction */
#define FALLING_PILLAR_ACT_IDLE 0
#define FALLING_PILLAR_ACT_TURNING 1
#define FALLING_PILLAR_ACT_FALLING 2
/* Bowser Puzzle */
/* oAction */
#define BOWSER_PUZZLE_ACT_SPAWN_PIECES 0
#define BOWSER_PUZZLE_ACT_WAIT_FOR_COMPLETE 1
#define BOWSER_PUZZLE_ACT_DONE 2
#endif