mirror of
https://github.com/Laupetin/OpenAssetTools.git
synced 2026-02-14 19:33:02 +00:00
refactor: introduce subasset loading
This commit is contained in:
@@ -133,11 +133,6 @@ namespace
|
||||
|
||||
namespace font_icon
|
||||
{
|
||||
CsvDumperT6::CsvDumperT6(const AssetPool<AssetFontIcon::Type>& pool)
|
||||
: AbstractAssetDumper(pool)
|
||||
{
|
||||
}
|
||||
|
||||
void CsvDumperT6::DumpAsset(AssetDumpingContext& context, const XAssetInfo<AssetFontIcon::Type>& asset)
|
||||
{
|
||||
const auto assetFile = context.OpenAssetFile(asset.m_name);
|
||||
|
||||
@@ -7,9 +7,6 @@ namespace font_icon
|
||||
{
|
||||
class CsvDumperT6 final : public AbstractAssetDumper<T6::AssetFontIcon>
|
||||
{
|
||||
public:
|
||||
explicit CsvDumperT6(const AssetPool<T6::AssetFontIcon::Type>& pool);
|
||||
|
||||
protected:
|
||||
void DumpAsset(AssetDumpingContext& context, const XAssetInfo<T6::AssetFontIcon::Type>& asset) override;
|
||||
};
|
||||
|
||||
@@ -9,12 +9,12 @@ using namespace T6;
|
||||
|
||||
namespace font_icon
|
||||
{
|
||||
std::unique_ptr<IAssetDumper> CreateDumperT6(const AssetPool<AssetFontIcon::Type>& pool)
|
||||
std::unique_ptr<IAssetDumper> CreateDumperT6()
|
||||
{
|
||||
#ifdef DUMP_FONT_ICON_AS_CSV
|
||||
return std::make_unique<CsvDumperT6>(pool);
|
||||
return std::make_unique<CsvDumperT6>();
|
||||
#else
|
||||
return std::make_unique<JsonDumperT6>(pool);
|
||||
return std::make_unique<JsonDumperT6>();
|
||||
#endif
|
||||
}
|
||||
} // namespace font_icon
|
||||
|
||||
@@ -7,5 +7,5 @@
|
||||
|
||||
namespace font_icon
|
||||
{
|
||||
std::unique_ptr<IAssetDumper> CreateDumperT6(const AssetPool<T6::AssetFontIcon::Type>& pool);
|
||||
std::unique_ptr<IAssetDumper> CreateDumperT6();
|
||||
} // namespace font_icon
|
||||
|
||||
@@ -78,11 +78,6 @@ namespace
|
||||
|
||||
namespace font_icon
|
||||
{
|
||||
JsonDumperT6::JsonDumperT6(const AssetPool<AssetFontIcon::Type>& pool)
|
||||
: AbstractAssetDumper(pool)
|
||||
{
|
||||
}
|
||||
|
||||
void JsonDumperT6::DumpAsset(AssetDumpingContext& context, const XAssetInfo<AssetFontIcon::Type>& asset)
|
||||
{
|
||||
const auto assetFile = context.OpenAssetFile(GetJsonFileNameForAssetName(asset.m_name));
|
||||
|
||||
@@ -7,9 +7,6 @@ namespace font_icon
|
||||
{
|
||||
class JsonDumperT6 final : public AbstractAssetDumper<T6::AssetFontIcon>
|
||||
{
|
||||
public:
|
||||
explicit JsonDumperT6(const AssetPool<T6::AssetFontIcon::Type>& pool);
|
||||
|
||||
protected:
|
||||
void DumpAsset(AssetDumpingContext& context, const XAssetInfo<T6::AssetFontIcon::Type>& asset) override;
|
||||
};
|
||||
|
||||
@@ -79,8 +79,7 @@ namespace
|
||||
|
||||
namespace image
|
||||
{
|
||||
DumperT6::DumperT6(const AssetPool<AssetImage::Type>& pool)
|
||||
: AbstractAssetDumper(pool)
|
||||
DumperT6::DumperT6()
|
||||
{
|
||||
switch (ObjWriting::Configuration.ImageOutputFormat)
|
||||
{
|
||||
|
||||
@@ -11,7 +11,7 @@ namespace image
|
||||
class DumperT6 final : public AbstractAssetDumper<T6::AssetImage>
|
||||
{
|
||||
public:
|
||||
explicit DumperT6(const AssetPool<T6::AssetImage::Type>& pool);
|
||||
DumperT6();
|
||||
|
||||
protected:
|
||||
void DumpAsset(AssetDumpingContext& context, const XAssetInfo<T6::AssetImage::Type>& asset) override;
|
||||
|
||||
@@ -98,11 +98,6 @@ namespace
|
||||
|
||||
namespace leaderboard
|
||||
{
|
||||
JsonDumperT6::JsonDumperT6(const AssetPool<AssetLeaderboard::Type>& pool)
|
||||
: AbstractAssetDumper(pool)
|
||||
{
|
||||
}
|
||||
|
||||
void JsonDumperT6::DumpAsset(AssetDumpingContext& context, const XAssetInfo<AssetLeaderboard::Type>& asset)
|
||||
{
|
||||
const auto assetFile = context.OpenAssetFile(GetJsonFileNameForAsset(asset.m_name));
|
||||
|
||||
@@ -7,9 +7,6 @@ namespace leaderboard
|
||||
{
|
||||
class JsonDumperT6 final : public AbstractAssetDumper<T6::AssetLeaderboard>
|
||||
{
|
||||
public:
|
||||
explicit JsonDumperT6(const AssetPool<T6::AssetLeaderboard::Type>& pool);
|
||||
|
||||
protected:
|
||||
void DumpAsset(AssetDumpingContext& context, const XAssetInfo<T6::AssetLeaderboard::Type>& asset) override;
|
||||
};
|
||||
|
||||
@@ -5,20 +5,15 @@
|
||||
#include "Utils/Logging/Log.h"
|
||||
|
||||
#include <format>
|
||||
#include <iostream>
|
||||
|
||||
using namespace T6;
|
||||
|
||||
namespace localize
|
||||
{
|
||||
DumperT6::DumperT6(const AssetPool<AssetLocalize::Type>& pool)
|
||||
: AbstractSingleProgressAssetDumper(pool)
|
||||
{
|
||||
}
|
||||
|
||||
void DumperT6::Dump(AssetDumpingContext& context)
|
||||
{
|
||||
if (m_pool.m_asset_lookup.empty())
|
||||
auto localizeAssets = context.m_zone.m_pools.PoolAssets<AssetLocalize>();
|
||||
if (localizeAssets.empty())
|
||||
return;
|
||||
|
||||
const auto language = LocalizeCommon::GetNameOfLanguage(context.m_zone.m_language);
|
||||
@@ -35,7 +30,7 @@ namespace localize
|
||||
|
||||
stringFileDumper.SetNotes("");
|
||||
|
||||
for (const auto* localizeEntry : m_pool)
|
||||
for (const auto* localizeEntry : localizeAssets)
|
||||
{
|
||||
stringFileDumper.WriteLocalizeEntry(localizeEntry->m_name, localizeEntry->Asset()->value);
|
||||
}
|
||||
|
||||
@@ -8,8 +8,6 @@ namespace localize
|
||||
class DumperT6 final : public AbstractSingleProgressAssetDumper<T6::AssetLocalize>
|
||||
{
|
||||
public:
|
||||
explicit DumperT6(const AssetPool<T6::AssetLocalize::Type>& pool);
|
||||
|
||||
void Dump(AssetDumpingContext& context) override;
|
||||
};
|
||||
} // namespace localize
|
||||
|
||||
@@ -6,11 +6,6 @@ using namespace T6;
|
||||
|
||||
namespace map_ents
|
||||
{
|
||||
DumperT6::DumperT6(const AssetPool<AssetMapEnts::Type>& pool)
|
||||
: AbstractAssetDumper(pool)
|
||||
{
|
||||
}
|
||||
|
||||
void DumperT6::DumpAsset(AssetDumpingContext& context, const XAssetInfo<AssetMapEnts::Type>& asset)
|
||||
{
|
||||
const auto* mapEnts = asset.Asset();
|
||||
|
||||
@@ -7,9 +7,6 @@ namespace map_ents
|
||||
{
|
||||
class DumperT6 final : public AbstractAssetDumper<T6::AssetMapEnts>
|
||||
{
|
||||
public:
|
||||
explicit DumperT6(const AssetPool<T6::AssetMapEnts::Type>& pool);
|
||||
|
||||
protected:
|
||||
void DumpAsset(AssetDumpingContext& context, const XAssetInfo<T6::AssetMapEnts::Type>& asset) override;
|
||||
};
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
#include "MaterialConstantZoneStateT6.h"
|
||||
|
||||
#include "Game/T6/CommonT6.h"
|
||||
#include "Game/T6/GameAssetPoolT6.h"
|
||||
#include "Game/T6/GameT6.h"
|
||||
#include "ObjWriting.h"
|
||||
#include "Zone/ZoneRegistry.h"
|
||||
@@ -479,11 +478,7 @@ namespace T6
|
||||
{
|
||||
for (const auto* zone : ZoneRegistry::GetRegistryForGame(GameId::T6)->Zones())
|
||||
{
|
||||
const auto* t6AssetPools = dynamic_cast<const GameAssetPoolT6*>(zone->m_pools.get());
|
||||
if (!t6AssetPools)
|
||||
return;
|
||||
|
||||
for (const auto* techniqueSetInfo : *t6AssetPools->m_technique_set)
|
||||
for (const auto* techniqueSetInfo : zone->m_pools.PoolAssets<AssetTechniqueSet>())
|
||||
{
|
||||
const auto* techniqueSet = techniqueSetInfo->Asset();
|
||||
|
||||
|
||||
@@ -1,14 +1,12 @@
|
||||
#include "ObjWriterT6.h"
|
||||
|
||||
#include "FontIcon/FontIconDumperT6.h"
|
||||
#include "Game/T6/GameAssetPoolT6.h"
|
||||
#include "Game/T6/Material/MaterialJsonDumperT6.h"
|
||||
#include "Game/T6/XModel/XModelDumperT6.h"
|
||||
#include "Image/ImageDumperT6.h"
|
||||
#include "Leaderboard/LeaderboardJsonDumperT6.h"
|
||||
#include "Localize/LocalizeDumperT6.h"
|
||||
#include "Maps/MapEntsDumperT6.h"
|
||||
#include "ObjWriting.h"
|
||||
#include "PhysConstraints/PhysConstraintsInfoStringDumperT6.h"
|
||||
#include "PhysPreset/PhysPresetInfoStringDumperT6.h"
|
||||
#include "Qdb/QdbDumperT6.h"
|
||||
@@ -29,86 +27,54 @@
|
||||
|
||||
using namespace T6;
|
||||
|
||||
bool ObjWriter::DumpZone(AssetDumpingContext& context) const
|
||||
void ObjWriter::RegisterAssetDumpers(AssetDumpingContext& context)
|
||||
{
|
||||
#define REGISTER_DUMPER(dumperType, poolName) \
|
||||
if (assetPools->poolName && ObjWriting::ShouldHandleAssetType(dumperType::AssetType_t::EnumEntry)) \
|
||||
{ \
|
||||
dumpers.emplace_back(std::make_unique<dumperType>(*assetPools->poolName)); \
|
||||
}
|
||||
#define REGISTER_DUMPER_WITH_FACTORY(createDumper, poolName, asset) \
|
||||
if (assetPools->poolName && ObjWriting::ShouldHandleAssetType(asset::EnumEntry)) \
|
||||
{ \
|
||||
auto dumper = createDumper(*assetPools->poolName); \
|
||||
if (dumper) \
|
||||
dumpers.emplace_back(std::move(dumper)); \
|
||||
}
|
||||
|
||||
const auto* assetPools = dynamic_cast<GameAssetPoolT6*>(context.m_zone.m_pools.get());
|
||||
std::vector<std::unique_ptr<IAssetDumper>> dumpers;
|
||||
|
||||
REGISTER_DUMPER(phys_preset::InfoStringDumperT6, m_phys_preset)
|
||||
REGISTER_DUMPER(phys_constraints::InfoStringDumperT6, m_phys_constraints)
|
||||
RegisterAssetDumper(std::make_unique<phys_preset::InfoStringDumperT6>());
|
||||
RegisterAssetDumper(std::make_unique<phys_constraints::InfoStringDumperT6>());
|
||||
// REGISTER_DUMPER(AssetDumperDestructibleDef, m_destructible_def)
|
||||
// REGISTER_DUMPER(AssetDumperXAnimParts, m_xanim_parts)
|
||||
REGISTER_DUMPER(xmodel::DumperT6, m_xmodel)
|
||||
REGISTER_DUMPER(material::JsonDumperT6, m_material)
|
||||
REGISTER_DUMPER(techset::DumperT6, m_technique_set)
|
||||
REGISTER_DUMPER(image::DumperT6, m_image)
|
||||
REGISTER_DUMPER(sound::SndBankDumperT6, m_sound_bank)
|
||||
RegisterAssetDumper(std::make_unique<xmodel::DumperT6>());
|
||||
RegisterAssetDumper(std::make_unique<material::JsonDumperT6>());
|
||||
RegisterAssetDumper(std::make_unique<techset::DumperT6>());
|
||||
RegisterAssetDumper(std::make_unique<image::DumperT6>());
|
||||
RegisterAssetDumper(std::make_unique<sound::SndBankDumperT6>());
|
||||
// REGISTER_DUMPER(AssetDumperSndPatch, m_sound_patch)
|
||||
// REGISTER_DUMPER(AssetDumperClipMap, m_clip_map)
|
||||
// REGISTER_DUMPER(AssetDumperComWorld, m_com_world)
|
||||
// REGISTER_DUMPER(AssetDumperGameWorldSp, m_game_world_sp)
|
||||
// REGISTER_DUMPER(AssetDumperGameWorldMp, m_game_world_mp)
|
||||
REGISTER_DUMPER(map_ents::DumperT6, m_map_ents)
|
||||
RegisterAssetDumper(std::make_unique<map_ents::DumperT6>());
|
||||
// REGISTER_DUMPER(AssetDumperGfxWorld, m_gfx_world)
|
||||
// REGISTER_DUMPER(AssetDumperGfxLightDef, m_gfx_light_def)
|
||||
// REGISTER_DUMPER(AssetDumperFont, m_font)
|
||||
REGISTER_DUMPER_WITH_FACTORY(font_icon::CreateDumperT6, m_font_icon, AssetFontIcon)
|
||||
RegisterAssetDumper(font_icon::CreateDumperT6());
|
||||
// REGISTER_DUMPER(AssetDumperMenuList, m_menu_list)
|
||||
// REGISTER_DUMPER(AssetDumperMenuDef, m_menu_def)
|
||||
REGISTER_DUMPER(localize::DumperT6, m_localize)
|
||||
REGISTER_DUMPER(weapon::DumperT6, m_weapon)
|
||||
REGISTER_DUMPER(attachment::DumperT6, m_attachment)
|
||||
REGISTER_DUMPER(attachment_unique::DumperT6, m_attachment_unique)
|
||||
REGISTER_DUMPER(camo::JsonDumperT6, m_camo)
|
||||
REGISTER_DUMPER(sound::SndDriverGlobalsDumperT6, m_snd_driver_globals)
|
||||
RegisterAssetDumper(std::make_unique<localize::DumperT6>());
|
||||
RegisterAssetDumper(std::make_unique<weapon::DumperT6>());
|
||||
RegisterAssetDumper(std::make_unique<attachment::DumperT6>());
|
||||
RegisterAssetDumper(std::make_unique<attachment_unique::DumperT6>());
|
||||
RegisterAssetDumper(std::make_unique<camo::JsonDumperT6>());
|
||||
RegisterAssetDumper(std::make_unique<sound::SndDriverGlobalsDumperT6>());
|
||||
// REGISTER_DUMPER(AssetDumperFxEffectDef, m_fx)
|
||||
// REGISTER_DUMPER(AssetDumperFxImpactTable, m_fx_impact_table)
|
||||
REGISTER_DUMPER(raw_file::DumperT6, m_raw_file)
|
||||
REGISTER_DUMPER(string_table::DumperT6, m_string_table)
|
||||
REGISTER_DUMPER(leaderboard::JsonDumperT6, m_leaderboard)
|
||||
RegisterAssetDumper(std::make_unique<raw_file::DumperT6>());
|
||||
RegisterAssetDumper(std::make_unique<string_table::DumperT6>());
|
||||
RegisterAssetDumper(std::make_unique<leaderboard::JsonDumperT6>());
|
||||
// REGISTER_DUMPER(AssetDumperXGlobals, m_xglobals)
|
||||
// REGISTER_DUMPER(AssetDumperDDLRoot, m_ddl)
|
||||
// REGISTER_DUMPER(AssetDumperGlasses, m_glasses)
|
||||
// REGISTER_DUMPER(AssetDumperEmblemSet, m_emblem_set)
|
||||
REGISTER_DUMPER(script::DumperT6, m_script)
|
||||
RegisterAssetDumper(std::make_unique<script::DumperT6>());
|
||||
// REGISTER_DUMPER(AssetDumperKeyValuePairs, m_key_value_pairs)
|
||||
REGISTER_DUMPER(vehicle::DumperT6, m_vehicle)
|
||||
RegisterAssetDumper(std::make_unique<vehicle::DumperT6>());
|
||||
// REGISTER_DUMPER(AssetDumperMemoryBlock, m_memory_block)
|
||||
// REGISTER_DUMPER(AssetDumperAddonMapEnts, m_addon_map_ents)
|
||||
REGISTER_DUMPER(tracer::DumperT6, m_tracer)
|
||||
RegisterAssetDumper(std::make_unique<tracer::DumperT6>());
|
||||
// REGISTER_DUMPER(AssetDumperSkinnedVertsDef, m_skinned_verts)
|
||||
REGISTER_DUMPER(qdb::DumperT6, m_qdb)
|
||||
REGISTER_DUMPER(slug::DumperT6, m_slug)
|
||||
RegisterAssetDumper(std::make_unique<qdb::DumperT6>());
|
||||
RegisterAssetDumper(std::make_unique<slug::DumperT6>());
|
||||
// REGISTER_DUMPER(AssetDumperFootstepTableDef, m_footstep_table)
|
||||
// REGISTER_DUMPER(AssetDumperFootstepFXTableDef, m_footstep_fx_table)
|
||||
REGISTER_DUMPER(z_barrier::DumperT6, m_zbarrier)
|
||||
|
||||
if (context.ShouldTrackProgress())
|
||||
{
|
||||
size_t totalProgress = 0uz;
|
||||
for (const auto& dumper : dumpers)
|
||||
totalProgress += dumper->GetProgressTotalCount();
|
||||
|
||||
context.SetTotalProgress(totalProgress);
|
||||
}
|
||||
|
||||
for (const auto& dumper : dumpers)
|
||||
dumper->Dump(context);
|
||||
|
||||
return true;
|
||||
|
||||
#undef REGISTER_DUMPER
|
||||
RegisterAssetDumper(std::make_unique<z_barrier::DumperT6>());
|
||||
}
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
#pragma once
|
||||
#include "IObjWriter.h"
|
||||
|
||||
#include "ObjWriter.h"
|
||||
|
||||
namespace T6
|
||||
{
|
||||
class ObjWriter final : public IObjWriter
|
||||
{
|
||||
public:
|
||||
bool DumpZone(AssetDumpingContext& context) const override;
|
||||
void RegisterAssetDumpers(AssetDumpingContext& context) override;
|
||||
};
|
||||
} // namespace T6
|
||||
|
||||
@@ -61,11 +61,6 @@ namespace
|
||||
|
||||
namespace phys_constraints
|
||||
{
|
||||
InfoStringDumperT6::InfoStringDumperT6(const AssetPool<AssetPhysConstraints::Type>& pool)
|
||||
: AbstractAssetDumper(pool)
|
||||
{
|
||||
}
|
||||
|
||||
void InfoStringDumperT6::DumpAsset(AssetDumpingContext& context, const XAssetInfo<AssetPhysConstraints::Type>& asset)
|
||||
{
|
||||
// Only dump raw when no gdt available
|
||||
|
||||
@@ -7,9 +7,6 @@ namespace phys_constraints
|
||||
{
|
||||
class InfoStringDumperT6 final : public AbstractAssetDumper<T6::AssetPhysConstraints>
|
||||
{
|
||||
public:
|
||||
explicit InfoStringDumperT6(const AssetPool<T6::AssetPhysConstraints::Type>& pool);
|
||||
|
||||
protected:
|
||||
void DumpAsset(AssetDumpingContext& context, const XAssetInfo<T6::AssetPhysConstraints::Type>& asset) override;
|
||||
};
|
||||
|
||||
@@ -82,11 +82,6 @@ namespace
|
||||
|
||||
namespace phys_preset
|
||||
{
|
||||
InfoStringDumperT6::InfoStringDumperT6(const AssetPool<AssetPhysPreset::Type>& pool)
|
||||
: AbstractAssetDumper(pool)
|
||||
{
|
||||
}
|
||||
|
||||
void InfoStringDumperT6::DumpAsset(AssetDumpingContext& context, const XAssetInfo<AssetPhysPreset::Type>& asset)
|
||||
{
|
||||
// Only dump raw when no gdt available
|
||||
|
||||
@@ -7,9 +7,6 @@ namespace phys_preset
|
||||
{
|
||||
class InfoStringDumperT6 final : public AbstractAssetDumper<T6::AssetPhysPreset>
|
||||
{
|
||||
public:
|
||||
explicit InfoStringDumperT6(const AssetPool<T6::AssetPhysPreset::Type>& pool);
|
||||
|
||||
protected:
|
||||
void DumpAsset(AssetDumpingContext& context, const XAssetInfo<T6::AssetPhysPreset::Type>& asset) override;
|
||||
};
|
||||
|
||||
@@ -4,11 +4,6 @@ using namespace T6;
|
||||
|
||||
namespace qdb
|
||||
{
|
||||
DumperT6::DumperT6(const AssetPool<AssetQdb::Type>& pool)
|
||||
: AbstractAssetDumper(pool)
|
||||
{
|
||||
}
|
||||
|
||||
void DumperT6::DumpAsset(AssetDumpingContext& context, const XAssetInfo<AssetQdb::Type>& asset)
|
||||
{
|
||||
const auto* qdb = asset.Asset();
|
||||
|
||||
@@ -7,9 +7,6 @@ namespace qdb
|
||||
{
|
||||
class DumperT6 final : public AbstractAssetDumper<T6::AssetQdb>
|
||||
{
|
||||
public:
|
||||
explicit DumperT6(const AssetPool<T6::AssetQdb::Type>& pool);
|
||||
|
||||
protected:
|
||||
void DumpAsset(AssetDumpingContext& context, const XAssetInfo<T6::AssetQdb::Type>& asset) override;
|
||||
};
|
||||
|
||||
@@ -77,11 +77,6 @@ namespace
|
||||
|
||||
namespace raw_file
|
||||
{
|
||||
DumperT6::DumperT6(const AssetPool<AssetRawFile::Type>& pool)
|
||||
: AbstractAssetDumper(pool)
|
||||
{
|
||||
}
|
||||
|
||||
void DumperT6::DumpAsset(AssetDumpingContext& context, const XAssetInfo<AssetRawFile::Type>& asset)
|
||||
{
|
||||
const auto* rawFile = asset.Asset();
|
||||
|
||||
@@ -7,9 +7,6 @@ namespace raw_file
|
||||
{
|
||||
class DumperT6 final : public AbstractAssetDumper<T6::AssetRawFile>
|
||||
{
|
||||
public:
|
||||
explicit DumperT6(const AssetPool<T6::AssetRawFile::Type>& pool);
|
||||
|
||||
protected:
|
||||
void DumpAsset(AssetDumpingContext& context, const XAssetInfo<T6::AssetRawFile::Type>& asset) override;
|
||||
};
|
||||
|
||||
@@ -4,11 +4,6 @@ using namespace T6;
|
||||
|
||||
namespace script
|
||||
{
|
||||
DumperT6::DumperT6(const AssetPool<AssetScript::Type>& pool)
|
||||
: AbstractAssetDumper(pool)
|
||||
{
|
||||
}
|
||||
|
||||
void DumperT6::DumpAsset(AssetDumpingContext& context, const XAssetInfo<AssetScript::Type>& asset)
|
||||
{
|
||||
const auto* scriptParseTree = asset.Asset();
|
||||
|
||||
@@ -7,9 +7,6 @@ namespace script
|
||||
{
|
||||
class DumperT6 final : public AbstractAssetDumper<T6::AssetScript>
|
||||
{
|
||||
public:
|
||||
explicit DumperT6(const AssetPool<T6::AssetScript::Type>& pool);
|
||||
|
||||
protected:
|
||||
void DumpAsset(AssetDumpingContext& context, const XAssetInfo<T6::AssetScript::Type>& asset) override;
|
||||
};
|
||||
|
||||
@@ -4,11 +4,6 @@ using namespace T6;
|
||||
|
||||
namespace slug
|
||||
{
|
||||
DumperT6::DumperT6(const AssetPool<AssetSlug::Type>& pool)
|
||||
: AbstractAssetDumper(pool)
|
||||
{
|
||||
}
|
||||
|
||||
void DumperT6::DumpAsset(AssetDumpingContext& context, const XAssetInfo<AssetSlug::Type>& asset)
|
||||
{
|
||||
const auto* slug = asset.Asset();
|
||||
|
||||
@@ -7,9 +7,6 @@ namespace slug
|
||||
{
|
||||
class DumperT6 final : public AbstractAssetDumper<T6::AssetSlug>
|
||||
{
|
||||
public:
|
||||
explicit DumperT6(const AssetPool<T6::AssetSlug::Type>& pool);
|
||||
|
||||
protected:
|
||||
void DumpAsset(AssetDumpingContext& context, const XAssetInfo<T6::AssetSlug::Type>& asset) override;
|
||||
};
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
|
||||
#include "Csv/CsvStream.h"
|
||||
#include "Game/T6/CommonT6.h"
|
||||
#include "Game/T6/GameAssetPoolT6.h"
|
||||
#include "Game/T6/GameT6.h"
|
||||
#include "Game/T6/SoundConstantsT6.h"
|
||||
#include "ObjContainer/SoundBank/SoundBank.h"
|
||||
@@ -205,7 +204,7 @@ namespace
|
||||
{
|
||||
for (const auto& zone : ZoneRegistry::GetRegistryForGame(GameId::T6)->Zones())
|
||||
{
|
||||
auto& sndBankPool = *dynamic_cast<GameAssetPoolT6*>(zone->m_pools.get())->m_sound_bank;
|
||||
auto sndBankPool = zone->m_pools.PoolAssets<AssetSoundBank>();
|
||||
for (auto* entry : sndBankPool)
|
||||
{
|
||||
const auto& sndBank = *entry->Asset();
|
||||
@@ -905,11 +904,6 @@ namespace
|
||||
|
||||
namespace sound
|
||||
{
|
||||
SndBankDumperT6::SndBankDumperT6(const AssetPool<AssetSoundBank::Type>& pool)
|
||||
: AbstractAssetDumper(pool)
|
||||
{
|
||||
}
|
||||
|
||||
void SndBankDumperT6::Dump(AssetDumpingContext& context)
|
||||
{
|
||||
auto* hashes = context.GetZoneAssetDumperState<LoadedSoundBankHashes>();
|
||||
|
||||
@@ -8,10 +8,9 @@ namespace sound
|
||||
class SndBankDumperT6 final : public AbstractAssetDumper<T6::AssetSoundBank>
|
||||
{
|
||||
public:
|
||||
explicit SndBankDumperT6(const AssetPool<T6::AssetSoundBank::Type>& pool);
|
||||
void Dump(AssetDumpingContext& context) override;
|
||||
|
||||
protected:
|
||||
void DumpAsset(AssetDumpingContext& context, const XAssetInfo<Asset<9, T6::SndBank>::Type>& asset) override;
|
||||
void DumpAsset(AssetDumpingContext& context, const XAssetInfo<T6::AssetSoundBank::Type>& asset) override;
|
||||
};
|
||||
} // namespace sound
|
||||
|
||||
@@ -108,15 +108,18 @@ namespace
|
||||
{
|
||||
}
|
||||
|
||||
void DumpPool(const AssetPool<SndDriverGlobals>& pool)
|
||||
void DumpSndDriverGlobals(const XAssetInfo<SndDriverGlobals>* sndDriverGlobalsInfo)
|
||||
{
|
||||
for (const auto* assetInfo : pool)
|
||||
{
|
||||
if (!assetInfo->m_name.empty() && assetInfo->m_name[0] == ',')
|
||||
continue;
|
||||
const auto* sndDriverGlobals = sndDriverGlobalsInfo->Asset();
|
||||
|
||||
DumpSndDriverGlobals(assetInfo);
|
||||
}
|
||||
DumpSndVolumesGroups(sndDriverGlobals->groups, sndDriverGlobals->groupCount);
|
||||
DumpSndCurves(sndDriverGlobals->curves, sndDriverGlobals->curveCount);
|
||||
DumpSndPans(sndDriverGlobals->pans, sndDriverGlobals->panCount);
|
||||
DumpSndDuckGroups(sndDriverGlobals->duckGroups, sndDriverGlobals->duckGroupCount);
|
||||
// DumpSndContexts(sndDriverGlobals->contexts, sndDriverGlobals->contextCount);
|
||||
DumpSndMasters(sndDriverGlobals->masters, sndDriverGlobals->masterCount);
|
||||
DumpSndSidechainDucks(sndDriverGlobals->voiceDucks, sndDriverGlobals->voiceDuckCount);
|
||||
DumpSndFutz(sndDriverGlobals->futzes, sndDriverGlobals->futzCount);
|
||||
}
|
||||
|
||||
private:
|
||||
@@ -365,36 +368,15 @@ namespace
|
||||
}
|
||||
}
|
||||
|
||||
void DumpSndDriverGlobals(const XAssetInfo<SndDriverGlobals>* sndDriverGlobalsInfo)
|
||||
{
|
||||
const auto* sndDriverGlobals = sndDriverGlobalsInfo->Asset();
|
||||
|
||||
DumpSndVolumesGroups(sndDriverGlobals->groups, sndDriverGlobals->groupCount);
|
||||
DumpSndCurves(sndDriverGlobals->curves, sndDriverGlobals->curveCount);
|
||||
DumpSndPans(sndDriverGlobals->pans, sndDriverGlobals->panCount);
|
||||
DumpSndDuckGroups(sndDriverGlobals->duckGroups, sndDriverGlobals->duckGroupCount);
|
||||
// DumpSndContexts(sndDriverGlobals->contexts, sndDriverGlobals->contextCount);
|
||||
DumpSndMasters(sndDriverGlobals->masters, sndDriverGlobals->masterCount);
|
||||
DumpSndSidechainDucks(sndDriverGlobals->voiceDucks, sndDriverGlobals->voiceDuckCount);
|
||||
DumpSndFutz(sndDriverGlobals->futzes, sndDriverGlobals->futzCount);
|
||||
}
|
||||
|
||||
AssetDumpingContext& m_context;
|
||||
};
|
||||
} // namespace
|
||||
|
||||
namespace sound
|
||||
{
|
||||
SndDriverGlobalsDumperT6::SndDriverGlobalsDumperT6(const AssetPool<AssetSoundDriverGlobals::Type>& pool)
|
||||
: AbstractSingleProgressAssetDumper(pool)
|
||||
{
|
||||
}
|
||||
|
||||
void SndDriverGlobalsDumperT6::Dump(AssetDumpingContext& context)
|
||||
void SndDriverGlobalsDumperT6::DumpAsset(AssetDumpingContext& context, const XAssetInfo<AssetSoundDriverGlobals::Type>& asset)
|
||||
{
|
||||
Internal internal(context);
|
||||
internal.DumpPool(m_pool);
|
||||
|
||||
context.IncrementProgress();
|
||||
internal.DumpSndDriverGlobals(&asset);
|
||||
}
|
||||
} // namespace sound
|
||||
|
||||
@@ -5,11 +5,9 @@
|
||||
|
||||
namespace sound
|
||||
{
|
||||
class SndDriverGlobalsDumperT6 final : public AbstractSingleProgressAssetDumper<T6::AssetSoundDriverGlobals>
|
||||
class SndDriverGlobalsDumperT6 final : public AbstractAssetDumper<T6::AssetSoundDriverGlobals>
|
||||
{
|
||||
public:
|
||||
explicit SndDriverGlobalsDumperT6(const AssetPool<T6::AssetSoundDriverGlobals::Type>& pool);
|
||||
|
||||
void Dump(AssetDumpingContext& context) override;
|
||||
void DumpAsset(AssetDumpingContext& context, const XAssetInfo<T6::AssetSoundDriverGlobals::Type>& asset) override;
|
||||
};
|
||||
} // namespace sound
|
||||
|
||||
@@ -6,11 +6,6 @@ using namespace T6;
|
||||
|
||||
namespace string_table
|
||||
{
|
||||
DumperT6::DumperT6(const AssetPool<AssetStringTable::Type>& pool)
|
||||
: AbstractAssetDumper(pool)
|
||||
{
|
||||
}
|
||||
|
||||
void DumperT6::DumpAsset(AssetDumpingContext& context, const XAssetInfo<AssetStringTable::Type>& asset)
|
||||
{
|
||||
const auto* stringTable = asset.Asset();
|
||||
|
||||
@@ -7,9 +7,6 @@ namespace string_table
|
||||
{
|
||||
class DumperT6 final : public AbstractAssetDumper<T6::AssetStringTable>
|
||||
{
|
||||
public:
|
||||
explicit DumperT6(const AssetPool<T6::AssetStringTable::Type>& pool);
|
||||
|
||||
protected:
|
||||
void DumpAsset(AssetDumpingContext& context, const XAssetInfo<T6::AssetStringTable::Type>& asset) override;
|
||||
};
|
||||
|
||||
@@ -329,11 +329,6 @@ namespace
|
||||
|
||||
namespace techset
|
||||
{
|
||||
DumperT6::DumperT6(const AssetPool<AssetTechniqueSet::Type>& pool)
|
||||
: AbstractAssetDumper(pool)
|
||||
{
|
||||
}
|
||||
|
||||
void DumperT6::Dump(AssetDumpingContext& context)
|
||||
{
|
||||
context.GetZoneAssetDumperState<MaterialConstantZoneState>()->EnsureInitialized();
|
||||
|
||||
@@ -8,8 +8,6 @@ namespace techset
|
||||
class DumperT6 final : public AbstractAssetDumper<T6::AssetTechniqueSet>
|
||||
{
|
||||
public:
|
||||
explicit DumperT6(const AssetPool<T6::AssetTechniqueSet::Type>& pool);
|
||||
|
||||
void Dump(AssetDumpingContext& context) override;
|
||||
|
||||
protected:
|
||||
|
||||
@@ -60,11 +60,6 @@ namespace
|
||||
|
||||
namespace tracer
|
||||
{
|
||||
DumperT6::DumperT6(const AssetPool<AssetTracer::Type>& pool)
|
||||
: AbstractAssetDumper(pool)
|
||||
{
|
||||
}
|
||||
|
||||
void DumperT6::DumpAsset(AssetDumpingContext& context, const XAssetInfo<AssetTracer::Type>& asset)
|
||||
{
|
||||
// Only dump raw when no gdt available
|
||||
|
||||
@@ -7,9 +7,6 @@ namespace tracer
|
||||
{
|
||||
class DumperT6 final : public AbstractAssetDumper<T6::AssetTracer>
|
||||
{
|
||||
public:
|
||||
explicit DumperT6(const AssetPool<T6::AssetTracer::Type>& pool);
|
||||
|
||||
protected:
|
||||
void DumpAsset(AssetDumpingContext& context, const XAssetInfo<T6::AssetTracer::Type>& asset) override;
|
||||
};
|
||||
|
||||
@@ -111,11 +111,6 @@ namespace
|
||||
|
||||
namespace vehicle
|
||||
{
|
||||
DumperT6::DumperT6(const AssetPool<AssetVehicle::Type>& pool)
|
||||
: AbstractAssetDumper(pool)
|
||||
{
|
||||
}
|
||||
|
||||
void DumperT6::DumpAsset(AssetDumpingContext& context, const XAssetInfo<AssetVehicle::Type>& asset)
|
||||
{
|
||||
// Only dump raw when no gdt available
|
||||
|
||||
@@ -7,9 +7,6 @@ namespace vehicle
|
||||
{
|
||||
class DumperT6 final : public AbstractAssetDumper<T6::AssetVehicle>
|
||||
{
|
||||
public:
|
||||
explicit DumperT6(const AssetPool<T6::AssetVehicle::Type>& pool);
|
||||
|
||||
protected:
|
||||
void DumpAsset(AssetDumpingContext& context, const XAssetInfo<T6::AssetVehicle::Type>& asset) override;
|
||||
};
|
||||
|
||||
@@ -67,11 +67,6 @@ namespace
|
||||
|
||||
namespace attachment
|
||||
{
|
||||
DumperT6::DumperT6(const AssetPool<AssetAttachment::Type>& pool)
|
||||
: AbstractAssetDumper(pool)
|
||||
{
|
||||
}
|
||||
|
||||
void DumperT6::DumpAsset(AssetDumpingContext& context, const XAssetInfo<AssetAttachment::Type>& asset)
|
||||
{
|
||||
// Only dump raw when no gdt available
|
||||
|
||||
@@ -7,9 +7,6 @@ namespace attachment
|
||||
{
|
||||
class DumperT6 final : public AbstractAssetDumper<T6::AssetAttachment>
|
||||
{
|
||||
public:
|
||||
explicit DumperT6(const AssetPool<T6::AssetAttachment::Type>& pool);
|
||||
|
||||
protected:
|
||||
void DumpAsset(AssetDumpingContext& context, const XAssetInfo<T6::AssetAttachment::Type>& asset) override;
|
||||
};
|
||||
|
||||
@@ -131,11 +131,6 @@ namespace
|
||||
|
||||
namespace attachment_unique
|
||||
{
|
||||
DumperT6::DumperT6(const AssetPool<AssetAttachmentUnique::Type>& pool)
|
||||
: AbstractAssetDumper(pool)
|
||||
{
|
||||
}
|
||||
|
||||
void DumperT6::DumpAsset(AssetDumpingContext& context, const XAssetInfo<AssetAttachmentUnique::Type>& asset)
|
||||
{
|
||||
// Only dump raw when no gdt available
|
||||
|
||||
@@ -7,9 +7,6 @@ namespace attachment_unique
|
||||
{
|
||||
class DumperT6 final : public AbstractAssetDumper<T6::AssetAttachmentUnique>
|
||||
{
|
||||
public:
|
||||
explicit DumperT6(const AssetPool<T6::AssetAttachmentUnique::Type>& pool);
|
||||
|
||||
protected:
|
||||
void DumpAsset(AssetDumpingContext& context, const XAssetInfo<T6::AssetAttachmentUnique::Type>& asset) override;
|
||||
};
|
||||
|
||||
@@ -104,11 +104,6 @@ namespace
|
||||
|
||||
namespace camo
|
||||
{
|
||||
JsonDumperT6::JsonDumperT6(const AssetPool<AssetWeaponCamo::Type>& pool)
|
||||
: AbstractAssetDumper(pool)
|
||||
{
|
||||
}
|
||||
|
||||
void JsonDumperT6::DumpAsset(AssetDumpingContext& context, const XAssetInfo<AssetWeaponCamo::Type>& asset)
|
||||
{
|
||||
const auto fileName = GetJsonFileNameForAssetName(asset.m_name);
|
||||
|
||||
@@ -7,9 +7,6 @@ namespace camo
|
||||
{
|
||||
class JsonDumperT6 final : public AbstractAssetDumper<T6::AssetWeaponCamo>
|
||||
{
|
||||
public:
|
||||
explicit JsonDumperT6(const AssetPool<T6::AssetWeaponCamo::Type>& pool);
|
||||
|
||||
protected:
|
||||
void DumpAsset(AssetDumpingContext& context, const XAssetInfo<T6::AssetWeaponCamo::Type>& asset) override;
|
||||
};
|
||||
|
||||
@@ -461,11 +461,6 @@ namespace
|
||||
|
||||
namespace weapon
|
||||
{
|
||||
DumperT6::DumperT6(const AssetPool<AssetWeapon::Type>& pool)
|
||||
: AbstractAssetDumper(pool)
|
||||
{
|
||||
}
|
||||
|
||||
void DumperT6::DumpAsset(AssetDumpingContext& context, const XAssetInfo<AssetWeapon::Type>& asset)
|
||||
{
|
||||
// Only dump raw when no gdt available
|
||||
|
||||
@@ -7,9 +7,6 @@ namespace weapon
|
||||
{
|
||||
class DumperT6 final : public AbstractAssetDumper<T6::AssetWeapon>
|
||||
{
|
||||
public:
|
||||
explicit DumperT6(const AssetPool<T6::AssetWeapon::Type>& pool);
|
||||
|
||||
protected:
|
||||
void DumpAsset(AssetDumpingContext& context, const XAssetInfo<T6::AssetWeapon::Type>& asset) override;
|
||||
};
|
||||
|
||||
@@ -50,11 +50,6 @@ namespace
|
||||
|
||||
namespace z_barrier
|
||||
{
|
||||
DumperT6::DumperT6(const AssetPool<AssetZBarrier::Type>& pool)
|
||||
: AbstractAssetDumper(pool)
|
||||
{
|
||||
}
|
||||
|
||||
void DumperT6::DumpAsset(AssetDumpingContext& context, const XAssetInfo<AssetZBarrier::Type>& asset)
|
||||
{
|
||||
// Only dump raw when no gdt available
|
||||
|
||||
@@ -7,9 +7,6 @@ namespace z_barrier
|
||||
{
|
||||
class DumperT6 final : public AbstractAssetDumper<T6::AssetZBarrier>
|
||||
{
|
||||
public:
|
||||
explicit DumperT6(const AssetPool<T6::AssetZBarrier::Type>& pool);
|
||||
|
||||
protected:
|
||||
void DumpAsset(AssetDumpingContext& context, const XAssetInfo<T6::AssetZBarrier::Type>& asset) override;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user