//////////////////////////////////////////////////////////////////////////
// Crazy climber                                                        //
//////////////////////////////////////////////////////////////////////////
void	EXPAD_CrazyClimber::Strobe()
{
	nes->pad->pad1bit &= ~0xF0;
	nes->pad->pad1bit |=  bits & 0xF0;
	nes->pad->pad2bit &= ~0xF0;
	nes->pad->pad2bit |= (bits & 0x0F)<<4;
}

void	EXPAD_CrazyClimber::Sync()
{
	bits = 0;

	// Left
	if( Config.ExButtonCheck( 0,  0 ) ) bits |= 1<<6;
	if( Config.ExButtonCheck( 0,  1 ) ) bits |= 1<<7;
	if( Config.ExButtonCheck( 0,  2 ) ) bits |= 1<<5;
	if( Config.ExButtonCheck( 0,  3 ) ) bits |= 1<<4;

	// Right
	if( Config.ExButtonCheck( 0,  4 ) ) bits |= 1<<2;
	if( Config.ExButtonCheck( 0,  5 ) ) bits |= 1<<3;
	if( Config.ExButtonCheck( 0,  6 ) ) bits |= 1<<1;
	if( Config.ExButtonCheck( 0,  7 ) ) bits |= 1<<0;

	// 同時入力を禁止する
	if( (bits&((1<<0)|(1<<1))) == ((1<<0)|(1<<1)) )
		bits &= ~((1<<0)|(1<<1));
	if( (bits&((1<<2)|(1<<3))) == ((1<<2)|(1<<3)) )
		bits &= ~((1<<2)|(1<<3));
	if( (bits&((1<<4)|(1<<5))) == ((1<<4)|(1<<5)) )
		bits &= ~((1<<4)|(1<<5));
	if( (bits&((1<<6)|(1<<7))) == ((1<<6)|(1<<7)) )
		bits &= ~((1<<6)|(1<<7));
}

void	EXPAD_CrazyClimber::SetSyncData( INT type, LONG data )
{
	bits = (BYTE)data;
}

LONG	EXPAD_CrazyClimber::GetSyncData( INT type )
{
	return	bits;
}