early-access version 3419

This commit is contained in:
pineappleEA
2023-02-26 23:49:58 +01:00
parent 75a5308254
commit 9495ebb1c2
10 changed files with 112 additions and 107 deletions

View File

@@ -82,12 +82,7 @@ Settings::ControllerType EmulatedController::MapNPadToSettingsType(NpadStyleInde
}
void EmulatedController::ReloadFromSettings() {
if (npad_id_type == NpadIdType::Other) {
ReloadDebugPadFromSettings();
return;
}
const auto player_index = NpadIdTypeToConfigIndex(npad_id_type);
const auto player_index = NpadIdTypeToIndex(npad_id_type);
const auto& player = Settings::values.players.GetValue()[player_index];
for (std::size_t index = 0; index < player.buttons.size(); ++index) {
@@ -116,25 +111,16 @@ void EmulatedController::ReloadFromSettings() {
ring_params[0] = Common::ParamPackage(Settings::values.ringcon_analogs);
// Player 1 shares config with handheld. Disable controller when handheld is selected
// if (npad_id_type == NpadIdType::Player1 && npad_type == NpadStyleIndex::Handheld) {
// Disconnect();
// ReloadInput();
// return;
//}
// Handheld shares config with player 1. Disable controller when handheld isn't selected
if (npad_id_type == NpadIdType::Handheld && npad_type != NpadStyleIndex::Handheld) {
Disconnect();
ReloadInput();
return;
// Other or debug controller should always be a pro controller
if (npad_id_type != NpadIdType::Other) {
SetNpadStyleIndex(MapSettingsTypeToNPad(player.controller_type));
original_npad_type = npad_type;
} else {
SetNpadStyleIndex(NpadStyleIndex::ProController);
original_npad_type = npad_type;
}
Disconnect();
SetNpadStyleIndex(MapSettingsTypeToNPad(player.controller_type));
original_npad_type = npad_type;
if (player.connected) {
Connect();
}
@@ -142,33 +128,6 @@ void EmulatedController::ReloadFromSettings() {
ReloadInput();
}
void EmulatedController::ReloadDebugPadFromSettings() {
for (std::size_t index = 0; index < Settings::values.debug_pad_buttons.size(); ++index) {
button_params[index] = Common::ParamPackage(Settings::values.debug_pad_buttons[index]);
}
for (std::size_t index = 0; index < Settings::values.debug_pad_analogs.size(); ++index) {
stick_params[index] = Common::ParamPackage(Settings::values.debug_pad_analogs[index]);
}
for (std::size_t index = 0; index < motion_params.size(); ++index) {
motion_params[index] = {};
}
controller.color_values = {};
controller.colors_state.fullkey = {};
controller.colors_state.left = {};
controller.colors_state.right = {};
ring_params[0] = {};
SetNpadStyleIndex(NpadStyleIndex::ProController);
original_npad_type = npad_type;
Disconnect();
if (Settings::values.debug_pad_enabled) {
Connect();
}
ReloadInput();
}
void EmulatedController::LoadDevices() {
// TODO(german77): Use more buttons to detect the correct device
const auto left_joycon = button_params[Settings::NativeButton::DRight];
@@ -601,14 +560,8 @@ bool EmulatedController::IsConfiguring() const {
}
void EmulatedController::SaveCurrentConfig() {
// Other and Handheld can't alter the config from here
if (npad_id_type == NpadIdType::Other || npad_id_type == NpadIdType::Handheld) {
return;
}
const auto player_index = NpadIdTypeToConfigIndex(npad_id_type);
const auto player_index = NpadIdTypeToIndex(npad_id_type);
auto& player = Settings::values.players.GetValue()[player_index];
player.connected = is_connected;
player.controller_type = MapNPadToSettingsType(npad_type);
for (std::size_t index = 0; index < player.buttons.size(); ++index) {
@@ -1199,7 +1152,7 @@ bool EmulatedController::SetVibration(std::size_t device_index, VibrationValue v
if (!output_devices[device_index]) {
return false;
}
const auto player_index = NpadIdTypeToConfigIndex(npad_id_type);
const auto player_index = NpadIdTypeToIndex(npad_id_type);
const auto& player = Settings::values.players.GetValue()[player_index];
const f32 strength = static_cast<f32>(player.vibration_strength) / 100.0f;
@@ -1225,7 +1178,7 @@ bool EmulatedController::SetVibration(std::size_t device_index, VibrationValue v
}
bool EmulatedController::IsVibrationEnabled(std::size_t device_index) {
const auto player_index = NpadIdTypeToConfigIndex(npad_id_type);
const auto player_index = NpadIdTypeToIndex(npad_id_type);
const auto& player = Settings::values.players.GetValue()[player_index];
if (!player.vibration_enabled) {

View File

@@ -250,14 +250,9 @@ public:
/// Reload all input devices
void ReloadInput();
/// Overrides current mapped devices with the stored configuration and reloads all input
/// callbacks
/// Overrides current mapped devices with the stored configuration and reloads all input devices
void ReloadFromSettings();
/// Overrides current mapped debug pad with the stored configuration and reloads all input
/// callbacks
void ReloadDebugPadFromSettings();
/// Saves the current mapped configuration
void SaveCurrentConfig();

View File

@@ -690,32 +690,6 @@ constexpr size_t NpadIdTypeToIndex(NpadIdType npad_id_type) {
}
}
/// Converts a NpadIdType to a config array index.
constexpr size_t NpadIdTypeToConfigIndex(NpadIdType npad_id_type) {
switch (npad_id_type) {
case NpadIdType::Player1:
return 0;
case NpadIdType::Player2:
return 1;
case NpadIdType::Player3:
return 2;
case NpadIdType::Player4:
return 3;
case NpadIdType::Player5:
return 4;
case NpadIdType::Player6:
return 5;
case NpadIdType::Player7:
return 6;
case NpadIdType::Player8:
return 7;
case NpadIdType::Other:
case NpadIdType::Handheld:
default:
return 0;
}
}
/// Converts an array index to a NpadIdType
constexpr NpadIdType IndexToNpadIdType(size_t index) {
switch (index) {