本文整理汇总了C++中XML::getString方法的典型用法代码示例。如果您正苦于以下问题:C++ XML::getString方法的具体用法?C++ XML::getString怎么用?C++ XML::getString使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类XML
的用法示例。
在下文中一共展示了XML::getString方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: fromXml
void PlayerDetails::fromXml(XML& xml){
mMesh = xml.getString("ship", "mesh");
mDll = xml.getString("ship", "dll");
mShield = xml.getFloat("ship", "shield");
mShieldRegen = xml.getFloat("ship", "shield_regen");
mArmour = xml.getFloat("ship", "armour");
mEnergy = xml.getFloat("ship", "energy");
mEnergyRegen = xml.getFloat("ship", "energy_regen");
mAmmo = xml.getInt("ship", "ammo");
mSpeed = xml.getFloat("ship", "speed");
mDeathFX = xml.getString("death_fx");
if (xml.getError() != XML_OK){
mDeathFX = "";
}
{
XMLIterator it(&xml);
it.setElemName("ship>weaponchain");
it.gotoZero();
while(it.gotoNext()==true){
WeaponChain wc(it.getElem());
mWeaponChain.push_back(wc);
}
}{
XMLIterator it(&xml);
it.setElemName("ship>reactor");
it.gotoZero();
while(it.gotoNext()==true){
mReactorNodes.push_back(it.getElem().getString("childName"));
}
}
/*
XMLIterator it(&xml);
it.setElemName("");
it.gotoZero();
it.gotoNext();
XML elem;
if (it.gotoNext() == false){
throw("Ship Definition File Missing 3 Weapon Chain");
}
elem = it.getElem();
if (it.gotoNext() == false){
throw("Ship Definition File Missing 2 Weapon Chain");
}
elem = it.getElem();
mSecondaryWeapon.fromXml(elem);
if (it.gotoNext() == false){
throw("Ship Definition File Missing 1 Weapon Chain");
}
elem = it.getElem();
mSuperWeapon.fromXml(elem);*/
int g=0;
}
示例2: createFromXml
void Cell::createFromXml(XML* xml){
/*mOverlay = mOverlayManager.create(getId());
mOverlay->setZOrder(xml->getFloat("z"));
mOverlay->show();*/
//mZOrder = xml->getFloat("z");
//mTrack = new RefinedTrack(xml, false);
mX = new RefinedNumericTrack(xml, "posx");
mY = new RefinedNumericTrack(xml, "posy");
mAlpha = new RefinedNumericTrack(xml, "alpha");
mScaleX = new RefinedNumericTrack(xml, "sclx");
mScaleY = new RefinedNumericTrack(xml, "scly");
//mAngle = new RefinedNumericTrack(xml, "angle");
mPos.x = xml->getFloat("posx");
mPos.y = xml->getFloat("posy");
XMLIterator xmlIt(xml);
/*xmlIt.setElemName("cell");
xmlIt.gotoZero();
while(xmlIt.gotoNext()==true){
mElement.push_back(new Cell(&(xmlIt.getElem())));
}*/
xmlIt.setElemName("cell>image");
xmlIt.gotoZero();
while(xmlIt.gotoNext()==true){
Image* img = new Image();
img->init(&(xmlIt.getElem()));
mElement.push_back(img);
img->setDelta(Ogre::Vector2(-1, -1));
img->moveTimes(getTimeOn());
}
xmlIt.setElemName("cell>textzone");
xmlIt.gotoZero();
while(xmlIt.gotoNext()==true){
XML xml = xmlIt.getElem();
string txttype = xml.getString("type");
Text* txt;
if (txttype == "rolling"){
txt = new RollingText();
}else if (txttype == "static"){
txt = new StaticText();
}else{
txt = new StaticText();
}
txt->init(&(xmlIt.getElem()));
txt->setFontStyle(FontStyleManager::getSingleton()->requestFontStyle(xmlIt.getElem().getString("style")));
mElement.push_back(txt);
txt->setDelta(Ogre::Vector2(-1, -1));
txt->moveTimes(getTimeOn());
}
}
示例3: get
WeaponDBE* WeaponDB::get(string id){
for (list<WeaponDBE*>::iterator it = mEntry.begin();it!=mEntry.end();it++){
if ((*it)->getId() == id){
return (*it);
};
}
File f(id+".xml", "media\\weapons\\weapons");
XML* xml;
if (f.error() != FILE_OK){
throw("Error accessing file : "+id+" in context weapons\\weapons");
xml = NULL;
}else{
xml = new XML(f.getStrContent());
}
string type = xml->getString("weapon","type");
if (xml->getError() != XML_OK){
throw("Error : Weapon requires type");
}
WeaponDBE* rv;
if (type == "dll"){
rv = new DLLWeaponDBE(id, *xml);
}else if (type == "internal"){
string subtype = xml->getString("weapon","subtype");
if (xml->getError() != XML_OK){
throw("Error : Weapon requires subtype");
}
if (subtype == "ammo"){
rv = new AmmoWeaponDBE(id, *xml);
}else if (subtype == "beam"){
rv = new BeamWeaponDBE(id, *xml);
}else{
throw("Subtype : "+subtype+" not recognized");
}
}else{
throw("Type : "+type+" not recognized");
}
//rv->setMount(launcher, mMount);
delete xml;
mEntry.push_back(rv);
return rv;
}
示例4: init
void DroneDBE::init(XML& dronestatXml, XML& objectMovementXml){
/*File f(getId()+".xml", "media/drones");
if (f.error() != FILE_OK){
throw("Drone without an XML file ("+getId()+")");
}
XML* xml;
xml = new XML();
xml->setContent((char*)f.content());*/
//XML* xml = new XML(getId()+".xml", "media/drones");
mMaxTime = dronestatXml.getFloat("maxtime");
std::string s;
s = dronestatXml.getString("class");
if (dronestatXml.getError() != XML_OK){
throw("Drone class undefined ("+getId()+")");
}
/*File file(s+".xml", "media/drones/classes");
if (file.error() != FILE_OK){
throw("Drone without an XML class file ("+getId()+")");
}
XML* classXml;
classXml = new XML();
classXml->setContent((char*)file.content());*/
XML* classXml = new XML(s+".xml", "media/drones/classes");
mScale = vector3FromString(classXml->getString("drone", "scale"));
if (classXml->getError() != XML_OK){
mScale = Ogre::Vector3(1,1,1);
}/*else{
int g=0;
}*/
mMaxLife = classXml->getFloat("drone", "life");
if (classXml->getError() != XML_OK)
throw("Class File Missing Argument : "+getId()+" (life)");
mScore= classXml->getInt("drone", "score");
if (classXml->getError() != XML_OK)
throw("Class File Missing Argument : "+getId()+" (score)");
string dllName= classXml->getString("drone", "dll");
if (classXml->getError() == XML_OK){
#ifdef _DEBUG
string name = dllName+"d";
mDll = LoadLibrary(name.c_str());
#else
mDll = LoadLibrary(dllName.c_str());
#endif
//mDllCallback = (DLLCallback)::GetProcAddress(weaponModule, "getInstance");
}else{
mDll = NULL;
//mDllCallback = NULL;
}
{
XMLIterator it(classXml);
it.setElemName("drone>death");
it.gotoZero();
while(it.gotoNext() != false){
DEATH_BEHAVIOUR db;
XML dbxml = it.getElem();
db.mFX = dbxml.getString("fx");
if (dbxml.getError() != XML_OK) db.mFX = "";
db.mDLLCustomCode = dbxml.getString("dll");
if (dbxml.getError() != XML_OK) db.mDLLCustomCode = "";
db.mTime = dbxml.getFloat("time");
if (dbxml.getError() != XML_OK) db.mTime = 0;
#if 0
XMLIterator dit(&dbxml);
dit.setElemName("death>debris");
dit.gotoZero();
while(dit.gotoNext() != false){
db.mDebris.push_back(dit.getElem());
/*DEBRIS_DETAIL dd;
XML ditElem = dit.getElem();
string dir = ditElem.getString("direction");
if (dir == "forward"){
dd.mDirection = DEBRIS_DIRECTION_FORWARD;
}else if (dir == "random"){
dd.mDirection = DEBRIS_DIRECTION_RANDOM;
}else{
throw("Unsupported debris direction : "+dir);
}
dd.mSpinMultiplier = ditElem.getFloat("spin");
dd.mMesh = ditElem.getString("mesh");
dd.mPython = ditElem.getString("python");
if (ditElem.getError() != XML_OK){
dd.mPython = "";
}
//.........这里部分代码省略.........
示例5: init
void Level::init(string filename){
_resetStdVar();
mViewport= NULL;
//mProgressBar->draw(Core::getSingleton()->getWindow());
//File::setLoadCallback(mProgressBar);
ResourceGroupManager::getSingleton().createResourceGroup("Level");
//File* lf;
XML* lx;
/*lf = new File(filename, "media\\levels");
if (lf->error() != FILE_OK){
throw((string)("Level file not found : "+filename));
}
lx = new XML(lf->getStrContent());*/
lx = new XML(filename, "media\\levels");
string loadingSoundString;
loadingSoundString = lx->getString("level","loadingsound");
if (lx->getError() == XML_OK){
mLoadingSound = SoundManager::getSingleton()->createSound(loadingSoundString+".ogg", true);
mLoadingSound->play();
}else{
mLoadingSound = NULL;
}
mTimer = 0;
/*mContainer->setSolid(false);
mContainer->setType(OBJ_TYPE_CONTAINER);
mContainer->build();*/
//openLevelFile(filename);
//Util::Log("Loading World...");
XMLIterator XMLIt(lx);
XMLIt.setElemName("level>segment");
XMLIt.gotoZero();
//LevelSegment* seg;
while(XMLIt.gotoNext()==true){
XML elem = XMLIt.getElem();
addSegment(
elem.getString("name"),
"media\\levels",
elem.getString("name").substr(0,elem.getString("name").length()-4),
elem.getFloat("length"), elem.getString("append")=="1");
/*File* f;
XML elem = XMLIt.getElem();
f = new File(elem.getString("name"),"levels");
Util::Log("Loading : "+elem.getString("name"), 4);
if (f->error() != FILE_OK){
throw((string)("Level file not found : "+(string)filename));
}else{
XML xml;
xml.setContent(f->getStrContent());
addSegment(
xml,
elem.getString("name").substr(0,elem.getString("name").length()-4),
elem.getFloat("length"));
//mCurrentSegment = new LevelSegment();
//mCurrentSegment->build(&xml, elem.getString("name").substr(0,elem.getString("name").length()-4), elem.getFloat("length"));
//mSegment.push_back(mCurrentSegment);
}
delete f;*/
}
if (mSegment.size() == 0) throw ("Your level has 0 segments.");
delete lx;
//delete lf;
// closeLevelFile();
}
示例6: init
void DefaultDroneDBE::init(XML& dronestatXml, XML& objectMovementXml){
string coord = objectMovementXml.getString("transform_c");
if (objectMovementXml.getError() != XML_OK){
coord = "macro:zero_transform";
}else{
int g=0;
}
mTransformCoordinator = dynamic_cast<Coordinator::TransformCoordinator*>(Coordinator::CoordinatorFactory::getSingleton()->get(coord));
mMaxTime = mTransformCoordinator->getLength();
{
XMLIterator it(&objectMovementXml);
it.setElemName("##anything##>goanim");
it.gotoZero();
while(it.gotoNext() != false){
XML* goxml = new XML(it.getElem().getContent());
mGoAnim.push_back(goxml);
};
}{
XMLIterator it(&objectMovementXml);
it.setElemName("##anything##>anim");
it.gotoZero();
while(it.gotoNext() != false){
XML* goxml = new XML(it.getElem().getContent());
mAnim.push_back(goxml);
};
}
mMaxTime = 9999;
Parent::init(dronestatXml,objectMovementXml);
/*XML xml3;
xml3 = xml->extractElem("level>dronestats");
if (xml->getError()!=XML_OK){
throw("WTF?");
}*/
{
XMLIterator it(&dronestatXml);
it.setElemName("##anything##>fire");
it.gotoZero();
FIRING_TIME ft;
std::string g;
while(it.gotoNext() != false){
XML itXml = it.getElem();
string time = itXml.getString("time");
string mount = itXml.getString("mount");
vector<string> t;
vector<string> m;
Tokenize(time,t,",");
Tokenize(mount,m,",");
vector<string>::iterator ti;
vector<string>::iterator mi;
string is = itXml.getString("inertia");
if (itXml.getError() == XML_OK){
if (is == "a"){ // as in actual;
ft.inertia = Ogre::Vector3(FLT_MAX,FLT_MAX,FLT_MAX);
}else{
ft.inertia = vector3FromString(is);
}
}else{
ft.inertia = Ogre::Vector3(0,0,0);
}
mi = m.begin();
//for (mi = m.begin();mi!=m.end();mi++){
for (ti = t.begin();ti!=t.end();ti++){
//ft.mount = atoi((*m.begin()).c_str());
if ((*ti).find("-") != string::npos){
vector<string> i;
Tokenize((*ti),i,"-");
if (i.size() != 3){
i.push_back("0");
//throw("Invalid drone firing times range, requires 3 arguments ("+(*ti)+")");
}
float start, end, step;
start = atof(i[0].c_str());
end = atof(i[1].c_str());
step = atof(i[2].c_str());
ft.time = start;
ft.firingOption = FIRING_START;
for (mi = m.begin();mi!=m.end();mi++){
ft.mount = atoi((*mi).c_str());
mFiringTime.push_back(ft);
ft.time +=step;
}
ft.time = end;
ft.firingOption = FIRING_STOP;
for (mi = m.begin();mi!=m.end();mi++){
ft.mount = atoi((*mi).c_str());
mFiringTime.push_back(ft);
ft.time +=step;
}
//.........这里部分代码省略.........