Add default joy mappings for "SuperJoyBox 5"
This commit is contained in:
+102
-77
@@ -70,13 +70,13 @@ void InputMapper::AddDefaultMappingsForCurrentGameIfUnmapped()
|
|||||||
struct AutoJoyMapping
|
struct AutoJoyMapping
|
||||||
{
|
{
|
||||||
Game game;
|
Game game;
|
||||||
const char *sDeviceDescription;
|
const char *szDeviceDescription; // reported by InputHandler
|
||||||
|
const char *szControllerName; // the product name of the controller
|
||||||
bool bIgnoreAxes;
|
bool bIgnoreAxes;
|
||||||
int numMappings;
|
|
||||||
struct {
|
struct {
|
||||||
|
int iSlotIndex; // -1 == end marker
|
||||||
int deviceButton;
|
int deviceButton;
|
||||||
GameButton gb;
|
GameButton gb;
|
||||||
int iSlot;
|
|
||||||
/* If this is true, this is an auxilliary mapping assigned to the second
|
/* If this is true, this is an auxilliary mapping assigned to the second
|
||||||
* player. If two of the same device are found, and the device has secondary
|
* player. If two of the same device are found, and the device has secondary
|
||||||
* entries, the later entries take precedence. This way, if a Pump pad is
|
* entries, the later entries take precedence. This way, if a Pump pad is
|
||||||
@@ -86,91 +86,119 @@ struct AutoJoyMapping
|
|||||||
*
|
*
|
||||||
* This isn't well-tested; I only have one Pump pad. */
|
* This isn't well-tested; I only have one Pump pad. */
|
||||||
bool SecondController;
|
bool SecondController;
|
||||||
} mapping[32];
|
} map[32];
|
||||||
};
|
};
|
||||||
const AutoJoyMapping g_AutoJoyMappings[] =
|
const AutoJoyMapping g_AutoJoyMappings[] =
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
GAME_DANCE,
|
GAME_DANCE,
|
||||||
"GIC USB Joystick",
|
"GIC USB Joystick",
|
||||||
|
"Boom USB convertor (black/gray)",
|
||||||
false,
|
false,
|
||||||
4,
|
|
||||||
{
|
{
|
||||||
{ JOY_16, DANCE_BUTTON_LEFT, 1 },
|
{ 0, JOY_16, DANCE_BUTTON_LEFT },
|
||||||
{ JOY_14, DANCE_BUTTON_RIGHT, 1 },
|
{ 0, JOY_14, DANCE_BUTTON_RIGHT },
|
||||||
{ JOY_13, DANCE_BUTTON_UP, 1 },
|
{ 0, JOY_13, DANCE_BUTTON_UP },
|
||||||
{ JOY_15, DANCE_BUTTON_DOWN, 1 },
|
{ 0, JOY_15, DANCE_BUTTON_DOWN },
|
||||||
|
{-1, NULL, NULL },
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
GAME_DANCE,
|
GAME_DANCE,
|
||||||
"4 axis 16 button joystick", // likely a PC Magic Box
|
"4 axis 16 button joystick",
|
||||||
|
"PC Magic Box",
|
||||||
false,
|
false,
|
||||||
4,
|
|
||||||
{
|
{
|
||||||
{ JOY_16, DANCE_BUTTON_LEFT, 1 },
|
{ 0, JOY_16, DANCE_BUTTON_LEFT },
|
||||||
{ JOY_14, DANCE_BUTTON_RIGHT, 1 },
|
{ 0, JOY_14, DANCE_BUTTON_RIGHT },
|
||||||
{ JOY_13, DANCE_BUTTON_UP, 1 },
|
{ 0, JOY_13, DANCE_BUTTON_UP },
|
||||||
{ JOY_15, DANCE_BUTTON_DOWN, 1 },
|
{ 0, JOY_15, DANCE_BUTTON_DOWN },
|
||||||
|
{-1, NULL, NULL },
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
GAME_DANCE,
|
GAME_DANCE,
|
||||||
"GamePad Pro USB ", // yes, there is a space at the end
|
"GamePad Pro USB ", // yes, there is a space at the end
|
||||||
|
"GamePad Pro USB",
|
||||||
false,
|
false,
|
||||||
12,
|
|
||||||
{
|
{
|
||||||
{ JOY_LEFT, DANCE_BUTTON_LEFT, 1 },
|
{ 0, JOY_LEFT, DANCE_BUTTON_LEFT },
|
||||||
{ JOY_RIGHT, DANCE_BUTTON_RIGHT, 1 },
|
{ 0, JOY_RIGHT, DANCE_BUTTON_RIGHT },
|
||||||
{ JOY_UP, DANCE_BUTTON_UP, 1 },
|
{ 0, JOY_UP, DANCE_BUTTON_UP },
|
||||||
{ JOY_DOWN, DANCE_BUTTON_DOWN, 1 },
|
{ 0, JOY_DOWN, DANCE_BUTTON_DOWN },
|
||||||
{ JOY_1, DANCE_BUTTON_LEFT, 2 },
|
{ 1, JOY_1, DANCE_BUTTON_LEFT },
|
||||||
{ JOY_3, DANCE_BUTTON_RIGHT, 2 },
|
{ 1, JOY_3, DANCE_BUTTON_RIGHT },
|
||||||
{ JOY_4, DANCE_BUTTON_UP, 2 },
|
{ 1, JOY_4, DANCE_BUTTON_UP },
|
||||||
{ JOY_2, DANCE_BUTTON_DOWN, 2 },
|
{ 1, JOY_2, DANCE_BUTTON_DOWN },
|
||||||
{ JOY_5, DANCE_BUTTON_UPLEFT, 1 },
|
{ 0, JOY_5, DANCE_BUTTON_UPLEFT },
|
||||||
{ JOY_6, DANCE_BUTTON_UPRIGHT, 1 },
|
{ 0, JOY_6, DANCE_BUTTON_UPRIGHT },
|
||||||
{ JOY_9, DANCE_BUTTON_BACK, 1 },
|
{ 0, JOY_9, DANCE_BUTTON_BACK },
|
||||||
{ JOY_10, DANCE_BUTTON_START, 1 },
|
{ 0, JOY_10, DANCE_BUTTON_START },
|
||||||
|
{-1, NULL, NULL },
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
GAME_DANCE,
|
||||||
|
"4 axis 12 button joystick with hat switch",
|
||||||
|
"Super Joy Box 5",
|
||||||
|
false,
|
||||||
|
{
|
||||||
|
{ 0, JOY_HAT_LEFT, DANCE_BUTTON_LEFT },
|
||||||
|
{ 0, JOY_HAT_RIGHT, DANCE_BUTTON_RIGHT },
|
||||||
|
{ 0, JOY_HAT_UP, DANCE_BUTTON_UP },
|
||||||
|
{ 0, JOY_HAT_DOWN, DANCE_BUTTON_DOWN },
|
||||||
|
{ 1, JOY_4, DANCE_BUTTON_LEFT },
|
||||||
|
{ 1, JOY_2, DANCE_BUTTON_RIGHT },
|
||||||
|
{ 1, JOY_1, DANCE_BUTTON_UP },
|
||||||
|
{ 1, JOY_3, DANCE_BUTTON_DOWN },
|
||||||
|
{ 0, JOY_5, DANCE_BUTTON_UPLEFT },
|
||||||
|
{ 0, JOY_6, DANCE_BUTTON_UPRIGHT },
|
||||||
|
{ 1, JOY_7, DANCE_BUTTON_UPLEFT },
|
||||||
|
{ 1, JOY_8, DANCE_BUTTON_UPRIGHT },
|
||||||
|
{ 0, JOY_10, DANCE_BUTTON_BACK },
|
||||||
|
{ 0, JOY_9, DANCE_BUTTON_START },
|
||||||
|
{-1, NULL, NULL },
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
GAME_DANCE,
|
GAME_DANCE,
|
||||||
"XBOX Gamepad Plugin V0.01",
|
"XBOX Gamepad Plugin V0.01",
|
||||||
|
"X-Box gamepad",
|
||||||
false,
|
false,
|
||||||
12,
|
|
||||||
{
|
{
|
||||||
{ JOY_HAT_LEFT, DANCE_BUTTON_LEFT, 1 },
|
{ 0, JOY_HAT_LEFT, DANCE_BUTTON_LEFT },
|
||||||
{ JOY_HAT_RIGHT, DANCE_BUTTON_RIGHT, 1 },
|
{ 0, JOY_HAT_RIGHT, DANCE_BUTTON_RIGHT },
|
||||||
{ JOY_HAT_UP, DANCE_BUTTON_UP, 1 },
|
{ 0, JOY_HAT_UP, DANCE_BUTTON_UP },
|
||||||
{ JOY_HAT_DOWN, DANCE_BUTTON_DOWN, 1 },
|
{ 0, JOY_HAT_DOWN, DANCE_BUTTON_DOWN },
|
||||||
{ JOY_1, DANCE_BUTTON_DOWN, 2 }, // A
|
{ 1, JOY_1, DANCE_BUTTON_DOWN }, // A
|
||||||
{ JOY_2, DANCE_BUTTON_RIGHT, 2 }, // B
|
{ 1, JOY_2, DANCE_BUTTON_RIGHT }, // B
|
||||||
{ JOY_3, DANCE_BUTTON_LEFT, 2 }, // X
|
{ 1, JOY_3, DANCE_BUTTON_LEFT }, // X
|
||||||
{ JOY_4, DANCE_BUTTON_UP, 2 }, // Y
|
{ 1, JOY_4, DANCE_BUTTON_UP }, // Y
|
||||||
{ JOY_7, DANCE_BUTTON_UPLEFT, 1 }, // L shoulder
|
{ 0, JOY_7, DANCE_BUTTON_UPLEFT }, // L shoulder
|
||||||
{ JOY_8, DANCE_BUTTON_UPRIGHT, 1 }, // R shoulder
|
{ 0, JOY_8, DANCE_BUTTON_UPRIGHT }, // R shoulder
|
||||||
{ JOY_9, DANCE_BUTTON_START, 1 },
|
{ 0, JOY_9, DANCE_BUTTON_START },
|
||||||
{ JOY_10, DANCE_BUTTON_BACK, 1 },
|
{ 0, JOY_10, DANCE_BUTTON_BACK },
|
||||||
|
{-1, NULL, NULL },
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
GAME_PUMP,
|
GAME_PUMP,
|
||||||
"Pump USB",
|
"Pump USB",
|
||||||
|
"Pump USB pad",
|
||||||
false,
|
false,
|
||||||
11,
|
|
||||||
{
|
{
|
||||||
{ PUMP_UL, PUMP_BUTTON_UPLEFT, 1 },
|
{ 0, PUMP_UL, PUMP_BUTTON_UPLEFT },
|
||||||
{ PUMP_UR, PUMP_BUTTON_UPRIGHT, 1 },
|
{ 0, PUMP_UR, PUMP_BUTTON_UPRIGHT },
|
||||||
{ PUMP_MID, PUMP_BUTTON_CENTER, 1 },
|
{ 0, PUMP_MID, PUMP_BUTTON_CENTER },
|
||||||
{ PUMP_DL, PUMP_BUTTON_DOWNLEFT, 1 },
|
{ 0, PUMP_DL, PUMP_BUTTON_DOWNLEFT },
|
||||||
{ PUMP_DR, PUMP_BUTTON_DOWNRIGHT, 1 },
|
{ 0, PUMP_DR, PUMP_BUTTON_DOWNRIGHT },
|
||||||
{ PUMP_ESCAPE, PUMP_BUTTON_BACK, 1 },
|
{ 0, PUMP_ESCAPE, PUMP_BUTTON_BACK },
|
||||||
{ PUMP_2P_UL, PUMP_BUTTON_UPLEFT, 1, true },
|
{ 0, PUMP_2P_UL, PUMP_BUTTON_UPLEFT, true },
|
||||||
{ PUMP_2P_UR, PUMP_BUTTON_UPRIGHT, 1, true },
|
{ 0, PUMP_2P_UR, PUMP_BUTTON_UPRIGHT, true },
|
||||||
{ PUMP_2P_MID, PUMP_BUTTON_CENTER, 1, true },
|
{ 0, PUMP_2P_MID, PUMP_BUTTON_CENTER, true },
|
||||||
{ PUMP_2P_DL, PUMP_BUTTON_DOWNLEFT, 1, true },
|
{ 0, PUMP_2P_DL, PUMP_BUTTON_DOWNLEFT, true },
|
||||||
{ PUMP_2P_DR, PUMP_BUTTON_DOWNRIGHT, 1, true },
|
{ 0, PUMP_2P_DR, PUMP_BUTTON_DOWNRIGHT, true },
|
||||||
|
{-1, NULL, NULL },
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
@@ -182,6 +210,9 @@ void InputMapper::AutoMapJoysticksForCurrentGame()
|
|||||||
vector<CString> vDescriptions;
|
vector<CString> vDescriptions;
|
||||||
PREFSMAN->m_bIgnoreJoyAxes = false;
|
PREFSMAN->m_bIgnoreJoyAxes = false;
|
||||||
INPUTMAN->GetDevicesAndDescriptions(vDevices,vDescriptions);
|
INPUTMAN->GetDevicesAndDescriptions(vDevices,vDescriptions);
|
||||||
|
|
||||||
|
int iNumJoysticksMapped = 0;
|
||||||
|
|
||||||
for( unsigned i=0; i<vDevices.size(); i++ )
|
for( unsigned i=0; i<vDevices.size(); i++ )
|
||||||
{
|
{
|
||||||
InputDevice device = vDevices[i];
|
InputDevice device = vDevices[i];
|
||||||
@@ -190,37 +221,31 @@ void InputMapper::AutoMapJoysticksForCurrentGame()
|
|||||||
{
|
{
|
||||||
const AutoJoyMapping& mapping = g_AutoJoyMappings[j];
|
const AutoJoyMapping& mapping = g_AutoJoyMappings[j];
|
||||||
|
|
||||||
if( sDescription == mapping.sDeviceDescription )
|
if( sDescription == mapping.szDeviceDescription )
|
||||||
{
|
{
|
||||||
|
//
|
||||||
|
// We have a mapping for this joystick
|
||||||
|
//
|
||||||
|
GameController gc = (GameController)iNumJoysticksMapped;
|
||||||
|
if( gc >= GAME_CONTROLLER_INVALID )
|
||||||
|
break; // stop mapping. We already mapped one device for each game controller.
|
||||||
|
|
||||||
|
LOG->Info( "Applying default joystick mapping #%d for device '%s' (%s)",
|
||||||
|
iNumJoysticksMapped+1, mapping.szDeviceDescription, mapping.szControllerName );
|
||||||
|
|
||||||
PREFSMAN->m_bIgnoreJoyAxes |= mapping.bIgnoreAxes;
|
PREFSMAN->m_bIgnoreJoyAxes |= mapping.bIgnoreAxes;
|
||||||
|
|
||||||
GameController gc = GAME_CONTROLLER_INVALID;
|
for( int k=0; mapping.map[k].iSlotIndex != -1; k++ )
|
||||||
switch( device )
|
|
||||||
{
|
{
|
||||||
case DEVICE_JOY1:
|
if( mapping.map[k].SecondController )
|
||||||
case DEVICE_JOY3:
|
|
||||||
case DEVICE_PUMP1:
|
|
||||||
gc = GAME_CONTROLLER_1;
|
|
||||||
break;
|
|
||||||
case DEVICE_JOY2:
|
|
||||||
case DEVICE_JOY4:
|
|
||||||
case DEVICE_PUMP2:
|
|
||||||
gc = GAME_CONTROLLER_2;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if( gc == GAME_CONTROLLER_INVALID )
|
|
||||||
continue;
|
|
||||||
|
|
||||||
for( int k=0; k<mapping.numMappings; k++ )
|
|
||||||
{
|
|
||||||
if( mapping.mapping[k].SecondController && gc == GAME_CONTROLLER_1 )
|
|
||||||
gc = GAME_CONTROLLER_2;
|
gc = GAME_CONTROLLER_2;
|
||||||
|
|
||||||
DeviceInput di( device, mapping.mapping[k].deviceButton );
|
DeviceInput di( device, mapping.map[k].deviceButton );
|
||||||
GameInput gi( gc, mapping.mapping[k].gb );
|
GameInput gi( gc, mapping.map[k].gb );
|
||||||
SetInputMap( di, gi, mapping.mapping[k].iSlot );
|
SetInputMap( di, gi, mapping.map[k].iSlotIndex );
|
||||||
}
|
}
|
||||||
break;
|
|
||||||
|
iNumJoysticksMapped++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user