|
|
@@ -96,18 +96,7 @@ void EmulatedController::ReloadFromSettings() {
|
|
|
}
|
|
|
|
|
|
controller.color_values = {};
|
|
|
- controller.colors_state.fullkey = {
|
|
|
- .body = GetNpadColor(player.body_color_left),
|
|
|
- .button = GetNpadColor(player.button_color_left),
|
|
|
- };
|
|
|
- controller.colors_state.left = {
|
|
|
- .body = GetNpadColor(player.body_color_left),
|
|
|
- .button = GetNpadColor(player.button_color_left),
|
|
|
- };
|
|
|
- controller.colors_state.right = {
|
|
|
- .body = GetNpadColor(player.body_color_right),
|
|
|
- .button = GetNpadColor(player.button_color_right),
|
|
|
- };
|
|
|
+ ReloadColorsFromSettings();
|
|
|
|
|
|
ring_params[0] = Common::ParamPackage(Settings::values.ringcon_analogs);
|
|
|
|
|
|
@@ -128,6 +117,30 @@ void EmulatedController::ReloadFromSettings() {
|
|
|
ReloadInput();
|
|
|
}
|
|
|
|
|
|
+void EmulatedController::ReloadColorsFromSettings() {
|
|
|
+ const auto player_index = NpadIdTypeToIndex(npad_id_type);
|
|
|
+ const auto& player = Settings::values.players.GetValue()[player_index];
|
|
|
+
|
|
|
+ // Avoid updating colors if overridden by physical controller
|
|
|
+ if (controller.color_values[LeftIndex].body != 0 &&
|
|
|
+ controller.color_values[RightIndex].body != 0) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ controller.colors_state.fullkey = {
|
|
|
+ .body = GetNpadColor(player.body_color_left),
|
|
|
+ .button = GetNpadColor(player.button_color_left),
|
|
|
+ };
|
|
|
+ controller.colors_state.left = {
|
|
|
+ .body = GetNpadColor(player.body_color_left),
|
|
|
+ .button = GetNpadColor(player.button_color_left),
|
|
|
+ };
|
|
|
+ controller.colors_state.right = {
|
|
|
+ .body = GetNpadColor(player.body_color_right),
|
|
|
+ .button = GetNpadColor(player.button_color_right),
|
|
|
+ };
|
|
|
+}
|
|
|
+
|
|
|
void EmulatedController::LoadDevices() {
|
|
|
// TODO(german77): Use more buttons to detect the correct device
|
|
|
const auto left_joycon = button_params[Settings::NativeButton::DRight];
|