‪Black Ops 3 Source Code Explorer  0.1
‪An script explorer for Black Ops 3 by ZeRoY
blackboard.gsh
Go to the documentation of this file.
1 #define BB_REGISTER_ATTRIBUTE(name,defaultValue,getter) \
2  Blackboard::RegisterBlackBoardAttribute(self,name,defaultValue,getter);\
3  if( IsActor(self) ) \
4  { \
5  }
6 
7 #define ENABLE_BLACKBOARD_DEBUG_TRACKING(self)
8 
9 // -------------------------------------------- BLACKBOARD ATTRIBUTES --------------------------//
10 
11 // Attribute names, keep it lowercase. "_" before the attribute name indicates that its being used by both AST and BT.
12 
13 // Desired values should have DESIRED and "_desired_" in their definition. There should be a associated BB attribute existing already
14 // Eg. ATTRIBUTE and DESIRED_ATTRIBUTE and "_attribute" and "_desired_attribute". Try to keep them together please. :)
15 
16 #define CONTEXT "_context"
17 #define CONTEXT_2 "_context2"
18 #define DESIRED_STANCE "_desired_stance"
19 
20 #define ARRIVAL_TYPE "_arrival_type"
21 #define ARRIVE_AT_GOAL "arrive_at_goal"
22 #define DONT_ARRIVE_AT_GOAL "dont_arrive_at_goal"
23 
24 
25 #define ARRIVAL_STANCE "_arrival_stance"
26 #define HIT_LOCATION "_hit_location"
27 #define FATAL_DAMAGE_LOCATION "_fatal_damage_location"
28 #define DAMAGE_LOCATION "_damage_location"
29 #define DAMAGE_DIRECTION "_damage_direction"
30 #define DAMAGE_WEAPON_CLASS "_damage_weapon_class"
31 #define DAMAGE_MOD "_damage_mod"
32 #define DAMAGE_WEAPON "_damage_weapon"
33 #define DAMAGE_TAKEN "_damage_taken"
34 #define TRACKING_TURN_YAW "_tracking_turn_yaw"
35 #define MELEE_DISTANCE "_melee_distance"
36 #define STANCE "_stance"
37 #define THROW_DISTANCE "_throw_distance"
38 #define WEAPON_CLASS "_weapon_class"
39 #define WEAPON_TYPE "_weapon_type"
40 #define FIRE_MODE "_fire_mode"
41 #define COVER_MODE "_cover_mode"
42 #define PREVIOUS_COVER_MODE "_previous_cover_mode"
43 
44 #define YAW_TO_COVER "_yaw_to_cover"
45 
46 #define COVER_DIRECTION "_cover_direction"
47 #define PREVIOUS_COVER_DIRECTION "_previous_cover_direction"
48 
49 #define COVER_BACK_DIRECTION "cover_back_direction"
50 #define COVER_FRONT_DIRECTION "cover_front_direction"
51 #define COVER_LEFT_DIRECTION "cover_left_direction"
52 #define COVER_RIGHT_DIRECTION "cover_right_direction"
53 
54 #define COVER_TYPE "_cover_type"
55 #define CURRENT_LOCATION_COVER_TYPE "_current_location_cover_type"
56 #define PREVIOUS_COVER_TYPE "_previous_cover_type"
57 
58 #define EXPOSED_TYPE "_exposed_type"
59 
60 #define LOCOMOTION_MOTION_ANGLE "_locomotion_motion_angle"
61 #define LOCOMOTION_TURN_YAW "_locomotion_turn_yaw"
62 
63 #define LOCOMOTION_EXIT_YAW "_locomotion_exit_yaw"
64 #define LOCOMOTION_ARRIVAL_YAW "_locomotion_arrival_yaw"
65 #define TACTICAL_ARRIVAL_FACING_YAW "_tactical_arrival_facing_yaw"
66 #define LOCOMOTION_ARRIVAL_DISTANCE "_locomotion_arrival_distance"
67 
68 #define LOCOMOTION_FACE_ENEMY_QUADRANT "_locomotion_face_enemy_quadrant"
69 #define LOCOMOTION_FACE_ENEMY_QUADRANT_PREVIOUS "_locomotion_face_enemy_quadrant_previous"
70 
71 #define LOCOMOTION_FACE_ENEMY_NONE "locomotion_face_enemy_none"
72 #define LOCOMOTION_FACE_ENEMY_FRONT "locomotion_face_enemy_front"
73 #define LOCOMOTION_FACE_ENEMY_LEFT "locomotion_face_enemy_left"
74 #define LOCOMOTION_FACE_ENEMY_RIGHT "locomotion_face_enemy_right"
75 #define LOCOMOTION_FACE_ENEMY_BACK "locomotion_face_enemy_back"
76 
77 #define LOOKAHEAD_ANGLE "_lookahead_angle"
78 
79 #define PATROL "_patrol"
80 #define PATROL_ENABLED "patrol_enabled"
81 #define PATROL_DISABLED "patrol_disabled"
82 
83 #define ENEMY "_enemy"
84 #define HAS_ENEMY "has_enemy"
85 #define NO_ENEMY "no_enemy"
86 
87 #define ENEMY_YAW "_enemy_yaw"
88 #define PERFECT_ENEMY_YAW "_perfect_enemy_yaw"
89 #define REACT_YAW "_react_yaw"
90 
91 #define COVER_NONE "cover_none"
92 #define COVER_CROUCH "cover_crouch"
93 #define COVER_RIGHT "cover_right"
94 #define COVER_LEFT "cover_left"
95 #define COVER_STAND "cover_stand"
96 #define COVER_EXPOSED "cover_exposed"
97 #define COVER_PILLAR "cover_pillar"
98 #define COVER_GUARD "Guard"
99 #define COVER_PATH "Path"
100 
101 #define COVER_CONCEALED "_cover_concealed"
102 #define COVER_TYPE_CONCEALED "concealed"
103 #define COVER_TYPE_UNCONCEALED "unconcealed"
104 
105 #define EXPOSED_YES "exposed_yes"
106 #define EXPOSED_NO "exposed_no"
107 
108 #define COVER_MODE_NONE "cover_mode_none"
109 #define COVER_LEAN_MODE "cover_lean"
110 #define COVER_BLIND_MODE "cover_blind"
111 #define COVER_OVER_MODE "cover_over"
112 #define COVER_VANTAGE_MODE "cover_vantage"
113 #define COVER_ALERT_MODE "cover_alert"
114 #define COVER_SCAN_MODE "cover_scan"
115 
116 #define TRAVERSAL_TYPE "_traversal_type"
117 
118 #define VARIANT_TYPE "_variant_type"
119 #define LOW_GRAVITY_VARIANT "_low_gravity_variant"
120 #define LOW_GRAVITY "_low_gravity"
121 
122 #define LOCOMOTION_PAIN_TYPE "_locomotion_pain_type"
123 
124 #define HUMAN_LOCOMOTION_MOVEMENT_TYPE "_human_locomotion_movement_type"
125 #define HUMAN_LOCOMOTION_MOVEMENT_PATROL "human_locomotion_movement_patrol"
126 #define HUMAN_LOCOMOTION_MOVEMENT_SPRINT "human_locomotion_movement_sprint"
127 #define HUMAN_LOCOMOTION_MOVEMENT_DEFAULT "human_locomotion_movement_default"
128 
129 #define HUMAN_LOCOMOTION_VARIATION "_human_locomotion_variation"
130 
131 #define SPEED "_speed"
132 
133 #define JUKE_DIRECTION "_juke_direction"
134 #define JUKE_DISTANCE "_juke_distance"
135 
136 #define GRAPPLE_DIRECTION "_grapple_direction"
137 #define LOCOMOTION_SHOULD_TURN "_locomotion_should_turn"
138 #define SHOULD_TURN "should_turn"
139 #define SHOULD_NOT_TURN "should_not_turn"
140 
141 #define GIB_LOCATION "_gib_location"
142 
143 // Robots
144 #define MIND_CONTROL "_mind_control"
145 #define MOVE_MODE "_move_mode"
146 #define GIBBED_LIMBS "_gibbed_limbs"
147 #define ROBOT_STEP_IN "_robot_step_in"
148 #define ROBOT_JUMP_DIRECTION "_robot_jump_direction"
149 #define ROBOT_LOCOMOTION_TYPE "_robot_locomotion_type"
150 #define ROBOT_WALLRUN_DIRECTION "_robot_wallrun_direction"
151 #define ROBOT_TRAVERSAL_TYPE "_robot_traversal_type"
152 #define ROBOT_MODE "_robot_mode"
153 
154 //Zombies
155 #define LOCOMOTION_SPEED_TYPE "_locomotion_speed"
156 #define LOCOMOTION_SPEED_WALK "locomotion_speed_walk"
157 #define LOCOMOTION_SPEED_RUN "locomotion_speed_run"
158 #define LOCOMOTION_SPEED_SPRINT "locomotion_speed_sprint"
159 #define LOCOMOTION_SPEED_SUPER_SPRINT "locomotion_speed_super_sprint"
160 #define LOCOMOTION_SPEED_JUMP_PAD_SUPER_SPRINT "locomotion_speed_jump_pad_super_sprint"
161 #define LOCOMOTION_SPEED_BURNED "locomotion_speed_burned"
162 #define LOCOMOTION_SPEED_SLIDE "locomotion_speed_slide"
163 
164 #define HAS_LEGS_TYPE "_has_legs"
165 #define HAS_LEGS_YES "has_legs_yes"
166 #define HAS_LEGS_NO "has_legs_no"
167 
168 #define IDGUN_DAMAGE_DIRECTION "_idgun_damage_direction"
169 
170 #define WHICH_BOARD_PULL_TYPE "_which_board_pull"
171 #define BOARD_ATTACK_SPOT "_board_attack_spot"
172 
173 #define SHOULD_RUN "_should_run"
174 #define SHOULD_RUN_YES "run"
175 #define SHOULD_RUN_NO "walk"
176 
177 #define SHOULD_HOWL "_should_howl"
178 #define SHOULD_HOWL_YES "howl"
179 #define SHOULD_HOWL_NO "dont_howl"
180 
181 #define LOCOMOTION_SPEED_1 "speed_1"
182 #define LOCOMOTION_SPEED_2 "speed_2"
183 #define LOCOMOTION_SPEED_3 "speed_3"
184 
185 #define ARMS_POSITION "_arms_position"
186 #define ARMS_UP "arms_up"
187 #define ARMS_DOWN "arms_down"
188 
189 #define ZOMBIE_DAMAGEWEAPON_TYPE "_zombie_damageweapon_type"
190 #define ZOMBIE_DAMAGEWEAPON_REGULAR "regular"
191 #define ZOMBIE_DAMAGEWEAPON_PACKED "packed"
192 
193 #define PARASITE_FIRING_RATE "_parasite_firing_rate"
194 
195 #define MARGWA_HEAD "_margwa_head"
196 #define MARGWA_HEAD_LEFT "left"
197 #define MARGWA_HEAD_MIDDLE "middle"
198 #define MARGWA_HEAD_RIGHT "right"
199 
200 #define MARGWA_TELEPORT "_margwa_teleport"
201 #define MARGWA_TELEPORT_IN "in"
202 #define MARGWA_TELEPORT_OUT "out"
203 
204 #define GETUP_DIRECTION "_getup_direction"
205 #define GETUP_BACK "getup_back"
206 #define GETUP_BELLY "getup_belly"
207 
208 #define KNOCKDOWN_DIRECTION "_knockdown_direction"
209 #define PUSH_DIRECTION "_push_direction"
210 #define KNOCKDOWN_TYPE "_knockdown_type"
211 #define KNOCKDOWN_STUN "knockdown_stun" //contains all the possible knockdown animations
212 #define KNOCKDOWN_SHOVED "knockdown_shoved" //only has the quick to the ground knockdown animations
213 
214 #define PANIC "_panic"
215 #define PANIC_YES "panic"
216 #define PANIC_NO "calm"
217 
218 #define HUMAN_COVER_FLANKABILITY "_human_cover_flankability" // will be set to YES if AI will look good if he reacts with flanking
219 #define HUMAN_COVER_FLANKABLE "flankable"
220 #define HUMAN_COVER_UNFLANKABLE "unflankable"
221 
222 #define RUN_N_GUN_VARIATION "_run_n_gun_variation"
223 #define RUN_N_GUN_FORWARD "variation_forward"
224 #define RUN_N_GUN_STRAFE_1 "variation_strafe_1"
225 #define RUN_N_GUN_STRAFE_2 "variation_strafe_2"
226 
227 #define MECHZ_PART "_mechz_part"
228 #define MECHZ_PART_FACEPLATE "mechz_faceplate"
229 #define MECHZ_PART_POWERCORE "mechz_powercore"
230 #define MECHZ_PART_GUN "mechz_gun"
231 
232 #define WHIRLWIND_SPEED "_whirlwind_speed"
233 #define WHIRLWIND_NORMAL "whirlwind_normal"
234 #define WHIRLWIND_FAST "whirlwind_fast"
235 
236 #define QUAD_WALL_CRAWL "_quad_wall_crawl"
237 #define QUAD_WALL_CRAWL_START "quad_wall_crawl_start"
238 #define QUAD_WALL_CRAWL_THEATER "quad_wall_crawl_theater"
239 
240 #define QUAD_PHASE_DIRECTION "_quad_phase_direction"
241 #define QUAD_PHASE_LEFT "quad_phase_left"
242 #define QUAD_PHASE_RIGHT "quad_phase_right"
243 #define QUAD_PHASE_FORWARD "quad_phase_forward"
244 
245 #define QUAD_PHASE_DISTANCE "_quad_phase_distance"
246 #define QUAD_PHASE_SHORT "quad_phase_short"
247 #define QUAD_PHASE_LONG "quad_phase_long"
248 
249 #define BLACKHOLEBOMB_PULL_STATE "_zombie_blackholebomb_pull_state"
250 #define BLACKHOLEBOMB_PULL_SLOW "bhb_pull_slow"
251 #define BLACKHOLEBOMB_PULL_FAST "bhb_pull_fast"
252 
253 // -------------------------------------------- BLACKBOARD DEFINES --------------------//
254 
255 // -------------------------------------------- AIM RELATED --------------------------//
256 #define AIM_RIGHT "aim_right"
257 #define AIM_LEFT "aim_left"
258 #define AIM_UP "aim_up"
259 #define AIM_DOWN "aim_down"
260 
261 #define AIM_LIMIT_TABLE_ENTRY_DEFAULT "default"
262 #define AIM_LIMIT_TABLE_ENTRY_COVER "cover"
263 #define AIM_LIMIT_TABLE_ENTRY_LOCOMOTION "locomotion"
264 #define AIM_LIMIT_TABLE_ENTRY_COVER_LEFT_LEAN "cover_left_lean"
265 #define AIM_LIMIT_TABLE_ENTRY_COVER_RIGHT_LEAN "cover_right_lean"
266 #define AIM_LIMIT_TABLE_ENTRY_COVER_OVER "cover_over"
267 #define AIM_LIMIT_TABLE_ENTRY_COVER_CONCEALED_OVER "cover_concealed_over"
268 #define AIM_LIMIT_TABLE_ENTRY_COVER_VANTAGE "cover_vantage"
269 #define AIM_LIMIT_TABLE_ENTRY_PILLAR_LEFT_LEAN "pillar_left_lean"
270 #define AIM_LIMIT_TABLE_ENTRY_PILLAR_RIGHT_LEAN "pillar_right_lean"
271 
272 // -------------------------------------------- STANCES -------------------------------//
273 #define STANCE_STAND "stand"
274 #define STANCE_CROUCH "crouch"
275 #define STANCE_PRONE "prone"
276 #define STANCE_PRONE_ON_BACK "prone_back"
277 #define STANCE_PRONE_ON_FRONT "prone_front"
278 #define STANCE_SWIM "swim"
279 
280 #define DEFAULT_STANCE "stand"
281 #define DEFAULT_MOVEMENT_STANCE "stand"
282 
283 // -------------------------------------------- WEAPONS -------------------------------//
284 #define DEFAULT_WEAPON "rifle"
285 
286 // -------------------------------------------- DAMAGE -------------------------------//
287 #define HEAVY_DAMAGE_RATIO 0.7
288 #define HEAVY_CONSECUTIVE_ATTACK_INTERVAL 1 * 1000
289 
290 #define DAMAGE_HEAVY "heavy"
291 #define DAMAGE_LIGHT "light"
292 
293 // -------------------------------------------- TACTICAL WALK -------------------------//
294 #define RELATIVE_DIR_NONE 0
295 #define RELATIVE_DIR_FRONT 1
296 #define RELATIVE_DIR_LEFT 2
297 #define RELATIVE_DIR_RIGHT 3
298 #define RELATIVE_DIR_BACK 4
299 
300 // -------------------------------------------- CORNER PREDICTION ----------------------//
301 #define CORNER_PREDICTOR_STATUS_SUCCESS 0
302 #define CORNER_PREDICTOR_STATUS_NO_PATH 1
303 #define CORNER_PREDICTOR_STATUS_STRAIGHT_LINE_TO_GOAL 2
304 #define CORNER_PREDICTOR_STATUS_EXITING_COVER 3
305 #define CORNER_PREDICTOR_STATUS_EXITING_EXPOSED 4
306 #define CORNER_PREDICTOR_STATUS_ARRIVING_COVER 5
307 #define CORNER_PREDICTOR_STATUS_ARRIVING_EXPOSED 6
308 
309 #define CORNER_PREDICTION_DISTANCE 100
310 #define MIN_EXITYAW_DISTANCE_SQ 64 * 64
311 #define INVALID_EXIT_YAW -1
312 
313 // -------------------------------------------- ARRIVAL -------------------------------//
314 #define MIN_PATH_DIST_FOR_ARRIVAL_PREDICTION_SQ 50 * 50
315 #define DEFAULT_DESIRED_ARRIVAL_DISTANCE 0
316 #define DEFAULT_ARRIVAL_YAW 0
317 
318 // -------------------------------------------- LOCMOTION PAIN ------------------------//
319 #define LOCOMOTION_MOVING_PAIN_DIST_SHORT 150
320 #define LOCOMOTION_MOVING_PAIN_DIST_MED 200
321 #define LOCOMOTION_MOVING_PAIN_DIST_LONG 300
322 
323 #define LOCOMOTION_MOVING_PAIN_SHORT "locomotion_moving_pain_short"
324 #define LOCOMOTION_MOVING_PAIN_MED "locomotion_moving_pain_med"
325 #define LOCOMOTION_MOVING_PAIN_LONG "locomotion_moving_pain_long"
326 
327 #define LOCOMOTION_INPLACE_PAIN "locomotion_inplace_pain"
328 
329 // -------------------------------------------- DAMAGE DIRECTION ------------------------//
330 #define DAMAGE_DIRECTION_FRONT "front"
331 #define DAMAGE_DIRECTION_LEFT "left"
332 #define DAMAGE_DIRECTION_BACK "back"
333 #define DAMAGE_DIRECTION_RIGHT "right"
334 
335 
336 // -------------------------------------------- SPECIAL DEATH ------------------------//
337 #define SPECIAL_DEATH "_special_death"
338 #define SPECIAL_DEATH_BALCONY "balcony"
339 #define SPECIAL_DEATH_BALCONY_NORAIL "balcony_norail"
340 #define SPECIAL_DEATH_NONE "none"
341 
342 // -------------------------------------------- AWARENESS ------------------------//
343 #define AST_AWARENESS "_awareness"
344 #define AST_AWARENESS_PREVIOUS "_awareness_prev"
345 
346 // -------------------------------- STAIRS ------------------------//
347 #define STAIRCASE_TYPE "_staircase_type"
348 #define STAIRCASE_STATE "_staircase_state"
349 #define STAIRCASE_START "staircase_start"
350 #define STAIRCASE_LOOP "staircase_loop"
351 #define STAIRCASE_END "staircase_end"
352 #define STAIRCASE_EXIT_TYPE "_staircase_exit_type"
353 #define STAIRCASE_UP_EXIT_L_3_STAIRS "staircase_up_exit_l_3_stairs"
354 #define STAIRCASE_UP_EXIT_L_4_STAIRS "staircase_up_exit_l_4_stairs"
355 #define STAIRCASE_UP_EXIT_R_3_STAIRS "staircase_up_exit_r_3_stairs"
356 #define STAIRCASE_UP_EXIT_R_4_STAIRS "staircase_up_exit_r_4_stairs"
357 #define STAIRCASE_DOWN_EXIT_L_2_STAIRS "staircase_down_exit_l_2_stairs"
358 #define STAIRCASE_DOWN_EXIT_R_2_STAIRS "staircase_down_exit_r_2_stairs"
359 #define STAIRCASE_STEP_SKIP_NUM "_staircase_skip_num"
360 
361 #define STAIR_SKIP_3 "staircase_skip_3"
362 #define STAIR_SKIP_6 "staircase_skip_6"
363 #define STAIR_SKIP_8 "staircase_skip_8"
364 
365 // skip4 Not implemented yet
366 #define STAIR_SKIP_4 "staircase_skip_4"
367 
368 
369 #define STAIRCASE_DIRECTION "_staircase_direction"
370 #define STAIRCASE_UP "staircase_up"
371 #define STAIRCASE_DOWN "staircase_down"
372 
373 #define STAIRCASE_NUM_TOTAL_STEPS "_staircase_num_total_steps"
374 #define STAIRCASE_NUM_STEPS "_staircase_num_steps"
375 
376 #define STAIRCASE_END_THRESHOLD_DISTSQ 16*16
377 // -------------------------------------------- HITLOCS ------------------------//
378 // same as hitLocation_t enum in q_shared.h
379 
380 #define HITLOC_HELMET "helmet"
381 #define HITLOC_HEAD "head"
382 #define HITLOC_NECK "neck"
383 #define HITLOC_TORSO_UPR "torso_upper"
384 #define HITLOC_TORSO_MID "torso_mid"
385 #define HITLOC_TORSO_LWR "torso_lower"
386 #define HITLOC_R_ARM_UPR "right_arm_upper"
387 #define HITLOC_L_ARM_UPR "left_arm_upper"
388 #define HITLOC_R_ARM_LWR "right_arm_lower"
389 #define HITLOC_L_ARM_LWR "left_arm_lower"
390 #define HITLOC_R_HAND "right_hand"
391 #define HITLOC_L_HAND "left_hand"
392 #define HITLOC_R_LEG_UPR "right_leg_upper"
393 #define HITLOC_L_LEG_UPR "left_leg_upper"
394 #define HITLOC_R_LEG_LWR "right_leg_lower"
395 #define HITLOC_L_LEG_LWR "left_leg_lower"
396 #define HITLOC_R_FOOT "right_foot"
397 #define HITLOC_L_FOOT "left_foot"
398 #define HITLOC_GUN "gun"
399 #define HITLOC_SHIELD "riotshield"
400 
401 #define HITLOC_RIGHT_ARM "right_arm"
402 #define HITLOC_LEFT_ARM "left_arm"
403 #define HITLOC_CHEST "chest"
404 #define HITLOC_HIPS "hips"
405 #define HITLOC_LEGS "legs"
406 #define HITLOC_GROIN "groin"
407 
408 
409 #define MELEE_ENEMY_TYPE "_melee_enemy_type"
410 #define MELEE_ENEMY_TYPE_FIREFLY "fireflyswarm"
411 
412 
413 #define IS_HITLOC_HEAD(__sHitLoc) ( IsInArray( array( HITLOC_HELMET, HITLOC_HEAD, HITLOC_NECK ), __sHitLoc ) )
414 #define IS_HITLOC_CHEST(__sHitLoc) ( IsInArray( array( HITLOC_TORSO_UPR, HITLOC_TORSO_MID ), __sHitLoc ) )
415 #define IS_HITLOC_HIPS(__sHitLoc) ( IsInArray( array( HITLOC_TORSO_LWR ), __sHitLoc ) )
416 #define IS_HITLOC_RIGHT_ARM(__sHitLoc) ( IsInArray( array( HITLOC_R_ARM_UPR, HITLOC_R_ARM_LWR, HITLOC_R_HAND, HITLOC_GUN ), __sHitLoc ) )
417 #define IS_HITLOC_LEFT_ARM(__sHitLoc) ( IsInArray( array( HITLOC_L_ARM_UPR, HITLOC_L_ARM_LWR, HITLOC_L_HAND ), __sHitLoc ) )
418 #define IS_HITLOC_LEGS(__sHitLoc) ( IsInArray( array( HITLOC_R_LEG_UPR, HITLOC_L_LEG_UPR, HITLOC_R_LEG_LWR, HITLOC_L_LEG_LWR, HITLOC_R_FOOT, HITLOC_L_FOOT ), __sHitLoc ) )
419 #define IS_HITLOC_SHIELD(__sHitLoc) ( IsInArray( array( HITLOC_SHIELD ), __sHitLoc ) )
420 
421 #define IS_HITLOC_LEFT_LEG(__sHitLoc) ( IsInArray( array( HITLOC_L_LEG_UPR, HITLOC_L_LEG_LWR, HITLOC_L_FOOT ), __sHitLoc ) )
422 #define IS_HITLOC_RIGHT_LEG(__sHitLoc) ( IsInArray( array( HITLOC_R_LEG_UPR, HITLOC_R_LEG_LWR, HITLOC_R_FOOT ), __sHitLoc ) )
423 
424 #define HITLOC_ALL array( HITLOC_HELMET, HITLOC_HEAD, HITLOC_NECK, HITLOC_TORSO_UPR, HITLOC_TORSO_MID, HITLOC_TORSO_LWR, HITLOC_R_ARM_UPR, HITLOC_L_ARM_UPR, HITLOC_R_ARM_LWR, HITLOC_L_ARM_LWR, HITLOC_R_HAND, HITLOC_L_HAND, HITLOC_R_LEG_UPR, HITLOC_L_LEG_UPR, HITLOC_R_LEG_LWR, HITLOC_L_LEG_LWR, HITLOC_R_FOOT, HITLOC_L_FOOT, HITLOC_GUN, HITLOC_SHIELD )