mirror of
https://git.eden-emu.dev/eden-emu/eden.git
synced 2025-10-21 20:27:49 +00:00
Merge pull request #1396 from DarkLordZach/packed-updates
loader: Add support for packed updates
This commit is contained in:
commit
e5d1e17fc1
16 changed files with 143 additions and 21 deletions
|
@ -57,16 +57,25 @@ QString FormatGameName(const std::string& physical_name) {
|
|||
return physical_name_as_qstring;
|
||||
}
|
||||
|
||||
QString FormatPatchNameVersions(const FileSys::PatchManager& patch_manager, bool updatable = true) {
|
||||
QString FormatPatchNameVersions(const FileSys::PatchManager& patch_manager,
|
||||
Loader::AppLoader& loader, bool updatable = true) {
|
||||
QString out;
|
||||
for (const auto& kv : patch_manager.GetPatchVersionNames()) {
|
||||
FileSys::VirtualFile update_raw;
|
||||
loader.ReadUpdateRaw(update_raw);
|
||||
for (const auto& kv : patch_manager.GetPatchVersionNames(update_raw)) {
|
||||
if (!updatable && kv.first == "Update")
|
||||
continue;
|
||||
|
||||
if (kv.second.empty()) {
|
||||
out.append(fmt::format("{}\n", kv.first).c_str());
|
||||
} else {
|
||||
out.append(fmt::format("{} ({})\n", kv.first, kv.second).c_str());
|
||||
auto ver = kv.second;
|
||||
|
||||
// Display container name for packed updates
|
||||
if (ver == "PACKED" && kv.first == "Update")
|
||||
ver = Loader::GetFileTypeString(loader.GetFileType());
|
||||
|
||||
out.append(fmt::format("{} ({})\n", kv.first, ver).c_str());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -116,7 +125,7 @@ void GameListWorker::AddInstalledTitlesToGameList() {
|
|||
QString::fromStdString(Loader::GetFileTypeString(loader->GetFileType())),
|
||||
program_id),
|
||||
new GameListItemCompat(compatibility),
|
||||
new GameListItem(FormatPatchNameVersions(patch)),
|
||||
new GameListItem(FormatPatchNameVersions(patch, *loader)),
|
||||
new GameListItem(
|
||||
QString::fromStdString(Loader::GetFileTypeString(loader->GetFileType()))),
|
||||
new GameListItemSize(file->GetSize()),
|
||||
|
@ -206,7 +215,8 @@ void GameListWorker::AddFstEntriesToGameList(const std::string& dir_path, unsign
|
|||
QString::fromStdString(Loader::GetFileTypeString(loader->GetFileType())),
|
||||
program_id),
|
||||
new GameListItemCompat(compatibility),
|
||||
new GameListItem(FormatPatchNameVersions(patch, loader->IsRomFSUpdatable())),
|
||||
new GameListItem(
|
||||
FormatPatchNameVersions(patch, *loader, loader->IsRomFSUpdatable())),
|
||||
new GameListItem(
|
||||
QString::fromStdString(Loader::GetFileTypeString(loader->GetFileType()))),
|
||||
new GameListItemSize(FileUtil::GetSize(physical_name)),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue