So - I finally implemented some form of mass replay checker!
I've uploaded an experimental release that contains this feature.
Note: The experimental release does NOT include the fix to the climber bug mentioned
here; so the gameplay physics are identical to V1.42n. It does include the fix to single levels not playing music.
To use it, hit F7 on the title screen, then select any replay. Every replay in the same folder as the one you select will be tested. Note that, especially for large packs and/or long levels, this is likely to be very slow. It's pretty kludgey for now, but it works.
It should work with the majority of replays, even older ones (I tested it with some replays that come from as far back as V1.27n-C). However, if a replay was made with a version older than V1.35n, then it will only be testable via the mass checker if it was made with a custom-made player (not with NeoCustLemmix or testplay mode). This is because in other cases, the replay doesn't offer much in the way of determining which level it's for, outside of brute-force testing it with every level in the pack (which I thought would be going too far).
Once it finishes, it will give you a quick report of how many replays fell into each of the possible categories; for more information, it will create a text file in the same folder as
the NXP which will tell you
which replays fell into each category (it also groups them by category). The possible responses are:
"PASSED": This means that the replay solved the level.
"UNDETERMINED": This means that the replay could not be conclusively determined as either a pass or a fail. See note below.
"FAILED": This means that all lemmings died (or the time limit ran out, if there was one) without the save requirement being reached.
"ERROR": This means an error occurred when either loading the level or loading the replay file.
"CANNOT FIND LEVEL": This means that NeoLemmix couldn't identify which level the replay was meant to be for.
For the record, "Undetermined" is triggered if, 5 minutes (game time) after the last replay action, there are still lemmings alive, but the save requirement has not been reached. I have yet to encounter a case where this happens on a replay that eventually passes the level, but it's theoretically possible, hence why I put it as a distinct outcome.
It will also state, for each replay, what level it tried it on (in some cases - for example, if you have multiple levels with the same level ID - it may end up trying the same replay on more than one level), and whether it identified the level by its level ID or by its position.
Give it a try - let me know if you encounter any crashes / issues / etc. I know there's a lot of room for improvement in it; but for now, let's make the main focus be on making sure it
works, not making sure it's optimized. (However, I have added a couple of optimizations since then - I disabled the fadeout (unnessecary for automated testing) during the mass test mode, and added code to terminate playback as soon as the save requirement is reached.)
Known issues:- If you run the mass checker twice without exiting NeoLemmix inbetween, it crashes.