Merge pull request #7851 from lat9nq/cmd-add-motion
yuzu-cmd: config: Support motion inputs
This commit is contained in:
		| @@ -66,6 +66,11 @@ static const std::array<int, Settings::NativeButton::NumButtons> default_buttons | ||||
|     SDL_SCANCODE_M, SDL_SCANCODE_N, SDL_SCANCODE_1, SDL_SCANCODE_2, SDL_SCANCODE_B, | ||||
| }; | ||||
|  | ||||
| static const std::array<int, Settings::NativeMotion::NumMotions> default_motions = { | ||||
|     SDL_SCANCODE_7, | ||||
|     SDL_SCANCODE_8, | ||||
| }; | ||||
|  | ||||
| static const std::array<std::array<int, 5>, Settings::NativeAnalog::NumAnalogs> default_analogs{{ | ||||
|     { | ||||
|         SDL_SCANCODE_UP, | ||||
| @@ -102,27 +107,42 @@ void Config::ReadSetting(const std::string& group, Settings::BasicSetting<Type>& | ||||
| void Config::ReadValues() { | ||||
|     // Controls | ||||
|     for (std::size_t p = 0; p < Settings::values.players.GetValue().size(); ++p) { | ||||
|         auto& player = Settings::values.players.GetValue()[p]; | ||||
|  | ||||
|         const auto group = fmt::format("ControlsP{}", p); | ||||
|         for (int i = 0; i < Settings::NativeButton::NumButtons; ++i) { | ||||
|             std::string default_param = InputCommon::GenerateKeyboardParam(default_buttons[i]); | ||||
|             Settings::values.players.GetValue()[p].buttons[i] = | ||||
|             player.buttons[i] = | ||||
|                 sdl2_config->Get(group, Settings::NativeButton::mapping[i], default_param); | ||||
|             if (Settings::values.players.GetValue()[p].buttons[i].empty()) | ||||
|                 Settings::values.players.GetValue()[p].buttons[i] = default_param; | ||||
|             if (player.buttons[i].empty()) { | ||||
|                 player.buttons[i] = default_param; | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         for (int i = 0; i < Settings::NativeAnalog::NumAnalogs; ++i) { | ||||
|             std::string default_param = InputCommon::GenerateAnalogParamFromKeys( | ||||
|                 default_analogs[i][0], default_analogs[i][1], default_analogs[i][2], | ||||
|                 default_analogs[i][3], default_analogs[i][4], 0.5f); | ||||
|             Settings::values.players.GetValue()[p].analogs[i] = | ||||
|             player.analogs[i] = | ||||
|                 sdl2_config->Get(group, Settings::NativeAnalog::mapping[i], default_param); | ||||
|             if (Settings::values.players.GetValue()[p].analogs[i].empty()) | ||||
|                 Settings::values.players.GetValue()[p].analogs[i] = default_param; | ||||
|             if (player.analogs[i].empty()) { | ||||
|                 player.analogs[i] = default_param; | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         Settings::values.players.GetValue()[p].connected = | ||||
|             sdl2_config->GetBoolean(group, "connected", false); | ||||
|         for (int i = 0; i < Settings::NativeMotion::NumMotions; ++i) { | ||||
|             const std::string default_param = | ||||
|                 InputCommon::GenerateKeyboardParam(default_motions[i]); | ||||
|             auto& player_motions = player.motions[i]; | ||||
|  | ||||
|             player_motions = | ||||
|                 sdl2_config->Get(group, Settings::NativeMotion::mapping[i], default_param); | ||||
|             if (player_motions.empty()) { | ||||
|                 player_motions = default_param; | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         player.connected = sdl2_config->GetBoolean(group, "connected", false); | ||||
|     } | ||||
|  | ||||
|     ReadSetting("ControlsGeneral", Settings::values.mouse_enabled); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Morph
					Morph