Fix pump pad support. Second player untested but seems likely to work.
This commit is contained in:
@@ -8,6 +8,8 @@ void PumpDevice::Open()
|
|||||||
AddElementToQueue( 3 );
|
AddElementToQueue( 3 );
|
||||||
AddElementToQueue( 4 );
|
AddElementToQueue( 4 );
|
||||||
AddElementToQueue( 6 );
|
AddElementToQueue( 6 );
|
||||||
|
AddElementToQueue( 7 );
|
||||||
|
AddElementToQueue( 8 );
|
||||||
}
|
}
|
||||||
|
|
||||||
void PumpDevice::GetButtonPresses( vector<pair<DeviceInput, bool> >& vPresses, int cookie,
|
void PumpDevice::GetButtonPresses( vector<pair<DeviceInput, bool> >& vPresses, int cookie,
|
||||||
@@ -15,66 +17,44 @@ void PumpDevice::GetButtonPresses( vector<pair<DeviceInput, bool> >& vPresses, i
|
|||||||
{
|
{
|
||||||
DeviceButton db1 = DeviceButton_Invalid;
|
DeviceButton db1 = DeviceButton_Invalid;
|
||||||
DeviceButton db2 = DeviceButton_Invalid;
|
DeviceButton db2 = DeviceButton_Invalid;
|
||||||
bool pressed;
|
bool pressed1 = !(value & 0x1);
|
||||||
|
bool pressed2 = !(value & 0x2);
|
||||||
|
|
||||||
LOG->Trace( "Pump button: %d, %d.", cookie, value );
|
|
||||||
switch( cookie )
|
switch( cookie )
|
||||||
{
|
{
|
||||||
case 2:
|
case 2:
|
||||||
db1 = JOY_BUTTON_1;
|
db2 = JOY_BUTTON_1; // bit 9
|
||||||
pressed = value == 0;
|
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
switch( value )
|
db1 = JOY_BUTTON_5; // bit 10
|
||||||
{
|
db2 = JOY_BUTTON_4; // bit 11
|
||||||
case 1:
|
|
||||||
db1 = JOY_BUTTON_5;
|
|
||||||
pressed = true;
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
db1 = JOY_BUTTON_4;
|
|
||||||
pressed = true;
|
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
db1 = JOY_BUTTON_5;
|
|
||||||
db2 = JOY_BUTTON_4;
|
|
||||||
pressed = false;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
switch( value )
|
db1 = JOY_BUTTON_2; // bit 12
|
||||||
{
|
db2 = JOY_BUTTON_3; // bit 13
|
||||||
case 1:
|
|
||||||
db1 = JOY_BUTTON_2;
|
|
||||||
pressed = true;
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
db1 = JOY_BUTTON_3;
|
|
||||||
pressed = true;
|
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
db1 = JOY_BUTTON_2;
|
|
||||||
db2 = JOY_BUTTON_3;
|
|
||||||
pressed = false;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case 6:
|
case 6:
|
||||||
db1 = JOY_BUTTON_6;
|
db1 = JOY_BUTTON_6; // bit 16
|
||||||
pressed = value == 2;
|
db2 = JOY_BUTTON_7; // bit 17
|
||||||
|
break;
|
||||||
|
case 7:
|
||||||
|
db1 = JOY_BUTTON_11; // bit 18
|
||||||
|
db2 = JOY_BUTTON_10; // bit 19
|
||||||
|
break;
|
||||||
|
case 8:
|
||||||
|
db1 = JOY_BUTTON_8; // bit 20
|
||||||
|
db2 = JOY_BUTTON_9; // bit 21
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( db1 != DeviceButton_Invalid )
|
if( db1 != DeviceButton_Invalid )
|
||||||
{
|
{
|
||||||
DeviceInput di( id, db1, pressed ? 1.0f : 0.0f , now );
|
DeviceInput di( id, db1, pressed1 ? 1.0f : 0.0f , now );
|
||||||
vPresses.push_back( pair<DeviceInput, bool>(di, pressed) );
|
vPresses.push_back( pair<DeviceInput, bool>(di, pressed1) );
|
||||||
}
|
}
|
||||||
if( db2 != DeviceButton_Invalid )
|
if( db2 != DeviceButton_Invalid )
|
||||||
{
|
{
|
||||||
DeviceInput di( id, db2, pressed ? 1.0f : 0.0f , now );
|
DeviceInput di( id, db2, pressed2 ? 1.0f : 0.0f , now );
|
||||||
vPresses.push_back( pair<DeviceInput, bool>(di, pressed) );
|
vPresses.push_back( pair<DeviceInput, bool>(di, pressed2) );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user