Вопрос Нужна новая структура Input

  • Автор темы Автор темы francyz
  • Дата начала Дата начала
Пользователь
Пользователь
Статус
Оффлайн
Регистрация
12 Июн 2019
Сообщения
865
Реакции
125
После обновы кс чит перестал подавать признаки жизни.Проблема скорее всего в структуре инпута.Вот моя:
C++:
Expand Collapse Copy
#define MULTIPLAYER_BACKUP 150

class IInput
{
public:
    std::byte            pad0[0xC];                //0x00
    bool                bTrackIRAvailable;        //0x0C
    bool                bMouseInitialized;        //0x0D
    bool                bMouseActive;            //0x0E
    std::byte            pad1[0x9E];                //0x0F
    bool                bCameraInThirdPerson;    //0xAD
    std::byte            pad2[0x2];                //0xAE
    Vector                vecCameraOffset;        //0xB0
    std::byte            pad3[0x38];                //0xBC
    CUserCmd*            pCommands;                //0xF4
    CVerifiedUserCmd*    pVerifiedCommands;        //0xF8

    CUserCmd* GetUserCmd(int nSequenceNumber)
    {
        return &pCommands[nSequenceNumber % MULTIPLAYER_BACKUP];
    }

    CVerifiedUserCmd* GetVerifiedCmd(int nSequenceNumber)
    {
        return &pVerifiedCommands[nSequenceNumber % MULTIPLAYER_BACKUP];
    }
};
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Код:
Expand Collapse Copy
// - 4 for VTable (if u using it just as struct without virtuals then delete - 4 offset)
class CInput
{
public:
    virtual void  Init_All(void);

    char pad_0000[12 - 4]; //0x0000
    bool m_fTrackIRAvailable; //0x000C
    bool m_fMouseInitialized; //0x000D
    bool m_fMouseActive; //0x000E
    bool m_fJoystickAdvancedInit; //0x000F
    char pad_0010[44]; //0x0010
    char *m_pKeys; //0x003C
    char pad_0040[48]; //0x0040
    int32_t m_nCamCommand; //0x0070
    char pad_0074[76]; //0x0074
    bool m_fCameraInterceptingMouse; //0x00C0
    bool m_fCameraInThirdPerson; //0x00C1
    bool m_fCameraMovingWithMouse; //0x00C2
    char pad_00C3[1]; //0x00C3
    Vector m_vecCameraOffset; //0x00C4
    bool m_fCameraDistanceMove; //0x00D0
    char pad_00D1[19]; //0x00D1
    bool m_CameraIsOrthographic; //0x00E4
    bool m_CameraIsThirdPersonOverview; //0x00E5
    char pad_00E6[2]; //0x00E6
    QAngle *m_angPreviousViewAngles; //0x00E8
    QAngle *m_angPreviousViewAnglesTilt; //0x00EC
    char pad_00F0[16]; //0x00F0
    float m_flLastForwardMove; //0x0100
    int32_t m_nClearInputState; //0x0104
    CUserCmd *m_pCommands; //0x0108
    CVerifiedUserCmd *m_pVerifiedCommands; //0x010C
}; //Size: 0x0110
 
Последнее редактирование:
Код:
Expand Collapse Copy
// - 4 for VTable (if u using it just as struct without virtuals then delete - 4 offset)
class CInput
{
public:
    virtual void  Init_All(void);

