hlsdk_const.inc
Original include source with line numbers.
| 1 | // vim: set ts=4 sw=4 tw=99 noet: |
| 2 | // |
| 3 | // AMX Mod X, based on AMX Mod by Aleksander Naszko ("OLO"). |
| 4 | // Copyright (C) The AMX Mod X Development Team. |
| 5 | // |
| 6 | // This software is licensed under the GNU General Public License, version 3 or higher. |
| 7 | // Additional exceptions apply. For full license details, see LICENSE.txt or visit: |
| 8 | // https://alliedmods.net/amxmodx-license |
| 9 | |
| 10 | // |
| 11 | // Half-Life SDK Constants |
| 12 | // |
| 13 | |
| 14 | #if defined _hlsdk_const_included |
| 15 | #endinput |
| 16 | #endif |
| 17 | #define _hlsdk_const_included |
| 18 | |
| 19 | /** |
| 20 | * pev(entity, pev_button) or pev(entity, pev_oldbuttons) values |
| 21 | */ |
| 22 | #define IN_ATTACK (1<<0) |
| 23 | #define IN_JUMP (1<<1) |
| 24 | #define IN_DUCK (1<<2) |
| 25 | #define IN_FORWARD (1<<3) |
| 26 | #define IN_BACK (1<<4) |
| 27 | #define IN_USE (1<<5) |
| 28 | #define IN_CANCEL (1<<6) |
| 29 | #define IN_LEFT (1<<7) |
| 30 | #define IN_RIGHT (1<<8) |
| 31 | #define IN_MOVELEFT (1<<9) |
| 32 | #define IN_MOVERIGHT (1<<10) |
| 33 | #define IN_ATTACK2 (1<<11) |
| 34 | #define IN_RUN (1<<12) |
| 35 | #define IN_RELOAD (1<<13) |
| 36 | #define IN_ALT1 (1<<14) |
| 37 | #define IN_SCORE (1<<15) // Used by client.dll for when scoreboard is held down |
| 38 | |
| 39 | /** |
| 40 | * pev(entity, pev_flags) values |
| 41 | */ |
| 42 | #define FL_FLY (1<<0) // Changes the SV_Movestep() behavior to not need to be on ground |
| 43 | #define FL_SWIM (1<<1) // Changes the SV_Movestep() behavior to not need to be on ground (but stay in water) |
| 44 | #define FL_CONVEYOR (1<<2) |
| 45 | #define FL_CLIENT (1<<3) |
| 46 | #define FL_INWATER (1<<4) |
| 47 | #define FL_MONSTER (1<<5) |
| 48 | #define FL_GODMODE (1<<6) |
| 49 | #define FL_NOTARGET (1<<7) |
| 50 | #define FL_SKIPLOCALHOST (1<<8) // Don't send entity to local host, it's predicting this entity itself |
| 51 | #define FL_ONGROUND (1<<9) // At rest / on the ground |
| 52 | #define FL_PARTIALGROUND (1<<10) // Not all corners are valid |
| 53 | #define FL_WATERJUMP (1<<11) // Player jumping out of water |
| 54 | #define FL_FROZEN (1<<12) // Player is frozen for 3rd person camera |
| 55 | #define FL_FAKECLIENT (1<<13) // JAC: fake client, simulated server side; don't send network messages to them |
| 56 | #define FL_DUCKING (1<<14) // Player flag -- Player is fully crouched |
| 57 | #define FL_FLOAT (1<<15) // Apply floating force to this entity when in water |
| 58 | #define FL_GRAPHED (1<<16) // Worldgraph has this ent listed as something that blocks a connection |
| 59 | #define FL_IMMUNE_WATER (1<<17) |
| 60 | #define FL_IMMUNE_SLIME (1<<18) |
| 61 | #define FL_IMMUNE_LAVA (1<<19) |
| 62 | #define FL_PROXY (1<<20) // This is a spectator proxy |
| 63 | #define FL_ALWAYSTHINK (1<<21) // Brush model flag -- call think every frame regardless of nextthink - ltime (for constantly changing velocity/path) |
| 64 | #define FL_BASEVELOCITY (1<<22) // Base velocity has been applied this frame (used to convert base velocity into momentum) |
| 65 | #define FL_MONSTERCLIP (1<<23) // Only collide in with monsters who have FL_MONSTERCLIP set |
| 66 | #define FL_ONTRAIN (1<<24) // Player is _controlling_ a train, so movement commands should be ignored on client during prediction. |
| 67 | #define FL_WORLDBRUSH (1<<25) // Not moveable/removeable brush entity (really part of the world, but represented as an entity for transparency or something) |
| 68 | #define FL_SPECTATOR (1<<26) // This client is a spectator, don't run touch functions, etc. |
| 69 | #define FL_CUSTOMENTITY (1<<29) // This is a custom entity |
| 70 | #define FL_KILLME (1<<30) // This entity is marked for death -- This allows the engine to kill ents at the appropriate time |
| 71 | #define FL_DORMANT (1<<31) // Entity is dormant, no updates to client |
| 72 | |
| 73 | /** |
| 74 | * engfunc(EngFunc_WalkMove, entity, Float:yaw, Float:dist, iMode) iMode values |
| 75 | */ |
| 76 | #define WALKMOVE_NORMAL 0 // Normal walkmove |
| 77 | #define WALKMOVE_WORLDONLY 1 // Doesn't hit ANY entities, no matter what the solid type |
| 78 | #define WALKMOVE_CHECKONLY 2 // Move, but don't touch triggers |
| 79 | |
| 80 | /** |
| 81 | * engfunc(EngFunc_MoveToOrigin, entity, Float:goal[3], Float:distance, moveType) moveType values |
| 82 | */ |
| 83 | #define MOVE_NORMAL 0 // normal move in the direction monster is facing |
| 84 | #define MOVE_STRAFE 1 // moves in direction specified, no matter which way monster is facing |
| 85 | |
| 86 | /** |
| 87 | * pev(entity, pev_movetype) values |
| 88 | */ |
| 89 | #define MOVETYPE_NONE 0 // Never moves |
| 90 | #define MOVETYPE_WALK 3 // Player only - moving on the ground |
| 91 | #define MOVETYPE_STEP 4 // Gravity, special edge handling -- monsters use this |
| 92 | #define MOVETYPE_FLY 5 // No gravity, but still collides with stuff |
| 93 | #define MOVETYPE_TOSS 6 // Gravity/Collisions |
| 94 | #define MOVETYPE_PUSH 7 // No clip to world, push and crush |
| 95 | #define MOVETYPE_NOCLIP 8 // No gravity, no collisions, still do velocity/avelocity |
| 96 | #define MOVETYPE_FLYMISSILE 9 // Extra size to monsters |
| 97 | #define MOVETYPE_BOUNCE 10 // Just like Toss, but reflect velocity when contacting surfaces |
| 98 | #define MOVETYPE_BOUNCEMISSILE 11 // Bounce w/o gravity |
| 99 | #define MOVETYPE_FOLLOW 12 // Track movement of aiment |
| 100 | #define MOVETYPE_PUSHSTEP 13 // BSP model that needs physics/world collisions (uses nearest hull for world collision) |
| 101 | |
| 102 | /** |
| 103 | * pev(entity, pev_solid) values |
| 104 | * |
| 105 | * @note Some movetypes will cause collisions independent of SOLID_NOT and |
| 106 | * SOLID_TRIGGER when the entity moves. SOLID only effects OTHER entities |
| 107 | * colliding with this one when they move - UGH! |
| 108 | */ |
| 109 | #define SOLID_NOT 0 // No interaction with other objects |
| 110 | #define SOLID_TRIGGER 1 // Touch on edge, but not blocking |
| 111 | #define SOLID_BBOX 2 // Touch on edge, block |
| 112 | #define SOLID_SLIDEBOX 3 // Touch on edge, but not an onground |
| 113 | #define SOLID_BSP 4 // BSP clip, touch on edge, block |
| 114 | |
| 115 | /** |
| 116 | * pev(entity, pev_deadflag) values |
| 117 | */ |
| 118 | #define DEAD_NO 0 // Alive |
| 119 | #define DEAD_DYING 1 // Playing death animation or still falling off of a ledge waiting to hit ground |
| 120 | #define DEAD_DEAD 2 // Dead, lying still |
| 121 | #define DEAD_RESPAWNABLE 3 |
| 122 | #define DEAD_DISCARDBODY 4 |
| 123 | |
| 124 | /** |
| 125 | * new Float:takedamage, pev(entity, pev_takedamage, takedamage) values |
| 126 | */ |
| 127 | #define DAMAGE_NO 0.0 |
| 128 | #define DAMAGE_YES 1.0 |
| 129 | #define DAMAGE_AIM 2.0 |
| 130 | |
| 131 | /** |
| 132 | * pev(entity, pev_effects) values |
| 133 | */ |
| 134 | #define EF_BRIGHTFIELD 1 // Swirling cloud of particles |
| 135 | #define EF_MUZZLEFLASH 2 // Single frame ELIGHT on entity attachment 0 |
| 136 | #define EF_BRIGHTLIGHT 4 // DLIGHT centered at entity origin |
| 137 | #define EF_DIMLIGHT 8 // Player flashlight |
| 138 | #define EF_INVLIGHT 16 // Get lighting from ceiling |
| 139 | #define EF_NOINTERP 32 // Don't interpolate the next frame |
| 140 | #define EF_LIGHT 64 // Rocket flare glow sprite |
| 141 | #define EF_NODRAW 128 // Don't draw entity |
| 142 | |
| 143 | /** |
| 144 | * Spectating camera mode constants |
| 145 | * |
| 146 | * @note These constants are linked to different camera modes available when you |
| 147 | * are spectating (either dead or when in spectator team). Usually this is |
| 148 | * stored in the pev_iuser1 field in Counter-Strike and Half-Life games. |
| 149 | */ |
| 150 | #define OBS_NONE 0 |
| 151 | #define OBS_CHASE_LOCKED 1 // Locked Chase Cam |
| 152 | #define OBS_CHASE_FREE 2 // Free Chase Cam |
| 153 | #define OBS_ROAMING 3 // Free Look |
| 154 | #define OBS_IN_EYE 4 // First Person |
| 155 | #define OBS_MAP_FREE 5 // Free Overview |
| 156 | #define OBS_MAP_CHASE 6 // Chase Overview |
| 157 | |
| 158 | /** |
| 159 | * engfunc(EngFunc_PointContents, Float:origin) return values |
| 160 | */ |
| 161 | #define CONTENTS_EMPTY -1 |
| 162 | #define CONTENTS_SOLID -2 |
| 163 | #define CONTENTS_WATER -3 |
| 164 | #define CONTENTS_SLIME -4 |
| 165 | #define CONTENTS_LAVA -5 |
| 166 | #define CONTENTS_SKY -6 |
| 167 | #define CONTENTS_ORIGIN -7 // Removed at csg time |
| 168 | #define CONTENTS_CLIP -8 // Changed to contents_solid |
| 169 | #define CONTENTS_CURRENT_0 -9 |
| 170 | #define CONTENTS_CURRENT_90 -10 |
| 171 | #define CONTENTS_CURRENT_180 -11 |
| 172 | #define CONTENTS_CURRENT_270 -12 |
| 173 | #define CONTENTS_CURRENT_UP -13 |
| 174 | #define CONTENTS_CURRENT_DOWN -14 |
| 175 | #define CONTENTS_TRANSLUCENT -15 |
| 176 | #define CONTENTS_LADDER -16 |
| 177 | #define CONTENT_FLYFIELD -17 |
| 178 | #define CONTENT_GRAVITY_FLYFIELD -18 |
| 179 | #define CONTENT_FOG -19 |
| 180 | |
| 181 | /** |
| 182 | * Instant damage values for use with the 3rd parameter of the "Damage" client |
| 183 | * message. |
| 184 | */ |
| 185 | #define DMG_GENERIC 0 // Generic damage was done |
| 186 | #define DMG_CRUSH (1<<0) // Crushed by falling or moving object |
| 187 | #define DMG_BULLET (1<<1) // Shot |
| 188 | #define DMG_SLASH (1<<2) // Cut, clawed, stabbed |
| 189 | #define DMG_BURN (1<<3) // Heat burned |
| 190 | #define DMG_FREEZE (1<<4) // Frozen |
| 191 | #define DMG_FALL (1<<5) // Fell too far |
| 192 | #define DMG_BLAST (1<<6) // Explosive blast damage |
| 193 | #define DMG_CLUB (1<<7) // Crowbar, punch, headbutt |
| 194 | #define DMG_SHOCK (1<<8) // Electric shock |
| 195 | #define DMG_SONIC (1<<9) // Sound pulse shockwave |
| 196 | #define DMG_ENERGYBEAM (1<<10) // Laser or other high energy beam |
| 197 | #define DMG_NEVERGIB (1<<12) // With this bit OR'd in, no damage type will be able to gib victims upon death |
| 198 | #define DMG_ALWAYSGIB (1<<13) // With this bit OR'd in, any damage type can be made to gib victims upon death. |
| 199 | #define DMG_DROWN (1<<14) // Drowning |
| 200 | #define DMG_PARALYZE (1<<15) // Slows affected creature down |
| 201 | #define DMG_NERVEGAS (1<<16) // Nerve toxins, very bad |
| 202 | #define DMG_POISON (1<<17) // Blood poisioning |
| 203 | #define DMG_RADIATION (1<<18) // Radiation exposure |
| 204 | #define DMG_DROWNRECOVER (1<<19) // Drowning recovery |
| 205 | #define DMG_ACID (1<<20) // Toxic chemicals or acid burns |
| 206 | #define DMG_SLOWBURN (1<<21) // In an oven |
| 207 | #define DMG_SLOWFREEZE (1<<22) // In a subzero freezer |
| 208 | #define DMG_MORTAR (1<<23) // Hit by air raid (done to distinguish grenade from mortar) |
| 209 | #define DMG_GRENADE (1<<24) // Counter-Strike only - Hit by HE grenade |
| 210 | #define DMG_TIMEBASED (~(0x3fff)) // Mask for time-based damage |
| 211 | |
| 212 | /** |
| 213 | * Gib values used on client kill based on instant damage values |
| 214 | */ |
| 215 | #define GIB_NORMAL 0 // Gib if entity was overkilled |
| 216 | #define GIB_NEVER 1 // Never gib, no matter how much death damage is done ( freezing, etc ) |
| 217 | #define GIB_ALWAYS 2 // Always gib ( Houndeye Shock, Barnacle Bite ) |
| 218 | #define GIB_TRY_HEALTH -9000 // Gib players if their health is under this value. (GIB_NEVER overrides this value) |
| 219 | |
| 220 | /** |
| 221 | * Valid constants for fNoMonsters parameter of EngFunc_TraceLine, |
| 222 | * EngFunc_TraceMonsterHull, EngFunc_TraceHull and EngFunc_TraceSphere. |
| 223 | */ |
| 224 | #define DONT_IGNORE_MONSTERS 0 |
| 225 | #define IGNORE_MONSTERS 1 |
| 226 | #define IGNORE_MISSILE 2 |
| 227 | #define IGNORE_GLASS 0x100 |
| 228 | |
| 229 | /** |
| 230 | * The hullnumber paramater of EngFunc_TraceHull, EngFunc_TraceModel and |
| 231 | * DLLFunc_GetHullBounds |
| 232 | */ |
| 233 | #define HULL_POINT 0 |
| 234 | #define HULL_HUMAN 1 |
| 235 | #define HULL_LARGE 2 |
| 236 | #define HULL_HEAD 3 |
| 237 | |
| 238 | /** |
| 239 | * global_get(glb_trace_flags) |
| 240 | */ |
| 241 | #define FTRACE_SIMPLEBOX (1<<0) // Traceline with a simple box |
| 242 | |
| 243 | /** |
| 244 | * Used with get/set_es(es_handle, ES_eFlags, ...) (entity_state data structure) |
| 245 | */ |
| 246 | #define EFLAG_SLERP 1 // Do studio interpolation of this entity |
| 247 | |
| 248 | /** |
| 249 | * @section pev(entity, pev_spawnflags) values |
| 250 | */ |
| 251 | |
| 252 | /** |
| 253 | * func_train |
| 254 | */ |
| 255 | #define SF_TRAIN_WAIT_RETRIGGER 1 |
| 256 | #define SF_TRAIN_START_ON 4 // Train is initially moving |
| 257 | #define SF_TRAIN_PASSABLE 8 // Train is not solid -- used to make water trains |
| 258 | |
| 259 | /** |
| 260 | * func_wall_toggle |
| 261 | */ |
| 262 | #define SF_WALL_START_OFF 0x0001 |
| 263 | #define SF_WALL_NOTSOLID 0x0008 |
| 264 | |
| 265 | /** |
| 266 | * func_converyor |
| 267 | */ |
| 268 | #define SF_CONVEYOR_VISUAL 0x0001 |
| 269 | #define SF_CONVEYOR_NOTSOLID 0x0002 |
| 270 | |
| 271 | /** |
| 272 | * func_button |
| 273 | */ |
| 274 | #define SF_BUTTON_DONTMOVE 1 |
| 275 | #define SF_BUTTON_TOGGLE 32 // Button stays pushed until reactivated |
| 276 | #define SF_BUTTON_SPARK_IF_OFF 64 // Button sparks in OFF state |
| 277 | #define SF_BUTTON_TOUCH_ONLY 256 // Button only fires as a result of USE key. |
| 278 | |
| 279 | /** |
| 280 | * func_rot_button |
| 281 | */ |
| 282 | #define SF_ROTBUTTON_NOTSOLID 1 |
| 283 | #define SF_ROTBUTTON_BACKWARDS 2 |
| 284 | |
| 285 | /** |
| 286 | * env_global |
| 287 | */ |
| 288 | #define SF_GLOBAL_SET 1 // Set global state to initial state on spawn |
| 289 | |
| 290 | /** |
| 291 | * multisource |
| 292 | */ |
| 293 | #define SF_MULTI_INIT 1 |
| 294 | |
| 295 | /** |
| 296 | * momentary_rot_button |
| 297 | */ |
| 298 | #define SF_MOMENTARY_DOOR 0x0001 |
| 299 | |
| 300 | /** |
| 301 | * button_target |
| 302 | */ |
| 303 | #define SF_BTARGET_USE 0x0001 |
| 304 | #define SF_BTARGET_ON 0x0002 |
| 305 | |
| 306 | /** |
| 307 | * func_door, func_water, func_door_rotating, momementary_door |
| 308 | */ |
| 309 | #define SF_DOOR_ROTATE_Y 0 |
| 310 | #define SF_DOOR_START_OPEN 1 |
| 311 | #define SF_DOOR_ROTATE_BACKWARDS 2 |
| 312 | #define SF_DOOR_PASSABLE 8 |
| 313 | #define SF_DOOR_ONEWAY 16 |
| 314 | #define SF_DOOR_NO_AUTO_RETURN 32 |
| 315 | #define SF_DOOR_ROTATE_Z 64 |
| 316 | #define SF_DOOR_ROTATE_X 128 |
| 317 | #define SF_DOOR_USE_ONLY 256 // Door must be opened by player's use button |
| 318 | #define SF_DOOR_NOMONSTERS 512 // Monster can't open |
| 319 | #define SF_DOOR_TOUCH_ONLY_CLIENTS 1024 // Only clients can touch |
| 320 | #define SF_DOOR_SILENT 0x80000000 // This bit marks that func_door are actually func_water |
| 321 | |
| 322 | /** |
| 323 | * gibshooter |
| 324 | */ |
| 325 | #define SF_GIBSHOOTER_REPEATABLE 1 // Allows a gibshooter to be refired |
| 326 | |
| 327 | /** |
| 328 | * env_funnel |
| 329 | */ |
| 330 | #define SF_FUNNEL_REVERSE 1 // Funnel effect repels particles instead of attracting them |
| 331 | |
| 332 | /** |
| 333 | * env_bubbles |
| 334 | */ |
| 335 | #define SF_BUBBLES_STARTOFF 0x0001 |
| 336 | |
| 337 | /** |
| 338 | * env_blood |
| 339 | */ |
| 340 | #define SF_BLOOD_RANDOM 0x0001 |
| 341 | #define SF_BLOOD_STREAM 0x0002 |
| 342 | #define SF_BLOOD_PLAYER 0x0004 |
| 343 | #define SF_BLOOD_DECAL 0x0008 |
| 344 | |
| 345 | /** |
| 346 | * env_shake |
| 347 | */ |
| 348 | #define SF_SHAKE_EVERYONE 0x0001 // Don't check radius |
| 349 | #define SF_SHAKE_DISRUPT 0x0002 // Disrupt controls |
| 350 | #define SF_SHAKE_INAIR 0x0004 // Shake players in air |
| 351 | |
| 352 | /** |
| 353 | * env_fade |
| 354 | */ |
| 355 | #define SF_FADE_IN 0x0001 // Fade in, not out |
| 356 | #define SF_FADE_MODULATE 0x0002 // Modulate, don't blend |
| 357 | #define SF_FADE_ONLYONE 0x0004 |
| 358 | |
| 359 | /** |
| 360 | * env_beam, env_lightning |
| 361 | */ |
| 362 | #define SF_BEAM_STARTON 0x0001 |
| 363 | #define SF_BEAM_TOGGLE 0x0002 |
| 364 | #define SF_BEAM_RANDOM 0x0004 |
| 365 | #define SF_BEAM_RING 0x0008 |
| 366 | #define SF_BEAM_SPARKSTART 0x0010 |
| 367 | #define SF_BEAM_SPARKEND 0x0020 |
| 368 | #define SF_BEAM_DECALS 0x0040 |
| 369 | #define SF_BEAM_SHADEIN 0x0080 |
| 370 | #define SF_BEAM_SHADEOUT 0x0100 |
| 371 | #define SF_BEAM_TEMPORARY 0x8000 |
| 372 | |
| 373 | /** |
| 374 | * env_sprite |
| 375 | */ |
| 376 | #define SF_SPRITE_STARTON 0x0001 |
| 377 | #define SF_SPRITE_ONCE 0x0002 |
| 378 | #define SF_SPRITE_TEMPORARY 0x8000 |
| 379 | |
| 380 | /** |
| 381 | * env_message |
| 382 | */ |
| 383 | #define SF_MESSAGE_ONCE 0x0001 // Fade in, not out |
| 384 | #define SF_MESSAGE_ALL 0x0002 // Send to all clients |
| 385 | |
| 386 | /** |
| 387 | * env_explosion |
| 388 | */ |
| 389 | #define SF_ENVEXPLOSION_NODAMAGE (1<<0) // When set, ENV_EXPLOSION will not actually inflict damage |
| 390 | #define SF_ENVEXPLOSION_REPEATABLE (1<<1) // Can this entity be refired? |
| 391 | #define SF_ENVEXPLOSION_NOFIREBALL (1<<2) // Don't draw the fireball |
| 392 | #define SF_ENVEXPLOSION_NOSMOKE (1<<3) // Don't draw the smoke |
| 393 | #define SF_ENVEXPLOSION_NODECAL (1<<4) // Don't make a scorch mark |
| 394 | #define SF_ENVEXPLOSION_NOSPARKS (1<<5) // Don't make a scorch mark |
| 395 | |
| 396 | /** |
| 397 | * func_tank |
| 398 | */ |
| 399 | #define SF_TANK_ACTIVE 0x0001 |
| 400 | #define SF_TANK_PLAYER 0x0002 |
| 401 | #define SF_TANK_HUMANS 0x0004 |
| 402 | #define SF_TANK_ALIENS 0x0008 |
| 403 | #define SF_TANK_LINEOFSIGHT 0x0010 |
| 404 | #define SF_TANK_CANCONTROL 0x0020 |
| 405 | #define SF_TANK_SOUNDON 0x8000 |
| 406 | |
| 407 | /** |
| 408 | * grenade |
| 409 | */ |
| 410 | #define SF_DETONATE 0x0001 |
| 411 | |
| 412 | /** |
| 413 | * item_suit |
| 414 | */ |
| 415 | #define SF_SUIT_SHORTLOGON 0x0001 |
| 416 | |
| 417 | /** |
| 418 | * game_score |
| 419 | */ |
| 420 | #define SF_SCORE_NEGATIVE 0x0001 |
| 421 | #define SF_SCORE_TEAM 0x0002 |
| 422 | |
| 423 | /** |
| 424 | * game_text |
| 425 | */ |
| 426 | #define SF_ENVTEXT_ALLPLAYERS 0x0001 |
| 427 | |
| 428 | /** |
| 429 | * game_team_master |
| 430 | */ |
| 431 | #define SF_TEAMMASTER_FIREONCE 0x0001 |
| 432 | #define SF_TEAMMASTER_ANYTEAM 0x0002 |
| 433 | |
| 434 | /** |
| 435 | * game_team_set |
| 436 | */ |
| 437 | #define SF_TEAMSET_FIREONCE 0x0001 |
| 438 | #define SF_TEAMSET_CLEARTEAM 0x0002 |
| 439 | |
| 440 | /** |
| 441 | * game_player_hurt |
| 442 | */ |
| 443 | #define SF_PKILL_FIREONCE 0x0001 |
| 444 | |
| 445 | /** |
| 446 | * game_counter |
| 447 | */ |
| 448 | #define SF_GAMECOUNT_FIREONCE 0x0001 |
| 449 | #define SF_GAMECOUNT_RESET 0x0002 |
| 450 | |
| 451 | /** |
| 452 | * game_player_equip |
| 453 | */ |
| 454 | #define SF_PLAYEREQUIP_USEONLY 0x0001 |
| 455 | |
| 456 | /** |
| 457 | * game_player_team |
| 458 | */ |
| 459 | #define SF_PTEAM_FIREONCE 0x0001 |
| 460 | #define SF_PTEAM_KILL 0x0002 |
| 461 | #define SF_PTEAM_GIB 0x0004 |
| 462 | |
| 463 | /** |
| 464 | * func_trackchange |
| 465 | */ |
| 466 | #define SF_PLAT_TOGGLE 0x0001 |
| 467 | #define SF_TRACK_ACTIVATETRAIN 0x00000001 |
| 468 | #define SF_TRACK_RELINK 0x00000002 |
| 469 | #define SF_TRACK_ROTMOVE 0x00000004 |
| 470 | #define SF_TRACK_STARTBOTTOM 0x00000008 |
| 471 | #define SF_TRACK_DONT_MOVE 0x00000010 |
| 472 | |
| 473 | /** |
| 474 | * func_tracktrain |
| 475 | */ |
| 476 | #define SF_TRACKTRAIN_NOPITCH 0x0001 |
| 477 | #define SF_TRACKTRAIN_NOCONTROL 0x0002 |
| 478 | #define SF_TRACKTRAIN_FORWARDONLY 0x0004 |
| 479 | #define SF_TRACKTRAIN_PASSABLE 0x0008 |
| 480 | #define SF_PATH_DISABLED 0x00000001 |
| 481 | #define SF_PATH_FIREONCE 0x00000002 |
| 482 | #define SF_PATH_ALTREVERSE 0x00000004 |
| 483 | #define SF_PATH_DISABLE_TRAIN 0x00000008 |
| 484 | #define SF_PATH_ALTERNATE 0x00008000 |
| 485 | #define SF_CORNER_WAITFORTRIG 0x001 |
| 486 | #define SF_CORNER_TELEPORT 0x002 |
| 487 | #define SF_CORNER_FIREONCE 0x004 |
| 488 | |
| 489 | /** |
| 490 | * func_plat |
| 491 | */ |
| 492 | #define SF_PLAT_TOGGLE 0x0001 |
| 493 | |
| 494 | /** |
| 495 | * path_track |
| 496 | */ |
| 497 | #define SF_PATH_DISABLED 0x00000001 |
| 498 | #define SF_PATH_FIREONCE 0x00000002 |
| 499 | #define SF_PATH_ALTREVERSE 0x00000004 |
| 500 | #define SF_PATH_DISABLE_TRAIN 0x00000008 |
| 501 | #define SF_PATH_ALTERNATE 0x00008000 |
| 502 | |
| 503 | /** |
| 504 | * path_corner |
| 505 | */ |
| 506 | #define SF_CORNER_WAITFORTRIG 0x001 |
| 507 | #define SF_CORNER_TELEPORT 0x002 |
| 508 | #define SF_CORNER_FIREONCE 0x004 |
| 509 | |
| 510 | /** |
| 511 | * trigger_push |
| 512 | */ |
| 513 | #define SF_TRIGGER_PUSH_START_OFF 2 // Spawnflag that makes trigger_push spawn turned OFF |
| 514 | |
| 515 | /** |
| 516 | * trigger_hurt |
| 517 | */ |
| 518 | #define SF_TRIGGER_HURT_TARGETONCE 1 // Only fire hurt target once |
| 519 | #define SF_TRIGGER_HURT_START_OFF 2 // Spawnflag that makes trigger_push spawn turned OFF |
| 520 | #define SF_TRIGGER_HURT_NO_CLIENTS 8 // Spawnflag that makes trigger_push spawn turned OFF |
| 521 | #define SF_TRIGGER_HURT_CLIENTONLYFIRE 16 // Trigger hurt will only fire its target if it is hurting a client |
| 522 | #define SF_TRIGGER_HURT_CLIENTONLYTOUCH 32 // Only clients may touch this trigger |
| 523 | |
| 524 | /** |
| 525 | * trigger_auto |
| 526 | */ |
| 527 | #define SF_AUTO_FIREONCE 0x0001 |
| 528 | #define SF_AUTO_NORESET 0x0002 |
| 529 | |
| 530 | /** |
| 531 | * trigger_relay |
| 532 | */ |
| 533 | #define SF_RELAY_FIREONCE 0x0001 |
| 534 | |
| 535 | /** |
| 536 | * multi_manager |
| 537 | */ |
| 538 | #define SF_MULTIMAN_CLONE 0x80000000 |
| 539 | #define SF_MULTIMAN_THREAD 0x00000001 |
| 540 | |
| 541 | /** |
| 542 | * env_render |
| 543 | * @note These are flags to indicate masking off various render parameters that |
| 544 | * are usually copied to the targets |
| 545 | */ |
| 546 | #define SF_RENDER_MASKFX (1<<0) |
| 547 | #define SF_RENDER_MASKAMT (1<<1) |
| 548 | #define SF_RENDER_MASKMODE (1<<2) |
| 549 | #define SF_RENDER_MASKCOLOR (1<<3) |
| 550 | |
| 551 | /** |
| 552 | * trigger_changelevel |
| 553 | */ |
| 554 | #define SF_CHANGELEVEL_USEONLY 0x0002 |
| 555 | |
| 556 | /** |
| 557 | * trigger_endsection |
| 558 | */ |
| 559 | #define SF_ENDSECTION_USEONLY 0x0001 |
| 560 | |
| 561 | /** |
| 562 | * trigger_camera |
| 563 | */ |
| 564 | #define SF_CAMERA_PLAYER_POSITION 1 |
| 565 | #define SF_CAMERA_PLAYER_TARGET 2 |
| 566 | #define SF_CAMERA_PLAYER_TAKECONTROL 4 |
| 567 | |
| 568 | /** |
| 569 | * func_rotating |
| 570 | */ |
| 571 | #define SF_BRUSH_ROTATE_Y_AXIS 0 |
| 572 | #define SF_BRUSH_ROTATE_INSTANT 1 |
| 573 | #define SF_BRUSH_ROTATE_BACKWARDS 2 |
| 574 | #define SF_BRUSH_ROTATE_Z_AXIS 4 |
| 575 | #define SF_BRUSH_ROTATE_X_AXIS 8 |
| 576 | #define SF_PENDULUM_AUTO_RETURN 16 |
| 577 | #define SF_PENDULUM_PASSABLE 32 |
| 578 | #define SF_BRUSH_ROTATE_SMALLRADIUS 128 |
| 579 | #define SF_BRUSH_ROTATE_MEDIUMRADIUS 256 |
| 580 | #define SF_BRUSH_ROTATE_LARGERADIUS 512 |
| 581 | |
| 582 | /** |
| 583 | * triggers |
| 584 | */ |
| 585 | #define SF_TRIGGER_ALLOWMONSTERS 1 // Monsters allowed to fire this trigger |
| 586 | #define SF_TRIGGER_NOCLIENTS 2 // Players not allowed to fire this trigger |
| 587 | #define SF_TRIGGER_PUSHABLES 4 // Only pushables can fire this trigger |
| 588 | |
| 589 | #define SF_TRIG_PUSH_ONCE 1 |
| 590 | |
| 591 | /** |
| 592 | * trigger_multiple |
| 593 | */ |
| 594 | #define SF_TRIGGER_MULTIPLE_NOTOUCH 0x0001 |
| 595 | |
| 596 | /** |
| 597 | * trigger_counter |
| 598 | */ |
| 599 | #define SF_TRIGGER_COUNTER_NOMESSAGE 0x0001 |
| 600 | |
| 601 | /** |
| 602 | * func_breakable |
| 603 | */ |
| 604 | #define SF_BREAK_TRIGGER_ONLY 1 // May only be broken by trigger |
| 605 | #define SF_BREAK_TOUCH 2 // Can be 'crashed through' by running player (plate glass) |
| 606 | #define SF_BREAK_PRESSURE 4 // Can be broken by a player standing on it |
| 607 | #define SF_BREAK_CROWBAR 256 // Instant break if hit with crowbar |
| 608 | |
| 609 | /** |
| 610 | * func_pushable (also func_breakable, so don't collide with those flags) |
| 611 | */ |
| 612 | #define SF_PUSH_BREAKABLE 128 |
| 613 | |
| 614 | /** |
| 615 | * light_spawn |
| 616 | */ |
| 617 | #define SF_LIGHT_START_OFF 1 |
| 618 | #define SPAWNFLAG_NOMESSAGE 1 |
| 619 | #define SPAWNFLAG_NOTOUCH 1 |
| 620 | #define SPAWNFLAG_DROIDONLY 4 |
| 621 | #define SPAWNFLAG_USEONLY 1 // Can't be touched, must be used (buttons) |
| 622 | |
| 623 | /** |
| 624 | * Monster Spawnflags |
| 625 | */ |
| 626 | #define SF_MONSTER_WAIT_TILL_SEEN 1 // Spawnflag that makes monsters wait until player can see them before attacking |
| 627 | #define SF_MONSTER_GAG 2 // No idle noises from this monster |
| 628 | #define SF_MONSTER_HITMONSTERCLIP 4 |
| 629 | #define SF_MONSTER_PRISONER 16 // Monster won't attack anyone, no one will attacke him |
| 630 | #define SF_MONSTER_WAIT_FOR_SCRIPT 128 // Spawnflag that makes monsters wait to check for attacking until the script is done or they've been attacked |
| 631 | #define SF_MONSTER_PREDISASTER 256 // This is a predisaster scientist or barney; influences how they speak |
| 632 | #define SF_MONSTER_FADECORPSE 512 // Fade out corpse after death |
| 633 | #define SF_MONSTER_FALL_TO_GROUND 0x80000000 |
| 634 | #define SF_MONSTER_TURRET_AUTOACTIVATE 32 |
| 635 | #define SF_MONSTER_TURRET_STARTINACTIVE 64 |
| 636 | #define SF_MONSTER_WAIT_UNTIL_PROVOKED 64 // Don't attack the player unless provoked |
| 637 | |
| 638 | /** |
| 639 | * info_decal |
| 640 | */ |
| 641 | #define SF_DECAL_NOTINDEATHMATCH 2048 |
| 642 | |
| 643 | /** |
| 644 | * worldspawn |
| 645 | */ |
| 646 | #define SF_WORLD_DARK 0x0001 // Fade from black at startup |
| 647 | #define SF_WORLD_TITLE 0x0002 // Display game title at startup |
| 648 | #define SF_WORLD_FORCETEAM 0x0004 // Force teams |
| 649 | |
| 650 | /** |
| 651 | * Set this bit on guns and stuff that should never respawn |
| 652 | */ |
| 653 | #define SF_NORESPAWN (1<<30) |
| 654 | |
| 655 | /** |
| 656 | * @endsection |
| 657 | */ |
| 658 | |
| 659 | /** |
| 660 | * Train status values |
| 661 | */ |
| 662 | #define TRAIN_ACTIVE 0x80 |
| 663 | #define TRAIN_NEW 0xc0 |
| 664 | |
| 665 | #define TRAIN_OFF 0x00 |
| 666 | #define TRAIN_NEUTRAL 0x01 |
| 667 | #define TRAIN_SLOW 0x02 |
| 668 | #define TRAIN_MEDIUM 0x03 |
| 669 | #define TRAIN_FAST 0x04 |
| 670 | #define TRAIN_BACK 0x05 |
| 671 | |
| 672 | /** |
| 673 | * Valve Mod Weapon Constants |
| 674 | */ |
| 675 | #define HLI_HEALTHKIT 1 |
| 676 | #define HLI_ANTIDOTE 2 |
| 677 | #define HLI_SECURITY 3 |
| 678 | #define HLI_BATTERY 4 |
| 679 | |
| 680 | #define HLW_NONE 0 |
| 681 | #define HLW_CROWBAR 1 |
| 682 | #define HLW_GLOCK 2 |
| 683 | #define HLW_PYTHON 3 |
| 684 | #define HLW_MP5 4 |
| 685 | #define HLW_CHAINGUN 5 |
| 686 | #define HLW_CROSSBOW 6 |
| 687 | #define HLW_SHOTGUN 7 |
| 688 | #define HLW_RPG 8 |
| 689 | #define HLW_GAUSS 9 |
| 690 | #define HLW_EGON 10 |
| 691 | #define HLW_HORNETGUN 11 |
| 692 | #define HLW_HANDGRENADE 12 |
| 693 | #define HLW_TRIPMINE 13 |
| 694 | #define HLW_SATCHEL 14 |
| 695 | #define HLW_SNARK 15 |
| 696 | #define HLW_SUIT 31 |
| 697 | #define HLW_ALLWEAPONS (~(1<<HLW_SUIT)) |
| 698 | |
| 699 | /** |
| 700 | * Item's flags |
| 701 | */ |
| 702 | #define ITEM_FLAG_SELECTONEMPTY (1<<0) |
| 703 | #define ITEM_FLAG_NOAUTORELOAD (1<<1) |
| 704 | #define ITEM_FLAG_NOAUTOSWITCHEMPTY (1<<2) |
| 705 | #define ITEM_FLAG_LIMITINWORLD (1<<3) |
| 706 | #define ITEM_FLAG_EXHAUSTIBLE (1<<4) |
| 707 | |
| 708 | /** |
| 709 | * PlaybackEvent flags |
| 710 | */ |
| 711 | #define FEV_NOTHOST (1<<0) // Skip local host for event send. |
| 712 | #define FEV_RELIABLE (1<<1) // Send the event reliably. You must specify the origin and angles |
| 713 | // for this to work correctly on the server for anything |
| 714 | // that depends on the event origin/angles. I.e., the origin/angles are not |
| 715 | // taken from the invoking edict for reliable events. |
| 716 | #define FEV_GLOBAL (1<<2) // Don't restrict to PAS/PVS, send this event to _everybody_ on the server ( useful for stopping CHAN_STATIC |
| 717 | // sounds started by client event when client is not in PVS anymore ( hwguy in TFC e.g. ). |
| 718 | #define FEV_UPDATE (1<<3) // If this client already has one of these events in its queue, just update the event instead of sending it as a duplicate |
| 719 | #define FEV_HOSTONLY (1<<4) // Only send to entity specified as the invoker |
| 720 | #define FEV_SERVER (1<<5) // Only send if the event was created on the server. |
| 721 | #define FEV_CLIENT (1<<6) // Only issue event client side ( from shared code ) |
| 722 | |
| 723 | /** |
| 724 | * Cap bits to indicate what an object's capabilities are, currently used for |
| 725 | * save/restore and level transitions. |
| 726 | */ |
| 727 | #define FCAP_CUSTOMSAVE 0x00000001 |
| 728 | #define FCAP_ACROSS_TRANSITION 0x00000002 // should transfer between transitions |
| 729 | #define FCAP_MUST_SPAWN 0x00000004 // Spawn after restore |
| 730 | #define FCAP_DONT_SAVE 0x80000000 // Don't save this |
| 731 | #define FCAP_IMPULSE_USE 0x00000008 // can be used by the player |
| 732 | #define FCAP_CONTINUOUS_USE 0x00000010 // can be used by the player |
| 733 | #define FCAP_ONOFF_USE 0x00000020 // can be used by the player |
| 734 | #define FCAP_DIRECTIONAL_USE 0x00000040 // Player sends +/- 1 when using (currently only tracktrains) |
| 735 | #define FCAP_MASTER 0x00000080 // Can be used to "master" other entities (like multisource) |
| 736 | #define FCAP_MUST_RESET 0x00000100 // Should reset on the new round |
| 737 | #define FCAP_MUST_RELEASE 0x00000200 // Should release on the new round |
| 738 | #define FCAP_DONT_SAVE 0x80000000 // Don't save this |
| 739 | |
| 740 | // UNDONE: This will ignore transition volumes (trigger_transition), but not the PVS!!! |
| 741 | #define FCAP_FORCE_TRANSITION 0x00000080 // ALWAYS goes across transitions |
| 742 | |
| 743 | /** |
| 744 | * All monsters need this data |
| 745 | */ |
| 746 | #define DONT_BLEED -1 |
| 747 | #define BLOOD_COLOR_RED 247 |
| 748 | #define BLOOD_COLOR_YELLOW 195 |
| 749 | #define BLOOD_COLOR_GREEN BLOOD_COLOR_YELLOW |
| 750 | |
| 751 | /** |
| 752 | * Player physics flags |
| 753 | */ |
| 754 | #define PFLAG_ONLADDER (1<<0) |
| 755 | #define PFLAG_ONSWING (1<<0) |
| 756 | #define PFLAG_ONTRAIN (1<<1) |
| 757 | #define PFLAG_ONBARNACLE (1<<2) |
| 758 | #define PFLAG_DUCKING (1<<3) // In the process of ducking, but totally squatted yet |
| 759 | #define PFLAG_USING (1<<4) // Using a continuous entity |
| 760 | #define PFLAG_OBSERVER (1<<5) // Player is locked in stationary cam mode. Spectators can move, observers can't. |
| 761 | |
| 762 | /** |
| 763 | * Player hide HUD values |
| 764 | */ |
| 765 | #define HIDEHUD_WEAPONS (1<<0) |
| 766 | #define HIDEHUD_FLASHLIGHT (1<<1) |
| 767 | #define HIDEHUD_ALL (1<<2) |
| 768 | #define HIDEHUD_HEALTH (1<<3) |
| 769 | #define HIDEHUD_TIMER (1<<4) |
| 770 | #define HIDEHUD_MONEY (1<<5) |
| 771 | #define HIDEHUD_CROSSHAIR (1<<6) |
| 772 | #define HIDEHUD_OBSERVER_CROSSHAIR (1<<7) |
| 773 | |
| 774 | /** |
| 775 | * Entity classification |
| 776 | */ |
| 777 | #define CLASS_NONE 0 |
| 778 | #define CLASS_MACHINE 1 |
| 779 | #define CLASS_PLAYER 2 |
| 780 | #define CLASS_HUMAN_PASSIVE 3 |
| 781 | #define CLASS_HUMAN_MILITARY 4 |
| 782 | #define CLASS_ALIEN_MILITARY 5 |
| 783 | #define CLASS_ALIEN_PASSIVE 6 |
| 784 | #define CLASS_ALIEN_MONSTER 7 |
| 785 | #define CLASS_ALIEN_PREY 8 |
| 786 | #define CLASS_ALIEN_PREDATOR 9 |
| 787 | #define CLASS_INSECT 10 |
| 788 | #define CLASS_PLAYER_ALLY 11 |
| 789 | #define CLASS_PLAYER_BIOWEAPON 12 // hornets and snarks.launched by players |
| 790 | #define CLASS_ALIEN_BIOWEAPON 13 // hornets and snarks.launched by the alien menace |
| 791 | #define CLASS_VEHICLE 14 |
| 792 | #define CLASS_BARNACLE 99 // special because no one pays attention to it, and it eats a wide cross-section of creatures. |
| 793 | |
| 794 | /** |
| 795 | * Entities that toggle (buttons/triggers/doors) need this |
| 796 | */ |
| 797 | #define TS_AT_TOP 0 |
| 798 | #define TS_AT_BOTTOM 1 |
| 799 | #define TS_GOING_UP 2 |
| 800 | #define TS_GOING_DOWN 3 |
| 801 | |
| 802 | /** |
| 803 | * Entity use states (buttons/triggers/platforms) |
| 804 | */ |
| 805 | #define USE_OFF 0 |
| 806 | #define USE_ON 1 |
| 807 | #define USE_SET 2 |
| 808 | #define USE_TOGGLE 3 |
| 809 | |