i32 CMaterialManager::PrepareMaterials(xst_castring& strGroup) { XST::CLuaTable MaterialsTable( "materials" ); if( MaterialsTable.Create( &m_LuaApi, "materials" ) != RESULT::OK ) { return RESULT::FAILED; } CLuaMaterialParser Parser; XST::CLuaTable::ChildTableItr TableItr = MaterialsTable.GetChildTableMap().begin(); for(; TableItr != MaterialsTable.GetChildTableMap().end(); ++TableItr) { XST::CLuaTable* pTmpTable = TableItr->second; if( pTmpTable || this->GetResource( TableItr->first ).IsValid() ) continue; MaterialPtr pMat = CreateMaterial( TableItr->first, strGroup ); if( Parser.Parse( pMat.GetPtr(), pTmpTable ) != RESULT::OK ) { continue; } } return RESULT::OK; }