From b887dd99e740c1071b126da8eb34974e95639418 Mon Sep 17 00:00:00 2001 From: thecozies <79979276+thecozies@users.noreply.github.com> Date: Sun, 20 Jul 2025 17:42:57 -0500 Subject: [PATCH] WIP code driven input mapping and player assignment --- CMakeLists.txt | 8 +- assets/config_menu.rml | 14 + assets/icons/Cont.svg | 3 + assets/icons/Port.svg | 6 + include/recomp_input.h | 44 ++- src/game/input.cpp | 382 +++++++++++++++------ src/ui/elements/ui_binding_button.cpp | 40 ++- src/ui/elements/ui_binding_button.h | 2 + src/ui/elements/ui_config_page.cpp | 125 +++++++ src/ui/elements/ui_config_page.h | 49 +++ src/ui/elements/ui_pill_button.cpp | 205 +++++++++++ src/ui/elements/ui_pill_button.h | 43 +++ src/ui/elements/ui_theme.cpp | 17 + src/ui/elements/ui_theme.h | 8 + src/ui/ui_assign_players_modal.cpp | 145 ++++++++ src/ui/ui_assign_players_modal.h | 29 ++ src/ui/ui_config_page_controls.cpp | 275 +++++++++++++++ src/ui/ui_config_page_controls.h | 104 ++++++ src/ui/ui_config_page_controls_element.cpp | 113 ++++++ src/ui/ui_config_page_controls_element.h | 17 + src/ui/ui_config_page_example.cpp | 61 ++++ src/ui/ui_config_page_example.h | 13 + src/ui/ui_elements.cpp | 2 + src/ui/ui_elements.h | 2 + src/ui/ui_state.cpp | 18 +- 25 files changed, 1589 insertions(+), 136 deletions(-) create mode 100644 assets/icons/Cont.svg create mode 100644 assets/icons/Port.svg create mode 100644 src/ui/elements/ui_config_page.cpp create mode 100644 src/ui/elements/ui_config_page.h create mode 100644 src/ui/elements/ui_pill_button.cpp create mode 100644 src/ui/elements/ui_pill_button.h create mode 100644 src/ui/ui_assign_players_modal.cpp create mode 100644 src/ui/ui_assign_players_modal.h create mode 100644 src/ui/ui_config_page_controls.cpp create mode 100644 src/ui/ui_config_page_controls.h create mode 100644 src/ui/ui_config_page_controls_element.cpp create mode 100644 src/ui/ui_config_page_controls_element.h create mode 100644 src/ui/ui_config_page_example.cpp create mode 100644 src/ui/ui_config_page_example.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 26cbf0d..c151eed 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -168,6 +168,10 @@ set (SOURCES ${CMAKE_SOURCE_DIR}/src/ui/ui_state.cpp ${CMAKE_SOURCE_DIR}/src/ui/ui_launcher.cpp ${CMAKE_SOURCE_DIR}/src/ui/ui_config.cpp + ${CMAKE_SOURCE_DIR}/src/ui/ui_assign_players_modal.cpp + ${CMAKE_SOURCE_DIR}/src/ui/ui_config_page_example.cpp + ${CMAKE_SOURCE_DIR}/src/ui/ui_config_page_controls.cpp + ${CMAKE_SOURCE_DIR}/src/ui/ui_config_page_controls_element.cpp ${CMAKE_SOURCE_DIR}/src/ui/ui_prompt.cpp ${CMAKE_SOURCE_DIR}/src/ui/ui_config_sub_menu.cpp ${CMAKE_SOURCE_DIR}/src/ui/ui_color_hack.cpp @@ -186,10 +190,12 @@ set (SOURCES ${CMAKE_SOURCE_DIR}/src/ui/elements/ui_button.cpp ${CMAKE_SOURCE_DIR}/src/ui/elements/ui_icon_button.cpp ${CMAKE_SOURCE_DIR}/src/ui/elements/ui_clickable.cpp + ${CMAKE_SOURCE_DIR}/src/ui/elements/ui_config_page.cpp ${CMAKE_SOURCE_DIR}/src/ui/elements/ui_container.cpp ${CMAKE_SOURCE_DIR}/src/ui/elements/ui_element.cpp ${CMAKE_SOURCE_DIR}/src/ui/elements/ui_image.cpp ${CMAKE_SOURCE_DIR}/src/ui/elements/ui_label.cpp + ${CMAKE_SOURCE_DIR}/src/ui/elements/ui_pill_button.cpp ${CMAKE_SOURCE_DIR}/src/ui/elements/ui_radio.cpp ${CMAKE_SOURCE_DIR}/src/ui/elements/ui_scroll_container.cpp ${CMAKE_SOURCE_DIR}/src/ui/elements/ui_slider.cpp @@ -288,7 +294,7 @@ if (WIN32) PROPERTIES LINK_FLAGS_DEBUG "/SUBSYSTEM:CONSOLE" LINK_FLAGS_RELEASE "/SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup" - LINK_FLAGS_RELWITHDEBINFO "/SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup" + LINK_FLAGS_RELWITHDEBINFO "/SUBSYSTEM:CONSOLE" # "/SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup" LINK_FLAGS_MINSIZEREL "/SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup" ) diff --git a/assets/config_menu.rml b/assets/config_menu.rml index 8d582dc..1770221 100644 --- a/assets/config_menu.rml +++ b/assets/config_menu.rml @@ -78,6 +78,20 @@