diff --git a/game/shared/takedamageinfo.cpp b/game/shared/takedamageinfo.cpp index 10eb8c9f..0ab19ccb 100644 --- a/game/shared/takedamageinfo.cpp +++ b/game/shared/takedamageinfo.cpp @@ -62,6 +62,8 @@ void CTakeDamageInfo::Init( CBaseEntity *pInflictor, CBaseEntity *pAttacker, CBa m_flDamageBonus = 0.f; m_bForceFriendlyFire = false; m_flDamageForForce = 0.f; + + m_eCritType = kCritType_None; } CTakeDamageInfo::CTakeDamageInfo() @@ -114,6 +116,18 @@ void CTakeDamageInfo::Set( CBaseEntity *pInflictor, CBaseEntity *pAttacker, CBas Init( pInflictor, pAttacker, pWeapon, damageForce, damagePosition, vecReported, flDamage, bitsDamageType, iKillType ); } +void CTakeDamageInfo::SetCritType( ECritType type ) +{ + if ( type == kCritType_None ) + { + m_eCritType = kCritType_None; + } + else if ( type > m_eCritType ) + { + m_eCritType = type; + } +} + //----------------------------------------------------------------------------- // Squirrel the damage value away as BaseDamage, which will later be used to // calculate damage force. diff --git a/game/shared/takedamageinfo.h b/game/shared/takedamageinfo.h index 6e0efa23..43b0c026 100644 --- a/game/shared/takedamageinfo.h +++ b/game/shared/takedamageinfo.h @@ -97,6 +97,14 @@ public: void Set( CBaseEntity *pInflictor, CBaseEntity *pAttacker, CBaseEntity *pWeapon, float flDamage, int bitsDamageType, int iKillType = 0 ); void Set( CBaseEntity *pInflictor, CBaseEntity *pAttacker, const Vector &damageForce, const Vector &damagePosition, float flDamage, int bitsDamageType, int iKillType = 0, Vector *reportedPosition = NULL ); void Set( CBaseEntity *pInflictor, CBaseEntity *pAttacker, CBaseEntity *pWeapon, const Vector &damageForce, const Vector &damagePosition, float flDamage, int bitsDamageType, int iKillType = 0, Vector *reportedPosition = NULL ); + + enum ECritType + { + kCritType_None, + kCritType_MiniCrit, + kCritType_Crit, + }; + void SetCritType( ECritType type ); void AdjustPlayerDamageInflictedForSkillLevel(); void AdjustPlayerDamageTakenForSkillLevel(); @@ -132,6 +140,8 @@ protected: bool m_bForceFriendlyFire; // Ideally this would be a dmg type, but we can't add more float m_flDamageForForce; + + ECritType m_eCritType; DECLARE_SIMPLE_DATADESC(); };