    char pad_0000[12 - 4]; //0x0000
    bool m_fTrackIRAvailable; //0x000C
    bool m_fMouseInitialized; //0x000D
    bool m_fMouseActive; //0x000E
    bool m_fJoystickAdvancedInit; //0x000F
    char pad_0010[44]; //0x0010
    char *m_pKeys; //0x003C
    char pad_0040[48]; //0x0040
    int32_t m_nCamCommand; //0x0070
    char pad_0074[76]; //0x0074
    bool m_fCameraInterceptingMouse; //0x00C0
    bool m_fCameraInThirdPerson; //0x00C1
    bool m_fCameraMovingWithMouse; //0x00C2
    char pad_00C3[1]; //0x00C3
    Vector *m_vecCameraOffset; //0x00C4
    char pad_00C8[8]; //0x00C8
    bool m_fCameraDistanceMove; //0x00D0
    char pad_00D1[19]; //0x00D1
    bool m_CameraIsOrthographic; //0x00E4
    bool m_CameraIsThirdPersonOverview; //0x00E5
    char pad_00E6[2]; //0x00E6
    QAngle *m_angPreviousViewAngles; //0x00E8
    QAngle *m_angPreviousViewAnglesTilt; //0x00EC
    char pad_00F0[16]; //0x00F0
    float m_flLastForwardMove; //0x0100
    int32_t m_nClearInputState; //0x0104
    CUserCmd *m_pCommands; //0x0108
    CVerifiedUserCmd *m_pVerifiedCommands; //0x010C
}; //Size: 0x0110
Пожалуйста, авторизуйтесь для просмотра ссылки.

полистай тему
Насколько я понял структура в моём случае должна иметь следуйщий вид?

Код:
Expand Collapse Copy
    std::byte            pad0[12-4];                //0x00
    bool                bTrackIRAvailable;        //0x000C
    bool                bMouseInitialized;        //
    bool                bMouseActive;            //
    std::byte            pad1[44];                //0x0010
    bool                bCameraInThirdPerson;    //
    std::byte            pad2[0x2];                //
    Vector                vecCameraOffset;        //
    std::byte            pad3[0x38];                //
    CUserCmd*            pCommands;                //
    CVerifiedUserCmd*    pVerifiedCommands;        //
 
Насколько я понял структура в моём случае должна иметь следуйщий вид?

Код:
Expand Collapse Copy
    std::byte            pad0[12-4];                //0x00
    bool                bTrackIRAvailable;        //0x000C
    bool                bMouseInitialized;        //
    bool                bMouseActive;            //
    std::byte            pad1[44];                //0x0010
    bool                bCameraInThirdPerson;    //
    std::byte            pad2[0x2];                //
    Vector                vecCameraOffset;        //
    std::byte            pad3[0x38];                //
    CUserCmd*            pCommands;                //
    CVerifiedUserCmd*    pVerifiedCommands;        //
Уж скопировать то и вставить можно? Я бы мог дать совет, но боюсь толку мало будет
Код:
Expand Collapse Copy
#define MULTIPLAYER_BACKUP 150

class IInput
{
public:
   char pad_0000[12]; //0x0000
    bool bTrackIRAvailable; //0x000C
    bool bMouseInitialized; //0x000D
    bool bMouseActive; //0x000E
    bool bJoystickAdvancedInit; //0x000F
    char pad_0010[44]; //0x0010
    char *pKeys; //0x003C
    char pad_0040[48]; //0x0040
    int32_t nCamCommand; //0x0070
    char pad_0074[76]; //0x0074
    bool bCameraInterceptingMouse; //0x00C0
    bool bCameraInThirdPerson; //0x00C1
    bool bCameraMovingWithMouse; //0x00C2
    char pad_00C3[1]; //0x00C3
    Vector vecCameraOffset; //0x00C4
    bool bCameraDistanceMove; //0x00D0
    char pad_00D1[19]; //0x00D1
    bool bCameraIsOrthographic; //0x00E4
    bool bCameraIsThirdPersonOverview; //0x00E5
    char pad_00E6[2]; //0x00E6
    QAngle *angPreviousViewAngles; //0x00E8
    QAngle *angPreviousViewAnglesTilt; //0x00EC
    char pad_00F0[16]; //0x00F0
    float flLastForwardMove; //0x0100
    int32_t nClearInputState; //0x0104
    CUserCmd *pCommands; //0x0108
    CVerifiedUserCmd *pVerifiedCommands; //0x010C

    CUserCmd* GetUserCmd(int nSequenceNumber)
    {
        return &pCommands[nSequenceNumber % MULTIPLAYER_BACKUP];
    }

    CVerifiedUserCmd* GetVerifiedCmd(int nSequenceNumber)
    {
        return &pVerifiedCommands[nSequenceNumber % MULTIPLAYER_BACKUP];
    }
};
 
