All this refactoring, just to resolve #162 (closed). Specifically, it engages savegame events not at level load (except for savefile start) but on level completion, just after you've gotten all the intermission bonuses but before the intermission actually starts.
Also fixes a never-before-discovered pair of bugs that only show up if you have a titlemap and have some settings the vanilla game doesn't have. This game is a mess of hacks, I swear...
- If the titlemap has LF_SAVEGAME, your save file will be overwritten upon returning to the title screen.
- If your first level doesn't have LF_SAVEGAME, it won't correctly force a save there for the creation of the savefile anyways.
One unintended side effect: It may actually be faster in some speedrun circumstances in mods with cutscenes to complete the map, exit back to the title screen, and reload the file. It's a common feature of optimal runs in games with cutscenes, though, and Marathon Run has a toggle for cutscenes, so I'm not particularly bothered.
srb2win_specialsave.exe (updated 25/06/2020)