diff options
author | hecks <42101236+hecktest@users.noreply.github.com> | 2021-07-29 05:05:34 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-07-29 05:05:34 +0200 |
commit | 6c78f181b5d2931baeae328af625f03dc9bec0c1 (patch) | |
tree | c34f438e7f53cc518d7fbf749d35a3d66d80d529 /source/Irrlicht/CXMeshFileLoader.cpp | |
parent | ae81dbd942e282bed808003cdb4f26bb363b1ef0 (diff) | |
download | irrlicht-6c78f181b5d2931baeae328af625f03dc9bec0c1.tar.xz |
Fix .x material slot parsing
Co-authored-by: hecktest <>
Diffstat (limited to 'source/Irrlicht/CXMeshFileLoader.cpp')
-rw-r--r-- | source/Irrlicht/CXMeshFileLoader.cpp | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/source/Irrlicht/CXMeshFileLoader.cpp b/source/Irrlicht/CXMeshFileLoader.cpp index 547a512..27c4e36 100644 --- a/source/Irrlicht/CXMeshFileLoader.cpp +++ b/source/Irrlicht/CXMeshFileLoader.cpp @@ -89,7 +89,6 @@ IAnimatedMesh* CXMeshFileLoader::createMesh(io::IReadFile* file) P=0;
End=0;
CurFrame=0;
- TemplateMaterials.clear();
delete [] Buffer;
Buffer = 0;
@@ -519,6 +518,11 @@ bool CXMeshFileLoader::parseDataObject() return parseDataObjectAnimationTicksPerSecond();
}
else
+ if (objectName == "Material")
+ {
+ return parseUnknownDataObject();
+ }
+ else
if (objectName == "}")
{
os::Printer::log("} found in dataObject", ELL_WARNING);
@@ -1455,12 +1459,17 @@ bool CXMeshFileLoader::parseDataObjectMeshMaterialList(SXMesh &mesh) {
// template materials now available thanks to joeWright
objectName = getNextToken();
- for (u32 i=0; i<TemplateMaterials.size(); ++i)
- if (TemplateMaterials[i].Name == objectName)
- mesh.Materials.push_back(TemplateMaterials[i].Material);
+ mesh.Materials.push_back(video::SMaterial());
getNextToken(); // skip }
}
else
+ if (objectName == "Material")
+ {
+ mesh.Materials.push_back(video::SMaterial());
+ if (!parseUnknownDataObject())
+ return false;
+ }
+ else
if (objectName == ";")
{
// ignore
|