Also bumps the saved game format version to 3.
I changed the order of how the data is saved so that the playtime could
be read in without skipping as much data.
This is because querySaveMetaInfos only needs the metafields where as
saveload::DoRestore() needs more of the header.
A crash was happening when trying to delete a saved game from the launcher.
It is because the engine is not initalized. I assign a dummy value to
resolve the issue.
Loading saved games from previous versions works.
When an old version saved game is loaded it will start with zero playtime.
Old saved games are shown as not having playtime data.
Saved games inspected via the ScummVM load or save
gui will now show the year, month, day, hour, and minute
of its creation. This was already being saved in the
saved game header so no version bump is necessary.
This required adding kSavesSupportMetaInfo and
kSavesSupportCreationDate features. I also had to
add kSavesSupportThumbnail or the saved date is not
shown.
It was necessary to write querySaveMetaInfos.
This needs to be at least 374 to avoid crashes in the in-game
save/load dialogues with save games using the maximum 40 letters
per save game, so just round up to the next power of two (which
increases memory usage by a whopping ~20KiB) to give more than
enough space for long save game names.
Fixes Trac#6748.
This flag is removed for a few reasons:
* Engines universally set this flag to true for widths > 320,
which made it redundant everywhere;
* This flag functioned primarily as a "force 1x scaler" flag,
since its behaviour was almost completely undocumented and users
would need to figure out that they'd need an explicit non-default
scaler set to get a scaler to operate at widths > 320;
* (Most importantly) engines should not be in the business of
deciding how the backend may choose to render its virtual screen.
The choice of rendering behaviour belongs to the user, and the
backend, in that order.
A nearby future commit restores the default1x scaler behaviour in
the SDL backend code for the moment, but in the future it is my
hope that there will be a better configuration UI to allow users
to specify how they want scaling to work for high resolutions.
Added it into hasFeature() of all engines which returned `true` in
simpleSaveNames() before.
As mentioned in #788, SCI is not always using simple names, so it
doesn't have such feature now.
Engines with "simple" savenames would support "Run in background" in
save/load dialog and gradual save slots unlocking. Other engines
save/load feature would be locked until save sync is over.