unknown
d03c92b6f0
Since it was previously based on old frametime, you would see your angle changes from previous frametime, not the current one... It's now fixed.
118 lines
No EOL
3.9 KiB
C++
118 lines
No EOL
3.9 KiB
C++
//========= Copyright Valve Corporation, All rights reserved. ============//
|
|
//
|
|
// Purpose:
|
|
//
|
|
// $NoKeywords: $
|
|
//
|
|
//=============================================================================//
|
|
#if !defined( IINPUT_H )
|
|
#define IINPUT_H
|
|
#ifdef _WIN32
|
|
#pragma once
|
|
#endif
|
|
|
|
class bf_write;
|
|
class bf_read;
|
|
class CUserCmd;
|
|
class C_BaseCombatWeapon;
|
|
struct kbutton_t;
|
|
|
|
struct CameraThirdData_t
|
|
{
|
|
float m_flPitch;
|
|
float m_flYaw;
|
|
float m_flDist;
|
|
float m_flLag;
|
|
Vector m_vecHullMin;
|
|
Vector m_vecHullMax;
|
|
};
|
|
|
|
abstract_class IInput
|
|
{
|
|
public:
|
|
// Initialization/shutdown of the subsystem
|
|
virtual void Init_All( void ) = 0;
|
|
virtual void Shutdown_All( void ) = 0;
|
|
// Latching button states
|
|
virtual int GetButtonBits( int ) = 0;
|
|
// Create movement command
|
|
virtual void CreateMove ( int sequence_number, float input_sample_frametime, bool active ) = 0;
|
|
virtual void ExtraMovementSample( int number_of_ticks_this_frame, int current_command, float frametime, bool active ) = 0;
|
|
virtual bool WriteUsercmdDeltaToBuffer( bf_write *buf, int from, int to, bool isnewcommand ) = 0;
|
|
virtual void EncodeUserCmdToBuffer( bf_write& buf, int slot ) = 0;
|
|
virtual void DecodeUserCmdFromBuffer( bf_read& buf, int slot ) = 0;
|
|
|
|
virtual CUserCmd *GetUserCmd( int sequence_number ) = 0;
|
|
|
|
virtual void MakeWeaponSelection( C_BaseCombatWeapon *weapon ) = 0;
|
|
|
|
// Retrieve key state
|
|
virtual float KeyState ( kbutton_t *key ) = 0;
|
|
// Issue key event
|
|
virtual int KeyEvent( int eventcode, ButtonCode_t keynum, const char *pszCurrentBinding ) = 0;
|
|
// Look for key
|
|
virtual kbutton_t *FindKey( const char *name ) = 0;
|
|
|
|
// Issue commands from controllers
|
|
virtual void ControllerCommands( void ) = 0;
|
|
// Extra initialization for some joysticks
|
|
virtual void Joystick_Advanced( void ) = 0;
|
|
virtual void Joystick_SetSampleTime( float frametime ) = 0;
|
|
virtual void IN_SetSampleTime( float frametime ) = 0;
|
|
|
|
// Accumulate mouse delta
|
|
virtual void AccumulateMouse( void ) = 0;
|
|
// Activate/deactivate mouse
|
|
virtual void ActivateMouse( void ) = 0;
|
|
virtual void DeactivateMouse( void ) = 0;
|
|
|
|
// Clear mouse state data
|
|
virtual void ClearStates( void ) = 0;
|
|
// Retrieve lookspring setting
|
|
virtual float GetLookSpring( void ) = 0;
|
|
|
|
// Retrieve mouse position
|
|
virtual void GetFullscreenMousePos( int *mx, int *my, int *unclampedx = 0, int *unclampedy = 0 ) = 0;
|
|
virtual void SetFullscreenMousePos( int mx, int my ) = 0;
|
|
virtual void ResetMouse( void ) = 0;
|
|
virtual float GetLastForwardMove( void ) = 0;
|
|
virtual float Joystick_GetForward( void ) = 0;
|
|
virtual float Joystick_GetSide( void ) = 0;
|
|
virtual float Joystick_GetPitch( void ) = 0;
|
|
virtual float Joystick_GetYaw( void ) = 0;
|
|
|
|
// Third Person camera ( TODO/FIXME: Move this to a separate interface? )
|
|
virtual void CAM_Think( void ) = 0;
|
|
virtual int CAM_IsThirdPerson( void ) = 0;
|
|
virtual void CAM_ToThirdPerson(void) = 0;
|
|
virtual void CAM_ToFirstPerson(void) = 0;
|
|
virtual void CAM_StartMouseMove(void) = 0;
|
|
virtual void CAM_EndMouseMove(void) = 0;
|
|
virtual void CAM_StartDistance(void) = 0;
|
|
virtual void CAM_EndDistance(void) = 0;
|
|
virtual int CAM_InterceptingMouse( void ) = 0;
|
|
|
|
// orthographic camera info ( TODO/FIXME: Move this to a separate interface? )
|
|
virtual void CAM_ToOrthographic() = 0;
|
|
virtual bool CAM_IsOrthographic() const = 0;
|
|
virtual void CAM_OrthographicSize( float& w, float& h ) const = 0;
|
|
|
|
#if defined( HL2_CLIENT_DLL )
|
|
// IK back channel info
|
|
virtual void AddIKGroundContactInfo( int entindex, float minheight, float maxheight ) = 0;
|
|
#endif
|
|
|
|
virtual void LevelInit( void ) = 0;
|
|
|
|
// Causes an input to have to be re-pressed to become active
|
|
virtual void ClearInputButton( int bits ) = 0;
|
|
|
|
virtual void CAM_SetCameraThirdData( CameraThirdData_t *pCameraData, const QAngle &vecCameraOffset ) = 0;
|
|
virtual void CAM_CameraThirdThink( void ) = 0;
|
|
|
|
virtual bool EnableJoystickMode() = 0;
|
|
};
|
|
|
|
extern ::IInput *input;
|
|
|
|
#endif // IINPUT_H
|