From f846a14548f3d75d5e817f8d0cedc546e27ee97d Mon Sep 17 00:00:00 2001 From: Nat Quayle Nelson Date: Sat, 21 Jun 2025 17:47:15 -0500 Subject: [PATCH] revert bad change -- never save empty items/creatures --- src/scenedit/scen.fileio.cpp | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/scenedit/scen.fileio.cpp b/src/scenedit/scen.fileio.cpp index 1fc0592f..a3bf1fe1 100644 --- a/src/scenedit/scen.fileio.cpp +++ b/src/scenedit/scen.fileio.cpp @@ -862,11 +862,12 @@ void writeTownToXml(ticpp::Printer&& data, cTown& town) { } data.CloseElement("wandering"); } - // The vector may contain empty slots at the end for undo/redo purposes, but don't save them. - int last_item = town.preset_items.size() - 1; - while(last_item >= 0 && ((town.preset_items.size() <= last_item) || town.preset_items[last_item].code < 0)) --last_item; - for(int i = 0; i <= last_item; ++i) { + + + for(int i = 0; i < town.preset_items.size(); ++i) { const cTown::cItem& item = town.preset_items[i]; + // Don't save empty items + if(item.code < 0) continue; data.OpenElement("item"); data.PushAttribute("id", i); data.PushElement("type", item.code); @@ -882,13 +883,12 @@ void writeTownToXml(ticpp::Printer&& data, cTown& town) { data.PushElement("contained", true); data.CloseElement("item"); } - // The vector may contain empty slots at the end for undo/redo purposes, but don't save them. - int last_creature = town.creatures.size() - 1; - while(last_creature >= 0 && ((town.creatures.size() <= last_creature) || town.creatures[last_creature].number <= 0)) --last_creature; - for(int i = 0; i <= last_creature; ++i) { + for(int i = 0; i < town.creatures.size(); ++i) { + cTownperson& preset = town.creatures[i]; + // Don't save empty creatures + if(preset.number <= 0) continue; data.OpenElement("creature"); data.PushAttribute("id", i); - cTownperson& preset = town.creatures[i]; data.PushElement("type", preset.number); data.PushElement("attitude", preset.start_attitude); data.PushElement("mobility", preset.mobility);