diff options
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
|