Fixed a crash in the collada 1.4 loader, also added better texture search.

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@1250 dfc29bdd-3216-0410-991c-e03cc46cb475
master
hybrid 2008-02-20 17:17:42 +00:00
parent f978f537f9
commit 81e8956dd5
1 changed files with 5 additions and 3 deletions

View File

@ -487,8 +487,6 @@ void CColladaFileLoader::readLibrarySection(io::IXMLReaderUTF8* reader)
CScenePrefab p(""); CScenePrefab p("");
readNodeSection(reader, SceneManager->getRootSceneNode(), &p); readNodeSection(reader, SceneManager->getRootSceneNode(), &p);
for (u32 i=0; i<p.Childs.size(); ++i)
Prefabs.push_back(p.Childs[i]);
} }
else else
if (effectSectionName == reader->getNodeName()) if (effectSectionName == reader->getNodeName())
@ -2494,7 +2492,11 @@ video::ITexture* CColladaFileLoader::getTextureFromImage(core::stringc uri)
if (uri == Images[i].Id) if (uri == Images[i].Id)
{ {
if (Images[i].Source.size() && Images[i].SourceIsFilename) if (Images[i].Source.size() && Images[i].SourceIsFilename)
return driver->getTexture(Images[i].Source.c_str()); {
if (FileSystem->existFile(Images[i].Source.c_str()))
return driver->getTexture(Images[i].Source.c_str());
return driver->getTexture((FileSystem->getFileDir(CurrentlyLoadingMesh)+"/"+Images[i].Source).c_str());
}
else else
if (Images[i].Source.size()) if (Images[i].Source.size())
{ {