本文整理汇总了C++中XMLFile::setElement方法的典型用法代码示例。如果您正苦于以下问题:C++ XMLFile::setElement方法的具体用法?C++ XMLFile::setElement怎么用?C++ XMLFile::setElement使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类XMLFile
的用法示例。
在下文中一共展示了XMLFile::setElement方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: apply_options
void apply_options(AG_Event *event)
{
int opengl = *static_cast<int*>(AG_PTR(1));
int fs = *static_cast<int*>(AG_PTR(2));
int lang = *static_cast<int*>(AG_PTR(3));
std::stringstream str;
str << "Fullscreen: " << fs;
logger->logDebug(str.str());
if (lang == -1)
return;
switch (lang)
{
case 0:
game->setLanguage("en");
break;
case 1:
game->setLanguage("pt");
break;
case 2:
game->setLanguage("es");
break;
}
interfaceManager->removeAllWindows();
game->restart(opengl, fs, width, height);
XMLFile file;
if (file.load(resourceManager->getDataPath("townslife.cfg")))
{
file.setElement("graphics");
file.changeInt("graphics", "opengl", opengl);
if (fs)
file.changeString("graphics", "fullscreen", "true");
else
file.changeString("graphics", "fullscreen", "false");
file.changeInt("graphics", "width", width);
file.changeInt("graphics", "height", height);
file.setElement("language");
file.changeString("language", "value", game->getLanguage());
file.save();
}
GameState *state = new LoginState;
game->changeState(state);
}
示例2: loadAnimations
void ResourceManager::loadAnimations(const std::string &filename)
{
XMLFile file;
int size;
bool loaded = false;
char *data = loadFile(filename, size);
if (data && file.parse(data))
{
// add all the animations
file.setElement("animation");
do
{
file.setSubElement("body");
int id = file.readInt("animation", "id");
std::string name = file.readString("animation", "name");
int frames = file.readInt("animation", "frames");
int width = file.readInt("animation", "width");
int height = file.readInt("animation", "height");
// get list of animations for each body part
std::list<BeingAnimation*> animList;
do
{
std::string img = file.readString("body", "file");
int part = file.readInt("body", "part");
std::stringstream texName;
texName << part << name;
// check if animation is in content update
if (getDataPath(img).find(".zip") == std::string::npos)
{
img = getDataPath(img);
loaded = graphicsEngine->loadTextureSet(texName.str(), img, width, height);
}
else
{
int imgBufSize = 0;
char *buffer = loadFile(img, imgBufSize);
loaded = graphicsEngine->loadTextureSet(texName.str(), buffer, imgBufSize, width, height);
free(buffer);
}
// load in all the frames of animation
if (loaded)
{
BeingAnimation *anim = new BeingAnimation(id, part);
for (int i = 1; i <= frames; ++i)
{
std::stringstream str;
str << texName.str() << i;
anim->addTexture(graphicsEngine->getTexture(str.str()));
}
animList.push_back(anim);
}
} while (file.nextSubElement("body"));
mAnimations.insert(std::pair<std::string, std::list<BeingAnimation*> >(name, animList));
file.clear("body");
} while (file.nextElement("animation"));
}
}
示例3: loadBodyParts
void ResourceManager::loadBodyParts(const std::string &filename)
{
XMLFile file;
int size;
char *data = loadFile(filename, size);
if (data && file.parse(data))
{
// set size
file.setElement("size");
mBodyWidth = file.readInt("size", "width");
mBodyHeight = file.readInt("size", "height");
// set defaults
file.setElement("default");
mDefaultBody = file.readInt("default", "body");
mDefaultFemale = file.readInt("default", "female");
mDefaultHair = file.readInt("default", "hair");
mDefaultChest = file.readInt("default", "chest");
mDefaultLegs = file.readInt("default", "legs");
mDefaultFeet = file.readInt("default", "feet");
// add all the body parts
file.setElement("body");
do
{
file.setSubElement("image");
int id = file.readInt("body", "id");
std::string icon = file.readString("body", "icon");
int part = file.readInt("body", "part");
std::string colour = file.readString("body", "colour");
Texture *iconTex = NULL;
if (icon != "")
{
if (getDataPath(icon).find(".zip") == std::string::npos)
{
iconTex = graphicsEngine->loadTexture(getDataPath(icon));
}
else
{
int iconBufSize = 0;
char *buffer = loadFile(icon, iconBufSize);
iconTex = graphicsEngine->loadTexture(icon, buffer, iconBufSize);
free(buffer);
}
if (iconTex == NULL)
{
logger->logError("Unable to load icon: " + icon);
}
}
BodyPart *body = new BodyPart(id, part, iconTex);
do
{
int dir = -1;
// check if img is in a content update
std::string img = file.readString("image", "file");
std::string dirstr = file.readString("image", "dir");
if (dirstr == "SE")
dir = DIRECTION_SOUTHEAST;
else if (dirstr == "SW")
dir = DIRECTION_SOUTHWEST;
else if (dirstr == "NE")
dir = DIRECTION_NORTHEAST;
else if (dirstr == "NW")
dir = DIRECTION_NORTHWEST;
std::string path = getDataPath(img);
size_t found = path.find(".zip");
if (found == std::string::npos)
{
body->addTexture(dir, path);
}
else
{
int imgBufSize = 0;
char *buffer = loadFile(img, imgBufSize);
body->addTexture(dir, img, buffer, imgBufSize);
free(buffer);
}
} while (file.nextSubElement("image"));
mBodyParts.push_back(body);
file.clear("image");
} while (file.nextElement("body"));
}
}