Example #1
0
//Создаем новую расу и заполняем ее поля значениями из файлда
void LoadKin(pugi::xml_node KinNode)
{
	pugi::xml_node CurNode;
	PlayerKinPtr TmpKin(new PlayerKin);

	//Parse kin's parameters
	TmpKin->KinNum = KinNode.attribute("kinnum").as_int();
    TmpKin->Enabled = KinNode.attribute("enabled").as_bool();
	CurNode = KinNode.child("menu");
	TmpKin->KinMenuStr = CurNode.child_value();
	CurNode = KinNode.child("kinname");
	TmpKin->KinItName = CurNode.child("itname").child_value();
	TmpKin->KinHeName = CurNode.child("hename").child_value();
	TmpKin->KinSheName = CurNode.child("shename").child_value();
	TmpKin->KinPluralName = CurNode.child("pluralname").child_value();

	//Parce kin races
	CurNode = KinNode.child("kinraces");
	for (CurNode = CurNode.child("race"); CurNode; CurNode = CurNode.next_sibling("race"))
	{
		LoadRace(CurNode, TmpKin);
	}
	//Add new kin in kin list
	PlayerRace::PlayerKinList.push_back(TmpKin);
}
Example #2
0
bool psTextureFactory::Initialize(iObjectRegistry* object_reg,const char *xmlfilename)
{
    psTextureFactory::object_reg = object_reg;

    csRef<iVFS> vfs =  csQueryRegistry<iVFS> (object_reg);
    csRef<iDocumentSystem> xml =  csQueryRegistry<iDocumentSystem> (object_reg);
    if (!xml)
        xml = csPtr<iDocumentSystem>(new csTinyDocumentSystem);
    if (!vfs || !xml)
        return false;

    csRef<iFile> file = vfs->Open(xmlfilename, VFS_FILE_READ);

    if (!file)
    {
        printf("Cannot open %s.\n",xmlfilename);
        return false;
    }
    csRef<iDocument> doc = xml->CreateDocument();

    const char* error = doc->Parse(file);
    if (error)
    {
        printf("Error Loading Race Part Region Data: %s\n", error);
        return false;
    }

    printf ("Loading Race Part Regions...\n");

    csRef<iDocumentNodeIterator> raceIter = doc->GetRoot()->GetNode("RaceDefs")->GetNodes("Race");

    while (raceIter->HasNext())
    {
        csRef<iDocumentNode> raceNode = raceIter->Next();
        printf("Loading xml regions for race...\n");

        if (!LoadRace(raceNode))
        {
            printf("XML Err!\n");
            return false;
        }
    }

    return true;
}