From f88b07b99bbf28b26df8be9f22fb2b65c17b57f1 Mon Sep 17 00:00:00 2001 From: Asdow <20314541+Asdow@users.noreply.github.com> Date: Sun, 22 Oct 2023 14:52:21 +0300 Subject: [PATCH] Fix loading item temp files (#245) Call PruneWorldItems() before sectorinfo gets written to the save file. Resetting the SF_ITEM_TEMP_FILE_EXISTS would not transfer correctly into the save file. --- Tactical/Tactical Save.cpp | 2 +- Tactical/World Items.cpp | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/Tactical/Tactical Save.cpp b/Tactical/Tactical Save.cpp index 6f84aa34..b723dad9 100644 --- a/Tactical/Tactical Save.cpp +++ b/Tactical/Tactical Save.cpp @@ -1027,6 +1027,7 @@ BOOLEAN SaveCurrentSectorsInformationToTempItemFile( ) // handle all reachable before save HandleAllReachAbleItemsInTheSector( gWorldSectorX, gWorldSectorY, gbWorldSectorZ ); UpdateWorldItems(gWorldSectorX, gWorldSectorY, gbWorldSectorZ, guiNumWorldItems, gWorldItems); + PruneWorldItems(); std::vector corpsedefvector; @@ -3169,7 +3170,6 @@ void LoadWorldItemsFromTempFiles(INT16 sMapX, INT16 sMapY, INT8 bMapZ) void SaveWorldItemsToTempFiles() { - PruneWorldItems(); for (size_t i = 0; i < gAllWorldItems.sectors.size(); i++) { const auto x = gAllWorldItems.sectors[i].x; diff --git a/Tactical/World Items.cpp b/Tactical/World Items.cpp index 341c79bd..218b0c15 100644 --- a/Tactical/World Items.cpp +++ b/Tactical/World Items.cpp @@ -149,6 +149,11 @@ void PruneWorldItems(void) } else { + auto x = gAllWorldItems.sectors[i].x; + auto y = gAllWorldItems.sectors[i].y; + auto z = gAllWorldItems.sectors[i].z; + ReSetSectorFlag(x, y, z, SF_ITEM_TEMP_FILE_EXISTS); + gAllWorldItems.sectors.erase(gAllWorldItems.sectors.begin() + i); gAllWorldItems.NumItems.erase(gAllWorldItems.NumItems.begin() + i); gAllWorldItems.Items.erase(gAllWorldItems.Items.begin() + i);