void MapReader::Visit (XmlReader& visitable) { BaseReaderVisitor::Visit (visitable); auto reader = visitable.ChangeRoot (xmlRootNodeName_); map_.SetID ( reader->ReadID ( XmlHelper::GetAttrNodeName (DEFAULT_XML_ID_NODE_NAME))); map_.SetName (reader->ReadString (DEFAULT_XML_NAME_NODE_NAME)); /// @todo Integrate CollidableArea in xml loading (remove inclusion). GridCollidableArea* gridCollidableArea = new GridCollidableArea (); gridCollidableArea->SetSegmentCount (10, 10); map_.SetCollidableArea (gridCollidableArea); map_.SetSize ( reader->ReadUInt (DEFAULT_XML_WIDTH_NODE_NAME), reader->ReadUInt (DEFAULT_XML_HEIGHT_NODE_NAME)); auto staticObjectsReader = reader->ChangeRoot ("staticObjects"); ReadStaticObjects (*staticObjectsReader); auto dynamicObjectsReader = reader->ChangeRoot ("dynamicObjects"); ReadDynamicObjects (*dynamicObjectsReader); }
int main(int argc, char *argv[]) { int server_socket = -1; int server_port = 0; if(argc == 2) server_port = atoi(argv[1]); //init server socket server_socket = CreateServer(server_port); printf("The Server Bind Ports: %d\n",server_port); int client_socket = -1; struct sockaddr_in client_info; socklen_t client_info_len = sizeof(client_info); ChangeRoot(); //get client accept while((client_socket = accept(server_socket,(sockaddr*)&client_info,&client_info_len)) != -1) { if(client_socket == -1) Error("Accept Failed\n"); pthread_t thread_id; if(pthread_create(&thread_id,NULL,StarServer,(void*) &client_socket) != 0) Error("Thread Create Failed\n"); } printf("Http Server End\n"); close(server_port); }
void SpriteReader::Visit (XmlReader& visitable) { auto reader = visitable.ChangeRoot (xmlRootNodeName_); reader = reader->ChangeRoot (DEFAULT_XML_TEXTURE_NODE_NAME); sprite_.SetTexture ( ObjectFactory::Instance ().Create<Texture> ( "Texture", reader->ReadID ( XmlHelper::GetAttrNodeName (DEFAULT_XML_TEXTURE_ID_NODE_NAME)))); }
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> }