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
Placeholder post. Möbius reported skill assigners not working on Discord. I'll come back and edit this properly later
#2
Quote from: JawaJuice on June 10, 2026, 03:49:17 PMThe only time I ever used Delphi at work was back in the early Noughts ... I've sure the language has evolved out of sight since I last looked at it!

NeoLemmix and SuperLemmix are both Delphi-based, which is pretty much the only reason I know it exists. I find its form-building interface very comprehensive and user-friendly, and it's still a great IDE for simple tool building.
#3
Thanks for reporting, added this to the list for 1.1.2 (hopefully due in the next few weeks).
#4
Quote from: Simon on June 09, 2026, 07:08:16 AMCan you find something better for replay-to-level association that doesn't give such opportunity for mistakes?

Lemmini's replay-to-level matchups have always been led by the level's title and pack position. It has caused problems, particularly with external levels.

RetroLemmini patches the replay matchups for external levels, but still relies on level name and position. Here's the current match flow:

1) Check the DMA levels for a matching name and position -> fallback to external levels if no match is found
2) Check all levels for a matching name and position -> fallback to external levels if no match is found
3) Check all levels (including external) for a matching name only

This is somewhat tighter than (Super)Lemmini(Too)'s replay matching and rarely results in mismatched or unmatched replays.

I did consider implementing an ID system, but given the size of the back catalog it does seem a bit too late (and complex) to introduce this now.

Matching by name is now about 99% successful for individual replays, but yeah for a mass checker it probably does need something a bit more foolproof. Suggestions welcome.
#5
Quote from: Simon on June 07, 2026, 12:02:37 PMInstead, CE should ship a thin stick. Attached is what I use. I call it the Caveman Stick in honor of mobius's push for simplicity, and I wield it with valor and satisfaction.

This stick is only 1 white pixel wide in the long middle. It's white-black-white at the end.

Looks good to me.

Let's hear from Proxima regarding this as he's the OP, and anyone else who feels invested in this discussion. If they're also happy with Simon's Caveman Stick, we can make it the default ruler from 1.1.2 onwards.

I'll leave this open for 2 weeks for replies, then will close it as resolved.
#6
Quote from: Simon on June 07, 2026, 11:31:37 AMMaybe reword the options to Show Backgrounds and activate by default, instead of Hide Backgrounds and disabled by default. It's the classic preference to word bool options positively: I want backgrounds, check, I don't want backgrounds, uncheck.

I thought I'd already done this. Will make sure this is done for 1.1.2.

Quote from: Simon on June 07, 2026, 11:31:37 AMPlease let me hide the animated decorations!

Added to the to-do list.

Quote from: Simon on June 07, 2026, 11:31:37 AMWith the CE 1.1.1 set of options, I would have expected the hide-backgrounds option to also hide the unanimated decorations. Reasoning: Either we want to see the level exactly how the designer made it, or we want the bare-bones functionality.

I don't know if anybody wants to see one kind animated/unanimated background, but not the other.

