NagyD / SDLPoP

An open-source port of Prince of Persia, based on the disassembly of the DOS version.
GNU General Public License v3.0
1.1k stars 141 forks source link

Saving/loading replays created with specific mods #91

Closed Falcury closed 8 years ago

Falcury commented 8 years ago

From https://github.com/NagyD/SDLPoP/pull/88#commitcomment-18997685

Should replay files be stored separately for each mod, similar to how PRINCE.HOF, PRINCE.SAV and QUICKSAVE.SAV can be saved and loaded directly within their own directories?

And what about downloaded replay files? We could change the format of the replay file a bit, so that replays will automatically run with the correct data files, even if they are double-clicked from anywhere. I already did something similar on this branch: https://github.com/Falcury/SDLPoP/tree/script Then we would also need to add a warning if that specific mod's data files cannot be found. Or we could even consider including all modified data into the replay file itself; this would mean that anyone could play back the replay, even though they haven't downloaded the mod itself. But this would mean that the file size of replays becomes larger, obviously.

I wonder if replays should perhaps automatically get saved to a replays/ folder. Then they will all be in one place, and it will be easy to drop downloaded replays into that folder as well.

They could maybe have a naming scheme like so: Original Levels - L5 - YYYY-mm-dd HHMMSS.p1r Prince4D - L10 - YYYY-mm-dd HHMMSS.p1r

Recognizable/unique filenames should also make it easier to share replays with other people. (no need to rename the files)

Possible disadvantage: cycling through replay files while in-game would become more difficult then... Maybe it will be possible to reload different data files on the fly for each replay. Or the game could skip all the replays that were recorded with another levelset.

Falcury commented 8 years ago

I added a pull request here: #92

Falcury commented 8 years ago

The changes have been implemented; this issue is hopefully resolved now and can be closed I think.