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
Thanks for sharing the spreadsheet, Proxima! This is a great way for everyone to see what's going on with the pack in real-time.

After speaking with Proxima on Discord, it's become clear that Goal #1 is to curate the pool of levels.

The best thing anyone can do to help right now is to play through this version of RotL and provide feedback, share replays, list your favourite levels, list your least favourite levels, and comment either here in topic or directly on the spreadsheet.

Keep up the good work! :)
#2
NeoLemmix Editor Version 2.0 Update

A significant update with the following features/bugfixes:

:lemming: Templates
 • It's now possible to create, save and load level templates.
 • From the Template Loader, choose a template to use as default. This template will then be loaded when opening the Editor or creating a new level.
 • The Template Loader is shown on startup by default. This can be toggled on/off at any time.

:lemming: Crop Level Width/Height
 • Added a new Crop rectangle which makes it much quicker and easier to adjust level width and height to fit the layout.
 • This has full hotkey support (X to toggle the Crop rectangle, Enter to apply, Esc to cancel.
 • Note that some Editor features (such as dragging pieces) become unavailable when the Crop rectangle is active.

:lemming: Cycle Select Pieces
 • Shift + LMB (by default) cycles through pieces within 16px of the cursor, so that each subsequent click grabs the piece at the next-highest index.

:lemming: Show/Hide Steel
 • Added menu item and hotkey support for Show/Hide Steel (Ctrl + F2 by default).

:lemming: Control Hints
 • When the mouse is hovered over a control, information about that control is now displayed in the status bar. This can be toggled on/off in Settings.

:lemming: Pieces List
 • Added a 'Pieces List' window which displays all pieces currently active in the level.
 • From here, pieces can be selected, moved behind/in front of other pieces, and deleted.

:lemming: Style Manager
 • Added 'Remove' button so that styles can be removed from the list.
 • Bugfix - 'Sort Alphabetically' becomes available only when multiple items are selected.

:lemming: Piece Browser - Auto-replace selected pieces
 • Pressing [Ctrl] or [Shift] whilst clicking-to-add a piece from the Piece Browser will directly replace any currently-selected piece in the Level Arranger. Note that this only works if a single piece is selected.
 • Pressing [Alt] whilst clicking-to-add a piece from the Piece Browser will add that piece to the same X/Y co-ordinates as any currently-selected piece in the Level Arranger. Again, this only works if a single piece is selected.

:lemming: Misc UI
 • Improved/fixed layout of corner text (in both docked and windowed Level Arranger).
 • Piece selection is now preserved on Undo/Redo.
 • Increased maximum number of dropdown items in Main & Piece Style combos.
 • Updated some default hotkeys (Level Arranger is now Ctrl + L, Piece Browser is Ctrl + B, Expand All Tabs is Ctrl + Space).
 • Removed support for 'classic hotkeys'.
 • 'Missing Pieces' menu item is now only shown when relevant.

:lemming: Bugfixes
 • 'Select Pieces Below' (Alt + LMB by default) re-triggers selection correctly, even if used whilst a piece is already selected.
 • Grid is now drawn to its own layer rather than the background layer (so, it's visible even if backgrounds are toggled off).
 • Enhanced support for non-English locales.
 • Fixed repeat renderings when auto-resizing the form.
 • 'Use Auto Screen Start' is now written to/from a setting object rather that directly to/from the checkbox.



Download the latest version of the NeoLemmix Editor.

#3
SuperLemmix Editor Version 3.1 Update

A significant update with the following features/bugfixes:

:lemming: Templates
 • It's now possible to create, save and load level templates.
 • From the Template Loader, choose a template to use as default. This template will then be loaded when opening the Editor or creating a new level.
 • The Template Loader is shown on startup by default. This can be toggled on/off at any time.

:lemming: Crop Level Width/Height
 • Added a new Crop rectangle which makes it much quicker and easier to adjust level width and height to fit the layout.
 • This has full hotkey support (X to toggle the Crop rectangle, Enter to apply, Esc to cancel.
 • Note that some Editor features (such as dragging pieces) become unavailable when the Crop rectangle is active.

:lemming: Cycle Select Pieces
 • Shift + LMB (by default) cycles through pieces within 16px of the cursor, so that each subsequent click grabs the piece at the next-highest index.

:lemming: Show/Hide Steel
 • Added menu item and hotkey support for Show/Hide Steel (Ctrl + F2 by default).

:lemming: Control Hints
 • When the mouse is hovered over a control, information about that control is now displayed in the status bar. This can be toggled on/off in Settings.

:lemming: Pieces List
 • Added a 'Pieces List' window which displays all pieces currently active in the level.
 • From here, pieces can be selected, moved behind/in front of other pieces, and deleted.

:lemming: Style Manager
 • Added 'Remove' button so that styles can be removed from the list.
 • Bugfix - 'Sort Alphabetically' becomes available only when multiple items are selected.

:lemming: Piece Browser - Auto-replace selected pieces
 • Pressing [Ctrl] or [Shift] whilst clicking-to-add a piece from the Piece Browser will directly replace any currently-selected piece in the Level Arranger. Note that this only works if a single piece is selected.
 • Pressing [Alt] whilst clicking-to-add a piece from the Piece Browser will add that piece to the same X/Y co-ordinates as any currently-selected piece in the Level Arranger. Again, this only works if a single piece is selected.

:lemming: Misc UI
 • Improved/fixed layout of corner text (in both docked and windowed Level Arranger).
 • Piece selection is now preserved on Undo/Redo.
 • Increased maximum number of dropdown items in Main & Piece Style combos.
 • Updated some default hotkeys (Level Arranger is now Ctrl + L, Piece Browser is Ctrl + B, Expand All Tabs is Ctrl + Space).
 • Removed support for 'classic hotkeys'.
 • 'Missing Pieces' menu item is now only shown when relevant.

:lemming: Bugfixes
 • 'Select Pieces Below' (Alt + LMB by default) re-triggers selection correctly, even if used whilst a piece is already selected.
 • Grid is now drawn to its own layer rather than the background layer (so, it's visible even if backgrounds are toggled off).
 • Enhanced support for non-English locales.
 • Fixed repeat renderings when auto-resizing the form.
 • 'Use Auto Screen Start' is now written to/from a setting object rather that directly to/from the checkbox.



Download the latest version of the SuperLemmix Editor.

#4
RetroLemmini Editor Version 1.6 Update

A significant update with the following features/bugfixes:

:lemming: Cycle Select Pieces
 • Shift + LMB (by default) cycles through pieces within 32px of the cursor, so that each subsequent click grabs the piece at the next-highest index.

:lemming: Show/Hide Steel
 • Added menu item and hotkey support for Show/Hide Steel (Ctrl + F2 by default).

:lemming: Pieces List
 • Added a 'Pieces List' window which displays all pieces currently active in the level.
 • From here, pieces can be selected, moved behind/in front of other pieces, and deleted.

:lemming: Misc UI
 • Updated some default hotkeys (Level Arranger is now Ctrl + L, Piece Browser is Ctrl + B, Expand All Tabs is Ctrl + Space).

:lemming: Bugfixes
 • 'Select Pieces Below' (Alt + LMB by default) re-triggers selection correctly, even if used whilst a piece is already selected.
 • Enhanced support for non-English locales.
 • Fixed repeat renderings when auto-resizing the form.
 • 'Use Auto Screen Start' is now written to/from a setting object rather that directly to/from the checkbox.



Download the latest version of the RetroLemmini Editor.

#5
Added the logo to the 1.7 download. It's also attached here for anyone who already has the pack.
#6
Lemmini / Re: [RetroLemmini] PimoLems
April 09, 2026, 03:33:19 PM
PimoLems for RetroLemmini is now available!

Get the latest version of PimoLems here.
#7
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.
#8
Lemmini / Re: [RetroLemmini] MazuLems
April 09, 2026, 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.
#9
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!
#10
Lemmini / Re: [RetroLemmini] DoveLems
April 08, 2026, 12:11:46 AM
DoveLems for RetroLemmini is now available!

Get the latest version of DoveLems here.
#11
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.
#12
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.
#13
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.
#14
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.
#15
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.