state file saving with json

gui_api_redesign
Joey Pollack 4 years ago
parent df18d77a72
commit de0bc576ee

@ -253,42 +253,33 @@ namespace lunarium
OpRes State::SaveToFile(std::string filename) OpRes State::SaveToFile(std::string filename)
{ {
// pugi::xml_document doc; nlohmann::json j;
// doc.append_child("State"); auto& s = j["State"];
s["DataDirectory"] = DataDirectory;
// doc.child("State").append_child("DataDirectory");
// doc.child("State").child("DataDirectory").text().set(DataDirectory.c_str()); auto& d = s["Display"];
const char* names[] = { "opengl", "vulkan", "unknown" };
// const char* types[] = { "game", "editor", "test"}; d["FullScreenResolution"]["Width"] = Display.FullScreenResolution.Width;
// doc.child("State").append_child("Mode").append_attribute("Type").set_value(types[Mode]); d["FullScreenResolution"]["Height"] = Display.FullScreenResolution.Height;
d["WindowedSize"]["Width"] = Display.WindowedSize.Width;
// // Display d["WindowedSize"]["Height"] = Display.WindowedSize.Height;
// pugi::xml_node display = doc.child("State").append_child("Display"); d["WindowStartPosition"]["X"] = Display.WindowStartPosition.X;
// display.append_attribute("IsFullScreen").set_value(Display.IsFullScreen); d["WindowStartPosition"]["Y"] = Display.WindowStartPosition.Y;
// display.append_attribute("VSyncEnabled").set_value(Display.VSyncEnabled); d["Renderer"] = names[Display.Renderer];
d["IsFullScreen"] = Display.IsFullScreen;
// const char* names[] = { "opengl", "vulkan", "unknown" }; d["VSyncEnabled"] = Display.VSyncEnabled;
// display.append_attribute("Renderer").set_value(names[Display.Renderer]);
auto& i = s["Interface"];
// pugi::xml_node fsr = display.append_child("FullScreenResolution"); i["MainFont"] = Interface.MainFont;
// fsr.append_attribute("Width").set_value(Display.FullScreenResolution.Width);
// fsr.append_attribute("Height").set_value(Display.FullScreenResolution.Height); std::ofstream ofs = std::ofstream(filename.c_str());
if (!ofs.is_open())
// pugi::xml_node ws = display.append_child("WindowedSize"); {
// ws.append_attribute("Width").set_value(Display.WindowedSize.Width); return OpRes::Fail("Could not save state file: %s - failed to open/create file", filename.c_str());
// ws.append_attribute("Height").set_value(Display.WindowedSize.Height); }
// pugi::xml_node wsp = display.append_child("WindowStartPosition");
// wsp.append_attribute("X").set_value(Display.WindowStartPosition.X);
// wsp.append_attribute("Y").set_value(Display.WindowStartPosition.Y);
// // Interface
// pugi::xml_node interface = doc.child("State").append_child("Interface");
// interface.append_attribute("MainFont").set_value(Interface.MainFont.c_str());
// return doc.save_file(filename.c_str()) ofs << std::setw(4) << j;
// ? OpRes::OK() ofs.close();
// : OpRes::Fail((std::string("Could not save xml file: ") + filename).c_str());
return OpRes::OK(); return OpRes::OK();
} }

Loading…
Cancel
Save