mirror of
https://github.com/Zelda64Recomp/Zelda64Recomp.git
synced 2026-04-30 06:01:37 +00:00
fix: assign defaults for inputs that don't exist in controls.json
This commit is contained in:
parent
d551e7fae4
commit
f160f1eaf5
2 changed files with 35 additions and 0 deletions
|
|
@ -112,6 +112,31 @@ namespace recomp {
|
|||
std::vector<InputField> toggle_menu;
|
||||
};
|
||||
|
||||
constexpr const std::vector<InputField>& get_default_mapping_for_input(const DefaultN64Mappings& defaults, const GameInput input) {
|
||||
switch (input) {
|
||||
case GameInput::A: return defaults.a;
|
||||
case GameInput::B: return defaults.b;
|
||||
case GameInput::L: return defaults.l;
|
||||
case GameInput::R: return defaults.r;
|
||||
case GameInput::Z: return defaults.z;
|
||||
case GameInput::START: return defaults.start;
|
||||
case GameInput::C_LEFT: return defaults.c_left;
|
||||
case GameInput::C_RIGHT: return defaults.c_right;
|
||||
case GameInput::C_UP: return defaults.c_up;
|
||||
case GameInput::C_DOWN: return defaults.c_down;
|
||||
case GameInput::DPAD_LEFT: return defaults.dpad_left;
|
||||
case GameInput::DPAD_RIGHT: return defaults.dpad_right;
|
||||
case GameInput::DPAD_UP: return defaults.dpad_up;
|
||||
case GameInput::DPAD_DOWN: return defaults.dpad_down;
|
||||
case GameInput::X_AXIS_NEG: return defaults.analog_left;
|
||||
case GameInput::X_AXIS_POS: return defaults.analog_right;
|
||||
case GameInput::Y_AXIS_POS: return defaults.analog_up;
|
||||
case GameInput::Y_AXIS_NEG: return defaults.analog_down;
|
||||
case GameInput::TOGGLE_MENU: return defaults.toggle_menu;
|
||||
default: return std::vector<InputField>();
|
||||
}
|
||||
}
|
||||
|
||||
extern const DefaultN64Mappings default_n64_keyboard_mappings;
|
||||
extern const DefaultN64Mappings default_n64_controller_mappings;
|
||||
|
||||
|
|
|
|||
|
|
@ -324,6 +324,16 @@ bool load_input_device_from_json(const nlohmann::json& config_json, recomp::Inpu
|
|||
// Check if the json object for the given input exists and that it's an array.
|
||||
auto find_input_it = mappings_json.find(input_name);
|
||||
if (find_input_it == mappings_json.end() || !find_input_it->is_array()) {
|
||||
assign_mapping(
|
||||
device,
|
||||
cur_input,
|
||||
recomp::get_default_mapping_for_input(
|
||||
device == recomp::InputDevice::Keyboard ?
|
||||
recomp::default_n64_keyboard_mappings :
|
||||
recomp::default_n64_controller_mappings,
|
||||
cur_input
|
||||
)
|
||||
);
|
||||
continue;
|
||||
}
|
||||
const nlohmann::json& input_json = *find_input_it;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue