From 956ba21e6c9fcaf5583c94a3fcc75f04b7ca7a83 Mon Sep 17 00:00:00 2001 From: Frederic Laing Date: Sun, 7 Jun 2020 20:02:12 +0200 Subject: [PATCH] Add more information about the running game --- src/yuzu/main.cpp | 39 +++++++++++++++++++++++++++++---------- src/yuzu/main.h | 3 ++- 2 files changed, 31 insertions(+), 11 deletions(-) diff --git a/src/yuzu/main.cpp b/src/yuzu/main.cpp index 270cccc772..a3d2229f9a 100644 --- a/src/yuzu/main.cpp +++ b/src/yuzu/main.cpp @@ -1035,19 +1035,36 @@ void GMainWindow::BootGame(const QString& filename) { } const u64 title_id = Core::System::GetInstance().CurrentProcess()->GetTitleID(); + const FileSys::PatchManager patch_manager(title_id); + QString dlc; + + for (const auto& kv : patch_manager.GetPatchVersionNames(nullptr)) { + if (kv.first == "DLC" && !kv.second.empty()) { + dlc = QString::fromStdString("DLC " + kv.second); + } + } + + if (dlc.isEmpty()) { + dlc = QString::fromStdString("No DLC"); + } std::string title_name; + QString title_version; const auto res = Core::System::GetInstance().GetGameName(title_name); - if (res != Loader::ResultStatus::Success) { - const auto metadata = FileSys::PatchManager(title_id).GetControlMetadata(); - if (metadata.first != nullptr) - title_name = metadata.first->GetApplicationName(); + const auto metadata = FileSys::PatchManager(title_id).GetControlMetadata(); + if (metadata.first != nullptr) { + title_version = QString::fromStdString(metadata.first->GetVersionString()); - if (title_name.empty()) - title_name = FileUtil::GetFilename(filename.toStdString()); + if (res != Loader::ResultStatus::Success) { + title_name = metadata.first->GetApplicationName(); + if (title_name.empty()) { + title_name = FileUtil::GetFilename(filename.toStdString()); + } + } } LOG_INFO(Frontend, "Booting game: {:016X} | {}", title_id, title_name); - UpdateWindowTitle(QString::fromStdString(title_name)); + UpdateWindowTitle(QString::fromStdString(title_name), + QString::fromStdString(std::to_string(title_id)), title_version, dlc); loading_screen->Prepare(Core::System::GetInstance().GetAppLoader()); loading_screen->show(); @@ -1995,7 +2012,8 @@ void GMainWindow::OnCaptureScreenshot() { OnStartGame(); } -void GMainWindow::UpdateWindowTitle(const QString& title_name) { +void GMainWindow::UpdateWindowTitle(const QString& title_name, const QString& title_id, + const QString& title_version, const QString& dlc) { const auto full_name = std::string(Common::g_build_fullname); const auto branch_name = std::string(Common::g_scm_branch); const auto description = std::string(Common::g_scm_desc); @@ -2012,8 +2030,9 @@ void GMainWindow::UpdateWindowTitle(const QString& title_name) { } else { const auto fmt = std::string(Common::g_title_bar_format_running); setWindowTitle(QString::fromStdString( - fmt::format(fmt.empty() ? "yuzu {0}| {3} | {1}-{2}" : fmt, full_name, branch_name, - description, title_name.toStdString(), date, build_id))); + fmt::format(fmt.empty() ? "yuzu {0}| {3} | {4} | {5} | {6} | {1}-{2}" : fmt, full_name, + branch_name, description, title_name.toStdString(), title_id.toStdString(), + title_version.toStdString(), dlc.toStdString(), date, build_id))); } } diff --git a/src/yuzu/main.h b/src/yuzu/main.h index 4f4c8ddbee..04fe5c3d5c 100644 --- a/src/yuzu/main.h +++ b/src/yuzu/main.h @@ -215,7 +215,8 @@ private slots: private: std::optional SelectRomFSDumpTarget(const FileSys::ContentProvider&, u64 program_id); - void UpdateWindowTitle(const QString& title_name = {}); + void UpdateWindowTitle(const QString& title_name = {}, const QString& title_id = {}, + const QString& title_version = {}, const QString& dlc = {}); void UpdateStatusBar(); void HideMouseCursor(); void ShowMouseCursor();