forked from sin365/AxibugEmuOnline
56 lines
2.6 KiB
C++
56 lines
2.6 KiB
C++
//////////////////////////////////////////////////////////////////////////
|
||
// Exciting Boxing //
|
||
//////////////////////////////////////////////////////////////////////////
|
||
void EXPAD_ExcitingBoxing::Reset()
|
||
{
|
||
outbits = 0;
|
||
padbits = 0;
|
||
}
|
||
|
||
BYTE EXPAD_ExcitingBoxing::Read4017()
|
||
{
|
||
return outbits;
|
||
}
|
||
|
||
void EXPAD_ExcitingBoxing::Write4016( BYTE data )
|
||
{
|
||
outbits = 0;
|
||
if( data & 0x02 ) {
|
||
outbits = (~padbits<<1)&0x1E;
|
||
} else {
|
||
outbits = (~padbits>>3)&0x1E;
|
||
}
|
||
}
|
||
|
||
void EXPAD_ExcitingBoxing::Sync()
|
||
{
|
||
padbits = 0;
|
||
|
||
// Straight
|
||
if( Config.ExButtonCheck( 2, 0 ) ) padbits |= 1<<3;
|
||
// Right Jabb
|
||
if( Config.ExButtonCheck( 2, 1 ) ) padbits |= 1<<2;
|
||
// Body
|
||
if( Config.ExButtonCheck( 2, 2 ) ) padbits |= 1<<1;
|
||
// Left Jabb
|
||
if( Config.ExButtonCheck( 2, 3 ) ) padbits |= 1<<0;
|
||
// Right hook
|
||
if( Config.ExButtonCheck( 2, 4 ) ) padbits |= 1<<7;
|
||
// Left hook
|
||
if( Config.ExButtonCheck( 2, 5 ) ) padbits |= 1<<4;
|
||
// Right move
|
||
if( Config.ExButtonCheck( 2, 6 ) ) padbits |= 1<<5;
|
||
// Left move
|
||
if( Config.ExButtonCheck( 2, 7 ) ) padbits |= 1<<6;
|
||
}
|
||
|
||
void EXPAD_ExcitingBoxing::SetSyncData( INT type, LONG data )
|
||
{
|
||
padbits = (BYTE)data;
|
||
}
|
||
|
||
LONG EXPAD_ExcitingBoxing::GetSyncData( INT type )
|
||
{
|
||
return (LONG)padbits;
|
||
}
|