IRC logs for #openttd on OFTC at 2026-07-25
⏴ go to previous day
00:05:11 *** WormnestAndroid has quit IRC (Read error: Connection reset by peer)
00:05:13 *** WormnestAndroid has joined #openttd
01:56:19 *** Wormnest has quit IRC (Quit: Leaving)
02:12:03 *** andythenorth_ has quit IRC (Quit: Connection closed for inactivity)
03:28:17 *** Philemon has joined #openttd
03:35:50 *** Phileman has quit IRC (Ping timeout: 480 seconds)
03:48:21 *** Flygon has quit IRC (Read error: Connection reset by peer)
04:15:13 *** bryjen has quit IRC (Quit: Leaving)
05:02:27 *** ChanServ sets mode: +v tokai
05:09:21 *** tokai|noir has quit IRC (Ping timeout: 480 seconds)
06:37:34 <DorpsGek> - Update: Translations from eints (by translators)
08:25:37 *** andythenorth_ has joined #openttd
09:10:56 <andythenorth_> still on the sofa, staring at the moon boot
09:11:04 <andythenorth_> and for the next 8 or 10 weeks
09:15:16 <andythenorth_> more Horse then
10:21:15 *** certator has joined #openttd
10:21:15 <certator> hey, I want to help with bugfixes and contribute more. However I want to make sure I don't violate *Use of AI* policy. It is clear that you shouldn't use it to generate and write code. What about other uses? For example, for bug hunting - for example I know that mouse pointer is not visible on game start in certain conditions. I don't ask AI to author bugfix in code - I ask it instead to tell me
10:21:15 <certator> where to start - and for example it asks me "where C++ applications usually start?", then I google it, but I forbid AI to confirm if answer is correct or not. Then I try to add log call to `main()` , I see it in output - voila, I'm on the right path. Next AI asks "where hardware acceleration option is consumed in code?" - this just gives me next direction. Let's say I continue this way, find the
10:21:15 <certator> root cause and fix - AI didn't write any code at all, didn't say which line of code is broken - but still I heavily used it. Should I disclose it, and would such contribution formally pass the policy?
10:37:27 <emperorjake> I see nothing at all wrong with using AI in that way, just to point you in the right direction and help you learn how the code works. The point is that you don't submit vibecoded PRs that waste the devs time by having to review it. But I didn't write the policy so perhaps there will be other opinions.
10:45:27 <andythenorth_> emperorjake: the capacity on dualhead with callback 36, I think it probably has to be handled explicitly in the purchase capacity cb
10:45:42 <andythenorth_> but I'm not clear on what the intent of the spec is
10:46:15 <andythenorth_> generally articulated vehicles have to explicitly take care of purchase stats
10:46:32 <certator> emperorjake: yeah, I've been code reviewing vibe coded PRs at my day job, I know that pain and frustration ("is that a dev decision or LLM hallucination??") and totally for regulating it. If we see of it as the spectrum, that's on the worst end of it. However some may be also strictly against any use whatsoever, like even if you ask ChatGPT "what is the best way to sort an array" and read an
10:46:32 <certator> answer, then your thinking process is compromised and you will produce bad code from now on.
10:47:08 <andythenorth_> I am always a bit unclear where the boundary is between "articulated" and "dualhead attempts to do magic on your behalf"
10:47:44 <andythenorth_> _avoids getting sucked into the AI debate today_
10:56:52 <emperorjake> Seems to work fine, but maybe someone will be able to explain why it shouldn't be this way
10:58:18 <andythenorth_> _reading the grf spec_
11:00:08 <andythenorth_> can't find anything relevant so far
11:28:31 <certator> I don't want to debate current NoAI policy at all, I rather want to follow it strictly, so I don't waste maintainers' effort and time... Anyway, in my understanding policy is really about authoring code itself, so using AI as a grumpy coach that just says "read file.cpp#L40 and you get the answer" is maybe ok...
11:28:50 <will_marshall_> What's your objective in writing the code?
11:28:59 <will_marshall_> Not being snarky, genuine question.
11:30:06 <will_marshall_> I will be snarky later but I can hold on for a little bit because I'm curious to understand what your goal is.
11:35:06 <will_marshall_> Okay so philosophically I see your point. I think you'll struggle to get much meaningful assistance from interacting with a chatbot to solve the linked issue, but that's between you and your token allowance. If you want to make the world a better place and you don't know C++ (an assumption on my part perhaps), is this really the best way to go about that?
11:37:34 <will_marshall_> I mean, if all you are is a typing/code implementing machine for an ai (see also: a 'reverse centaur') then you are effectively laundering the AI's though process through your own physical effort and that's probably not how I'd spend my free time personally. Why not "just" learn to code from first principles and then solve the problem for yourself? Then you don't need to rules-lawyer about what
11:37:34 <will_marshall_> you were trying to do.
11:40:13 <will_marshall_> I think you'll struggle to get code you don't understand accepted in a PR, but I'm just a casual observer.
11:42:32 <certator> I someone doesn't know C++ or coding in general, I would advise the to put an effort to learn it old-school. And I would suggest them to only touch LLM if they already have experience with implementing and maintaining systems of the same scale and complexity. Otherwise this is "A monkey with a grenade"
11:58:06 <andythenorth_> emperorjake: does seem worth PRing
11:58:31 <emperorjake> Working on it now 🙂
11:58:36 <andythenorth_> if intent is to use purchase cb, then at least we'll know
11:58:55 <andythenorth_> either is fine, but not both :P
12:25:26 <talltyler> Depending on what you’re working on in OpenTTD, often the best way to learn C++ is by reverse-engineering existing code. For example, one of my first PRs was letting towns build tunnels while expanding. I adapted the code allowing them to build bridges.
12:25:26 <talltyler> This can lead to cargo-culting (following a pattern without knowing why) but if you look up functions you don’t understand, and see how they’re used elsewhere, it can teach you a lot more than blindly following instructions.
12:28:58 <will_marshall_> The best way to learn C++ is to write some. The second best way is to read lots of it.
12:29:31 <talltyler> I would not suggest using AI as you propose, to find where a bug lives in the codebase. Stuff like laggy mouse pointers are not a trivial bug to fix, and if you have to ask an AI where to find it, you will not be able to fix it.
12:31:41 <talltyler> Gameplay, UI improvements, and other quality-of-life things are easiest because you’re often just changing something that exists, or adding a simple new feature. Fixing a mouse issue… I personally wouldn’t know how to approach that problem myself.
12:32:54 <will_marshall_> I think GenAI is very unsuited to solving the problem mentioned.
12:33:18 <will_marshall_> Because the actual solution is very unsexy - it's a bisect.
12:35:04 <andythenorth_> gen AI is very likely to propose pile-it-on fixes, as it will not have the context
12:35:22 <andythenorth_> it remains spookily good at basic constructs, like a trivial method
12:36:08 <will_marshall_> Gen AI would hopefully tell you to bisect, a really hot-shit agent might bisect for you (?) but in practice yeah they're very good at inner loops of algorithms and very bad at software architecture.
12:36:52 <andythenorth_> and they're very deceptive, so unless you know why they're wrong, they will blindly lead you wrong
12:37:19 <reldred> Blindly, and confidently.
12:37:22 <will_marshall_> If I needed a refresher on what the HLSL for "test if a 2d pixel is in a 2d box efficiently" is I would ask the idiot machine.
12:37:46 <andythenorth_> I haven't used any agentic tools though, I downloaded Cursor and ran thorough all the free tokens in 20 minutes, just asked it to read the Horse repo
12:37:49 <will_marshall_> If I joined a project and the documents that describe the architecture were written by an LLM I'd run away.
12:38:11 <will_marshall_> Agents are so bad that if I talk about them I will need to go and have a bath to calm down.
12:38:18 <reldred> They altogether remind me far too much of some absolutely shithouse colleagues I’ve had over the years. Absolutely allergic to saying they don’t know.
12:38:26 <andythenorth_> let's talk about Horse instead
12:38:36 <reldred> horse horse horse horse
12:39:11 <will_marshall_> Iron Horse replaced with Steel Oxen
12:39:37 <andythenorth_> currently making bulldozers appear on wagons
12:39:54 <fairyflossy> more Horse always good
12:40:11 <will_marshall_> she CAT on my D7 until I goods
12:44:26 <talltyler> Bulldozers on wagons is the best new feature
12:45:08 <talltyler> Have you seen Timberwolf’s Engineering Supplies on really old wagons? (Like, horse-drawn old) Looks like a stationary steam engine. 🙂
12:45:39 <emperorjake> Two PRs for two related but separate bugs😅
12:49:14 <emperorjake> Anyway more Horse is good, I'll probably steal some graphics for heavy flatcars in JP+ Engines
13:06:56 <talltyler> Bulldozer, some assembly required
14:03:33 <will_marshall_> talltyler: And an absolutely gigantic toolbox
14:05:25 <will_marshall_> I choose to believe that the blue toolbox and crowbar behind are to be interpreted as an SS13 reference.
14:20:29 <peter1138> talltyler, YouTube is a crap place to discuss things tbh :)
14:32:07 <certator> thanks a lot guys for opinions. Just for the sake of experiment, what do you think if I attempt to pin down/bisect root case with AI in [#15316](https://github.com/OpenTTD/OpenTTD/issues/15316) ? I will be happy to fail miserably and throw it away and prove myself that was a bad idea 😄
14:33:05 <peter1138> You don't need "AI" to git bisect.
14:37:40 *** Wormnest has joined #openttd
14:38:35 <talltyler> Decided it's actually a codefix 🙂
14:39:47 <andythenorth_> no AI implicated
14:43:18 <peter1138> Just steal the default bulldozers :D
15:14:39 <will_marshall_> random reverse is good
15:17:28 <will_marshall_> Sorely tempted.
15:17:51 <will_marshall_> I'm rather peckish, too.
15:18:18 <will_marshall_> Water pressure is bad today, burst main nearby apparently.
15:18:42 <peter1138> Always bad here, bloomin' Thames Water.
15:20:09 <andythenorth_> hmm need to re-roll reverse on load
15:20:38 <will_marshall_> get your bot to do it
15:21:08 <andythenorth_> GPT made a technically valid grf this week
15:21:13 <andythenorth_> sprites were shit obvs
15:21:27 <andythenorth_> first time I've seen it not just confabulate
15:24:26 <will_marshall_> The first time I was impressed with an LLM it was spitting out valid RFC854 control codes but then I remembered that that's a specific case of good things in, good things out and everything else the LLM ever consumed as training data was worse than a well-formatted RFC. The GRF spec is written OK, I bet an LLM could have a good go at writing valid nfo.
15:24:41 <will_marshall_> Not that you should, just that it could.
15:25:42 <will_marshall_> speaking of RFC854 I should go back to writing MUDs better rather than making GRFs worse.
15:25:46 <andythenorth_> I have written zero NML with my untrustworthy robot friend
15:26:13 <andythenorth_> but I did use it to write a pipeline to restructure a few hundred python files with AST module
15:26:37 <andythenorth_> back to bulldozers
15:28:19 <peter1138> will_marshall_, someone has been updating Playground Plus for modern systems and... they've only gone and used "claude".
15:29:34 <peter1138> (Not MUD software, but kinda related)
15:30:25 <will_marshall_> The difference between a MUD and all BBS-Adjacent software is pretty minimal.
15:32:14 <will_marshall_> Something very satisfying about writing them though, even if client implementations range from spotty to enragingly bad.
15:32:23 <peter1138> andythenorth_, so what macOS (Mac OS?) version are you on these days?
15:32:45 <peter1138> One assumes you do have a mouse cursor in current OpenTTD, but who knows :D
15:32:45 <will_marshall_> I think most MUD authors just say screw it and say "I support this client, everyone else can go to hell"
15:33:34 <peter1138> I used tinyfugue for sure (because I still have it), don't remember if I used others back in the day though.
15:33:47 <will_marshall_> Oh no, Mudlet is having code written by the mystical butthole these days.
15:33:59 <will_marshall_> That's going to work out great I'm sure.
15:34:23 <will_marshall_> Back to MUSHClient like it's 2001.
15:39:33 <dollarcoinguy> will_marshall_: the Anal Oracle 🤣
16:19:49 <peter1138> GitHub doesn't create PRs, user actions create them.
16:28:41 <andythenorth_> spritelayer cargos seem so logical, until to comes to checking they line up :P
16:30:55 *** halloy6907 has joined #openttd
16:32:00 *** kishy-oftc has joined #openttd
16:35:48 *** Smedles has joined #openttd
16:49:42 <peter1138> Hmm, magic numbers.
17:59:45 <dollarcoinguy> peter1138: magic bytes sound much more delicious
18:01:01 <certator> So technically issue with [not responsive mouse cursor](https://github.com/OpenTTD/OpenTTD/issues/15316) is "fixed" with Cursor/Codex help - at least to extent I was able to reproduce it in my testing scenario. Please don't get my purpose wrong - I fully respect AI policy, don't question and don't plan to undermine it, and don't want to change opinions. The question is whether using it for finding
18:01:01 <certator> and why it works after you implement the fix.
18:01:01 <certator> Of course one can use this workflow secretly and refuse disclosing it, but that's just appalling.
18:18:56 <andythenorth_> thinks about AI policy
18:20:39 <andythenorth_> apologies in advance, going to type to think
18:22:31 <andythenorth_> so the purpose of the 2018 move to github etc etc, was
18:22:31 <andythenorth_> (1) just do what everyone else is doing (and stop running our own infra for commodity services)
18:22:31 <andythenorth_> (2) a conversation mostly between me and Truebrain (but also a few others) about making it easier to find new long term contributors
18:22:56 <andythenorth_> I can't recall ever seeking drive by commits to just increase our code surface area
18:23:12 <andythenorth_> it was always about community, even if we're not the most sociable folks
18:23:40 <certator> abundance of AI just makes drive
18:24:42 <andythenorth_> engaging with PRs from people who really good contributors just wears down the project and takes the fun away
18:24:56 <andythenorth_> we had the same problem with humans before robots democratised it
18:25:12 <certator> abundance of AI just makes drive-by contributions worse and with less quality. You can still be drive-by contributor without AI though 🤔
18:25:29 <andythenorth_> oof ^^ "people who *aren't* really good contributors" typ
18:25:58 <andythenorth_> irc is a cruel environment for the inattentive typist :|
18:27:32 <andythenorth_> being in the midst of a bubble, which contains a lot of shit, is distracting from the point of the project, which is to have fun (my take)
18:28:22 <andythenorth_> we always had to do a little work to try and teach some contributors good software engineering practices
18:36:45 <andythenorth_> first line of our AI policy: ```OpenTTD is a labour of love, created by people.``` seems to cover it pretty well
18:42:35 <certator> personally I engaged with openttd myself and implemented some for-fun features locally (python integration, auto-building rails across the map...) with zero AI use. I definitely understand the difference when someone with zero openttd coding (or just coding) experience just downloaded Cursor and posted PR, with someone who has at least some experience, or certainly who is long-term contributor and
18:42:35 <certator> really know what they're doing. However I understand that 99% of drive-by contributors' code will be bad, why bother even discussing it.
18:47:03 <andythenorth_> and the current policy allows blanket 'nope' for those
18:47:16 <certator> > No LLMs for finding bugs.
18:47:16 <certator> Again personally I have no issue if OpenTTD adopts it too
18:48:20 <andythenorth_> that's an amusingly strict policy
18:48:46 <will_marshall_> moving fast and breaking things is not a core goal of openttd
18:48:51 <will_marshall_> (and i love that about it)
18:50:33 <andythenorth_> still thinking aloud here, this is just because the question has come up about whether any LLM use is acceptable
18:51:02 <andythenorth_> not that I'm a contributor anyway, so my opinion is fairly moot
18:51:33 <andythenorth_> do we want to expand the policy to match Ziglang?
18:52:01 <andythenorth_> LLMs seem to be quite divisive as a topic, and a blanket ban on use might reduce that
18:52:07 <will_marshall_> if the key argument for using AI is that it helps you do more per man-hour then I'd say that it's use doesn't really have any bearing on the project *per se*, but I do think it's the core maintainer's right to reject AI-driven contributions.
18:52:07 <will_marshall_> And I think that in the long run not enticing contributions on the basis of cheap github clout is in the best interests of the project.
18:52:22 <will_marshall_> andythenorth_: Zig is extremely opinionated, I'm not sure it's a good role model.
18:52:46 <andythenorth_> LLMs aren't going anywhere, so this will keep recurring as a topic
18:53:16 <will_marshall_> I don't think LLMs are going anywhere I just think the frontier models are so unsustainable as a business that they won't exist within the next few years.
18:53:18 <andythenorth_> the policy we have is very clear, and let's us delete drive-by PRs, and push away those would-be contributors
18:53:48 <will_marshall_> Nobody is going to find 500GB of GDDR6 to run Mythos or whatever after OpenAI/Anthropic go pop.
18:54:15 <andythenorth_> so no more agentic swarms
18:54:28 <andythenorth_> but I can run local LLMs (just about) in my 36GB
18:54:30 <will_marshall_> Again, probably for the best in terms of discouraging conspicuous consumption, but it means that we're looking at a blip, historically.
18:55:04 <andythenorth_> auto-complete python looks like it could be on-device in "not very long"
18:55:05 <will_marshall_> I can just about run Local LLMs on my laptop, and they might well be interesting as autocomplete machines but probably they won't be doing agentic evaluation of entire codebases.
18:55:15 <will_marshall_> Oh you could certainly have that today.
18:55:53 <cu-kai> the AI bubble will pop at some point
18:56:01 <andythenorth_> don't need billions of parameters when you're not simultaneously trying to power python coding, free therapy, and dedicating 50% of your output to keeping linkedin full of slop
18:56:18 <cu-kai> in any case, rip the consumer electronics market
18:56:32 <will_marshall_> Never underestimate how irrational the markets can be but the simple fact is that the notable AI companies spend so much money that they will never be profitable.
18:56:58 <will_marshall_> If humanity spends ~800bn on software a year, there's no world in which we all suddenly start spending +200bn on exclusively AI software next year.
18:57:18 <will_marshall_> Yeah I'm nervous about the inability to buy hardware.
18:57:26 <will_marshall_> If people can't buy PS5s I am going to be out of a job.
18:58:18 <pontoo> The issue with the ai bubble is that it will not kill all of ai, but it consolidate companies together like in the dot-com bubble
18:59:55 <pontoo> We would need to actually have government oversight in the same level as is applied to the ownership of nuclear weapons, for any chance of the market to go back into the sense of normality
19:00:15 <will_marshall_> Nahhhhh venture capital just needs to learn to stop putting it's hand on the stove.
19:00:39 <will_marshall_> All these companies have to be allowed to burn down to the ground and all the investors need to have a $1tn hole in their wallets.
19:02:04 <will_marshall_> Permit me my pre-dinner off topic, the oven takes a long time to warm up.
19:04:47 <pontoo> I agree, but in a managed capitalistic system like what we have right now, these companies will be kept afloat like the computerized version of Chrysler, since the government will always prioritize the well being of shareholders over the health of the economy since the graph only needs to rise for the four years they are in office. So yeah, Openai will be bailed out when the cat gets out of the
19:39:36 <certator> will_marshall_: would you vote for adding "No LLMs for finding bugs" and similar to "Use of AI" section? It can help take down those discussions a notch, because `Using an AI tool to write` and `generate entire lines of code` aren't that direct
19:41:36 <will_marshall_> Not up to me at all, if I had a vote I'd spoil my ballot.
19:42:02 <will_marshall_> Though if I had a vote it would be up to me, so a paradox presents itself.
19:44:21 <will_marshall_> I don't care what discovery tools people use, but I think from a moral perspective I can only recommend using tools that aren't predicated on a gambling addiction. The issue is that if you proudly tell people you used an LLM (for discovery) you've basically disqualified yourself from submitting PRs that are authored by you.
19:46:29 <rito12_13> andythenorth_: Isn't it like an evening or so?
19:49:00 <andythenorth_> ^ I'm with Will
19:49:28 <andythenorth_> the project has concluded against AI, so new contributors who want to use AI are not going to fit in well
19:52:40 <will_marshall_> Factionalism begat factionalism. I look forward to seeing the new vibe-coded transportation tycoon game with so many bells and whistles that it makes your head spin. Maybe we'll even get shunting, who knows.
19:52:47 <will_marshall_> Somehow I doubt it.
19:54:25 <andythenorth_> I mean....I have yet to see GPT stick to guardrails in a single prompt
19:54:50 <andythenorth_> so if we just combine more of the the dice rolling algorithms, the quality probably increases?
20:27:41 <talltyler> Take a look at Subway Builder if you want to see the trajectory of a vibe-coded train game.
20:35:10 <peter1138> > Save your money, go play OpenTTD.
20:40:02 <peter1138> Hmm, tile-object tiles?
20:44:32 <talltyler> What does that mean?
20:54:11 <andythenorth_> whatever it is, we need more of it
21:09:15 <peter1138> I meant to write "lite-object tiles?"
21:16:15 <talltyler> As in, an object tile with no off-map storage? (or smaller off-map storage)
21:16:44 <talltyler> I made a bit of progress with my tile painter, but got stuck on GUI and then distracted 🙂
21:17:10 <talltyler> No idea if it actually works, as without a GUI I don't have a way to paint 😛
21:23:12 <belajalilija> What’s the limit to amount of objects placed, stations, etc?
21:24:08 <belajalilija> I mean, could one in theory cover a 4k x 4k map in objects or would a limit be reached?
21:25:30 <peter1138> Limit is 16711680 which is not quite enough to completely cover a 4k x 4k map with single-tile objects.
21:26:42 <belajalilija> I didn’t expect it to be so high
21:27:06 <tabytac> looks like there is a hard cap at 64000 station IDs
21:27:33 <belajalilija> More than enough xd
21:27:58 <peter1138> That many objects would use about 650MB of off-map memory
21:28:09 <peter1138> But it is a lot of objects.
21:29:13 <peter1138> (Well, more because of overheads)
21:35:32 <peter1138> Oh is it about "lights" that are indistinguishable from livery?
21:37:18 <andythenorth_> think they just haven't found the setting
21:38:07 <talltyler> No, I think they're seeing the old fake push-pull not playing nicely with the new native behaviour
21:38:37 <talltyler> Incorrect head/tail lights are the unfortunate result, although we're lucky that it's not more broken 🙂
21:45:04 <andythenorth_> Horse could nerf off the leading tail lights, as a temporary fix.
21:57:57 <andythenorth_> what does `position_in_consist_from_end` yield when driving backwards?
22:14:51 <talltyler> The same as driving forward.
22:15:08 <talltyler> The train is just driving backwards, no positions are changed.
22:18:54 <peter1138> Approved but not merged.
22:20:00 <talltyler> That doesn't help lights, but without it, fake push-pull appears the same way regular trains did before backwards trains, i.e. they appear to magic flip while actually backing up 🙂
22:20:22 <talltyler> I am assuming JGRPP took that PR even though it's not merged into OpenTTD, not sure though.
22:21:03 <talltyler> Hmm, how the heck do I do `ToPercent16()` in reverse, to increase reliability by a single percentage point?
22:21:50 <talltyler> 101 << 16? Seems like it would overflow?
22:24:08 <talltyler> Huh, maybe I misread that reddit post then
22:25:08 <tabytac> i can confirm that the set they are using (JP+MU) doesnt handle reversing trains correctly right now in JGRPP. the direction a train starts in will always have the "front" headlights, even if it is reversing
22:26:02 *** brickblock19280 has joined #openttd
22:26:02 <brickblock19280> Every single train will behave like that with reversing
22:26:03 <tabytac> ill see if 15485 chnages that in jgrpp rn
22:26:15 <tabytac> brickblock19280: yeah that was my understanding too
22:36:17 <brickblock19280> It's not expected to fix lights
22:36:57 <brickblock19280> Just the visuals so that they're as if it's not reversing
22:37:30 <tabytac> ahh yeap, thanks for the clarification
22:37:41 <brickblock19280> You would need one of the cars to have a different livery to be able to see the change
22:38:09 <talltyler> No need to throw the tail lights out with the bath water 🙂
22:38:42 <talltyler> (I have not tried to figure out what your code means, horse templating confuses me)
22:38:59 <brickblock19280> I'm not sure that code would even work? But I haven't tried it so 🤷♀️
22:39:30 <brickblock19280> Nvm I didn't see where you used the var
22:39:38 <brickblock19280> It's in there
22:39:38 <tabytac> talltyler: why are you putting train lights in the bath anyways 🤣
22:40:19 <talltyler> Push-pull submarine
22:40:50 <brickblock19280> Articulated ships when
22:41:06 <brickblock19280> I've seen one legitimate use case
22:43:10 <tabytac> Articulated Tug and Barge in Openttd when 👀
22:43:23 <andythenorth_> articulated barges are very limited case
22:43:53 <brickblock19280> Iirc shark has a ship pulling log floats too
22:45:25 <brickblock19280> Maybe I should make my log ship idea into an actual grf. Basically flume but actual water, only issue is that they need to use locks which is a bit odd
22:47:21 <andythenorth_> articulated docks would be more use
22:48:12 <brickblock19280> I have a harder time imagining that but sounds interesting
22:51:45 <talltyler> Sorry, failed my reading comprehension 🙂
22:52:48 <peter1138> 23:26 < brickblock19280> Every single train will behave like that with reversing
22:53:00 <peter1138> ^ Only the ones with "lights"
22:53:15 <brickblock19280> That's what I meant
22:54:22 <andythenorth_> will I auto generate tail lights into an extra spritesheet for every vehicle
22:54:41 <andythenorth_> hmm mad idea, we have unused palette indices in the DOS palette
22:54:56 <andythenorth_> could we remap one when driving backwards?
22:55:11 <andythenorth_> or I could do it myself in a remap sprite
22:55:23 <brickblock19280> That would be a way of supporting it in basesets which would be cool
22:55:46 <talltyler> Can you remap palette colours per vehicle?
22:56:03 <andythenorth_> per spritelayer
22:56:20 <brickblock19280> Isn't that what every bulk cargo does?
22:57:15 <andythenorth_> only if the grf does it
23:01:32 <andythenorth_> might write a script to find all the Horse tail lights
23:01:58 <belajalilija> SBB set does fucky stuff with lights
23:02:31 <talltyler> Oof, TrainLocoHandler gets called twice per tick, probably shouldn't do that 🙂
23:02:37 <belajalilija> The light area on the bare sprites is purple
23:03:06 <andythenorth_> more than 9000 vehicles in Horse, too many to check manually for lights
23:20:51 <andythenorth_> oof, there's no trivial way to do this in the grf compile :)
23:21:36 <andythenorth_> it requires putting the tail lights through the same varact2 chain as the vehicle
23:21:50 <andythenorth_> that's going to be unwieldy
23:22:47 <andythenorth_> and I can't use a palette remap sprite
23:23:01 <andythenorth_> because I already use remap sprites, and they'd become combinatorial
23:29:14 <andythenorth_> Probably OpenTTD shouldn’t auto remap them (given a flag)?
23:48:14 <andythenorth_> wonder if I can remap everything to transparent, except the lights
23:48:28 <andythenorth_> repeating the whole varact 2 chain in another layer
23:49:17 <andythenorth_> (previously engines didn't have tail lights, only wagons, and the tail light positions are unique per engine)
continue to next day ⏵