summaryrefslogtreecommitdiffstats
path: root/src/yuzu/configuration/config.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/yuzu/configuration/config.cpp')
-rw-r--r--src/yuzu/configuration/config.cpp79
1 files changed, 79 insertions, 0 deletions
diff --git a/src/yuzu/configuration/config.cpp b/src/yuzu/configuration/config.cpp
index c841843f0..7c11e2c03 100644
--- a/src/yuzu/configuration/config.cpp
+++ b/src/yuzu/configuration/config.cpp
@@ -11,6 +11,7 @@
#include "core/hle/service/acc/profile_manager.h"
#include "core/hle/service/hid/controllers/npad.h"
#include "input_common/main.h"
+#include "network/network.h"
#include "yuzu/configuration/config.h"
namespace FS = Common::FS;
@@ -584,6 +585,48 @@ void Config::ReadMiscellaneousValues() {
qt_config->endGroup();
}
+void Config::ReadMultiplayerValues() {
+ qt_config->beginGroup(QStringLiteral("Multiplayer"));
+
+ UISettings::values.nickname = ReadSetting(QStringLiteral("nickname"), QString{}).toString();
+ UISettings::values.ip = ReadSetting(QStringLiteral("ip"), QString{}).toString();
+ UISettings::values.port =
+ ReadSetting(QStringLiteral("port"), Network::DefaultRoomPort).toString();
+ UISettings::values.room_nickname =
+ ReadSetting(QStringLiteral("room_nickname"), QString{}).toString();
+ UISettings::values.room_name = ReadSetting(QStringLiteral("room_name"), QString{}).toString();
+ UISettings::values.room_port =
+ ReadSetting(QStringLiteral("room_port"), QStringLiteral("24872")).toString();
+ bool ok;
+ UISettings::values.host_type = ReadSetting(QStringLiteral("host_type"), 0).toUInt(&ok);
+ if (!ok) {
+ UISettings::values.host_type = 0;
+ }
+ UISettings::values.max_player = ReadSetting(QStringLiteral("max_player"), 8).toUInt();
+ UISettings::values.game_id = ReadSetting(QStringLiteral("game_id"), 0).toULongLong();
+ UISettings::values.room_description =
+ ReadSetting(QStringLiteral("room_description"), QString{}).toString();
+ // Read ban list back
+ int size = qt_config->beginReadArray(QStringLiteral("username_ban_list"));
+ UISettings::values.ban_list.first.resize(size);
+ for (int i = 0; i < size; ++i) {
+ qt_config->setArrayIndex(i);
+ UISettings::values.ban_list.first[i] =
+ ReadSetting(QStringLiteral("username")).toString().toStdString();
+ }
+ qt_config->endArray();
+ size = qt_config->beginReadArray(QStringLiteral("ip_ban_list"));
+ UISettings::values.ban_list.second.resize(size);
+ for (int i = 0; i < size; ++i) {
+ qt_config->setArrayIndex(i);
+ UISettings::values.ban_list.second[i] =
+ ReadSetting(QStringLiteral("ip")).toString().toStdString();
+ }
+ qt_config->endArray();
+
+ qt_config->endGroup();
+}
+
void Config::ReadPathValues() {
qt_config->beginGroup(QStringLiteral("Paths"));
@@ -794,6 +837,7 @@ void Config::ReadUIValues() {
ReadPathValues();
ReadScreenshotValues();
ReadShortcutValues();
+ ReadMultiplayerValues();
ReadBasicSetting(UISettings::values.single_window_mode);
ReadBasicSetting(UISettings::values.fullscreen);
@@ -1161,6 +1205,40 @@ void Config::SaveMiscellaneousValues() {
qt_config->endGroup();
}
+void Config::SaveMultiplayerValues() {
+ qt_config->beginGroup(QStringLiteral("Multiplayer"));
+
+ WriteSetting(QStringLiteral("nickname"), UISettings::values.nickname, QString{});
+ WriteSetting(QStringLiteral("ip"), UISettings::values.ip, QString{});
+ WriteSetting(QStringLiteral("port"), UISettings::values.port, Network::DefaultRoomPort);
+ WriteSetting(QStringLiteral("room_nickname"), UISettings::values.room_nickname, QString{});
+ WriteSetting(QStringLiteral("room_name"), UISettings::values.room_name, QString{});
+ WriteSetting(QStringLiteral("room_port"), UISettings::values.room_port,
+ QStringLiteral("24872"));
+ WriteSetting(QStringLiteral("host_type"), UISettings::values.host_type, 0);
+ WriteSetting(QStringLiteral("max_player"), UISettings::values.max_player, 8);
+ WriteSetting(QStringLiteral("game_id"), UISettings::values.game_id, 0);
+ WriteSetting(QStringLiteral("room_description"), UISettings::values.room_description,
+ QString{});
+ // Write ban list
+ qt_config->beginWriteArray(QStringLiteral("username_ban_list"));
+ for (std::size_t i = 0; i < UISettings::values.ban_list.first.size(); ++i) {
+ qt_config->setArrayIndex(static_cast<int>(i));
+ WriteSetting(QStringLiteral("username"),
+ QString::fromStdString(UISettings::values.ban_list.first[i]));
+ }
+ qt_config->endArray();
+ qt_config->beginWriteArray(QStringLiteral("ip_ban_list"));
+ for (std::size_t i = 0; i < UISettings::values.ban_list.second.size(); ++i) {
+ qt_config->setArrayIndex(static_cast<int>(i));
+ WriteSetting(QStringLiteral("ip"),
+ QString::fromStdString(UISettings::values.ban_list.second[i]));
+ }
+ qt_config->endArray();
+
+ qt_config->endGroup();
+}
+
void Config::SavePathValues() {
qt_config->beginGroup(QStringLiteral("Paths"));
@@ -1347,6 +1425,7 @@ void Config::SaveUIValues() {
SavePathValues();
SaveScreenshotValues();
SaveShortcutValues();
+ SaveMultiplayerValues();
WriteBasicSetting(UISettings::values.single_window_mode);
WriteBasicSetting(UISettings::values.fullscreen);