class CTakeDamageInfo
{
    void* __vftable;
public:
    Vector m_vecDamageForce;
    VectorWS m_vecDamagePosition;
    VectorWS m_vecReportedPosition;
    Vector m_vecDamageDirection;
    CHandle<CBaseEntity> m_hInflictor;
    CHandle<CBaseEntity> m_hAttacker;
    CHandle<CBaseEntity> m_hAbility;
    float32 m_flDamage;
    float32 m_flTotalledDamage;
    DamageTypes_t m_bitsDamageType;
    int32 m_iDamageCustom;
    AmmoIndex_t m_iAmmoType;
private:
    uint8 pad_0058[8];
public:
    float32 m_flOriginalDamage;
    bool m_bShouldBleed;
    bool m_bShouldSpark;
    float32 m_flDamageAbsorbed;
private:
    uint8 pad_0070[8];
public:
    TakeDamageFlags_t m_nDamageFlags;
    // MNotSaved = !!UNKNOWN!!
    HitGroup_t m_iHitGroupId;
    // MNotSaved = !!UNKNOWN!!
    ECitadelDamageType m_eCitadelDamageType;
    // MNotSaved = !!UNKNOWN!!
    float32 m_flAfterBuffDamage;
    // MNotSaved = !!UNKNOWN!!
    float32 m_flPreResistDamage;
    // MNotSaved = !!UNKNOWN!!
    bool m_bEvaded;
    // MNotSaved = !!UNKNOWN!!
    Vector m_vecDamageNormal;
private:
    uint8 pad_00A0[8];
public:
    // MNotSaved = !!UNKNOWN!!
    CHandle<CBaseEntity> m_hOriginator;
    // MNotSaved = !!UNKNOWN!!
    int32 m_iBatchCount;
    // MNotSaved = !!UNKNOWN!!
    float32 m_flEffectiveness;
    // MNotSaved = !!UNKNOWN!!
    float32 m_timeDamage;
    // MNotSaved = !!UNKNOWN!!
    float32 m_flCritDamage;
private:
    uint8 pad_00C0[32];
public:
    CUtlVector<DestructibleHitGroupToDestroy_t> m_nDestructibleHitGroupsToForceDestroy;
    // MNotSaved = !!UNKNOWN!!
    bool m_bInTakeDamageFlow;
};