diff --git a/src/ObjLoading/Game/IW5/AssetLoaders/AssetLoaderMaterial.cpp b/src/ObjLoading/Game/IW5/AssetLoaders/AssetLoaderMaterial.cpp new file mode 100644 index 00000000..8bd59320 --- /dev/null +++ b/src/ObjLoading/Game/IW5/AssetLoaders/AssetLoaderMaterial.cpp @@ -0,0 +1,18 @@ +#include "AssetLoaderMaterial.h" + +#include + +#include "ObjLoading.h" +#include "Game/IW5/IW5.h" +#include "Pool/GlobalAssetPool.h" + +using namespace IW5; + +void* AssetLoaderMaterial::CreateEmptyAsset(const std::string& assetName, MemoryManager* memory) +{ + auto* material = memory->Create(); + memset(material, 0, sizeof(Material)); + material->info.name = memory->Dup(assetName.c_str()); + + return material; +} diff --git a/src/ObjLoading/Game/IW5/AssetLoaders/AssetLoaderMaterial.h b/src/ObjLoading/Game/IW5/AssetLoaders/AssetLoaderMaterial.h new file mode 100644 index 00000000..d283e74e --- /dev/null +++ b/src/ObjLoading/Game/IW5/AssetLoaders/AssetLoaderMaterial.h @@ -0,0 +1,14 @@ +#pragma once + +#include "Game/IW5/IW5.h" +#include "AssetLoading/BasicAssetLoader.h" +#include "SearchPath/ISearchPath.h" + +namespace IW5 +{ + class AssetLoaderMaterial final : public BasicAssetLoader + { + public: + _NODISCARD void* CreateEmptyAsset(const std::string& assetName, MemoryManager* memory) override; + }; +} diff --git a/src/ObjLoading/Game/IW5/ObjLoaderIW5.cpp b/src/ObjLoading/Game/IW5/ObjLoaderIW5.cpp index 77c4a48a..9766e984 100644 --- a/src/ObjLoading/Game/IW5/ObjLoaderIW5.cpp +++ b/src/ObjLoading/Game/IW5/ObjLoaderIW5.cpp @@ -5,6 +5,7 @@ #include "ObjContainer/IPak/IPak.h" #include "ObjLoading.h" #include "AssetLoaders/AssetLoaderLocalizeEntry.h" +#include "AssetLoaders/AssetLoaderMaterial.h" #include "AssetLoaders/AssetLoaderMenuDef.h" #include "AssetLoaders/AssetLoaderMenuList.h" #include "AssetLoaders/AssetLoaderRawFile.h" @@ -27,7 +28,7 @@ ObjLoader::ObjLoader() REGISTER_ASSET_LOADER(BASIC_LOADER(ASSET_TYPE_XANIMPARTS, XAnimParts)) REGISTER_ASSET_LOADER(BASIC_LOADER(ASSET_TYPE_XMODEL_SURFS, XModelSurfs)) REGISTER_ASSET_LOADER(BASIC_LOADER(ASSET_TYPE_XMODEL, XModel)) - REGISTER_ASSET_LOADER(BASIC_LOADER(ASSET_TYPE_MATERIAL, Material)) + REGISTER_ASSET_LOADER(AssetLoaderMaterial) REGISTER_ASSET_LOADER(BASIC_LOADER(ASSET_TYPE_PIXELSHADER, MaterialPixelShader)) REGISTER_ASSET_LOADER(BASIC_LOADER(ASSET_TYPE_VERTEXSHADER, MaterialVertexShader)) REGISTER_ASSET_LOADER(BASIC_LOADER(ASSET_TYPE_VERTEXDECL, MaterialVertexDeclaration))