void DialogNodeReader::Visit (XmlReader& visitable) { BaseReaderVisitor::Visit (visitable); auto reader = visitable.ChangeRoot (xmlRootNodeName_); XmlReaderCollection entryReaders; reader->ReadNodes ("entry", entryReaders); for (const auto& entryReader : entryReaders) { IGameRequirement* requirement = nullptr; if (entryReader->NodeExists ("requirement")) { } IGameAction* action = nullptr; if (entryReader->NodeExists ("action")) { } IDialogNode* nextNode = nullptr; if (entryReader->NodeExists ("nextNode")) { auto nextNodeReader = entryReader->ChangeRoot ("nextNode"); String nextNodeType = nextNodeReader->ReadString ("dialogNodeType"); nextNode = ObjectFactory::Instance ().Create<IDialogNode> ( nextNodeType, *nextNodeReader, nextNodeType); } DialogNodeEntry* entry = new DialogNodeEntry ( requirement, action, nextNode); { auto messagesReader = entryReader->ChangeRoot ("messages"); XmlReaderCollection messageReaders; messagesReader->ReadNodes ("entry", messageReaders); for (const auto& messageReader : messageReaders) entry->AddMessage (new DialogMessage (messageReader->ReadString ())); } dialogNode_.AddEntry (entry); } }
BOOL CPackFiles::BeginRead(void) { maReads.Init(); ReturnOnFalse(mcFile.Open(EFM_Read)); ReturnOnFalse(ReadHeader()); ReturnOnFalse(ReadNodes()); return TRUE; }
BOOL CPackFiles::BeginWrite(void) { ReturnOnFalse(mcFile.Open(EFM_ReadWrite_Create)); if (mcFile.GetFileSize() > 0) { ReturnOnFalse(ReadHeader()); ReturnOnFalse(ReadNodes()); return TRUE; } else { return WriteHeader(); } }
bool wxDiagram::LoadFile(const wxString& filename) { wxBeginBusyCursor(); wxExprDatabase database(wxExprInteger, _T("id")); if (!database.Read(filename)) { wxEndBusyCursor(); return false; } DeleteAllShapes(); database.BeginFind(); wxExpr *header = database.FindClauseByFunctor(_T("diagram")); if (header) OnHeaderLoad(database, *header); // Scan through all clauses and register the ids wxNode *node = database.GetFirst(); while (node) { wxExpr *clause = (wxExpr *)node->GetData(); long id = -1; clause->GetAttributeValue(_T("id"), id); wxRegisterId(id); node = node->GetNext(); } ReadNodes(database); ReadContainerGeometry(database); ReadLines(database); OnDatabaseLoad(database); wxEndBusyCursor(); return true; }
void PreprocessPBF::ProcessBlock(const TypeConfigRef& typeConfig, std::unique_ptr<PBF::PrimitiveBlock>&& block) { PreprocessorCallback::RawBlockDataRef blockData(new PreprocessorCallback::RawBlockData()); for (int currentGroup=0; currentGroup<block->primitivegroup_size(); currentGroup++) { const PBF::PrimitiveGroup &group=block->primitivegroup(currentGroup); if (group.nodes_size()>0) { ReadNodes(*typeConfig, *block, group, *blockData); } else if (group.has_dense()) { ReadDenseNodes(*typeConfig, *block, group, *blockData); } else if (group.ways_size()>0) { ReadWays(*typeConfig, *block, group, *blockData); } else if (group.relations_size()>0) { ReadRelations(*typeConfig, *block, group, *blockData); } } callback.ProcessBlock(std::move(blockData)); }
void CharacterReader::Visit (yap::XmlReader& visitable) { yap::CharacterReader::Visit (visitable); auto reader = visitable.ChangeRoot (xmlRootNodeName_); auto stringSpriteSetReader = reader->ChangeRoot ("StringSpriteSet"); yap::XmlReaderCollection directionSpriteReaders; stringSpriteSetReader->ReadNodes ("sprite", directionSpriteReaders); for (auto& directionSpriteReader : directionSpriteReaders) { yap::String state = directionSpriteReader->ReadString ("key"); yap::String spriteType = directionSpriteReader->ReadString ( "spriteType"); character_.AddSprite ( state, yap::ObjectFactory::Instance ().Create< yap::SpriteSet<yap::Direction>> ( spriteType, *directionSpriteReader, spriteType)); } }
void PokemonInfoReader::Visit (XmlReader& visitable) { auto reader = visitable.ChangeRoot (xmlRootNodeName_); pokemonInfo_.SetID ( reader->ReadID ( XmlHelper::GetAttrNodeName (DEFAULT_XML_ID_NODE_NAME))); pokemonInfo_.SetName (reader->ReadString (DEFAULT_XML_NAME_NODE_NAME)); pokemonInfo_.SetDescription ( reader->ReadString (DEFAULT_XML_DESCRIPTION_NODE_NAME)); pokemonInfo_.SetSpecies ( reader->ReadString (DEFAULT_XML_SPECIES_NODE_NAME)); pokemonInfo_.SetHeight ( reader->ReadFloat (DEFAULT_XML_HEIGHT_NODE_NAME)); pokemonInfo_.SetWeight ( reader->ReadFloat (DEFAULT_XML_WEIGHT_NODE_NAME)); pokemonInfo_.SetRarity ( reader->ReadInt (DEFAULT_XML_RARITY_NODE_NAME)); pokemonInfo_.SetGenderProbability ( reader->ReadFloat (DEFAULT_XML_GENDER_NODE_NAME)); pokemonInfo_.SetExperience ( reader->ReadInt (DEFAULT_XML_EXPERIENCE_NODE_NAME)); pokemonInfo_.SetExperienceType (StringHelper::Parse<ExperienceType> (reader->ReadString (DEFAULT_XML_EXPERIENCE_TYPE_NODE_NAME))); auto statsReader = reader->ChangeRoot (DEFAULT_XML_BASE_STATS_NODE_NAME); pokemonInfo_.SetHitPoint ( statsReader->ReadInt (DEFAULT_XML_HP_NODE_NAME)); pokemonInfo_.SetAttack ( statsReader->ReadInt (DEFAULT_XML_ATTACK_NODE_NAME)); pokemonInfo_.SetDefense ( statsReader->ReadInt (DEFAULT_XML_DEFENSE_NODE_NAME)); pokemonInfo_.SetSpecialAttack ( statsReader->ReadInt (DEFAULT_XML_SPECIAL_ATTACK_NODE_NAME)); pokemonInfo_.SetSpecialDefense ( statsReader->ReadInt (DEFAULT_XML_SPECIAL_DEFENSE_NODE_NAME)); pokemonInfo_.SetSpeed ( statsReader->ReadInt (DEFAULT_XML_SPEED_NODE_NAME)); auto EVReader = reader->ChangeRoot (DEFAULT_XML_EFFORT_VALUES_NODE_NAME); pokemonInfo_.SetHitPointEV ( EVReader->ReadInt (DEFAULT_XML_HP_NODE_NAME)); pokemonInfo_.SetAttackEV ( EVReader->ReadInt (DEFAULT_XML_ATTACK_NODE_NAME)); pokemonInfo_.SetDefenseEV ( EVReader->ReadInt (DEFAULT_XML_DEFENSE_NODE_NAME)); pokemonInfo_.SetSpecialAttackEV ( EVReader->ReadInt (DEFAULT_XML_SPECIAL_ATTACK_NODE_NAME)); pokemonInfo_.SetSpecialDefenseEV ( EVReader->ReadInt (DEFAULT_XML_SPECIAL_DEFENSE_NODE_NAME)); pokemonInfo_.SetSpeedEV ( EVReader->ReadInt (DEFAULT_XML_SPEED_NODE_NAME)); if (reader->NodeExists (DEFAULT_XML_EVOLUTION_NODE_NAME)) { auto evolutionReader = reader->ChangeRoot ( DEFAULT_XML_EVOLUTION_NODE_NAME); pokemonInfo_.SetEvolutionLevel ( evolutionReader->ReadInt ( XmlHelper::GetAttrNodeName (DEFAULT_XML_LEVEL_ATTR_NAME))); pokemonInfo_.SetPokemonEvolutionID (evolutionReader->ReadID ()); } auto baseSkillsReader = reader->ChangeRoot (DEFAULT_XML_BASE_SKILLS_NODE_NAME); yap::XmlReaderCollection skillReaders; baseSkillsReader->ReadNodes (DEFAULT_XML_SKILL_NODE_NAME, skillReaders); for (auto& skillReader : skillReaders) { UInt16 level = skillReader->ReadInt ( XmlHelper::GetAttrNodeName (DEFAULT_XML_LEVEL_ATTR_NAME)); ID skillID = skillReader->ReadID (); pokemonInfo_.AddBaseSkill (level, skillID); } auto typeReader = reader->ChangeRoot (DEFAULT_XML_TYPES_NODE_NAME); pokemonInfo_.SetType1 (typeReader->ReadInt (DEFAULT_XML_TYPE1_NODE_NAME)); pokemonInfo_.SetType2 (typeReader->ReadInt (DEFAULT_XML_TYPE2_NODE_NAME)); auto graphicReader = reader->ChangeRoot (DEFAULT_XML_GRAPHICS_NODE_NAME); pokemonInfo_.SetIconPath (graphicReader->ReadString (DEFAULT_XML_ICON_NODE_NAME)); // <male> auto maleReader = graphicReader->ChangeRoot (DEFAULT_XML_MALE_NODE_NAME); pokemonInfo_.SetMaleFrontPath (maleReader->ReadString (DEFAULT_XML_FRONT_NODE_NAME)); pokemonInfo_.SetMaleBackPath (maleReader->ReadString (DEFAULT_XML_BACK_NODE_NAME)); auto shinyMaleReader = maleReader->ChangeRoot (DEFAULT_XML_SHINY_NODE_NAME); pokemonInfo_.SetShinyMaleFrontPath (shinyMaleReader->ReadString (DEFAULT_XML_FRONT_NODE_NAME)); pokemonInfo_.SetShinyMaleBackPath (shinyMaleReader->ReadString (DEFAULT_XML_BACK_NODE_NAME)); // </male> // <female> auto femaleReader = graphicReader->ChangeRoot (DEFAULT_XML_FEMALE_NODE_NAME); pokemonInfo_.SetFemaleFrontPath (femaleReader->ReadString (DEFAULT_XML_FRONT_NODE_NAME)); pokemonInfo_.SetFemaleBackPath (femaleReader->ReadString (DEFAULT_XML_BACK_NODE_NAME)); auto shinyFemaleReader = femaleReader->ChangeRoot (DEFAULT_XML_SHINY_NODE_NAME); pokemonInfo_.SetShinyFemaleFrontPath (shinyFemaleReader->ReadString (DEFAULT_XML_FRONT_NODE_NAME)); pokemonInfo_.SetShinyFemaleBackPath (shinyFemaleReader->ReadString (DEFAULT_XML_BACK_NODE_NAME)); // </female> }