feat: report on unlinking progress

This commit is contained in:
Jan Laupetin
2025-10-14 23:20:56 +01:00
parent 9fa41ca0d3
commit c6e9cbedda
159 changed files with 686 additions and 802 deletions
+8 -13
View File
@@ -15,10 +15,10 @@ using namespace IW5;
namespace
{
const MenuList* GetParentMenuList(XAssetInfo<menuDef_t>* asset)
const MenuList* GetParentMenuList(const XAssetInfo<menuDef_t>& asset)
{
const auto* menu = asset->Asset();
const auto* gameAssetPool = dynamic_cast<GameAssetPoolIW5*>(asset->m_zone->m_pools.get());
const auto* menu = asset.Asset();
const auto* gameAssetPool = dynamic_cast<GameAssetPoolIW5*>(asset.m_zone->m_pools.get());
for (const auto* menuList : *gameAssetPool->m_menu_list)
{
const auto* menuListAsset = menuList->Asset();
@@ -33,32 +33,27 @@ namespace
return nullptr;
}
std::string GetPathForMenu(XAssetInfo<menuDef_t>* asset)
std::string GetPathForMenu(const XAssetInfo<menuDef_t>& asset)
{
const auto* list = GetParentMenuList(asset);
if (!list)
return std::format("ui_mp/{}.menu", asset->Asset()->window.name);
return std::format("ui_mp/{}.menu", asset.Asset()->window.name);
const fs::path p(list->name);
std::string parentPath;
if (p.has_parent_path())
parentPath = p.parent_path().string() + "/";
return std::format("{}{}.menu", parentPath, asset->Asset()->window.name);
return std::format("{}{}.menu", parentPath, asset.Asset()->window.name);
}
} // namespace
namespace menu
{
bool MenuDumperIW5::ShouldDump(XAssetInfo<menuDef_t>* asset)
void MenuDumperIW5::DumpAsset(AssetDumpingContext& context, const XAssetInfo<menuDef_t>& asset)
{
return true;
}
void MenuDumperIW5::DumpAsset(AssetDumpingContext& context, XAssetInfo<menuDef_t>* asset)
{
const auto* menu = asset->Asset();
const auto* menu = asset.Asset();
const auto menuFilePath = GetPathForMenu(asset);
if (ObjWriting::ShouldHandleAssetType(ASSET_TYPE_MENULIST))