[BUG][LEMMIX PLAYERS] Bomber/explosion particles not cleaned up until scroll

Started by Aaron44126, May 21, 2020, 01:19:50 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Aaron44126

Ok, you are right, I had to name it 0101.lvl and then I was able to load the level.  (Which means I have another fix suggestion, comment only.  https://github.com/AaronKelley/LemmixPlayer/commit/1d5bf01edeaa9979217dd637657dbf820a8e3caa)

I did what you said — blow up the top lemming and then trigger a nuke while the particles were flying.  The other two lemmings blew up one pixel apart (vertically).




Aaron44126

Full set of changes that I am proposing.
https://github.com/AaronKelley/LemmixPlayer/compare/4e59cec..59d25da
* Explosion particle fix (note explode.dat has changed and a diff isn't shown because it is a binary file)
* Lemmings forum URL change
* Comment for LVL file names was misleading

I'll leave it to you to fix the nuke timing bug.  I did take a look, hoping it would just involve changing where RemoveLemming is called, but it's not (quite?) that simple and is going to take more time than I have right now to learn my way around the logic enough to address it.

[Edit]
Oh and I guess this one is probably worth looking into if you are going to do a rebuild.
https://www.lemmingsforums.net/index.php?topic=4728.0

Aaron44126

Back again.
I came up with this simple fix for the nuke timing issue.  It makes sure that Lemmings are still counted when going through the "nuke loop", if they have been removed because of explosion, but the explosion animation has not finished.  The result is, in your test level, the lemmings detonate two pixels apart vertically.

The animation time is 52 frames (PARTICLE_FRAMECOUNT), not sure if is the same amount of time that the lemmings persist after explosion in the DOS version?
Also, it doesn't address the difference in the "out" count between Lemmix and the DOS version.  (In Lemmix the count will decrement immediately after a lemming explodes, but in the DOS version it doesn't decrement until the animation is done.)

https://github.com/AaronKelley/LemmixPlayer/commit/c6b59acfa668df936bdba18baf4856823d62668a


ccexplore

Testing on DOSBox (screenshot attached) confirms that a 2-pixel difference is the correct one for DOS Lemmings.

Regarding your fix, I guess it works for the nuke case.  Although I think I would prefer a fix that actually truly delays the removal of the lemming, in case the current premature removal leads to other side effects I've overlooked (beyond the "out" count of course).  Though to be fair, I'm almost 99% sure there shouldn't be any other solution-impacting differences.

Yes, 52 matches the amount of time the exploded lemming lasts in DOS Lemmings.

Aaron44126

I've got another change that I'm not sure how you would feel about including.

I added support for the "Lemmings for Windows 95" key bindings.
1-8 : set skills,
9 : toggle fast forward,
0 : toggle pause,
-/+ : release rate control

These work in addition to the existing F1-F12 bindings, so either can be used, but I did have to move some other existing key bindings...
"5" used to be "cheat the level", moved that to "C"
"-" used to be "back up one second", moved that to "["

Reasons for this...
1. "Lemmings for Windows 95" was the version that I had played the most in the past so I was already used to these bindings.
2. I'm playing on a laptop so the F1-F12 keys are a bit more awkward to use than the regular number keys.

https://github.com/AaronKelley/LemmixPlayer/compare/59d25da..d400819

I'm planning to also tackle this issue which I have confirmed to be a problem, maybe next weekend?  I'll have to figure out how to extract, edit, and replace the level.  After that I will package up a release on GitHub named "V29A" and leave it to you guys to decide if you want to take any of this and merge it in to the "official" version.

namida

Don't particularly care about 5 (technically, in DOS Lemmings, only numpad 5 has this effect anyway), but - for back one second is extremely ingrained, due to how commonly used it is, and even more so due to it being the default (at least in the "traditional" layout) in NeoLemmix for this function too. I'd be very strongly against changing it.

Re: F keys on laptop, assuming you have them, there is on most laptops a BIOS setting to restore the normal "press them for F key, hold Fn + press them for the alternative function" behaviour. Up to you of course whether you prefer this or not.
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

Aaron44126

Thanks for the feedback.  I'll work on making it an off-by-default option to move "back one second" away from the "-" key.  (Less important to me... there are way more circumstances to raise the release rate rather than lower it.)

My laptop does have F1-F12 keys available to use, they are just way smaller than the "regular" keys.  I think that this is pretty normal for laptops these days.  As you say, many laptops have coopted these keys for volume control, brightness control, etc. and you are forced to pick which mode of operation you want to have be the default.

Aaron44126

Ok...  Got another one.

Added the option to enable or disable state control.  This shows up in the F4 options menu and is saved in the INI file.  State control is enabled by default.

If state control is disabled:
* Loading replays is not allowed
* Backing up time is not allowed
* Frame advancing while paused is not allowed
* A single skill assignment may be used while paused

If state control is enabled, "-" key backs up the game one second.  If state control is disabled, "-" key decreases the release rate.

https://github.com/AaronKelley/LemmixPlayer/commit/5b4c33a28e6a514a18d9872f75e9630f6d4f3e8a


This is in service of allowing a more classic Lemmings experience as "slowing down or reversing time" is not possible in the original game.  I know you could just ignore these features if you want a more classic Lemmings experience, but I found myself using the "back up one second" function a bit too much (since I discovered it yesterday) and it is best to just remove any temptation to use it.