Последнее редактирование:
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Уж скопировать то и вставить можно? Я бы мог дать совет, но боюсь толку мало будет
Код:
Expand Collapse Copy
#define MULTIPLAYER_BACKUP 150

class IInput
{
public:
   char pad_0000[12]; //0x0000
    bool bTrackIRAvailable; //0x000C
    bool bMouseInitialized; //0x000D
    bool bMouseActive; //0x000E
    bool bJoystickAdvancedInit; //0x000F
    char pad_0010[44]; //0x0010
    char *pKeys; //0x003C
    char pad_0040[48]; //0x0040
    int32_t nCamCommand; //0x0070
    char pad_0074[76]; //0x0074
    bool bCameraInterceptingMouse; //0x00C0
    bool bCameraInThirdPerson; //0x00C1
    bool bCameraMovingWithMouse; //0x00C2
    char pad_00C3[1]; //0x00C3
    Vector *vecCameraOffset; //0x00C4
    char pad_00C8[8]; //0x00C8
    bool bCameraDistanceMove; //0x00D0
    char pad_00D1[19]; //0x00D1
    bool bCameraIsOrthographic; //0x00E4
    bool bCameraIsThirdPersonOverview; //0x00E5
    char pad_00E6[2]; //0x00E6
    QAngle *angPreviousViewAngles; //0x00E8
    QAngle *angPreviousViewAnglesTilt; //0x00EC
    char pad_00F0[16]; //0x00F0
    float flLastForwardMove; //0x0100
    int32_t nClearInputState; //0x0104
    CUserCmd *pCommands; //0x0108
    CVerifiedUserCmd *pVerifiedCommands; //0x010C

    CUserCmd* GetUserCmd(int nSequenceNumber)
    {
        return &pCommands[nSequenceNumber % MULTIPLAYER_BACKUP];
    }

    CVerifiedUserCmd* GetVerifiedCmd(int nSequenceNumber)
    {
        return &pVerifiedCommands[nSequenceNumber % MULTIPLAYER_BACKUP];
    }
};
Vector *vecCameraOffset;

замени на
Vector vecCameraOffset;
 
Vector *vecCameraOffset;

замени на
Vector vecCameraOffset;
Да, и правда float, на скорую руку почему то показалось что там поинтер

1639231602064.png
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Если у тебя в классе есть виртуальные функции, то 4 байта начальные отойдут под них, и компилятор сместит твою структуру на +4, если же виртуалок нет, как у @francyz то и смещения от компилятора не будет. Поэтому если класс с виртуалками, то
char pad_0000[12 - 4];
если без, то
char pad_0000[12];

Мой класс полностью, если нужен -

C++:
Expand Collapse Copy
class CInput
{
public:
    CInput(void);
    ~CInput(void);
    void                    InitMouse(void);
    virtual        void        Init_All(void);
    virtual        void        Shutdown_All(void);
    virtual        int            GetButtonBits(bool bResetState);
    virtual        void        CreateMove(int sequence_number, float input_sample_frametime, bool active);
    virtual        void        ExtraMouseSample(float frametime, bool active);
    virtual        bool        WriteUsercmdDeltaToBuffer(int nSlot, bf_write* buf, int from, int to, bool isnewcommand);
    virtual        void        EncodeUserCmdToBuffer(int nSlot, bf_write& buf, int slot);
    virtual        void        DecodeUserCmdFromBuffer(int nSlot, bf_read& buf, int slot);

    virtual        CUserCmd* GetUserCmd(int nSlot, int sequence_number);

    virtual        void        MakeWeaponSelection(CBaseCombatWeapon* weapon);

    virtual        float        KeyState(kbutton_t* key);
    virtual        int            KeyEvent(int down, ButtonCode_t keynum, const char* pszCurrentBinding);
    virtual        kbutton_t* FindKey(const char* name);

    virtual        void        ControllerCommands(void);
    virtual        void        Joystick_Advanced(bool bSilent);
    virtual        void        Joystick_SetSampleTime(float frametime);
    virtual        float        Joystick_GetPitch(void);
    virtual        float        Joystick_GetYaw(void);
    virtual        void        Joystick_Querry(float& forward, float& side, float& pitch, float& yaw);
    virtual        void        Joystick_ForceRecentering(int nStick, bool bSet = true);
    virtual        void        IN_SetSampleTime(float frametime);

