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