From d1027df12aab95bb455f9d1a554b14888f9ed3c8 Mon Sep 17 00:00:00 2001 From: Nat Quayle Nelson Date: Sun, 11 May 2025 14:29:47 -0500 Subject: [PATCH] change format for saving unlocked doors --- src/scenario/scenario.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/scenario/scenario.cpp b/src/scenario/scenario.cpp index f1c04142..37dd909c 100644 --- a/src/scenario/scenario.cpp +++ b/src/scenario/scenario.cpp @@ -546,8 +546,9 @@ void cScenario::writeTo(cTagFile& file) const { for(int i = 0; i < towns.size(); i++) { if(towns[i]->item_taken.any()) page["ITEMTAKEN"] << i << towns[i]->item_taken; - if(!towns[i]->door_unlocked.empty()) - page["DOORUNLOCKED"] << i << towns[i]->door_unlocked; + for(location door : towns[i]->door_unlocked){ + page["DOORUNLOCKED"] << i << door.x << door.y; + } if(towns[i]->can_find) page["TOWNVISIBLE"] << i; else page["TOWNHIDDEN"] << i; @@ -562,8 +563,13 @@ void cScenario::readFrom(const cTagFile& file){ std::vector visible, hidden, slaughter; auto& page = file[0]; page["ITEMTAKEN"].extractSparse(taken); - if(page.contains("DOORUNLOCKED")) - page["DOORUNLOCKED"].extractSparse(unlocked); + if(page.contains("DOORUNLOCKED")){ + short town; + location door; + while(page["DOORUNLOCKED"] >> town >> door.x >> door.y){ + unlocked[town].push_back(door); + } + } page["TOWNVISIBLE"].extract(visible); page["TOWNHIDDEN"].extract(hidden); page["TOWNSLAUGHTER"].extractSparse(slaughter);