本文整理汇总了C++中XMLDoc::ReadDoc方法的典型用法代码示例。如果您正苦于以下问题:C++ XMLDoc::ReadDoc方法的具体用法?C++ XMLDoc::ReadDoc怎么用?C++ XMLDoc::ReadDoc使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类XMLDoc
的用法示例。
在下文中一共展示了XMLDoc::ReadDoc方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: OnCredits
void IntroScreen::OnCredits() {
if (m_credits_wnd) {
delete m_credits_wnd;
m_credits_wnd = 0;
return;
}
XMLDoc doc;
boost::filesystem::ifstream ifs(GetResourceDir() / "credits.xml");
doc.ReadDoc(ifs);
ifs.close();
if (!doc.root_node.ContainsChild("CREDITS"))
return;
XMLElement credits = doc.root_node.Child("CREDITS");
// only the area between the upper and lower line of the splash screen should be darkend
// if we use another splash screen we have the change the following values
GG::Y nUpperLine = ( 79 * GG::GUI::GetGUI()->AppHeight()) / 768;
GG::Y nLowerLine = (692 * GG::GUI::GetGUI()->AppHeight()) / 768;
int credit_side_pad(30);
m_credits_wnd = new CreditsWnd(GG::X0, nUpperLine, GG::GUI::GetGUI()->AppWidth(), nLowerLine-nUpperLine,
credits,
credit_side_pad, 0, Value(m_menu->UpperLeft().x) - credit_side_pad,
Value(nLowerLine-nUpperLine), Value((nLowerLine-nUpperLine))/2);
m_splash->AttachChild(m_credits_wnd);
}
示例2: EmpireColors
const std::vector<GG::Clr>& EmpireColors() {
static std::vector<GG::Clr> colors;
if (colors.empty()) {
XMLDoc doc;
std::string file_name = "empire_colors.xml";
boost::filesystem::ifstream ifs(GetResourceDir() / file_name);
if (ifs) {
doc.ReadDoc(ifs);
ifs.close();
} else {
Logger().errorStream() << "Unable to open data file " << file_name;
return colors;
}
for (int i = 0; i < doc.root_node.NumChildren(); ++i) {
colors.push_back(XMLToClr(doc.root_node.Child(i)));
}
}
if (colors.empty()) {
colors.push_back(GG::Clr( 0, 255, 0, 255));
colors.push_back(GG::Clr( 0, 0, 255, 255));
colors.push_back(GG::Clr(255, 0, 0, 255));
colors.push_back(GG::Clr( 0, 255, 255, 255));
colors.push_back(GG::Clr(255, 255, 0, 255));
colors.push_back(GG::Clr(255, 0, 255, 255));
}
return colors;
}
示例3: SetFromFile
void OptionsDB::SetFromFile(const boost::filesystem::path& file_path,
const std::string& version)
{
XMLDoc doc;
try {
boost::filesystem::ifstream ifs(file_path);
if (ifs) {
doc.ReadDoc(ifs);
if (version.empty() || (doc.root_node.ContainsChild("version-string") &&
doc.root_node.Child("version-string").Text() == version))
{
GetOptionsDB().SetFromXML(doc);
}
}
} catch (const std::exception&) {
std::cerr << UserString("UNABLE_TO_READ_CONFIG_XML") << ": "
<< file_path << std::endl;
}
}
示例4: mainConfigOptionsSetup
int mainConfigOptionsSetup(const std::vector<std::string>& args) {
InitDirs((args.empty() ? "" : *args.begin()));
// read and process command-line arguments, if any
try {
// add entries in options DB that have no other obvious place
GetOptionsDB().AddFlag('h', "help", UserStringNop("OPTIONS_DB_HELP"), false);
GetOptionsDB().AddFlag('g', "generate-config-xml", UserStringNop("OPTIONS_DB_GENERATE_CONFIG_XML"), false);
GetOptionsDB().AddFlag('f', "fullscreen", UserStringNop("OPTIONS_DB_FULLSCREEN"), STORE_FULLSCREEN_FLAG);
GetOptionsDB().Add("reset-fullscreen-size", UserStringNop("OPTIONS_DB_RESET_FSSIZE"), true);
GetOptionsDB().Add<bool>("fake-mode-change", UserStringNop("OPTIONS_DB_FAKE_MODE_CHANGE"), FAKE_MODE_CHANGE_FLAG);
GetOptionsDB().Add<int>("fullscreen-monitor-id", UserStringNop("OPTIONS_DB_FULLSCREEN_MONITOR_ID"), 0, RangedValidator<int>(0, 5));
GetOptionsDB().AddFlag('q', "quickstart", UserStringNop("OPTIONS_DB_QUICKSTART"), false);
GetOptionsDB().AddFlag("auto-quit", UserStringNop("OPTIONS_DB_AUTO_QUIT"), false);
GetOptionsDB().Add<int>("auto-advance-n-turns", UserStringNop("OPTIONS_DB_AUTO_N_TURNS"), 0, RangedValidator<int>(0, 400), false);
GetOptionsDB().Add<std::string>("load", UserStringNop("OPTIONS_DB_LOAD"), "", Validator<std::string>(), false);
GetOptionsDB().Add("UI.sound.music-enabled", UserStringNop("OPTIONS_DB_MUSIC_ON"), true);
GetOptionsDB().Add("UI.sound.enabled", UserStringNop("OPTIONS_DB_SOUND_ON"), true);
GetOptionsDB().Add<std::string>("version-string", UserStringNop("OPTIONS_DB_VERSION_STRING"),
FreeOrionVersionString(), Validator<std::string>(), true);
GetOptionsDB().AddFlag('r', "render-simple", UserStringNop("OPTIONS_DB_RENDER_SIMPLE"), false);
// Add the keyboard shortcuts
Hotkey::AddOptions(GetOptionsDB());
// read config.xml and set options entries from it, if present
{
XMLDoc doc;
try {
boost::filesystem::ifstream ifs(GetConfigPath());
if (ifs) {
doc.ReadDoc(ifs);
// reject config files from out-of-date version
if (doc.root_node.ContainsChild("version-string") &&
doc.root_node.Child("version-string").Text() == FreeOrionVersionString())
{
GetOptionsDB().SetFromXML(doc);
}
}
} catch (const std::exception&) {
std::cerr << UserString("UNABLE_TO_READ_CONFIG_XML") << std::endl;
}
}
// override previously-saved and default options with command line parameters and flags
GetOptionsDB().SetFromCommandLine(args);
// Handle the case where the resource-dir does not exist anymore
// gracefully by resetting it to the standard path into the
// application bundle. This may happen if a previous installed
// version of FreeOrion was residing in a different directory.
if (!boost::filesystem::exists(GetResourceDir()) ||
!boost::filesystem::exists(GetResourceDir() / "credits.xml") ||
!boost::filesystem::exists(GetResourceDir() / "data" / "art" / "misc" / "missing.png"))
{
DebugLogger() << "Resources directory from config.xml missing or does not contain expected files. Resetting to default.";
GetOptionsDB().Set<std::string>("resource-dir", "");
// double-check that resetting actually fixed things...
if (!boost::filesystem::exists(GetResourceDir()) ||
!boost::filesystem::exists(GetResourceDir() / "credits.xml") ||
!boost::filesystem::exists(GetResourceDir() / "data" / "art" / "misc" / "missing.png"))
{
DebugLogger() << "Default Resources directory missing or does not contain expected files. Cannot start game.";
throw std::runtime_error("Unable to load game resources at default location: " +
PathString(GetResourceDir()) + " : Install may be broken.");
}
}
// did the player request generation of config.xml, saving the default (or current) options to disk?
if (GetOptionsDB().Get<bool>("generate-config-xml")) {
try {
GetOptionsDB().Commit();
} catch (const std::exception&) {
std::cerr << UserString("UNABLE_TO_WRITE_CONFIG_XML") << std::endl;
}
}
if (GetOptionsDB().Get<bool>("render-simple")) {
GetOptionsDB().Set<bool>("UI.galaxy-gas-background",false);
GetOptionsDB().Set<bool>("UI.galaxy-starfields", false);
GetOptionsDB().Set<bool>("show-fps", true);
}
} catch (const std::invalid_argument& e) {
std::cerr << "main() caught exception(std::invalid_argument): " << e.what() << std::endl;
boost::this_thread::sleep(boost::posix_time::seconds(3));
return 1;
} catch (const std::runtime_error& e) {
std::cerr << "main() caught exception(std::runtime_error): " << e.what() << std::endl;
boost::this_thread::sleep(boost::posix_time::seconds(3));
return 1;
} catch (const std::exception& e) {
std::cerr << "main() caught exception(std::exception): " << e.what() << std::endl;
boost::this_thread::sleep(boost::posix_time::seconds(3));
//.........这里部分代码省略.........
示例5: mainConfigOptionsSetup
int mainConfigOptionsSetup(int argc, char* argv[])
{
InitDirs(argv[0]);
// read and process command-line arguments, if any
try {
// add entries in options DB that have no other obvious place
GetOptionsDB().AddFlag('h', "help", "OPTIONS_DB_HELP", false);
GetOptionsDB().AddFlag('g', "generate-config-xml", "OPTIONS_DB_GENERATE_CONFIG_XML", false);
GetOptionsDB().AddFlag('f', "fullscreen", "OPTIONS_DB_FULLSCREEN", STORE_FULLSCREEN_FLAG);
GetOptionsDB().Add("reset-fullscreen-size", "OPTIONS_DB_RESET_FSSIZE", true);
GetOptionsDB().AddFlag('q', "quickstart", "OPTIONS_DB_QUICKSTART", false);
GetOptionsDB().AddFlag("auto-advance-first-turn", "OPTIONS_DB_AUTO_FIRST_TURN", false);
GetOptionsDB().Add<std::string>("load", "OPTIONS_DB_LOAD", "", Validator<std::string>(),false);
GetOptionsDB().Add("UI.sound.music-enabled", "OPTIONS_DB_MUSIC_ON", true);
GetOptionsDB().Add("UI.sound.enabled", "OPTIONS_DB_SOUND_ON", true);
GetOptionsDB().Add<std::string>("version-string", "OPTIONS_DB_VERSION_STRING",
FreeOrionVersionString(), Validator<std::string>(),true);
// read config.xml and set options entries from it, if present
{
XMLDoc doc;
try {
boost::filesystem::ifstream ifs(GetConfigPath());
if (ifs) {
doc.ReadDoc(ifs);
// reject config files from out-of-date version
if (doc.root_node.ContainsChild("version-string") &&
doc.root_node.Child("version-string").Text() == FreeOrionVersionString())
{
GetOptionsDB().SetFromXML(doc);
}
}
} catch (const std::exception&) {
std::cerr << UserString("UNABLE_TO_READ_CONFIG_XML") << std::endl;
}
}
// override previously-saved and default options with command line parameters and flags
GetOptionsDB().SetFromCommandLine(argc, argv);
// Handle the case where the resource-dir does not exist anymore
// gracefully by resetting it to the standard path into the
// application bundle. This may happen if a previous installed
// version of FreeOrion was residing in a different directory.
if (!boost::filesystem::exists(GetResourceDir()))
GetOptionsDB().Set<std::string>("resource-dir", "");
// did the player request generation of config.xml, saving the default (or current) options to disk?
if (GetOptionsDB().Get<bool>("generate-config-xml")) {
try {
boost::filesystem::ofstream ofs(GetConfigPath());
if (ofs) {
GetOptionsDB().GetXML().WriteDoc(ofs);
} else {
std::cerr << UserString("UNABLE_TO_WRITE_CONFIG_XML") << std::endl;
std::cerr << GetConfigPath().string() << std::endl;
}
} catch (const std::exception&) {
std::cerr << UserString("UNABLE_TO_WRITE_CONFIG_XML") << std::endl;
}
}
} catch (const std::invalid_argument& e) {
std::cerr << "main() caught exception(std::invalid_argument): " << e.what() << std::endl;
Sleep(3000);
return 1;
} catch (const std::runtime_error& e) {
std::cerr << "main() caught exception(std::runtime_error): " << e.what() << std::endl;
Sleep(3000);
return 1;
} catch (const std::exception& e) {
std::cerr << "main() caught exception(std::exception): " << e.what() << std::endl;
Sleep(3000);
return 1;
} catch (...) {
std::cerr << "main() caught unknown exception." << std::endl;
return 1;
}
return 0;
}
示例6: main
int main(int argc, char* argv[]) {
InitDirs(argv[0]);
std::vector<std::string> args;
for (int i = 0; i < argc; ++i)
args.push_back(argv[i]);
#else
int wmain(int argc, wchar_t* argv[], wchar_t* envp[]) {
// copy UTF-16 command line arguments to UTF-8 vector
std::vector<std::string> args;
for (int i = 0; i < argc; ++i) {
std::wstring argi16(argv[i]);
std::string argi8;
utf8::utf16to8(argi16.begin(), argi16.end(), std::back_inserter(argi8));
args.push_back(argi8);
}
InitDirs((args.empty() ? "" : *args.begin()));
#endif
try {
GetOptionsDB().AddFlag('h', "help", "Print this help message.");
// read config.xml and set options entries from it, if present
XMLDoc doc;
{
boost::filesystem::ifstream ifs(GetConfigPath());
if (ifs) {
doc.ReadDoc(ifs);
GetOptionsDB().SetFromXML(doc);
}
}
GetOptionsDB().SetFromCommandLine(args);
if (GetOptionsDB().Get<bool>("help")) {
GetOptionsDB().GetUsage(std::cerr);
return 0;
}
parse::init();
ServerApp g_app;
g_app(); // Calls ServerApp::Run() to run app (intialization and main process loop)
} catch (const std::invalid_argument& e) {
Logger().errorStream() << "main() caught exception(std::invalid_arg): " << e.what();
std::cerr << "main() caught exception(std::invalid_arg): " << e.what() << std::endl;
return 1;
} catch (const std::runtime_error& e) {
Logger().errorStream() << "main() caught exception(std::runtime_error): " << e.what();
std::cerr << "main() caught exception(std::runtime_error): " << e.what() << std::endl;
return 1;
} catch (const std::exception& e) {
Logger().errorStream() << "main() caught exception(std::exception): " << e.what();
std::cerr << "main() caught exception(std::exception): " << e.what() << std::endl;
return 1;
} catch (...) {
Logger().errorStream() << "main() caught unknown exception.";
std::cerr << "main() caught unknown exception." << std::endl;
return 1;
}
return 0;
}