Resources|libdeng2|SavedSession: Significantly more intelligent SavedSession management
Saved game sessions are now managed entirely by the engine. When a new game is added, the ResourceSystem automatically scans the currently configured savegame folder for any existing .save files and populating the repository with the appropriate SavedSession instances.
Saved sessions for all games (whether currently playable or not) are always available and visible from Ring Zero. The status of a given SavedSession is now determined dynamically, as this previously assumed that a potentially compatible Game had already been loaded.
Saved sessions are now referenced publically via their unique relative path in the resource system's central repository. All of the libcommon console commands for saved session management (e.g., "loadgame" and "savegame") now accept the relative session path as an additional referencing method.
Whenever the contents of the saved session repository change, any interested parties are notified. The SaveSlots mechanism in libcommon now observes such notifications for dynamic updating of the bound saved sessions, determination of session status (i.e., whether compatible with the game) and updating the game menu with new metadata.
The design of the saved session repository has been split up, to take better advantage of the libdeng2 filesystem. SavedSessions in the repository now exist 1:1 with the associated .save package on the local file system. the serialized .save file on disk.
As of this commit, it is possible to search, update, load and perform nearly all .save package management from Ring Zero.
Resources|libdeng2|SavedSession: Significantly more intelligent SavedSession management
Saved game sessions are now managed entirely by the engine. When a new game
is added, the ResourceSystem automatically scans the currently configured
savegame folder for any existing .save files and populating the repository
with the appropriate SavedSession instances.
Saved sessions for all games (whether currently playable or not) are always
available and visible from Ring Zero. The status of a given SavedSession is
now determined dynamically, as this previously assumed that a potentially
compatible Game had already been loaded.
Saved sessions are now referenced publically via their unique relative path
in the resource system's central repository. All of the libcommon console
commands for saved session management (e.g., "loadgame" and "savegame") now
accept the relative session path as an additional referencing method.
Whenever the contents of the saved session repository change, any interested
parties are notified. The SaveSlots mechanism in libcommon now observes such
notifications for dynamic updating of the bound saved sessions, determination
of session status (i.e., whether compatible with the game) and updating the
game menu with new metadata.
The design of the saved session repository has been split up, to take better
advantage of the libdeng2 filesystem. SavedSessions in the repository now
exist 1:1 with the associated .save package on the local file system.
the serialized .save file on disk.
As of this commit, it is possible to search, update, load and perform nearly
all .save package management from Ring Zero.