IRC logs for #openttd on OFTC at 2026-10-09
            
00:01:04 *** MinchinWeb[m] has quit IRC (Ping timeout: 480 seconds)
00:01:47 *** MinchinWeb[m] has joined #openttd
00:10:07 *** MinchinWeb[m] has quit IRC (Read error: Connection reset by peer)
00:10:14 *** MinchinWeb[m] has joined #openttd
01:47:58 *** MinchinWeb[m] has quit IRC (Ping timeout: 480 seconds)
01:48:50 *** MinchinWeb[m] has joined #openttd
01:54:19 *** WormnestAndroid has quit IRC (Read error: Connection reset by peer)
01:57:10 *** WormnestAndroid has joined #openttd
02:00:43 *** MinchinWeb[m] has quit IRC (Read error: Connection reset by peer)
02:01:00 *** MinchinWeb[m] has joined #openttd
02:18:37 *** WormnestAndroid has quit IRC (Remote host closed the connection)
02:18:39 *** WormnestAndroid has joined #openttd
03:12:08 *** Phileman has joined #openttd
03:15:26 *** Philemon has quit IRC (Ping timeout: 480 seconds)
03:33:04 *** MinchinWeb[m] has quit IRC (Ping timeout: 480 seconds)
05:03:33 *** tokai|noir has joined #openttd
05:03:33 *** ChanServ sets mode: +v tokai|noir
05:10:26 *** tokai has quit IRC (Ping timeout: 480 seconds)
05:18:25 *** MinchinWeb[m] has joined #openttd
05:20:43 *** wallabra has quit IRC (Ping timeout: 480 seconds)
05:22:44 *** wallabra has joined #openttd
06:09:04 *** MinchinWeb[m] has quit IRC (Ping timeout: 480 seconds)
06:15:21 *** Flygon has joined #openttd
06:24:24 *** MinchinWeb[m] has joined #openttd
08:25:56 *** SigHunter has joined #openttd
08:33:10 <andythenorth> breakfast?
08:34:45 <mnhebi> you having second breakfast?
08:49:30 <kuhnovic> It's all just lunch really
08:49:45 <peter1138> Not eaten yet. Forgot to go shopping.
08:51:04 <will_marshall_> need to go stuff an ebay parcel in the locker at the petrol station. think i'm going to get myself a little snack
08:52:05 <peter1138> I've got some out-of-date custard I could have.
08:52:22 <peter1138> Or a massive baking potato that'll take an hour to cook.
08:54:50 <will_marshall_> fish fingers and peas out of the freezer surely?
09:04:40 <LordAro> will_marshall_: that was yesterday
09:06:22 <DorpsGek> [OpenTTD/OpenTTD] PeterN commented on pull request #16068: Change: Extend Guru X2 helicopter life https://github.com/OpenTTD/OpenTTD/pull/16068#issuecomment-6077874977
09:40:04 <mnhebi> fish fingers and peas? hmm.
10:15:42 <belajalilija> Fish fingers and custard
10:17:58 <andythenorth> sugar in ya peas mate
10:51:53 <LordAro> belajalilija: go back to 2011
10:51:55 <LordAro> ;)
10:54:52 <will_marshall_> i eat peas with honey, i've done it all my life, it makes the peas taste funny, but it keeps them on my knife
11:00:10 <LordAro> ew
11:57:52 <peter1138> Urgh, I think I need to slightly change an interface, and the actual chance is small, but updating all the unit tests...
11:58:03 <peter1138> Hmm, optional parameter perhaps.
12:01:05 <peter1138> Default parameter must be a compile-time constant, of course. D'oh.
12:27:41 <mnhebi> belajalilija: Replace custard with bearnaise sauce, and you talking my language
12:47:05 <reldred> mmmm, I shall go to bed, because when I get up tomorrow I can get something from the bakery, like a custard tart.
12:47:23 <reldred> time to go do a cheeky 8hr timeskip
13:04:22 <LordAro> woah hacks
13:15:36 <belajalilija> mnhebi: Itโ€™s a reference))
13:19:55 <peter1138> I may have given my dogs a second lunch.
13:26:40 <tony_pixel> _glx_: hi (just in case you didn't see the github comment), could you make the current `include();` patch PR implement only the parameterless version and submit the separate draft PR for last two commits (parametrized version)? We'd like to get it merged to get the rudimentary include system, and we can decide on the shape of the version with parameter support later, thanks <3.
15:00:38 <peter1138> Weebles wobble, but...
15:35:27 <DorpsGek> [OpenTTD/OpenTTD] tabytac updated pull request #16051: Change: Weight Screensaver Mode vehicle selection by vehicle type https://github.com/OpenTTD/OpenTTD/pull/16051
16:39:22 <DorpsGek> [OpenTTD/OpenTTD] PeterN opened pull request #16071: Codechange: Don't manually clear up NewGRF data when exiting https://github.com/OpenTTD/OpenTTD/pull/16071
16:47:02 *** gelignite has joined #openttd
17:10:06 <andythenorth> I liked the simple include syntax
17:14:03 <andythenorth> I was going to comment on the PR, but I think you said all that needed saying tony_pixel
17:24:03 <peter1138> You do realise it is still useful to know when people agree with other people, not just disagreement?
17:41:37 <tony_pixel> eh, I think we approved of each others thoughts in the comment section previously, there's not much to be added
17:50:20 <peter1138> Feedback is feedback.
17:56:50 <andythenorth> Iโ€™ll put a comment in a bit, not logged in to GH on this phone
18:51:25 *** Wolf01 has joined #openttd
19:11:57 <DorpsGek> [OpenTTD/OpenTTD] Rito13 opened pull request #16072: Codechange: Simplyfy _origin_industry_tile_specs https://github.com/OpenTTD/OpenTTD/pull/16072
19:12:25 <DorpsGek> [OpenTTD/OpenTTD] Rito13 opened pull request #16073: Codechange: Make Slope an EmumBitSet https://github.com/OpenTTD/OpenTTD/pull/16073
19:13:11 <DorpsGek> [OpenTTD/OpenTTD] Rito13 updated pull request #16073: Codechange: Make Slope an EmumBitSet https://github.com/OpenTTD/OpenTTD/pull/16073
19:26:21 *** alexjj has joined #openttd
19:42:39 <yiffgirl> SO hyped for include
19:43:21 *** Wolf01 is now known as Guest2279
19:43:23 *** Wolf01 has joined #openttd
19:49:30 *** Guest2279 has quit IRC (Ping timeout: 480 seconds)
19:51:44 <_zephyris> You can include me in that
19:56:03 <peter1138[d]> Hyped for RC1
20:43:26 *** tokai|noir has quit IRC (Remote host closed the connection)
20:56:24 *** WormnestAndroid has quit IRC (Read error: Connection reset by peer)
20:56:25 *** WormnestAndroid has joined #openttd
21:16:40 <tony_pixel> hyped for 7CC
21:17:57 <belajalilija> Hyped for 10cc
21:17:59 <tony_pixel> I'm kinda warming up to parametrized includes, but still unsure if we need the text concats
21:18:16 <tony_pixel> just replacing parameter with passed things would work though
21:52:44 *** Wolf01 has quit IRC (Quit: Once again the world is quick to bury me.)
21:56:53 <andythenorth> I'm a bit on the fence
21:57:18 <andythenorth> all my use cases are met, because concatenating to one nml file is trivial python
21:57:40 <andythenorth> but I wince every time I see a giant nml file from an author who can't program
21:57:48 <andythenorth> it's very hard for them
21:58:22 <andythenorth> I don't know if the 'cannot program' audience will see much take up of parameters?
22:02:19 <audigex> Yeah I'm with Andy, the people who'd benefit most from it, mostly won't know to use it
22:02:44 <audigex> Like, that doesn't make it a bad idea - IMO including it does no harm and benefits some. It just won't be *as* big a benefit as the intended use case would suggest
22:06:30 <audigex> But I'd rather see basic includes added, then come back to parameterised later if necessary - better to solve the bigger, simpler problem first before worrying about the more complex, niche problem
22:06:53 <audigex> ... turns out I already said that on the PR in April. Haven't changed my mind
22:08:36 <audigex> Probably 99% of what people want to do with includes is just put vehicles/buildings/industries/whatever into separate files for organisation, and include them
22:08:36 <audigex> Most sets include a preprocessor of some kind to handle that, very few seem to bother parameterising
22:12:12 <yiffgirl> audigex: yeah this exactly. parameters will be cool but right now i just want to be able to have a main.nml that isn't seven miles tall
22:12:24 *** jinks has quit IRC (Quit: ZNC - http://znc.in)
22:12:37 <andythenorth> it's like 5 lines of python ๐Ÿ˜›
22:12:38 <andythenorth> but eh
22:12:43 *** jinks has joined #openttd
22:14:19 <andythenorth> I have a secret hope that if we use include
22:14:27 <andythenorth> then the lexer / parser could cache
22:14:28 <andythenorth> more
22:14:34 <andythenorth> because it's slow AF ๐Ÿ™‚
22:14:36 <yiffgirl> it's one line of bash but i am ageric to gagobears
22:14:47 <andythenorth> can it be -1 line of regexp?
22:15:44 <audigex> Having to add python adds a layer of friction, though, especially for newbies who may be feeling overwhelmed by NML never mind adding python/MAKE to the mix (MAKE genuinely stopped me writing newGRF code for at least 5 years, I fucking hate MAKE)
22:15:44 <audigex> If nothing else, my argument would be let's add those 5 lines of python to NMLC... instead of pointing nmlc at a .nml file, point it at a folder
22:15:44 <audigex> But I think the include approach is more sensible
22:16:56 <talltyler> The problem with pointing NMLC at a folder is that the included files need to be in a specific order, especially sprite templates.
22:17:34 <audigex> Indeed, hence include being more sensible
22:17:34 <audigex> NMLC could probably figure it out, but I think we just go with includes and leave it to the user
22:17:42 <yiffgirl> "let's fix this problem by adding a build system!" and now you have three problems
22:17:55 <audigex> Exactly. All roads lead back to simple includes
22:18:00 <yiffgirl> nmlc only for life
22:18:09 <andythenorth> fodler of files, all numbered ๐Ÿ˜›
22:18:16 <andythenorth> 1-header.nml
22:18:22 <andythenorth> 2-trains.nml
22:18:34 <talltyler> I have a dead simple Python script to make my GRFs, it even copies them from the project folder to my OpenTTD folder
22:18:34 <talltyler> https://github.com/2TallTyler/itl_houses/blob/master/make.py
22:19:00 <audigex> To be fair I'm arguing for a feature I'll never use, I'm fully invested in a python build process, but I still think it's sensible
22:19:00 <talltyler> Actually, alphabetical files isnโ€™t the worst idea
22:20:50 <tony_pixel> alphabetical files at least give you the benefit of where to look in the file menu to find something specific :P
22:21:10 <tony_pixel> I'm not against parametrized includes, i'm against string concat support
22:21:26 <andythenorth> but for the effort of alphabetising, we could just ingest a manifest of file names ๐Ÿ˜›
22:21:28 <Guest2157> is there a keybind for the virtual ruler?
22:21:33 <audigex> talltyler: https://github.com/BRTrains/BRBuild/blob/main/NmlWriter/NmlCompiler.py#L109
22:21:33 <audigex> cross platform (tested on Windows and MacOS, pretty sure it works for Linux too but untested) and accounts for Windows users with their Documents folder in OneDrive, if you want to make that more generic
22:21:50 *** Guest2157 is now known as Izzy
22:22:03 *** Izzy is now known as Izzybee
22:22:15 <talltyler> I mostly just donโ€™t make GRFs anymore ๐Ÿ™‚
22:22:25 <talltyler> But thanks
22:22:28 <audigex> That would save us all a LOT of time, why didn't we think of that?
22:22:31 <peter1138> belajalilija, pineapple trains is labelled 10cc :o
22:23:25 <talltyler> I spend all my time savings working on OpenTTD itself ๐Ÿ˜›
22:23:52 <talltyler> Configurable calendar time was about 20 hours a week for 13 months
22:27:23 <talltyler> Havenโ€™t had much motivation recently though. Someday I want to take another week off and do locomotive runarounds (uncoupling and recoupling, but not full shunting). I have a plan that I think would be about as much work as backwards trains, which is how I spent my last week off. ๐Ÿ™‚
22:31:37 <tony_pixel> this game is just a "fixing an old car for 30 years as a leisure time activity" collaboration for 10-15 people
22:32:19 <andythenorth> and napping
22:32:35 <andythenorth> so we all commented here, but not on the nml PR?
22:37:34 <peter1138> Dare I check the forums?
22:37:41 <andythenorth> tumbleweed
22:40:58 <audigex> talltyler: I've thought for a while that "shunting" is actually probably at least 3 distinct things that share some functionality
22:40:58 <audigex> 1. Runarounds
22:40:58 <audigex> 2. Split-merge diagrams
22:40:58 <audigex> 3. Consist shuffling (moving wagons/coaches between units, leaving some behind etc)
22:40:58 <audigex> Probably more I've not thought of
22:41:57 <audigex> Split-merge seems viable in concept, I think, I've had some thoughts about it for a while and considered writing them up but it felt like I'd just be writing a "Here's a wishlist I'd like someone else to do, and I've got no personal understanding of the viability of what I'm saying" which seemed a bit rude
22:43:00 <audigex> When Peter's not looking I might get my AI agent to throw together a proof of concept just to test those thoughts and see if they're even worth discussing for a proper patch
22:44:00 <talltyler> I agree with those three components, and the UX of each is progressively more difficult ๐Ÿ™‚
22:44:43 <talltyler> Runaround is the easiest place to begin, IMO, and could be extended later to other uses.
22:44:53 <andythenorth> will I fall asleep on the sofa again? ๐Ÿ‘€
22:45:35 <andythenorth> I have had a horrible idea for these things
22:46:09 <andythenorth> my first explanations always bomb so .... yolo
22:46:19 <andythenorth> we have groups yes?
22:46:24 <andythenorth> and we have autoreplace yes?
22:47:32 <tony_pixel> peter1138[d]: would you like to check out a funny thing?
22:49:36 <andythenorth> we don't have train templates though
22:50:44 <andythenorth> train templates could be done by
22:50:44 <andythenorth> * swapping one linked list of vehicles for another
22:50:44 <andythenorth> * pop / push / insert / delete to a list
22:51:02 <andythenorth> all the shunting crap is basically the same thing, but not in depot
22:51:23 <andythenorth> and doing it on orders
22:51:43 <andythenorth> but really shunting is 'conform to this template for this edge'
22:52:18 <andythenorth> then it's just graph resolution
22:53:17 <andythenorth> I don't think it would be worth trying to support free vehicles / arbitrary consists as 'shunting'
22:53:28 <andythenorth> just going to fail in a hundred ways
22:55:21 <Izzybee> did youse know that Workers & Resources: Soviet Republic has shunting mostly by accident?
22:55:34 <andythenorth> I did not
22:56:31 <andythenorth> https://www.reddit.com/r/Workers_And_Resources/comments/1n7wcrz/shunting_what_it_is_how_it_works_and_some_use/
22:56:41 <belajalilija> andythenorth: Meeee
22:56:51 <tony_pixel> somehow, including a switch with `current_year` breaks another switch with `current_year
22:56:54 <Izzybee> the distribution office system can technically distribute vehicles, and there's several lengths so if you build multiple distribution offices you can abuse that to build different length consists. which is super neat and also extremely unintuitive.
22:57:17 <Izzybee> ... I think. I've never done it x3
22:57:40 <andythenorth> I skimmed the reddit, but understanding it would require knowing what W&R even is
22:57:41 <andythenorth> ๐Ÿ™‚
22:57:47 <andythenorth> I don't really play games
22:58:23 <Izzybee> command economy city builder would be the tl;dr.
22:58:40 <Izzybee> but yeah it's abusing the interactions of several systems
22:58:42 <tony_pixel> tony_pixel: if I remove it, the other switch runs
23:00:56 <belajalilija> peter1138: I suppose the author was on a dreadlock holiday
23:02:15 <tony_pixel> wtf
23:02:19 <andythenorth> 'shunting' is too broad anyway, like daylength was, I'm with talltyler
23:02:28 <tony_pixel> if I change the order, the first switch doesn't work
23:02:35 <tony_pixel> the second switch does
23:02:36 <belajalilija> talltyler: This alone would be a great leap forwards
23:03:05 <belajalilija> tony_pixel: This is why itโ€™s beautiful
23:03:43 <andythenorth> for me shunting means
23:03:43 <andythenorth> (1) hump shunting or fly shunting, with free moving wagons
23:03:43 <andythenorth> (2) waybilled freight cars, making their way across the network by being switched in yards (like cargo packets do in cdist)
23:03:49 <andythenorth> I don't really understand the other cases
23:04:15 <andythenorth> daylength only got sorted when we broke it down between 'slower progression of train models' vs. 'less cargo' vs. 'slower vehicles'
23:06:19 <_jgr_> The other (probably easier) use case is straightforward dividing services. e.g. pax service splits in half at some station and one half goes off somewhere else
23:06:45 <_jgr_> Not as common these days but used to be done all over the place
23:07:17 <andythenorth> that's deterministic, and could be graphed
23:07:24 <andythenorth> free moving wagons...not so much?
23:07:35 <squirejames> There would also be turnarounds at stations. Train pulls in, station pilot couples to the rear. Loco uncoupled. Pilot takes carriages to carriage siding. Then loco moves to go be repaired, turn around etc. Pilot moves coaches back, then uncouples and moves away. Loco then attaches to opposite end, and tada consist ready to load and depart
23:07:59 <squirejames> _jgr_: Sometimes with free moving coaches (Slip Coaches)
23:08:38 <_jgr_> andythenorth: Is "graph" just timetabling here, or do you have something more elaborate in mind?
23:08:45 <squirejames> squirejames: This also gives an actual prototypical use for those Jinties, O3s, O8s etc
23:08:46 <tony_pixel> huh
23:08:51 <tony_pixel> it overwrites it
23:09:00 <belajalilija> _jgr_: Common still in Denmark (with DMUs) and Iโ€™d love to see it
23:09:36 <squirejames> Done with DMUs and EMUs in the South East still ("Passengers for X should board the last 4 carriages of the train")
23:10:32 <belajalilija> In Copenhagen they mix DMUs and EMUs in the same consist and then they split and go in different directions on the mainland
23:10:40 <andythenorth> _jgr_: timetable I assume?
23:10:59 <andythenorth> graphs (diagrams) for railway operations are a known field of study
23:11:00 <belajalilija> The trains donโ€™t even technically need to stop to split
23:11:29 <andythenorth> vehicle formation per edge
23:11:37 <andythenorth> some kind of resolver for split / merge
23:11:57 <_jgr_> Isn't that the player's job though?
23:12:05 <andythenorth> like...if 8 vehicles arrive at a node, and the split legs have 3 each, what happens? Crash the game?
23:12:35 <DorpsGek> [OpenTTD/OpenTTD] PeterN commented on pull request #16072: Codechange: Simplyfy _origin_industry_tile_specs https://github.com/OpenTTD/OpenTTD/pull/16072#issuecomment-6090840070
23:13:24 *** gelignite has quit IRC ()
23:18:40 <andythenorth> I guess most people just assume that 2 vehicles are left in the station
23:18:54 <andythenorth> that's untidy to my small brain
23:19:16 <andythenorth> that station is then blocked, and the vehicles are disconnected from the graph
23:19:54 <andythenorth> it would totally make sense on a model train set
23:20:41 <andythenorth> yeah I think that's why I've never understood shunting
23:20:45 <andythenorth> OpenTTD isn't a model train set
23:21:02 <andythenorth> there aren't kadee magnets and dcc controllers
23:22:39 <andythenorth> https://www.wymann.info/ShuntingPuzzles/sw-inglenook.html
23:36:04 *** Flygon has quit IRC (Quit: A toaster's basically a soldering iron designed to toast bread)