From a18bdf20159c50c570c398bf55c2da080f033908 Mon Sep 17 00:00:00 2001 From: troido Date: Wed, 8 Apr 2020 20:02:03 +0200 Subject: load python room format --- src/savestate.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'src/savestate.rs') diff --git a/src/savestate.rs b/src/savestate.rs index c3b79cb..95f8d84 100644 --- a/src/savestate.rs +++ b/src/savestate.rs @@ -34,10 +34,11 @@ impl SaveState { for v in val.get("changes").ok_or(perr!("save does not have changes"))?.as_array().ok_or(perr!("changes not an array"))? { let pos = Pos::from_json(v.get(0).ok_or(perr!("change does not have index 0"))?).ok_or(perr!("change index 0 is not a pos"))?; let mut templates = Vec::new(); - for t in v.get(1).ok_or(perr!("change does not have index 1"))?.as_array().ok_or(perr!("change index 1 not an array"))? { + let jsontemplates = v.get(1).ok_or(perr!("change does not have index 1"))?; + for t in jsontemplates.as_array().clone().unwrap_or(&vec![jsontemplates.clone()]) { templates.push(Template::from_json(t)?); } - changes.insert(pos, templates); + changes.entry(pos).or_insert_with(Vec::new).append(&mut templates); } Ok(Self {changes}) } -- cgit