2010-07-22 01:46:14 -05:00
# ifndef ASW_SHAREDDEFS_H
# define ASW_SHAREDDEFS_H
# ifdef _WIN32
# pragma once
# endif
# include "const.h"
# define ASW_MAX_PLAYER_NAME_LENGTH 32
# define ASW_MAX_PLAYER_NAME_LENGTH_3D 20
enum ASW_Inventory_slot_t
{
ASW_INVENTORY_SLOT_PRIMARY = 0 ,
ASW_INVENTORY_SLOT_SECONDARY = 1 ,
ASW_INVENTORY_SLOT_EXTRA ,
ASW_NUM_INVENTORY_SLOTS ,
} ;
// Specifies whether a "Use" order utilizes an item, and if not, what kind of order it is
enum ASW_UseOrderTypes_t
{
ASW_USE_ORDER_WITH_ITEM , // requires an item be specified in the order message
ASW_USE_ORDER_HACK ,
ASW_NUM_USE_ORDERS
} ;
# define ASW_MIN_TUMBLERS_FAST_HACK 5 // how many tumblers a computer hack must have to qualify for the fast medal and the tracking timer bar
# define ASW_MAX_ENTRIES_PER_TUMBLER 8
# define ASW_MIN_ENTRIES_PER_TUMBLER 4
bool MedalMatchesAchievement ( int nMedalIndex , int nAchievementIndex ) ;
int GetAchievementIndexForMedal ( int nMedalIndex ) ;
enum ASW_Skill_Slot
{
ASW_SKILL_SLOT_0 = 0 ,
ASW_SKILL_SLOT_1 ,
ASW_SKILL_SLOT_2 ,
ASW_SKILL_SLOT_3 ,
ASW_SKILL_SLOT_4 ,
ASW_SKILL_SLOT_SPARE ,
ASW_NUM_SKILL_SLOTS
} ;
# define ASW_SKILL_POINTS_PER_MISSION 2
# define ENGINEERING_AURA_RADIUS 300
# define ASW_MAX_PLAYERS 6 // currently limiting the game to 6 players, more than that feels chaotic
# define ASW_MAX_READY_PLAYERS 8 // max number of slots for ready players in the game resource
# define ASW_MAX_MARINE_RESOURCES 5
# define ASW_MAX_OBJECTIVES 25
# define ASW_PLAYER_MAX_USE_ENTS 3
# define ASW_PLAYER_VIEW_OFFSET Vector( 0, 0, 53.5 )
# define ASW_MARINE_GUN_OFFSET_X 25.0f
# define ASW_MARINE_GUN_OFFSET_Y 4.0f
# define ASW_MARINE_GUN_OFFSET_Z 34.0f
// was: 55.0f
# define PUSHAWAY_THINK_INTERVAL (1.0f / 20.0f)
// Re-use the vehicle crosshair hidehud bit for our remote turrets
# define HIDEHUD_REMOTE_TURRET ( HIDEHUD_VEHICLE_CROSSHAIR ) // player is using a remote turret
// Re-use base damage bits
# define DMG_INFEST (DMG_AIRBOAT) // damage from parasite infestation
# define DMG_BLURPOISON (DMG_POISON) // damage from buzzers, blurs the player's view
# define DMG_GIB_CORPSE ( DMG_CRUSH | DMG_FALL | DMG_BLAST | DMG_SONIC | DMG_CLUB | DMG_INFEST )
# define ASW_MAX_MELEE_ATTACKS 64
# define ASW_MAX_PREDICTED_MELEE_EVENTS 16
# define MELEE_BUTTON IN_ALT1
enum ASW_Marine_Class
{
MARINE_CLASS_UNDEFINED = - 1 ,
MARINE_CLASS_NCO = 0 ,
MARINE_CLASS_SPECIAL_WEAPONS ,
MARINE_CLASS_MEDIC ,
MARINE_CLASS_TECH ,
NUM_MARINE_CLASSES
} ;
enum ASW_Melee_Movement_t
{
MELEE_MOVEMENT_ANIMATION_ONLY ,
MELEE_MOVEMENT_FALLING_ONLY ,
MELEE_MOVEMENT_FULL ,
} ;
enum ASW_Jump_Jet_t
{
JJ_NONE = 0 ,
JJ_CHARGE = 1 ,
JJ_JUMP_JETS = 2 ,
JJ_BLINK = 3 ,
} ;
// hack options
enum
{
ASW_HACK_OPTION_ICON_0 = 0 ,
ASW_HACK_OPTION_ICON_1 , // computers can display up to 6 customised icons
ASW_HACK_OPTION_ICON_2 ,
ASW_HACK_OPTION_ICON_3 ,
ASW_HACK_OPTION_ICON_4 ,
ASW_HACK_OPTION_ICON_5 ,
ASW_HACK_OPTION_ICON_6 ,
ASW_HACK_OPTION_OVERRIDE // special option to launch the override hacking puzzle
} ;
// how many slots are in the ammo bag
# define ASW_AMMO_BAG_SLOTS 7
// use icon priorities
# define ASW_USE_PRIORITY_PICKUP 5
# define ASW_USE_PRIORITY_USE_AREA 4
# define ASW_MARINE_USE_RADIUS 100.0f
# define ASW_MARINE_HEALPERTICK_MAX 4
# define ASW_MARINE_HEALTICK_RATE 0.33f
# define ASW_FLARE_AUTOAIM_DOT 0.4f
// movement uses this axis to decide where the marine should go from his forward/sidemove
# define ASW_MOVEMENT_AXIS QAngle(0,90,0)
# define ASW_SCANNER_MAX_BLIPS 32
# define ASW_MAX_EQUIP_SLOTS 3
# define ASW_MAX_MARINE_WEAPONS ASW_MAX_EQUIP_SLOTS // an ASW marine shouldn't have more than this many weapons in its m_hWeapons
// asw light indices
enum
{
//LIGHT_INDEX_TE_DYNAMIC = 0x10000000,
//LIGHT_INDEX_PLAYER_BRIGHT = 0x20000000,
//LIGHT_INDEX_MUZZLEFLASH = 0x40000000,
ASW_LIGHT_INDEX_FLASHLIGHT = 0x60000000 ,
ASW_LIGHT_INDEX_FIRES = 0x64000000 ,
} ;
# define SWARM_DRONE_MODEL "models / swarm / drone / Drone.mdl"
# define SWARM_NEW_DRONE_MODEL "models / aliens / drone / drone.mdl"
# define SWARM_HARVESTER_MODEL "models / swarm / harvester / Harvester.mdl"
# define SWARM_SHIELDBUG_MODEL "models / swarm / Shieldbug / Shieldbug.mdl"
# define SWARM_NEW_SHIELDBUG_MODEL "models / aliens / Shieldbug / Shieldbug.mdl"
# define SWARM_MORTARBUG_MODEL "models / aliens / mortar / mortar.mdl"
# define SWARM_NEW_HARVESTER_MODEL "models / aliens / harvester / harvester.mdl"
# define ASW_BLIP_SPEECH_INTERVAL 10.0f
// when time scale drops below this, the stim cam will appear
# define ASW_STIM_CAM_TIME 0.6f
// asw profiling
# define VPROF_BUDGETGROUP_ASW_CLIENT _T("Swarm Client")
// how many marine profiles there are (used by the campaign save system)
# define ASW_NUM_MARINE_PROFILES 8
// !!NOTE!! - these numbers are hardcoded into engine's Host_cmd.cpp too :(
# define ASW_MAX_PLAYERS_PER_SAVE 10
# define ASW_MAX_MISSIONS_PER_CAMPAIGN 32
# define ASW_CURRENT_SAVE_VERSION 1
// must follow from last HUD_ entry in shareddefs.h
# define ASW_HUD_PRINTTALKANDCONSOLE 5
enum ASW_Orders
{
ASW_ORDER_HOLD_POSITION ,
ASW_ORDER_FOLLOW ,
ASW_ORDER_MOVE_TO ,
ASW_ORDER_USE_OFFHAND_ITEM ,
} ;
// Map markers
# define ASW_NUM_MAP_MARKS 32
enum MapMarkType
{
MMT_BRACKETS ,
MMT_CROSS
} ;
struct ObjectiveMapMark
{
MapMarkType type ;
bool bComplete ;
bool bEnabled ;
int x , y , w , h ;
} ;
// impulse commands used to send hack tumbler commands
# define ASW_IMPULSE_REVERSE_TUMBLER_1 150
# define ASW_IMPULSE_REVERSE_TUMBLER_2 151
# define ASW_IMPULSE_REVERSE_TUMBLER_3 152
# define ASW_IMPULSE_REVERSE_TUMBLER_4 153
# define ASW_IMPULSE_REVERSE_TUMBLER_5 154
# define ASW_IMPULSE_REVERSE_TUMBLER_6 155
# define ASW_IMPULSE_REVERSE_TUMBLER_7 156
# define ASW_IMPULSE_REVERSE_TUMBLER_8 157
// max number of tumblers in the computer hack
# define ASW_HACK_COMPUTER_MAX_TUMBLERS 8
// egg gib flags
# define EGG_FLAG_OPEN 0x0001
# define EGG_FLAG_HATCH 0x0002
# define EGG_FLAG_DIE 0x0004
# define EGG_FLAG_GRUBSACK_DIE 0x0008
// door healths and break fractions
# define ASW_DOOR_REINFORCED_HEALTH 2400
# define ASW_DOOR_NORMAL_HEALTH 1800
# define ASW_DOOR_PARTIAL_DENT_HEALTH 0.66f
# define ASW_DOOR_COMPLETE_DENT_HEALTH 0.33f
// DamageCustom flags for CTakeDamageInfo
# define DAMAGE_FLAG_WEAKSPOT 0x0001
# define DAMAGE_FLAG_CRITICAL 0x0002
# define DAMAGE_FLAG_T75 0x0004
# define DAMAGE_FLAG_NO_FALLOFF 0x0008
# define DAMAGE_FLAG_HALF_FALLOFF 0x0010
enum {
ASW_VOTE_NONE = 0 ,
ASW_VOTE_SAVED_CAMPAIGN ,
ASW_VOTE_CHANGE_MISSION ,
} ;
# define ASW_GIBFLAG_ON_FIRE 0x001
# define ASW_NUM_FIRE_EMITTERS 4
enum
{
ASW_COLLISION_GROUP_GRUBS = LAST_SHARED_COLLISION_GROUP ,
ASW_COLLISION_GROUP_PARASITE ,
ASW_COLLISION_GROUP_ALIEN ,
// HOUNDEYE = grubs
ASW_COLLISION_GROUP_MARINE_POSITION_PREDICTION , // asw
ASW_COLLISION_GROUP_SHOTGUN_PELLET , // asw
ASW_COLLISION_GROUP_EGG , // asw (alien eggs)
ASW_COLLISION_GROUP_BLOCK_DRONES , // asw
ASW_COLLISION_GROUP_BIG_ALIEN , // asw (shieldbug, queen)
ASW_COLLISION_GROUP_BUZZER ,
ASW_COLLISION_GROUP_BODY_SNATCHER , // asw (shieldbug, queen)
ASW_COLLISION_GROUP_GRENADES , // doesn't collide with marines
ASW_COLLISION_GROUP_NPC_GRENADES , // doesn't collide with npcs
ASW_COLLISION_GROUP_BLOB_TINY ,
ASW_COLLISION_GROUP_ALIEN_MISSILE , // collides with non-alien NPCs
ASW_COLLISION_GROUP_PLAYER_MISSILE , // collides with aliens, not players
ASW_COLLISION_GROUP_SENTRY , // collides with aliens
ASW_COLLISION_GROUP_SENTRY_PROJECTILE , // collides with aliens, marines and doors - nothing else (this is used for the sentry particles)
ASW_COLLISION_GROUP_BLOCK_ALIENS , // asw
ASW_COLLISION_GROUP_IGNORE_NPCS , // asw (fire walls spreading, collides with everything but aliens, marines) NOTE: Has to be after any NPC collision groups
ASW_COLLISION_GROUP_FLAMER_PELLETS , // the pellets that the flamer shoots. Doesn not collide with small aliens or marines, DOES collide with doors and shieldbugs
ASW_COLLISION_GROUP_EXTINGUISHER_PELLETS , // the pellets that the extinguisher shoots. Hits lots of things, but not other weapons
ASW_COLLISION_GROUP_PASSABLE , // asw (stuff you can walk through) NOTE: Has to be LAST!
HL2COLLISION_GROUP_COMBINE_BALL_NPC ,
} ;
enum FailAdviceMessage
{
ASW_FAIL_ADVICE_DEFAULT = 0 ,
ASW_FAIL_ADVICE_LOW_AMMO ,
ASW_FAIL_ADVICE_INFESTED_LOTS ,
ASW_FAIL_ADVICE_INFESTED ,
ASW_FAIL_ADVICE_SWARMED ,
ASW_FAIL_ADVICE_FRIENDLY_FIRE ,
ASW_FAIL_ADVICE_HACKER_DAMAGED ,
ASW_FAIL_ADVICE_WASTED_HEALS ,
ASW_FAIL_ADVICE_IGNORED_HEALING ,
ASW_FAIL_ADVICE_IGNORED_ADRENALINE ,
ASW_FAIL_ADVICE_IGNORED_SECONDARY ,
ASW_FAIL_ADVICE_IGNORED_WELDER ,
ASW_FAIL_ADVICE_IGNORED_LIGHTING , // TODO
ASW_FAIL_ADVICE_SLOW_PROGRESSION ,
ASW_FAIL_ADVICE_SHIELD_BUG ,
ASW_FAIL_ADVICE_DIED_ALONE ,
ASW_FAIL_ADVICE_NO_MEDICS ,
ASW_FAIL_ADVICE_TOTAL
} ;
enum PowerUpTypes
{
POWERUP_TYPE_FREEZE_BULLETS = 0 ,
POWERUP_TYPE_FIRE_BULLETS ,
POWERUP_TYPE_ELECTRIC_BULLETS ,
//POWERUP_TYPE_CHEMICAL_BULLETS,
//POWERUP_TYPE_EXPLOSIVE_BULLETS,
// all gun powerups that get removed on reload should go above here
POWERUP_TYPE_INCREASED_SPEED ,
NUM_POWERUP_TYPES
} ;
# define ASW_MOVEMENT_WALK_SPEED 150
# define ASW_MOVEMENT_NORM_SPEED 190
# define HL2COLLISION_GROUP_FIRST_NPC ASW_COLLISION_GROUP_GRUBS
# define HL2COLLISION_GROUP_LAST_NPC ASW_COLLISION_GROUP_ALIEN
bool IsAlienCollisionGroup ( int iCollisionGroup ) ;
# define IN_ASW_STOP (1 << 26) // asw: this button will stop the marine's x/y motion immediately (used to hold him still while he plays stationary animations, also may be need for clientside avoidance)
bool IsAlienClass ( Class_T npc_class ) ;
bool IsDamagingWeaponClass ( Class_T entity_class ) ;
bool IsWeaponClass ( Class_T entity_class ) ;
bool IsBulletBasedWeaponClass ( Class_T entity_class ) ;
bool IsSentryClass ( Class_T entity_class ) ;
bool CanMarineGetStuckOnProp ( const char * szModelName ) ;
//-----------------------------------------------------------------------------
// Alien projectiles
//-----------------------------------------------------------------------------
class CASW_AlienShot
{
public :
CASW_AlienShot ( )
{
m_flSize = 0.0f ;
m_flDamage_direct = 0.0f ;
m_flDamage_splash = 0.0f ;
m_flSeek_strength = 0.0f ;
m_flGravity = 0.0f ;
m_flFuse = 0.0f ;
m_flBounce = 0.0f ;
m_bShootable = false ;
}
CASW_AlienShot ( const CASW_AlienShot & shot )
{
m_strName = shot . m_strName ;
m_flSize = shot . m_flSize ;
m_flDamage_direct = shot . m_flDamage_direct ;
m_flDamage_splash = shot . m_flDamage_splash ;
m_flSeek_strength = shot . m_flSeek_strength ;
m_flGravity = shot . m_flGravity ;
m_flFuse = shot . m_flFuse ;
m_flBounce = shot . m_flBounce ;
m_bShootable = shot . m_bShootable ;
m_strModel = shot . m_strModel ;
m_strSound_spawn = shot . m_strSound_spawn ;
m_strSound_hitNPC = shot . m_strSound_hitNPC ;
m_strSound_hitWorld = shot . m_strSound_hitWorld ;
m_strParticles_trail = shot . m_strParticles_trail ;
m_strParticles_hit = shot . m_strParticles_hit ;
}
public :
CUtlString m_strName ;
float m_flSize ;
float m_flDamage_direct ;
float m_flDamage_splash ; //FIXME: not implemented yet
float m_flSeek_strength ; //FIXME: not implemented yet
float m_flGravity ;
float m_flFuse ;
float m_flBounce ;
bool m_bShootable ;
CUtlString m_strModel ;
CUtlString m_strSound_spawn ;
CUtlString m_strSound_hitNPC ;
CUtlString m_strSound_hitWorld ;
CUtlString m_strParticles_trail ;
CUtlString m_strParticles_hit ;
} ;
class CASW_AlienVolleyRound
{
public :
CASW_AlienVolleyRound ( )
{
m_flTime = 0.0f ;
m_flStartAngle = 0.0f ;
m_flEndAngle = 0.0f ;
m_nNumShots = 0 ;
m_flShotDelay = 0.0f ;
m_flSpeed = 0.0f ;
m_flHorizontalOffset = 0.0f ;
}
CASW_AlienVolleyRound ( const CASW_AlienVolleyRound & volley )
{
m_flTime = volley . m_flTime ;
m_nShot_type = volley . m_nShot_type ;
m_flStartAngle = volley . m_flStartAngle ;
m_flEndAngle = volley . m_flEndAngle ;
m_nNumShots = volley . m_nNumShots ;
m_flShotDelay = volley . m_flShotDelay ;
m_flSpeed = volley . m_flSpeed ;
m_flHorizontalOffset = volley . m_flHorizontalOffset ;
}
public :
float m_flTime ;
int m_nShot_type ;
float m_flStartAngle ;
float m_flEndAngle ;
int m_nNumShots ;
float m_flShotDelay ;
float m_flSpeed ;
float m_flHorizontalOffset ;
} ;
class CASW_AlienVolley
{
public :
CASW_AlienVolley ( ) { }
CASW_AlienVolley ( const CASW_AlienVolley & volley )
{
m_strName = volley . m_strName ;
m_rounds . SetCount ( volley . m_rounds . Count ( ) ) ;
for ( int i = 0 ; i < m_rounds . Count ( ) ; i + + )
{
m_rounds [ i ] = volley . m_rounds [ i ] ;
}
}
public :
CUtlString m_strName ;
CUtlVector < CASW_AlienVolleyRound > m_rounds ;
} ;
// For CLASSIFY
enum
{
// Alien Swarm AI
// Be sure to add appropriate checks in IsAlienClass() in asw_shareddefs.cpp
// and s_alienClasses in asw_gamerules.cpp
// CLASS_BLOB = tiny blob
//////////////////////////////////////////////////////////////////////////
// IMPORTANT: New classes need to be added to the end of this list otherwise
// it throws off the stats reporting page (one build has CLASS_ASW_RIFLE = 60,
// the next has ASW_CLASS_RIFLE = 61, bad juju) Thanks ^_^
//////////////////////////////////////////////////////////////////////////
CLASS_ASW_DRONE = LAST_SHARED_ENTITY_CLASS ,
CLASS_ASW_SHIELDBUG ,
CLASS_ASW_PARASITE ,
CLASS_ASW_UNKNOWN ,
CLASS_ASW_HARVESTER ,
CLASS_ASW_GRUB ,
CLASS_ASW_HYDRA ,
CLASS_ASW_BLOB ,
CLASS_ASW_SENTRY_GUN ,
CLASS_ASW_BUTTON_PANEL ,
CLASS_ASW_COMPUTER_AREA ,
CLASS_ASW_DOOR_AREA ,
CLASS_ASW_DOOR ,
CLASS_ASW_MARINE ,
CLASS_ASW_COLONIST ,
CLASS_ASW_BOOMER ,
CLASS_ASW_BOOMERMINI ,
CLASS_ASW_MEATBUG ,
CLASS_ASW_QUEEN ,
CLASS_ASW_BUZZER ,
CLASS_ASW_QUEEN_DIVER ,
CLASS_ASW_QUEEN_GRABBER ,
CLASS_ASW_ALIEN_GOO ,
CLASS_ASW_T75 ,
CLASS_ASW_SHAMAN ,
CLASS_ASW_EGG ,
CLASS_ASW_RUNNER ,
CLASS_ASW_MORTAR_BUG ,
CLASS_ASW_RANGER ,
CLASS_ASW_FLOCK ,
CLASS_ASW_SPAWNER ,
CLASS_ASW_HOLDOUT_SPAWNER ,
CLASS_ASW_SPAWN_GROUP ,
CLASS_ASW_NIGHT_VISION ,
CLASS_ASW_SNIPER_RIFLE ,
CLASS_ASW_STATUE ,
CLASS_ASW_BAIT ,
CLASS_ASW_FRIENDLY_ALIEN ,
CLASS_ASW_RIFLE ,
CLASS_ASW_MINIGUN ,
CLASS_ASW_PDW ,
CLASS_ASW_FLECHETTE ,
CLASS_ASW_FIRE_EXTINGUISHER ,
CLASS_ASW_WELDER ,
CLASS_ASW_TESLA_TRAP ,
CLASS_ASW_STIM ,
CLASS_ASW_SHOTGUN ,
CLASS_ASW_SENTRY_FLAMER ,
CLASS_ASW_SENTRY_CANNON ,
CLASS_ASW_SENTRY_FREEZE ,
CLASS_ASW_RICOCHET ,
CLASS_ASW_RAILGUN ,
CLASS_ASW_PRIFLE ,
CLASS_ASW_PISTOL ,
CLASS_ASW_MINING_LASER ,
CLASS_ASW_MINES ,
CLASS_ASW_MEDKIT ,
CLASS_ASW_MEDICAL_SATCHEL ,
CLASS_ASW_LASER_MINES ,
CLASS_ASW_HORNET_BARRAGE ,
CLASS_ASW_HEALGRENADE ,
CLASS_ASW_GRENADES ,
CLASS_ASW_GRENADE_LAUNCHER ,
CLASS_ASW_FREEZE_GRENADES ,
CLASS_ASW_FLASHLIGHT ,
CLASS_ASW_FLARES ,
CLASS_ASW_FLAMER ,
CLASS_ASW_ELECTRIFIED_ARMOR ,
CLASS_ASW_CHAINSAW ,
CLASS_ASW_BUFF_GRENADE ,
CLASS_ASW_AUTOGUN ,
CLASS_ASW_ASSAULT_SHOTGUN ,
CLASS_ASW_AMMO_BAG ,
CLASS_ASW_AMMO_RIFLE ,
CLASS_ASW_AMMO_AUTOGUN ,
CLASS_ASW_AMMO_SHOTGUN ,
CLASS_ASW_AMMO_ASSAULT_SHOTGUN ,
CLASS_ASW_AMMO_FLAMER ,
CLASS_ASW_AMMO_PISTOL ,
CLASS_ASW_AMMO_MINING_LASER ,
CLASS_ASW_AMMO_RAILGUN ,
CLASS_ASW_AMMO_CHAINSAW ,
CLASS_ASW_AMMO_PDW ,
CLASS_ASW_RIFLE_GRENADE ,
CLASS_ASW_GRENADE_VINDICATOR ,
CLASS_ASW_GRENADE_CLUSER ,
CLASS_ASW_FLAMER_PROJECTILE ,
CLASS_ASW_BURNING ,
CLASS_ASW_GRENADE_PRIFLE ,
CLASS_ASW_TESLA_GUN ,
CLASS_ASW_HEAL_GUN ,
CLASS_ASW_SENTRY_GUN_CASE ,
CLASS_ASW_SENTRY_CANNON_CASE ,
CLASS_ASW_SENTRY_FLAMER_CASE ,
CLASS_ASW_SENTRY_FREEZE_CASE ,
CLASS_ASW_NORMAL_ARMOR ,
CLASS_ASW_MORTAR_SHELL ,
CLASS_ASW_SMART_BOMB ,
CLASS_ASW_FIST ,
CLASS_ASW_BLINK ,
CLASS_ASW_JUMP_JET ,
CLASS_ASW_AMMO_SATCHEL ,
CLASS_ASW_TESLA_TRAP_PROJECTILE ,
CLASS_ASW_LASER_MINE_PROJECTILE ,
CLASS_ASW_EXPLOSIVE_BARREL ,
CLASS_ASW_HEALGRENADE_PROJECTILE ,
CLASS_ASW_REMOTE_TURRET ,
CLASS_ASW_FIRE ,
CLASS_ASW_PHYSICS_PROP ,
CLASS_ASW_SENTRY_BASE , // bottom part of a deployed sentry gun
// Add new classes here ^^^^
LAST_ASW_ENTITY_CLASS ,
} ;
// Alien Swarm specific hitgroups
enum
{
HITGROUP_BONE_SHIELD = HITGROUP_GEAR + 1 ,
} ;
# define ASW_XP_CAP 42250
extern ConVar asw_visrange_generic ;
# ifdef CLIENT_DLL
// interface for entities that want to show health bars
DECLARE_AUTO_LIST ( IHealthTrackedAutoList ) ;
abstract_class IHealthTracked : public IHealthTrackedAutoList
{
public :
IHealthTracked ( bool bAutoAdd = true ) : IHealthTrackedAutoList ( bAutoAdd ) { }
virtual void PaintHealthBar ( class CASWHud3DMarineNames * pSurface ) = 0 ;
} ;
# endif
2010-10-11 17:51:21 -05:00
enum CASW_Flock_Leader_State
{
ASW_FL_CHASING = 0 ,
ASW_FL_CHARGING ,
ASW_FL_FLEEING ,
NUM_FLOCK_LEADER_STATES ,
} ;
2010-07-22 01:46:14 -05:00
# endif // ASW_SHAREDDEFS_H