From 6d622e6ae1b19f6559979f0b0527f032555c0a06 Mon Sep 17 00:00:00 2001 From: Jan Date: Tue, 28 Dec 2021 18:04:51 +0100 Subject: [PATCH] Create Default materials for iw4 --- .../IW4/AssetLoaders/AssetLoaderMaterial.cpp | 17 +++++++++++++++++ .../Game/IW4/AssetLoaders/AssetLoaderMaterial.h | 14 ++++++++++++++ src/ObjLoading/Game/IW4/ObjLoaderIW4.cpp | 3 ++- 3 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 src/ObjLoading/Game/IW4/AssetLoaders/AssetLoaderMaterial.cpp create mode 100644 src/ObjLoading/Game/IW4/AssetLoaders/AssetLoaderMaterial.h diff --git a/src/ObjLoading/Game/IW4/AssetLoaders/AssetLoaderMaterial.cpp b/src/ObjLoading/Game/IW4/AssetLoaders/AssetLoaderMaterial.cpp new file mode 100644 index 00000000..36c31da9 --- /dev/null +++ b/src/ObjLoading/Game/IW4/AssetLoaders/AssetLoaderMaterial.cpp @@ -0,0 +1,17 @@ +#include "AssetLoaderMaterial.h" + +#include + +#include "ObjLoading.h" +#include "Game/IW4/IW4.h" +#include "Pool/GlobalAssetPool.h" + +using namespace IW4; + +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/IW4/AssetLoaders/AssetLoaderMaterial.h b/src/ObjLoading/Game/IW4/AssetLoaders/AssetLoaderMaterial.h new file mode 100644 index 00000000..d1f15b67 --- /dev/null +++ b/src/ObjLoading/Game/IW4/AssetLoaders/AssetLoaderMaterial.h @@ -0,0 +1,14 @@ +#pragma once + +#include "Game/IW4/IW4.h" +#include "AssetLoading/BasicAssetLoader.h" +#include "SearchPath/ISearchPath.h" + +namespace IW4 +{ + class AssetLoaderMaterial final : public BasicAssetLoader + { + public: + _NODISCARD void* CreateEmptyAsset(const std::string& assetName, MemoryManager* memory) override; + }; +} diff --git a/src/ObjLoading/Game/IW4/ObjLoaderIW4.cpp b/src/ObjLoading/Game/IW4/ObjLoaderIW4.cpp index c71e0332..b6f6e1ff 100644 --- a/src/ObjLoading/Game/IW4/ObjLoaderIW4.cpp +++ b/src/ObjLoading/Game/IW4/ObjLoaderIW4.cpp @@ -5,6 +5,7 @@ #include "ObjContainer/IPak/IPak.h" #include "ObjLoading.h" #include "AssetLoaders/AssetLoaderLocalizeEntry.h" +#include "AssetLoaders/AssetLoaderMaterial.h" #include "AssetLoaders/AssetLoaderMenuList.h" #include "AssetLoaders/AssetLoaderRawFile.h" #include "AssetLoading/AssetLoadingManager.h" @@ -25,7 +26,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))