David, do you have a wishlist of things to implement or fix in future versions?
For now, I have started working on a feature that adds simple recording/replaying capabilities. It works by capturing the kid's moves and saving them out to a file. Replaying behaves a bit like the demo level - although the guards behave predictably in replays (random_seed is saved with the replay).
Some thoughts about this:
- Currently, I use a file called REPLAY.SAV for output, but I think it may be better to use a separate file extension for replays (for example *.P1R, similar to
Jazz Jackrabbit 2's naming scheme). An advantage would be that you could launch replays just by double-clicking or dragging them on top of the SDLPoP executable. Also they will be harder to confuse with the other files that use the .SAV extension.
- I suppose replays should probably be saved as REPLAY_001, REPLAY_002, etc.
- Possible command line options: "record <levelnumber>" starts recording at the specified level, "replay" plays the replay. To start/stop recording on the fly, we could use the familiar Ctrl+Alt+F5 from DOSBox (recording on the fly requires that a savestate is saved along with the replay).
David wrote:Maybe the condition "Guard.sword == sword_2_drawn" could be replaced with "can_guard_see_kid == 2"?
It works with your test case, but I did not test it thoroughly.
There's also the situation where you arrive from the other side of the gate, crouch-hopping under a closing gate. I haven't yet tested if that works with "can_guard_see_kid == 2" too (but I think it probably will).
A situation where the gate is "opening" instead of "closing" should probably be treated differently... in the case of an opening gate, the guard will soon be able to follow, even if he cannot move through the gate immediately. However, I do not know an easy way to tell apart a closing gate from an opening gate.
Norbert wrote:As far as controller support goes, this will need some work.
I do not have a controller myself unfortunately.