class CFuncMover : public CBaseModelEntity
{
public:
    CUtlSymbolLarge m_iszPathName;
    CHandle<CPathMover> m_hPathMover;
    CHandle<CPathMover> m_hPrevPathMover;
    CUtlSymbolLarge m_iszPathNodeStart;
    CUtlSymbolLarge m_iszPathNodeEnd;
    bool m_bIgnoreEndNode;
    CFuncMover__Move_t m_eMoveType;
    bool m_bIsReversing;
    float32 m_flStartSpeed;
    float32 m_flPathLocation;
    float32 m_flT;
    int32 m_nCurrentNodeIndex;
    int32 m_nPreviousNodeIndex;
    SolidType_t m_eSolidType;
    bool m_bIsMoving;
    float32 m_flTimeToReachMaxSpeed;
    float32 m_flDistanceToReachMaxSpeed;
    float32 m_flTimeToReachZeroSpeed;
    float32 m_flComputedDistanceToReachMaxSpeed;
    float32 m_flComputedDistanceToReachZeroSpeed;
    float32 m_flStartCurveScale;
    float32 m_flStopCurveScale;
    float32 m_flDistanceToReachZeroSpeed;
    GameTime_t m_flTimeMovementStart;
    GameTime_t m_flTimeMovementStop;
    CHandle<CMoverPathNode> m_hStopAtNode;
    float32 m_flPathLocationToBeginStop;
    float32 m_flPathLocationStart;
    float32 m_flBeginStopT;
    CUtlSymbolLarge m_iszStartForwardSound;
    CUtlSymbolLarge m_iszLoopForwardSound;
    CUtlSymbolLarge m_iszStopForwardSound;
    CUtlSymbolLarge m_iszStartReverseSound;
    CUtlSymbolLarge m_iszLoopReverseSound;
    CUtlSymbolLarge m_iszStopReverseSound;
    CUtlSymbolLarge m_iszArriveAtDestinationSound;
private:
    uint8 pad_0830[24];
public:
    CEntityIOOutput m_OnMovementEnd;
    bool m_bStartAtClosestPoint;
    bool m_bStartAtEnd;
    bool m_bStartFollowingClosestMover;
    CFuncMover__OrientationUpdate_t m_eOrientationUpdate;
    GameTime_t m_flTimeStartOrientationChange;
    float32 m_flTimeToBlendToNewOrientation;
    float32 m_flDurationBlendToNewOrientationRan;
    int32 m_nOriginalOrientationIndex;
    bool m_bCreateMovableNavMesh;
    bool m_bAllowMovableNavMeshDockingOnEntireEntity;
    CEntityOutputTemplate<CUtlString> m_OnNodePassed;
    CUtlSymbolLarge m_iszOrientationMatchEntityName;
    CHandle<CBaseEntity> m_hOrientationMatchEntity;
    float32 m_flTimeToTraverseToNextNode;
    Vector m_vLerpToNewPosStartInPathEntitySpace;
    Vector m_vLerpToNewPosEndInPathEntitySpace;
    float32 m_flLerpToPositionT;
    float32 m_flLerpToPositionDeltaT;
    CEntityIOOutput m_OnLerpToPositionComplete;
    bool m_bIsPaused;
    CFuncMover__TransitionToPathNodeAction_t m_eTransitionedToPathNodeAction;
    int32 m_nDelayedTeleportToNode;
    bool m_bIsImGuiLogging;
    CHandle<CBaseEntity> m_hFollowEntity;
    float32 m_flFollowDistance;
    float32 m_flFollowMinimumSpeed;
    float32 m_flCurFollowEntityT;
    float32 m_flCurFollowSpeed;
    CUtlSymbolLarge m_strOrientationFaceEntityName;
    CHandle<CBaseEntity> m_hOrientationFaceEntity;
    CEntityIOOutput m_OnStart;
    CEntityIOOutput m_OnStartForward;
    CEntityIOOutput m_OnStartReverse;
    CEntityIOOutput m_OnStop;
    CEntityIOOutput m_OnStopped;
    bool m_bNextNodeReturnsCurrent;
    bool m_bStartedMoving;
private:
    uint8 pad_099C[28];
public:
    CFuncMover__FollowEntityDirection_t m_eFollowEntityDirection;
    CHandle<CFuncMover> m_hFollowMover;
    CUtlSymbolLarge m_iszFollowMoverEntityName;
    float32 m_flFollowMoverDistance;
    float32 m_flFollowMoverCalculatedDistance;
    float32 m_flFollowMoverSpringStrength;
    bool m_bFollowConstraintsInitialized;
    CFuncMover__FollowConstraint_t m_eFollowConstraint;
    float32 m_flFollowMoverSpeed;
    float32 m_flFollowMoverVelocity;
    GameTick_t m_nTickMovementRan;
};