Found a fix!
Using backup files we can save our current character on these backup files along with the main file. Then by storing the current number of the backup per slot in udg_NumberOfSaves[playerNumber*12+slot] we can load our character's progress without restarting the map by loading the most recent backup file. Each time the map is re-loaded udg_NumberOfSaves is reset, however since we still save our character to the mainfile the game still knows what our current character's progress is. The backup files are then overwritten from the last game as new saves are made in the current one.
TL: DR;
Save, Load, and Delete via the GUI dialog now all work correctly, regardless of caching.
See changes in
- SampleDialogSystem,
- SaveHelperLib,
- SaveFile