    virtual        void        AccumulateMouse(int nSlot);
    virtual        void        ActivateMouse(void);
    virtual        void        DeactivateMouse(void);
    virtual        void        ClearStates(void);
    virtual        float        GetLookSpring(void);

    virtual        void        GetFullscreenMousePos(int* mx, int* my, int* unclampedx = NULL, int* unclampedy = NULL);
    virtual        void        SetFullscreenMousePos(int mx, int my);
    virtual        void        ResetMouse(void);

    virtual        float        GetLastForwardMove(void);
    virtual        void        ClearInputButton(int bits);

    virtual        void        CAM_Think(void);
    virtual        int            CAM_IsThirdPerson(int nSlot = -1);
    virtual        bool        CAM_IsThirdPersonOverview(int nSlot = -1);
    virtual        void        CAM_GetCameraOffset(Vector& ofs);
    virtual        void        CAM_ToThirdPerson(void);
    virtual        void        CAM_ToFirstPerson(void);
    virtual        void        CAM_ToThirdPersonShoulder(void);
    virtual        void        CAM_ToThirdPersonOverview(void);
    virtual        void        CAM_StartMouseMove(void);
    virtual        void        CAM_EndMouseMove(void);
    virtual        void        CAM_StartDistance(void);
    virtual        void        CAM_EndDistance(void);
    virtual        int            CAM_InterceptingMouse(void);
    virtual        void        CAM_Command(int command);

    virtual        void        CAM_ToOrthographic();
    virtual        bool        CAM_IsOrthographic() const;
    virtual        void        CAM_OrthographicSize(float& w, float& h) const;

    virtual        void        LevelInit(void);

    virtual        void        CAM_SetCameraThirdData(CameraThirdData_t* pCameraData, const QAngle& vecCameraOffset);
    virtual        void        CAM_CameraThirdThink(void);

    virtual        void        CheckPaused(CUserCmd* cmd);
    virtual        void        CheckSplitScreenMimic(int nSlot, CUserCmd* cmd, CUserCmd* pPlayer0Command);

    CVerifiedUserCmd*        GetVerifiedCmd(int sequence_number)
    {
        return &m_pVerifiedCommands[sequence_number % MULTIPLAYER_BACKUP];
    }

public:
    char                pad_0000[12 - 4];                //0x0000
    bool                m_fTrackIRAvailable;            //0x000C
    bool                m_fMouseInitialized;            //0x000D
    bool                m_fMouseActive;                    //0x000E
    bool                m_fJoystickAdvancedInit;        //0x000F
    char                pad_0010[44];                    //0x0010
    char*                m_pKeys;                        //0x003C
    char                pad_0040[48];                    //0x0040
    int32_t                m_nCamCommand;                    //0x0070
    char                pad_0074[76];                    //0x0074
    bool                m_fCameraInterceptingMouse;        //0x00C0
    bool                m_fCameraInThirdPerson;            //0x00C1
    bool                m_fCameraMovingWithMouse;        //0x00C2
    char                pad_00C3[1];                    //0x00C3
    Vector                m_vecCameraOffset;                //0x00C4
    bool                m_fCameraDistanceMove;            //0x00D0
    char                pad_00D1[19];                    //0x00D1
    bool                m_CameraIsOrthographic;            //0x00E4
    bool                m_CameraIsThirdPersonOverview;    //0x00E5
    char                pad_00E6[2];                    //0x00E6
    QAngle*                m_angPreviousViewAngles;        //0x00E8
    QAngle*                m_angPreviousViewAnglesTilt;    //0x00EC
    char                pad_00F0[16];                    //0x00F0
    float                m_flLastForwardMove;            //0x0100
    int32_t                m_nClearInputState;                //0x0104
    CUserCmd*            m_pCommands;                    //0x0108
    CVerifiedUserCmd*    m_pVerifiedCommands;            //0x010C
};
 
