added the new multiple levels to the save/load

This commit is contained in:
grimsace
2026-04-28 10:13:06 -05:00
parent e2a14feb82
commit dddf27ea6b
2 changed files with 15 additions and 13 deletions
+9 -7
View File
@@ -141,19 +141,21 @@ impl eframe::App for DungeonApp {
self.push_undo_snapshot();
self.regenerate_layout();
} else if panel_result.save_clicked {
if self.settings.active_level_index < self.levels.len() {
let layout = &self.levels[self.settings.active_level_index];
let svg = exporter::build_svg(layout, &self.settings);
if let Err(err) = saveandload::save_dungeon(&self.settings, layout, svg) {
eprintln!("{err}");
}
let mut layouts = Vec::new();
let mut svgs = Vec::new();
for layout in &self.levels {
layouts.push(layout.clone());
svgs.push(exporter::build_svg(layout, &self.settings));
}
if let Err(err) = saveandload::save_dungeon(&self.settings, layouts, svgs) {
eprintln!("{err}");
}
} else if panel_result.load_clicked {
match saveandload::load_dungeon() {
Ok(data) => {
self.push_undo_snapshot();
self.settings = data.settings;
self.levels = vec![data.layout];
self.levels = data.layouts;
self.settings.active_level_index = 0;
// Don't regenerate_layout() here to preserve the exact loaded state.
}