SerializableEnemy state for dead enemies is removed after loading game [NOT A BUG]

User avatar
pango
Posts: 3359
Joined: Wed Jul 18, 2018 6:14 pm
Location: France
Contact:

SerializableEnemy state for dead enemies is removed after loading game [NOT A BUG]

Post by pango »

I was trying to make a low-tech copy of my QuickSave game by loading it, pressing Escape key while it's loading so that the options menu shows up immediately, and save the game again.
To my surprise, in the copy, the door that was in front of me slowly spins 360°, going thru the wall whereas it is just staying open in the QuickSave.

The diff between the two states shows some other oddities, like many corpses disappearing, and insideOpenShop being switched on. Looks like a technique to uncover state saving bugs...
Attachments
SAVE93.zip
Copy with revolving door
(181.52 KiB) Downloaded 70 times
SAVE1.zip
QuickSave
(289.05 KiB) Downloaded 72 times
Mastodon: @pango@fosstodon.org
When a measure becomes a target, it ceases to be a good measure.
-- Charles Goodhart

User avatar
Interkarma
Posts: 7247
Joined: Sun Mar 22, 2015 1:51 am

Re: Dev build/Linux: revolving door

Post by Interkarma »

Interesting!

Saves are restored via coroutine. Priority stuff like player state is loaded first and world state applied shortly after that. It sounds like you're able to capture state in the middle of being restored, so the new save is basically incomplete state and outcome will be undefined.

I'll play with this later and work in some protections so people can't inadvertently break their saves this way. Thanks for the report. :)

User avatar
Interkarma
Posts: 7247
Joined: Sun Mar 22, 2015 1:51 am

Re: Possible to save game while a load is in progress

Post by Interkarma »

I've added some handling to prevent new saves being created while a load is in progress. This should fix partial state being written back out to save file as game must be fully restored before new saves can be created.

Let me know if you're still able to reproduce problem now in current code.

User avatar
pango
Posts: 3359
Joined: Wed Jul 18, 2018 6:14 pm
Location: France
Contact:

Re: Possible to save game while a load is in progress [FIX IN TESTING]

Post by pango »

I can still trigger it.
It's a bit harder because the first time I open the options menu it doesn't get the "focus" (I can still move around with mouse and keyboard, etc.), but if I press the Escape key twice in rapid succession I get an option menu that works as usual and the same issue happens again (savegame with revolving door, missing corpses, not sure about insideOpenShop flag)
Attachments
SAVE110.zip
(274.09 KiB) Downloaded 75 times
Mastodon: @pango@fosstodon.org
When a measure becomes a target, it ceases to be a good measure.
-- Charles Goodhart

User avatar
Interkarma
Posts: 7247
Joined: Sun Mar 22, 2015 1:51 am

Re: Possible to save game while a load is in progress [FIX IN TESTING]

Post by Interkarma »

When pause menu is open and game is not paused (can still move around, etc.), are any errors ejected into the log? Rapid-fire save/load issues aside, this indicates a more general problem with pause UI. I might lock that out during load also.

User avatar
pango
Posts: 3359
Joined: Wed Jul 18, 2018 6:14 pm
Location: France
Contact:

Re: Possible to save game while a load is in progress [FIX IN TESTING]

Post by pango »

Nothing in the log...
Mastodon: @pango@fosstodon.org
When a measure becomes a target, it ceases to be a good measure.
-- Charles Goodhart

User avatar
Interkarma
Posts: 7247
Joined: Sun Mar 22, 2015 1:51 am

Re: Possible to save game while a load is in progress [FIX IN TESTING]

Post by Interkarma »

Thank you. :)

Just FYI, I'm not able to trigger these issues myself. Steps I'm using to reproduce:
  1. Create a baseline interior save. Currently using PH with everything dead so there's loads of bodies around.
  2. Load this save from a fresh open and press Escape immediately after clicking "Load" on baseline save.
  3. Create a test save when pause menu opens.
  4. Load test save from fresh open and evaluate bodies, door state, etc.
Please let me know if the above should be enough to reproduce, or if I'm missing a step somewhere.

I'll move on to testing building interiors soon. I'll use a quest like "guard the mage's guild" to ensure there's a good number of bodies in the save.

User avatar
pango
Posts: 3359
Joined: Wed Jul 18, 2018 6:14 pm
Location: France
Contact:

Re: Possible to save game while a load is in progress [FIX IN TESTING]

Post by pango »

(PH?)

I've only seen corpses disappearing from SaveData.txt myself, using gamesave above, I'm not sure where they are located so it's harder to check if it has a visual impact in game; I assumed it did, but I should check if I can find some proof in one way or the other.
Mastodon: @pango@fosstodon.org
When a measure becomes a target, it ceases to be a good measure.
-- Charles Goodhart

User avatar
Interkarma
Posts: 7247
Joined: Sun Mar 22, 2015 1:51 am

Re: Possible to save game while a load is in progress [FIX IN TESTING]

Post by Interkarma »

pango wrote: Thu Nov 22, 2018 6:50 am (PH?)
Privateer's Hold. :)

User avatar
pango
Posts: 3359
Joined: Wed Jul 18, 2018 6:14 pm
Location: France
Contact:

Re: Possible to save game while a load is in progress [FIX IN TESTING]

Post by pango »

Okay, so what disappears is not corpses, it's dead enemies. In other words, enemies with "isDead":true, but corpses markers are kept. I didn't make the difference before, now I see it matters.
So at least visually everything is fine... But why do we keep dead enemies around in the first place if they can safely be "garbage collected" by a save/reload cycle?
Attachments
SAVE113.zip
(84.78 KiB) Downloaded 67 times
SAVE112.zip
(135.35 KiB) Downloaded 70 times
Mastodon: @pango@fosstodon.org
When a measure becomes a target, it ceases to be a good measure.
-- Charles Goodhart

Locked