Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define X_INPUT_GET_STATE(name) DWORD WINAPI name(DWORD dwUserIndex, XINPUT_STATE *pState)
- typedef X_INPUT_GET_STATE(x_input_get_state);
- X_INPUT_GET_STATE(XInputGetStateStub)
- {
- return(0);
- }
- global_variable x_input_get_state *XInputGetState_ = XInputGetStateStub;
- #define XInputGetState XInputGetState_
- #define X_INPUT_SET_STATE(name) DWORD WINAPI name(DWORD dwUserIndex, XINPUT_VIBRATION* pVibration)
- typedef X_INPUT_SET_STATE(x_input_set_state);
- X_INPUT_SET_STATE(XInputSetStateStub)
- {
- return(0);
- }
- global_variable x_input_set_state *XInputSetState_ = XInputSetStateStub;
- #define XInputSetState XInputSetState_
- internal void
- Win32LoadXInput(void)
- {
- HMODULE XInputLibrary = LoadLibraryA("xinput1_3.dll");
- if(XInputLibrary)
- {
- XInputGetState = (x_input_get_state *)GetProcAddress(XInputLibrary, "XInputGetState");
- XInputSetState = (x_input_set_state *)GetProcAddress(XInputLibrary, "XInputSetState");
- }
- }
- ...
- int CALLBACK
- WinMain(HINSTANCE Instance,
- HINSTANCE PrevInstance,
- LPSTR CommandLine,
- int ShowCode)
- {
- Win32LoadXInput();
- ...
- for(DWORD ControllerIndex = 0; ControllerIndex < XUSER_MAX_COUNT; ++ControllerIndex)
- {
- XINPUT_STATE ControllerState;
- if(XInputGetState(ControllerIndex, &ControllerState) == ERROR_SUCCESS)
- {
- //NOTE: Controller plugged in
- XINPUT_GAMEPAD *Pad = &ControllerState.Gamepad;
- bool Up = (Pad->wButtons & XINPUT_GAMEPAD_DPAD_UP);
- bool Down = (Pad->wButtons & XINPUT_GAMEPAD_DPAD_DOWN);
- bool Left = (Pad->wButtons & XINPUT_GAMEPAD_DPAD_LEFT);
- bool Right = (Pad->wButtons & XINPUT_GAMEPAD_DPAD_RIGHT);
- bool Start = (Pad->wButtons & XINPUT_GAMEPAD_START);
- bool Back = (Pad->wButtons & XINPUT_GAMEPAD_BACK);
- bool LeftShoulder = (Pad->wButtons & XINPUT_GAMEPAD_LEFT_SHOULDER);
- bool RightShoulder = (Pad->wButtons & XINPUT_GAMEPAD_RIGHT_SHOULDER);
- bool AButton = (Pad->wButtons & XINPUT_GAMEPAD_A);
- bool BButton = (Pad->wButtons & XINPUT_GAMEPAD_B);
- bool XButton = (Pad->wButtons & XINPUT_GAMEPAD_X);
- bool YButton = (Pad->wButtons & XINPUT_GAMEPAD_Y);
- int16 StickX = Pad->sThumbLX;
- int16 StickY = Pad->sThumbLY;
- if(AButton)
- {
- YOffset += 2;
- }
- }
- else
- {
- //NOTE: Controller not plugged in
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement