Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - WillLem

#1
Help & Guides / RegEx Dictionary
Today at 12:35:52 AM
Here's a dictionary of RegEx commands / expressions which you might find useful if you do a lot of level editing using Notepad++ or similar.

1. Look for "maxReleaseRate = n" where "n" is anything other than 99
maxReleaseRate\s*=\s*(?!99\b)\d+

I'll add to this as necessary. If you wish to contribute anything, please do!
#2
Lemmini / Re: [RetroLemmini] DoveLems
Today at 12:11:46 AM
DoveLems for RetroLemmini is now available!

Get the latest version of DoveLems here.
#3
Quote from: roltemurto on April 07, 2026, 09:18:38 PMI hope I don't overstep my boundaries by doing this but I just want to be helpful.

Always happy to accept help wherever offered! It's good to not have to always figure these things out on my own :)

Besides, I figured that some re-rendering prevention guard is what was needed. You helped pin it down to exactly where the guard needed to be - this is much appreciated!

Quote from: roltemurto on April 07, 2026, 09:18:38 PMFix 1 — Re-entrancy guard on ResetLevelImage

Prevent NLEditForm_Resize from triggering a render if one is already in progress

Fixed in SLXEditor commit 8e46406.

Quote from: roltemurto on April 07, 2026, 09:18:38 PMFix 2 — Ensure UnlockBits is always called in BmpModify.DrawOn

The existing DrawOn method almost certainly does LockBits without a try/finally guarantee on UnlockBits. If any exception occurs mid-render, the bitmap stays locked forever for the lifetime of the object. Fix the locking pattern:

Fixed in SLXEditor commit 7f24239.

Quote from: roltemurto on April 07, 2026, 09:18:38 PMFix 3 (optional hardening) — Debounce resize events

Resize events can fire dozens of times per second during a resolution change. Even with the re-entrancy guard, it is worth debouncing to avoid hammering the renderer immediately after wake:

Went ahead with this one as well, but made the interval 50ms so it feels a bit snappier.

Implemented in SLXEditor commit 5cecf63.
#4
Vastly improved the Pieces List today.

Optimised general performance (particularly relevant for levels with lots of pieces), added a hints label and made the dialog smaller horizontally so that it takes up less screen real estate:

Preview


One thing to note is that, if using the arrow buttons to push/pull the pieces through the layers, a piece will occasionally jump several places in the list. At first I thought this was a bug, but it's actually due to the way that indexing is handled. A piece will always be pushed to the lowest possible/necessary (or pulled to the highest possible/necessary) to achieve the desired effect; since it doesn't need to manually move one step behind or in front of any pieces that don't intersect with it, it skips over those pieces and lands at the next available index.

This isn't really an issue. just something to be aware of. The selected piece(s) is/are always tracked when moving them around the list anyway.
#5
It appears to have been triggered by the form resizing. Your instincts are likely correct: if the resolution change occurs on wake, that could trigger a form resize.

Not sure exactly why the exception occurred though. Maybe more resolution-specific guards need to be in place.

Good to know that no data was lost, that's fortunate.
#6
The buttons now work.

The list is pretty much done. Adding/removing/selecting pieces syncs perfectly between level and list. It's necessary to manually refresh the list (by simply re-focusing the window) after making changes to the level, but this is acceptable. It would be better to have action-by-action updates, but my attempts to implement this resulted in messy circular logic, so I decided to refresh on focus instead. Let's see how we get on with that.

Preview


Implemented in SLXEditor commit f90a6d8.
#7
Taken the first step with the "Pieces List". So far, we have 2 list views for each of Terrain and Objects. This lists the pieces by index, and shows the name, type and draw mode. Here's a preview:

Pieces List Preview


As shown in the screenshot, it's possible to select a piece in the list and have it select that piece in the level arranger (multi-select is also possible). The buttons on the right don't do anything yet, but that's probably the next step.

I'll report here once more has been done.
#8
Quote from: Proxima on April 04, 2026, 04:46:47 PMI am completely against changing levels just to make 100% possible. That you can't save 100% on every level has always been part of the game. "Betcha can't save" is designed so that saving even one is difficult, and that shouldn't be messed with.

Agreed.
#9
Quote from: roltemurto on April 04, 2026, 07:42:07 PM
Quote from: WillLem on April 03, 2026, 11:07:24 PMGood shout. I'll add Show/Hide Steel in the next update for sure.
Such a relief to hear this is possible. Thank you.

Added menu item and customisable hotkey (Ctrl + F2 by default) for Show/Hide Steel.

Implemented in SLXEditor commit 9ea1149.

Quote from: roltemurto on April 04, 2026, 07:42:07 PM"Grab lowest" toggle would certainly be useful I think.

After some investigation, it turns out that this is in fact what the "select piece below" (Alt + LMB) actually does: given a pile of pieces under the cursor, it will grab the lowest (give it a try!).

