2
0
mirror of https://github.com/Laupetin/OpenAssetTools.git synced 2025-10-26 16:25:51 +00:00

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

View File

@@ -395,19 +395,14 @@ namespace
namespace attachment
{
bool JsonDumperIW5::ShouldDump(XAssetInfo<WeaponAttachment>* asset)
void JsonDumperIW5::DumpAsset(AssetDumpingContext& context, const XAssetInfo<WeaponAttachment>& asset)
{
return true;
}
void JsonDumperIW5::DumpAsset(AssetDumpingContext& context, XAssetInfo<WeaponAttachment>* asset)
{
const auto assetFile = context.OpenAssetFile(GetJsonFileNameForAssetName(asset->m_name));
const auto assetFile = context.OpenAssetFile(GetJsonFileNameForAssetName(asset.m_name));
if (!assetFile)
return;
const JsonDumperImpl dumper(context, *assetFile);
dumper.Dump(asset->Asset());
dumper.Dump(asset.Asset());
}
} // namespace attachment

View File

@@ -8,7 +8,6 @@ namespace attachment
class JsonDumperIW5 final : public AbstractAssetDumper<IW5::WeaponAttachment>
{
protected:
bool ShouldDump(XAssetInfo<IW5::WeaponAttachment>* asset) override;
void DumpAsset(AssetDumpingContext& context, XAssetInfo<IW5::WeaponAttachment>* asset) override;
void DumpAsset(AssetDumpingContext& context, const XAssetInfo<IW5::WeaponAttachment>& asset) override;
};
} // namespace attachment

View File

@@ -681,31 +681,31 @@ namespace
}
}
InfoString CreateInfoString(XAssetInfo<WeaponCompleteDef>* asset)
InfoString CreateInfoString(const XAssetInfo<WeaponCompleteDef>& asset)
{
const auto fullDef = std::make_unique<WeaponFullDef>();
memset(fullDef.get(), 0, sizeof(WeaponFullDef));
CopyToFullDef(asset->Asset(), fullDef.get());
CopyToFullDef(asset.Asset(), fullDef.get());
InfoStringFromWeaponConverter converter(fullDef.get(),
weapon_fields,
std::extent_v<decltype(weapon_fields)>,
[asset](const scr_string_t scrStr) -> std::string
{
assert(scrStr < asset->m_zone->m_script_strings.Count());
if (scrStr >= asset->m_zone->m_script_strings.Count())
assert(scrStr < asset.m_zone->m_script_strings.Count());
if (scrStr >= asset.m_zone->m_script_strings.Count())
return "";
return asset->m_zone->m_script_strings[scrStr];
return asset.m_zone->m_script_strings[scrStr];
});
return converter.Convert();
}
void DumpAccuracyGraphs(AssetDumpingContext& context, XAssetInfo<WeaponCompleteDef>* asset)
void DumpAccuracyGraphs(AssetDumpingContext& context, const XAssetInfo<WeaponCompleteDef>& asset)
{
auto* accuracyGraphWriter = context.GetZoneAssetDumperState<AccuracyGraphWriter>();
const auto weapon = asset->Asset();
const auto weapon = asset.Asset();
const auto* weapDef = weapon->weapDef;
if (!weapDef)
@@ -733,12 +733,7 @@ namespace
namespace weapon
{
bool DumperIW5::ShouldDump(XAssetInfo<WeaponCompleteDef>* asset)
{
return true;
}
void DumperIW5::DumpAsset(AssetDumpingContext& context, XAssetInfo<WeaponCompleteDef>* asset)
void DumperIW5::DumpAsset(AssetDumpingContext& context, const XAssetInfo<WeaponCompleteDef>& asset)
{
// TODO: only dump infostring fields when non-default
@@ -746,13 +741,13 @@ namespace weapon
if (context.m_gdt)
{
const auto infoString = CreateInfoString(asset);
GdtEntry gdtEntry(asset->m_name, ObjConstants::GDF_FILENAME_WEAPON);
GdtEntry gdtEntry(asset.m_name, ObjConstants::GDF_FILENAME_WEAPON);
infoString.ToGdtProperties(ObjConstants::INFO_STRING_PREFIX_WEAPON, gdtEntry);
context.m_gdt->WriteEntry(gdtEntry);
}
else
{
const auto assetFile = context.OpenAssetFile(GetFileNameForAssetName(asset->m_name));
const auto assetFile = context.OpenAssetFile(GetFileNameForAssetName(asset.m_name));
if (!assetFile)
return;

View File

@@ -9,7 +9,6 @@ namespace weapon
class DumperIW5 final : public AbstractAssetDumper<IW5::WeaponCompleteDef>
{
protected:
bool ShouldDump(XAssetInfo<IW5::WeaponCompleteDef>* asset) override;
void DumpAsset(AssetDumpingContext& context, XAssetInfo<IW5::WeaponCompleteDef>* asset) override;
void DumpAsset(AssetDumpingContext& context, const XAssetInfo<IW5::WeaponCompleteDef>& asset) override;
};
} // namespace weapon