Make scenario editor not delete all trailing empty strings when saving
This commit is contained in:
@@ -310,6 +310,12 @@ void writeScenarioToXml(ticpp::Printer&& data, cScenario& scenario) {
|
||||
data.PushText(scenario.spec_strs[i], true);
|
||||
data.CloseElement("string");
|
||||
}
|
||||
// Preserve trailing empty strings
|
||||
if(!scenario.spec_strs.empty() && scenario.spec_strs.back().empty()) {
|
||||
data.OpenElement("string");
|
||||
data.PushAttribute("id", scenario.spec_strs.size() - 1);
|
||||
data.CloseElement("string");
|
||||
}
|
||||
for(size_t i = 0; i < scenario.journal_strs.size(); i++) {
|
||||
if(scenario.journal_strs[i].empty()) continue;
|
||||
data.OpenElement("journal");
|
||||
@@ -317,6 +323,12 @@ void writeScenarioToXml(ticpp::Printer&& data, cScenario& scenario) {
|
||||
data.PushText(scenario.journal_strs[i], true);
|
||||
data.CloseElement("journal");
|
||||
}
|
||||
// Preserve trailing empty journals
|
||||
if(!scenario.journal_strs.empty() && scenario.journal_strs.back().empty()) {
|
||||
data.OpenElement("journal");
|
||||
data.PushAttribute("id", scenario.journal_strs.size() - 1);
|
||||
data.CloseElement("journal");
|
||||
}
|
||||
data.CloseElement("game");
|
||||
data.OpenElement("editor");
|
||||
data.PushElement("default-ground", scenario.default_ground);
|
||||
@@ -640,6 +652,12 @@ void writeOutdoorsToXml(ticpp::Printer&& data, cOutdoors& sector) {
|
||||
data.PushText(sector.sign_locs[i].text, true);
|
||||
data.CloseElement("sign");
|
||||
}
|
||||
// Preserve trailing empty signs
|
||||
if(!sector.sign_locs.empty() && sector.sign_locs.back().text.empty()) {
|
||||
data.OpenElement("sign");
|
||||
data.PushAttribute("id", sector.sign_locs.size() - 1);
|
||||
data.CloseElement("sign");
|
||||
}
|
||||
for(auto& area : sector.area_desc) {
|
||||
if(!area.descr.empty() && area.top < area.bottom && area.left < area.right)
|
||||
data.PushElement("area", area);
|
||||
@@ -651,6 +669,12 @@ void writeOutdoorsToXml(ticpp::Printer&& data, cOutdoors& sector) {
|
||||
data.PushText(sector.spec_strs[i], true);
|
||||
data.CloseElement("string");
|
||||
}
|
||||
// Preserve trailing empty strings
|
||||
if(!sector.spec_strs.empty() && sector.spec_strs.back().empty()) {
|
||||
data.OpenElement("string");
|
||||
data.PushAttribute("id", sector.spec_strs.size() - 1);
|
||||
data.CloseElement("string");
|
||||
}
|
||||
data.CloseElement("sector");
|
||||
}
|
||||
|
||||
@@ -788,6 +812,12 @@ void writeTownToXml(ticpp::Printer&& data, cTown& town) {
|
||||
data.PushText(town.sign_locs[i].text, true);
|
||||
data.CloseElement("sign");
|
||||
}
|
||||
// Preserve trailing empty signs
|
||||
if(!town.sign_locs.empty() && town.sign_locs.back().text.empty()) {
|
||||
data.OpenElement("sign");
|
||||
data.PushAttribute("id", town.sign_locs.size() - 1);
|
||||
data.CloseElement("sign");
|
||||
}
|
||||
for(size_t i = 0; i < town.spec_strs.size(); i++) {
|
||||
if(town.spec_strs[i].empty()) continue;
|
||||
data.OpenElement("string");
|
||||
@@ -795,6 +825,12 @@ void writeTownToXml(ticpp::Printer&& data, cTown& town) {
|
||||
data.PushText(town.spec_strs[i], true);
|
||||
data.CloseElement("string");
|
||||
}
|
||||
// Preserve trailing empty strings
|
||||
if(!town.spec_strs.empty() && town.spec_strs.back().empty()) {
|
||||
data.OpenElement("string");
|
||||
data.PushAttribute("id", town.spec_strs.size() - 1);
|
||||
data.CloseElement("string");
|
||||
}
|
||||
data.CloseElement("town");
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user