Fair enough. It should probably be "Hide (rather: Show) Backgrounds and Decorations", then. Probably no need for separate options.
#7
Note to self: see if this happens in NL 12.14 (expectation = it doesn't).

Suspected cause: update to screen transitions in CE, plus now only checking for missing pieces at level loading (to prevent repeated popups for the same error). It's likely an easy fix.
#8
Visual Studio is great for creating GUI-based Windows apps, but its own GUI can sometimes be a bit janky, especially when it comes to repositioning form elements. Delphi's GUI is actually way better for this. If I'm making a simple tool with a GUI, I often reach for Delphi first.
#9
Quote from: JawaJuice on June 10, 2026, 11:17:34 AMWhat language is NLEditor written in out of curiosity? I'd be interested how the Random ID button is implemented, presumably some kind of seeded rand function.

As kaywhyn said, it's C#. Which version are you using? The source code for the latest version is here:

NLEditor Source Code

The bit you're interested in is this:

        private void btnRandomID_Click(object sender, EventArgs e)
        {
            CurLevel.LevelID = (ulong)Utility.Random().Next() +
                               ((ulong)Utility.Random().Next() << 32);
            txtLevelID.Text = CurLevel.LevelID.ToString("X16");
        }
#10
Quote from: Lucia on June 02, 2026, 12:00:16 PM(my mum went to sleep and did not wake up, I was and still am in shock not thinking clearly).

Sorry to hear about your loss Lucia. I'm sure it's a very difficult time for you right now, best wishes to you and your family.
#11
This was reported by hrb264 on Discord.

It's something we've probably been aware of for a while. Sometimes, if a Blocker is used to turn a Builder, a small unexplained gap is left in the bridge:



This is unrelated to the recent left-facing Builder physics update, and has actually been present in Lemmini forever, but the update has made it easier to spot the bug.

The bug occurs in both directions. What's happening is that the Builder has already laid the brick whilst facing in their original direction, they are then turned by the Blocker mid-animation, and they step up onto nothing to then lay the next brick. The brick actually appears to vanish; this is because the sprite itself is showing a brick having apparently been laid, but it hasn't actually been painted to the level - at least not in the lemming's new direction - so when the sprite resets to frame 0, the brick "vanishes" (or, more accurately, it never actually existed).

The fix is simply to re-draw the step when the lemming turns. Yes, this means that the same step is drawn twice (in both directions), but it matches what's shown in the sprite and significantly increases Builder flexibility, so I'm happy to go ahead with this:



Note that the timing of the Builder's action is unaffected - the step is redrawn as soon as the lemming turns. Existing levels/replays ought not to be affected by this fix unless the buggy behaviour was required as part of the level's solution (e.g. in order to separate a lemming from the crowd). If any level did make use of this glitch though, I'd personally rather not support it in RetroLemmini anyway.

Attached are 2 replays showing the bug happening in both directions (the level is included with RetroLemmini).

Fixed in RLPlayer commit 70d1765.

#12
Lemmini / [DISC] Upcoming feature: Replay Checker
June 03, 2026, 09:18:19 PM
RetroLemmini will (at last!) be getting a replay checker which can run a replay in simulation mode (i.e. no rendering, audio, etc) and determine its result.

I've already begun work on this and it's more or less fully functional (still ironing out some rendering kinks). It currently runs automatically whenever a replay is loaded and displays the result in the window caption. This will be standard behaviour when loading a replay, so that the result is visible without having to watch the entire replay.

The plan is to allow multiple replays to be checked (basically, a Mass Replay Checker similar to NeoLemmix's), but that's a slightly bigger step and I'm looking for feedback on how users would like this feature to operate. Replay renaming is of course on the cards already, but is there anything in particular that would be useful when mass checking replays specifically in RetroLemmini?
#13
OK, support for variable level boundaries has been removed from the Player but retained (for now) in the Editor, just in case we need to do anything with these values later. So, the Player will ignore these values, but they may be useful for helping designers/maintainers to adjust their levels (if at all necessary) following this update.
#14
Let's celebrate another year of Lemmings Forums with a UK meetup! :lemcat:

Anybody is welcome to attend. We just need to set a date (I'd suggest sometime late July / early August) and a place to meet.

Suggested weekend dates: July 18th/19th - July 25th/26th - August 1st/2nd - August 8th/9th

Suggested weekday dates: July 23rd/24th - July 30th/31st - August 6th/7th - August 13th/14th

Suggested locations: Leeds - Blackpool - Whitby - Liverpool

Suggestions for alternative dates/locations are more than welcome at this point, this post is really to gauge interest and get an idea of numbers.
#15
Quote from: namida on May 28, 2026, 10:50:30 PMRather than just disregarding it for existing levels, could they be padded / shrunk accordingly?

Yes, but I see no reason to support this engine-side. It'll be up to level designers/maintainers to manually fix any affected levels, which I imagine will number very few anyway.

If it turns out that there are in fact a large number of affected levels, it may be possible to add Editor-side support, where levels would be automatically resized (and pieces moved) if necessary to accommodate the difference. However, there would have to be more than just a handful of affected levels to make it worth pursuing this.