Opened 3 years ago
Closed 3 years ago
#13218 closed defect (fixed)
SKY: Can Populate More Than One Save Slot At A Time
Reported by: | alayGit | Owned by: | digitall |
---|---|---|---|
Priority: | normal | Component: | Engine: Sky |
Version: | Keywords: | saved games | |
Cc: | Game: | Beneath a Steel Sky |
Description
ScummVM 2.6.0git2179-g25c63234e49 (Dec 27 2021 14:36:45)
Beneath A Steel Sky: v0.0372cd
OS: Windows
Steps To Reproduce:
- Start a fresh games with no saves yet
- Press F5 to open the menu
- Click the 'Save Game' button
- Click on slot 7 and type a save name. Do not push the save game button
- Click on slot 8 and type a save name. This time push save
- Press F5 to return to the save menu
- Click button 1 'Restore'.
- Note that there are saves in both 7 and 8.
- Attempt to restore slot 7. Nothing happens :(
- Attempt to restore slot 8. Game loads like expected
Expected: Slot 7 never should have been saved in the first place.
Actual: There are two saves, one in 7 and one in 8. Slot seven is not loadable.
Tried out in DOSBox and found that it clears slot 7 when I enter the data in 8.
Checked metadata file can see data for both slots.
However only a slot 8 file exists.
Metadata data file attached, as well as slot 7 save.
Picture uncompress MD file also attached.
Attachments (3)
Change History (11)
by , 3 years ago
Attachment: | SKY-VM.SAV added |
---|
by , 3 years ago
Attachment: | SKY-VM.008 added |
---|
by , 3 years ago
Attachment: | image-20220114-001633.png added |
---|
comment:1 by , 3 years ago
comment:2 by , 3 years ago
I think the responsible code is here:
https://github.com/scummvm/scummvm/blob/master/engines/sky/control.cpp#L868
specifically
https://github.com/scummvm/scummvm/blob/master/engines/sky/control.cpp#L941
comment:3 by , 3 years ago
Hmm, to fix this, the method "uint16 Control::saveRestorePanel(bool allowSave)" would need some significant changes to do a loadDescriptions(saveGameTexts) when you change between save slots thus restoring the saved state of the game names. Will look at a patch.
comment:4 by , 3 years ago
Hmm... Odd. loadDescriptions(saveGameTexts) does not seem to behave as expected here to reset the savegame name list displayed.
comment:5 by , 3 years ago
Keywords: | saved games added |
---|---|
Summary: | Beneath A Steel Sky: Can Populate More Than One Save Slot At A Time → SKY: Can Populate More Than One Save Slot At A Time |
comment:6 by , 3 years ago
@digital I have a fix ready for the bug of saving the slot that is not selected.
I will submit a PR ASAP.
If that's fixed I don't think we need to worry about loading a non-existing saved game.
comment:8 by , 3 years ago
Owner: | set to |
---|---|
Resolution: | → fixed |
Status: | new → closed |
Fixed by merging PR 3666. Closing as fixed.
Replicated on latest Git master.
The SKY engine saves an extra file, SKY-VM.SAV which contains the save names. This file is gzip compressed by default, but once decompressed, it is just a bare array of the savegame names as per:
https://github.com/scummvm/scummvm/blob/master/engines/sky/metaengine.cpp#L159
It looks like the "original" dialog code has a bug where the names are saved even if the save is not selected. The save is not present i.e. SKY-VM.007 and thus can not be loaded.