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
};