Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Controller: Return USB Controller Input
- #include <Windows.h>
- #define EXPORT extern "C" _declspec( dllexport )
- #pragma comment( lib , "Winmm.lib" )
- JOYINFOEX joystick[ 16 ];
- //Controller: Initiate JOYINFOEX Data.
- void JoyCheck( double joyid ) {
- if ( joystick[ int( joyid ) ].dwSize == false ) {
- joystick[ int( joyid ) ].dwSize = sizeof( JOYINFOEX );
- joystick[ int( joyid ) ].dwFlags = JOY_RETURNALL;
- }
- }
- //Controller: Check If Joystick Is Plugged In.
- EXPORT double JoystickPlugged( double joyid ) {
- JoyCheck( joyid );
- bool joy = joyGetPosEx( UINT( joyid ) , &joystick[ int( joyid ) ] ) == JOYERR_NOERROR;
- return double( joy );
- }
- //Controller: Buttons Up To 1-32.
- EXPORT double JoystickButtons( double joyid , double button ) {
- JoyCheck( joyid );
- return double( joystick[ int( joyid ) ].dwButtons & ( 1 << int( button ) ) );
- }
- //Controller: Left Joystick + Left Joystick Button.
- EXPORT double JoystickJStickL( double joyid , double mode ) {
- JoyCheck( joyid );
- double joyXpos = double( joystick[ int( joyid ) ].dwXpos );
- double joyYpos = double( joystick[ int( joyid ) ].dwYpos );
- double joyZpos = double( joystick[ int( joyid ) ].dwZpos );
- switch( int( mode ) ) {
- case 0:
- return ( ( joyXpos == 65535 ) * 1 ) + ( ( joyXpos == 32511 ) * 0 ) + ( ( joyXpos == 0 ) * -1 );
- break;
- case 1:
- return ( ( joyYpos == 65535 ) * 1 ) + ( ( joyYpos == 32511 ) * 0 ) + ( ( joyYpos == 0 ) * -1 );
- break;
- case 2:
- return ( ( joyZpos == 1 ) * 1 ) + ( ( joyZpos == 0 ) * 0 );
- break;
- default:
- return -4;
- break;
- }
- }
- //Controller: Right Joystick + Right Joystick Button.
- EXPORT double JoystickJStickR( double joyid , double mode ) {
- JoyCheck( joyid );
- double joyUpos = double( joystick[ int( joyid ) ].dwUpos );
- double joyVpos = double( joystick[ int( joyid ) ].dwVpos );
- double joyRpos = double( joystick[ int( joyid ) ].dwRpos );
- switch( int( mode ) ) {
- case 0:
- return ( ( joyUpos == 65535 ) * 1 ) + ( ( joyUpos == 32511 ) * 0 ) + ( ( joyUpos == 0 ) * -1 );
- break;
- case 1:
- return ( ( joyVpos == 65535 ) * 1 ) + ( ( joyVpos == 32511 ) * 0 ) + ( ( joyVpos == 0 ) * -1 );
- break;
- case 2:
- return ( ( joyRpos == 1 ) * 1 ) + ( ( joyRpos == 0 ) * 0 );
- break;
- default:
- return -4;
- break;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement