bool Block::Load(File* f) { if (!GameObject::Load(f)) { return false; } // Load position if (!LoadVec3(f, &m_pos)) { f->ReportError("Expected block position"); return false; } // m_pos = m_pos * m_mat; if (!LoadMeshResource(f)) { f->ReportError("Failed to load block mesh"); return false; } if (!LoadShadow(f)) { return false; } return true; }
bool Dino::Load(File* f) { if (!Npc::Load(f)) { return false; } m_startPos = m_pos; // Load mesh and 2 textures if (!f->GetDataLine(&m_md2Name)) { f->ReportError("Expected pet md2 filename"); return false; } if (!f->GetDataLine(&m_texNames[0])) { f->ReportError("Expected dino tex0 filename"); return false; } if (!f->GetDataLine(&m_texNames[1])) { f->ReportError("Expected dino tex1 filename"); return false; } if (!f->GetDataLine(&m_bloodTex[0])) { f->ReportError("Expected blood tex0 filename"); return false; } if (!f->GetDataLine(&m_bloodTex[1])) { f->ReportError("Expected blood tex1 filename"); return false; } if (!LoadShadow(f)) { return false; } return true; }
EntityNode* SceneLoader::LoadEntityNode(QDomElement element) { if (element.nodeName() != QString ("node") || QString::compare(element.attribute("type"), "entity", Qt::CaseInsensitive) != 0) { printf ("ceXMLDataLoader::LoadEntityNode: Illegal data format: '%s' != 'entitynode'\n", element.nodeName().toStdString().c_str()); fflush (stdout); return 0; } EntityNode* entity = new EntityNode(); QString name = element.attribute("name"); if (!name.isNull()) { entity->SetName(name.toStdString()); } QDomElement geometryElement = element.firstChildElement("geometry"); if (!geometryElement.isNull()) { Geometry* geom = LoadGeometry(geometryElement); if (geom) { _geometryIdx++; } entity->SetGeometry(geom); } QDomElement shadowElement = element.firstChildElement("shadow"); if (!shadowElement.isNull()) { LoadShadow (entity, shadowElement); } entity->SetCastShadow(true); QDomElement transformElement = element.firstChildElement("transformation"); if (!transformElement.isNull()) { QDomElement matrixElement = transformElement.firstChildElement("matrix"); entity->SetMatrix(LoadMatrix4f(matrixElement)); entity->FinishTransformation(false); } return entity; }