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
|
#ifndef FOX_CO_H
#define FOX_CO_H
#define TEAM_HEAD_XROT (19)
#define TEAM_HEAD_YROT (20)
// Granga Boss:
#define DMG_FLICKER_5 (5) // Damage indicator flickers for 5 frames
#define DMG_FLICKER_15 (15) // Damage indicator flickers for 15 frames
#define DMG_DESTROYED (1000) // Damage part is destroyed
typedef enum GrangaStates {
/* 0 */ GRANGA_STATIONARY,
/* 1 */ GRANGA_FORWARD_MISSILE, // walk forward + missile
/* 2 */ GRANGA_BACKWARDS_LASER_PLASMA, // Walk backwards + lasers + plasma
/* 3 */ GRANGA_FORWARD_LASER_PLASMA, // Walk towards player + lasers + plasma
/* 4 */ GRANGA_FORWARD, // Walk forward
/* 5 */ GRANGA_FALL_TO_LEFT, // Falling from missing left leg
/* 6 */ GRANGA_FALL_TO_RIGHT, // Falling from missing right leg
/* 7 */ GRANGA_EXPLODE, // BOOM!
} GrangaStates;
typedef enum GrangaWork {
/* 00 */ GRANGA_WORK_00, // x of missiles launched from it's right arm ?
/* 01 */ GRANGA_WORK_01, // y of missiles launched from it's right arm ?
/* 02 */ GRANGA_WORK_02, // z of missiles launched from it's right arm ?
/* 03 */ GRANGA_WORK_03, // x of something // destroy effect related?
/* 04 */ GRANGA_WORK_04, // y of something // destroy effect related?
/* 05 */ GRANGA_WORK_05, // z of something // destroy effect related?
/* 06 */ GRANGA_WORK_06, // x of missiles launched from it's left arm ?
/* 07 */ GRANGA_WORK_07, // y of missiles launched from it's left arm ?
/* 08 */ GRANGA_WORK_08, // z of missiles launched from it's left arm ?
/* 09 */ GRANGA_WORK_09,
/* 10 */ GRANGA_WORK_10,
/* 11 */ GRANGA_WORK_11,
/* 12 */ GRANGA_WORK_12,
/* 13 */ GRANGA_WORK_13,
/* 14 */ GRANGA_WORK_14,
/* 15 */ GRANGA_WORK_15,
/* 16 */ GRANGA_WORK_16, // yRot of missiles launched from both arms ?
/* 17 */ GRANGA_TARGET_X, // player.pos.x target position
/* 18 */ GRANGA_TARGET_Y, // player.pos.y target position
/* 19 */ GRANGA_TARGET_Z, // player.pos.trueZpos target position
/* 20 */ GRANGA_WORK_20,
/* 21 */ GRANGA_WORK_21,
/* 22 */ GRANGA_WORK_22,
/* 23 */ GRANGA_WORK_23,
/* 24 */ GRANGA_WORK_24,
/* 25 */ GRANGA_WORK_25,
/* 26 */ GRANGA_WORK_26,
/* 27 */ GRANGA_WORK_27,
/* 28 */ GRANGA_WORK_28,
/* 29 */ GRANGA_WORK_29,
/* 30 */ GRANGA_WORK_30,
/* 31 */ GRANGA_WORK_31,
/* 32 */ GRANGA_WORK_32,
/* 33 */ GRANGA_WORK_33,
/* 34 */ GRANGA_WORK_34,
/* 35 */ GRANGA_WORK_35,
/* 36 */ GRANGA_WORK_36,
/* 37 */ GRANGA_WORK_37,
/* 38 */ GRANGA_WORK_38,
/* 39 */ GRANGA_WORK_39,
/* 40 */ GRANGA_WORK_40,
/* 41 */ GRANGA_WORK_41,
/* 42 */ GRANGA_WORK_42,
/* 43 */ GRANGA_WORK_43,
/* 44 */ GRANGA_WORK_44,
/* 45 */ GRANGA_WORK_45,
/* 46 */ GRANGA_WORK_46,
/* 47 */ GRANGA_WORK_47,
/* 48 */ GRANGA_WORK_48,
/* 49 */ GRANGA_WORK_49,
/* 50 */ GRANGA_WORK_50,
/* 51 */ GRANGA_WORK_51,
/* 52 */ GRANGA_WORK_52,
/* 53 */ GRANGA_WORK_53,
/* 54 */ GRANGA_WORK_54,
/* 55 */ GRANGA_WORK_55,
/* 56 */ GRANGA_WORK_56,
/* 57 */ GRANGA_WORK_57,
/* 58 */ GRANGA_WORK_58,
/* 59 */ GRANGA_WORK_59,
/* 60 */ GRANGA_WORK_60,
/* 61 */ GRANGA_WORK_61,
/* 62 */ GRANGA_WORK_62, // x
/* 63 */ GRANGA_WORK_63, // y
/* 64 */ GRANGA_WORK_64, // z
/* 65 */ GRANGA_WORK_65,
/* 66 */ GRANGA_WORK_66, // xTargetPos ?
/* 67 */ GRANGA_WORK_67 // zTargetPos ?
} GrangaWork;
typedef enum GrangaSwork {
/* 00 */ GRANGA_SWK_0,
// Damage indicators, one per limb
/* 01 */ GRANGA_RIGHT_ARM_DMG_IND,
/* 02 */ GRANGA_LEFT_ARM_DMG_IND,
/* 03 */ GRANGA_GUN_DMG_IND,
/* 04 */ GRANGA_RIGHT_LEG_DMG_IND,
/* 07 */ GRANGA_LEFT_LEG_DMG_IND = 7,
/* 10 */ GRANGA_BACKPACK_DMG_IND = 10,
/* 18 */ GRANGA_SWK_18 = 18,
/* 19 */ GRANGA_SWK_19,
/* 20 */ GRANGA_SWK_20,
/* 21 */ GRANGA_SWK_21,
/* 22 */ GRANGA_SWK_22,
/* 23 */ GRANGA_SWK_23,
/* 24 */ GRANGA_LEFT_LEG_HP,
/* 25 */ GRANGA_RIGHT_LEG_HP,
/* 26 */ GRANGA_LEFT_ARM_HP,
/* 27 */ GRANGA_RIGHT_ARM_HP,
/* 28 */ GRANGA_PLASMA_GUN_HP,
/* 29 */ GRANGA_BACKPACK_HP,
/* 30 */ GRANGA_ATTACK_STATE,
/* 31 */ GRANGA_NEXT_STATE,
/* 32 */ GRANGA_SWK_32,
/* 33 */ GRANGA_INIT,
/* 35 */ GRANGA_MISSILE_COUNT = 35,
/* 36 */ GRANGA_1UP_CHECK
} GrangaSwork;
typedef enum GrangaFwork {
/* 00 */ GRANGA_FWK_00, // left leg rock angle?
/* 01 */ GRANGA_FWK_01,
/* 02 */ GRANGA_FWK_02,
/* 03 */ GRANGA_FWK_03,
/* 04 */ GRANGA_FWK_04,
/* 12 */ GRANGA_FWK_12 = 12,
/* 13 */ GRANGA_FWK_13,
/* 14 */ GRANGA_FWK_14,
} GrangaFwork;
typedef enum GrangaDmgParts {
/* 0 */ GRANGA_DMG_BACKPACK,
/* 1 */ GRANGA_DMG_LEFT_ARM,
/* 2 */ GRANGA_DMG_RIGHT_ARM,
/* 3 */ GRANGA_DMG_GUN,
/* 4 */ GRANGA_DMG_LEFT_LEG,
/* 5 */ GRANGA_DMG_RIGHT_LEG,
} GrangaDmgParts;
typedef enum GrangaAttackState {
/* 0 */ GRANGA_ATTACK_IDLE,
/* 1 */ GRANGA_ATTACK_MISSILES,
/* 2 */ GRANGA_ATTACK_LASERS,
/* 3 */ GRANGA_ATTACK_PLASMA,
} GrangaAttackState;
// Carrier Boss:
typedef enum CoCarrierParts {
/* 0 */ CARRIER, // Boss
/* 1 */ CARRIER_LEFT, // Left launch bay
/* 2 */ CARRIER_UPPER, // Right upper launch bay
/* 3 */ CARRIER_BOTTOM // Right lower launch bay
} CarrierParts;
typedef enum CoCarrierStates {
/* 0 */ CARRIER_STATE_0,
/* 1 */ CARRIER_STATE_1,
/* 2 */ CARRIER_STATE_2, // positioning
/* 3 */ CARRIER_STATE_3, // Close launch bays
/* 4 */ CARRIER_STATE_4, // Open left launch bay
/* 5 */ CARRIER_STATE_5, // open right launch bays
/* 6 */ CARRIER_STATE_6,
/* 7 */ CARRIER_STATE_7, // go around beam attack
/* 8 */ CARRIER_STATE_8, // Dying
/* 9 */ CARRIER_STATE_9, // Dying cutscene
/* 10 */ CARRIER_EXPLODE // BOOM!
} CoCarrierStates;
#endif
|