mirror of
https://github.com/1dot13/source.git
synced 2026-09-02 14:36:06 +02:00
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.
This commit is contained in:
@@ -1027,6 +1027,7 @@ BOOLEAN SaveCurrentSectorsInformationToTempItemFile( )
|
|||||||
// handle all reachable before save
|
// handle all reachable before save
|
||||||
HandleAllReachAbleItemsInTheSector( gWorldSectorX, gWorldSectorY, gbWorldSectorZ );
|
HandleAllReachAbleItemsInTheSector( gWorldSectorX, gWorldSectorY, gbWorldSectorZ );
|
||||||
UpdateWorldItems(gWorldSectorX, gWorldSectorY, gbWorldSectorZ, guiNumWorldItems, gWorldItems);
|
UpdateWorldItems(gWorldSectorX, gWorldSectorY, gbWorldSectorZ, guiNumWorldItems, gWorldItems);
|
||||||
|
PruneWorldItems();
|
||||||
|
|
||||||
std::vector<ROTTING_CORPSE_DEFINITION> corpsedefvector;
|
std::vector<ROTTING_CORPSE_DEFINITION> corpsedefvector;
|
||||||
|
|
||||||
@@ -3169,7 +3170,6 @@ void LoadWorldItemsFromTempFiles(INT16 sMapX, INT16 sMapY, INT8 bMapZ)
|
|||||||
|
|
||||||
void SaveWorldItemsToTempFiles()
|
void SaveWorldItemsToTempFiles()
|
||||||
{
|
{
|
||||||
PruneWorldItems();
|
|
||||||
for (size_t i = 0; i < gAllWorldItems.sectors.size(); i++)
|
for (size_t i = 0; i < gAllWorldItems.sectors.size(); i++)
|
||||||
{
|
{
|
||||||
const auto x = gAllWorldItems.sectors[i].x;
|
const auto x = gAllWorldItems.sectors[i].x;
|
||||||
|
|||||||
@@ -149,6 +149,11 @@ void PruneWorldItems(void)
|
|||||||
}
|
}
|
||||||
else
|
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.sectors.erase(gAllWorldItems.sectors.begin() + i);
|
||||||
gAllWorldItems.NumItems.erase(gAllWorldItems.NumItems.begin() + i);
|
gAllWorldItems.NumItems.erase(gAllWorldItems.NumItems.begin() + i);
|
||||||
gAllWorldItems.Items.erase(gAllWorldItems.Items.begin() + i);
|
gAllWorldItems.Items.erase(gAllWorldItems.Items.begin() + i);
|
||||||
|
|||||||
Reference in New Issue
Block a user