void HwMesh::load() { f->seekg(0, ios::beg); char s[255]; f->read(s, 4); s[4] = '\0'; if (strcmp(s, "QXRM")) return; f->seekg(1, ios::cur); //read version DWORD ver; f->read((char *)&ver, sizeof(DWORD)); if (ver != 1) return; //read name DWORD tmp; f->read((char *)&tmp, sizeof(DWORD)); f->read((char *)s, tmp); s[tmp] = '\0'; name = s; f->seekg(1, ios::cur); f->read((char *)&tmp, sizeof(DWORD)); if (tmp == 1) loadStatic(); else if (tmp == 2) loadSkin(); init(); }
void Level::load(World &world) const { fs::DataFile df(datafile()); tinyxml2::XMLDocument doc; { fs::DataStream ds(df, "terrain.xml"); string xmlstr = string( (std::istreambuf_iterator<char>(ds)), std::istreambuf_iterator<char>()); int error = doc.Parse(xmlstr.c_str()); if(error != tinyxml2::XML_NO_ERROR) throw LevelException(doc.GetErrorStr1()); } const XMLElement *root = doc.RootElement(); setWorldBounds(root, world); const XMLElement *el = root->FirstChildElement(); while(el) { if(strcmp(el->Name(), "zones")==0) loadZones(el, world); else if(strcmp(el->Name(), "static")==0) loadStatic(el, world); else if(strcmp(el->Name(), "solid")==0) loadSolid(el, world); else { #ifndef NDEBUG cerr << "Warning: Unknown level file element: " << el->Name() << endl; #endif } el = el->NextSiblingElement(); } }
U2Feature load(SQLiteQuery* q) { return loadStatic(q); }