CreationOptions::CreationOptions(std::string name, int seed, bool flat, bool different) : m_name{std::move(name)} , m_seed{seed} , m_flat{flat} , m_differentCubeForEachChunk{different} { tinyxml2::XMLDocument doc; tinyxml2::XMLNode* root{doc.NewElement("xml")}; doc.InsertFirstChild(root); { { tinyxml2::XMLElement* name{doc.NewElement("name")}; name->SetText(m_name.c_str()); root->InsertEndChild(name); } { tinyxml2::XMLElement* seed{doc.NewElement("seed")}; seed->SetText(m_seed); root->InsertEndChild(seed); } { tinyxml2::XMLElement* flat{doc.NewElement("flat")}; flat->SetText(m_flat); root->InsertEndChild(flat); } { tinyxml2::XMLElement* different{ doc.NewElement("different_cube_for_each_chunk")}; different->SetText(config::graphics_data::fullScreen); root->InsertEndChild(different); } } tinyxml2::XMLError errorCode{doc.SaveFile(createFileName(m_name).c_str())}; if (errorCode) { std::cout << "Error while creating xml file for world options. \n"; } }