Структуру обновил,но меню и дебаг консоль не появилаась.Скорее всего сигнатуры подводят уже
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Если у тебя в классе есть виртуальные функции, то 4 байта начальные отойдут под них, и компилятор сместит твою структуру на +4, если же виртуалок нет, как у @francyz то и смещения от компилятора не будет. Поэтому если класс с виртуалками, то
char pad_0000[12 - 4];
если без, то
char pad_0000[12];

Мой класс полностью, если нужен -

C++:
Expand Collapse Copy
class CInput
{
public:
    CInput(void);
    ~CInput(void);
    void                    InitMouse(void);
    virtual        void        Init_All(void);
    virtual        void        Shutdown_All(void);
    virtual        int            GetButtonBits(bool bResetState);
    virtual        void        CreateMove(int sequence_number, float input_sample_frametime, bool active);
    virtual        void        ExtraMouseSample(float frametime, bool active);
    virtual        bool        WriteUsercmdDeltaToBuffer(int nSlot, bf_write* buf, int from, int to, bool isnewcommand);
    virtual        void        EncodeUserCmdToBuffer(int nSlot, bf_write& buf, int slot);
    virtual        void        DecodeUserCmdFromBuffer(int nSlot, bf_read& buf, int slot);

    virtual        CUserCmd* GetUserCmd(int nSlot, int sequence_number);

    virtual        void        MakeWeaponSelection(CBaseCombatWeapon* weapon);

    virtual        float        KeyState(kbutton_t* key);
    virtual        int            KeyEvent(int down, ButtonCode_t keynum, const char* pszCurrentBinding);
    virtual        kbutton_t* FindKey(const char* name);

    virtual        void        ControllerCommands(void);
    virtual        void        Joystick_Advanced(bool bSilent);
    virtual        void        Joystick_SetSampleTime(float frametime);
    virtual        float        Joystick_GetPitch(void);
    virtual        float        Joystick_GetYaw(void);
    virtual        void        Joystick_Querry(float& forward, float& side, float& pitch, float& yaw);
    virtual        void        Joystick_ForceRecentering(int nStick, bool bSet = true);
    virtual        void        IN_SetSampleTime(float frametime);

    virtual        void        AccumulateMouse(int nSlot);
    virtual        void        ActivateMouse(void);
    virtual        void        DeactivateMouse(void);
    virtual        void        ClearStates(void);
    virtual        float        GetLookSpring(void);

    virtual        void        GetFullscreenMousePos(int* mx, int* my, int* unclampedx = NULL, int* unclampedy = NULL);
    virtual        void        SetFullscreenMousePos(int mx, int my);
    virtual        void        ResetMouse(void);

    virtual        float        GetLastForwardMove(void);
    virtual        void        ClearInputButton(int bits);

    virtual        void        CAM_Think(void);
    virtual        int            CAM_IsThirdPerson(int nSlot = -1);
    virtual        bool        CAM_IsThirdPersonOverview(int nSlot = -1);
    virtual        void        CAM_GetCameraOffset(Vector& ofs);
    virtual        void        CAM_ToThirdPerson(void);
    virtual        void        CAM_ToFirstPerson(void);
    virtual        void        CAM_ToThirdPersonShoulder(void);
    virtual        void        CAM_ToThirdPersonOverview(void);
    virtual        void        CAM_StartMouseMove(void);
    virtual        void        CAM_EndMouseMove(void);
    virtual        void        CAM_StartDistance(void);
    virtual        void        CAM_EndDistance(void);
    virtual        int            CAM_InterceptingMouse(void);
    virtual        void        CAM_Command(int command);

    virtual        void        CAM_ToOrthographic();
    virtual        bool        CAM_IsOrthographic() const;
    virtual        void        CAM_OrthographicSize(float& w, float& h) const;

    virtual        void        LevelInit(void);

    virtual        void        CAM_SetCameraThirdData(CameraThirdData_t* pCameraData, const QAngle& vecCameraOffset);
    virtual        void        CAM_CameraThirdThink(void);

    virtual        void        CheckPaused(CUserCmd* cmd);
    virtual        void        CheckSplitScreenMimic(int nSlot, CUserCmd* cmd, CUserCmd* pPlayer0Command);

