IRC logs for #openttd on OFTC at 2026-11-07
β΄ go to previous day
00:31:39 *** MinchinWeb[m] has quit IRC (Ping timeout: 480 seconds)
00:32:28 *** MinchinWeb[m] has joined #openttd
00:55:21 <belajalilija> they're not just cc changes either
00:55:52 <belajalilija> some of them are differente
00:58:18 *** Flygon has quit IRC (Read error: Connection reset by peer)
03:58:29 *** MinchinWeb[m] has quit IRC (Remote host closed the connection)
03:58:46 *** MinchinWeb[m] has joined #openttd
04:26:03 *** Philemon has joined #openttd
04:29:21 *** Phileman has quit IRC (Ping timeout: 480 seconds)
05:01:42 *** ChanServ sets mode: +v tokai
05:08:43 *** tokai|noir has quit IRC (Ping timeout: 480 seconds)
08:24:38 <andythenorth> will_marshall_: I don't understand the question π
08:26:21 <andythenorth> I've muted that Discord channel #ai-assisted-development channel
08:26:52 <andythenorth> and I can no longer talk about my grfs in Discord channel #add-on-development
08:27:03 <andythenorth> expect a lot more pixel screeenshots here π
08:29:17 <kuhnovic> This sure is a needs-lots-of-coffee-day
08:29:35 <mnhebi> I'm still debating whether coffee now or coffee later..
08:30:06 <mnhebi> but I suppose if Andy is going for coffee, I gotta go with the flow
08:32:12 <jfkuayue> i get my free coffee on sj
08:33:05 <emperorjake> andythenorth: You can still talk about your GRFs in the regular development channels, just any discussion about AI tools specifically should be limited to the new one. But as the announcement says it's up to the moderator's discretion.
08:33:51 <andythenorth> which mods though?
08:34:12 <andythenorth> not being difficult about this, I am in favour of labelling gen AI content
08:34:45 <andythenorth> but do I get to talk about Horse being AI generated, because I'm me?
08:34:49 <andythenorth> but someone else doesn't
08:36:12 <mnhebi> this is why I always make it a priority to look at this server. Andy's musings always light up them neurons.
08:36:19 <emperorjake> It depends if "someone else" is making a high quality contribution that happens to use AI tools, or a vibe coded pile of crap
08:39:46 <emperorjake> And it depends on which element is being discussed. Like if I draw a new sprite for a certain GRF, it can go in the regular channels. But if I want to discuss how AI coded something in the same GRF, I'd put it in the new channel.
08:40:06 <andythenorth> so the new channel is a sinkhole for all the people who rock up with one-shots?
08:40:24 <emperorjake> That's one of its purposes
08:40:46 <andythenorth> it seems the reddit OpenTTD admins have been deleting low-effort AI posts, under the 'no low-effort content' rule
08:41:09 <emperorjake> but its main purpose is to hopefully foster productive discussion without debates
08:41:16 <andythenorth> some of us have Claude at home, we don't need to see that other people have learnt how to to type in the box
08:41:57 <jfkuayue> this feels `#general` in dev channel
08:42:12 <andythenorth> got some news about how the irc channel works jfkuayue
08:43:12 <jfkuayue> I mean the `#ai-assisted-development` was set up just like how the `#general` trap was set up
08:45:01 <andythenorth> ok, well I'm going to keep using Discord channel #add-on-development as always then, and we'll see what transpires
09:30:26 *** aurzer1 has joined #openttd
09:32:56 <_zephyris> Fwiw the rule is misworded, if what's been said here is the aim.... "Projects developed with generative AI must be discussed in..." vs. "Developing projects using generative AI..."
09:34:19 <_zephyris> Does installation of a new OpenTTD version automatically update basesets?
09:34:37 <_zephyris> Need to fill up the right steam bucket
09:34:50 <mnhebi> I don't think it does.
09:35:42 <_glx_> Steam Will update baseset for all version I think (it's a separate bucket)
09:42:39 <andythenorth> + "Projects developed with generative AI must be discussed in Discord channel #ai-assisted-development" implied that Iron Horse, FIRS etc must be discussed there, which leaves me back on irc
09:46:34 *** aurzer1 has joined #openttd
09:48:05 <jfkuayue> It is "force unload" now?
09:51:35 <merni> text was changed to better reflect the behaviour
10:59:14 <andythenorth> Road Hog with livery variants
11:15:58 <DorpsGek> - Update: Translations from eints (by translators)
13:13:08 <rito12_13> We have 4 languages that have more than 4k strings missing and 2 that have nearly 4k missing
13:15:16 <rito12_13> Itο»Ώ is fun that Hindi is one of them
13:22:56 <peter1138[d]> I assumed they gave up
13:33:55 <talltyler> New road hog update in development? π
13:34:40 <andythenorth> although it keeps getting stuck
13:34:49 <andythenorth> the compile is supposed to in parity with Iron Horse
13:34:54 <andythenorth> but Iron Horse keeps getting redesigned
13:38:13 <peter1138> Lunch is a scotch egg.
13:39:12 <peter1138> jfkuayue, yes, newbies often thought they needed unload orders to unload, and then end up doing unload orders where it's not accepted, and wondering why it doesn't work.
13:42:38 <andythenorth> so is there a Livery spec? π
13:48:34 <peter1138> I only started thinking about it yesterday. I have a branch which I've abandoned already, but no spec yet.
13:51:31 <andythenorth> option to return colours from a list, randomised? π
13:55:22 <andythenorth> some of the Horse ones are psuedo
13:57:58 <andythenorth> but these just the random bits on the wagon
14:00:49 <Borg> isnt Force Unload should be hidden.. unless loading save that have them?
14:01:03 <Borg> I dont see how it can be usefull since there is Transfer and leave empty
14:06:11 <andythenorth> there are probably non-obvious cases for 'Force unload' that some play styles depend on
14:13:17 <_glx_> peter1138: If we can assume a livery is a variant with exact same properties as "parent", it should be possible to have a way to copy from parent
14:19:57 <squirejames> andythenorth: Myself I use force unload (but not transfer) at terminating stops for passengers and mail. So for example, train arrives in station, force unloads so it's empty. Goes to shed for servicing, then returns to station and loads.
14:21:49 <andythenorth> I wonder if liveries are in persistent vehicle storage
14:21:50 <peter1138> Usually the useful bit there is the no-load flag, rather than force unload.
14:22:55 <squirejames> No loading is fine, but it doesn't shove people and things off the train so it can go empty to the sheds π sometimes it works, but force unload means it definitely will be empty
14:35:09 <peter1138> Hmm, awkward, I have to go to a Wetherspoons this evening. I am not a fan of said establishment.
14:40:11 <andythenorth> I have been to a wetherspoons more than once
14:40:21 <peter1138> I have, but I don't like it.
14:40:54 <LordAro> the sticky carpets are part of the charm
14:41:09 <andythenorth> the Β£3.50 meals were good
14:41:13 <andythenorth> long time ago though
15:14:20 *** f_ has quit IRC (Remote host closed the connection)
15:15:13 <peter1138> LordAro, Strava docked 0.2 mph :(
15:17:21 <peter1138> It's correct in the analysis screen as well :o
15:18:18 <peter1138> Fuck that made it worse
15:21:26 <peter1138> Cold fog for about 2 hours this morning, did start clearing eventually.
15:23:04 <peter1138> Oh yeah I was making a cup of tea.
15:23:49 *** Flygon has quit IRC (Remote host closed the connection)
15:31:09 <belajalilija> andythenorth: How long ago was this?
15:31:25 <belajalilija> I remember the beer and burger deal being like a fiver
15:38:31 <andythenorth> probably 20 years
15:44:32 *** bluelight0 has quit IRC (Quit: User went offline on Discord a while ago)
15:52:59 *** MinchinWeb[m] has quit IRC (Ping timeout: 480 seconds)
15:53:17 *** MinchinWeb[m] has joined #openttd
16:11:04 <andythenorth> so would liveries primarily be defining a company colour set?
16:18:29 <andythenorth> removing wagon liveries, Horse would go from nearly 12k vehicles to less than 4.5k
16:23:14 <andythenorth> deliberately low fi mockup
16:24:58 <belajalilija> andythenorth: Sub variants
16:25:30 <belajalilija> Filter would be good tho yeah
16:26:18 <belajalilija> Could filter by real, 2cc and alt
16:26:29 <belajalilija> Badges for liveries?
16:27:26 <andythenorth> liveries is a contested name
16:28:06 <andythenorth> what I've drawn is just
16:28:06 <andythenorth> * 'choose the company colour per vehicle, including in the buy menu'
16:28:06 <andythenorth> * company colour from random sets not single choice
16:47:39 *** MinchinWeb[m] has quit IRC (Read error: Connection reset by peer)
16:47:56 *** MinchinWeb[m] has joined #openttd
16:58:13 <peter1138> Github slacking again.
16:58:24 <andythenorth> I don't see a solution to hand-drawn liveries that will scale like company colours would
16:59:51 <andythenorth> * the grf vehicle has to handle it in act3/2/1
16:59:51 <andythenorth> * there would be no way to mass-apply to trains made up of variegated vehicles
17:00:39 <peter1138> If a "livery spec" includes "use this recolour" then the vehicle's act3/2/1 doesn't need to know?
17:00:55 <peter1138> That may be naΓ―ve.
17:00:56 <andythenorth> whereas colours can be applied with no specific handling by the grf, and could be applied via tools similar to current cargo refit tool
17:04:55 <peter1138> So we have automatic categorized colours (called liveries internally :o) and also per-group colours.
17:05:41 <andythenorth> word is over-used
17:05:44 <andythenorth> the best words often are
17:05:54 <andythenorth> we have 3 levels of 'platform' at work
17:06:04 <andythenorth> and multiple 'tags'
17:06:12 <andythenorth> and everything is 'product', at every level
17:07:23 <peter1138> I see a livery spec as both "use this fixed colour scheme" for the realism stuff, but also "use this design with your own colours" for horse-style stuff.
17:08:12 <andythenorth> which one has the hand drawn pixels *specific* to the livery?
17:08:16 <peter1138> "Classic Lines" can then be done with differenet CC choices. That currently depends on the auto-categories or groups.
17:08:37 <andythenorth> oh so a "livery" would have a colour set applied? π
17:09:29 <peter1138> I assume any CC choice is valid? Or is it intended to only have limited colours?
17:09:34 *** MinchinWeb[m] has quit IRC (Ping timeout: 480 seconds)
17:10:07 <andythenorth> players can choose the colours of 'railfreight' here
17:10:22 <peter1138> Yes, so it's a CC livery.
17:10:27 <andythenorth> but the mail liveries I forced to red
17:10:39 *** MinchinWeb[m] has joined #openttd
17:11:00 <peter1138> I don't see that as a problem, that's just a "real-world" style livery (even though it's not necessarily real)
17:11:21 <andythenorth> it's probably an implementation detail that it's a forced recolour to CC red
17:12:28 <andythenorth> forced yellow for these also
17:13:12 <peter1138> My "spec" so far has a palette type property, with something like none, custom, cc1, cc2, reversed cc2. Custom is a specific palette, but probably "force cc/2cc colours" makes sense to enforce only that colour.
17:13:41 <andythenorth> could players load arbitrary livery grfs to get more livery choices?
17:13:50 <andythenorth> or is it a per-grf allocation?
17:13:57 <peter1138> No, they are too specific to the Newgrf.
17:14:58 <peter1138> You can't apply "BR Swallow" to a Pacer... (or maybe you can)
17:16:42 <peter1138> Act 3/2/1 would need to select sprites based on the selected livery, but wouldn't need to do anything with colours.
17:16:48 <andythenorth> so we could reduce variants to
17:17:19 <andythenorth> cannot apply swallow to a Pacer also
17:17:40 <peter1138> Then we get to decide how liveries appear in the purchase/autoreplace/refurbish list.
17:17:57 <andythenorth> can apply swallow to french narrow gauge things
17:18:26 <andythenorth> seems plausible to me
17:23:03 <andythenorth> do Spoons sell Tea
17:23:07 <andythenorth> spoiler: they do
17:23:12 <peter1138> Probably but that's later.
17:23:30 <peter1138> It's only 5pm... oh, 5:25pm. Feels later.
17:28:06 *** Borg has quit IRC (Quit: leaving)
17:29:26 <andythenorth> so the trains with pixel liveries would check varact2?
17:29:44 <andythenorth> or act3 repurposed?
17:31:12 <peter1138> varact2, after all the callback checks.
17:32:24 <peter1138> Hmm, oh, that's a level of annoying. Liveries probably should not be able to interfere with stats, as that becomes a pain for purchase lists etc.
17:33:58 <andythenorth> variable with limited scope?
17:34:14 <andythenorth> there's variants for varying stats
17:34:54 <peter1138> Exactly, variants for that.
17:37:15 <andythenorth> we have some variables scoped to specific callbacks?
17:37:52 <peter1138> Make livery only available for a graphics callback would work.
17:38:07 <peter1138> graphics resolve? I dunno :)
17:38:15 <peter1138> Callback 0 is graphics, but it's not called a callback.
17:38:36 <andythenorth> I always think of it as the action 1 realsprites chain
17:38:43 <andythenorth> not sure if that's accurate
17:39:29 <peter1138> All part of act3/2/1, when testing the callback variable, if it's zero that means you're resolving graphics. But nobody checks for zero because it's "the default"
17:42:59 <andythenorth> how are compatible liveries resolved? action 0 prop on the vehicle? Or something else?
17:45:03 <peter1138> action 0 prop just lists all the liveries, a bit like badges?
17:45:39 <peter1138> Probably 4-byte labels rather than strings though?
17:45:45 <peter1138> Or are we over that?
17:46:08 <andythenorth> would the labels be pooled, or per grf?
17:46:32 <andythenorth> "everything is just an index into something"
17:46:41 <peter1138> Not sure. It'd be nice to be able to filter for common liveries, but also different sets have different ideas.
17:46:56 <peter1138> Consider NewGRFs that contain add-ons for other NewGRFs.
17:50:17 <peter1138> In which case strings seems safer? "iron-horse/classic-lines". Not going to conflict with anything, but an add-on can reference it easily.
17:50:36 <peter1138> No need to figure out a fancy 4-character scheme.
17:52:30 <andythenorth> should I patch Horse for this?
17:52:40 <peter1138> Almost no code exists :D
17:53:00 <peter1138> I think it would load a lot quicker though :p
17:53:38 <peter1138> Sadly my week off has just finished, so, uh...
17:54:03 <andythenorth> what's the next version? 17
17:56:08 <andythenorth> liveries or variants? π
17:56:34 <andythenorth> some are more obvious
17:56:52 <peter1138> First one, liveries, second one variants.
17:57:55 <peter1138> If you consider liveries as "paint jobs", does that help?
17:58:19 <andythenorth> difference between gestalt and swatch
18:00:27 <andythenorth> I guess if these were meshes (or winamp) we'd say 'skin'
18:01:05 <peter1138> Hmm, winamp skins could be... very different from each other though.
18:01:10 <peter1138> At least the later ones.
18:01:50 <andythenorth> colourway is what designer might say
18:04:28 <andythenorth> livery synonyms: skin, swatch, colourway, decoration
18:04:33 <andythenorth> or just overload livery
18:12:19 <andythenorth> so (selfishly) this would be not much work to do in Horse
18:14:10 <peter1138> More work for me :)
18:32:04 <andythenorth> would simplify Road Hog design, variants would be for different cabs or trailers, not liveries
19:08:35 *** gelignite has joined #openttd
19:14:09 <squirejames> andythenorth: I've always used and heard "texture", although skin tends to be used in FPS games
19:31:37 <peter1138> Bah, one wants const, one does not :o
19:35:42 <tony_pixel> peter1138: this is fantastic
19:36:56 *** MinchinWeb[m] has quit IRC (Read error: Connection reset by peer)
19:37:12 *** MinchinWeb[m] has joined #openttd
19:41:31 <peter1138> Oh, I didn't save a file.
21:18:47 <esmb17> peter1138: lmfaoooo this is hillarious
22:38:54 <talltyler> I'm trying to use more scoped enums in settings tables, and am getting an assert for `IsIntSetting()`. Seems to not like the enum. Any idea where the actual definition of this function lives?
22:40:37 *** Wolf01 has quit IRC (Quit: Once again the world is quick to bury me.)
22:42:50 <_jgr_> talltyler: It's a virtual method, IntSettingDesc further down the file has an overridden implementation.
23:01:37 <talltyler> Oh, I see now, thanks
23:02:03 <talltyler> I saw the override but didn't realize why `return true` actually worked there
23:02:47 <talltyler> Not sure why I'm getting an assert through ;/
23:03:46 <_jgr_> I'd suggest adding a debug print or equivalent immediately before the assert, which prints which setting it is
23:04:50 <talltyler> Yeah, will try that
23:15:03 <talltyler> Ah, I see where I went wrong π
continue to next day β΅