#include "XmlBasic.h" using namespace std; using namespace graphic; bool xml::XmlBasic::IdentifyBasic(TiXmlElement *tag) { if(!tag->ValueStr().compare("direction")) _direction = IdDirection(tag->GetText()); else if(!tag->ValueStr().compare("faction")) _faction = IdFaction(tag->GetText()); else if(!tag->ValueStr().compare("imagepath")) LoadImages(tag->GetText()); else if(!tag->ValueStr().compare("rowpos")) _rowpos = atoi(tag->GetText()); else if(!tag->ValueStr().compare("rowsize")) _rowsize = atoi(tag->GetText()); else if(!tag->ValueStr().compare("colpos")) _colpos = atoi(tag->GetText()); else if(!tag->ValueStr().compare("colsize")) _colsize = atoi(tag->GetText()); else // No basic found return false; return true; } int xml::XmlBasic::IdDirection(string direction) { if(!direction.compare("north")) return NORTH; if(!direction.compare("north_east")) return NORTH_EAST; if(!direction.compare("east")) return EAST; if(!direction.compare("south_east")) return SOUTH_EAST; if(!direction.compare("south")) return SOUTH; if(!direction.compare("south_west")) return SOUTH_WEST; if(!direction.compare("west")) return WEST; if(!direction.compare("north_west")) return NORTH_WEST; return SOUTH; } int xml::XmlBasic::IdFaction(string faction) { if(!faction.compare("no_faction")) return F_NO_FACTION; if(!faction.compare("mercenaries")) return F_MERCENARIES; if(!faction.compare("ngg")) return F_NGG; if(!faction.compare("swa")) return F_SWA; return F_NO_FACTION ; } void xml::XmlBasic::LoadImages(string path) { Image * img; unsigned int counter = 1; char image_name[8] = "01.png"; // Images are deleted in there target element destructor try { // Load images until no new exists, One must exist or Loading fails while(ImageFileExists(data_dir + path + image_name)) { img = gtracker->GetImage(data_dir + path + image_name, screen->GetGraphicMode()); _views.push_back(img); counter++; sprintf(image_name, "%02i.png", counter); } } catch(Exception e) { e.PrintError(); exit(-1); } }