    CVerifiedUserCmd*        GetVerifiedCmd(int sequence_number)
    {
        return &m_pVerifiedCommands[sequence_number % MULTIPLAYER_BACKUP];
    }

public:
    char                pad_0000[12 - 4];                //0x0000
    bool                m_fTrackIRAvailable;            //0x000C
    bool                m_fMouseInitialized;            //0x000D
    bool                m_fMouseActive;                    //0x000E
    bool                m_fJoystickAdvancedInit;        //0x000F
    char                pad_0010[44];                    //0x0010
    char*                m_pKeys;                        //0x003C
    char                pad_0040[48];                    //0x0040
    int32_t                m_nCamCommand;                    //0x0070
    char                pad_0074[76];                    //0x0074
    bool                m_fCameraInterceptingMouse;        //0x00C0
    bool                m_fCameraInThirdPerson;            //0x00C1
    bool                m_fCameraMovingWithMouse;        //0x00C2
    char                pad_00C3[1];                    //0x00C3
    Vector                m_vecCameraOffset;                //0x00C4
    bool                m_fCameraDistanceMove;            //0x00D0
    char                pad_00D1[19];                    //0x00D1
    bool                m_CameraIsOrthographic;            //0x00E4
    bool                m_CameraIsThirdPersonOverview;    //0x00E5
    char                pad_00E6[2];                    //0x00E6
    QAngle*                m_angPreviousViewAngles;        //0x00E8
    QAngle*                m_angPreviousViewAnglesTilt;    //0x00EC
    char                pad_00F0[16];                    //0x00F0
    float                m_flLastForwardMove;            //0x0100
    int32_t                m_nClearInputState;                //0x0104
    CUserCmd*            m_pCommands;                    //0x0108
    CVerifiedUserCmd*    m_pVerifiedCommands;            //0x010C
};
Спасибо. С твоим классом все ок.
ты не правильно получаешь verified cmd
До этого было все ок,а сейчас нет? - ну голову-то включи.

Скорее всего была ебля с паддингом,хотя виртов в классе не было.
 
Спасибо. С твоим классом все ок.

До этого было все ок,а сейчас нет? - ну голову-то включи.

Скорее всего была ебля с паддингом,хотя виртов в классе не было.
Скинь класс если не тяжело
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Скинь класс если не тяжело
Если у тебя в классе есть виртуальные функции, то 4 байта начальные отойдут под них, и компилятор сместит твою структуру на +4, если же виртуалок нет, как у @francyz то и смещения от компилятора не будет. Поэтому если класс с виртуалками, то
char pad_0000[12 - 4];
если без, то
char pad_0000[12];

Мой класс полностью, если нужен -

C++:
Expand Collapse Copy
class CInput
{
public:
    CInput(void);
    ~CInput(void);
    void                    InitMouse(void);
    virtual        void        Init_All(void);
    virtual        void        Shutdown_All(void);
    virtual        int            GetButtonBits(bool bResetState);
    virtual        void        CreateMove(int sequence_number, float input_sample_frametime, bool active);
    virtual        void        ExtraMouseSample(float frametime, bool active);
    virtual        bool        WriteUsercmdDeltaToBuffer(int nSlot, bf_write* buf, int from, int to, bool isnewcommand);
    virtual        void        EncodeUserCmdToBuffer(int nSlot, bf_write& buf, int slot);
    virtual        void        DecodeUserCmdFromBuffer(int nSlot, bf_read& buf, int slot);

    virtual        CUserCmd* GetUserCmd(int nSlot, int sequence_number);

    virtual        void        MakeWeaponSelection(CBaseCombatWeapon* weapon);

    virtual        float        KeyState(kbutton_t* key);
    virtual        int            KeyEvent(int down, ButtonCode_t keynum, const char* pszCurrentBinding);
    virtual        kbutton_t* FindKey(const char* name);

    virtual        void        ControllerCommands(void);
    virtual        void        Joystick_Advanced(bool bSilent);
    virtual        void        Joystick_SetSampleTime(float frametime);
    virtual        float        Joystick_GetPitch(void);
    virtual        float        Joystick_GetYaw(void);
    virtual        void        Joystick_Querry(float& forward, float& side, float& pitch, float& yaw);
    virtual        void        Joystick_ForceRecentering(int nStick, bool bSet = true);
    virtual        void        IN_SetSampleTime(float frametime);

