summaryrefslogtreecommitdiff
path: root/src/yuzu/multiplayer
diff options
context:
space:
mode:
authorFearlessTobi <thm.frey@gmail.com>2022-07-15 19:45:35 +0200
committerFearlessTobi <thm.frey@gmail.com>2022-07-25 21:59:30 +0200
commit6c8e45618578de1406c0bf4a7f976bd4903c339c (patch)
tree25b959db6f30fe75bf5c6fa667ed92af71117986 /src/yuzu/multiplayer
parentec407bd3f1988c6f5d147307c662703c7bc94751 (diff)
Address first part of review comments
Diffstat (limited to 'src/yuzu/multiplayer')
-rw-r--r--src/yuzu/multiplayer/chat_room.cpp2
-rw-r--r--src/yuzu/multiplayer/direct_connect.cpp20
-rw-r--r--src/yuzu/multiplayer/host_room.cpp45
-rw-r--r--src/yuzu/multiplayer/lobby.cpp18
-rw-r--r--src/yuzu/multiplayer/state.cpp2
5 files changed, 49 insertions, 38 deletions
diff --git a/src/yuzu/multiplayer/chat_room.cpp b/src/yuzu/multiplayer/chat_room.cpp
index 6dd4bc36d..7048ee1fc 100644
--- a/src/yuzu/multiplayer/chat_room.cpp
+++ b/src/yuzu/multiplayer/chat_room.cpp
@@ -390,7 +390,7 @@ void ChatRoom::SetPlayerList(const Network::RoomMember::MemberList& member_list)
return;
QPixmap pixmap;
if (!pixmap.loadFromData(reinterpret_cast<const u8*>(result.data()),
- result.size()))
+ static_cast<uint>(result.size())))
return;
icon_cache[avatar_url] =
pixmap.scaled(48, 48, Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
diff --git a/src/yuzu/multiplayer/direct_connect.cpp b/src/yuzu/multiplayer/direct_connect.cpp
index 27741d657..837baf85c 100644
--- a/src/yuzu/multiplayer/direct_connect.cpp
+++ b/src/yuzu/multiplayer/direct_connect.cpp
@@ -32,15 +32,15 @@ DirectConnectWindow::DirectConnectWindow(QWidget* parent)
connect(watcher, &QFutureWatcher<void>::finished, this, &DirectConnectWindow::OnConnection);
ui->nickname->setValidator(validation.GetNickname());
- ui->nickname->setText(UISettings::values.nickname);
+ ui->nickname->setText(UISettings::values.multiplayer_nickname.GetValue());
if (ui->nickname->text().isEmpty() && !Settings::values.yuzu_username.GetValue().empty()) {
// Use yuzu Web Service user name as nickname by default
ui->nickname->setText(QString::fromStdString(Settings::values.yuzu_username.GetValue()));
}
ui->ip->setValidator(validation.GetIP());
- ui->ip->setText(UISettings::values.ip);
+ ui->ip->setText(UISettings::values.multiplayer_ip.GetValue());
ui->port->setValidator(validation.GetPort());
- ui->port->setText(UISettings::values.port);
+ ui->port->setText(QString::number(UISettings::values.multiplayer_port.GetValue()));
// TODO(jroweboy): Show or hide the connection options based on the current value of the combo
// box. Add this back in when the traversal server support is added.
@@ -86,16 +86,18 @@ void DirectConnectWindow::Connect() {
}
// Store settings
- UISettings::values.nickname = ui->nickname->text();
- UISettings::values.ip = ui->ip->text();
- UISettings::values.port = (ui->port->isModified() && !ui->port->text().isEmpty())
- ? ui->port->text()
- : UISettings::values.port;
+ UISettings::values.multiplayer_nickname = ui->nickname->text();
+ UISettings::values.multiplayer_ip = ui->ip->text();
+ if (ui->port->isModified() && !ui->port->text().isEmpty()) {
+ UISettings::values.multiplayer_port = ui->port->text().toInt();
+ } else {
+ UISettings::values.multiplayer_port = UISettings::values.multiplayer_port.GetDefault();
+ }
// attempt to connect in a different thread
QFuture<void> f = QtConcurrent::run([&] {
if (auto room_member = Network::GetRoomMember().lock()) {
- auto port = UISettings::values.port.toUInt();
+ auto port = UISettings::values.multiplayer_port.GetValue();
room_member->Join(ui->nickname->text().toStdString(), "",
ui->ip->text().toStdString().c_str(), port, 0,
Network::NoPreferredMac, ui->password->text().toStdString().c_str());
diff --git a/src/yuzu/multiplayer/host_room.cpp b/src/yuzu/multiplayer/host_room.cpp
index 1b73e2bec..5470b8b86 100644
--- a/src/yuzu/multiplayer/host_room.cpp
+++ b/src/yuzu/multiplayer/host_room.cpp
@@ -51,23 +51,24 @@ HostRoomWindow::HostRoomWindow(QWidget* parent, QStandardItemModel* list,
connect(ui->host, &QPushButton::clicked, this, &HostRoomWindow::Host);
// Restore the settings:
- ui->username->setText(UISettings::values.room_nickname);
+ ui->username->setText(UISettings::values.multiplayer_room_nickname.GetValue());
if (ui->username->text().isEmpty() && !Settings::values.yuzu_username.GetValue().empty()) {
// Use yuzu Web Service user name as nickname by default
ui->username->setText(QString::fromStdString(Settings::values.yuzu_username.GetValue()));
}
- ui->room_name->setText(UISettings::values.room_name);
- ui->port->setText(UISettings::values.room_port);
- ui->max_player->setValue(UISettings::values.max_player);
- int index = UISettings::values.host_type;
+ ui->room_name->setText(UISettings::values.multiplayer_room_name.GetValue());
+ ui->port->setText(QString::number(UISettings::values.multiplayer_room_port.GetValue()));
+ ui->max_player->setValue(UISettings::values.multiplayer_max_player.GetValue());
+ int index = UISettings::values.multiplayer_host_type.GetValue();
if (index < ui->host_type->count()) {
ui->host_type->setCurrentIndex(index);
}
- index = ui->game_list->findData(UISettings::values.game_id, GameListItemPath::ProgramIdRole);
+ index = ui->game_list->findData(UISettings::values.multiplayer_game_id.GetValue(),
+ GameListItemPath::ProgramIdRole);
if (index != -1) {
ui->game_list->setCurrentIndex(index);
}
- ui->room_description->setText(UISettings::values.room_description);
+ ui->room_description->setText(UISettings::values.multiplayer_room_description.GetValue());
}
HostRoomWindow::~HostRoomWindow() = default;
@@ -91,7 +92,8 @@ std::unique_ptr<Network::VerifyUser::Backend> HostRoomWindow::CreateVerifyBacken
std::unique_ptr<Network::VerifyUser::Backend> verify_backend;
if (use_validation) {
#ifdef ENABLE_WEB_SERVICE
- verify_backend = std::make_unique<WebService::VerifyUserJWT>(Settings::values.web_api_url);
+ verify_backend =
+ std::make_unique<WebService::VerifyUserJWT>(Settings::values.web_api_url.GetValue());
#else
verify_backend = std::make_unique<Network::VerifyUser::NullBackend>();
#endif
@@ -137,7 +139,7 @@ void HostRoomWindow::Host() {
const bool is_public = ui->host_type->currentIndex() == 0;
Network::Room::BanList ban_list{};
if (ui->load_ban_list->isChecked()) {
- ban_list = UISettings::values.ban_list;
+ ban_list = UISettings::values.multiplayer_ban_list;
}
if (auto room = Network::GetRoom().lock()) {
bool created = room->Create(
@@ -181,8 +183,9 @@ void HostRoomWindow::Host() {
std::string token;
#ifdef ENABLE_WEB_SERVICE
if (is_public) {
- WebService::Client client(Settings::values.web_api_url, Settings::values.yuzu_username,
- Settings::values.yuzu_token);
+ WebService::Client client(Settings::values.web_api_url.GetValue(),
+ Settings::values.yuzu_username.GetValue(),
+ Settings::values.yuzu_token.GetValue());
if (auto room = Network::GetRoom().lock()) {
token = client.GetExternalJWT(room->GetVerifyUID()).returned_data;
}
@@ -198,17 +201,19 @@ void HostRoomWindow::Host() {
Network::NoPreferredMac, password, token);
// Store settings
- UISettings::values.room_nickname = ui->username->text();
- UISettings::values.room_name = ui->room_name->text();
- UISettings::values.game_id =
+ UISettings::values.multiplayer_room_nickname = ui->username->text();
+ UISettings::values.multiplayer_room_name = ui->room_name->text();
+ UISettings::values.multiplayer_game_id =
ui->game_list->currentData(GameListItemPath::ProgramIdRole).toLongLong();
- UISettings::values.max_player = ui->max_player->value();
+ UISettings::values.multiplayer_max_player = ui->max_player->value();
- UISettings::values.host_type = ui->host_type->currentIndex();
- UISettings::values.room_port = (ui->port->isModified() && !ui->port->text().isEmpty())
- ? ui->port->text()
- : QString::number(Network::DefaultRoomPort);
- UISettings::values.room_description = ui->room_description->toPlainText();
+ UISettings::values.multiplayer_host_type = ui->host_type->currentIndex();
+ if (ui->port->isModified() && !ui->port->text().isEmpty()) {
+ UISettings::values.multiplayer_room_port = ui->port->text().toInt();
+ } else {
+ UISettings::values.multiplayer_room_port = Network::DefaultRoomPort;
+ }
+ UISettings::values.multiplayer_room_description = ui->room_description->toPlainText();
ui->host->setEnabled(true);
close();
}
diff --git a/src/yuzu/multiplayer/lobby.cpp b/src/yuzu/multiplayer/lobby.cpp
index fcaa7b517..364b4605e 100644
--- a/src/yuzu/multiplayer/lobby.cpp
+++ b/src/yuzu/multiplayer/lobby.cpp
@@ -56,7 +56,7 @@ Lobby::Lobby(QWidget* parent, QStandardItemModel* list,
ui->room_list->setContextMenuPolicy(Qt::CustomContextMenu);
ui->nickname->setValidator(validation.GetNickname());
- ui->nickname->setText(UISettings::values.nickname);
+ ui->nickname->setText(UISettings::values.multiplayer_nickname.GetValue());
if (ui->nickname->text().isEmpty() && !Settings::values.yuzu_username.GetValue().empty()) {
// Use yuzu Web Service user name as nickname by default
ui->nickname->setText(QString::fromStdString(Settings::values.yuzu_username.GetValue()));
@@ -154,9 +154,11 @@ void Lobby::OnJoinRoom(const QModelIndex& source) {
QFuture<void> f = QtConcurrent::run([nickname, ip, port, password, verify_UID] {
std::string token;
#ifdef ENABLE_WEB_SERVICE
- if (!Settings::values.yuzu_username.empty() && !Settings::values.yuzu_token.empty()) {
- WebService::Client client(Settings::values.web_api_url, Settings::values.yuzu_username,
- Settings::values.yuzu_token);
+ if (!Settings::values.yuzu_username.GetValue().empty() &&
+ !Settings::values.yuzu_token.GetValue().empty()) {
+ WebService::Client client(Settings::values.web_api_url.GetValue(),
+ Settings::values.yuzu_username.GetValue(),
+ Settings::values.yuzu_token.GetValue());
token = client.GetExternalJWT(verify_UID).returned_data;
if (token.empty()) {
LOG_ERROR(WebService, "Could not get external JWT, verification may fail");
@@ -175,9 +177,11 @@ void Lobby::OnJoinRoom(const QModelIndex& source) {
// TODO(jroweboy): disable widgets and display a connecting while we wait
// Save settings
- UISettings::values.nickname = ui->nickname->text();
- UISettings::values.ip = proxy->data(connection_index, LobbyItemHost::HostIPRole).toString();
- UISettings::values.port = proxy->data(connection_index, LobbyItemHost::HostPortRole).toString();
+ UISettings::values.multiplayer_nickname = ui->nickname->text();
+ UISettings::values.multiplayer_ip =
+ proxy->data(connection_index, LobbyItemHost::HostIPRole).toString();
+ UISettings::values.multiplayer_port =
+ proxy->data(connection_index, LobbyItemHost::HostPortRole).toInt();
}
void Lobby::ResetModel() {
diff --git a/src/yuzu/multiplayer/state.cpp b/src/yuzu/multiplayer/state.cpp
index e96b03e5d..ee138739b 100644
--- a/src/yuzu/multiplayer/state.cpp
+++ b/src/yuzu/multiplayer/state.cpp
@@ -232,7 +232,7 @@ bool MultiplayerState::OnCloseRoom() {
return true;
}
// Save ban list
- UISettings::values.ban_list = std::move(room->GetBanList());
+ UISettings::values.multiplayer_ban_list = std::move(room->GetBanList());
room->Destroy();
announce_multiplayer_session->Stop();