IRC logs for #openttd on OFTC at 2025-01-18
            
00:21:28 <_glx_> yeah procedure calls don't check their own feature
00:27:35 *** Flygon has joined #openttd
00:34:08 <_glx_> nml happens to indirectly validate via variable accesses (variables are defined per feature), but if it's a varact2 not using any feature specific variable it can pass I think
00:36:28 <_glx_> oh there's also `msg = "Cannot refer to block '{}' with feature '{}', expected feature is '{}'"` somewhere
00:41:27 <_glx_> ` nmlc ERROR: "D:\developpement\GitHub\glx22\nml\regression\033_procedure.nml", line 12: Cannot refer to block 'dumb_add' with feature 'FEAT_INDUSTRYTILES', expected feature is 'FEAT_INDUSTRIES'` yeah nmlc validates procedure calls (even if the spec doesn't enforce it)
00:43:16 <_glx_> for spritelayouts you can use the same for different features, but nmlc will generate an action2 per used feature IIRC
01:51:06 <goddess_ishtar> goddess_ishtar: although the contribution guide says that you should ask and discuss on Discord before planning any major PRs
02:12:54 <talltyler> That’s to avoid working on something that wouldn’t be desired. I don’t think anyone would argue against improvements to the grf menu. 🙂
02:13:27 <talltyler> Feel free to put together design docs as a GitHub Discussion, or just start a PR and see where it goes. 😄
02:13:56 <talltyler> “Design by committee” doesn’t work here either
02:14:32 <goddess_ishtar> was planning on just asking people what they would want out of an improved menu and start drawing mockups for it
02:48:43 <_glx_> oh the best start is showing what you want, then adapt to comments
02:50:01 <_glx_> and doing things step by step is also easier than a full remodel
02:52:50 <goddess_ishtar> turns out that 90% of my usability issues were fixed by making the window larger
02:52:55 <goddess_ishtar> which I didn't even know was possible
02:53:45 <talltyler> I think it would be interesting to allow composing the active GRF list from the existing preset lists. So I could have presets “Tyler’s Favorite Objects”, “Cool Stations”, and “British vehicles” and then combine those three to create a game. In the main list, the preset name would appear as a title (similar to Nekomaster’s NewGRF section headers) and its contents could be collapsed/expanded.
02:53:45 <talltyler> I see the preset editing as separate from the results list, but also it might still be a good idea to allow adding individual GRFs to the main list without being assigned to a preset first.
02:54:18 <_glx_> there's the idea of sharable presets too
02:54:22 <talltyler> Oh yeah, if you don’t make the window wider from its default it’s borderline unusable 😛
02:54:43 <goddess_ishtar> https://cdn.discordapp.com/attachments/1008473233844097104/1330007436505120779/image.png?ex=678c6973&is=678b17f3&hm=d66d3388d94785927d44ee5eb423d00efce358a9cdb5ccebd146138f8a04a98d&
02:54:43 <goddess_ishtar> yeah I had it looking like this
02:54:57 <talltyler> Presets are just text stored in one of the config files, so they’re technically already shareable — just need a UI to make it convenient 🙂
02:55:18 <goddess_ishtar> talltyler: why *is* it so small by default
02:55:27 <_glx_> 640x480 screens
02:55:41 <_glx_> like almost every windows in the game
02:57:43 <goddess_ishtar> so yeah, turns out I don't need to redo the entire thing from scratch
03:00:00 <ian01223> really? 480p? from the days when VGA referred to a card as well a as a connector?
03:00:20 <ian01223> surely we can move the defaults up a little now
03:00:37 <goddess_ishtar> honestly doesn't surprise me at all, OTTD has so much legacy baggage
03:00:55 <_glx_> also check the tooltip for the top right button 😉
03:01:08 <goddess_ishtar> I just can't believe it was this obvious to instantly fix it
03:01:19 <talltyler> If you play with 2x scaling windows still take up quite a bit of screen space
03:01:21 <ian01223> true but I'm pretty sure 480p was outdated even when openttd came out
03:01:52 <ian01223> though not by much
03:01:59 <talltyler> Do you know I have never saved a window size? I always forget that’s a feature.
03:02:26 <talltyler> We should add that to the survey, I’m curious how many players use it
03:02:30 <ian01223> really?
03:02:32 <_glx_> I know the feature, but never used it myself
03:02:42 <ian01223> how do you live with your newgrf menus?
03:02:58 <talltyler> I just resize it every time like an idiot 😛
03:03:03 <ian01223> madness
03:03:15 <talltyler> Skill issue on my part
03:03:27 <ian01223> where's the xkcd...
03:03:46 <ian01223> https://xkcd.com/1205/
03:03:50 <_glx_> but I rarely touch newgrf menu
03:04:22 <ian01223> that button could take like 10 minutes for me to press it and it'd be worth pressing it
03:05:06 <goddess_ishtar> when it only shows 6 grfs at a time, managing a hundred of them becomes extremely painful
03:05:23 <goddess_ishtar> ugh how the fuck did I not notice the little scoring on the bottom right corner
03:05:33 <ian01223> jokes aside that sharable presets/combining presets idea sounds great
03:06:25 <ian01223> though come to think about it you could just make a newgrf that lists a bunch of other newgrfs as dependencies
03:06:35 <ian01223> that's how modpacks work in factorio actually
03:06:41 <goddess_ishtar> that doesn't actually help organise them, though
03:12:56 <ian01223> true, for that to be the case newgrfs would need to add their dependencies when they're added to a preset rather than just downloaded from bananas, which I don't think they are
03:28:54 *** D-HUND has joined #openttd
03:32:20 *** debdog has quit IRC (Ping timeout: 480 seconds)
03:32:20 *** Wormnest has quit IRC (Quit: Leaving)
03:53:26 *** gnu_jj_ has joined #openttd
03:56:36 *** gnu_jj has quit IRC (Ping timeout: 480 seconds)
04:13:20 <_glx_> but dependency is only on bananas side
04:13:51 <_glx_> once downloaded you still need to do it by hand
04:21:03 <ian01223> that's what I said 😛
04:27:49 *** D-HUND is now known as debdog
04:40:39 <DorpsGek> [OpenTTD/OpenTTD] eints-sync[bot] pushed 1 commits to master https://github.com/OpenTTD/OpenTTD/commit/642874923d8a9cf61bca8420b8b1295b0e3ac48d
04:40:40 <DorpsGek> - Update: Translations from eints (by translators)
05:13:35 *** keikoz has joined #openttd
08:01:52 *** keikoz has quit IRC ()
08:04:14 *** keikoz has joined #openttd
08:38:19 *** reldred has quit IRC (Quit: User went offline on Discord a while ago)
08:51:42 <peter1138> i did not predict the "its unusable and trash" to "just need to resize" path.
08:52:47 <andythenorth> Small windows eh
08:53:08 <andythenorth> But at least we have a button to save size
08:57:17 <peter1138> Is cold. Should I bike?
08:58:17 <peter1138> Oh, the group leaves in 3 minutes, perhaps not. It was 20 to 9 a minute ago.
09:01:20 <kuhnovic> talltyler: Whud? I never knew that was a thing!
09:02:51 <kuhnovic> Tbh I think it would be better for windows to remember their last size by default
09:04:24 <_zephyris> I agree, but might need to also auto-shrink windows if the game window is resized smaller.
09:05:17 <_zephyris> Hmm, though I guess there are cases like vehicle windows - where you might only want to resize one out of 20 - where it wouldn't be useful.
09:06:01 <andythenorth> kuhnovic: Controversial
09:06:26 <andythenorth> Only used by every other windowing system I’ve ever used
09:09:18 <kuhnovic> I know, it's different so it's bad. Pitchforks.
09:13:29 <_zephyris> 🍴 Hmm, no pitchfork emoji. Have cutlery instead
09:14:33 <andythenorth> where are the window sizes stored?
09:14:56 <andythenorth> the explicit need to save the size might be due to concerns about storage
09:29:03 <peter1138> Hmm, the subroutine non-check is defeating everything.
09:29:23 <peter1138> Well, not everything.
09:30:13 <peter1138> ⋔ is allegedly a pitchfork. But it's a mathemetical operator...
09:32:49 <andythenorth> So Chrome doesn’t remember window sizes
09:33:28 <andythenorth> And macOS Apple apps are inconsistent, even for the same window class in a single app
09:35:25 <peter1138> Which size do you remember when you have multiple vehicle windows open? (Probably the last resized one I suppose.)
09:36:00 <andythenorth> Are some windows single instance?
09:36:34 <peter1138> Okay, I can make the subroutine system find the most recently set set-id, ignoring the feature. But that would mean the external tooling to handle unique set-ids would become complexer.
09:36:44 <peter1138> Sure, there's only one NewGRF settings window.
09:49:08 <xarick> hi
09:49:25 <xarick> i found a bit more optimizations for CreateRivers, nothing too complicated this time
09:49:48 <andythenorth> maybe single instance windows should remember their size, dunno 🙂
09:58:40 <DorpsGek> [OpenTTD/OpenTTD] SamuXarick updated pull request #13275: Codechange: Optimize CreateRivers https://github.com/OpenTTD/OpenTTD/pull/13275
09:59:07 <xarick> now, breakfast, afk
10:09:11 <pickpacket> I made a deal with my manager and have been granted 4h of work time to spend on OpenTTD development this month 🥳
10:10:52 <pickpacket> Technically I've already logged them on my timesheet, but I know where to spend them
10:12:22 <peter1138> I made a deal with god.
10:12:44 <pickpacket> First of all: we're not stripping leading or trailing whitespace from company names. That results in companies being able to appear to have the same name. I feel like that's a no-brainer to fix
10:12:57 <peter1138> And I'd get him to swap our places.
10:13:10 *** Tirili has joined #openttd
10:14:03 <truebrain> Seems our wiki can have broken images for ~3 months before someone reports it 😄 Somehow some images were cached only for their first 500 bytes, which made most PNGs rather invalid. Fixed now.
10:14:40 <peter1138> Uh oh.
10:14:55 <truebrain> (it wasn't even a 10 deep page or something; the Game Manual page already had some broken images 😛 )
10:14:59 <peter1138> Hmm, why does pipewire not always recognise my (USB) sound devices...
10:15:35 <pickpacket> After that I'm going to have a look at everywhere we deal with whitespaces and consolidate them.
10:18:53 <peter1138> I guess: trim whitespace before posting the command, and the command itself should reject if it needs to be trimmed.
10:19:29 <peter1138> Maybe be feasible to always trim when submitting the query text window.
10:22:55 <pickpacket> peter1138: that'd be great. There is at least one place where we strip trailing whitespace, and at least one place where we trim all \s+ to ' '
10:23:21 <peter1138> Ok, but you're working on this, not me, right?
10:23:30 <pickpacket> Yes
10:23:47 <peter1138> E_TOO_MANY_SIDEQUESTS
10:23:54 <pickpacket> I don't think I'll ever work on you, tbh 😉
10:24:58 <andythenorth> Sidequests are the main quest no?
10:30:59 <peter1138> What feature number is badges?
10:33:45 <pickpacket> If whitespace is only handled in the input field, are there custom clients that could send invalid strings to a server?
10:34:13 <pickpacket> andythenorth: isn't every quest a side quest in some form?
10:34:50 <Rubidium> pickpacket: when receiving input from the network, assume everything is invalid, malicious and trying to crash/break the application
10:36:05 <pickpacket> Rubidium: exactly. Which means the string trimming can't be isolated to only the query input field, but rather needs to be handled where the string is supposed to be used
10:37:37 <peter1138> You can trim inside the command, I suppose. There are not that many commands that take a name that needs to be unique.
10:38:21 <peter1138> The downside to auto-trimming in the command is AI/GS will silently get something different to what they tried to set.
10:39:10 <Rubidium> pickpacket: but you can also reject any command where there are strings that aren't trimmed (maybe only when some command flag is set)
10:40:43 <Rubidium> pickpacket: sorry, I meant command trait, not flag (things like CMD_LOCATION, CMD_CLIENT_ID, etc)
10:41:13 <pickpacket> There is some thinking to be done here. Will have to get back to it later, because I have other things that need tending to rn 🙂
10:47:41 <peter1138> Ok.
10:49:50 <peter1138> Is.
10:54:34 <DorpsGek> [OpenTTD/OpenTTD] PeterN commented on pull request #13330: Change: Make Action 2 set-ids unique per feature. https://github.com/OpenTTD/OpenTTD/pull/13330#issuecomment-2599669044
11:14:16 <xarick> is there a "Requires #PRNumber" keyword in github? I have a PR that is dependant on other
11:14:22 <xarick> how would I indicate that
11:24:42 <DorpsGek> [OpenTTD/OpenTTD] rubidium42 opened pull request #13331: Codechange: use std::vector over ReallocT for dirty blocks https://github.com/OpenTTD/OpenTTD/pull/13331
11:25:15 <andythenorth> hmm time to migrate MBP
11:25:27 <andythenorth> wonder how much of the OpenTTD build is broken on a new macOS
11:25:33 <andythenorth> probably headers or something
11:25:50 *** Tirili has quit IRC (Quit: Leaving)
11:40:47 <xarick> ah, task lists
11:40:52 <xarick> https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/about-task-lists
11:43:59 <andythenorth> Pff 750GB is taking ages to transfer
11:44:09 <andythenorth> 20 mins so far
11:45:24 *** felix has quit IRC (Read error: No route to host)
11:45:42 *** felix has joined #openttd
11:52:41 <andythenorth> 500 MB/s is bad
11:53:16 <andythenorth> How fast is thunderbolt supposed to be?
11:55:09 <Rubidium> andythenorth: I fear you're limited by disk I/O
11:55:13 <andythenorth> Should be 5000 MB/s
11:55:32 <andythenorth> The cable is allegedly certified
11:55:37 <Rubidium> what kinds of MBP are they?
11:57:48 <andythenorth> M1 and M4
11:58:21 <andythenorth> The disk does around 5000 MB/s depending on file size
11:59:05 <Rubidium> it might just be the overhead associated with copying small files
12:00:11 <andythenorth> Might be the cable
12:00:17 <Rubidium> it's so annoying that it's often faster to just zip all the files (without compression), send that zip over and unzip at the other side
12:00:42 <andythenorth> It’s averaging 420 MB/s which seems like USB 3.1 speed
12:01:07 <Rubidium> but with 500 MB/s I wouldn't really bother that much. It's still ~5 Gbps, which is faster than most networks
12:02:30 <Rubidium> so it's only 1500 seconds; that's less than half an hour
12:03:10 <Rubidium> trying to "fix" the problem will likely cost you more time
12:03:27 <DorpsGek> [OpenTTD/OpenTTD] github-advanced-security[bot] commented on pull request #13331: Codechange: use std::vector over ReallocT for dirty blocks https://github.com/OpenTTD/OpenTTD/pull/13331#pullrequestreview-2560412154
12:04:15 <andythenorth> Yup
12:04:39 <andythenorth> Every 3 years I do this and forget to try buying a new cable 😛
12:08:41 <peter1138> Is this a GBps vs Gbps issue?
12:11:13 <peter1138> Well.
12:11:18 <andythenorth> Nah
12:12:08 <andythenorth> I think my thunderbolt 3 cable isn’t compatible with Apple ports
12:12:24 <andythenorth> So it’s downgrading to USB
12:12:58 <andythenorth> 1.3 million out of 4 million files transferred so far
12:13:05 <andythenorth> Probably mostly Horse
12:15:19 <peter1138> git clone eh?
12:15:29 <cu-kai> actually, on the topic of macs, perhaps somebody here can help. i am trying to build openttd on my intel macbook running sequoia, but it fails to link, referencing some CGL symbols: https://p.mort.coffee/G7i.png
12:16:07 <peter1138> Remember when Apple decided to drop OpenGL? That.
12:16:12 <cu-kai> i rather suspect there is something wrong with my install now as i've managed to get this working in a sequoia VM, however i'd rather not reinstall my whole mac.
12:16:12 <peter1138> (Possibly)
12:16:17 <cu-kai> well, i am not sure now
12:16:34 <cu-kai> i asked about this a few weeks ago and that was understandably the response, but the fact that it works in a VM is a little concerning
12:16:59 <cu-kai> i'd prefer to fix the problem with my current macOS install than completely erase my machine
12:17:25 <cu-kai> but the removal of the /Library/Developer folder and xcode (and subsequent reinstallation) did not solve this
12:18:55 <cu-kai> the only google results i've found aren't relevant to this situation, hence me asking here
12:26:22 <andythenorth> Pff 3m files done
12:37:17 <andythenorth> Hmm done. Will it compile Horse though? 😛
12:38:40 <peter1138> More importantly, will it compile OpenTTD?
12:39:25 <_glx_> Maybe downgrade xcode?
12:40:02 <_glx_> Or it's the target shell variable
12:42:05 <_glx_> On CI we have `MACOSX_DEPLOYMENT_TARGET: 10.13` for the env vars
12:42:51 <cu-kai> hmm, but this worked on a _fresh_ sequoia VM
12:46:11 <cu-kai> i think all i did there was install the cmdline tools
12:46:15 <cu-kai> i don't even have xcode on that vm
12:48:45 <andythenorth> hmm Horse compile from make clean was 37 seconds
12:48:50 <andythenorth> that's too good to be true TBH
12:49:07 <andythenorth> it's 1 min 4s on old MBP
12:50:30 <andythenorth> let's see how much of OpenTTD vails
12:51:39 <andythenorth> https://cdn.discordapp.com/attachments/1008473233844097104/1330157661609660490/image.png?ex=678cf55b&is=678ba3db&hm=f481c9c7532f8a2e7ec2a0016b668fd3fa17656982e6c8f5c9103769e612a3d0&
12:52:11 <andythenorth> https://cdn.discordapp.com/attachments/1008473233844097104/1330157794510241822/image.png?ex=678cf57b&is=678ba3fb&hm=4a3c6f62f13f1e254c5004867201006dcfd9bff63f17e87a2ede67928c7c9753&
12:53:36 <andythenorth> not bad
12:53:41 <andythenorth> fresh build
12:59:07 <cu-kai> oh, i think i found the problem. i have xquartz etc installed on my mac and cmake is looking for openGL there instead of in the SDKs
12:59:14 <cu-kai> OPENGL_GLU_INCLUDE_DIR /usr/X11R6/include
12:59:14 <cu-kai> OPENGL_INCLUDE_DIR /usr/X11R6/include
12:59:14 <cu-kai> OPENGL_gl_LIBRARY /usr/X11R6/lib/libGL.dylib
12:59:14 <cu-kai> OPENGL_glu_LIBRARY /usr/X11R6/lib/libGLU.dylib
12:59:33 <cu-kai> this is wrong
12:59:44 <cu-kai> i'm building again rn, let's see if it links
13:00:29 <cu-kai> yeah ok, that was the problem
13:00:32 <cu-kai> it linked now
13:00:52 <cu-kai> i manually changed all 4 of those cmake options to: /Library/Developer/CommandLineTools/SDKs/MacOSX15.2.sdk/System/Library/Frameworks/OpenGL.framework
13:01:02 <cu-kai> i hope this helps somebody, but i think this might be considered a bug
13:01:05 <andythenorth> \o/
13:01:20 <cu-kai> (my VM didn't have xquartz installed thus defaulted to the correct SDK directory)
13:06:38 <_glx_> oh could be one of the ports messing with include paths (IIRC it happened before)
13:06:52 <cu-kai> yes (homebrew, not macports btw)
13:07:01 <cu-kai> but i get your point - it wouldn't be the first time
13:07:17 <_glx_> CI uses vcpkg so we are kinda safe on this side now 🙂
13:07:44 <cu-kai> the question is: wha tis the long term solution?
13:07:48 <cu-kai> what is*
13:07:58 <cu-kai> make -j16 1637.43s user 149.46s system 1259% cpu 2:21.82 total
13:08:03 <cu-kai> also jfc ^
13:08:08 <cu-kai> andythenorth: do you use an intel mac?
13:08:16 <_glx_> no new M4
13:08:19 <cu-kai> oh, nice
13:08:39 <cu-kai> oh yeah, just re-read the message lol.
13:09:32 <_glx_> we also use arm runners for the CI, building macos is so fast compared to other
13:10:40 <cu-kai> oh, i don't believe it is even homebrew messing with this
13:10:47 <cu-kai> i believe xquartz installs these directories
13:11:14 <cu-kai> anyway, makes sense. my mac is no longer my primary machine, i can't justify the expense of a new apple silicon mac (as tempting as they are)
13:11:37 <cu-kai> this is a 2019 intel macbook pro with core i9
13:12:22 <_glx_> yeah mac prices are insane
13:12:32 <_glx_> (apple prices in general)
13:12:42 <cu-kai> it's good hardware but yeah
13:12:50 <cu-kai> also, a lot of games i play just aren't ready for aarch64 yet
13:13:04 <cu-kai> my current machine is a framework laptop, 13"
13:13:31 <cu-kai> linux has come so far on laptops in the last 5 or so years, especially with wayland
13:14:14 <cu-kai> and i spent a while trying to de-apple my life too
13:14:49 <_glx_> oh wayland could hurt
13:17:12 <cu-kai> what's wrong with wayland?
13:44:37 <xarick> hmm master seems to be getting faster
13:46:06 <peter1138> Good, that means I can slow it down for parity.
14:06:50 <xarick> https://cdn.discordapp.com/attachments/1008473233844097104/1330176579665526784/image.png?ex=678d06fa&is=678bb57a&hm=8bb5b19fa1ea98f2b48769ad15a0cbd0e8c67ac30c2943d58d12ca0200571d37&
14:08:40 <xarick> openttd1t wasn't very convincing
14:09:29 <xarick> 2.8 seconds
14:09:38 <xarick> could be attributed to just the tile loop removal
14:16:49 <DorpsGek> [OpenTTD/OpenTTD] PikkaBird commented on issue #12987: [Bug]: Historical houses can spawn under construction https://github.com/OpenTTD/OpenTTD/issues/12987
14:20:55 <andythenorth> FIRS build 5s from clean
14:21:06 <andythenorth> not bad
14:25:14 <andythenorth> wonder if python 3.13 is faster than 3.12
14:25:20 <andythenorth> oh, there's this also https://docs.python.org/3/whatsnew/3.13.html#whatsnew313-free-threaded-cpython
14:26:13 <andythenorth> still curious if we could multi-thread elements of nmlc
14:26:53 <andythenorth> don't think the free threaded cpython option is relevant to that though
14:27:09 <_zephyris> There were quite a few performance targeted changes IIRC
14:27:23 <_zephyris> Improved imports, faster garbage collection, the JIT compiler
14:27:56 <andythenorth> most of my nmlc stuff runs in pypy3
14:30:22 <andythenorth> let's try 3.13 for the rest though
14:42:36 <peter1138> £400 for +8GB and +256GB, lol Apple.
14:43:00 <peter1138> Did you go M4 Pro?
14:43:09 <andythenorth> M4 Max
14:43:16 <peter1138> Or a laptop, I guess.
14:43:17 <andythenorth> 14 core CPU, 36GB
14:43:39 <peter1138> I forget that other people cope fine with laptops.
14:44:53 <peter1138> Mac Pro is still on M2.
14:44:57 <andythenorth> py313 is a bit faster than py312
14:45:27 <peter1138> Urgh, the Mac Studio webpage is a scrolling-clusterfuck.
14:45:30 <andythenorth> lol they're both so ridiculously slower than pypy
14:45:50 <andythenorth> the Mac Studio is silly at this point, until updated
14:45:59 <andythenorth> the M4 mini is the one apparently
14:46:03 <andythenorth> for value
14:46:04 <pickpacket> peter1138: I don't just cope with my laptop. I love it
14:46:48 <andythenorth> pypy3 times for nmlc
14:46:48 <andythenorth> Parsing ... 6.7 s
14:46:48 <andythenorth> Preprocessing ... 4.6 s
14:46:48 <andythenorth> Generating actions ... 0.4 s
14:46:48 <andythenorth> Assigning Action2 registers ... 9.8 s
14:47:06 <andythenorth> py313 times
14:47:06 <andythenorth> Parsing ... 42.4 s
14:47:06 <andythenorth> Preprocessing ... 17.4 s
14:47:06 <andythenorth> Generating actions ... 1.6 s
14:47:06 <andythenorth> Assigning Action2 registers ... 37.8 s
14:47:13 <andythenorth> JIT anyone? 😛
15:03:09 <xarick> turbo charging river gen will all my cheap tricks combined yay
15:03:23 <xarick> i wanna get results
15:25:02 *** Tirili has joined #openttd
15:25:55 <johnfranklin> oops, I am finally not scared of minecraft, and played it again
15:26:15 <xarick> https://cdn.discordapp.com/attachments/1008473233844097104/1330196568145526855/image.png?ex=678d1997&is=678bc817&hm=2ecf74bbcb8c6c6df7041e0481c2ed7ed74f6128cdb780af0a6dfbea96fc15da&
15:26:15 <xarick> woah...
15:38:43 <xarick> https://cdn.discordapp.com/attachments/1008473233844097104/1330199704327426109/2025-01-18_15-37-39.mp4?ex=678d1c83&is=678bcb03&hm=d1e695493449c7238597a2af78b97e8baa3fdb2259d00bd2d0997654f973627f&
15:40:00 <DorpsGek> [OpenTTD/OpenTTD] rubidium42 updated pull request #13331: Codechange: use std::vector over ReallocT for dirty blocks https://github.com/OpenTTD/OpenTTD/pull/13331
15:40:21 *** Tirili has quit IRC (Remote host closed the connection)
15:40:26 *** Tirili has joined #openttd
15:40:27 <xarick> 2a config
15:45:33 <DorpsGek> [OpenTTD/OpenTTD] rubidium42 updated pull request #13331: Codechange: use std::vector over ReallocT for dirty blocks https://github.com/OpenTTD/OpenTTD/pull/13331
15:45:44 <xarick> https://cdn.discordapp.com/attachments/1008473233844097104/1330201467021430916/2025-01-18_15-44-28.mp4?ex=678d1e27&is=678bcca7&hm=8889f536d6febfa389ef566d30ae96d465f476509307b791793d3a953eadb5fa&
15:45:44 <xarick> 1s config
15:48:38 *** Wormnest has joined #openttd
15:57:13 <peter1138> Hmm, is it possible to use a raw literal string where NML wants a translatable string...?
15:57:40 <_glx_> I don't think so
15:57:41 <peter1138> (not in .nml, in .py)
15:57:55 <peter1138> Okay, so I should make NML not want a translatble string.
15:57:58 <_glx_> ah (in nml it's not possible I think)
16:09:26 <andythenorth> hmm with 14 cores I can build Iron Horse, Moose and Ibex in parallel in 36 seconds 😛
16:09:50 <andythenorth> I've run out of silly tests to do now
16:10:58 *** Tirili has quit IRC (Remote host closed the connection)
16:19:24 <DorpsGek> [OpenTTD/nml] glx22 updated pull request #358: Add: "include" keyword, allowing to include files without external tools https://github.com/OpenTTD/nml/pull/358
16:19:45 <_glx_> needs real world testing
16:27:28 <peter1138> Hmm, well.
16:40:02 *** Flygon has quit IRC (Read error: Connection reset by peer)
16:40:04 <peter1138> Oh.
16:40:43 <andythenorth> _glx_: I have suitable case
16:40:57 <andythenorth> Const defines for FRAX classes
16:41:05 <andythenorth> Limited though
16:41:32 <_glx_> yeah basic include should work fine, the testing would be for replacement and concatenation 🙂
16:42:20 <_glx_> I already know it's possible to do weird things resulting in valid NFO/GRF but invalid NML
16:43:04 <_glx_> https://cdn.discordapp.com/attachments/1008473233844097104/1330215897528401970/image.png?ex=678d2b98&is=678bda18&hm=e6d64342d3e40d3ba909e2dbcff67ec3103c862d9a6114ec206e142af7f9c351&
16:43:04 <_glx_> like
16:43:29 <_glx_> compiles fine, but --nml output is invalid
16:44:53 <_glx_> and without the quotes it triggers an assert
16:46:09 <andythenorth> so chameleon syntax was
16:46:09 <andythenorth> `<tal:include metal:use-macro="load: ../../polar_fox/cargo_classes/cargo_class_constants.nml" />`
16:46:18 <andythenorth> probably not changing much 🙂
16:47:49 <andythenorth> `include("src/polar_fox/cargo_classes/cargo_class_constants.nml");`
16:48:00 <peter1138> Hmm, should I use extendedbytes or words for badge lists?
16:48:46 <peter1138> I feel like extendedbytes only exist for backwards compat.
16:48:49 <andythenorth> _glx_: I have no paramas at all
16:49:54 <peter1138> But also, a list of 3 items becomes 8 bytes with words instead of 4 bytes... unless you use NML which prefers to just output 3 bytes, so it would be 12 bytes with extendedbytes... Hmm.
16:49:57 <_glx_> go word word directly in new stuff
16:50:07 <peter1138> Alright.
16:50:09 <_glx_> easier
16:52:28 <DorpsGek> [OpenTTD/nml] andythenorth commented on pull request #358: Add: "include" keyword, allowing to include files without external tools https://github.com/OpenTTD/nml/pull/358#issuecomment-2599785920
16:54:16 <DorpsGek> [OpenTTD/OpenTTD] PeterN updated pull request #13073: Add: NewGRF Badges feature https://github.com/OpenTTD/OpenTTD/pull/13073
16:55:34 <peter1138> Ah, my NML patch is still using 4-byte labels.
16:55:48 *** firmat has quit IRC (Remote host closed the connection)
16:58:01 <peter1138> Oops, I've got a numinfo left :)
16:59:55 <andythenorth> _glx_: I don't have any more complex cases in my grfs....I prefer to concatenate everything to a single nml file, it's easier for debuggging
17:00:24 <andythenorth> random idea, if the included file isn't changed, could we cache the parse of it?
17:00:32 <DorpsGek> [OpenTTD/OpenTTD] PeterN updated pull request #13073: Add: NewGRF Badges feature https://github.com/OpenTTD/OpenTTD/pull/13073
17:00:37 <andythenorth> or does nml already cache parse results?
17:01:03 <_glx_> there's no cache
17:01:19 <peter1138> That 'fixes' the limited length of the badge translation table by allowing appending to it.
17:01:34 <andythenorth> parsing is outrageously slow currently 🙂
17:01:34 <_glx_> and parse result of included file also depend on parameters
17:01:45 <andythenorth> oh yeah, can't just rely on the file
17:02:04 <peter1138> I'm wondering though.
17:02:26 <peter1138> Should my variable length property start with the number of items, or the number of bytes comprising the items?
17:03:26 <peter1138> (If a variable-length property already starts with the number of bytes, then adding a self-descriptor for variable-length size doesn't need to change the format of this property later.)
17:03:44 <_glx_> IIRC some properties use number of items, while some other use size in bytes
17:04:16 <peter1138> (But then again, everything else would need to be changed anyway)
17:05:03 <_glx_> and we end up with actual format unknown until action 8
17:05:08 <peter1138> Yeah. For a byte list it's the same, but of course when the length is only a byte already then that still needs modifying to be generic enough for those properties that are longer than 255 bytes.
17:05:36 <peter1138> I'm in favour of requiring a pre-scan for Action 8.
17:06:40 <peter1138> OpenTTD itself already prescans for the NewGRF scan, and will say it's incompatible.
17:11:12 <_glx_> oh might also need increase of NFO version, 32 using v8, 33 using v9 so it's not possible to mismatch when mixing multiple NFO files
17:11:51 <_glx_> hmm no won't help, the header is optional in included files
17:14:19 <_glx_> but grfcodec/renum would be able to detect incorrect formats
17:15:32 <peter1138> Hmm, can cargotable be used with variables (constants) for the cargo names?
17:16:04 <peter1138> In the example I see what looks like 4 byte literals with no quotes.
17:16:15 <_glx_> doesn't the name expect an action 4 ID ?
17:16:29 <peter1138> ...
17:16:32 <peter1138> cargo labels, sorry.
17:16:54 <peter1138> I'm trying to cook up badge support for NML.
17:16:59 <peter1138> But badges are not 4-byte labels.
17:17:01 <_glx_> ah it wants 4 bytes for a label
17:17:35 <_glx_> because internally it's an uint32
17:18:01 <peter1138> So imagine something like `badgetable { 'power/steam', 'power/diesel', 'power/electric' }`
17:18:07 <_glx_> "ABCD" is just an human friendly thing
17:18:32 <peter1138> And then later on something like `badges: ['power/steam'];`
17:18:59 <peter1138> As an Action0 property.
17:19:12 <_glx_> if the spec says it's a litteral string of variable length you should be fine
17:19:23 <peter1138> So badges itself is a word-list.
17:19:45 <peter1138> So I need to translate 'power/steam' to 0x0000.
17:20:47 <peter1138> Do I quotes...
17:21:17 <peter1138> The grf-py implementation was a bit different.
17:21:19 <_glx_> table global to the file, then index into table as property has sense
17:21:51 <_glx_> it's done that way for other things with dedicated table
17:22:43 <peter1138> I looked at label_list, but I think that outputs the label directly.
17:22:52 <peter1138> btt = BadgeTranslationTable()
17:22:52 <peter1138> POWER_STEAM = btt.add('power/steam')
17:22:52 <peter1138> POWER_DIESEL = btt.add('power/diesel')
17:23:14 <peter1138> My grf-py implementation does it this way, because it's a programming language :)
17:23:20 <peter1138> train[0] = [POWER_STEAM, FLAG_GB]
17:23:47 <peter1138> I can then do that, and because it's a variable it will break properly in the correct place if it's mispelled.
17:25:58 <peter1138> Hmm, where do we read a byte list... CTT include/exclude.
17:26:13 <peter1138> ctt_list
17:26:16 <peter1138> I should look at that.
17:27:00 <xarick> > [CreateRivers /* Find all springs multithreaded. */] 184039 us
17:27:00 <xarick> > [CreateRivers /* Find all springs singlethreaded. */] 1601830 us
17:29:56 <LordAro> is saving 1.5s worth the extra complexity though?
17:30:19 <LordAro> i suspect there are rather bigger possible wins in the worldgen by introducing multithreading
17:33:40 <xarick> "yes"
17:34:12 <xarick> it detected 16 threads on my system
17:34:33 <xarick> shouldn't it be 8?
17:36:06 <_glx_> 8 cores? (then 16 threads is correct)
17:37:53 <xarick> https://cdn.discordapp.com/attachments/1008473233844097104/1330229693370335443/image.png?ex=678d3871&is=678be6f1&hm=e810bad176d5033bdb0a78976ccded927a38bf905175a04b3833018b6da3b303&
17:37:53 <xarick> hmm a tiny overhead
17:38:02 <xarick> that's a 64x64 map
17:38:41 <Rubidium> _glx_: I've got 12 cores and 16 threads (yay 'slower' efficiency cores)
17:39:56 <xarick> https://cdn.discordapp.com/attachments/1008473233844097104/1330230206794829917/image.png?ex=678d38eb&is=678be76b&hm=e37f9807f441633ec6baffa24d885232a0e441e4c24377b0385bc3ef1feb8a69&
17:39:56 <xarick> needed a map sized 128x128 to break even
17:40:04 <peter1138> 500% slower for a 64x64 map, terrible.
17:40:23 <_glx_> there's always some overhead with threading, in some case it's nothing compared to the gain, but there's always a case where it's worse
17:40:25 *** nielsm has joined #openttd
17:45:51 <xarick> I could make FindSpring a bit faster if I only gather TileHeight
17:46:05 <xarick> those GetTileZ cost a bit
18:07:47 <DorpsGek> [OpenTTD/OpenTTD] PeterN updated pull request #13073: Add: NewGRF Badges feature https://github.com/OpenTTD/OpenTTD/pull/13073
18:20:10 <DorpsGek> [OpenTTD/OpenTTD] nielsmh commented on pull request #13265: Change: Convert Magic Bulldozer to settings https://github.com/OpenTTD/OpenTTD/pull/13265#issuecomment-2599817307
18:25:34 <peter1138> > nml.generic.ScriptError: "042_badges.nml", line 14: Syntax error, unexpected token "badgetable"
18:25:37 <peter1138> Bah
18:25:49 <DorpsGek> [OpenTTD/nml] andythenorth commented on pull request #358: Add: "include" keyword, allowing to include files without external tools https://github.com/OpenTTD/nml/pull/358#issuecomment-2599819676
18:26:52 <peter1138> Hmm, is this parser caching, or was that removed?
18:27:45 <_glx_> use `-R` to rebuild the parser
18:29:08 <peter1138> That's the magic.
18:47:37 *** tokai|noir has joined #openttd
18:47:37 *** ChanServ sets mode: +v tokai|noir
18:51:16 *** Tirili has joined #openttd
18:54:32 *** tokai has quit IRC (Ping timeout: 480 seconds)
19:25:33 *** Tirili has quit IRC (Remote host closed the connection)
19:26:23 *** Tirili has joined #openttd
19:31:53 *** Tirili has quit IRC (Remote host closed the connection)
19:32:35 *** Tirili has joined #openttd
19:35:18 <FLHerne> whoever made nml use parser caching was an idiot
19:35:32 <FLHerne> it's clearly wasted far more of people's time than it ever saved
19:36:17 <FLHerne> (in fairness, that idiot had a ridiculously slow laptop at the time where the runtime difference was very noticeable)
19:38:57 <andythenorth> Why have I never run into it as an issue?
19:40:59 <DorpsGek> [OpenTTD/nml] PeterN opened pull request #359: Add: Support for NewGRF badges. https://github.com/OpenTTD/nml/pull/359
19:43:05 <peter1138> Oh right.
19:46:32 <DorpsGek> [OpenTTD/nml] PeterN updated pull request #359: Add: Support for NewGRF badges. https://github.com/OpenTTD/nml/pull/359
19:51:47 <DorpsGek> [OpenTTD/nml] PeterN updated pull request #359: Add: Support for NewGRF badges. https://github.com/OpenTTD/nml/pull/359
19:51:53 <peter1138> Something something something.
19:52:03 <peter1138> andythenorth, iron-horse-badger-edition?
19:52:28 <peter1138> Hmm, I think I probably didn't address setting a badge string :)
19:52:49 *** Tirili has quit IRC (Remote host closed the connection)
19:54:10 *** Tirili has joined #openttd
19:54:14 <andythenorth> peter1138: can I now?
19:54:27 <andythenorth> "if only my Horse compile was faster"
19:54:44 *** Tirili has quit IRC ()
19:54:58 *** akimoto has joined #openttd
19:56:38 <andythenorth> got multiple nml PRs now 😛
19:56:44 <andythenorth> can we merge 358? 😛
19:56:50 <peter1138> Fixed.
19:56:51 <DorpsGek> [OpenTTD/nml] PeterN updated pull request #359: Add: Support for NewGRF badges. https://github.com/OpenTTD/nml/pull/359
19:58:08 <peter1138> (Yes, it uses normal feature strings, no faffing with 0xD0 or 0xDC strings)
19:59:55 <_zephyris> I'm enjoying the badges btw
20:00:22 <andythenorth> need to eat some lunch
20:00:27 <andythenorth> then I'll Horse badger
20:00:29 *** kuka_lie has joined #openttd
20:00:35 <peter1138> andythenorth, the example also shows how the wagon_attach callback can test for a badge.
20:01:34 <peter1138> cue complicated coupler schemes all set by badgers.
20:01:47 *** akimoto has quit IRC (Remote host closed the connection)
20:04:21 <andythenorth> brake types
20:04:46 <andythenorth> https://cdn.discordapp.com/attachments/1008473233844097104/1330266657490337822/image.png?ex=678d5ade&is=678c095e&hm=29470ff0893ee0aefba82527f6a4bde3899ada2dafa3e547882aff842a7ae978&
20:05:24 <andythenorth> oh I need to build the openttd PR too 😛
20:05:26 <andythenorth> oops
20:05:32 <andythenorth> building takes so long
20:06:29 <peter1138> Oh god no.
20:06:31 <andythenorth> what -j value for 14 cores? Maybe 32
20:06:54 <andythenorth> ok it built
20:16:05 <DorpsGek> [OpenTTD/OpenTTD] rubidium42 commented on pull request #13073: Add: NewGRF Badges feature https://github.com/OpenTTD/OpenTTD/pull/13073#pullrequestreview-2560522203
20:22:17 *** kuka_lie has quit IRC (Ping timeout: 480 seconds)
20:25:29 *** kuka_lie has joined #openttd
20:25:40 <DorpsGek> [OpenTTD/OpenTTD] PeterN commented on pull request #13073: Add: NewGRF Badges feature https://github.com/OpenTTD/OpenTTD/pull/13073#pullrequestreview-2560527544
20:27:07 <DorpsGek> [OpenTTD/OpenTTD] PeterN commented on pull request #13073: Add: NewGRF Badges feature https://github.com/OpenTTD/OpenTTD/pull/13073#pullrequestreview-2560527727
20:28:38 *** gelignite has joined #openttd
20:29:09 <DorpsGek> [OpenTTD/OpenTTD] PeterN commented on pull request #13073: Add: NewGRF Badges feature https://github.com/OpenTTD/OpenTTD/pull/13073#pullrequestreview-2560527950
20:32:01 *** Tirili has joined #openttd
20:34:42 <andythenorth> how many levels can I nest badges?
20:34:49 <andythenorth> power/electric/ac?
20:36:00 <peter1138> You can nest however you like, but only the first level means anything different to the game.
20:36:55 <peter1138> Nesting further to create a namespace/hierarchy is intended though.
20:38:25 <peter1138> But currently, adding `power/electric/ac` doesn't automatically add/imply `power/electric`
20:39:05 <andythenorth> ok
20:39:12 <peter1138> b.add(BADGE_CLASS_POWER + "/electric", "electric.svg", "STR_PROPULSION_ELECTRIC")
20:39:15 <peter1138> b.add(BADGE_CLASS_POWER + "/electric/ac", "electric_ac.svg", "STR_PROPULSION_ELECTRIC_AC")
20:39:18 <peter1138> b.add(BADGE_CLASS_POWER + "/electric/ac/15k", "electric_ac.svg", "STR_PROPULSION_ELECTRIC_AC_15")
20:39:18 <andythenorth> flat is better anyway
20:39:21 <peter1138> b.add(BADGE_CLASS_POWER + "/electric/ac/25k", "electric_ac.svg", "STR_PROPULSION_ELECTRIC_AC_25")
20:39:24 <peter1138> b.add(BADGE_CLASS_POWER + "/electric/dc", "electric_dc.svg", "STR_PROPULSION_ELECTRIC_DC")
20:39:27 <peter1138> b.add(BADGE_CLASS_POWER + "/electric/dc/600", "electric_dc.svg", "STR_PROPULSION_ELECTRIC_DC_600")
20:39:30 <peter1138> One of my stashes does this as a test.
20:40:15 <peter1138> BADGE_CLASS_IH_COLOUR = "iron-horse-colour"
20:40:15 <peter1138> b.add(BADGE_CLASS_IH_COLOUR + "/blue-darkblue", None, "STR_COLOUR_BLUE_DARKBLUE", flags=BadgeFlags.NAME_SUFFIX)
20:40:18 <peter1138> b.add(BADGE_CLASS_IH_COLOUR + "/variety", None, "STR_COLOUR_VARIETY", flags=BadgeFlags.NAME_SUFFIX)
20:40:19 <andythenorth> https://cdn.discordapp.com/attachments/1008473233844097104/1330275603559088168/image.png?ex=678d6333&is=678c11b3&hm=a1e447e271a170b77038a89a35efe184d40e2fc5d11883db4c63335d3ed03ccf&
20:40:19 <andythenorth> oops 🙂
20:40:21 <peter1138> b.add(BADGE_CLASS_IH_COLOUR + "/rust-shale", None, "STR_COLOUR_RUST_SHALE", flags=BadgeFlags.NAME_SUFFIX)
20:40:24 <peter1138> There's also this one.
20:40:30 <peter1138> Perfect.
20:41:03 <peter1138> A 'very useful' error popup that.
20:41:52 <andythenorth> https://cdn.discordapp.com/attachments/1008473233844097104/1330275992157294685/crash20250118204007.json.log?ex=678d638f&is=678c120f&hm=4b32254a0a11c3f9b6f48c9ee87f93b725a23047c7e3c2a5b810e6bc1c8cb31d&
20:41:59 <peter1138> (Also I haven't implemented name-suffix.
20:42:00 <peter1138> )
20:42:05 <andythenorth> https://cdn.discordapp.com/attachments/1008473233844097104/1330276047312125963/crash20250118204007.png?ex=678d639d&is=678c121d&hm=739daad921deee2212888b60d8db80939ea705942e8d5b0fa89a286cb0398077&
20:44:08 <peter1138> Probably occurs if there are no badges with icons present.
20:44:30 <peter1138> Error: Assertion failed at line 308 of /home/petern/src/openttd/src/stdafx.h: !this->list.empty()
20:44:55 <andythenorth> yup no icons defined
20:45:44 <peter1138> https://fuzzle.org/~petern/ottd/badges.grf
20:46:43 <peter1138> That provides some.
20:47:08 <peter1138> (It's the grf produced by https://github.com/petern/grfbadges
20:47:34 <peter1138> I'm still not sure about including operator logos. Copyrights...
20:50:31 <peter1138> Separate standardised grf?
20:52:10 <andythenorth> dunno 🙂
20:52:19 <andythenorth> my trains are fictional 😛
20:54:08 <andythenorth> hmm how do I add spritesets in nml?
20:54:12 <andythenorth> wiki will know
20:55:12 <_glx_> maybe I should just do https://github.com/OpenTTD/nml/compare/master...glx22:nml:parser_rebuild
20:55:19 <andythenorth> weird, the spritesets aren't really documented
20:55:38 <andythenorth> https://newgrf-specs.tt-wiki.net/wiki/NML:Spriteset
20:56:26 <johnfranklin> What about badger mushroom on karaoke?
20:57:49 <peter1138> "Badges are cosmetic" ... proceeds to show an example of badges changing game behaviour in the example...
20:59:53 <peter1138> Also the dropdown is wtf.
21:02:47 <peter1138> Oh, and my badges.grf is 32bpp 2X zoom for a bit more detail (although it's easy to switch), the flags are 10 px height (20px at 2X), and the nominal max height is 12 px (24px at 2x)
21:03:10 <andythenorth> ach, can't find an example of how to write a spriteset
21:03:37 <peter1138> No idea, I generate sprites with python.
21:03:39 <andythenorth> ah example_stations.nml
21:03:49 <andythenorth> how many realsprites for a badge?
21:03:50 <andythenorth> 1?
21:03:57 <peter1138> "Yes"
21:04:09 <peter1138> You can provide more but they won't be used.
21:04:21 <xarick> I just envisioned a new FindSpring algorithm
21:04:23 <peter1138> This may be a way to provide animation though.
21:06:13 <xarick> is it beautiful? <https://gist.github.com/SamuXarick/ab1c86a0224d4e1877387c7478b6d3ee>
21:07:06 <andythenorth> hmm
21:07:25 <peter1138> Why are num and count references?
21:08:03 <xarick> count the first 9 tiles in a circular tile search and hope there's at least 4
21:08:34 <xarick> that match the criteria
21:09:33 <andythenorth> oops crashed nml
21:09:48 <xarick> damn, i don't know how to explain, but it just works
21:09:57 <xarick> and is faster
21:10:01 <andythenorth> is this not a valid spriteset?
21:10:01 <andythenorth> spriteset (spriteset_badge_steam, "src/graphics/badges/steam.png") {
21:10:01 <andythenorth> [ 10, 10, 64, 65, -31, -34 ]
21:10:01 <andythenorth> }
21:10:10 <andythenorth> I don't really know how to write nml, it's all templated
21:10:11 <xarick> does 3 things at once
21:10:15 <peter1138> Heh.
21:10:24 <andythenorth> `Error: (IndexError) "list index out of range".`
21:10:39 <andythenorth> I assume that realsprite is wrong
21:10:54 <peter1138> For "production" use, I recommend not defining badges for things like steam. Part of the purpose of badges is there's a standard set already present.
21:10:55 <andythenorth> no offsets?
21:11:05 <andythenorth> I was just trying to prevent the assert
21:11:32 <peter1138> Download badges.grf from my server :)
21:11:47 <peter1138> Or wait for me to fix it in the code.
21:13:36 <andythenorth> I'll wait 😛
21:14:24 <peter1138> Is this another of those "I can't trust it, it might be a virus" situations...
21:19:46 *** Wolf01 has joined #openttd
21:21:15 <andythenorth> No
21:22:56 *** Tirili has quit IRC (Remote host closed the connection)
21:34:24 <andythenorth> ok so (there's no sprite)...where do I see the strings?
21:34:26 <andythenorth> 🙂
21:34:44 <_zephyris> andythenorth: This is probably what you want https://newgrf-specs.tt-wiki.net/wiki/NML:Realsprites
21:35:00 <andythenorth> thanks 🙂
21:35:31 <peter1138> In the text of the bottom panel of the purchase list.
21:35:44 <andythenorth> does that have a specific callback or anything?
21:35:52 <peter1138> For NML regression test, that's on the Chaney 'Jubilee' only
21:36:20 <andythenorth> so just `name` property on the BADGE item?
21:36:30 <peter1138> Correct.
21:36:33 <andythenorth> FEAT_BADGES
21:37:10 <peter1138> If the badge has a name, and the class of the badge has a name, then it will be listed there.
21:37:11 <_zephyris> andythenorth: I even update the wiki to try to make it clearer!
21:38:45 <peter1138> So if want a secret hidden badge to use only as metadata, just don't set a name nor a sprite on it.
21:39:44 <andythenorth> trying to get one to show in purchase extra info
21:40:00 <andythenorth> hmm doesn't fail to compile
21:58:12 *** kuka_lie has quit IRC (Quit: Lost terminal)
21:58:16 <DorpsGek> [OpenTTD/nml] PeterN commented on pull request #359: Add: Support for NewGRF badges. https://github.com/OpenTTD/nml/pull/359#issuecomment-2600128584
22:02:50 <peter1138> ^ like that.
22:03:00 <peter1138> You need a badge with a name on it.
22:03:18 <peter1138> And you need a badge for the class with a name on it.
22:03:57 <peter1138> So `power` → "Power" and `power/steam` → "Steam"
22:06:51 <andythenorth> https://cdn.discordapp.com/attachments/1008473233844097104/1330297381962645624/image.png?ex=678d777b&is=678c25fb&hm=8d52138103158838fcc06a85011d3537325c02bbec57cb9fbb2120879ff7d55a&
22:07:05 <andythenorth> I've definitely got the right build of nmlc and openttd
22:07:16 <andythenorth> one step at a time
22:18:42 <andythenorth> ok something is wrong here 🙂 https://gist.github.com/andythenorth/0c98b025bf12e9ee1599cfcc0ed3039a
22:19:27 <peter1138> What's wrong there?
22:19:43 <andythenorth> I can't see
22:20:15 <peter1138> There's no code there that assigns the badges to anything. So I'm not sure what you're expecting to be wrong.
22:20:55 <andythenorth> every vehicle has `badges: ["power/steam",];` in the properties block
22:21:36 <andythenorth> maybe the Horse build isn't installing
22:21:57 <andythenorth> timestamp says it is
22:24:15 *** keikoz has quit IRC (Ping timeout: 480 seconds)
22:24:22 <andythenorth> there will be some clown shoes mistake in my nml
22:35:46 <peter1138> Inspect the NFO, it's only "a few" MBs ;)
22:38:57 <andythenorth> 90 MB 😛
22:43:03 <andythenorth> might have to sleep on it 😛
22:43:07 <andythenorth> going snow blind
22:53:11 *** nielsm has quit IRC (Ping timeout: 480 seconds)
22:53:20 *** Wolf01 has quit IRC (Quit: Once again the world is quick to bury me.)
23:00:08 <xarick> gonna benchmark my new FindSpring algorithm. I expect good results
23:14:42 <xarick> how does FindSpring deal with void tiles?
23:19:24 <xarick> oh, right...
23:28:00 <xarick> some kind of magic happening behind the scenes that's dealing with void tiles
23:29:39 <xarick> is it possible to have 4 adjacent tiles to a void?
23:29:55 <xarick> ah, that's the magic, answer is no
23:56:23 <xarick> oops, algorithm bugged
23:56:26 <xarick> 🙂