Bug #916
[Savegame] Restored state invalid if same addons not present
100%
Description
I play the level a while.. then save. I play some more, but then I die or do something stupid and load the save. I get into the game for some 10 seconds, and then it gives me this error message:"Z_Free: Attempt to free pointer without ZONEID." If I just play the level without using save/load, then I don't get the error.
I included a save that has the error happening in about 10 seconds after loading it.
Labels: Data
Related issues
Associated revisions
History
#1 Updated by danij over 14 years ago
Can you tell us any more about the problem? Which version of Doomsday are you running? Has the problem happened since? Are you loading any other addons?
I can replicate the problem when loading the save attached to this report. It would appear the player weapon state pointer serialised incorrectly, which when read results in an offset outside the states table (not good).
However I've tried numerous times to reproduce the problem to no avail.
#2 Updated by danij over 14 years ago
This is probably a long shot but were you perhaps using Per Kristian's "smooth weapons mod" when you made this save? This would account for the bogus player weapon state pointer if you are now attempting to play without it.
#3 Updated by danij over 14 years ago
I decided to put that theory to the test and lo and behold I got it bang on the mark, haha.
1) Load both pl2.zip and pk_weapons_dd.wad
2) Start any map and save whilst any of the player weapons is in a state not present in the original game,
3) Restart, this time loading only pl2.zip
4) Load the broken saved game.
Although clearly this is a case of "don't do that" we really need to do something to prevent users from making such an easy mistake in future.
NB: I'm not setting a group for this report as the same thing occurs in any version of Doomsday.
#4 Updated by skyjake over 14 years ago
Linking this to the savegame format proposal...
#5 Updated by jimigrey about 12 years ago
#6 Updated by skyjake about 11 years ago
- Tags set to SaveGame, Resources
- Category set to Enhancement
#7 Updated by skyjake over 8 years ago
- Target version set to 2.0 – Home UI & Packages
#8 Updated by skyjake over 8 years ago
- Tags changed from SaveGame, Resources to SaveGame, Resources, Packages
- Status changed from New to In Progress
The plan is to include the list of loaded packages in savegame metadata and ensure that the same ones are loaded when the save is loaded.
#9 Updated by skyjake over 8 years ago
- Assignee set to skyjake
#10 Updated by skyjake over 8 years ago
- % Done changed from 0 to 30
#11 Updated by skyjake over 8 years ago
- Status changed from In Progress to Closed
- % Done changed from 30 to 100
The workaround is to check for package compatibility with savegames before loading. This naturally doesn't help old saves, but this will no longer be a problem in the future.
Game Save|Resources|libdoomsday: Savegames know which packages were in use
The packages used when a savegame is created are included in the
save metadata. The Home UI can then match these against the game
to see which saves are usable with which profiles.
IssueID #916