From e1e786ef1b632f3face0c98d6087bbd5a209817b Mon Sep 17 00:00:00 2001 From: thecozies <79979276+thecozies@users.noreply.github.com> Date: Thu, 31 Jul 2025 10:23:01 -0500 Subject: [PATCH] init mp kb mappings to be unmapped --- src/game/controls.cpp | 36 +++++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/src/game/controls.cpp b/src/game/controls.cpp index 78515e8..98d8924 100644 --- a/src/game/controls.cpp +++ b/src/game/controls.cpp @@ -303,6 +303,39 @@ std::string get_mp_keyboard_profile_name(int player_index) { return keyboard_mp_profile_name + "(Player " + std::to_string(player_index + 1) + ")"; } +void clear_mapping(int profile_index, recomp::GameInput input) { + for (size_t binding_index = 0; binding_index < recomp::bindings_per_input; binding_index++) { + recomp::set_input_binding(profile_index, input, binding_index, recomp::InputField{}); + } +}; + +// Used primarily for multiplayer keyboard input profiles +void clear_all_mappings(int profile_index) { + clear_mapping(profile_index, recomp::GameInput::A); + clear_mapping(profile_index, recomp::GameInput::B); + clear_mapping(profile_index, recomp::GameInput::Z); + clear_mapping(profile_index, recomp::GameInput::START); + clear_mapping(profile_index, recomp::GameInput::DPAD_UP); + clear_mapping(profile_index, recomp::GameInput::DPAD_DOWN); + clear_mapping(profile_index, recomp::GameInput::DPAD_LEFT); + clear_mapping(profile_index, recomp::GameInput::DPAD_RIGHT); + clear_mapping(profile_index, recomp::GameInput::L); + clear_mapping(profile_index, recomp::GameInput::R); + clear_mapping(profile_index, recomp::GameInput::C_UP); + clear_mapping(profile_index, recomp::GameInput::C_DOWN); + clear_mapping(profile_index, recomp::GameInput::C_LEFT); + clear_mapping(profile_index, recomp::GameInput::C_RIGHT); + + clear_mapping(profile_index, recomp::GameInput::X_AXIS_NEG); + clear_mapping(profile_index, recomp::GameInput::X_AXIS_POS); + clear_mapping(profile_index, recomp::GameInput::Y_AXIS_NEG); + clear_mapping(profile_index, recomp::GameInput::Y_AXIS_POS); + + clear_mapping(profile_index, recomp::GameInput::TOGGLE_MENU); + clear_mapping(profile_index, recomp::GameInput::ACCEPT_MENU); + clear_mapping(profile_index, recomp::GameInput::APPLY_MENU); +}; + void recomp::initialize_input_bindings() { keyboard_sp_profile_index = recomp::add_input_profile(keyboard_sp_profile_key, keyboard_sp_profile_name, recomp::InputDevice::Keyboard, false); controller_sp_profile_index = recomp::add_input_profile(controller_sp_profile_key, controller_sp_profile_name, recomp::InputDevice::Controller, false); @@ -312,12 +345,13 @@ void recomp::initialize_input_bindings() { recomp::set_input_profile_for_player(0, controller_sp_profile_index, recomp::InputDevice::Controller); for (int i = 0; i < recompinput::get_num_players(); i++) { - recomp::add_input_profile( + int profile_index = recomp::add_input_profile( get_mp_keyboard_profile_key(i), get_mp_keyboard_profile_name(i), recomp::InputDevice::Keyboard, false ); + clear_all_mappings(profile_index); } }