‪Black Ops 3 Source Code Explorer  0.1
‪An script explorer for Black Ops 3 by ZeRoY
shared.gsh
Go to the documentation of this file.
1 #define PLAYER_1 0
2 #define PLAYER_2 1
3 #define PLAYER_3 2
4 #define PLAYER_4 3
5 
6 #define ART_REVIEW GetDvarInt( "art_review", 0 )
7 
8 //SESSION MODE FLAGS
9 // should stay the same as eGameModes in com_gamemodes.h
10 #define GAMEMODE_PUBLIC_MATCH 0
11 #define GAMEMODE_PRIVATE_MATCH 1
12 #define GAMEMODE_LOCAL_SPLITSCREEN 2
13 #define GAMEMODE_WAGER_MATCH 3
14 #define GAMEMODE_THEATER 5
15 #define GAMEMODE_LEAGUE_MATCH 6
16 #define GAMEMODE_RTS 7
17 
18 //SESSION MODE ENUM
19 // sync with eModes
20 #define SESSIONMODE_ZOMBIES 0
21 #define SESSIONMODE_MULTIPLAYER 1
22 #define SESSIONMODE_CAMPAIGN 2
23 #define SESSIONMODE_INVALID 3
24 
25 // SPAWNFLAGS
26 
27 #define SPAWNFLAG_MODEL_DYNAMIC_PATH 1
28 
29 #define SPAWNFLAG_TRIGGER_AI_AXIS 1
30 #define SPAWNFLAG_TRIGGER_AI_ALLIES 2
31 #define SPAWNFLAG_TRIGGER_AI_NEUTRAL 4
32 #define SPAWNFLAG_TRIGGER_NOT_PLAYER 8
33 #define SPAWNFLAG_TRIGGER_VEHICLE 16
34 #define SPAWNFLAG_TRIGGER_SPAWN 32
35 #define SPAWNFLAG_TRIGGER_TOUCH_ONCE 64
36 #define SPAWNFLAG_TRIGGER_LOOK 256
37 #define SPAWNFLAG_TRIGGER_SPAWN_MANAGER 512
38 #define SPAWNFLAG_TRIGGER_TRIGGER_ONCE 1024
39 
40 #define SPAWNFLAG_TRIGGER_HURT_START_OFF 1
41 #define SPAWNFLAG_TRIGGER_HURT_PLAYER_ONLY 2
42 #define SPAWNFLAG_TRIGGER_HURT_SILENT 4
43 #define SPAWNFLAG_TRIGGER_HURT_NO_PROTECTION 8
44 #define SPAWNFLAG_TRIGGER_HURT_SLOW 16
45 #define SPAWNFLAG_TRIGGER_HURT_ONCE 32
46 #define SPAWNFLAG_TRIGGER_HURT_IGNORE_LAST_STAND 64
47 
48 #define SPAWNFLAG_ACTOR_SPAWNER 1
49 #define SPAWNFLAG_ACTOR_SCRIPTMAKEROOM 2
50 // UNDELETABLE 4
51 // ENEMYINFO 8
52 #define SPAWNFLAG_ACTOR_SCRIPTFORCESPAWN 16
53 #define SPAWNFLAG_ACTOR_SM_PRIORITY 32
54 #define SPAWNFLAG_ACTOR_SCRIPTINFINITESPAWN 64
55 #define SPAWNFLAG_ACTOR_SCRIPTDELETEONZEROCOUNT 128
56 
57 #define SPAWNFLAG_VEHICLE_NODE_START_NODE 1
58 #define SPAWNFLAG_VEHICLE_NODE_ROTATE 65536
59 
60 #define SPAWNFLAG_VEHICLE_USEABLE 1
61 #define SPAWNFLAG_VEHICLE_SPAWNER 2
62 // UNDELETABLE 4
63 #define SPAWNFLAG_VEHICLE_SCRIPTMAKEROOM 8
64 // These match the SPAWNFLAG_ACTOR flags
65 //#define SPAWNFLAG_VEHICLE_SCRIPTFORCESPAWN 16
66 //#define SPAWNFLAG_VEHICLE_SM_PRIORITY 32
67 //#define SPAWNFLAG_VEHICLE_SCRIPTINFINITESPAWN 64
68 //#define SPAWNFLAG_VEHICLE_SCRIPTDELETEONZEROCOUNT 128
69 
70 #define SPAWNFLAG_TURRET_ENABLED 1
71 #define SPAWNFLAG_TURRET_GET_USERS 2
72 
73 #define SPAWNFLAG_PATH_DONT_LINK 1
74 #define SPAWNFLAG_PATH_NOT_CHAIN 2
75 
76 #define SPAWNFLAG_PATH_STANCE_STAND 4
77 #define SPAWNFLAG_PATH_STANCE_CROUCH 8
78 #define SPAWNFLAG_PATH_STANCE_PRONE 16
79 
80 #define SPAWNFLAG_PATH_CAN_PARENT 256
81 #define SPAWNFLAG_PATH_DISABLED 512
82 #define SPAWNFLAG_PATH_DONT_LEFT 1024
83 #define SPAWNFLAG_PATH_BALCONY 1024
84 #define SPAWNFLAG_PATH_PROCEDURAL 1024
85 #define SPAWNFLAG_PATH_DONT_RIGHT 2048
86 #define SPAWNFLAG_PATH_BALCONY_NORAILING 2048
87 #define SPAWNFLAG_PATH_WALLRUN 2048
88 
89 #define SPAWNFLAG_PATH_DOUBLE_WIDE 1048576
90 #define SPAWNFLAG_PATH_QUADROTOR 2097152
91 
92 #define SPAWNFLAG_SCRIPTBUNDLE_INIT 1
93 #define SPAWNFLAG_SCRIPTBUNDLE_PLAY 2
94 
95 #define SPAWNFLAG(__e,__f) (isdefined(__e.spawnflags)&&((__e.spawnflags & __f) == __f))
96 
97 // CONTENTS
98 #define CONTENTS_SOLID (1 << 0) // an eye is never valid in a solid
99 #define CONTENTS_FOLIAGE (1 << 1)
100 #define CONTENTS_NONCOLLIDING (1 << 2)
101 #define CONTENTS_GLASS (1 << 4)
102 #define CONTENTS_WATER (1 << 5)
103 #define CONTENTS_CANSHOOTCLIP (1 << 6)
104 #define CONTENTS_MISSILECLIP (1 << 7)
105 #define CONTENTS_ITEM (1 << 8)
106 #define CONTENTS_VEHICLECLIP (1 << 9)
107 #define CONTENTS_ITEMCLIP (1 << 10)
108 #define CONTENTS_SKY (1 << 11) // fixes diffuse sunlight checks right next to a skybrush
109 #define CONTENTS_AI_NOSIGHT (1 << 12) // AI cannot see through this
110 #define CONTENTS_CLIPSHOT (1 << 13) // bullets hit this
111 #define CONTENTS_CORPSE_CLIPSHOT (1 << 14) // to get bullets to hit corpses, but not grenade radius damage; should never be on a brush, only in game
112 #define CONTENTS_ACTOR (1 << 15) // using this for dogs
113 #define CONTENTS_FAKE_ACTOR (1 << 15)
114 #define CONTENTS_PLAYERCLIP (1 << 16)
115 #define CONTENTS_MONSTERCLIP (1 << 17)
116 #define CONTENTS_PLAYERVEHICLECLIP (1 << 18)
117 #define CONTENTS_USE (1 << 21)
118 #define CONTENTS_UTILITYCLIP (1 << 22) // level specific collision type
119 #define CONTENTS_VEHICLE (1 << 23)
120 #define CONTENTS_MANTLE (1 << 24) // used for mantle / ladder / ledge / pipe traversals
121 #define CONTENTS_PLAYER (1 << 25)
122 #define CONTENTS_CORPSE (1 << 26)
123 #define CONTENTS_DETAIL (1 << 27)
124 #define CONTENTS_STRUCTURAL (1 << 28)
125 #define CONTENTS_LOOKAT (1 << 28)
126 #define CONTENTS_TRIGGER (1 << 30)
127 #define CONTENTS_NODROP (1 << 31)
128 
129 // Physics Trace Masks
130 #define PHYSICS_TRACE_MASK_PHYSICS (1 << 0)
131 #define PHYSICS_TRACE_MASK_VEHICLE (1 << 1)
132 #define PHYSICS_TRACE_MASK_WATER (1 << 2)
133 #define PHYSICS_TRACE_MASK_CLIP (1 << 3)
134 #define PHYSICS_TRACE_MASK_VEHICLE_CLIP (1 << 4)
135 #define PHYSICS_TRACE_MASK_PLAYER (1 << 5)
136 
137 // Navmesh materials
138 #define NAVMESH_MATERIAL_NONE 0
139 #define NAVMESH_MATERIAL_DEFAULT (1 << 0)
140 #define NAVMESH_MATERIAL_WATER (1 << 1)
141 #define NAVMESH_MATERIAL_WALLRUN (1 << 3)
142 #define NAVMESH_MATERIAL_STAIRCASE (1 << 4)
143 #define NAVMESH_MATERIAL_NOVEHICLE (1 << 5)
144 
145 // LUI defines
146 #define LUI_HUDELEM_TEXTSIZE_DEFAULT 25
147 #define LUI_HUDELEM_TEXTSIZE_SMALL 20
148 #define LUI_HUDELEM_TEXTSIZE_MEDIUM 36
149 #define LUI_HUDELEM_TEXTSIZE_LARGE 48
150 
151 #define LUI_HUDELEM_ALIGNMENT_LEFT 1
152 #define LUI_HUDELEM_ALIGNMENT_CENTER 2
153 #define LUI_HUDELEM_ALIGNMENT_RIGHT 3
154 
155 // Team enums
156 #define TEAM_FREE 0
157 #define TEAM_ALLIES 1
158 #define TEAM_AXIS 2
159 
160 // IDENTIFIERS
161 #define INT_MAX 0x7FFFFFFF
162 
163 #define X 0
164 #define Y 1
165 #define Z 2
166 
167 #define PITCH 0
168 #define YAW 1
169 #define ROLL 2
170 
171 #define PI 3.14159
172 
173 #define RGB(__r,__g,__b)(__r/255,__g/255,__b/255)
174 
175 #define RED ( 1, 0, 0 )
176 #define GREEN ( 0, 1, 0 )
177 #define BLUE ( 0, 0, 1 )
178 #define YELLOW ( 1, 1, 0 )
179 #define ORANGE ( 1, .5, 0 )
180 #define CYAN ( 0, 1, 1 )
181 #define PURPLE ( 1, 0, 1 )
182 #define BLACK ( 0, 0, 0 )
183 #define WHITE ( 1, 1, 1 )
184 #define GREY ( 0.75, 0.75, 0.75 )
185 #define GRAY1 ( .1, .1, .1 )
186 #define GRAY2 ( .2, .2, .2 )
187 #define GRAY3 ( .3, .3, .3 )
188 #define GRAY4 ( .4, .4, .4 )
189 #define GRAY5 ( .5, .5, .5 )
190 #define GRAY6 ( .6, .6, .6 )
191 #define GRAY7 ( .7, .7, .7 )
192 #define GRAY8 ( .8, .8, .8 )
193 #define GRAY9 ( .9, .9, .9 )
194 #define SLATE RGB( 112, 128, 144 )
195 #define PINK RGB( 255, 192, 203 )
196 #define OLIVE RGB( 128, 128, 0 )
197 #define BROWN RGB( 139, 69, 19 )
198 
199 // Native UI resolution is 720p
200 #define SCREEN_WIDTH 1280
201 #define SCREEN_HEIGHT 720
202 
203 // Register Systems
204 #define REGISTER_SYSTEM(__sys,__func_init_preload,__reqs) \
205  function autoexec __init__sytem__() { \
206  system::register(__sys,__func_init_preload,undefined,__reqs); \
207  }
208 
209 #define REGISTER_SYSTEM_EX(__sys,__func_init_preload,__func_init_postload,__reqs) \
210  function autoexec __init__sytem__() { \
211  system::register(__sys,__func_init_preload,__func_init_postload,__reqs); \
212  }
213 
214 #define WAITTILL_LOAD if(!isdefined(level.flag) || !IS_TRUE(level.flag["load_main_complete"]))level waittill( "load_main_complete" )
215 
216 // UTILITIES
217 
218 #define TIMEOUT(__t) \
219  if ( isdefined( __t ) ) { \
220  __s = SpawnStruct(); \
221  __s endon( "timeout" ); \
222  __s util::delay_notify( __t, "timeout" ); \
223  }
224 
225 #define __TIME_UPDATE__ \
226  __time_stamp__ = GetTime(); \
227  if ( __time_stamp__ > __time_stamp_prev__ ) { \
228  __time__ = ( __time_stamp__ - __time_stamp_start__ ) / 1000; \
229  __time_frac__ = LerpFloat( 0, 1, Float( __time__ ) / Float( __time_length__ ) ); \
230  __time_left__ = Max( __time_length__ - __time__, 0 ); \
231  __time_stamp_prev__ = __time_stamp__; }
232 
233 #define FOR_TIME(___time_length___,___do_last_step___) \
234  __time_stamp__ = GetTime(); \
235  __time_stamp_prev__ = 0; \
236  __time_stamp_start__ = __time_stamp__; \
237  __time_length__ = ___time_length___; \
238  __do_last_step__ = ___do_last_step___; \
239  while ( true ) { __TIME_UPDATE__
240 
241 #define FOR_TIME_LOOP(__time_step__) \
242  __TIME_UPDATE__ \
243  __time_this_step__ = Min( __time_step__, __time_left__ ); \
244  if ( __time_this_step__ > 0 ) { wait __time_this_step__; __TIME_UPDATE__ }\
245  if ( __time_left__ > 0 ) { continue; } \
246  if ( __do_last_step__ ) { __do_last_step__ = false; continue; } \
247  break; \
248 }
249 
250 #define IS_EQUAL(__a,__b) ( __a === __b )
251 #define IS_TRUE(__a) ( isdefined( __a ) && __a )
252 
253 #define IS_EVEN(_number) ( ( _number % 2 ) == 0 )
254 #define IS_ODD(_number) ( ( _number % 2 ) == 1 )
255 
256 #define FLAT_ORIGIN(__origin) ( __origin[0], __origin[1], 0 )
257 #define FLAT_ANGLES(__angles) ( 0, __angles[1], 0 )
258 
259 #define VEC_SET_X(_v,_x) _v = (_x, _v[1], _v[2])
260 #define VEC_SET_Y(_v,_y) _v = (_v[0], _y, _v[2])
261 #define VEC_SET_Z(_v,_z) _v = (_v[0], _v[1], _z)
262 
263 #define CLIENT_FRAME .016
264 #define SERVER_FRAME .05
265 #define WAIT_SERVER_FRAME {wait(SERVER_FRAME);}
266 #define WAIT_CLIENT_FRAME {wait(CLIENT_FRAME);}
267 
268 #define MPH_TO_INCHES_PER_SEC 17.6
269 
270 #define DEFAULT(__var,__default) if(!isdefined(__var))__var=__default
271 #define DEFAULT2(__var,__default1,__default2) if(!isdefined(__var))__var=(isdefined(__default1)?__default1:__default2)
272 #define VAL(__var,__default) (isdefined(__var)?__var:__default)
273 
274 #define T7_CLEANUP(__msg)load::add_cleanup_msg(__msg)
275 
276 // MATH
277 
278 #define CLAMP_MIN(__var,__min) if (__var < __min) { \
279  __var = __min; \
280  }
281 
282 #define CLAMP_MAX(__var,__max) if (__var > __max) { \
283  __var = __max; \
284  }
285 
286 #define CLAMP(__var,__min,__max) if (__var < __min) { \
287  __var = __min; \
288  } \
289  else if (__var > __max) { \
290  __var = __max; \
291  }
292 
293 #define SQR(__var) ( (__var) * (__var) )
294 
295 // STRINGS
296 
297 #define STR(__var)(isdefined(__var)?""+__var:"")
298 #define STR_DEFAULT(__var,__def)(isdefined(__var)?""+__var:STR(__def))
299 
300 // ARRAYS
301 
302 #define RANDOM(__array) __array[GetArrayKeys(__array)[RandomInt(GetArrayKeys(__array).size)]]
303 #define MAKE_ARRAY(__array) if ( !isdefined( __array ) ) __array = []; else if ( !IsArray( __array ) ) __array = array( __array );
304 #define ARRAY_ADD(__array,__item) MAKE_ARRAY(__array) __array[__array.size]=__item;
305 
306 #define MAX_AI 64 // match code
307 #define MAX_SPAWNED_PER_FRAME 1
308 
309 //********************************************************************************
310 //MOVED FROM CLIENTFLAGS.GSH
311 // These are not client flags they're just constants
312 // TODO - these should be moved into their respective scripts
313 //********************************************************************************
314 
315 // Riotshield
316 #define RIOTSHIELD_STATE_DEPLOYED 1
317 #define RIOTSHIELD_STATE_DESTROYED 2
318 
319 // Trophy System
320 #define TROPHY_SYSTEM_INIT 0
321 #define TROPHY_SYSTEM_ROLLING 1
322 #define TROPHY_SYSTEM_STATIONARY 2
323 #define TROPHY_SYSTEM_STUNNED 3
324 
325 // Bouncing Betty ( Trip mine, Spider mine )
326 #define BOUNCINGBETTY_INIT 0
327 #define BOUNCINGBETTY_DETONATING 1
328 #define BOUNCINGBETTY_DEPLOYING 2
329 
330 // Proxy (Tazer Spike)
331 #define PROXY_PLAYER_NOT_TAZERED 0
332 #define PROXY_PLAYER_TAZERED 1
333 
334 // QR Drone
335 #define QRDRONE_FX_DEFAULT 0
336 #define QRDRONE_FX_BLINK 1
337 #define QRDRONE_FX_FINAL_BLINK 2
338 #define QRDRONE_FX_DEATH 3
339 
340 
341 //********************************************************************************
342 //MOVED FROM SP.GSH
343 //********************************************************************************
344 #define TURRET_TARGET_AI 1
345 #define TURRET_TARGET_PLAYERS 2
346 #define TURRET_TARGET_DRONES 4
347 #define TURRET_TARGET_VEHICLES 8
348 
349 //VEHICLE FUNCTIONS
350 #define IS_PLANE(__e) ( isdefined(__e.vehicleclass) && (__e.vehicleclass == "plane") )
351 #define IS_HELICOPTER(__e) ( isdefined(__e.vehicleclass) && (__e.vehicleclass == "helicopter" ) )
352 #define IS_BOAT(__e) ( isdefined(__e.vehicleclass) && (__e.vehicleclass == "boat" ) )
353 #define IS_TANK(__e) ( isdefined(__e.vehicleclass) && (__e.vehicleclass == "tank" ) )
354 #define IS_ARTILLERY(__e) ( isdefined(__e.vehicleclass) && ( __e.vehicleclass == "artillery" ) )
355 #define IS_MOTORCYCLE(__e) ( isdefined(__e.vehicleclass) && (__e.vehicleclass == "motorcycle" ) )
356 #define IS_4WHEEL(__e) ( isdefined(__e.vehicleclass) && (__e.vehicleclass == "4 wheel") )
357 #define VEHICLE_DELETE(__e) __e.delete_on_death = true; \
358  __e notify( "death" ); \
359  if( !IsAlive( __e ) ) \
360  __e Delete();
361 //VEHICLE TYPE FUNCTIONS - we should maybe break this out into a vehicle.gsh
362 #define IS_BUFFEL(__e) (__e.vehicletype == "apc_buffel" || __e.vehicletype == "apc_buffel_gun_turret" || __e.vehicletype == "apc_buffel_gun_turret_nophysics")
363 #define IS_ELAND(__e) (__e.vehicletype == "tank_eland")
364 #define IS_QUADROTOR(__e) (__e.vehicletype == "heli_quadrotor")
365 #define IS_MIG(__e) (__e.vehicleclass == "plane_mig17" || __e.vehicleclass == "plane_mig21")
366 
367 //
368 #define GROUNDPOS(__e,_origin) (bullettrace(_origin,(_origin + ( 0, 0, -100000 ) ), 0, __e )[ "position" ])
369 
370 #define BINK_IS_LOOPING true
371 #define BINK_IN_MEMORY true
372 #define BINK_START_PAUSED true
373 #define BINK_SYNC_AUDIO true
374 #define BINK_NORMAL_SIZE 0
375 #define BINK_DOUBLE_SIZE 1
376 #define BINK_FULLSCREEN 2
377 
378 #define N_GAMESKILL_EASY 0
379 #define N_GAMESKILL_NORMAL 1
380 #define N_GAMESKILL_HARD 2
381 #define N_GAMESKILL_VETERAN 3
382 #define N_GAMESKILL_REALISTIC 4
383 
384 // script defines for fog bank bit mask
385 
386 #define FOG_BANK_1 1
387 #define FOG_BANK_2 2
388 #define FOG_BANK_3 4
389 #define FOG_BANK_4 8
390 
391 //Analog stick layout stat values
392 #define THUMBSTICK_DEFAULT 0
393 #define THUMBSTICK_SOUTHPAW 1
394 #define THUMBSTICK_LEGACY 2
395 #define THUMBSTICK_LEGACYSOUTHPAW 3
396 
397 #define BUTTON_USE 0
398 #define BUTTON_STANCE 1
399 #define BUTTON_ADS 2
400 #define BUTTON_ATTACK 3
401 #define BUTTON_UP 4 // dev only
402 #define BUTTON_DOWN 5 // dev only
403 #define BUTTON_RIGHT 6
404 #define BUTTON_LEFT 7
405 
406 //ID FLAGS
407 //code-defined in g_local.h:
408 //also matches scripts\zm\_callbacks.gsc
409 
410 #define IDFLAGS_NOFLAG 0 // damage
411 #define IDFLAGS_RADIUS 1 // damage was indirect
412 #define IDFLAGS_NO_ARMOR 2 // armor does not protect from this damage
413 #define IDFLAGS_NO_KNOCKBACK 4 // do not affect velocity, just view angles
414 #define IDFLAGS_PENETRATION 8 // damage occurred after one or more penetrations
415 #define IDFLAGS_DESTRUCTIBLE_ENTITY 16 // force the destructible system to do damage to the entity
416 #define IDFLAGS_SHIELD_EXPLOSIVE_IMPACT 32 // missile impacted on the front of the victim's shield
417 #define IDFLAGS_SHIELD_EXPLOSIVE_IMPACT_HUGE 64 // ...and was from a projectile with "Big Explosion" checked on.
418 #define IDFLAGS_SHIELD_EXPLOSIVE_SPLASH 128 // explosive splash, somewhat deflected by the victim's shield
419 #define IDFLAGS_HURT_TRIGGER_ALLOW_LASTSTAND 256 // The trigger that applied the damage will ignore laststand
420 #define IDFLAGS_DISABLE_RAGDOLL_SKIP 512 // Don't go to ragdoll if got damage while playing death animation
421 #define IDFLAGS_POWER_ARMOR 1024 // Hit player power armor
422 
423 // script-defined:
424 #define IDFLAGS_NO_TEAM_PROTECTION 1024
425 #define IDFLAGS_NO_PROTECTION 2048
426 #define IDFLAGS_PASSTHRU 4096
427 
428 // TODO: can probably be remove once the real awareness system is up
429 #define STATE_UNAWARE "unaware"
430 #define STATE_SUSPICIOUS "low_alert"
431 #define STATE_ALERTED "high_alert"
432 #define STATE_COMBAT "combat"
433 
434 //use this macro to smooth out periodic updates that don't need to occur at a tightly fixed interval. Over time monitor loops will tend to spread out, removing large performance spikes
435 #define RANDOM_TIME_IN_RANGE(__time,__delta) randomfloatrange(__time-__delta,__time+__delta)
436 #define WAIT_ABOUT(__time) wait RANDOM_TIME_IN_RANGE(__time,__time/3)
437 
438 // IF_DEFINED MACROS
439 #define DO_IF_DEFINED(__func) if ( isdefined( __func ) ) { [[ __func ]](); }
440 #define THREAD_IF_DEFINED(__func) if ( isdefined( __func ) ) { self thread [[ __func ]](); }
441 #define DELETE_IF_DEFINED(__ent) if ( isdefined( __ent ) ) { __ent Delete(); }
442 #define SET_IF_DEFINED(__target,__src) if ( isdefined( __src) ) { __target = __src; }
443 
444 #define DELETE(__obj) \
445  __obj notify( "death" ); \
446  __obj = undefined
447 
448 #define SCR_BUNDLE(__name) level.scriptbundles[ SCRIPTBUNDLE ][ __name ]
449 
450 #define STATS_TABLE_CP "gamedata/stats/cp/cp_statstable.csv"
451 #define STATS_TABLE_MP "gamedata/stats/mp/mp_statstable.csv"
452 #define STATS_TABLE_ZM "gamedata/stats/zm/zm_statstable.csv"
453 #define LOOT_CONFIG_TABLE "gamedata/loot/loot_config.csv"
454 
455 //********************************************************************************
456 //MOVED FROM _MENU.GSC
457 //********************************************************************************
458 #define MENU_TEAM "ChangeTeam"
459 #define MENU_START_MENU "StartMenu_Main"
460 #define MENU_CLASS "class"
461 #define MENU_CHANGE_CLASS "ChooseClass_InGame"
462 #define MENU_EDIT_CHOOSE_CLASS "chooseClass"
463 #define MENU_CONTROLS "ingame_controls"
464 #define MENU_OPTIONS "ingame_options"
465 #define MENU_LEAVEGAME "popup_leavegame"
466 #define MENU_SPECTATE "spectate"
467 #define MENU_RESTART_GAME "restartgamepopup"
468 #define MENU_SCOREBOARD "scoreboard"
469 #define MENU_INIT_TEAM_ALLIES "initteam_marines"
470 #define MENU_INIT_TEAM_AXIS "initteam_opfor"
471 #define MENU_WAGER_SIDE_BET "sidebet"
472 #define MENU_WAGER_SIDE_BET_PLAYER "sidebet_player"
473 #define MENU_CHANGE_CLASS_WAGER "changeclass_wager"
474 #define MENU_CHANGE_CLASS_CUSTOM "changeclass_custom"
475 #define MENU_CHANGE_CLASS_BAREBONES "changeclass_barebones"
476 #define MENU_FREERUN_RESTART "freerun_endgame_popup"
477 
478 //********************************************************************************
479 // FILTER_SHARED
480 //********************************************************************************
481 #define FILTER_INDEX_OOB 0
482 #define FILTER_INDEX_WATER_MIST 0
483 #define FILTER_INDEX_WATER_SHEET 1
484 #define FILTER_INDEX_EMP 2
485 #define FILTER_INDEX_GADGET 3
486 #define FILTER_INDEX_VEHICLE 3
487 #define FILTER_INDEX_PLAYER_SHOCK 4
488 #define FILTER_INDEX_BLOOD 2
489 #define FILTER_INDEX_ENVIRONMENT 5
490 #define FILTER_INDEX_BONUSZM 7 // Used by campaign zombies. DO NOT CHANGE
491 
492 #define FILTER_INDEX_VISION_PULSE FILTER_INDEX_GADGET
493 #define FILTER_INDEX_SPEED_BURST FILTER_INDEX_GADGET
494 #define FILTER_INDEX_OVERDRIVE FILTER_INDEX_GADGET
495 
496 #define FILTER_INDEX_DIRT FILTER_INDEX_ENVIRONMENT
497 #define FILTER_INDEX_DROWN FILTER_INDEX_ENVIRONMENT
498 
499 #define SPEED_BURST_CONSTANT_INDEX_BLUR_AMOUNT 0
500 #define SPEED_BURST_CONSTANT_INDEX_GLOW_PULSE 1
501 #define SPEED_BURST_CONSTANT_INDEX_IRIS_ZOOM 2
502 #define SPEED_BURST_CONSTANT_INDEX_IRIS_BASE_GLOW 3
503 #define SPEED_BURST_CONSTANT_INDEX_DESATURATION 4
504 #define SPEED_BURST_CONSTANT_INDEX_BLUR_ORIGIN_X 5
505 #define SPEED_BURST_CONSTANT_INDEX_BLUR_ORIGIN_Y 6
506 
507 // flags for auto-deleting entities with util::auto_delete
508 #define DELETE_SAFE 1 // only delete if ent is behind player AND sight blocked
509 #define DELETE_BEHIND 2 // delete if ent is behind player
510 #define DELETE_BLOCKED 4 // delete if ent is sight blocked
511 #define DELETE_BOTH 8 // delete if ent is behind player OR sight blocked
512 #define DELETE_AGGRESSIVE 16 // same as DELETE_BOTH but quicker
513 
514 #define COS_45 0.7071
515 
516 #define STREAMER_HINT_TIMEOUT 15
517 
518 // "toggle_lights" client fields
519 #define CF_TOGGLE_LIGHTS_ON 0
520 #define CF_TOGGLE_LIGHTS_OFF 1
521 #define CF_TOGGLE_LIGHTS_FORCE_ALLIES 2
522 #define CF_TOGGLE_LIGHTS_FORCE_AXIS 3
523 
524 #define SAFEHOUSE_CAIRO 1
525 #define SAFEHOUSE_MOBILE 2
526 #define SAFEHOUSE_SINGAPORE 3
527 
528 //********************************************************************************
529 // START - SUMEET - DO NOT MODIFY - USED FOR CAMPAIGN ZOMBIES MODE
530 //********************************************************************************
531 
532 #define IS_BONUSZM ( SessionModeIsCampaignZombiesGame() )
533 #define NOT_FOR_BONUSZM if( IS_BONUSZM ) return;
534 #define ONLY_FOR_BONUSZM if( !IS_BONUSZM ) return;
535 
536 #define BONUSZM_WAIT_FOR_OBJECTIVE_COMPLETION if( IsDefined(level.BZMWaitForObjectiveCompletionCallback) ) [[level.BZMWaitForObjectiveCompletionCallback]]();
537 #define BONUSZM_START_OBJECTIVE(__skiptoname,__starting) if( IsDefined(level.BZMStartObjectiveCallback) ) [[level.BZMStartObjectiveCallback]](__skiptoname,__starting);
538 #define BONUSZM_WAITTILL_AI_CLEARED if( IsDefined(level.BZMUtil_WaitForAllZombiesToDie) ) [[level.BZMUtil_WaitForAllZombiesToDie]]();
539 #define BONUSZM_FORCE_AI_CLEANUP if( IsDefined(level.BZM_ForceAICleanup) ) [[level.BZM_ForceAICleanup]]();;
540 
541 #define BONUSZM_CYBERCOM_ON_CALLBACK(__player) if( IsDefined( level.BZMOnCyberComOnCallback ) ) level thread [[level.BZMOnCyberComOnCallback]](__player);
542 
543 #define BONUSZM_ENDON_SCENE_SEQUENCE_ENDED level endon("BZM_SceneSeqEnded");
544 #define BONUSZM_SCENE_SEQUENCE_ENDED_CALLBACK(__scene) if( IsDefined( level.BZM_SceneSeqEndedCallback ) ) level thread [[level.BZM_SceneSeqEndedCallback]](__scene);
545 
546 #define BONUSZM_DATA_OVERRIDE_LOCOMOTION(__walkPercent,__runPercent,__sprintPercent) if(IsDefined(level.BZM_OverrideLocomotion)) level thread [[level.BZM_OverrideLocomotion]](__walkPercent,__runPercent,__sprintPercent);
547 #define BONUSZM_DATA_OVERRIDE_HEALTH(__levelOneHealth,__levelTwoHealth,__levelThreeHealth) if(IsDefined(level.BZM_OverrideHealth)) level thread [[level.BZM_OverrideHealth]](__levelOneHealth,__levelTwoHealth,__levelThreeHealth);
548 #define BONUSZM_DATA_OVERRIDE_SUICIDE_CHANCE(__chance) if(IsDefined(level.BZM_OverrideSuicidalChance)) level thread [[level.BZM_OverrideSuicidalChance]](__chance);
549 
550 #define BONUSZM_CHANGE_LOADOUT if(IsDefined(level.BZMLoadOutChangeCallback)) level thread [[level.BZMLoadOutChangeCallback]]();
551 
552 #define BONUSZM_WAIT_FOR_STREAMER_TIMEOUT(__entity,__timeout) if(IsDefined(level.BZM_WaitForStreamerOrTimeOut)) [[level.BZM_WaitForStreamerOrTimeOut]](__entity,__timeout);
553 
554 #define BONUSZM_HIDE_MAGICBOXES if(IsDefined(level.BZM_HideAllMagicBoxesCallback)) level thread [[level.BZM_HideAllMagicBoxesCallback]]();
555 #define BONUSZM_CLEANUP_MAGICBOX(__entity) if(IsDefined(level.BZM_CleanupMagicBoxOnDeletionCallback)) [[level.BZM_CleanupMagicBoxOnDeletionCallback]](__entity);
556 // SGEN
557 #define BONUSZM_SGEN_DLG1 if( IsDefined(level.BZM_SGENDialogue1Callback) ) level thread [[level.BZM_SGENDialogue1Callback]]();
558 #define BONUSZM_SGEN_DLG1_1 if( IsDefined(level.BZM_SGENDialogue1_1Callback) ) level thread [[level.BZM_SGENDialogue1_1Callback]]();
559 #define BONUSZM_SGEN_DLG1_2 if( IsDefined(level.BZM_SGENDialogue1_2Callback) ) level thread [[level.BZM_SGENDialogue1_2Callback]]();
560 
561 #define BONUSZM_SGEN_DLG1_3 if( IsDefined(level.BZM_SGENDialogue1_3Callback) ) level thread [[level.BZM_SGENDialogue1_3Callback]]();
562 #define BONUSZM_SGEN_DLG1_3_WAITTILL_DONE if( IsDefined(level.BZM_SGENDialogue1_3Callback_Waittill_Done) ) [[level.BZM_SGENDialogue1_3Callback_Waittill_Done]]();
563 
564 
565 #define BONUSZM_SGEN_DLG2 if( IsDefined(level.BZM_SGENDialogue2Callback) ) level thread [[level.BZM_SGENDialogue2Callback]]();
566 #define BONUSZM_SGEN_DLG2_1 if( IsDefined(level.BZM_SGENDialogue2_1Callback) ) level thread [[level.BZM_SGENDialogue2_1Callback]]();
567 #define BONUSZM_SGEN_DLG3 if( IsDefined(level.BZM_SGENDialogue3Callback) ) level thread [[level.BZM_SGENDialogue3Callback]]();
568 #define BONUSZM_SGEN_DLG4 if( IsDefined(level.BZM_SGENDialogue4Callback) ) level thread [[level.BZM_SGENDialogue4Callback]]();
569 #define BONUSZM_SGEN_DLG4_1 if( IsDefined(level.BZM_SGENDialogue4_1Callback) ) level thread [[level.BZM_SGENDialogue4_1Callback]]();
570 
571 #define BONUSZM_SGEN_DLG5 if( IsDefined(level.BZM_SGENDialogue5Callback) ) level thread [[level.BZM_SGENDialogue5Callback]]();
572 #define BONUSZM_SGEN_DLG6 if( IsDefined(level.BZM_SGENDialogue6Callback) ) level thread [[level.BZM_SGENDialogue6Callback]]();
573 #define BONUSZM_SGEN_DLG7 if( IsDefined(level.BZM_SGENDialogue7Callback) ) level thread [[level.BZM_SGENDialogue7Callback]]();
574 #define BONUSZM_SGEN_DLG8 if( IsDefined(level.BZM_SGENDialogue8Callback) ) level thread [[level.BZM_SGENDialogue8Callback]]();
575 #define BONUSZM_SGEN_DLG8_1 if( IsDefined(level.BZM_SGENDialogue8_1Callback) ) level thread [[level.BZM_SGENDialogue8_1Callback]]();
576 #define BONUSZM_SGEN_DLG8_2 if( IsDefined(level.BZM_SGENDialogue8_2Callback) ) level thread [[level.BZM_SGENDialogue8_2Callback]]();
577 #define BONUSZM_SGEN_DLG9 if( IsDefined(level.BZM_SGENDialogue9Callback) ) level thread [[level.BZM_SGENDialogue9Callback]]();
578 
579 
580 
581 // BIODOMES
582 #define BONUSZM_BIO_DLG1 if( IsDefined(level.BZM_BIODialogue1Callback) ) level thread [[level.BZM_BIODialogue1Callback]]();
583 #define BONUSZM_BIO_DLG2 if( IsDefined(level.BZM_BIODialogue2Callback) ) level thread [[level.BZM_BIODialogue2Callback]]();
584 #define BONUSZM_BIO_DLG2_2 if( IsDefined(level.BZM_BIODialogue2_2Callback) ) level thread [[level.BZM_BIODialogue2_2Callback]]();
585 #define BONUSZM_BIO_DLG2_3 if( IsDefined(level.BZM_BIODialogue2_3Callback) ) level thread [[level.BZM_BIODialogue2_3Callback]]();
586 #define BONUSZM_BIO_DLG2_4 if( IsDefined(level.BZM_BIODialogue2_4Callback) ) level thread [[level.BZM_BIODialogue2_4Callback]]();
587 
588 #define BONUSZM_BIO_DLG3 if( IsDefined(level.BZM_BIODialogue3Callback) ) level thread [[level.BZM_BIODialogue3Callback]]();
589 #define BONUSZM_BIO_DLG4 if( IsDefined(level.BZM_BIODialogue4Callback) ) level thread [[level.BZM_BIODialogue4Callback]]();
590 #define BONUSZM_BIO_DLG5 if( IsDefined(level.BZM_BIODialogue5Callback) ) level thread [[level.BZM_BIODialogue5Callback]]();
591 #define BONUSZM_BIO_DLG5_1 if( IsDefined(level.BZM_BIODialogue5_1Callback) ) level thread [[level.BZM_BIODialogue5_1Callback]]();
592 
593 #define BONUSZM_BIO_DLG5_2 if( IsDefined(level.BZM_BIODialogue5_2Callback) ) level thread [[level.BZM_BIODialogue5_2Callback]]();
594 #define BONUSZM_BIO_DLG5_3 if( IsDefined(level.BZM_BIODialogue5_3Callback) ) level thread [[level.BZM_BIODialogue5_3Callback]]();
595 #define BONUSZM_BIO_DLG5_4 if( IsDefined(level.BZM_BIODialogue5_4Callback) ) level thread [[level.BZM_BIODialogue5_4Callback]]();
596 
597 #define BONUSZM_BIO_DLG6 if( IsDefined(level.BZM_BIODialogue6Callback) ) level thread [[level.BZM_BIODialogue6Callback]]();
598 
599 // PROLOGUE
600 #define BONUSZM_PROLOGUE_DLG1 if( IsDefined(level.BZM_PROLOGUEDialogue1Callback) ) level thread [[level.BZM_PROLOGUEDialogue1Callback]]();
601 #define BONUSZM_PROLOGUE_DLG2 if( IsDefined(level.BZM_PROLOGUEDialogue2Callback) ) level thread [[level.BZM_PROLOGUEDialogue2Callback]]();
602 #define BONUSZM_PROLOGUE_DLG2_1 if( IsDefined(level.BZM_PROLOGUEDialogue2_1Callback) ) level thread [[level.BZM_PROLOGUEDialogue2_1Callback]]();
603 
604 #define BONUSZM_PROLOGUE_DLG3 if( IsDefined(level.BZM_PROLOGUEDialogue3Callback) ) level thread [[level.BZM_PROLOGUEDialogue3Callback]]();
605 #define BONUSZM_PROLOGUE_DLG4 if( IsDefined(level.BZM_PROLOGUEDialogue4Callback) ) level thread [[level.BZM_PROLOGUEDialogue4Callback]]();
606 #define BONUSZM_PROLOGUE_DLG5 if( IsDefined(level.BZM_PROLOGUEDialogue5Callback) ) level thread [[level.BZM_PROLOGUEDialogue5Callback]]();
607 #define BONUSZM_PROLOGUE_DLG5_1 if( IsDefined(level.BZM_PROLOGUEDialogue5_1Callback) ) level thread [[level.BZM_PROLOGUEDialogue5_1Callback]]();
608 #define BONUSZM_PROLOGUE_DLG5_2 if( IsDefined(level.BZM_PROLOGUEDialogue5_2Callback) ) level thread [[level.BZM_PROLOGUEDialogue5_2Callback]]();
609 #define BONUSZM_PROLOGUE_DLG5_3 if( IsDefined(level.BZM_PROLOGUEDialogue5_3Callback) ) level thread [[level.BZM_PROLOGUEDialogue5_3Callback]]();
610 
611 #define BONUSZM_PROLOGUE_DLG6 if( IsDefined(level.BZM_PROLOGUEDialogue6Callback) ) level thread [[level.BZM_PROLOGUEDialogue6Callback]]();
612 #define BONUSZM_PROLOGUE_DLG6_1 if( IsDefined(level.BZM_PROLOGUEDialogue6_1Callback) ) level thread [[level.BZM_PROLOGUEDialogue6_1Callback]]();
613 #define BONUSZM_PROLOGUE_DLG6_2 if( IsDefined(level.BZM_PROLOGUEDialogue6_2Callback) ) level thread [[level.BZM_PROLOGUEDialogue6_2Callback]]();
614 
615 #define BONUSZM_PROLOGUE_DLG7 if( IsDefined(level.BZM_PROLOGUEDialogue7Callback) ) level thread [[level.BZM_PROLOGUEDialogue7Callback]]();
616 #define BONUSZM_PROLOGUE_DLG8 if( IsDefined(level.BZM_PROLOGUEDialogue8Callback) ) level thread [[level.BZM_PROLOGUEDialogue8Callback]]();
617 
618 // NEWWORLD
619 #define BONUSZM_NEWWORLD_DLG1 if( IsDefined(level.BZM_NEWWORLDDialogue1Callback) ) level thread [[level.BZM_NEWWORLDDialogue1Callback]]();
620 #define BONUSZM_NEWWORLD_DLG2 if( IsDefined(level.BZM_NEWWORLDDialogue2Callback) ) level thread [[level.BZM_NEWWORLDDialogue2Callback]]();
621 #define BONUSZM_NEWWORLD_DLG2_2 if( IsDefined(level.BZM_NEWWORLDDialogue2_2Callback) ) level thread [[level.BZM_NEWWORLDDialogue2_2Callback]]();
622 #define BONUSZM_NEWWORLD_DLG2_3 if( IsDefined(level.BZM_NEWWORLDDialogue2_3Callback) ) level thread [[level.BZM_NEWWORLDDialogue2_3Callback]]();
623 #define BONUSZM_NEWWORLD_DLG2_4 if( IsDefined(level.BZM_NEWWORLDDialogue2_4Callback) ) level thread [[level.BZM_NEWWORLDDialogue2_4Callback]]();
624 
625 #define BONUSZM_NEWWORLD_DLG3 if( IsDefined(level.BZM_NEWWORLDDialogue3Callback) ) level thread [[level.BZM_NEWWORLDDialogue3Callback]]();
626 #define BONUSZM_NEWWORLD_DLG4 if( IsDefined(level.BZM_NEWWORLDDialogue4Callback) ) level thread [[level.BZM_NEWWORLDDialogue4Callback]]();
627 #define BONUSZM_NEWWORLD_DLG5 if( IsDefined(level.BZM_NEWWORLDDialogue5Callback) ) level thread [[level.BZM_NEWWORLDDialogue5Callback]]();
628 #define BONUSZM_NEWWORLD_DLG6 if( IsDefined(level.BZM_NEWWORLDDialogue6Callback) ) level thread [[level.BZM_NEWWORLDDialogue6Callback]]();
629 #define BONUSZM_NEWWORLD_DLG7 if( IsDefined(level.BZM_NEWWORLDDialogue7Callback) ) level thread [[level.BZM_NEWWORLDDialogue7Callback]]();
630 #define BONUSZM_NEWWORLD_DLG8 if( IsDefined(level.BZM_NEWWORLDDialogue8Callback) ) level thread [[level.BZM_NEWWORLDDialogue8Callback]]();
631 #define BONUSZM_NEWWORLD_DLG9 if( IsDefined(level.BZM_NEWWORLDDialogue9Callback) ) level thread [[level.BZM_NEWWORLDDialogue9Callback]]();
632 #define BONUSZM_NEWWORLD_DLG10 if( IsDefined(level.BZM_NEWWORLDDialogue10Callback) ) level thread [[level.BZM_NEWWORLDDialogue10Callback]]();
633 #define BONUSZM_NEWWORLD_DLG11 if( IsDefined(level.BZM_NEWWORLDDialogue11Callback) ) level thread [[level.BZM_NEWWORLDDialogue11Callback]]();
634 #define BONUSZM_NEWWORLD_DLG12 if( IsDefined(level.BZM_NEWWORLDDialogue12Callback) ) level thread [[level.BZM_NEWWORLDDialogue12Callback]]();
635 
636 // LOTUS
637 #define BONUSZM_LOTUS_DLG1 if( IsDefined(level.BZM_LOTUSDialogue1Callback) ) level thread [[level.BZM_LOTUSDialogue1Callback]]();
638 #define BONUSZM_LOTUS_DLG2 if( IsDefined(level.BZM_LOTUSDialogue2Callback) ) level thread [[level.BZM_LOTUSDialogue2Callback]]();
639 #define BONUSZM_LOTUS_DLG2_1 if( IsDefined(level.BZM_LOTUSDialogue2_1Callback) ) level thread [[level.BZM_LOTUSDialogue2_1Callback]]();
640 #define BONUSZM_LOTUS_DLG2_2 if( IsDefined(level.BZM_LOTUSDialogue2_2Callback) ) level thread [[level.BZM_LOTUSDialogue2_2Callback]]();
641 #define BONUSZM_LOTUS_DLG2_3 if( IsDefined(level.BZM_LOTUSDialogue2_3Callback) ) level thread [[level.BZM_LOTUSDialogue2_3Callback]]();
642 #define BONUSZM_LOTUS_DLG2_4 if( IsDefined(level.BZM_LOTUSDialogue2_4Callback) ) level thread [[level.BZM_LOTUSDialogue2_4Callback]]();
643 
644 #define BONUSZM_LOTUS_DLG3 if( IsDefined(level.BZM_LOTUSDialogue3Callback) ) level thread [[level.BZM_LOTUSDialogue3Callback]]();
645 #define BONUSZM_LOTUS_DLG3_2 if( IsDefined(level.BZM_LOTUSDialogue3_2Callback) ) level thread [[level.BZM_LOTUSDialogue3_2Callback]]();
646 
647 #define BONUSZM_LOTUS_DLG4 if( IsDefined(level.BZM_LOTUSDialogue4Callback) ) level thread [[level.BZM_LOTUSDialogue4Callback]]();
648 #define BONUSZM_LOTUS_DLG4_1 if( IsDefined(level.BZM_LOTUSDialogue4_1Callback) ) level thread [[level.BZM_LOTUSDialogue4_1Callback]]();
649 #define BONUSZM_LOTUS_DLG4_2 if( IsDefined(level.BZM_LOTUSDialogue4_2Callback) ) level thread [[level.BZM_LOTUSDialogue4_2Callback]]();
650 
651 #define BONUSZM_LOTUS_DLG6 if( IsDefined(level.BZM_LOTUSDialogue6Callback) ) level thread [[level.BZM_LOTUSDialogue6Callback]]();
652 #define BONUSZM_LOTUS_DLG7 if( IsDefined(level.BZM_LOTUSDialogue7Callback) ) level thread [[level.BZM_LOTUSDialogue7Callback]]();
653 #define BONUSZM_LOTUS_DLG7_1 if( IsDefined(level.BZM_LOTUSDialogue7_1Callback) ) level thread [[level.BZM_LOTUSDialogue7_1Callback]]();
654 
655 #define BONUSZM_LOTUS_DLG8 if( IsDefined(level.BZM_LOTUSDialogue8Callback) ) level thread [[level.BZM_LOTUSDialogue8Callback]]();
656 #define BONUSZM_LOTUS_DLG9 if( IsDefined(level.BZM_LOTUSDialogue9Callback) ) level thread [[level.BZM_LOTUSDialogue9Callback]]();
657 #define BONUSZM_LOTUS_DLG10 if( IsDefined(level.BZM_LOTUSDialogue10Callback) ) level thread [[level.BZM_LOTUSDialogue10Callback]]();
658 
659 #define BONUSZM_LOTUS_DLG11 if( IsDefined(level.BZM_LOTUSDialogue11Callback) ) level thread [[level.BZM_LOTUSDialogue11Callback]]();
660 #define BONUSZM_LOTUS_DLG12 if( IsDefined(level.BZM_LOTUSDialogue12Callback) ) level thread [[level.BZM_LOTUSDialogue12Callback]]();
661 #define BONUSZM_LOTUS_DLG13 if( IsDefined(level.BZM_LOTUSDialogue13Callback) ) level thread [[level.BZM_LOTUSDialogue13Callback]]();
662 #define BONUSZM_LOTUS_DLG14 if( IsDefined(level.BZM_LOTUSDialogue14Callback) ) level thread [[level.BZM_LOTUSDialogue14Callback]]();
663 
664 // RAMSES
665 #define BONUSZM_RAMSES_DLG1 if( IsDefined(level.BZM_RAMSESDialogue1Callback) ) level thread [[level.BZM_RAMSESDialogue1Callback]]();
666 #define BONUSZM_RAMSES_DLG2 if( IsDefined(level.BZM_RAMSESDialogue2Callback) ) level thread [[level.BZM_RAMSESDialogue2Callback]]();
667 #define BONUSZM_RAMSES_DLG3 if( IsDefined(level.BZM_RAMSESDialogue3Callback) ) level thread [[level.BZM_RAMSESDialogue3Callback]]();
668 #define BONUSZM_RAMSES_DLG3_1 if( IsDefined(level.BZM_RAMSESDialogue3_1Callback) ) level thread [[level.BZM_RAMSESDialogue3_1Callback]]();
669 #define BONUSZM_RAMSES_DLG3_2 if( IsDefined(level.BZM_RAMSESDialogue3_2Callback) ) level thread [[level.BZM_RAMSESDialogue3_2Callback]]();
670 
671 #define BONUSZM_RAMSES_DLG5 if( IsDefined(level.BZM_RAMSESDialogue5Callback) ) level thread [[level.BZM_RAMSESDialogue5Callback]]();
672 #define BONUSZM_RAMSES_DLG5_1 if( IsDefined(level.BZM_RAMSESDialogue5_1Callback) ) level thread [[level.BZM_RAMSESDialogue5_1Callback]]();
673 
674 #define BONUSZM_RAMSES_DLG6 if( IsDefined(level.BZM_RAMSESDialogue6Callback) ) level thread [[level.BZM_RAMSESDialogue6Callback]]();
675 #define BONUSZM_RAMSES_DLG7 if( IsDefined(level.BZM_RAMSESDialogue7Callback) ) level thread [[level.BZM_RAMSESDialogue7Callback]]();
676 #define BONUSZM_RAMSES_DLG7_1 if( IsDefined(level.BZM_RAMSESDialogue7_1Callback) ) level thread [[level.BZM_RAMSESDialogue7_1Callback]]();
677 
678 #define BONUSZM_RAMSES_DLG8 if( IsDefined(level.BZM_RAMSESDialogue8Callback) ) level thread [[level.BZM_RAMSESDialogue8Callback]]();
679 
680 // INFECTION
681 #define BONUSZM_INFECTION_DLG1 if( IsDefined(level.BZM_INFECTIONDialogue1Callback) ) level thread [[level.BZM_INFECTIONDialogue1Callback]]();
682 #define BONUSZM_INFECTION_DLG2 if( IsDefined(level.BZM_INFECTIONDialogue2Callback) ) level thread [[level.BZM_INFECTIONDialogue2Callback]]();
683 #define BONUSZM_INFECTION_DLG3 if( IsDefined(level.BZM_INFECTIONDialogue3Callback) ) level thread [[level.BZM_INFECTIONDialogue3Callback]]();
684 #define BONUSZM_INFECTION_DLG3_1 if( IsDefined(level.BZM_INFECTIONDialogue3_1Callback) ) level thread [[level.BZM_INFECTIONDialogue3_1Callback]]();
685 
686 #define BONUSZM_INFECTION_DLG4 if( IsDefined(level.BZM_INFECTIONDialogue4Callback) ) level thread [[level.BZM_INFECTIONDialogue4Callback]]();
687 #define BONUSZM_INFECTION_DLG5 if( IsDefined(level.BZM_INFECTIONDialogue5Callback) ) level thread [[level.BZM_INFECTIONDialogue5Callback]]();
688 #define BONUSZM_INFECTION_DLG6 if( IsDefined(level.BZM_INFECTIONDialogue6Callback) ) level thread [[level.BZM_INFECTIONDialogue6Callback]]();
689 #define BONUSZM_INFECTION_DLG7 if( IsDefined(level.BZM_INFECTIONDialogue7Callback) ) level thread [[level.BZM_INFECTIONDialogue7Callback]]();
690 #define BONUSZM_INFECTION_DLG8 if( IsDefined(level.BZM_INFECTIONDialogue8Callback) ) level thread [[level.BZM_INFECTIONDialogue8Callback]]();
691 #define BONUSZM_INFECTION_DLG8_1 if( IsDefined(level.BZM_INFECTIONDialogue8_1Callback) ) level thread [[level.BZM_INFECTIONDialogue8_1Callback]]();
692 
693 #define BONUSZM_INFECTION_DLG9 if( IsDefined(level.BZM_INFECTIONDialogue9Callback) ) level thread [[level.BZM_INFECTIONDialogue9Callback]]();
694 #define BONUSZM_INFECTION_DLG10 if( IsDefined(level.BZM_INFECTIONDialogue10Callback) ) level thread [[level.BZM_INFECTIONDialogue10Callback]]();
695 #define BONUSZM_INFECTION_DLG11 if( IsDefined(level.BZM_INFECTIONDialogue11Callback) ) level thread [[level.BZM_INFECTIONDialogue11Callback]]();
696 #define BONUSZM_INFECTION_DLG12 if( IsDefined(level.BZM_INFECTIONDialogue12Callback) ) level thread [[level.BZM_INFECTIONDialogue12Callback]]();
697 
698 #define BONUSZM_INFECTION_DLG13 if( IsDefined(level.BZM_INFECTIONDialogue13Callback) ) level thread [[level.BZM_INFECTIONDialogue13Callback]]();
699 #define BONUSZM_INFECTION_DLG14 if( IsDefined(level.BZM_INFECTIONDialogue14Callback) ) level thread [[level.BZM_INFECTIONDialogue14Callback]]();
700 #define BONUSZM_INFECTION_DLG15 if( IsDefined(level.BZM_INFECTIONDialogue15Callback) ) level thread [[level.BZM_INFECTIONDialogue15Callback]]();
701 #define BONUSZM_INFECTION_DLG16 if( IsDefined(level.BZM_INFECTIONDialogue16Callback) ) level thread [[level.BZM_INFECTIONDialogue16Callback]]();
702 #define BONUSZM_INFECTION_DLG17 if( IsDefined(level.BZM_INFECTIONDialogue17Callback) ) level thread [[level.BZM_INFECTIONDialogue17Callback]]();
703 #define BONUSZM_INFECTION_DLG18 if( IsDefined(level.BZM_INFECTIONDialogue18Callback) ) level thread [[level.BZM_INFECTIONDialogue18Callback]]();
704 #define BONUSZM_INFECTION_DLG19 if( IsDefined(level.BZM_INFECTIONDialogue19Callback) ) level thread [[level.BZM_INFECTIONDialogue19Callback]]();
705 #define BONUSZM_INFECTION_DLG20 if( IsDefined(level.BZM_INFECTIONDialogue20Callback) ) level thread [[level.BZM_INFECTIONDialogue20Callback]]();
706 #define BONUSZM_INFECTION_DLG21 if( IsDefined(level.BZM_INFECTIONDialogue21Callback) ) level thread [[level.BZM_INFECTIONDialogue21Callback]]();
707 #define BONUSZM_INFECTION_DLG22 if( IsDefined(level.BZM_INFECTIONDialogue22Callback) ) level thread [[level.BZM_INFECTIONDialogue22Callback]]();
708 #define BONUSZM_INFECTION_DLG23 if( IsDefined(level.BZM_INFECTIONDialogue23Callback) ) level thread [[level.BZM_INFECTIONDialogue23Callback]]();
709 
710 // BLACKSTATION
711 #define BONUSZM_BLACKSTATION_DLG1 if( IsDefined(level.BZM_BLACKSTATIONDialogue1Callback) ) level thread [[level.BZM_BLACKSTATIONDialogue1Callback]]();
712 #define BONUSZM_BLACKSTATION_DLG2 if( IsDefined(level.BZM_BLACKSTATIONDialogue2Callback) ) level thread [[level.BZM_BLACKSTATIONDialogue2Callback]]();
713 #define BONUSZM_BLACKSTATION_DLG3 if( IsDefined(level.BZM_BLACKSTATIONDialogue3Callback) ) level thread [[level.BZM_BLACKSTATIONDialogue3Callback]]();
714 #define BONUSZM_BLACKSTATION_DLG3_1 if( IsDefined(level.BZM_BLACKSTATIONDialogue3_1Callback) ) level thread [[level.BZM_BLACKSTATIONDialogue3_1Callback]]();
715 #define BONUSZM_BLACKSTATION_DLG3_2 if( IsDefined(level.BZM_BLACKSTATIONDialogue3_2Callback) ) level thread [[level.BZM_BLACKSTATIONDialogue3_2Callback]]();
716 #define BONUSZM_BLACKSTATION_DLG3_3 if( IsDefined(level.BZM_BLACKSTATIONDialogue3_3Callback) ) level thread [[level.BZM_BLACKSTATIONDialogue3_3Callback]]();
717 #define BONUSZM_BLACKSTATION_DLG3_4 if( IsDefined(level.BZM_BLACKSTATIONDialogue3_4Callback) ) level thread [[level.BZM_BLACKSTATIONDialogue3_4Callback]]();
718 #define BONUSZM_BLACKSTATION_DLG3_5 if( IsDefined(level.BZM_BLACKSTATIONDialogue3_5Callback) ) level thread [[level.BZM_BLACKSTATIONDialogue3_5Callback]]();
719 
720 #define BONUSZM_BLACKSTATION_DLG4 if( IsDefined(level.BZM_BLACKSTATIONDialogue4Callback) ) level thread [[level.BZM_BLACKSTATIONDialogue4Callback]]();
721 #define BONUSZM_BLACKSTATION_DLG4_1 if( IsDefined(level.BZM_BLACKSTATIONDialogue4_1Callback) ) level thread [[level.BZM_BLACKSTATIONDialogue4_1Callback]]();
722 #define BONUSZM_BLACKSTATION_DLG4_2 if( IsDefined(level.BZM_BLACKSTATIONDialogue4_2Callback) ) level thread [[level.BZM_BLACKSTATIONDialogue4_2Callback]]();
723 #define BONUSZM_BLACKSTATION_DLG4_3 if( IsDefined(level.BZM_BLACKSTATIONDialogue4_3Callback) ) level thread [[level.BZM_BLACKSTATIONDialogue4_3Callback]]();
724 
725 #define BONUSZM_BLACKSTATION_DLG5 if( IsDefined(level.BZM_BLACKSTATIONDialogue5Callback) ) level thread [[level.BZM_BLACKSTATIONDialogue5Callback]]();
726 
727 // AQUIFER
728 #define BONUSZM_AQUIFER_DLG1 if( IsDefined(level.BZM_AQUIFERDialogue1Callback) ) level thread [[level.BZM_AQUIFERDialogue1Callback]]();
729 #define BONUSZM_AQUIFER_DLG1_1 if( IsDefined(level.BZM_AQUIFERDialogue1_1Callback) ) level thread [[level.BZM_AQUIFERDialogue1_1Callback]]();
730 #define BONUSZM_AQUIFER_DLG1_2 if( IsDefined(level.BZM_AQUIFERDialogue1_2Callback) ) level thread [[level.BZM_AQUIFERDialogue1_2Callback]]();
731 #define BONUSZM_AQUIFER_DLG1_3 if( IsDefined(level.BZM_AQUIFERDialogue1_3Callback) ) level thread [[level.BZM_AQUIFERDialogue1_3Callback]]();
732 #define BONUSZM_AQUIFER_DLG1_4 if( IsDefined(level.BZM_AQUIFERDialogue1_4Callback) ) level thread [[level.BZM_AQUIFERDialogue1_4Callback]]();
733 #define BONUSZM_AQUIFER_DLG1_4_1 if( IsDefined(level.BZM_AQUIFERDialogue1_4_1Callback) ) level thread [[level.BZM_AQUIFERDialogue1_4_1Callback]]();
734 
735 #define BONUSZM_AQUIFER_DLG1_5 if( IsDefined(level.BZM_AQUIFERDialogue1_5Callback) ) level thread [[level.BZM_AQUIFERDialogue1_5Callback]]();
736 #define BONUSZM_AQUIFER_DLG1_6 if( IsDefined(level.BZM_AQUIFERDialogue1_6Callback) ) level thread [[level.BZM_AQUIFERDialogue1_6Callback]]();
737 #define BONUSZM_AQUIFER_DLG1_7 if( IsDefined(level.BZM_AQUIFERDialogue1_7Callback) ) level thread [[level.BZM_AQUIFERDialogue1_7Callback]]();
738 
739 
740 #define BONUSZM_AQUIFER_DLG2 if( IsDefined(level.BZM_AQUIFERDialogue2Callback) ) level thread [[level.BZM_AQUIFERDialogue2Callback]]();
741 #define BONUSZM_AQUIFER_DLG2_1 if( IsDefined(level.BZM_AQUIFERDialogue2_1Callback) ) level thread [[level.BZM_AQUIFERDialogue2_1Callback]]();
742 
743 #define BONUSZM_AQUIFER_DLG3 if( IsDefined(level.BZM_AQUIFERDialogue3Callback) ) level thread [[level.BZM_AQUIFERDialogue3Callback]]();
744 #define BONUSZM_AQUIFER_DLG3_1 if( IsDefined(level.BZM_AQUIFERDialogue3_1Callback) ) level thread [[level.BZM_AQUIFERDialogue3_1Callback]]();
745 
746 #define BONUSZM_AQUIFER_DLG4 if( IsDefined(level.BZM_AQUIFERDialogue4Callback) ) level thread [[level.BZM_AQUIFERDialogue4Callback]]();
747 #define BONUSZM_AQUIFER_DLG4_1 if( IsDefined(level.BZM_AQUIFERDialogue4_1Callback) ) level thread [[level.BZM_AQUIFERDialogue4_1Callback]]();
748 
749 #define BONUSZM_AQUIFER_DLG5 if( IsDefined(level.BZM_AQUIFERDialogue5Callback) ) level thread [[level.BZM_AQUIFERDialogue5Callback]]();
750 #define BONUSZM_AQUIFER_DLG6 if( IsDefined(level.BZM_AQUIFERDialogue6Callback) ) level thread [[level.BZM_AQUIFERDialogue6Callback]]();
751 #define BONUSZM_AQUIFER_DLG7 if( IsDefined(level.BZM_AQUIFERDialogue7Callback) ) level thread [[level.BZM_AQUIFERDialogue7Callback]]();
752 #define BONUSZM_AQUIFER_DLG7_1 if( IsDefined(level.BZM_AQUIFERDialogue7_1Callback) ) level thread [[level.BZM_AQUIFERDialogue7_1Callback]]();
753 
754 
755 // VENGEANCE
756 #define BONUSZM_VENGEANCE_DLG1 if( IsDefined(level.BZM_VENGEANCEDialogue1Callback) ) level thread [[level.BZM_VENGEANCEDialogue1Callback]]();
757 
758 #define BONUSZM_VENGEANCE_DLG2 if( IsDefined(level.BZM_VENGEANCEDialogue2Callback) ) level thread [[level.BZM_VENGEANCEDialogue2Callback]]();
759 #define BONUSZM_VENGEANCE_DLG2_1 if( IsDefined(level.BZM_VENGEANCEDialogue2_1Callback) ) level thread [[level.BZM_VENGEANCEDialogue2_1Callback]]();
760 
761 #define BONUSZM_VENGEANCE_DLG3 if( IsDefined(level.BZM_VENGEANCEDialogue3Callback) ) level thread [[level.BZM_VENGEANCEDialogue3Callback]]();
762 #define BONUSZM_VENGEANCE_DLG3_1 if( IsDefined(level.BZM_VENGEANCEDialogue3_1Callback) ) level thread [[level.BZM_VENGEANCEDialogue3_1Callback]]();
763 
764 #define BONUSZM_VENGEANCE_DLG4 if( IsDefined(level.BZM_VENGEANCEDialogue4Callback) ) level thread [[level.BZM_VENGEANCEDialogue4Callback]]();
765 #define BONUSZM_VENGEANCE_DLG5 if( IsDefined(level.BZM_VENGEANCEDialogue5Callback) ) level thread [[level.BZM_VENGEANCEDialogue5Callback]]();
766 
767 #define BONUSZM_VENGEANCE_DLG6 if( IsDefined(level.BZM_VENGEANCEDialogue6Callback) ) level thread [[level.BZM_VENGEANCEDialogue6Callback]]();
768 #define BONUSZM_VENGEANCE_DLG6_1 if( IsDefined(level.BZM_VENGEANCEDialogue6_1Callback) ) level thread [[level.BZM_VENGEANCEDialogue6_1Callback]]();
769 #define BONUSZM_VENGEANCE_DLG6_2 if( IsDefined(level.BZM_VENGEANCEDialogue6_2Callback) ) level thread [[level.BZM_VENGEANCEDialogue6_2Callback]]();
770 
771 #define BONUSZM_VENGEANCE_DLG7 if( IsDefined(level.BZM_VENGEANCEDialogue7Callback) ) level thread [[level.BZM_VENGEANCEDialogue7Callback]]();
772 #define BONUSZM_VENGEANCE_DLG7_1 if( IsDefined(level.BZM_VENGEANCEDialogue7_1Callback) ) level thread [[level.BZM_VENGEANCEDialogue7_1Callback]]();
773 
774 #define BONUSZM_VENGEANCE_DLG8 if( IsDefined(level.BZM_VENGEANCEDialogue8Callback) ) level thread [[level.BZM_VENGEANCEDialogue8Callback]]();
775 #define BONUSZM_VENGEANCE_DLG9 if( IsDefined(level.BZM_VENGEANCEDialogue9Callback) ) level thread [[level.BZM_VENGEANCEDialogue9Callback]]();
776 
777 
778 // ZURICH
779 #define BONUSZM_ZURICH_DLG1 if( IsDefined(level.BZM_ZURICHDialogue1Callback) ) level thread [[level.BZM_ZURICHDialogue1Callback]]();
780 #define BONUSZM_ZURICH_DLG1_1 if( IsDefined(level.BZM_ZURICHDialogue1_1Callback) ) level thread [[level.BZM_ZURICHDialogue1_1Callback]]();
781 #define BONUSZM_ZURICH_DLG1_2 if( IsDefined(level.BZM_ZURICHDialogue1_2Callback) ) level thread [[level.BZM_ZURICHDialogue1_2Callback]]();
782 #define BONUSZM_ZURICH_DLG1_3 if( IsDefined(level.BZM_ZURICHDialogue1_3Callback) ) level thread [[level.BZM_ZURICHDialogue1_3Callback]]();
783 #define BONUSZM_ZURICH_DLG1_4 if( IsDefined(level.BZM_ZURICHDialogue1_4Callback) ) level thread [[level.BZM_ZURICHDialogue1_4Callback]]();
784 
785 #define BONUSZM_ZURICH_DLG2 if( IsDefined(level.BZM_ZURICHDialogue2Callback) ) level thread [[level.BZM_ZURICHDialogue2Callback]]();
786 #define BONUSZM_ZURICH_DLG3 if( IsDefined(level.BZM_ZURICHDialogue3Callback) ) level thread [[level.BZM_ZURICHDialogue3Callback]]();
787 #define BONUSZM_ZURICH_DLG4 if( IsDefined(level.BZM_ZURICHDialogue4Callback) ) level thread [[level.BZM_ZURICHDialogue4Callback]]();
788 #define BONUSZM_ZURICH_DLG4_1 if( IsDefined(level.BZM_ZURICHDialogue4_1Callback) ) level thread [[level.BZM_ZURICHDialogue4_1Callback]]();
789 
790 #define BONUSZM_ZURICH_DLG5 if( IsDefined(level.BZM_ZURICHDialogue5Callback) ) level thread [[level.BZM_ZURICHDialogue5Callback]]();
791 #define BONUSZM_ZURICH_DLG6 if( IsDefined(level.BZM_ZURICHDialogue6Callback) ) level thread [[level.BZM_ZURICHDialogue6Callback]]();
792 #define BONUSZM_ZURICH_DLG7 if( IsDefined(level.BZM_ZURICHDialogue7Callback) ) level thread [[level.BZM_ZURICHDialogue7Callback]]();
793 #define BONUSZM_ZURICH_DLG8 if( IsDefined(level.BZM_ZURICHDialogue8Callback) ) level thread [[level.BZM_ZURICHDialogue8Callback]]();
794 #define BONUSZM_ZURICH_DLG9 if( IsDefined(level.BZM_ZURICHDialogue9Callback) ) level thread [[level.BZM_ZURICHDialogue9Callback]]();
795 #define BONUSZM_ZURICH_DLG10 if( IsDefined(level.BZM_ZURICHDialogue10Callback) ) level thread [[level.BZM_ZURICHDialogue10Callback]]();
796 #define BONUSZM_ZURICH_DLG11 if( IsDefined(level.BZM_ZURICHDialogue11Callback) ) level thread [[level.BZM_ZURICHDialogue11Callback]]();
797 #define BONUSZM_ZURICH_DLG12 if( IsDefined(level.BZM_ZURICHDialogue12Callback) ) level thread [[level.BZM_ZURICHDialogue12Callback]]();
798 #define BONUSZM_ZURICH_DLG13 if( IsDefined(level.BZM_ZURICHDialogue13Callback) ) level thread [[level.BZM_ZURICHDialogue13Callback]]();
799 #define BONUSZM_ZURICH_DLG14 if( IsDefined(level.BZM_ZURICHDialogue14Callback) ) level thread [[level.BZM_ZURICHDialogue14Callback]]();
800 #define BONUSZM_ZURICH_DLG15 if( IsDefined(level.BZM_ZURICHDialogue15Callback) ) level thread [[level.BZM_ZURICHDialogue15Callback]]();
801 #define BONUSZM_ZURICH_DLG16 if( IsDefined(level.BZM_ZURICHDialogue16Callback) ) level thread [[level.BZM_ZURICHDialogue16Callback]]();
802 #define BONUSZM_ZURICH_DLG17 if( IsDefined(level.BZM_ZURICHDialogue17Callback) ) level thread [[level.BZM_ZURICHDialogue17Callback]]();
803 #define BONUSZM_ZURICH_DLG18 if( IsDefined(level.BZM_ZURICHDialogue18Callback) ) level thread [[level.BZM_ZURICHDialogue18Callback]]();
804 #define BONUSZM_ZURICH_DLG19 if( IsDefined(level.BZM_ZURICHDialogue19Callback) ) level thread [[level.BZM_ZURICHDialogue19Callback]]();
805 #define BONUSZM_ZURICH_DLG20 if( IsDefined(level.BZM_ZURICHDialogue20Callback) ) level thread [[level.BZM_ZURICHDialogue20Callback]]();
806 #define BONUSZM_ZURICH_DLG21 if( IsDefined(level.BZM_ZURICHDialogue21Callback) ) level thread [[level.BZM_ZURICHDialogue21Callback]]();
807 #define BONUSZM_ZURICH_DLG22 if( IsDefined(level.BZM_ZURICHDialogue22Callback) ) level thread [[level.BZM_ZURICHDialogue22Callback]]();
808 #define BONUSZM_ZURICH_DLG23 if( IsDefined(level.BZM_ZURICHDialogue23Callback) ) level thread [[level.BZM_ZURICHDialogue23Callback]]();
809 #define BONUSZM_ZURICH_DLG24 if( IsDefined(level.BZM_ZURICHDialogue24Callback) ) level thread [[level.BZM_ZURICHDialogue24Callback]]();
810 
811 // This one is purposefully not threaded
812 #define BONUSZM_ZURICH_DLG25 if( IsDefined(level.BZM_ZURICHDialogue25Callback) ) [[level.BZM_ZURICHDialogue25Callback]]();
813 
814 
815 //********************************************************************************
816 // END - SUMEET - DO NOT MODIFY - USED FOR CAMPAIGN ZOMBIES MODE
817 //********************************************************************************
818 
819 #define SET_CLEARANCE_CEILING_WRAPPER(__value) if(IS_BONUSZM && __value<34) SetClearanceCeiling(34); else SetClearanceCeiling(__value);
820 
821 // detail levels for silhouettes
822 #define CUTTING_DETAIL_LEVEL_OBB 0
823 #define CUTTING_DETAIL_LEVEL_CONVEX_HULL 1
824 #define CUTTING_DETAIL_LEVEL_EXPENSIVE_FULL 2
825 
826 
827 // HACKER TOOL
828 #define HACKER_TOOL_INACTIVE 0
829 #define HACKER_TOOL_ACTIVE 1
830 #define HACKER_TOOL_HACKING 2
831 #define HACKER_TOOL_FIREWALL 3
832 
833 #define HACKER_TOOL_STATUS_SCANNING 0
834 #define HACKER_TOOL_STATUS_BREACHING 1
835 #define HACKER_TOOL_STATUS_HACKING 2
836 #define HACKER_TOOL_STATUS_EMPED 3
837 
838 // Matches r_stream.h
839 #define STREAM_NO_MIPS 0
840 #define STREAM_MIP0 1
841 #define STREAM_MIP1 2
842 #define STREAM_MIP2 3
843 #define STREAM_MIP3 4
844 #define STREAM_MIP4 5
845 
846 #define STREAM_MIP_LOWEST 1
847 #define STREAM_MIP_HIGHEST 4
848 #define STREAM_MIP_EXCLUDE_HIGHEST -1
849 
850 #define STREAM_NO_LODS 0
851 #define STREAM_LOD0 1
852 #define STREAM_LOD1 2
853 #define STREAM_LOD2 3
854 #define STREAM_LOD3 4
855 #define STREAM_LOD4 5
856 #define STREAM_LOD5 6
857 #define STREAM_LOD6 7
858 #define STREAM_LOD7 8
859 
860 #define STREAM_LOD_LOWEST 1
861 #define STREAM_LOD_HIGHEST 8
862 #define STREAM_LOD_EXCLUDE_HIGHEST -1
863 
864 // INTERACTS
865 #define INTERACT_HOLD_TIME 0.35
866 #define INTERACT_STANDARD_HEIGHT 24
867 
868 // JUKE end reasons
869 #define JUKE_END_REASON_ENVIORMENTAL 0
870 #define JUKE_END_REASON_EXCEEDED_TIME 1
871 #define JUKE_END_REASON_COLLISION 2
872 #define JUKE_END_REASON_SCRIPTED 3
873 #define JUKE_END_REASON_REQUESTED 4
874 #define JUKE_END_REASON_NONE 5
875 
876 //cp stats table defines
877 #define STATS_COST_COLUMN 17
878 #define STATS_REFERENCE_COLUMN 4
879 #define STATS_GROUP_COLUMN 2
880 #define STATS_LOADOUT_SLOT 13
881 #define STATS_ALLOCATION_COLUMN 12
882 
883 #define CYBERCOM_STATS_START_INDEX 100
884 #define CYBERCOM_STATS_END_INDEX 141
885 
886 #define WEAPONS_STATS_START_INDEX 1
887 #define WEAPONS_STATS_END_INDEX 76
888 
889 #define WEAPONS_STATS_GUNS_START_INDEX 1
890 #define WEAPONS_STATS_GUNS_END_INDEX 60
891 
892 #define CYBERCOM_ABILITIES_PER_WHEEL 14
893 
894 // CUSTOMIZATION PAINTJOB INVALID ID
895 // Must match CustomizationPaintjobInvalidID in Lua_CoD_EnumDefinitions.h
896 #define CUSTOMIZATION_INVALID_PAINTJOB_INDEX 15
897 #define CUSTOMIZATION_INVALID_PAINTJOB_SLOT 15
898 
899 
900 //Difficulty reporting slots, needs to be kept up to date with the matching enum, difficultySlot_t code side.
901 #define START_DIFFICULTY_REPORT_INDEX 0
902 #define END_DIFFICULTY_REPORT_INDEX 1
903 #define MIN_DIFFICULTY_REPORT_INDEX 2
904 #define MAX_DIFFICULTY_REPORT_INDEX 3
905 
906 //Match Record Map Events
907 #define MAPEVENT_UNKNOWN 0
908 #define MAPEVENT_PLAYER_ENTERS_LAST_STAND 1
909 
910 // ETYPE matches with entityType_t in bg_enttype.h
911 
912 #define ET_GENERAL 0
913 #define ET_PLAYER 1
914 #define ET_PLAYER_CORPSE 2
915 #define ET_ITEM 3
916 #define ET_MISSILE 4
917 #define ET_PLAYER_INVISIBLE 5
918 #define ET_SCRIPTMOVER 6
919 #define ET_SOUND_BLEND 7
920 #define ET_FX 8
921 #define ET_LOOP_FX 9
922 #define ET_PRIMARY_LIGHT 10
923 #define ET_LENSFLARE 11
924 #define ET_REFLECTION_PROBE 12
925 #define ET_HELICOPTER 13
926 #define ET_PLANE 14
927 #define ET_VEHICLE 15
928 #define ET_VEHICLE_SPAWNER 16
929 #define ET_VEHICLE_CORPSE 17
930 #define ET_ACTOR 18
931 #define ET_ACTOR_SPAWNER 19
932 #define ET_ACTOR_CORPSE 20
933 #define ET_STREAMER_HINT 21
934 #define ET_ZBARRIER 22
935 #define ET_TRIGGER 23