#include "ObjLoaderIW3.h" #include "Asset/GlobalAssetPoolsLoader.h" #include "Game/IW3/AssetMarker_iw3_pc.h" #include "Game/IW3/Font/FontLoaderIW3.h" #include "Game/IW3/GameIW3.h" #include "Game/IW3/IW3.h" #include "Game/IW3/Image/ImageLoaderEmbeddedIW3.h" #include "Game/IW3/Image/ImageLoaderExternalIW3.h" #include "Game/IW3/Menu/LoaderMenuListIW3.h" #include "Game/IW3/Techset/PixelShaderLoaderIW3.h" #include "Game/IW3/Techset/VertexShaderLoaderIW3.h" #include "Game/IW3/Weapon/AccuracyGraphLoaderIW3.h" #include "Game/IW3/XAnim/XAnimLoaderIW3.h" #include "Game/IW3/XModel/LoaderXModelIW3.h" #include "LightDef/LightDefLoaderIW3.h" #include "Localize/AssetLoaderLocalizeIW3.h" #include "Material/LoaderMaterialIW3.h" #include "ObjLoading.h" #include "PhysPreset/GdtLoaderPhysPresetIW3.h" #include "PhysPreset/RawLoaderPhysPresetIW3.h" #include "RawFile/AssetLoaderRawFileIW3.h" #include "Sound/LoaderSoundCurveIW3.h" #include "StringTable/LoaderStringTableIW3.h" #include "Weapon/WeaponGdtLoaderIW3.h" #include "Weapon/WeaponRawLoaderIW3.h" #include using namespace IW3; void ObjLoader::LoadReferencedContainersForZone(ISearchPath& searchPath, Zone& zone) const {} void ObjLoader::UnloadContainersOfZone(Zone& zone) const {} namespace { void ConfigureDefaultCreators(AssetCreatorCollection& collection, Zone& zone) { auto& memory = zone.Memory(); collection.AddDefaultAssetCreator(std::make_unique>(memory)); collection.AddDefaultAssetCreator(std::make_unique>(memory)); collection.AddDefaultAssetCreator(std::make_unique>(memory)); collection.AddDefaultAssetCreator(std::make_unique>(memory)); collection.AddDefaultAssetCreator(std::make_unique>(memory)); collection.AddDefaultAssetCreator(std::make_unique>(memory)); collection.AddDefaultAssetCreator(std::make_unique>(memory)); collection.AddDefaultAssetCreator(std::make_unique>(memory)); collection.AddDefaultAssetCreator(std::make_unique>(memory)); collection.AddDefaultAssetCreator(std::make_unique>(memory)); collection.AddDefaultAssetCreator(std::make_unique>(memory)); collection.AddDefaultAssetCreator(std::make_unique>(memory)); collection.AddDefaultAssetCreator(std::make_unique>(memory)); collection.AddDefaultAssetCreator(std::make_unique>(memory)); collection.AddDefaultAssetCreator(std::make_unique>(memory)); collection.AddDefaultAssetCreator(std::make_unique>(memory)); collection.AddDefaultAssetCreator(std::make_unique>(memory)); collection.AddDefaultAssetCreator(std::make_unique>(memory)); collection.AddDefaultAssetCreator(std::make_unique>(memory)); collection.AddDefaultAssetCreator(std::make_unique>(memory)); collection.AddDefaultAssetCreator(std::make_unique>(memory)); collection.AddDefaultAssetCreator(std::make_unique>(memory)); collection.AddDefaultAssetCreator(std::make_unique>(memory)); 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) { collection.AddAssetCreator(std::make_unique>(zone)); collection.AddAssetCreator(std::make_unique>(zone)); collection.AddAssetCreator(std::make_unique>(zone)); collection.AddAssetCreator(std::make_unique>(zone)); collection.AddAssetCreator(std::make_unique>(zone)); collection.AddAssetCreator(std::make_unique>(zone)); collection.AddAssetCreator(std::make_unique>(zone)); collection.AddAssetCreator(std::make_unique>(zone)); collection.AddAssetCreator(std::make_unique>(zone)); // collection.AddAssetCreator(std::make_unique>(zone)); collection.AddAssetCreator(std::make_unique>(zone)); collection.AddAssetCreator(std::make_unique>(zone)); collection.AddAssetCreator(std::make_unique>(zone)); collection.AddAssetCreator(std::make_unique>(zone)); collection.AddAssetCreator(std::make_unique>(zone)); collection.AddAssetCreator(std::make_unique>(zone)); collection.AddAssetCreator(std::make_unique>(zone)); collection.AddAssetCreator(std::make_unique>(zone)); collection.AddAssetCreator(std::make_unique>(zone)); collection.AddAssetCreator(std::make_unique>(zone)); collection.AddAssetCreator(std::make_unique>(zone)); collection.AddAssetCreator(std::make_unique>(zone)); // collection.AddAssetCreator(std::make_unique>(zone)); collection.AddAssetCreator(std::make_unique>(zone)); collection.AddAssetCreator(std::make_unique>(zone)); collection.AddAssetCreator(std::make_unique>(zone)); collection.AddAssetCreator(std::make_unique>(zone)); } void ConfigureLoaders(AssetCreatorCollection& collection, Zone& zone, ISearchPath& searchPath, IGdtQueryable& gdt) { auto& memory = zone.Memory(); collection.AddAssetCreator(phys_preset::CreateRawLoaderIW3(memory, searchPath, zone)); collection.AddAssetCreator(phys_preset::CreateGdtLoaderIW3(memory, gdt, zone)); collection.AddAssetCreator(xanim::CreateLoaderIW3(memory, searchPath, zone)); collection.AddAssetCreator(xmodel::CreateLoaderIW3(memory, searchPath, zone)); collection.AddAssetCreator(material::CreateLoaderIW3(memory, searchPath)); // collection.AddAssetCreator(std::make_unique(memory)); collection.AddAssetCreator(image::CreateLoaderEmbeddedIW3(memory, searchPath)); collection.AddAssetCreator(image::CreateLoaderExternalIW3(memory, searchPath)); // collection.AddAssetCreator(std::make_unique(memory)); collection.AddAssetCreator(sound_curve::CreateLoaderIW3(memory, searchPath)); // collection.AddAssetCreator(std::make_unique(memory)); // collection.AddAssetCreator(std::make_unique(memory)); // collection.AddAssetCreator(std::make_unique(memory)); // collection.AddAssetCreator(std::make_unique(memory)); // collection.AddAssetCreator(std::make_unique(memory)); // collection.AddAssetCreator(std::make_unique(memory)); // collection.AddAssetCreator(std::make_unique(memory)); collection.AddAssetCreator(light_def::CreateLoaderIW3(memory, searchPath)); collection.AddAssetCreator(font::CreateLoaderIW3(memory, searchPath)); collection.AddAssetCreator(menu::CreateMenuListLoaderIW3(memory, searchPath)); // collection.AddAssetCreator(std::make_unique(memory)); collection.AddAssetCreator(localize::CreateLoaderIW3(memory, searchPath, zone)); collection.AddAssetCreator(weapon::CreateRawLoaderIW3(memory, searchPath, zone)); collection.AddAssetCreator(weapon::CreateGdtLoaderIW3(memory, searchPath, gdt, zone)); // collection.AddAssetCreator(std::make_unique(memory)); // collection.AddAssetCreator(std::make_unique(memory)); // collection.AddAssetCreator(std::make_unique(memory)); collection.AddAssetCreator(raw_file::CreateLoaderIW3(memory, searchPath)); collection.AddAssetCreator(string_table::CreateLoaderIW3(memory, searchPath)); collection.AddSubAssetCreator(techset::CreateVertexShaderLoaderIW3(memory, searchPath)); collection.AddSubAssetCreator(techset::CreatePixelShaderLoaderIW3(memory, searchPath)); collection.AddSubAssetCreator(weapon::CreateAccuracyGraphLoaderIW3(memory, searchPath)); } } // namespace void ObjLoader::ConfigureCreatorCollection(AssetCreatorCollection& collection, Zone& zone, ISearchPath& searchPath, IGdtQueryable& gdt) const { ConfigureDefaultCreators(collection, zone); ConfigureLoaders(collection, zone, searchPath, gdt); ConfigureGlobalAssetPoolsLoaders(collection, zone); }