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);