Пример #1
0
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();
}
Пример #2
0
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();
    }
    
}
Пример #3
0
 U2Feature load(SQLiteQuery* q) {
     return loadStatic(q);
 }