mirror of
https://github.com/Zelda64Recomp/Zelda64Recomp.git
synced 2026-05-03 23:51:46 +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;
|
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_keyboard_mappings;
|
||||||
extern const DefaultN64Mappings default_n64_controller_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.
|
// 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);
|
auto find_input_it = mappings_json.find(input_name);
|
||||||
if (find_input_it == mappings_json.end() || !find_input_it->is_array()) {
|
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;
|
continue;
|
||||||
}
|
}
|
||||||
const nlohmann::json& input_json = *find_input_it;
|
const nlohmann::json& input_json = *find_input_it;
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue