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
Added the logo to the 1.7 download. It's also attached here for anyone who already has the pack.
#2
Lemmini / Re: [RetroLemmini] PimoLems
Today at 03:33:19 PM
PimoLems for RetroLemmini is now available!

Get the latest version of PimoLems here.
#3
Quote from: roltemurto on April 08, 2026, 11:09:50 PMThe settings reader ReadSettingsFromFile() should suppress checkbox event handlers while loading, to prevent UI events from firing before the form is ready. Standard WinForms pattern:

chk_Lvl_AutoStart...

Your investigation helped pin down the cause. ReadSettingsFromFile() shouldn't touch form controls (checkboxes or otherwise), but this particular setting (UseAutoStart) was being directly written to / read from the checkbox state rather than an actual Setting object, hence the null object reference (my bad, it was one of the first things I did when I began work on the Editor and I didn't have the experience to realise that this might be an issue).

I've now fixed this!

Fixed in SLXEditor commit 6106fd8.
#4
Lemmini / Re: [RetroLemmini] MazuLems
Today at 12:38:25 AM
Quote from: hrb264 on April 08, 2026, 07:57:23 AMI'm playing through this now and finding 16 very difficult, I think because of the basher checks meaning it always hits the one way arrow really early :(

Send me a replay, I'll take a look at it.

EDIT: Eric has now uploaded a fixed version of this level. Re-download the pack from the OP and that should sort the problem out.
#5
Help & Guides / RegEx Dictionary
April 08, 2026, 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!
#6
Lemmini / Re: [RetroLemmini] DoveLems
April 08, 2026, 12:11:46 AM
DoveLems for RetroLemmini is now available!

Get the latest version of DoveLems here.
#7
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.
#8
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.
#9
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.
#10
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.
#11
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.
#12
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.
#13
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! :)
#14
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.
#15
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! :)