I've also fixed a bug with this: the hotkey would only work if there was no currently-selected piece under the cursor. This has now been fixed, so the hotkey will always cause the selection to re-trigger.

Fixed in SLXEditor commit 83d622d.

A hotkey to cycle through the pile is all that's needed, then. This has also been added: holding Shift whilst clicking LMB cycles selection through all pieces within 16px of the cursor (from lowest-highest).

Implemented in SLXEditor commit 2c6d3f2

Quote from: roltemurto on April 04, 2026, 07:42:07 PMAn "asset list" was exactly what I was trying to describe.

Ah, OK! In that case I've added this one to the to-do list. This one will likely take a bit longer, I'll post progress updates into this topic.

Quote from: roltemurto on April 04, 2026, 07:42:07 PMAt this point I'm not sure if show/hide option next to the layer counts as changing the layer system, but if that can also work, that would be a perfect UI in my humble opinion.

Selecting the piece from within the proposed asset list should be sufficient here. Showing each individual piece as its own "layer" could be done, but let's see if we need it first. That might be a good next step once the asset list (which I'll probably call the 'Pieces List' to keep it consistent with existing UI) is complete and working.

Quote from: roltemurto on April 04, 2026, 07:42:07 PMRest assured, the message bar pops up as intended, I haven't tried the buttons so I can't speak for sure for it's functions, but don't worry the bar and the message is there.

That's good to know, thanks for reporting back on this! :)
#10
Version 1.7 Uploaded

:lemming: Black Hole 18 Lemming Mayhem - changed fall distance to default of 126

Also includes a fully verified set of replays by ericderkovits.

Get the latest version here.
#11
Lemmini / Re: [RetroLemmini] MazuLems
April 04, 2026, 02:12:38 PM
This pack has now been converted to .rlv for RetroLemmini. Post here if you encounter any issues playing this pack, have any replays to share, or general comments/feedback.

Enjoy MazuLems! :)
#12
Lemmini / Re: [Lemmini] Level Packs Archive
April 04, 2026, 01:49:28 PM
MazuLems - originally by Martin Zurlinden, converted by ericderkovits.

Eric's conversion notes
ok, Here is Mazulems For Superlemmini. I got the levels from the Lemmings level database. Only had to do a few minor edits.

Mazulems is a small pack(30 levels + 2 extra levels) which uses the standard styles and the original 8 skills.

The levels use the standard Amiga lemmings music track except for levels 18 to 23 which use the ohno music track (to match NL's version thanks to Swerdis's Youtube play of the pack.)

Just extract the .rar to the main Superlemmini folder (will fall into place). There will be 3 folders(levels folder, music folder which has the ohno tracks for the 6 levels (the other amiga lemmings tracks should already be in the music folder so no need to include those), and a replays folder)

Now here is another great pack for Superlemmini. I've already started posting replays for the pack on my youtube channel.
#13
I managed save 3 on Betcha can't save just one!, save 4 seems impossible. Do we want to edit levels to make 100% possible? I'm 50/50 on whether we should tbh.

The lists I posted are just there to document my favourites, really. Of course I'd like to see them included, but I'm equally happy to leave level selection entirely up to Proxima; I'll ultimately back whatever he decides upon, even if it means some of my picks don't make the cut. I also strongly support Mobius' picks as well.

Good work so far, everyone, keep it up! :)
#14
Quote from: roltemurto on April 02, 2026, 07:34:31 AMOn your concern about existing lemming effects (countdowns, balloon pop, etc.) potentially rendering beneath the foreground object: for this use case that's actually acceptable or even preferable. A timebomb countdown visible through a tunnel arch would look fine and is arguably better than it being hidden.

My concern is the opposite: the lemming being behind the paint object, but the effect (countdown, portal warp, etc) being above the paint object. There would likely be a way to sort this out, though.

Quote from: roltemurto on April 02, 2026, 07:34:31 AM- Additionally, when a lemming's position is covered by a FOREGROUND-flagged decoration, you can have the engine draw a simple outline or silhouette of that lemming to rlEffects as well, ater the decoration is composited. Since both would write to the same layer and decorations are drawn before lemmings in the pipeline, the outline would naturally sit on top of the foreground asset. I believe the infrastructure for this already exists in the codebase as the CombineFixedColor is already used for similar fixed-color overlay passes and the lemming's bounding rect is readily available at draw time.

Hmm. A good solution to the 'hiding the lemmings' problem, but by no means trivial to implement and, considering that the proposed feature is intended to be purely visual, could spoil the intended aesthetic somewhat...?

Quote from: roltemurto on April 02, 2026, 07:34:31 AMAnd sincerely thank you for keeping "The" nostalgia alive and keep improving it up to this day. I was stunned with disbelief when I discovered your fork (and NeoLemmix to be totally frank).
I wish you a great day!

Thank you for your kind words, I'm glad you're enjoying SuperLemmix! :lemcat:
#15
I should've known. Good one!