Add optional auto-save/restore feature using -a <filename> option 288/head
authorRob Swindell (on Debian Linux) <rob@synchro.net>
Fri, 3 Mar 2023 03:44:47 +0000 (19:44 -0800)
committerRob Swindell (on Debian Linux) <rob@synchro.net>
Fri, 3 Mar 2023 03:44:47 +0000 (19:44 -0800)
commitdfff80faa8b5cf4cd286fee2d1ef5eebcdb49829
tree87ee7054baa69496b6f257c6af9f127521debc9c
parent426684fec2c4b61ae3e1eb6c709fca61f0e5753f
Add optional auto-save/restore feature using -a <filename> option

To enable use with online Bulletin Board Systems (BBSes) where users
may be disconnected unexpectedly, but would naturally want to resume
playing their same game, added support for an optional save game
path/filename to be specified on the command-line (very similar to
"-r <filename>"), except this save/restore file is:
1. automatically loaded/restored if it exists
2. automatically created when starting a new game
3. automatically updated when exiting a game for any reason
4. cannot be changed to a different path/filename by the user

Since a BBS server program can be expected to send a SIGHUP or SIGTERM
to the game process upon user disconnection (or timeout), those
signals are caught and a graceful termination will occur which saves
the current game state.

Build with ADVENT_AUTOSAVE defined to enable this option.

BUG:
The 'info' command still reports the save/suspend/pause commands as
valid, though they are not when this build option is used (same is
true of ADVENT_NOSAVE, and that doesn't apparently bother anyone).
Makefile
advent.h
main.c
saveresume.c
score.c