    virtual        void        AccumulateMouse(int nSlot);
    virtual        void        ActivateMouse(void);
    virtual        void        DeactivateMouse(void);
    virtual        void        ClearStates(void);
    virtual        float        GetLookSpring(void);

    virtual        void        GetFullscreenMousePos(int* mx, int* my, int* unclampedx = NULL, int* unclampedy = NULL);
    virtual        void        SetFullscreenMousePos(int mx, int my);
    virtual        void        ResetMouse(void);

    virtual        float        GetLastForwardMove(void);
    virtual        void        ClearInputButton(int bits);

    virtual        void        CAM_Think(void);
    virtual        int            CAM_IsThirdPerson(int nSlot = -1);
    virtual        bool        CAM_IsThirdPersonOverview(int nSlot = -1);
    virtual        void        CAM_GetCameraOffset(Vector& ofs);
    virtual        void        CAM_ToThirdPerson(void);
    virtual        void        CAM_ToFirstPerson(void);
    virtual        void        CAM_ToThirdPersonShoulder(void);
    virtual        void        CAM_ToThirdPersonOverview(void);
    virtual        void        CAM_StartMouseMove(void);
    virtual        void        CAM_EndMouseMove(void);
    virtual        void        CAM_StartDistance(void);
    virtual        void        CAM_EndDistance(void);
    virtual        int            CAM_InterceptingMouse(void);
    virtual        void        CAM_Command(int command);

    virtual        void        CAM_ToOrthographic();
    virtual        bool        CAM_IsOrthographic() const;
    virtual        void        CAM_OrthographicSize(float& w, float& h) const;

    virtual        void        LevelInit(void);

    virtual        void        CAM_SetCameraThirdData(CameraThirdData_t* pCameraData, const QAngle& vecCameraOffset);
    virtual        void        CAM_CameraThirdThink(void);

    virtual        void        CheckPaused(CUserCmd* cmd);
    virtual        void        CheckSplitScreenMimic(int nSlot, CUserCmd* cmd, CUserCmd* pPlayer0Command);

    CVerifiedUserCmd*        GetVerifiedCmd(int sequence_number)
    {
        return &m_pVerifiedCommands[sequence_number % MULTIPLAYER_BACKUP];
    }

public:
    char                pad_0000[12 - 4];                //0x0000
    bool                m_fTrackIRAvailable;            //0x000C
    bool                m_fMouseInitialized;            //0x000D
    bool                m_fMouseActive;                    //0x000E
    bool                m_fJoystickAdvancedInit;        //0x000F
    char                pad_0010[44];                    //0x0010
    char*                m_pKeys;                        //0x003C
    char                pad_0040[48];                    //0x0040
    int32_t                m_nCamCommand;                    //0x0070
    char                pad_0074[76];                    //0x0074
    bool                m_fCameraInterceptingMouse;        //0x00C0
    bool                m_fCameraInThirdPerson;            //0x00C1
    bool                m_fCameraMovingWithMouse;        //0x00C2
    char                pad_00C3[1];                    //0x00C3
    Vector                m_vecCameraOffset;                //0x00C4
    bool                m_fCameraDistanceMove;            //0x00D0
    char                pad_00D1[19];                    //0x00D1
    bool                m_CameraIsOrthographic;            //0x00E4
    bool                m_CameraIsThirdPersonOverview;    //0x00E5
    char                pad_00E6[2];                    //0x00E6
    QAngle*                m_angPreviousViewAngles;        //0x00E8
    QAngle*                m_angPreviousViewAnglesTilt;    //0x00EC
    char                pad_00F0[16];                    //0x00F0
    float                m_flLastForwardMove;            //0x0100
    int32_t                m_nClearInputState;                //0x0104
    CUserCmd*            m_pCommands;                    //0x0108
    CVerifiedUserCmd*    m_pVerifiedCommands;            //0x010C
};
 
Назад
Сверху Снизу