// MNetworkIncludeByUserGroup = Origin
// MNetworkIncludeByName = CGameSceneNode::m_hParent
// MNetworkIncludeByName = CGameSceneNode::m_hierarchyAttachName
// MNetworkIncludeByName = m_nMinCPULevel
// MNetworkIncludeByName = m_nMaxCPULevel
// MNetworkIncludeByName = m_nMinGPULevel
// MNetworkIncludeByName = m_nMaxGPULevel
// MNetworkVarNames = float32 m_flScrollSpeed
// MNetworkVarNames = uint16 m_RopeFlags
// MNetworkVarNames = HMaterialStrong m_iRopeMaterialModelIndex
// MNetworkVarNames = uint8 m_nSegments
// MNetworkVarNames = CHandle< C_BaseEntity> m_hStartPoint
// MNetworkVarNames = CHandle< C_BaseEntity> m_hEndPoint
// MNetworkVarNames = AttachmentHandle_t m_iStartAttachment
// MNetworkVarNames = AttachmentHandle_t m_iEndAttachment
// MNetworkVarNames = uint8 m_Subdiv
// MNetworkVarNames = int16 m_RopeLength
// MNetworkVarNames = int16 m_Slack
// MNetworkVarNames = float32 m_TextureScale
// MNetworkVarNames = uint8 m_fLockedPoints
// MNetworkVarNames = uint8 m_nChangeCount
// MNetworkVarNames = float32 m_Width
// MNetworkVarNames = bool m_bConstrainBetweenEndpoints
class C_RopeKeyframe : public C_BaseModelEntity
{
    uint8 pad_09A0[8];
public:
    // MNotSaved = !!UNKNOWN!!
    CBitVec<10> m_LinksTouchingSomething;
    // MNotSaved = !!UNKNOWN!!
    int32 m_nLinksTouchingSomething;
    // MNotSaved = !!UNKNOWN!!
    bool m_bApplyWind;
    // MNotSaved = !!UNKNOWN!!
    int32 m_fPrevLockedPoints;
    // MNotSaved = !!UNKNOWN!!
    int32 m_iForcePointMoveCounter;
    // MNotSaved = !!UNKNOWN!!
    bool m_bPrevEndPointPos[2];
    // MNotSaved = !!UNKNOWN!!
    Vector m_vPrevEndPointPos[2];
    // MNotSaved = !!UNKNOWN!!
    float32 m_flCurScroll;
    // MNetworkEnable
    // MNotSaved = !!UNKNOWN!!
    float32 m_flScrollSpeed;
    // MNetworkEnable
    // MNotSaved = !!UNKNOWN!!
    uint16 m_RopeFlags;
    // MNetworkEnable
    // MNotSaved = !!UNKNOWN!!
    CStrongHandle<InfoForResourceTypeIMaterial2> m_iRopeMaterialModelIndex;
private:
    uint8 pad_09F0[624];
public:
    // MNetworkEnable
    // MNotSaved = !!UNKNOWN!!
    uint8 m_nSegments;
    // MNetworkEnable
    // MNotSaved = !!UNKNOWN!!
    CHandle<C_BaseEntity> m_hStartPoint;
    // MNetworkEnable
    // MNotSaved = !!UNKNOWN!!
    CHandle<C_BaseEntity> m_hEndPoint;
    // MNetworkEnable
    // MNotSaved = !!UNKNOWN!!
    AttachmentHandle_t m_iStartAttachment;
    // MNetworkEnable
    // MNotSaved = !!UNKNOWN!!
    AttachmentHandle_t m_iEndAttachment;
    // MNetworkEnable
    // MNotSaved = !!UNKNOWN!!
    uint8 m_Subdiv;
    // MNetworkEnable
    // MNetworkChangeCallback = RecomputeSprings
    // MNotSaved = !!UNKNOWN!!
    int16 m_RopeLength;
    // MNetworkEnable
    // MNetworkChangeCallback = RecomputeSprings
    // MNotSaved = !!UNKNOWN!!
    int16 m_Slack;
    // MNetworkEnable
    // MNetworkBitCount = 10
    // MNetworkMinValue = 0.100000
    // MNetworkMaxValue = 10.000000
    // MNotSaved = !!UNKNOWN!!
    float32 m_TextureScale;
    // MNetworkEnable
    // MNotSaved = !!UNKNOWN!!
    uint8 m_fLockedPoints;
    // MNetworkEnable
    // MNotSaved = !!UNKNOWN!!
    uint8 m_nChangeCount;
    // MNetworkEnable
    // MNotSaved = !!UNKNOWN!!
    float32 m_Width;
    // MNotSaved = !!UNKNOWN!!
    C_RopeKeyframe__CPhysicsDelegate m_PhysicsDelegate;
    // MNotSaved = !!UNKNOWN!!
    CStrongHandle<InfoForResourceTypeIMaterial2> m_hMaterial;
    // MNotSaved = !!UNKNOWN!!
    int32 m_TextureHeight;
    // MNotSaved = !!UNKNOWN!!
    Vector m_vecImpulse;
    // MNotSaved = !!UNKNOWN!!
    Vector m_vecPreviousImpulse;
    // MNotSaved = !!UNKNOWN!!
    float32 m_flCurrentGustTimer;
    // MNotSaved = !!UNKNOWN!!
    float32 m_flCurrentGustLifetime;
    // MNotSaved = !!UNKNOWN!!
    float32 m_flTimeToNextGust;
    // MNotSaved = !!UNKNOWN!!
    Vector m_vWindDir;
    // MNotSaved = !!UNKNOWN!!
    Vector m_vColorMod;
    // MNotSaved = !!UNKNOWN!!
    Vector m_vCachedEndPointAttachmentPos[2];
    // MNotSaved = !!UNKNOWN!!
    QAngle m_vCachedEndPointAttachmentAngle[2];
    // MNetworkEnable
    // MNotSaved = !!UNKNOWN!!
    bool m_bConstrainBetweenEndpoints;
    // MNotSaved = !!UNKNOWN!!
    uint8 m_bEndPointAttachmentPositionsDirty : 1;
    // MNotSaved = !!UNKNOWN!!
    uint8 m_bEndPointAttachmentAnglesDirty : 1;
    // MNotSaved = !!UNKNOWN!!
    uint8 m_bNewDataThisFrame : 1;
    // MNotSaved = !!UNKNOWN!!
    uint8 m_bPhysicsInitted : 1;
};