From 3d412a4b30a9f7c7f51ea6562e694315948bd3da Mon Sep 17 00:00:00 2001 From: boris Date: Wed, 28 Nov 2018 16:00:02 +1300 Subject: cleaned up in short, the cheat and loader are now separate solutions. unused stuff was moved into the legacy solution in case anyone wants to compile it or whatever. i can change this back if you want to. also, i configured the loader to compile in x64, and have separate build types for linux and win64 --- cheat/tf2/IInputSystem.h | 163 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 163 insertions(+) create mode 100644 cheat/tf2/IInputSystem.h (limited to 'cheat/tf2/IInputSystem.h') diff --git a/cheat/tf2/IInputSystem.h b/cheat/tf2/IInputSystem.h new file mode 100644 index 0000000..10f8168 --- /dev/null +++ b/cheat/tf2/IInputSystem.h @@ -0,0 +1,163 @@ +#pragma once +#include "VFunc.h" +#include "IAppSystem.h" +#include "ButtonCode_t.h" + +class IInputSystem : public IAppSystem +{ +public: + // Attach, detach input system from a particular window + // This window should be the root window for the application + // Only 1 window should be attached at any given time. + virtual void AttachToWindow( void* hWnd ) = 0; + virtual void DetachFromWindow( ) = 0; + + // Enables/disables input. PollInputState will not update current + // button/analog states when it is called if the system is disabled. + virtual void EnableInput( bool bEnable ) = 0; + + // Enables/disables the windows message pump. PollInputState will not + // Peek/Dispatch messages if this is disabled + virtual void EnableMessagePump( bool bEnable ) = 0; + + // Polls the current input state + virtual void PollInputState( ) = 0; + + // Gets the time of the last polling in ms + virtual int GetPollTick( ) const = 0; + + // Is a button down? "Buttons" are binary-state input devices (mouse buttons, keyboard keys) + virtual bool IsButtonDown( ButtonCode_t code ) const = 0; + + // Returns the tick at which the button was pressed and released + virtual int GetButtonPressedTick( ButtonCode_t code ) const = 0; + virtual int GetButtonReleasedTick( ButtonCode_t code ) const = 0; + + // Gets the value of an analog input device this frame + // Includes joysticks, mousewheel, mouse + virtual int GetAnalogValue( AnalogCode_t code ) const = 0; + + // Gets the change in a particular analog input device this frame + // Includes joysticks, mousewheel, mouse + virtual int GetAnalogDelta( AnalogCode_t code ) const = 0; + + // Returns the input events since the last poll + virtual int GetEventCount( ) const = 0; + virtual const InputEvent_t* GetEventData( ) const = 0; + +private: + //22 CInputSystem::MotionControllerActive(void)const + virtual void __pad22( ) = 0; + //23 CInputSystem::GetMotionControllerOrientation(void)const + virtual void __pad23( ) = 0; + //24 CInputSystem::GetMotionControllerPosX(void)const + virtual void __pad24( ) = 0; + //25 CInputSystem::GetMotionControllerPosY(void)const + virtual void __pad25( ) = 0; + //26 CInputSystem::GetMotionControllerDeviceStatus(void)const + virtual void __pad26( ) = 0; + //27 CInputSystem::GetMotionControllerDeviceStatusFlags(void)const + virtual void __pad27( ) = 0; + //28 CInputSystem::SetMotionControllerDeviceStatus(int) + virtual void __pad28( ) = 0; + //29 CInputSystem::SetMotionControllerCalibrationInvalid(void) + virtual void __pad29( ) = 0; + //30 CInputSystem::StepMotionControllerCalibration(void) + virtual void __pad30( ) = 0; + //31 CInputSystem::ResetMotionControllerScreenCalibration(void) + virtual void __pad31( ) = 0; + +public: + // Posts a user-defined event into the event queue; this is expected + // to be called in overridden wndprocs connected to the root panel. + virtual void PostUserEvent( const InputEvent_t &event ) = 0; + + // Returns the number of joysticks + virtual int GetJoystickCount( ) const = 0; + + // Enable/disable joystick, it has perf costs + virtual void EnableJoystickInput( int nJoystick, bool bEnable ) = 0; + + // Enable/disable diagonal joystick POV (simultaneous POV buttons down) + virtual void EnableJoystickDiagonalPOV( int nJoystick, bool bEnable ) = 0; + + // Sample the joystick and append events to the input queue + virtual void SampleDevices( ) = 0; + + // FIXME: Currently force-feedback is only supported on the Xbox 360 + virtual void SetRumble( float fLeftMotor, float fRightMotor, int userId = -1 ) = 0; + virtual void StopRumble( ) = 0; + + // Resets the input state + virtual void ResetInputState( ) = 0; + + // Convert back + forth between ButtonCode/AnalogCode + strings + virtual const char *ButtonCodeToString( ButtonCode_t code ) const = 0; + virtual const char *AnalogCodeToString( AnalogCode_t code ) const = 0; + virtual ButtonCode_t StringToButtonCode( const char *pString ) const = 0; + virtual AnalogCode_t StringToAnalogCode( const char *pString ) const = 0; + + // Sleeps until input happens. Pass a negative number to sleep infinitely + virtual void SleepUntilInput( int nMaxSleepTimeMS = -1 ) = 0; + + // Convert back + forth between virtual codes + button codes + // FIXME: This is a temporary piece of code + virtual ButtonCode_t VirtualKeyToButtonCode( int nVirtualKey ) const = 0; + virtual int ButtonCodeToVirtualKey( ButtonCode_t code ) const = 0; + virtual ButtonCode_t ScanCodeToButtonCode( int lParam ) const = 0; + + // How many times have we called PollInputState? + virtual int GetPollCount( ) const = 0; + + // Sets the cursor position + virtual void SetCursorPosition( int x, int y ) = 0; + + // Tells the input system to generate UI-related events, defined + // in inputsystem/inputenums.h (see IE_FirstUIEvent) + // We could have multiple clients that care about UI-related events + // so we refcount the clients with an Add/Remove strategy. If there + // are no interested clients, the UI events are not generated + virtual void AddUIEventListener( ) = 0; + virtual void RemoveUIEventListener( ) = 0; + + // Returns the currently attached window + virtual PlatWindow_t GetAttachedWindow( ) const = 0; + + // Creates a cursor using one of the well-known cursor icons + virtual InputCursorHandle_t GetStandardCursor( InputStandardCursor_t id ) = 0; + + // Loads a cursor defined in a file + virtual InputCursorHandle_t LoadCursorFromFile( const char *pFileName, const char *pPathID = NULL ) = 0; + + // Sets the cursor icon + virtual void SetCursorIcon( InputCursorHandle_t hCursor ) = 0; + + // Gets the cursor position + virtual void GetCursorPosition( int *pX, int *pY ) = 0; + + // Mouse capture + virtual void EnableMouseCapture( PlatWindow_t hWnd ) = 0; + virtual void DisableMouseCapture( ) = 0; + + virtual void SetMouseCursorVisible( bool bVisible ) = 0; + + virtual void DisableHardwareCursor( ) = 0; + virtual void EnableHardwareCursor( ) = 0; + virtual void ResetCursorIcon( ) = 0; + virtual bool GetRawMouseAccumulators( int& accumX, int& accumY ) = 0; + + /*64 CInputSystem::GetConnectedInputDevices(void) + 65 CInputSystem::IsInputDeviceConnected(InputDevice_t) + 66 CInputSystem::SetInputDeviceConnected(InputDevice_t,bool) + 67 CInputSystem::IsOnlySingleDeviceConnected(void) + 68 CInputSystem::GetCurrentInputDevice(void) + 69 CInputSystem::IsDeviceReadingInput(InputDevice_t)const + 70 CInputSystem::SetCurrentInputDevice(InputDevice_t) + 71 CInputSystem::ResetCurrentInputDevice(void) + 72 CInputSystem::SampleInputToFindCurrentDevice(bool) + 73 CInputSystem::IsSamplingForCurrentDevice(void) + 74 CInputSystem::IsSteamControllerActive(void)const + 75 CInputSystem::SetSteamControllerMode(char const*,void const*) + 76 CInputSystem::~CInputSystem() + 77 CInputSystem::~CInputSystem()*/ +}; \ No newline at end of file -- cgit v1.2.3