diff --git a/src/ObjLoading/Game/IW4/AssetLoaders/AssetLoaderMaterial.cpp b/src/ObjLoading/Game/IW4/AssetLoaders/AssetLoaderMaterial.cpp index a494d1ec..982a339c 100644 --- a/src/ObjLoading/Game/IW4/AssetLoaders/AssetLoaderMaterial.cpp +++ b/src/ObjLoading/Game/IW4/AssetLoaders/AssetLoaderMaterial.cpp @@ -287,12 +287,22 @@ namespace IW4 m_dependencies.push_back(image); textureDef.u.image = image->Asset(); - m_texture.push_back(textureDef); + m_textures.push_back(textureDef); } - void FinalizeMaterial() + void FinalizeMaterial() const { - // TODO Realloc all arrays and assign to material + if (!m_textures.empty()) + { + m_material->textureTable = static_cast(m_memory->Alloc(sizeof(MaterialTextureDef) * m_textures.size())); + m_material->textureCount = m_textures.size(); + memcpy(m_material->textureTable, m_textures.data(), sizeof(MaterialTextureDef) * m_textures.size()); + } + else + { + m_material->textureTable = nullptr; + m_material->textureCount = 0u; + } } MemoryManager* m_memory; @@ -300,7 +310,7 @@ namespace IW4 std::vector m_dependencies; Material* m_material; - std::vector m_texture; + std::vector m_textures; }; }