From f7335e9df79ec327a6d560e5c77dbff5c7259760 Mon Sep 17 00:00:00 2001 From: Gleb Mazovetskiy Date: Wed, 12 Oct 2022 08:42:18 +0900 Subject: [PATCH] Xbox nxdk: Set gamepad type Set the gamepad type to Xbox for the original Xbox. --- CMake/platforms/xbox_nxdk.cmake | 2 ++ Source/controls/devices/game_controller.cpp | 5 +++++ 2 files changed, 7 insertions(+) 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