From 4f585c6aa79ef7abd237ed5e6d1a9cceb94fe51f Mon Sep 17 00:00:00 2001 From: Jan Date: Tue, 24 Dec 2024 10:00:52 +0100 Subject: [PATCH] chore: add generic default asset constructors for all games --- src/Common/Game/IAsset.h | 24 +++++-- src/Common/Game/IW4/IW4.h | 38 ++++++++++ src/Common/Game/IW5/IW5.h | 41 +++++++++++ src/Common/Game/T5/T5.h | 35 +++++++++- src/Common/Game/T5/T5_Assets.h | 2 +- src/Common/Game/T6/T6.h | 50 ++++++++++++++ src/ObjLoading/Game/IW3/ObjLoaderIW3.cpp | 5 +- src/ObjLoading/Game/IW4/ObjLoaderIW4.cpp | 80 ++++++++++----------- src/ObjLoading/Game/IW5/ObjLoaderIW5.cpp | 87 ++++++++++++----------- src/ObjLoading/Game/T5/ObjLoaderT5.cpp | 73 ++++++++++---------- src/ObjLoading/Game/T6/ObjLoaderT6.cpp | 88 ++++++++++++++---------- 11 files changed, 364 insertions(+), 159 deletions(-) diff --git a/src/Common/Game/IAsset.h b/src/Common/Game/IAsset.h index d9879d0f..0cd7d6fd 100644 --- a/src/Common/Game/IAsset.h +++ b/src/Common/Game/IAsset.h @@ -20,11 +20,12 @@ template struct AssetNameAccessor { public: static_assert(std::is_base_of_v); + // static constexpr bool IS_SINGLETON = false; - const char*& operator()(AssetType::Type& asset) - { - throw std::runtime_error(); - } + // const char*& operator()(AssetType::Type& asset) + // { + // throw std::runtime_error("Not implemented"); + // } }; #define DEFINE_ASSET_NAME_ACCESSOR(assetType, nameProperty) \ @@ -32,9 +33,24 @@ public: { \ public: \ static_assert(std::is_base_of_v); \ + static constexpr bool IS_SINGLETON = false; \ \ const char*& operator()(assetType::Type& asset) \ { \ return asset.nameProperty; \ } \ } + +#define DEFINE_ASSET_NAME_ACCESSOR_SINGLETON(assetType, singletonName) \ + template<> struct AssetNameAccessor \ + { \ + public: \ + static_assert(std::is_base_of_v); \ + static constexpr bool IS_SINGLETON = true; \ + \ + const char* const& operator()(assetType::Type& asset) \ + { \ + static const char* NAME = singletonName; \ + return NAME; \ + } \ + } diff --git a/src/Common/Game/IW4/IW4.h b/src/Common/Game/IW4/IW4.h index 4335bdb1..fe9c7e03 100644 --- a/src/Common/Game/IW4/IW4.h +++ b/src/Common/Game/IW4/IW4.h @@ -168,3 +168,41 @@ namespace IW4 using AssetVehicle = Asset; using AssetAddonMapEnts = Asset; } // namespace IW4 + +DEFINE_ASSET_NAME_ACCESSOR(IW4::AssetPhysPreset, name); +DEFINE_ASSET_NAME_ACCESSOR(IW4::AssetPhysCollMap, name); +DEFINE_ASSET_NAME_ACCESSOR(IW4::AssetXAnim, name); +DEFINE_ASSET_NAME_ACCESSOR(IW4::AssetXModelSurfs, name); +DEFINE_ASSET_NAME_ACCESSOR(IW4::AssetXModel, name); +DEFINE_ASSET_NAME_ACCESSOR(IW4::AssetMaterial, info.name); +DEFINE_ASSET_NAME_ACCESSOR(IW4::AssetPixelShader, name); +DEFINE_ASSET_NAME_ACCESSOR(IW4::AssetVertexShader, name); +DEFINE_ASSET_NAME_ACCESSOR(IW4::AssetVertexDecl, name); +DEFINE_ASSET_NAME_ACCESSOR(IW4::AssetTechniqueSet, name); +DEFINE_ASSET_NAME_ACCESSOR(IW4::AssetImage, name); +DEFINE_ASSET_NAME_ACCESSOR(IW4::AssetSound, aliasName); +DEFINE_ASSET_NAME_ACCESSOR(IW4::AssetSoundCurve, filename); +DEFINE_ASSET_NAME_ACCESSOR(IW4::AssetLoadedSound, name); +DEFINE_ASSET_NAME_ACCESSOR(IW4::AssetClipMapSp, name); +DEFINE_ASSET_NAME_ACCESSOR(IW4::AssetClipMapMp, name); +DEFINE_ASSET_NAME_ACCESSOR(IW4::AssetComWorld, name); +DEFINE_ASSET_NAME_ACCESSOR(IW4::AssetGameWorldSp, name); +DEFINE_ASSET_NAME_ACCESSOR(IW4::AssetGameWorldMp, name); +DEFINE_ASSET_NAME_ACCESSOR(IW4::AssetMapEnts, name); +DEFINE_ASSET_NAME_ACCESSOR(IW4::AssetFxWorld, name); +DEFINE_ASSET_NAME_ACCESSOR(IW4::AssetGfxWorld, name); +DEFINE_ASSET_NAME_ACCESSOR(IW4::AssetLightDef, name); +DEFINE_ASSET_NAME_ACCESSOR(IW4::AssetFont, fontName); +DEFINE_ASSET_NAME_ACCESSOR(IW4::AssetMenuList, name); +DEFINE_ASSET_NAME_ACCESSOR(IW4::AssetMenu, window.name); +DEFINE_ASSET_NAME_ACCESSOR(IW4::AssetLocalize, name); +DEFINE_ASSET_NAME_ACCESSOR(IW4::AssetWeapon, szInternalName); +DEFINE_ASSET_NAME_ACCESSOR(IW4::AssetFx, name); +DEFINE_ASSET_NAME_ACCESSOR(IW4::AssetImpactFx, name); +DEFINE_ASSET_NAME_ACCESSOR(IW4::AssetRawFile, name); +DEFINE_ASSET_NAME_ACCESSOR(IW4::AssetStringTable, name); +DEFINE_ASSET_NAME_ACCESSOR(IW4::AssetLeaderboard, name); +DEFINE_ASSET_NAME_ACCESSOR(IW4::AssetStructuredDataDef, name); +DEFINE_ASSET_NAME_ACCESSOR(IW4::AssetTracer, name); +DEFINE_ASSET_NAME_ACCESSOR(IW4::AssetVehicle, name); +DEFINE_ASSET_NAME_ACCESSOR(IW4::AssetAddonMapEnts, name); diff --git a/src/Common/Game/IW5/IW5.h b/src/Common/Game/IW5/IW5.h index ba6b314d..c2018a64 100644 --- a/src/Common/Game/IW5/IW5.h +++ b/src/Common/Game/IW5/IW5.h @@ -179,3 +179,44 @@ namespace IW5 using AssetVehicle = Asset; using AssetAddonMapEnts = Asset; } // namespace IW5 + +DEFINE_ASSET_NAME_ACCESSOR(IW5::AssetPhysPreset, name); +DEFINE_ASSET_NAME_ACCESSOR(IW5::AssetPhysCollMap, name); +DEFINE_ASSET_NAME_ACCESSOR(IW5::AssetXAnim, name); +DEFINE_ASSET_NAME_ACCESSOR(IW5::AssetXModelSurfs, name); +DEFINE_ASSET_NAME_ACCESSOR(IW5::AssetXModel, name); +DEFINE_ASSET_NAME_ACCESSOR(IW5::AssetMaterial, info.name); +DEFINE_ASSET_NAME_ACCESSOR(IW5::AssetPixelShader, name); +DEFINE_ASSET_NAME_ACCESSOR(IW5::AssetVertexShader, name); +DEFINE_ASSET_NAME_ACCESSOR(IW5::AssetVertexDecl, name); +DEFINE_ASSET_NAME_ACCESSOR(IW5::AssetTechniqueSet, name); +DEFINE_ASSET_NAME_ACCESSOR(IW5::AssetImage, name); +DEFINE_ASSET_NAME_ACCESSOR(IW5::AssetSound, aliasName); +DEFINE_ASSET_NAME_ACCESSOR(IW5::AssetSoundCurve, filename); +DEFINE_ASSET_NAME_ACCESSOR(IW5::AssetLoadedSound, name); +DEFINE_ASSET_NAME_ACCESSOR(IW5::AssetClipMap, name); +DEFINE_ASSET_NAME_ACCESSOR(IW5::AssetComWorld, name); +DEFINE_ASSET_NAME_ACCESSOR(IW5::AssetGlassWorld, name); +DEFINE_ASSET_NAME_ACCESSOR(IW5::AssetPathData, name); +DEFINE_ASSET_NAME_ACCESSOR(IW5::AssetVehicleTrack, name); +DEFINE_ASSET_NAME_ACCESSOR(IW5::AssetMapEnts, name); +DEFINE_ASSET_NAME_ACCESSOR(IW5::AssetFxWorld, name); +DEFINE_ASSET_NAME_ACCESSOR(IW5::AssetGfxWorld, name); +DEFINE_ASSET_NAME_ACCESSOR(IW5::AssetLightDef, name); +DEFINE_ASSET_NAME_ACCESSOR(IW5::AssetFont, fontName); +DEFINE_ASSET_NAME_ACCESSOR(IW5::AssetMenuList, name); +DEFINE_ASSET_NAME_ACCESSOR(IW5::AssetMenu, window.name); +DEFINE_ASSET_NAME_ACCESSOR(IW5::AssetLocalize, name); +DEFINE_ASSET_NAME_ACCESSOR(IW5::AssetAttachment, szInternalName); +DEFINE_ASSET_NAME_ACCESSOR(IW5::AssetWeapon, szInternalName); +DEFINE_ASSET_NAME_ACCESSOR(IW5::AssetFx, name); +DEFINE_ASSET_NAME_ACCESSOR(IW5::AssetImpactFx, name); +DEFINE_ASSET_NAME_ACCESSOR(IW5::AssetSurfaceFx, name); +DEFINE_ASSET_NAME_ACCESSOR(IW5::AssetRawFile, name); +DEFINE_ASSET_NAME_ACCESSOR(IW5::AssetScript, name); +DEFINE_ASSET_NAME_ACCESSOR(IW5::AssetStringTable, name); +DEFINE_ASSET_NAME_ACCESSOR(IW5::AssetLeaderboard, name); +DEFINE_ASSET_NAME_ACCESSOR(IW5::AssetStructuredDataDef, name); +DEFINE_ASSET_NAME_ACCESSOR(IW5::AssetTracer, name); +DEFINE_ASSET_NAME_ACCESSOR(IW5::AssetVehicle, name); +DEFINE_ASSET_NAME_ACCESSOR(IW5::AssetAddonMapEnts, name); diff --git a/src/Common/Game/T5/T5.h b/src/Common/Game/T5/T5.h index c493782d..2683e62f 100644 --- a/src/Common/Game/T5/T5.h +++ b/src/Common/Game/T5/T5.h @@ -148,5 +148,38 @@ namespace T5 using AssetDDL = Asset; using AssetGlasses = Asset; using AssetEmblemSet = Asset; - } // namespace T5 + +DEFINE_ASSET_NAME_ACCESSOR(T5::AssetPhysPreset, name); +DEFINE_ASSET_NAME_ACCESSOR(T5::AssetPhysConstraints, name); +DEFINE_ASSET_NAME_ACCESSOR(T5::AssetDestructibleDef, name); +DEFINE_ASSET_NAME_ACCESSOR(T5::AssetXAnim, name); +DEFINE_ASSET_NAME_ACCESSOR(T5::AssetXModel, name); +DEFINE_ASSET_NAME_ACCESSOR(T5::AssetMaterial, info.name); +DEFINE_ASSET_NAME_ACCESSOR(T5::AssetTechniqueSet, name); +DEFINE_ASSET_NAME_ACCESSOR(T5::AssetImage, name); +DEFINE_ASSET_NAME_ACCESSOR(T5::AssetSoundBank, name); +DEFINE_ASSET_NAME_ACCESSOR(T5::AssetSoundPatch, name); +DEFINE_ASSET_NAME_ACCESSOR(T5::AssetClipMap, name); +DEFINE_ASSET_NAME_ACCESSOR(T5::AssetClipMapPvs, name); +DEFINE_ASSET_NAME_ACCESSOR(T5::AssetComWorld, name); +DEFINE_ASSET_NAME_ACCESSOR(T5::AssetGameWorldSp, name); +DEFINE_ASSET_NAME_ACCESSOR(T5::AssetGameWorldMp, name); +DEFINE_ASSET_NAME_ACCESSOR(T5::AssetMapEnts, name); +DEFINE_ASSET_NAME_ACCESSOR(T5::AssetGfxWorld, name); +DEFINE_ASSET_NAME_ACCESSOR(T5::AssetLightDef, name); +DEFINE_ASSET_NAME_ACCESSOR(T5::AssetFont, fontName); +DEFINE_ASSET_NAME_ACCESSOR(T5::AssetMenuList, name); +DEFINE_ASSET_NAME_ACCESSOR(T5::AssetMenu, window.name); +DEFINE_ASSET_NAME_ACCESSOR(T5::AssetLocalize, name); +DEFINE_ASSET_NAME_ACCESSOR(T5::AssetWeapon, szInternalName); +DEFINE_ASSET_NAME_ACCESSOR(T5::AssetSoundDriverGlobals, name); +DEFINE_ASSET_NAME_ACCESSOR(T5::AssetFx, name); +DEFINE_ASSET_NAME_ACCESSOR_SINGLETON(T5::AssetImpactFx, "ImpactFx"); +DEFINE_ASSET_NAME_ACCESSOR(T5::AssetRawFile, name); +DEFINE_ASSET_NAME_ACCESSOR(T5::AssetStringTable, name); +DEFINE_ASSET_NAME_ACCESSOR(T5::AssetPackIndex, name); +DEFINE_ASSET_NAME_ACCESSOR(T5::AssetXGlobals, name); +DEFINE_ASSET_NAME_ACCESSOR(T5::AssetDDL, name); +DEFINE_ASSET_NAME_ACCESSOR(T5::AssetGlasses, name); +DEFINE_ASSET_NAME_ACCESSOR_SINGLETON(T5::AssetEmblemSet, "EmblemSet"); diff --git a/src/Common/Game/T5/T5_Assets.h b/src/Common/Game/T5/T5_Assets.h index e69347ad..03235510 100644 --- a/src/Common/Game/T5/T5_Assets.h +++ b/src/Common/Game/T5/T5_Assets.h @@ -1311,7 +1311,7 @@ namespace T5 struct SndPatch { - char* name; + const char* name; unsigned int elementCount; unsigned int* elements; unsigned int fileCount; diff --git a/src/Common/Game/T6/T6.h b/src/Common/Game/T6/T6.h index 0b9bc5c6..72cd851b 100644 --- a/src/Common/Game/T6/T6.h +++ b/src/Common/Game/T6/T6.h @@ -209,3 +209,53 @@ namespace T6 using AssetFootstepFxTable = Asset; using AssetZBarrier = Asset; } // namespace T6 + +DEFINE_ASSET_NAME_ACCESSOR(T6::AssetPhysPreset, name); +DEFINE_ASSET_NAME_ACCESSOR(T6::AssetPhysConstraints, name); +DEFINE_ASSET_NAME_ACCESSOR(T6::AssetDestructibleDef, name); +DEFINE_ASSET_NAME_ACCESSOR(T6::AssetXAnim, name); +DEFINE_ASSET_NAME_ACCESSOR(T6::AssetXModel, name); +DEFINE_ASSET_NAME_ACCESSOR(T6::AssetMaterial, info.name); +DEFINE_ASSET_NAME_ACCESSOR(T6::AssetTechniqueSet, name); +DEFINE_ASSET_NAME_ACCESSOR(T6::AssetImage, name); +DEFINE_ASSET_NAME_ACCESSOR(T6::AssetSoundBank, name); +DEFINE_ASSET_NAME_ACCESSOR(T6::AssetSoundPatch, name); +DEFINE_ASSET_NAME_ACCESSOR(T6::AssetClipMap, name); +DEFINE_ASSET_NAME_ACCESSOR(T6::AssetClipMapPvs, name); +DEFINE_ASSET_NAME_ACCESSOR(T6::AssetComWorld, name); +DEFINE_ASSET_NAME_ACCESSOR(T6::AssetGameWorldSp, name); +DEFINE_ASSET_NAME_ACCESSOR(T6::AssetGameWorldMp, name); +DEFINE_ASSET_NAME_ACCESSOR(T6::AssetMapEnts, name); +DEFINE_ASSET_NAME_ACCESSOR(T6::AssetGfxWorld, name); +DEFINE_ASSET_NAME_ACCESSOR(T6::AssetLightDef, name); +DEFINE_ASSET_NAME_ACCESSOR(T6::AssetFont, fontName); +DEFINE_ASSET_NAME_ACCESSOR(T6::AssetFontIcon, name); +DEFINE_ASSET_NAME_ACCESSOR(T6::AssetMenuList, name); +DEFINE_ASSET_NAME_ACCESSOR(T6::AssetMenu, window.name); +DEFINE_ASSET_NAME_ACCESSOR(T6::AssetLocalize, name); +DEFINE_ASSET_NAME_ACCESSOR(T6::AssetWeapon, szInternalName); +DEFINE_ASSET_NAME_ACCESSOR(T6::AssetAttachment, szInternalName); +DEFINE_ASSET_NAME_ACCESSOR(T6::AssetAttachmentUnique, szInternalName); +DEFINE_ASSET_NAME_ACCESSOR(T6::AssetWeaponCamo, name); +DEFINE_ASSET_NAME_ACCESSOR(T6::AssetSoundDriverGlobals, name); +DEFINE_ASSET_NAME_ACCESSOR(T6::AssetFx, name); +DEFINE_ASSET_NAME_ACCESSOR_SINGLETON(T6::AssetImpactFx, "ImpactFx"); +DEFINE_ASSET_NAME_ACCESSOR(T6::AssetRawFile, name); +DEFINE_ASSET_NAME_ACCESSOR(T6::AssetStringTable, name); +DEFINE_ASSET_NAME_ACCESSOR(T6::AssetLeaderboard, name); +DEFINE_ASSET_NAME_ACCESSOR(T6::AssetXGlobals, name); +DEFINE_ASSET_NAME_ACCESSOR(T6::AssetDDL, name); +DEFINE_ASSET_NAME_ACCESSOR(T6::AssetGlasses, name); +DEFINE_ASSET_NAME_ACCESSOR_SINGLETON(T6::AssetEmblemSet, "EmblemSet"); +DEFINE_ASSET_NAME_ACCESSOR(T6::AssetScript, name); +DEFINE_ASSET_NAME_ACCESSOR(T6::AssetKeyValuePairs, name); +DEFINE_ASSET_NAME_ACCESSOR(T6::AssetVehicle, name); +DEFINE_ASSET_NAME_ACCESSOR(T6::AssetMemoryBlock, name); +DEFINE_ASSET_NAME_ACCESSOR(T6::AssetAddonMapEnts, name); +DEFINE_ASSET_NAME_ACCESSOR(T6::AssetTracer, name); +DEFINE_ASSET_NAME_ACCESSOR(T6::AssetSkinnedVerts, name); +DEFINE_ASSET_NAME_ACCESSOR(T6::AssetQdb, name); +DEFINE_ASSET_NAME_ACCESSOR(T6::AssetSlug, name); +DEFINE_ASSET_NAME_ACCESSOR(T6::AssetFootstepTable, name); +DEFINE_ASSET_NAME_ACCESSOR(T6::AssetFootstepFxTable, name); +DEFINE_ASSET_NAME_ACCESSOR(T6::AssetZBarrier, name); diff --git a/src/ObjLoading/Game/IW3/ObjLoaderIW3.cpp b/src/ObjLoading/Game/IW3/ObjLoaderIW3.cpp index cca44a9a..4a966b9d 100644 --- a/src/ObjLoading/Game/IW3/ObjLoaderIW3.cpp +++ b/src/ObjLoading/Game/IW3/ObjLoaderIW3.cpp @@ -81,7 +81,7 @@ namespace collection.AddAssetCreator(std::make_unique>(zone)); } - void ConfigureDefaultCreators(AssetCreatorCollection& collection, Zone& zone, ISearchPath& searchPath) + void ConfigureLoaders(AssetCreatorCollection& collection, Zone& zone, ISearchPath& searchPath) { auto& memory = *zone.GetMemory(); @@ -117,6 +117,7 @@ namespace void ObjLoader::ConfigureCreatorCollection(AssetCreatorCollection& collection, Zone& zone, ISearchPath& searchPath) const { - ConfigureDefaultCreators(collection, zone, searchPath); + ConfigureDefaultCreators(collection, zone); + ConfigureLoaders(collection, zone, searchPath); ConfigureGlobalAssetPoolsLoaders(collection, zone); } diff --git a/src/ObjLoading/Game/IW4/ObjLoaderIW4.cpp b/src/ObjLoading/Game/IW4/ObjLoaderIW4.cpp index f1fbeb61..874dd67a 100644 --- a/src/ObjLoading/Game/IW4/ObjLoaderIW4.cpp +++ b/src/ObjLoading/Game/IW4/ObjLoaderIW4.cpp @@ -19,43 +19,44 @@ namespace void ConfigureDefaultCreators(AssetCreatorCollection& collection, Zone& zone) { auto& memory = *zone.GetMemory(); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); + + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); } void ConfigureGlobalAssetPoolsLoaders(AssetCreatorCollection& collection, Zone& zone) @@ -99,7 +100,7 @@ namespace collection.AddAssetCreator(std::make_unique>(zone)); } - void ConfigureDefaultCreators(AssetCreatorCollection& collection, Zone& zone, ISearchPath& searchPath) + void ConfigureLoaders(AssetCreatorCollection& collection, Zone& zone, ISearchPath& searchPath) { auto& memory = *zone.GetMemory(); @@ -145,6 +146,7 @@ namespace void ObjLoader::ConfigureCreatorCollection(AssetCreatorCollection& collection, Zone& zone, ISearchPath& searchPath) const { - ConfigureDefaultCreators(collection, zone, searchPath); + ConfigureDefaultCreators(collection, zone); + ConfigureLoaders(collection, zone, searchPath); ConfigureGlobalAssetPoolsLoaders(collection, zone); } diff --git a/src/ObjLoading/Game/IW5/ObjLoaderIW5.cpp b/src/ObjLoading/Game/IW5/ObjLoaderIW5.cpp index 6224f518..383ed14d 100644 --- a/src/ObjLoading/Game/IW5/ObjLoaderIW5.cpp +++ b/src/ObjLoading/Game/IW5/ObjLoaderIW5.cpp @@ -19,46 +19,47 @@ namespace void ConfigureDefaultCreators(AssetCreatorCollection& collection, Zone& zone) { auto& memory = *zone.GetMemory(); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); + + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); } void ConfigureGlobalAssetPoolsLoaders(AssetCreatorCollection& collection, Zone& zone) @@ -105,9 +106,10 @@ namespace collection.AddAssetCreator(std::make_unique>(zone)); } - void ConfigureDefaultCreators(AssetCreatorCollection& collection, Zone& zone, ISearchPath& searchPath) + void ConfigureLoaders(AssetCreatorCollection& collection, Zone& zone, ISearchPath& searchPath) { auto& memory = *zone.GetMemory(); + // collection.AddAssetCreator(std::make_unique(memory)); // collection.AddAssetCreator(std::make_unique(memory)); // collection.AddAssetCreator(std::make_unique(memory)); @@ -153,6 +155,7 @@ namespace void ObjLoader::ConfigureCreatorCollection(AssetCreatorCollection& collection, Zone& zone, ISearchPath& searchPath) const { - ConfigureDefaultCreators(collection, zone, searchPath); + ConfigureDefaultCreators(collection, zone); + ConfigureLoaders(collection, zone, searchPath); ConfigureGlobalAssetPoolsLoaders(collection, zone); } diff --git a/src/ObjLoading/Game/T5/ObjLoaderT5.cpp b/src/ObjLoading/Game/T5/ObjLoaderT5.cpp index eccc4cf7..a712018c 100644 --- a/src/ObjLoading/Game/T5/ObjLoaderT5.cpp +++ b/src/ObjLoading/Game/T5/ObjLoaderT5.cpp @@ -19,39 +19,40 @@ namespace void ConfigureDefaultCreators(AssetCreatorCollection& collection, Zone& zone) { auto& memory = *zone.GetMemory(); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); + + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + // AssetImpactFx has no name and cannot be default constructed + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + // AssetEmblemSet has no name and cannot be default constructed } void ConfigureGlobalAssetPoolsLoaders(AssetCreatorCollection& collection, Zone& zone) @@ -91,9 +92,10 @@ namespace collection.AddAssetCreator(std::make_unique>(zone)); } - void ConfigureDefaultCreators(AssetCreatorCollection& collection, Zone& zone, ISearchPath& searchPath) + void ConfigureLoaders(AssetCreatorCollection& collection, Zone& zone, ISearchPath& searchPath) { auto& memory = *zone.GetMemory(); + // collection.AddAssetCreator(std::make_unique(memory)); // collection.AddAssetCreator(std::make_unique(memory)); // collection.AddAssetCreator(std::make_unique(memory)); @@ -132,6 +134,7 @@ namespace void ObjLoader::ConfigureCreatorCollection(AssetCreatorCollection& collection, Zone& zone, ISearchPath& searchPath) const { - ConfigureDefaultCreators(collection, zone, searchPath); + ConfigureDefaultCreators(collection, zone); + ConfigureLoaders(collection, zone, searchPath); ConfigureGlobalAssetPoolsLoaders(collection, zone); } diff --git a/src/ObjLoading/Game/T6/ObjLoaderT6.cpp b/src/ObjLoading/Game/T6/ObjLoaderT6.cpp index 16e433e0..b6c25e53 100644 --- a/src/ObjLoading/Game/T6/ObjLoaderT6.cpp +++ b/src/ObjLoading/Game/T6/ObjLoaderT6.cpp @@ -258,39 +258,55 @@ namespace T6 void ConfigureDefaultCreators(AssetCreatorCollection& collection, Zone& zone) { auto& memory = *zone.GetMemory(); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); - // collection.AddDefaultAssetCreator(std::make_unique(memory)); + + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + // AssetImpactFx has no name and cannot be default constructed + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + // AssetEmblemSet has no name and cannot be default constructed + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); + collection.AddDefaultAssetCreator(std::make_unique>(memory)); } void ConfigureGlobalAssetPoolsLoaders(AssetCreatorCollection& collection, Zone& zone) @@ -345,9 +361,10 @@ namespace T6 collection.AddAssetCreator(std::make_unique>(zone)); } - void ConfigureDefaultCreators(AssetCreatorCollection& collection, Zone& zone, ISearchPath& searchPath) + void ConfigureLoaders(AssetCreatorCollection& collection, Zone& zone, ISearchPath& searchPath) { auto& memory = *zone.GetMemory(); + // collection.AddAssetCreator(std::make_unique(memory)); // collection.AddAssetCreator(std::make_unique(memory)); // collection.AddAssetCreator(std::make_unique(memory)); @@ -401,7 +418,8 @@ namespace T6 void ObjLoader::ConfigureCreatorCollection(AssetCreatorCollection& collection, Zone& zone, ISearchPath& searchPath) const { - ConfigureDefaultCreators(collection, zone, searchPath); + ConfigureDefaultCreators(collection, zone); + ConfigureLoaders(collection, zone, searchPath); ConfigureGlobalAssetPoolsLoaders(collection, zone); } } // namespace T6