mirror of https://github.com/FWGS/hlsdk-xash3d
Use mouse input backend depending on the current engine
This commit is contained in:
parent
31b2a68d6d
commit
1d8d1b5d2e
|
@ -27,7 +27,7 @@ set (CLDLL_LIBRARY client)
|
||||||
|
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-write-strings -DLINUX -D_LINUX -Dstricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp -DCLIENT_WEAPONS -DCLIENT_DLL -w")
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-write-strings -DLINUX -D_LINUX -Dstricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp -DCLIENT_WEAPONS -DCLIENT_DLL -w")
|
||||||
if (GOLDSOURCE_SUPPORT)
|
if (GOLDSOURCE_SUPPORT)
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -lSDL2 -Wl,--no-undefined")
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DGOLDSOURCE_SUPPORT -lSDL2 -Wl,--no-undefined")
|
||||||
endif()
|
endif()
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS}")
|
set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS}")
|
||||||
|
|
||||||
|
@ -73,6 +73,9 @@ set (CLDLL_SOURCES
|
||||||
hud_update.cpp
|
hud_update.cpp
|
||||||
in_camera.cpp
|
in_camera.cpp
|
||||||
input.cpp
|
input.cpp
|
||||||
|
input_goldsource.cpp
|
||||||
|
input_mouse.cpp
|
||||||
|
input_xash3d.cpp
|
||||||
menu.cpp
|
menu.cpp
|
||||||
message.cpp
|
message.cpp
|
||||||
overview.cpp
|
overview.cpp
|
||||||
|
@ -93,12 +96,6 @@ set (CLDLL_SOURCES
|
||||||
scoreboard.cpp
|
scoreboard.cpp
|
||||||
MOTD.cpp)
|
MOTD.cpp)
|
||||||
|
|
||||||
if (GOLDSOURCE_SUPPORT)
|
|
||||||
set (CLDLL_SOURCES "${CLDLL_SOURCES}" input_goldsource.cpp)
|
|
||||||
else()
|
|
||||||
set (CLDLL_SOURCES "${CLDLL_SOURCES}" input_xash3d.cpp)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
include_directories (. hl/ ../dlls ../dlls/wpn_shared ../common ../engine ../pm_shared ../game_shared ../public)
|
include_directories (. hl/ ../dlls ../dlls/wpn_shared ../common ../engine ../pm_shared ../game_shared ../public)
|
||||||
|
|
||||||
if(USE_VOICEMGR)
|
if(USE_VOICEMGR)
|
||||||
|
|
|
@ -25,6 +25,8 @@
|
||||||
// - Drawing the HUD graphics every frame
|
// - Drawing the HUD graphics every frame
|
||||||
// - Handling the custum HUD-update packets
|
// - Handling the custum HUD-update packets
|
||||||
//
|
//
|
||||||
|
#ifndef CL_DLL_H
|
||||||
|
#define CL_DLL_H
|
||||||
typedef unsigned char byte;
|
typedef unsigned char byte;
|
||||||
typedef unsigned short word;
|
typedef unsigned short word;
|
||||||
typedef float vec_t;
|
typedef float vec_t;
|
||||||
|
@ -48,3 +50,4 @@ typedef int ( *pfnUserMsgHook )( const char *pszName, int iSize, void *pbuf );
|
||||||
extern cl_enginefunc_t gEngfuncs;
|
extern cl_enginefunc_t gEngfuncs;
|
||||||
#include "../engine/mobility_int.h"
|
#include "../engine/mobility_int.h"
|
||||||
extern mobile_engfuncs_t *gMobileEngfuncs;
|
extern mobile_engfuncs_t *gMobileEngfuncs;
|
||||||
|
#endif
|
||||||
|
|
|
@ -19,7 +19,8 @@
|
||||||
//
|
//
|
||||||
// CHud handles the message, calculation, and drawing the HUD
|
// CHud handles the message, calculation, and drawing the HUD
|
||||||
//
|
//
|
||||||
|
#ifndef HUD_H
|
||||||
|
#define HUD_H
|
||||||
#define RGB_YELLOWISH 0x00FFA000 //255,160,0
|
#define RGB_YELLOWISH 0x00FFA000 //255,160,0
|
||||||
#define RGB_REDISH 0x00FF1010 //255,160,0
|
#define RGB_REDISH 0x00FF1010 //255,160,0
|
||||||
#define RGB_GREENISH 0x0000A000 //0,160,0
|
#define RGB_GREENISH 0x0000A000 //0,160,0
|
||||||
|
@ -677,3 +678,4 @@ extern int g_iTeamNumber;
|
||||||
extern int g_iUser1;
|
extern int g_iUser1;
|
||||||
extern int g_iUser2;
|
extern int g_iUser2;
|
||||||
extern int g_iUser3;
|
extern int g_iUser3;
|
||||||
|
#endif
|
||||||
|
|
|
@ -8,20 +8,20 @@
|
||||||
// in_win.c -- windows 95 mouse and joystick code
|
// in_win.c -- windows 95 mouse and joystick code
|
||||||
// 02/21/97 JCB Added extended DirectInput code to support external controllers.
|
// 02/21/97 JCB Added extended DirectInput code to support external controllers.
|
||||||
|
|
||||||
//#include "port.h"
|
#include "input_mouse.h"
|
||||||
|
|
||||||
|
#ifdef SUPPORT_GOLDSOURCE_INPUT
|
||||||
|
|
||||||
#include "hud.h"
|
#include "hud.h"
|
||||||
#include "cl_util.h"
|
#include "cl_util.h"
|
||||||
#include "camera.h"
|
#include "camera.h"
|
||||||
#include "kbutton.h"
|
#include "kbutton.h"
|
||||||
#include "cvardef.h"
|
#include "cvardef.h"
|
||||||
#include "usercmd.h"
|
|
||||||
#include "const.h"
|
#include "const.h"
|
||||||
#include "camera.h"
|
#include "camera.h"
|
||||||
#include "in_defs.h"
|
#include "in_defs.h"
|
||||||
#include "keydefs.h"
|
#include "keydefs.h"
|
||||||
#include "view.h"
|
#include "view.h"
|
||||||
//#include "Exports.h"
|
|
||||||
|
|
||||||
#ifndef _WIN32
|
#ifndef _WIN32
|
||||||
#define USE_SDL2
|
#define USE_SDL2
|
||||||
|
@ -79,7 +79,7 @@ bool isMouseRelative = false;
|
||||||
extern globalvars_t *gpGlobals;
|
extern globalvars_t *gpGlobals;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
Vector dead_viewangles(0, 0, 0);
|
extern Vector dead_viewangles;
|
||||||
|
|
||||||
void V_StopPitchDrift( void )
|
void V_StopPitchDrift( void )
|
||||||
{
|
{
|
||||||
|
@ -88,7 +88,7 @@ void V_StopPitchDrift( void )
|
||||||
|
|
||||||
// mouse variables
|
// mouse variables
|
||||||
cvar_t *m_filter;
|
cvar_t *m_filter;
|
||||||
cvar_t *sensitivity;
|
extern cvar_t *sensitivity;
|
||||||
|
|
||||||
// Custom mouse acceleration (0 disable, 1 to enable, 2 enable with separate yaw/pitch rescale)
|
// Custom mouse acceleration (0 disable, 1 to enable, 2 enable with separate yaw/pitch rescale)
|
||||||
static cvar_t *m_customaccel;
|
static cvar_t *m_customaccel;
|
||||||
|
@ -106,16 +106,11 @@ static cvar_t *m_customaccel_exponent;
|
||||||
static cvar_t *m_mousethread_sleep;
|
static cvar_t *m_mousethread_sleep;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
int mouse_buttons;
|
|
||||||
int mouse_oldbuttonstate;
|
|
||||||
POINT current_pos;
|
|
||||||
int old_mouse_x, old_mouse_y, mx_accum, my_accum;
|
|
||||||
float mouse_x, mouse_y;
|
float mouse_x, mouse_y;
|
||||||
|
|
||||||
static int restore_spi;
|
static int restore_spi;
|
||||||
static int originalmouseparms[3], newmouseparms[3] = {0, 0, 1};
|
static int originalmouseparms[3], newmouseparms[3] = {0, 0, 1};
|
||||||
static int mouseactive = 0;
|
static int mouseactive = 0;
|
||||||
int mouseinitialized;
|
|
||||||
static int mouseparmsvalid;
|
static int mouseparmsvalid;
|
||||||
static int mouseshowtoggle = 1;
|
static int mouseshowtoggle = 1;
|
||||||
|
|
||||||
|
@ -158,7 +153,7 @@ SDL_GameController *s_pJoystick = NULL;
|
||||||
// each time. this avoids any problems with getting back to a default usage
|
// each time. this avoids any problems with getting back to a default usage
|
||||||
// or when changing from one controller to another. this way at least something
|
// or when changing from one controller to another. this way at least something
|
||||||
// works.
|
// works.
|
||||||
cvar_t *in_joystick;
|
extern cvar_t *in_joystick;
|
||||||
cvar_t *joy_name;
|
cvar_t *joy_name;
|
||||||
cvar_t *joy_advanced;
|
cvar_t *joy_advanced;
|
||||||
cvar_t *joy_advaxisx;
|
cvar_t *joy_advaxisx;
|
||||||
|
@ -348,7 +343,7 @@ void IN_ResetMouse( void );
|
||||||
IN_ActivateMouse
|
IN_ActivateMouse
|
||||||
===========
|
===========
|
||||||
*/
|
*/
|
||||||
extern "C" void DLLEXPORT IN_ActivateMouse (void)
|
void GoldSourceInput::IN_ActivateMouse (void)
|
||||||
{
|
{
|
||||||
if (mouseinitialized)
|
if (mouseinitialized)
|
||||||
{
|
{
|
||||||
|
@ -376,7 +371,7 @@ extern "C" void DLLEXPORT IN_ActivateMouse (void)
|
||||||
IN_DeactivateMouse
|
IN_DeactivateMouse
|
||||||
===========
|
===========
|
||||||
*/
|
*/
|
||||||
extern "C" void DLLEXPORT IN_DeactivateMouse (void)
|
void GoldSourceInput::IN_DeactivateMouse (void)
|
||||||
{
|
{
|
||||||
if (mouseinitialized)
|
if (mouseinitialized)
|
||||||
{
|
{
|
||||||
|
@ -400,7 +395,7 @@ extern "C" void DLLEXPORT IN_DeactivateMouse (void)
|
||||||
IN_StartupMouse
|
IN_StartupMouse
|
||||||
===========
|
===========
|
||||||
*/
|
*/
|
||||||
void IN_StartupMouse (void)
|
void GoldSourceInput::IN_StartupMouse (void)
|
||||||
{
|
{
|
||||||
if ( gEngfuncs.CheckParm ("-nomouse", NULL ) )
|
if ( gEngfuncs.CheckParm ("-nomouse", NULL ) )
|
||||||
return;
|
return;
|
||||||
|
@ -437,7 +432,7 @@ void IN_StartupMouse (void)
|
||||||
IN_Shutdown
|
IN_Shutdown
|
||||||
===========
|
===========
|
||||||
*/
|
*/
|
||||||
void IN_Shutdown (void)
|
void GoldSourceInput::IN_Shutdown (void)
|
||||||
{
|
{
|
||||||
IN_DeactivateMouse ();
|
IN_DeactivateMouse ();
|
||||||
|
|
||||||
|
@ -521,7 +516,7 @@ void IN_ResetMouse( void )
|
||||||
IN_MouseEvent
|
IN_MouseEvent
|
||||||
===========
|
===========
|
||||||
*/
|
*/
|
||||||
extern "C" void DLLEXPORT IN_MouseEvent (int mstate)
|
void GoldSourceInput::IN_MouseEvent (int mstate)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
@ -596,7 +591,7 @@ void IN_ScaleMouse( float *x, float *y )
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void IN_GetMouseDelta( int *pOutX, int *pOutY)
|
void GoldSourceInput::IN_GetMouseDelta( int *pOutX, int *pOutY)
|
||||||
{
|
{
|
||||||
bool active = mouseactive && !iVisibleMouse;
|
bool active = mouseactive && !iVisibleMouse;
|
||||||
int mx, my;
|
int mx, my;
|
||||||
|
@ -715,7 +710,7 @@ void IN_GetMouseDelta( int *pOutX, int *pOutY)
|
||||||
IN_MouseMove
|
IN_MouseMove
|
||||||
===========
|
===========
|
||||||
*/
|
*/
|
||||||
void IN_MouseMove ( float frametime, usercmd_t *cmd)
|
void GoldSourceInput::IN_MouseMove ( float frametime, usercmd_t *cmd)
|
||||||
{
|
{
|
||||||
int mx, my;
|
int mx, my;
|
||||||
vec3_t viewangles;
|
vec3_t viewangles;
|
||||||
|
@ -797,7 +792,7 @@ void IN_MouseMove ( float frametime, usercmd_t *cmd)
|
||||||
IN_Accumulate
|
IN_Accumulate
|
||||||
===========
|
===========
|
||||||
*/
|
*/
|
||||||
extern "C" void DLLEXPORT IN_Accumulate (void)
|
void GoldSourceInput::IN_Accumulate (void)
|
||||||
{
|
{
|
||||||
//only accumulate mouse if we are not moving the camera with the mouse
|
//only accumulate mouse if we are not moving the camera with the mouse
|
||||||
if ( !iMouseInUse && !iVisibleMouse)
|
if ( !iMouseInUse && !iVisibleMouse)
|
||||||
|
@ -850,7 +845,7 @@ extern "C" void DLLEXPORT IN_Accumulate (void)
|
||||||
IN_ClearStates
|
IN_ClearStates
|
||||||
===================
|
===================
|
||||||
*/
|
*/
|
||||||
extern "C" void DLLEXPORT IN_ClearStates (void)
|
void GoldSourceInput::IN_ClearStates (void)
|
||||||
{
|
{
|
||||||
if ( !mouseactive )
|
if ( !mouseactive )
|
||||||
return;
|
return;
|
||||||
|
@ -999,7 +994,7 @@ void Joy_AdvancedUpdate_f (void)
|
||||||
IN_Commands
|
IN_Commands
|
||||||
===========
|
===========
|
||||||
*/
|
*/
|
||||||
void IN_Commands (void)
|
void GoldSourceInput::IN_Commands (void)
|
||||||
{
|
{
|
||||||
int i, key_index;
|
int i, key_index;
|
||||||
|
|
||||||
|
@ -1274,7 +1269,7 @@ void IN_JoyMove ( float frametime, usercmd_t *cmd )
|
||||||
IN_Move
|
IN_Move
|
||||||
===========
|
===========
|
||||||
*/
|
*/
|
||||||
void IN_Move ( float frametime, usercmd_t *cmd)
|
void GoldSourceInput::IN_Move ( float frametime, usercmd_t *cmd)
|
||||||
{
|
{
|
||||||
if ( !iMouseInUse && mouseactive )
|
if ( !iMouseInUse && mouseactive )
|
||||||
{
|
{
|
||||||
|
@ -1289,7 +1284,7 @@ void IN_Move ( float frametime, usercmd_t *cmd)
|
||||||
IN_Init
|
IN_Init
|
||||||
===========
|
===========
|
||||||
*/
|
*/
|
||||||
void IN_Init (void)
|
void GoldSourceInput::IN_Init (void)
|
||||||
{
|
{
|
||||||
m_filter = gEngfuncs.pfnRegisterVariable ( "m_filter","0", FCVAR_ARCHIVE );
|
m_filter = gEngfuncs.pfnRegisterVariable ( "m_filter","0", FCVAR_ARCHIVE );
|
||||||
sensitivity = gEngfuncs.pfnRegisterVariable ( "sensitivity","3", FCVAR_ARCHIVE ); // user mouse sensitivity setting.
|
sensitivity = gEngfuncs.pfnRegisterVariable ( "sensitivity","3", FCVAR_ARCHIVE ); // user mouse sensitivity setting.
|
||||||
|
@ -1355,3 +1350,5 @@ void IN_Init (void)
|
||||||
IN_StartupMouse ();
|
IN_StartupMouse ();
|
||||||
IN_StartupJoystick ();
|
IN_StartupJoystick ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
|
@ -0,0 +1,82 @@
|
||||||
|
#include "input_mouse.h"
|
||||||
|
#include "exportdef.h"
|
||||||
|
#include "hud.h"
|
||||||
|
|
||||||
|
// shared between backends
|
||||||
|
Vector dead_viewangles(0, 0, 0);
|
||||||
|
cvar_t *sensitivity;
|
||||||
|
cvar_t *in_joystick;
|
||||||
|
|
||||||
|
FWGSInput fwgsInput;
|
||||||
|
|
||||||
|
#ifdef SUPPORT_GOLDSOURCE_INPUT
|
||||||
|
GoldSourceInput goldSourceInput;
|
||||||
|
AbstractInput* currentInput = &goldSourceInput;
|
||||||
|
#else
|
||||||
|
AbstractInput* currentInput = &fwgsInput;
|
||||||
|
#endif
|
||||||
|
extern "C" void DLLEXPORT IN_ClientMoveEvent( float forwardmove, float sidemove )
|
||||||
|
{
|
||||||
|
currentInput->IN_ClientMoveEvent(forwardmove, sidemove);
|
||||||
|
}
|
||||||
|
|
||||||
|
extern "C" void DLLEXPORT IN_ClientLookEvent( float relyaw, float relpitch )
|
||||||
|
{
|
||||||
|
currentInput->IN_ClientLookEvent(relyaw, relpitch);
|
||||||
|
}
|
||||||
|
|
||||||
|
void IN_Move( float frametime, usercmd_t *cmd )
|
||||||
|
{
|
||||||
|
currentInput->IN_Move(frametime, cmd);
|
||||||
|
}
|
||||||
|
|
||||||
|
extern "C" void DLLEXPORT IN_MouseEvent( int mstate )
|
||||||
|
{
|
||||||
|
currentInput->IN_MouseEvent(mstate);
|
||||||
|
}
|
||||||
|
|
||||||
|
extern "C" void DLLEXPORT IN_ClearStates( void )
|
||||||
|
{
|
||||||
|
currentInput->IN_ClearStates();
|
||||||
|
}
|
||||||
|
|
||||||
|
extern "C" void DLLEXPORT IN_ActivateMouse( void )
|
||||||
|
{
|
||||||
|
currentInput->IN_ActivateMouse();
|
||||||
|
}
|
||||||
|
|
||||||
|
extern "C" void DLLEXPORT IN_DeactivateMouse( void )
|
||||||
|
{
|
||||||
|
currentInput->IN_DeactivateMouse();
|
||||||
|
}
|
||||||
|
|
||||||
|
extern "C" void DLLEXPORT IN_Accumulate( void )
|
||||||
|
{
|
||||||
|
currentInput->IN_Accumulate();
|
||||||
|
}
|
||||||
|
|
||||||
|
void IN_Commands( void )
|
||||||
|
{
|
||||||
|
currentInput->IN_Commands();
|
||||||
|
}
|
||||||
|
|
||||||
|
void IN_Shutdown( void )
|
||||||
|
{
|
||||||
|
currentInput->IN_Shutdown();
|
||||||
|
}
|
||||||
|
|
||||||
|
void IN_Init( void )
|
||||||
|
{
|
||||||
|
#ifdef SUPPORT_GOLDSOURCE_INPUT
|
||||||
|
if (gMobileEngfuncs) {
|
||||||
|
gEngfuncs.Con_Printf( "FWGS Xash3D input is in use\n" );
|
||||||
|
currentInput = &fwgsInput;
|
||||||
|
} else {
|
||||||
|
gEngfuncs.Con_Printf( "GoldSource input is in use\n" );
|
||||||
|
currentInput = &goldSourceInput;
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
currentInput = &fwgsInput;
|
||||||
|
#endif
|
||||||
|
currentInput->IN_Init();
|
||||||
|
}
|
|
@ -0,0 +1,77 @@
|
||||||
|
#ifndef INPUT_MOUSE_H
|
||||||
|
#define INPUT_MOUSE_H
|
||||||
|
#include "cl_dll.h"
|
||||||
|
#include "usercmd.h"
|
||||||
|
#include "in_defs.h"
|
||||||
|
|
||||||
|
class AbstractInput
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
virtual void IN_ClientMoveEvent( float forwardmove, float sidemove ) = 0;
|
||||||
|
virtual void IN_ClientLookEvent( float relyaw, float relpitch ) = 0;
|
||||||
|
virtual void IN_Move( float frametime, usercmd_t *cmd ) = 0;
|
||||||
|
virtual void IN_MouseEvent( int mstate ) = 0;
|
||||||
|
virtual void IN_ClearStates( void ) = 0;
|
||||||
|
virtual void IN_ActivateMouse( void ) = 0;
|
||||||
|
virtual void IN_DeactivateMouse( void ) = 0;
|
||||||
|
virtual void IN_Accumulate( void ) = 0;
|
||||||
|
virtual void IN_Commands( void ) = 0;
|
||||||
|
virtual void IN_Shutdown( void ) = 0;
|
||||||
|
virtual void IN_Init( void ) = 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
class FWGSInput : public AbstractInput
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
virtual void IN_ClientMoveEvent( float forwardmove, float sidemove );
|
||||||
|
virtual void IN_ClientLookEvent( float relyaw, float relpitch );
|
||||||
|
virtual void IN_Move( float frametime, usercmd_t *cmd );
|
||||||
|
virtual void IN_MouseEvent( int mstate );
|
||||||
|
virtual void IN_ClearStates( void );
|
||||||
|
virtual void IN_ActivateMouse( void );
|
||||||
|
virtual void IN_DeactivateMouse( void );
|
||||||
|
virtual void IN_Accumulate( void );
|
||||||
|
virtual void IN_Commands( void );
|
||||||
|
virtual void IN_Shutdown( void );
|
||||||
|
virtual void IN_Init( void );
|
||||||
|
|
||||||
|
protected:
|
||||||
|
float ac_forwardmove;
|
||||||
|
float ac_sidemove;
|
||||||
|
int ac_movecount;
|
||||||
|
float rel_yaw;
|
||||||
|
float rel_pitch;
|
||||||
|
};
|
||||||
|
|
||||||
|
// No need for goldsource input support on the platforms that are not supported by GoldSource.
|
||||||
|
#if defined(GOLDSOURCE_SUPPORT) && (defined(_WIN32) || defined(__linux__) || defined(__APPLE__)) && (defined(__i386) || defined(_M_IX86))
|
||||||
|
#define SUPPORT_GOLDSOURCE_INPUT
|
||||||
|
class GoldSourceInput : public AbstractInput
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
virtual void IN_ClientMoveEvent( float forwardmove, float sidemove ) {}
|
||||||
|
virtual void IN_ClientLookEvent( float relyaw, float relpitch ) {}
|
||||||
|
virtual void IN_Move( float frametime, usercmd_t *cmd );
|
||||||
|
virtual void IN_MouseEvent( int mstate );
|
||||||
|
virtual void IN_ClearStates( void );
|
||||||
|
virtual void IN_ActivateMouse( void );
|
||||||
|
virtual void IN_DeactivateMouse( void );
|
||||||
|
virtual void IN_Accumulate( void );
|
||||||
|
virtual void IN_Commands( void );
|
||||||
|
virtual void IN_Shutdown( void );
|
||||||
|
virtual void IN_Init( void );
|
||||||
|
|
||||||
|
protected:
|
||||||
|
void IN_GetMouseDelta( int *pOutX, int *pOutY);
|
||||||
|
void IN_MouseMove ( float frametime, usercmd_t *cmd);
|
||||||
|
void IN_StartupMouse (void);
|
||||||
|
|
||||||
|
int mouse_buttons;
|
||||||
|
int mouse_oldbuttonstate;
|
||||||
|
POINT current_pos;
|
||||||
|
int old_mouse_x, old_mouse_y, mx_accum, my_accum;
|
||||||
|
int mouseinitialized;
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
|
@ -3,14 +3,9 @@
|
||||||
#include "cvardef.h"
|
#include "cvardef.h"
|
||||||
#include "kbutton.h"
|
#include "kbutton.h"
|
||||||
#include "keydefs.h"
|
#include "keydefs.h"
|
||||||
cvar_t *sensitivity;
|
#include "input_mouse.h"
|
||||||
cvar_t *in_joystick;
|
extern cvar_t *sensitivity;
|
||||||
#define PITCH 0
|
extern cvar_t *in_joystick;
|
||||||
#define YAW 1
|
|
||||||
#define ROLL 2
|
|
||||||
|
|
||||||
extern "C" void DLLEXPORT IN_ClientMoveEvent( float forwardmove, float sidemove );
|
|
||||||
extern "C" void DLLEXPORT IN_ClientLookEvent( float relyaw, float relpitch );
|
|
||||||
|
|
||||||
extern kbutton_t in_strafe;
|
extern kbutton_t in_strafe;
|
||||||
extern kbutton_t in_mlook;
|
extern kbutton_t in_mlook;
|
||||||
|
@ -37,12 +32,6 @@ extern cvar_t *cl_movespeedkey;
|
||||||
cvar_t *cl_laddermode;
|
cvar_t *cl_laddermode;
|
||||||
|
|
||||||
|
|
||||||
float ac_forwardmove;
|
|
||||||
float ac_sidemove;
|
|
||||||
int ac_movecount;
|
|
||||||
float rel_yaw;
|
|
||||||
float rel_pitch;
|
|
||||||
|
|
||||||
#define F 1U<<0 // Forward
|
#define F 1U<<0 // Forward
|
||||||
#define B 1U<<1 // Back
|
#define B 1U<<1 // Back
|
||||||
#define L 1U<<2 // Left
|
#define L 1U<<2 // Left
|
||||||
|
@ -55,7 +44,7 @@ float rel_pitch;
|
||||||
#define IMPULSE_UP 4
|
#define IMPULSE_UP 4
|
||||||
|
|
||||||
int CL_IsDead( void );
|
int CL_IsDead( void );
|
||||||
Vector dead_viewangles(0, 0, 0);
|
extern Vector dead_viewangles;
|
||||||
|
|
||||||
void IN_ToggleButtons( float forwardmove, float sidemove )
|
void IN_ToggleButtons( float forwardmove, float sidemove )
|
||||||
{
|
{
|
||||||
|
@ -135,7 +124,7 @@ void IN_ToggleButtons( float forwardmove, float sidemove )
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void IN_ClientMoveEvent( float forwardmove, float sidemove )
|
void FWGSInput::IN_ClientMoveEvent( float forwardmove, float sidemove )
|
||||||
{
|
{
|
||||||
//gEngfuncs.Con_Printf("IN_MoveEvent\n");
|
//gEngfuncs.Con_Printf("IN_MoveEvent\n");
|
||||||
|
|
||||||
|
@ -144,14 +133,14 @@ void IN_ClientMoveEvent( float forwardmove, float sidemove )
|
||||||
ac_movecount++;
|
ac_movecount++;
|
||||||
}
|
}
|
||||||
|
|
||||||
void IN_ClientLookEvent( float relyaw, float relpitch )
|
void FWGSInput::IN_ClientLookEvent( float relyaw, float relpitch )
|
||||||
{
|
{
|
||||||
rel_yaw += relyaw;
|
rel_yaw += relyaw;
|
||||||
rel_pitch += relpitch;
|
rel_pitch += relpitch;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Rotate camera and add move values to usercmd
|
// Rotate camera and add move values to usercmd
|
||||||
void IN_Move( float frametime, usercmd_t *cmd )
|
void FWGSInput::IN_Move( float frametime, usercmd_t *cmd )
|
||||||
{
|
{
|
||||||
Vector viewangles;
|
Vector viewangles;
|
||||||
bool fLadder = false;
|
bool fLadder = false;
|
||||||
|
@ -235,7 +224,7 @@ void IN_Move( float frametime, usercmd_t *cmd )
|
||||||
ac_movecount = 0;
|
ac_movecount = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
extern "C" void DLLEXPORT IN_MouseEvent( int mstate )
|
void FWGSInput::IN_MouseEvent( int mstate )
|
||||||
{
|
{
|
||||||
static int mouse_oldbuttonstate;
|
static int mouse_oldbuttonstate;
|
||||||
// perform button actions
|
// perform button actions
|
||||||
|
@ -257,37 +246,37 @@ extern "C" void DLLEXPORT IN_MouseEvent( int mstate )
|
||||||
|
|
||||||
// Stubs
|
// Stubs
|
||||||
|
|
||||||
extern "C" void DLLEXPORT IN_ClearStates( void )
|
void FWGSInput::IN_ClearStates( void )
|
||||||
{
|
{
|
||||||
//gEngfuncs.Con_Printf( "IN_ClearStates\n" );
|
//gEngfuncs.Con_Printf( "IN_ClearStates\n" );
|
||||||
}
|
}
|
||||||
|
|
||||||
extern "C" void DLLEXPORT IN_ActivateMouse( void )
|
void FWGSInput::IN_ActivateMouse( void )
|
||||||
{
|
{
|
||||||
//gEngfuncs.Con_Printf( "IN_ActivateMouse\n" );
|
//gEngfuncs.Con_Printf( "IN_ActivateMouse\n" );
|
||||||
}
|
}
|
||||||
|
|
||||||
extern "C" void DLLEXPORT IN_DeactivateMouse( void )
|
void FWGSInput::IN_DeactivateMouse( void )
|
||||||
{
|
{
|
||||||
//gEngfuncs.Con_Printf( "IN_DeactivateMouse\n" );
|
//gEngfuncs.Con_Printf( "IN_DeactivateMouse\n" );
|
||||||
}
|
}
|
||||||
|
|
||||||
extern "C" void DLLEXPORT IN_Accumulate( void )
|
void FWGSInput::IN_Accumulate( void )
|
||||||
{
|
{
|
||||||
//gEngfuncs.Con_Printf( "IN_Accumulate\n" );
|
//gEngfuncs.Con_Printf( "IN_Accumulate\n" );
|
||||||
}
|
}
|
||||||
|
|
||||||
void IN_Commands( void )
|
void FWGSInput::IN_Commands( void )
|
||||||
{
|
{
|
||||||
//gEngfuncs.Con_Printf( "IN_Commands\n" );
|
//gEngfuncs.Con_Printf( "IN_Commands\n" );
|
||||||
}
|
}
|
||||||
|
|
||||||
void IN_Shutdown( void )
|
void FWGSInput::IN_Shutdown( void )
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
// Register cvars and reset data
|
// Register cvars and reset data
|
||||||
void IN_Init( void )
|
void FWGSInput::IN_Init( void )
|
||||||
{
|
{
|
||||||
sensitivity = gEngfuncs.pfnRegisterVariable( "sensitivity", "3", FCVAR_ARCHIVE );
|
sensitivity = gEngfuncs.pfnRegisterVariable( "sensitivity", "3", FCVAR_ARCHIVE );
|
||||||
in_joystick = gEngfuncs.pfnRegisterVariable( "joystick", "0", FCVAR_ARCHIVE );
|
in_joystick = gEngfuncs.pfnRegisterVariable( "joystick", "0", FCVAR_ARCHIVE );
|
||||||
|
|
Loading…
Reference in New Issue