diff --git a/CMake/platforms/xbox_nxdk.cmake b/CMake/platforms/xbox_nxdk.cmake index 92f1b991a..8070ee25d 100644 --- a/CMake/platforms/xbox_nxdk.cmake +++ b/CMake/platforms/xbox_nxdk.cmake @@ -13,6 +13,8 @@ set(DEVILUTIONX_ASSETS_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/pkg/assets" set(DEVILUTIONX_RESAMPLER_SPEEX OFF) set(DEFAULT_AUDIO_BUFFER_SIZE 5120) +set(DEVILUTIONX_GAMEPAD_TYPE Xbox) + set(CMAKE_THREAD_LIBS_INIT "-lpthread") set(CMAKE_HAVE_THREADS_LIBRARY 1) set(CMAKE_USE_WIN32_THREADS_INIT 0) diff --git a/Source/controls/devices/game_controller.cpp b/Source/controls/devices/game_controller.cpp index 3eb716163..060c5f843 100644 --- a/Source/controls/devices/game_controller.cpp +++ b/Source/controls/devices/game_controller.cpp @@ -234,6 +234,10 @@ bool GameController::IsPressedOnAnyController(ControllerButton button, SDL_Joyst GamepadLayout GameController::getLayout(const SDL_Event &event) { +#if defined(DEVILUTIONX_GAMEPAD_TYPE) + return GamepadLayout:: + DEVILUTIONX_GAMEPAD_TYPE; +#else // !defined(DEVILUTIONX_GAMEPAD_TYPE) #if SDL_VERSION_ATLEAST(2, 0, 12) const int index = event.cdevice.which; const SDL_GameControllerType gamepadType = SDL_GameControllerTypeForIndex(index); @@ -261,6 +265,7 @@ GamepadLayout GameController::getLayout(const SDL_Event &event) } #endif return GamepadLayout::Generic; +#endif // !defined(DEVILUTIONX_GAMEPAD_TYPE) } } // namespace devilution