mirror of
https://github.com/DrBeef/Raze.git
synced 2024-11-15 17:01:51 +00:00
Patch adding Wii support by tueidj, part 4: joystick support
- sdlayer.c: custom "get joystick button names" routine - jmact/mouse.c: packs some joystick events into the value returned by MOUSE_GetButtons(): bits used are 256, 512, 4096, 8192 - MOUSE_Init() --> Mouse_Init(), presumably because of a name clash? - comments out right-shift of joystick analog values by 5, maybe this fixes the scale problems with the joystick on the PC too? git-svn-id: https://svn.eduke32.com/eduke32@2624 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
parent
bc70806d32
commit
a1d3c2dcea
4 changed files with 90 additions and 8 deletions
|
@ -546,6 +546,7 @@ void uninitinput(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef GEKKO
|
||||||
const char *getjoyname(int32_t what, int32_t num)
|
const char *getjoyname(int32_t what, int32_t num)
|
||||||
{
|
{
|
||||||
static char tmp[64];
|
static char tmp[64];
|
||||||
|
@ -571,6 +572,65 @@ const char *getjoyname(int32_t what, int32_t num)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
static const char *joynames[3][15] =
|
||||||
|
{
|
||||||
|
{
|
||||||
|
"Left Stick X",
|
||||||
|
"Left Stick Y",
|
||||||
|
"Right Stick X",
|
||||||
|
"Right Stick Y",
|
||||||
|
"wtf4",
|
||||||
|
"wtf5",
|
||||||
|
"wtf6",
|
||||||
|
"wtf7",
|
||||||
|
"wtf9",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Button A",
|
||||||
|
"Button B",
|
||||||
|
"Button 1",
|
||||||
|
"Button 2",
|
||||||
|
"Button -",
|
||||||
|
"Button +",
|
||||||
|
"Button NULL",
|
||||||
|
"Button Z",
|
||||||
|
"Button C",
|
||||||
|
"Button X",
|
||||||
|
"Button Y",
|
||||||
|
"Trigger L",
|
||||||
|
"Trigger R",
|
||||||
|
"Trigger zL",
|
||||||
|
"Trigger zR",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"D-PAD Up",
|
||||||
|
"D-PAD Right",
|
||||||
|
"D-PAD Down",
|
||||||
|
"D-PAD Left",
|
||||||
|
}
|
||||||
|
};
|
||||||
|
const char *getjoyname(int32_t what, int32_t num)
|
||||||
|
{
|
||||||
|
switch (what)
|
||||||
|
{
|
||||||
|
case 0: // axis
|
||||||
|
if ((unsigned)num > (unsigned)joynumaxes) return NULL;
|
||||||
|
return joynames[0][num];
|
||||||
|
|
||||||
|
case 1: // button
|
||||||
|
if ((unsigned)num > (unsigned)joynumbuttons) return NULL;
|
||||||
|
return joynames[1][num];
|
||||||
|
|
||||||
|
case 2: // hat
|
||||||
|
if ((unsigned)num > (unsigned)joynumhats) return NULL;
|
||||||
|
return joynames[2][num];
|
||||||
|
|
||||||
|
default:
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|
|
@ -82,7 +82,7 @@ void CONTROL_GetMouseDelta(void)
|
||||||
int32_t CONTROL_StartMouse(void)
|
int32_t CONTROL_StartMouse(void)
|
||||||
{
|
{
|
||||||
CONTROL_NumMouseButtons = MAXMOUSEBUTTONS;
|
CONTROL_NumMouseButtons = MAXMOUSEBUTTONS;
|
||||||
return MOUSE_Init();
|
return Mouse_Init();
|
||||||
}
|
}
|
||||||
|
|
||||||
void CONTROL_GetJoyAbs(void)
|
void CONTROL_GetJoyAbs(void)
|
||||||
|
@ -98,7 +98,7 @@ void CONTROL_GetJoyDelta(void)
|
||||||
int32_t i;
|
int32_t i;
|
||||||
|
|
||||||
for (i=0; i<joynumaxes; i++)
|
for (i=0; i<joynumaxes; i++)
|
||||||
CONTROL_JoyAxes[i].analog = joyaxis[i] >> 5;
|
CONTROL_JoyAxes[i].analog = joyaxis[i]; // >> 5;
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t CONTROL_StartJoy(int32_t joy)
|
int32_t CONTROL_StartJoy(int32_t joy)
|
||||||
|
@ -490,7 +490,11 @@ void CONTROL_GetDeviceButtons(void)
|
||||||
if (CONTROL_MouseEnabled)
|
if (CONTROL_MouseEnabled)
|
||||||
{
|
{
|
||||||
DoGetDeviceButtons(
|
DoGetDeviceButtons(
|
||||||
|
#ifdef GEKKO
|
||||||
|
MOUSE_GetButtons()&0x3F, t,
|
||||||
|
#else
|
||||||
MOUSE_GetButtons(), t,
|
MOUSE_GetButtons(), t,
|
||||||
|
#endif
|
||||||
CONTROL_NumMouseButtons,
|
CONTROL_NumMouseButtons,
|
||||||
CONTROL_MouseButtonState,
|
CONTROL_MouseButtonState,
|
||||||
CONTROL_MouseButtonClickedTime,
|
CONTROL_MouseButtonClickedTime,
|
||||||
|
@ -829,7 +833,7 @@ int32_t CONTROL_Startup(controltype which, int32_t(*TimeFunction)(void), int32_t
|
||||||
// case controltype_keyboardandmouse:
|
// case controltype_keyboardandmouse:
|
||||||
CONTROL_NumMouseAxes = MAXMOUSEAXES;
|
CONTROL_NumMouseAxes = MAXMOUSEAXES;
|
||||||
CONTROL_NumMouseButtons = MAXMOUSEBUTTONS;
|
CONTROL_NumMouseButtons = MAXMOUSEBUTTONS;
|
||||||
CONTROL_MousePresent = MOUSE_Init();
|
CONTROL_MousePresent = Mouse_Init();
|
||||||
CONTROL_MouseEnabled = CONTROL_MousePresent;
|
CONTROL_MouseEnabled = CONTROL_MousePresent;
|
||||||
// break;
|
// break;
|
||||||
|
|
||||||
|
@ -841,7 +845,7 @@ int32_t CONTROL_Startup(controltype which, int32_t(*TimeFunction)(void), int32_t
|
||||||
// break;
|
// break;
|
||||||
//}
|
//}
|
||||||
|
|
||||||
#if 0
|
#ifdef GEKKO
|
||||||
if (CONTROL_MousePresent)
|
if (CONTROL_MousePresent)
|
||||||
initprintf("CONTROL_Startup: Mouse Present\n");
|
initprintf("CONTROL_Startup: Mouse Present\n");
|
||||||
if (CONTROL_JoyPresent)
|
if (CONTROL_JoyPresent)
|
||||||
|
|
|
@ -37,8 +37,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
#include "mouse.h"
|
#include "mouse.h"
|
||||||
#include "baselayer.h"
|
#include "baselayer.h"
|
||||||
|
|
||||||
|
int32_t Mouse_Init(void)
|
||||||
int32_t MOUSE_Init(void)
|
|
||||||
{
|
{
|
||||||
initmouse();
|
initmouse();
|
||||||
return ((inputdevices & 2) == 2);
|
return ((inputdevices & 2) == 2);
|
||||||
|
@ -64,7 +63,26 @@ void MOUSE_HideCursor(void)
|
||||||
int32_t MOUSE_GetButtons(void)
|
int32_t MOUSE_GetButtons(void)
|
||||||
{
|
{
|
||||||
int32_t buttons;
|
int32_t buttons;
|
||||||
|
|
||||||
readmousebstatus(&buttons);
|
readmousebstatus(&buttons);
|
||||||
|
|
||||||
|
#ifdef GEKKO
|
||||||
|
buttons |= (joyb&3)<<8;
|
||||||
|
switch (joyhat[0]) { // stupid hat values....
|
||||||
|
case 0:
|
||||||
|
case 4500:
|
||||||
|
case 27500:
|
||||||
|
buttons |= 4096;
|
||||||
|
break;
|
||||||
|
case 18000:
|
||||||
|
case 13500:
|
||||||
|
case 22500:
|
||||||
|
buttons |= 8192;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
return buttons;
|
return buttons;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -41,11 +41,11 @@ extern "C" {
|
||||||
#define RIGHT_MOUSE_PRESSED( button ) ( ( ( button ) & RIGHT_MOUSE ) != 0 )
|
#define RIGHT_MOUSE_PRESSED( button ) ( ( ( button ) & RIGHT_MOUSE ) != 0 )
|
||||||
#define MIDDLE_MOUSE_PRESSED( button ) ( ( ( button ) & MIDDLE_MOUSE ) != 0 )
|
#define MIDDLE_MOUSE_PRESSED( button ) ( ( ( button ) & MIDDLE_MOUSE ) != 0 )
|
||||||
|
|
||||||
int32_t MOUSE_Init( void );
|
int32_t Mouse_Init( void );
|
||||||
void MOUSE_Shutdown( void );
|
void MOUSE_Shutdown( void );
|
||||||
void MOUSE_ShowCursor( void );
|
void MOUSE_ShowCursor( void );
|
||||||
void MOUSE_HideCursor( void );
|
void MOUSE_HideCursor( void );
|
||||||
int32_t MOUSE_GetButtons( void );
|
int32_t MOUSE_GetButtons( void );
|
||||||
int32_t MOUSE_ClearButton( int32_t b );
|
int32_t MOUSE_ClearButton( int32_t b );
|
||||||
void MOUSE_GetDelta( int32_t*x, int32_t*y );
|
void MOUSE_GetDelta( int32_t*x, int32_t*y );
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue