aboutsummaryrefslogtreecommitdiff
path: root/mp/src/game/shared/props_shared.h
diff options
context:
space:
mode:
authorJørgen P. Tjernø <[email protected]>2013-12-02 19:31:46 -0800
committerJørgen P. Tjernø <[email protected]>2013-12-02 19:46:31 -0800
commitf56bb35301836e56582a575a75864392a0177875 (patch)
treede61ddd39de3e7df52759711950b4c288592f0dc /mp/src/game/shared/props_shared.h
parentMark some more files as text. (diff)
downloadsource-sdk-2013-f56bb35301836e56582a575a75864392a0177875.tar.xz
source-sdk-2013-f56bb35301836e56582a575a75864392a0177875.zip
Fix line endings. WHAMMY.
Diffstat (limited to 'mp/src/game/shared/props_shared.h')
-rw-r--r--mp/src/game/shared/props_shared.h504
1 files changed, 252 insertions, 252 deletions
diff --git a/mp/src/game/shared/props_shared.h b/mp/src/game/shared/props_shared.h
index 103730a8..ee849ed2 100644
--- a/mp/src/game/shared/props_shared.h
+++ b/mp/src/game/shared/props_shared.h
@@ -1,252 +1,252 @@
-//========= Copyright Valve Corporation, All rights reserved. ============//
-//
-// Purpose:
-//
-//=============================================================================//
-
-#ifndef PROPS_SHARED_H
-#define PROPS_SHARED_H
-#ifdef _WIN32
-#pragma once
-#endif
-
-#include "igamesystem.h"
-#include <KeyValues.h>
-
-// Phys prop spawnflags
-#define SF_PHYSPROP_START_ASLEEP 0x000001
-#define SF_PHYSPROP_DONT_TAKE_PHYSICS_DAMAGE 0x000002 // this prop can't be damaged by physics collisions
-#define SF_PHYSPROP_DEBRIS 0x000004
-#define SF_PHYSPROP_MOTIONDISABLED 0x000008 // motion disabled at startup (flag only valid in spawn - motion can be enabled via input)
-#define SF_PHYSPROP_TOUCH 0x000010 // can be 'crashed through' by running player (plate glass)
-#define SF_PHYSPROP_PRESSURE 0x000020 // can be broken by a player standing on it
-#define SF_PHYSPROP_ENABLE_ON_PHYSCANNON 0x000040 // enable motion only if the player grabs it with the physcannon
-#define SF_PHYSPROP_NO_ROTORWASH_PUSH 0x000080 // The rotorwash doesn't push these
-#define SF_PHYSPROP_ENABLE_PICKUP_OUTPUT 0x000100 // If set, allow the player to +USE this for the purposes of generating an output
-#define SF_PHYSPROP_PREVENT_PICKUP 0x000200 // If set, prevent +USE/Physcannon pickup of this prop
-#define SF_PHYSPROP_PREVENT_PLAYER_TOUCH_ENABLE 0x000400 // If set, the player will not cause the object to enable its motion when bumped into
-#define SF_PHYSPROP_HAS_ATTACHED_RAGDOLLS 0x000800 // Need to remove attached ragdolls on enable motion/etc
-#define SF_PHYSPROP_FORCE_TOUCH_TRIGGERS 0x001000 // Override normal debris behavior and respond to triggers anyway
-#define SF_PHYSPROP_FORCE_SERVER_SIDE 0x002000 // Force multiplayer physics object to be serverside
-#define SF_PHYSPROP_RADIUS_PICKUP 0x004000 // For Xbox, makes small objects easier to pick up by allowing them to be found
-#define SF_PHYSPROP_ALWAYS_PICK_UP 0x100000 // Physcannon can always pick this up, no matter what mass or constraints may apply.
-#define SF_PHYSPROP_NO_COLLISIONS 0x200000 // Don't enable collisions on spawn
-#define SF_PHYSPROP_IS_GIB 0x400000 // Limit # of active gibs
-
-// Any barrel farther away than this is ignited rather than exploded.
-#define PROP_EXPLOSION_IGNITE_RADIUS 32.0f
-
-// ParsePropData returns
-enum
-{
- PARSE_SUCCEEDED, // Parsed propdata. Prop must be a prop_physics.
- PARSE_SUCCEEDED_ALLOWED_STATIC, // Parsed propdata. Prop allowed to be prop_physics or prop_dynamic/prop_static.
- PARSE_FAILED_NO_DATA, // Parse failed, no propdata in model. Prop must be prop_dynamic/prop_static.
- PARSE_FAILED_BAD_DATA, // Parse failed, found propdata but it had bad data.
-};
-
-// Propdata defined interactions
-enum propdata_interactions_t
-{
- PROPINTER_PHYSGUN_WORLD_STICK, // "onworldimpact" "stick"
- PROPINTER_PHYSGUN_FIRST_BREAK, // "onfirstimpact" "break"
- PROPINTER_PHYSGUN_FIRST_PAINT, // "onfirstimpact" "paintsplat"
- PROPINTER_PHYSGUN_FIRST_IMPALE, // "onfirstimpact" "impale"
- PROPINTER_PHYSGUN_LAUNCH_SPIN_NONE, // "onlaunch" "spin_none"
- PROPINTER_PHYSGUN_LAUNCH_SPIN_Z, // "onlaunch" "spin_zaxis"
- PROPINTER_PHYSGUN_BREAK_EXPLODE, // "onbreak" "explode_fire"
- PROPINTER_PHYSGUN_DAMAGE_NONE, // "damage" "none"
-
- PROPINTER_FIRE_FLAMMABLE, // "flammable" "yes"
- PROPINTER_FIRE_EXPLOSIVE_RESIST, // "explosive_resist" "yes"
- PROPINTER_FIRE_IGNITE_HALFHEALTH, // "ignite" "halfhealth"
-
- PROPINTER_PHYSGUN_CREATE_FLARE, // "onpickup" "create_flare"
-
- PROPINTER_PHYSGUN_ALLOW_OVERHEAD, // "allow_overhead" "yes"
-
- PROPINTER_WORLD_BLOODSPLAT, // "onworldimpact", "bloodsplat"
-
- PROPINTER_PHYSGUN_NOTIFY_CHILDREN, // "onfirstimpact" cause attached flechettes to explode
-
- // If we get more than 32 of these, we'll need a different system
-
- PROPINTER_NUM_INTERACTIONS,
-};
-
-// Entities using COLLISION_GROUP_SPECIAL_PHYSICS should support this interface.
-abstract_class IMultiplayerPhysics
-{
-public:
- virtual int GetMultiplayerPhysicsMode() = 0;
- virtual float GetMass() = 0;
- virtual bool IsAsleep() = 0;
-};
-
-#define PHYSICS_MULTIPLAYER_AUTODETECT 0 // use multiplayer physics mode as defined in model prop data
-#define PHYSICS_MULTIPLAYER_SOLID 1 // soild, pushes player away
-#define PHYSICS_MULTIPLAYER_NON_SOLID 2 // nonsolid, but pushed by player
-#define PHYSICS_MULTIPLAYER_CLIENTSIDE 3 // Clientside only, nonsolid
-
-enum mp_break_t
-{
- MULTIPLAYER_BREAK_DEFAULT,
- MULTIPLAYER_BREAK_SERVERSIDE,
- MULTIPLAYER_BREAK_CLIENTSIDE,
- MULTIPLAYER_BREAK_BOTH
-};
-
-
-enum PerformanceMode_t
-{
- PM_NORMAL,
- PM_NO_GIBS,
- PM_FULL_GIBS,
- PM_REDUCED_GIBS,
-};
-
-
-//=============================================================================================================
-// PROP DATA
-//=============================================================================================================
-//-----------------------------------------------------------------------------
-// Purpose: Derive your entity from this if you want your entity to parse propdata
-//-----------------------------------------------------------------------------
-abstract_class IBreakableWithPropData
-{
-public:
- // Damage modifiers
- virtual void SetDmgModBullet( float flDmgMod ) = 0;
- virtual void SetDmgModClub( float flDmgMod ) = 0;
- virtual void SetDmgModExplosive( float flDmgMod ) = 0;
- virtual float GetDmgModBullet( void ) = 0;
- virtual float GetDmgModClub( void ) = 0;
- virtual float GetDmgModExplosive( void ) = 0;
-
- // Explosive
- virtual void SetExplosiveRadius( float flRadius ) = 0;
- virtual void SetExplosiveDamage( float flDamage ) = 0;
- virtual float GetExplosiveRadius( void ) = 0;
- virtual float GetExplosiveDamage( void ) = 0;
-
- // Physics damage tables
- virtual void SetPhysicsDamageTable( string_t iszTableName ) = 0;
- virtual string_t GetPhysicsDamageTable( void ) = 0;
-
- // Breakable chunks
- virtual void SetBreakableModel( string_t iszModel ) = 0;
- virtual string_t GetBreakableModel( void ) = 0;
- virtual void SetBreakableSkin( int iSkin ) = 0;
- virtual int GetBreakableSkin( void ) = 0;
- virtual void SetBreakableCount( int iCount ) = 0;
- virtual int GetBreakableCount( void ) = 0;
- virtual void SetMaxBreakableSize( int iSize ) = 0;
- virtual int GetMaxBreakableSize( void ) = 0;
-
- // LOS blocking
- virtual void SetPropDataBlocksLOS( bool bBlocksLOS ) = 0;
- virtual void SetPropDataIsAIWalkable( bool bBlocksLOS ) = 0;
-
- // Interactions
- virtual void SetInteraction( propdata_interactions_t Interaction ) = 0;
- virtual bool HasInteraction( propdata_interactions_t Interaction ) = 0;
-
- // Multiplayer physics mode
- virtual void SetPhysicsMode(int iMode) = 0;
- virtual int GetPhysicsMode() = 0;
-
- // Multiplayer breakable spawn behavior
- virtual void SetMultiplayerBreakMode( mp_break_t mode ) = 0;
- virtual mp_break_t GetMultiplayerBreakMode( void ) const = 0;
-
- // Used for debugging
- virtual void SetBasePropData( string_t iszBase ) = 0;
- virtual string_t GetBasePropData( void ) = 0;
-};
-
-//-----------------------------------------------------------------------------
-// Purpose: Gamesystem that parses the prop data file
-//-----------------------------------------------------------------------------
-class CPropData : public CAutoGameSystem
-{
-public:
- CPropData( void );
-
- // Inherited from IAutoServerSystem
- virtual void LevelInitPreEntity( void );
- virtual void LevelShutdownPostEntity( void );
-
- // Read in the data from the prop data file
- void ParsePropDataFile( void );
-
- // Parse a keyvalues section into the prop
- int ParsePropFromKV( CBaseEntity *pProp, KeyValues *pSection, KeyValues *pInteractionSection );
-
- // Fill out a prop's with base data parsed from the propdata file
- int ParsePropFromBase( CBaseEntity *pProp, const char *pszPropData );
-
- // Get a random chunk in the specified breakable section
- const char *GetRandomChunkModel( const char *pszBreakableSection, int iMaxSize = -1 );
-
-protected:
- KeyValues *m_pKVPropData;
- bool m_bPropDataLoaded;
-
- struct propdata_breakablechunk_t
- {
- string_t iszChunkType;
- CUtlVector<string_t> iszChunkModels;
- };
- CUtlVector<propdata_breakablechunk_t> m_BreakableChunks;
-};
-
-extern CPropData g_PropDataSystem;
-
-struct breakmodel_t
-{
- Vector offset;
- char modelName[512];
- char placementName[512];
- float fadeTime;
- float fadeMinDist;
- float fadeMaxDist;
- float health;
- float burstScale;
- int collisionGroup;
- bool isRagdoll;
- bool placementIsBone;
- bool isMotionDisabled;
- mp_break_t mpBreakMode;
-};
-
-struct breakablepropparams_t
-{
- breakablepropparams_t( const Vector &_origin, const QAngle &_angles, const Vector &_velocity, const AngularImpulse &_angularVelocity )
- : origin(_origin), angles(_angles), velocity(_velocity), angularVelocity(_angularVelocity)
- {
- impactEnergyScale = 0;
- defBurstScale = 0;
- defCollisionGroup = COLLISION_GROUP_NONE;
- }
-
- const Vector &origin;
- const QAngle &angles;
- const Vector &velocity;
- const AngularImpulse &angularVelocity;
- float impactEnergyScale;
- float defBurstScale;
- int defCollisionGroup;
-};
-
-const char *GetMassEquivalent(float flMass);
-int GetAutoMultiplayerPhysicsMode( Vector size, float mass );
-void BreakModelList( CUtlVector<breakmodel_t> &list, int modelindex, float defBurstScale, int defCollisionGroup );
-void PropBreakableCreateAll( int modelindex, IPhysicsObject *pPhysics, const breakablepropparams_t &params, CBaseEntity *pEntity, int iPrecomputedBreakableCount, bool bIgnoreGibLImit, bool defaultLocation = true );
-void PropBreakableCreateAll( int modelindex, IPhysicsObject *pPhysics, const Vector &origin, const QAngle &angles, const Vector &velocity, const AngularImpulse &angularVelocity, float impactEnergyScale, float burstScale, int collisionGroup, CBaseEntity *pEntity = NULL, bool defaultLocation = true );
-
-// Player gibs.
-void PrecacheGibsForModel( int iModel );
-void BuildGibList( CUtlVector<breakmodel_t> &list, int modelindex, float defBurstScale, int defCollisionGroup );
-CBaseEntity *CreateGibsFromList( CUtlVector<breakmodel_t> &list, int modelindex, IPhysicsObject *pPhysics, const breakablepropparams_t &params, CBaseEntity *pEntity, int iPrecomputedBreakableCount, bool bIgnoreGibLImit, bool defaultLocation = true, CUtlVector<EHANDLE> *pGibList = NULL, bool bBurning = false );
-
-#endif // PROPS_SHARED_H
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+//=============================================================================//
+
+#ifndef PROPS_SHARED_H
+#define PROPS_SHARED_H
+#ifdef _WIN32
+#pragma once
+#endif
+
+#include "igamesystem.h"
+#include <KeyValues.h>
+
+// Phys prop spawnflags
+#define SF_PHYSPROP_START_ASLEEP 0x000001
+#define SF_PHYSPROP_DONT_TAKE_PHYSICS_DAMAGE 0x000002 // this prop can't be damaged by physics collisions
+#define SF_PHYSPROP_DEBRIS 0x000004
+#define SF_PHYSPROP_MOTIONDISABLED 0x000008 // motion disabled at startup (flag only valid in spawn - motion can be enabled via input)
+#define SF_PHYSPROP_TOUCH 0x000010 // can be 'crashed through' by running player (plate glass)
+#define SF_PHYSPROP_PRESSURE 0x000020 // can be broken by a player standing on it
+#define SF_PHYSPROP_ENABLE_ON_PHYSCANNON 0x000040 // enable motion only if the player grabs it with the physcannon
+#define SF_PHYSPROP_NO_ROTORWASH_PUSH 0x000080 // The rotorwash doesn't push these
+#define SF_PHYSPROP_ENABLE_PICKUP_OUTPUT 0x000100 // If set, allow the player to +USE this for the purposes of generating an output
+#define SF_PHYSPROP_PREVENT_PICKUP 0x000200 // If set, prevent +USE/Physcannon pickup of this prop
+#define SF_PHYSPROP_PREVENT_PLAYER_TOUCH_ENABLE 0x000400 // If set, the player will not cause the object to enable its motion when bumped into
+#define SF_PHYSPROP_HAS_ATTACHED_RAGDOLLS 0x000800 // Need to remove attached ragdolls on enable motion/etc
+#define SF_PHYSPROP_FORCE_TOUCH_TRIGGERS 0x001000 // Override normal debris behavior and respond to triggers anyway
+#define SF_PHYSPROP_FORCE_SERVER_SIDE 0x002000 // Force multiplayer physics object to be serverside
+#define SF_PHYSPROP_RADIUS_PICKUP 0x004000 // For Xbox, makes small objects easier to pick up by allowing them to be found
+#define SF_PHYSPROP_ALWAYS_PICK_UP 0x100000 // Physcannon can always pick this up, no matter what mass or constraints may apply.
+#define SF_PHYSPROP_NO_COLLISIONS 0x200000 // Don't enable collisions on spawn
+#define SF_PHYSPROP_IS_GIB 0x400000 // Limit # of active gibs
+
+// Any barrel farther away than this is ignited rather than exploded.
+#define PROP_EXPLOSION_IGNITE_RADIUS 32.0f
+
+// ParsePropData returns
+enum
+{
+ PARSE_SUCCEEDED, // Parsed propdata. Prop must be a prop_physics.
+ PARSE_SUCCEEDED_ALLOWED_STATIC, // Parsed propdata. Prop allowed to be prop_physics or prop_dynamic/prop_static.
+ PARSE_FAILED_NO_DATA, // Parse failed, no propdata in model. Prop must be prop_dynamic/prop_static.
+ PARSE_FAILED_BAD_DATA, // Parse failed, found propdata but it had bad data.
+};
+
+// Propdata defined interactions
+enum propdata_interactions_t
+{
+ PROPINTER_PHYSGUN_WORLD_STICK, // "onworldimpact" "stick"
+ PROPINTER_PHYSGUN_FIRST_BREAK, // "onfirstimpact" "break"
+ PROPINTER_PHYSGUN_FIRST_PAINT, // "onfirstimpact" "paintsplat"
+ PROPINTER_PHYSGUN_FIRST_IMPALE, // "onfirstimpact" "impale"
+ PROPINTER_PHYSGUN_LAUNCH_SPIN_NONE, // "onlaunch" "spin_none"
+ PROPINTER_PHYSGUN_LAUNCH_SPIN_Z, // "onlaunch" "spin_zaxis"
+ PROPINTER_PHYSGUN_BREAK_EXPLODE, // "onbreak" "explode_fire"
+ PROPINTER_PHYSGUN_DAMAGE_NONE, // "damage" "none"
+
+ PROPINTER_FIRE_FLAMMABLE, // "flammable" "yes"
+ PROPINTER_FIRE_EXPLOSIVE_RESIST, // "explosive_resist" "yes"
+ PROPINTER_FIRE_IGNITE_HALFHEALTH, // "ignite" "halfhealth"
+
+ PROPINTER_PHYSGUN_CREATE_FLARE, // "onpickup" "create_flare"
+
+ PROPINTER_PHYSGUN_ALLOW_OVERHEAD, // "allow_overhead" "yes"
+
+ PROPINTER_WORLD_BLOODSPLAT, // "onworldimpact", "bloodsplat"
+
+ PROPINTER_PHYSGUN_NOTIFY_CHILDREN, // "onfirstimpact" cause attached flechettes to explode
+
+ // If we get more than 32 of these, we'll need a different system
+
+ PROPINTER_NUM_INTERACTIONS,
+};
+
+// Entities using COLLISION_GROUP_SPECIAL_PHYSICS should support this interface.
+abstract_class IMultiplayerPhysics
+{
+public:
+ virtual int GetMultiplayerPhysicsMode() = 0;
+ virtual float GetMass() = 0;
+ virtual bool IsAsleep() = 0;
+};
+
+#define PHYSICS_MULTIPLAYER_AUTODETECT 0 // use multiplayer physics mode as defined in model prop data
+#define PHYSICS_MULTIPLAYER_SOLID 1 // soild, pushes player away
+#define PHYSICS_MULTIPLAYER_NON_SOLID 2 // nonsolid, but pushed by player
+#define PHYSICS_MULTIPLAYER_CLIENTSIDE 3 // Clientside only, nonsolid
+
+enum mp_break_t
+{
+ MULTIPLAYER_BREAK_DEFAULT,
+ MULTIPLAYER_BREAK_SERVERSIDE,
+ MULTIPLAYER_BREAK_CLIENTSIDE,
+ MULTIPLAYER_BREAK_BOTH
+};
+
+
+enum PerformanceMode_t
+{
+ PM_NORMAL,
+ PM_NO_GIBS,
+ PM_FULL_GIBS,
+ PM_REDUCED_GIBS,
+};
+
+
+//=============================================================================================================
+// PROP DATA
+//=============================================================================================================
+//-----------------------------------------------------------------------------
+// Purpose: Derive your entity from this if you want your entity to parse propdata
+//-----------------------------------------------------------------------------
+abstract_class IBreakableWithPropData
+{
+public:
+ // Damage modifiers
+ virtual void SetDmgModBullet( float flDmgMod ) = 0;
+ virtual void SetDmgModClub( float flDmgMod ) = 0;
+ virtual void SetDmgModExplosive( float flDmgMod ) = 0;
+ virtual float GetDmgModBullet( void ) = 0;
+ virtual float GetDmgModClub( void ) = 0;
+ virtual float GetDmgModExplosive( void ) = 0;
+
+ // Explosive
+ virtual void SetExplosiveRadius( float flRadius ) = 0;
+ virtual void SetExplosiveDamage( float flDamage ) = 0;
+ virtual float GetExplosiveRadius( void ) = 0;
+ virtual float GetExplosiveDamage( void ) = 0;
+
+ // Physics damage tables
+ virtual void SetPhysicsDamageTable( string_t iszTableName ) = 0;
+ virtual string_t GetPhysicsDamageTable( void ) = 0;
+
+ // Breakable chunks
+ virtual void SetBreakableModel( string_t iszModel ) = 0;
+ virtual string_t GetBreakableModel( void ) = 0;
+ virtual void SetBreakableSkin( int iSkin ) = 0;
+ virtual int GetBreakableSkin( void ) = 0;
+ virtual void SetBreakableCount( int iCount ) = 0;
+ virtual int GetBreakableCount( void ) = 0;
+ virtual void SetMaxBreakableSize( int iSize ) = 0;
+ virtual int GetMaxBreakableSize( void ) = 0;
+
+ // LOS blocking
+ virtual void SetPropDataBlocksLOS( bool bBlocksLOS ) = 0;
+ virtual void SetPropDataIsAIWalkable( bool bBlocksLOS ) = 0;
+
+ // Interactions
+ virtual void SetInteraction( propdata_interactions_t Interaction ) = 0;
+ virtual bool HasInteraction( propdata_interactions_t Interaction ) = 0;
+
+ // Multiplayer physics mode
+ virtual void SetPhysicsMode(int iMode) = 0;
+ virtual int GetPhysicsMode() = 0;
+
+ // Multiplayer breakable spawn behavior
+ virtual void SetMultiplayerBreakMode( mp_break_t mode ) = 0;
+ virtual mp_break_t GetMultiplayerBreakMode( void ) const = 0;
+
+ // Used for debugging
+ virtual void SetBasePropData( string_t iszBase ) = 0;
+ virtual string_t GetBasePropData( void ) = 0;
+};
+
+//-----------------------------------------------------------------------------
+// Purpose: Gamesystem that parses the prop data file
+//-----------------------------------------------------------------------------
+class CPropData : public CAutoGameSystem
+{
+public:
+ CPropData( void );
+
+ // Inherited from IAutoServerSystem
+ virtual void LevelInitPreEntity( void );
+ virtual void LevelShutdownPostEntity( void );
+
+ // Read in the data from the prop data file
+ void ParsePropDataFile( void );
+
+ // Parse a keyvalues section into the prop
+ int ParsePropFromKV( CBaseEntity *pProp, KeyValues *pSection, KeyValues *pInteractionSection );
+
+ // Fill out a prop's with base data parsed from the propdata file
+ int ParsePropFromBase( CBaseEntity *pProp, const char *pszPropData );
+
+ // Get a random chunk in the specified breakable section
+ const char *GetRandomChunkModel( const char *pszBreakableSection, int iMaxSize = -1 );
+
+protected:
+ KeyValues *m_pKVPropData;
+ bool m_bPropDataLoaded;
+
+ struct propdata_breakablechunk_t
+ {
+ string_t iszChunkType;
+ CUtlVector<string_t> iszChunkModels;
+ };
+ CUtlVector<propdata_breakablechunk_t> m_BreakableChunks;
+};
+
+extern CPropData g_PropDataSystem;
+
+struct breakmodel_t
+{
+ Vector offset;
+ char modelName[512];
+ char placementName[512];
+ float fadeTime;
+ float fadeMinDist;
+ float fadeMaxDist;
+ float health;
+ float burstScale;
+ int collisionGroup;
+ bool isRagdoll;
+ bool placementIsBone;
+ bool isMotionDisabled;
+ mp_break_t mpBreakMode;
+};
+
+struct breakablepropparams_t
+{
+ breakablepropparams_t( const Vector &_origin, const QAngle &_angles, const Vector &_velocity, const AngularImpulse &_angularVelocity )
+ : origin(_origin), angles(_angles), velocity(_velocity), angularVelocity(_angularVelocity)
+ {
+ impactEnergyScale = 0;
+ defBurstScale = 0;
+ defCollisionGroup = COLLISION_GROUP_NONE;
+ }
+
+ const Vector &origin;
+ const QAngle &angles;
+ const Vector &velocity;
+ const AngularImpulse &angularVelocity;
+ float impactEnergyScale;
+ float defBurstScale;
+ int defCollisionGroup;
+};
+
+const char *GetMassEquivalent(float flMass);
+int GetAutoMultiplayerPhysicsMode( Vector size, float mass );
+void BreakModelList( CUtlVector<breakmodel_t> &list, int modelindex, float defBurstScale, int defCollisionGroup );
+void PropBreakableCreateAll( int modelindex, IPhysicsObject *pPhysics, const breakablepropparams_t &params, CBaseEntity *pEntity, int iPrecomputedBreakableCount, bool bIgnoreGibLImit, bool defaultLocation = true );
+void PropBreakableCreateAll( int modelindex, IPhysicsObject *pPhysics, const Vector &origin, const QAngle &angles, const Vector &velocity, const AngularImpulse &angularVelocity, float impactEnergyScale, float burstScale, int collisionGroup, CBaseEntity *pEntity = NULL, bool defaultLocation = true );
+
+// Player gibs.
+void PrecacheGibsForModel( int iModel );
+void BuildGibList( CUtlVector<breakmodel_t> &list, int modelindex, float defBurstScale, int defCollisionGroup );
+CBaseEntity *CreateGibsFromList( CUtlVector<breakmodel_t> &list, int modelindex, IPhysicsObject *pPhysics, const breakablepropparams_t &params, CBaseEntity *pEntity, int iPrecomputedBreakableCount, bool bIgnoreGibLImit, bool defaultLocation = true, CUtlVector<EHANDLE> *pGibList = NULL, bool bBurning = false );
+
+#endif // PROPS_SHARED_H