// MNetworkIncludeByName = m_pEntity
// MNetworkIncludeByName = m_flSimulationTime
// MNetworkIncludeByName = m_flCreateTime
// MNetworkIncludeByName = m_iTeamNum
// MNetworkIncludeByName = m_nNextThinkTick
// MNetworkIncludeByName = m_fFlags
// MNetworkUserGroupProxy = CBasePlayerController
// MNetworkUserGroupProxy = CBasePlayerController
// MNetworkIncludeByUserGroup = LocalPlayerExclusive
// MNetworkVarNames = uint32 m_nTickBase
// MNetworkVarNames = CHandle< CBasePlayerPawn> m_hPawn
// MNetworkVarNames = bool m_bKnownTeamMismatch
// MNetworkVarNames = PlayerConnectedState m_iConnected
// MNetworkVarNames = char m_iszPlayerName
// MNetworkVarNames = uint64 m_steamID
// MNetworkVarNames = bool m_bNoClipEnabled
// MNetworkVarNames = uint32 m_iDesiredFOV
class CBasePlayerController : public CBaseEntity
{
    uint8 pad_04A0[8];
public:
    // MNotSaved = !!UNKNOWN!!
    uint64 m_nInButtonsWhichAreToggles;
    // MNetworkEnable
    // MNetworkPriority = 1
    // MNetworkUserGroup = LocalPlayerExclusive
    // MNotSaved = !!UNKNOWN!!
    uint32 m_nTickBase;
private:
    uint8 pad_04B4[36];
public:
    // MNetworkEnable
    // MNetworkChangeCallback = OnPawnChanged
    CHandle<CBasePlayerPawn> m_hPawn;
    // MNetworkEnable
    bool m_bKnownTeamMismatch;
    // MNotSaved = !!UNKNOWN!!
    CSplitScreenSlot m_nSplitScreenSlot;
    // MNotSaved = !!UNKNOWN!!
    CHandle<CBasePlayerController> m_hSplitOwner;
    // MNotSaved = !!UNKNOWN!!
    CUtlVector<CHandle<CBasePlayerController>> m_hSplitScreenPlayers;
    bool m_bIsHLTV;
    // MNetworkEnable
    // MNetworkChangeCallback = OnConnectionStateChanged
    // MNotSaved = !!UNKNOWN!!
    PlayerConnectedState m_iConnected;
    // MNetworkEnable
    // MNetworkChangeCallback = OnPlayerControllerNameChanged
    // MNotSaved = !!UNKNOWN!!
    char m_iszPlayerName[128];
    // MNotSaved = !!UNKNOWN!!
    CUtlString m_szNetworkIDString;
    // MNotSaved = !!UNKNOWN!!
    float32 m_fLerpTime;
    // MNotSaved = !!UNKNOWN!!
    bool m_bLagCompensation;
    // MNotSaved = !!UNKNOWN!!
    bool m_bPredict;
private:
    uint8 pad_0596[6];
public:
    // MNotSaved = !!UNKNOWN!!
    bool m_bIsLowViolence;
    // MNotSaved = !!UNKNOWN!!
    bool m_bGamePaused;
private:
    uint8 pad_05A0[328];
public:
    // MNotSaved = !!UNKNOWN!!
    ChatIgnoreType_t m_iIgnoreGlobalChat;
    // MKV3TransferSaveOpsForField = !!UNKNOWN!!
    float32 m_flLastPlayerTalkTime;
    // MNotSaved = !!UNKNOWN!!
    float32 m_flLastEntitySteadyState;
    // MNotSaved = !!UNKNOWN!!
    int32 m_nAvailableEntitySteadyState;
    // MNotSaved = !!UNKNOWN!!
    bool m_bHasAnySteadyStateEnts;
private:
    uint8 pad_0700[8];
public:
    // MNetworkEnable
    // MNetworkEncoder = fixed64
    // MNetworkChangeCallback = OnSteamIDChanged
    // MNotSaved = !!UNKNOWN!!
    uint64 m_steamID;
    // MNetworkEnable
    // MNetworkChangeCallback = OnNoClipEnableChanged
    bool m_bNoClipEnabled;
    // MNetworkEnable
    uint32 m_iDesiredFOV;
private:
    uint8 pad_0718[184];
};