IRC logs for #openttd on OFTC at 2026-04-23
β΄ go to previous day
00:26:34 *** MinchinWeb[m] has quit IRC (Ping timeout: 480 seconds)
00:27:34 *** MinchinWeb[m] has joined #openttd
00:36:18 *** MinchinWeb[m] has quit IRC (Read error: Connection reset by peer)
00:37:54 *** MinchinWeb[m] has joined #openttd
01:49:07 *** Wormnest has quit IRC (Quit: Leaving)
02:20:43 *** Flygon has quit IRC (Remote host closed the connection)
02:38:37 *** WormnestAndroid has quit IRC (Read error: Connection reset by peer)
02:38:39 *** WormnestAndroid has joined #openttd
02:38:49 *** WormnestAndroid has quit IRC (Read error: Connection reset by peer)
02:39:51 *** WormnestAndroid has joined #openttd
02:40:32 *** tokai|noir has joined #openttd
02:40:32 *** ChanServ sets mode: +v tokai|noir
02:47:30 *** tokai has quit IRC (Ping timeout: 480 seconds)
03:00:03 *** herms2 has quit IRC (Quit: bye)
03:55:14 *** Philemon has joined #openttd
03:58:40 *** Phileman has quit IRC (Ping timeout: 480 seconds)
05:20:46 <DorpsGek> - Update: Translations from eints (by translators)
05:33:44 <peter1138> Hmm, rather "requests 1 change, and had a few comments"
07:02:27 *** luke_6532633 has joined #openttd
07:31:47 <peter1138> > Invalid email for web commit.
07:32:38 <peter1138> Github is so buggy these days.
07:36:36 <reldred> I mean thatβs what happens when you let the sloperators commit code
08:14:09 <_zephyris> *Insert obligatory uptime per month since microsoft graph here*
08:18:01 <peter1138> Slop, glorious slop...
10:39:59 <_zephyris> So, 2CC support for NewGRF infrastructure (stations/roadstops/rail fences/airports)
10:41:43 <_zephyris> Seems quite achievable, add a bit to the appropriate Action0-set misc features variable, interecept palette selection based on whether the bit is set.
10:53:02 *** SigHunter has quit IRC (Remote host closed the connection)
10:55:03 *** SigHunter has joined #openttd
11:03:10 *** SigHunter has quit IRC (Ping timeout: 480 seconds)
11:11:08 *** WormnestAndroid has quit IRC (Read error: Connection reset by peer)
11:11:25 *** WormnestAndroid has joined #openttd
11:14:05 <_zephyris> Vehicles go through separate the livery check logic... So could just intercept GetCompanyPalette with a `use_2cc` argument?
11:29:08 *** will_marshall_ has joined #openttd
11:29:08 <will_marshall_> The prohibition on reversing articulated vehicles (leaving aside dual-head engines where that might not make sense, for a moment) - is that purely down to it requiring some support in the newgrf and there not being a mechanism for newgrfs to advertise that they support it?
11:44:10 <andythenorth> it's just not implemented
11:44:31 <andythenorth> sorry, that's not a super helpful answer π
11:46:32 <peter1138> Articulated vehicles can reverse, but they can't be flipped.
12:10:49 <peter1138> Okay, engine flags and callbacks.
12:12:08 <peter1138> Should we query the flags/callback of the last articulated part, of first part of the last articulated part?
12:12:49 <peter1138> And for allow/deny reversing, is a simple yes/no callback sufficient?
12:18:21 <reldred> Honestly I personally feel itβs perfect as is.
12:18:34 <talltyler> We currently query the flag of the last articulated part, in case the vehicle is articulated but only has a cab on one end. (I can't think of any real examples of this, at the moment, though.)
12:18:34 <talltyler> I wonder if the callback result might be the maximum speed, so Andy can have 35 mph brake vans for gronks. We'd need two special values, one for "no driving backwards" and the other for "full speed".
12:20:09 <peter1138> talltyler, don't the existing max speed callbacks handle that?
12:20:28 <reldred> Iβve had some of the most fun playing TTD this last week or so than Iβve ever had in years
12:20:57 <andythenorth> I implemented 'speed when driving backwards` in a Horse ~~stash~~ ~~patch~~ branch
12:21:31 <peter1138> Yeah, so we don't need to complicated it with another speed result :)
12:21:31 <talltyler> So Gronk brake vans are solved already?
12:21:49 <andythenorth> Gronk brake vans is really unsolvable via vehicles
12:22:33 <andythenorth> is there / will there be a 'drive backwards' order?
12:22:39 <peter1138> talltyler, we currently query the last articulated part for the `HasCab` flag, but then go ahead and check the front articulated part to see if t's an engine.
12:22:44 <peter1138> That seems inconsistent.
12:23:10 <reldred> andythenorth: I petitioned instead for 15139, disallow magic flip entirely.
12:23:25 <peter1138> I am of the opinion that always querying the front part of articulated parts is the correct thing to do.
12:23:25 <reldred> And Iβm fucking loving it
12:24:44 <talltyler> Probably true, but I'm sure someone can come up with a real articulated train that only has a cab at one end π
12:24:53 <andythenorth> lead part defines such behaviours
12:25:23 <peter1138> talltyler, the current logic doesn't handle that.
12:25:36 <peter1138> The front part will be an engine, and therefore will be allowed to reverse.
12:25:55 <talltyler> lol, that's what I get for not testing my own edge case π
12:26:26 <will_marshall_> talltyler: Half a eurostar.
12:26:27 <peter1138> Steam engines with tenders are able to reverse at the moment.
12:26:56 * talltyler chops your Eurostar in half
12:29:01 <peter1138> If we change the test to always use the last articulated part, then steam engines won't be able to reverse (without the trailing part also being and engine/having the flag)
12:29:30 <peter1138> But that also means any extra-long articulated engines can't reverse unless they set it too.
12:29:36 <peter1138> Depends what behaviour we want by default :)
12:29:42 <will_marshall_> andythenorth: I was asking because I'm implementing it as part of another patch that I'll talk about more when I have a proof of concept.
12:30:15 <will_marshall_> I figured it was just a "this requires some effort and thinking about" type of situation.
12:30:49 <will_marshall_> And I did mean flipping in the depot but I forgot to write that because I'm dumb.
12:31:56 <will_marshall_> I forgor lunch.
12:32:22 <squirejames> talltyler: I can π
12:32:42 <will_marshall_> There are NO POINTS for being a foamer.
12:32:55 <will_marshall_> objection your honor, that has a cab at no end.
12:33:18 <squirejames> It could only run chimney to the rear (seemingly backwards) because the fans at the front cool it, so, its articulated, but can only run one way ("cab" at the end)
12:36:31 <belajalilija> Hereβs an articulated vehicle with a cab only at one end ||(because the second half was never built)||
12:38:41 <squirejames> Foamers unite? π
12:38:42 <belajalilija> Also it had 2000hp which is a lot for something from 1942 ig
12:39:12 *** brickblock19280 has joined #openttd
12:39:12 <brickblock19280> talltyler: This doesn't properly work for everything tho since you need to have the last part be powered for the CC to match
12:39:48 <talltyler> Sounds like checking the first part for consistency is the way to go π
12:40:32 <brickblock19280> Maybe but I think there is merit to allowing each end to be independent
12:40:49 <peter1138> Is that also a separate bug?
12:41:00 <squirejames> Oh genuine question too, completely removed.
12:41:00 <squirejames> Bridges. Specifically, aqueducts. Can they be given the same functionality as regular bridges? So that they can have foundations at the end etc?
12:41:09 <brickblock19280> No it's intended as far as I can tell
12:41:13 <squirejames> rather than always having to be built on a perfect slope
12:41:36 <brickblock19280> Although I don't know how that interacts with the MU flag tbh
12:43:59 <brickblock19280> Steam locos are the one case where the last articulated part (tender) has to be powered for the CC to match the engine. The power is set to 0 by the game however so just treating it as if it were a wagon should solve the issue.
12:44:55 <brickblock19280> Kinda weird tho since we want the tender to have engine CC but not be an engine when considering driving backwards
12:45:46 <peter1138> talltyler, okay, well I have a quick patch that adds a callback (0x164) to allow/deny reversing. It does not override the `HasCab` flag, but does override the IsEngine/IsRearDualheaded test.
12:46:34 <peter1138> Of course if reversing is denied but "magic-flip" is disabled, it can still reverse at low speed.
12:53:51 <peter1138> Do we need to "teach" the AI about things?
12:54:26 <peter1138> I guess they can already read the setting.
12:55:21 <peter1138> Hmm, well. A callback would make it difficult to know in advance if it's reversible.
13:03:46 <peter1138> Discoverability is a strong argument against callbacks at all :)
13:38:47 *** Wormnest has joined #openttd
14:09:05 <andythenorth> Horse ~~patch~~ ~~stash~~ next? CB164
14:09:21 <andythenorth> "freight train can reverse if less than 5 wagons"?
14:09:27 *** Flygon has quit IRC (Read error: Connection reset by peer)
14:09:29 <andythenorth> [arbitrary number arguments forever]
14:48:55 <_zephyris> Baby steps learning the doxgen requirements...
14:51:11 <hazardaj_nombroj> wait, it's all done via force-pushes? i guess that explains why it's still one commit
14:52:20 <_zephyris> That's the OpenTTD way...
14:52:31 <_zephyris> At least as far as I understand it... really should be sticking to sprites π
14:53:00 <hazardaj_nombroj> interesting -- in other projects i've seen folks use github's own capabilities to squeeze a PR into a single commit
14:53:08 <hazardaj_nombroj> rather than doing it manually during the PR process
14:53:46 <peter1138> In most other projects half the time they don't even bother with pull requests, just direct pushes to master/main.
14:54:37 <hazardaj_nombroj> also true, though i've seen it more as "direct pushes from main developer(s), PRs for outside contributions"
14:54:52 <hazardaj_nombroj> at least in the open-source space
14:55:06 <_zephyris> Probably agile, or something
15:01:23 <_zephyris> Eccentric notes on my own PR are because I've run out of coffee break
15:14:39 <peter1138> That took a while to appear.
15:33:01 <andythenorth> how many wagons _should_ be allowed to reverse?
15:34:19 <andythenorth> maybe Horse does need 'reversable brake vans'
15:35:12 <peter1138> What's the rationale for limits?
15:54:40 <audigex> Sorry, just trying to catch up with this conversation
15:54:40 <audigex> 1. A simple yes/no callback seems absolutely fine to me
15:54:40 <audigex> 2. Ideally it would be available from both wagons and locomotives, I assume wagons would default to no, non-articulated locomotives to yes?
15:54:40 <audigex> 3. For articulated vehicles, I'd always assume behavious is defined by the front part. No reason for that, it just seems to be the convention/sensible choice
15:54:41 <audigex> The main thing for me is that I can either say "This vehicle can/can't lead when running backwards", and set it at runtime not compile time... so that I can eg change behaviour based on a parameter, or based on the presence/absence of a compatible vehicle
15:54:41 <audigex> And being able to disable a locomotive running backwards is nice for something like a Eurotunnel Class 9 which only has a cab at one end (and I assume a lot of American stuff?)
15:55:53 <audigex> Fundamentally, as long as I can 1) Detect whether we're running backwards and 2) Define via callback whether a vehicle can lead, I really don't care how things are implemented, I can do whatever I need with that combination
15:56:58 <squirejames> Eurotunnel Class 9s do have a rear cab though
15:58:24 <squirejames> (well, ahem I stand corrected. The early ones had them. Later ones don't)
16:00:04 <peter1138> If the train doesn't have a cab at the end then it's already not going to run in reverse.
16:02:53 <rito12_13> I need a way to test MVSC compile locally
16:08:28 <peter1138> 2. It is called on whatever vehicle happens to be at the end of the train. If the HasCab flag is set, then the callback is not executed. If the callback fails, the existing behaviour (has to be a powered engine, including articulated and dual-head) takes effect.
16:12:45 <andythenorth> it's "lead the train iff driving backwards"?
16:17:54 <peter1138> I see Github is shitting itself again.
16:21:28 <audigex> peter1138: So the gist would be
16:21:28 <audigex> 2. If no flag, callback
16:21:28 <audigex> 3. If no callback, default to no for wagons and yes for engines
16:22:50 <audigex> Flag makes it easy to just define simple cases, callback means I can add whatever complex behaviour I want, and then a sensible fallback
17:53:35 *** szymoneq6261 has joined #openttd
17:57:18 *** Wormnest has quit IRC (Ping timeout: 480 seconds)
18:01:24 *** WormnestAndroid has quit IRC (Ping timeout: 480 seconds)
18:01:59 *** WormnestAndroid has joined #openttd
18:49:33 <peter1138> rito12_13, nah, it was general shitting itself, I got a 500 error on my first attempt to push.
18:51:33 *** SigHunter has joined #openttd
19:48:35 *** WormnestAndroid has quit IRC (Read error: Connection reset by peer)
19:48:45 *** WormnestAndroid has joined #openttd
19:49:24 *** Wormnest has joined #openttd
20:01:10 <_zephyris> 2CC stations/waypoints?
20:41:17 <_zephyris> Doesn't seem too tricky... Famous last words
20:47:09 <_zephyris> Hmm, I'm dumb, it's already (manually) possible, I think.
21:01:03 *** Wormnest has quit IRC (Ping timeout: 480 seconds)
21:07:16 *** Borg has quit IRC (Quit: leaving)
21:08:56 *** WormnestAndroid has quit IRC (Ping timeout: 480 seconds)
21:12:57 *** WormnestAndroid has joined #openttd
21:37:25 *** WormnestAndroid has quit IRC (Read error: Connection reset by peer)
21:39:05 *** WormnestAndroid has joined #openttd
21:47:53 *** WormnestAndroid has quit IRC (Read error: Connection reset by peer)
21:48:36 *** WormnestAndroid has joined #openttd
22:02:20 *** toktik is now known as Guest7859
22:02:25 *** Guest7859 has quit IRC (Remote host closed the connection)
22:16:48 *** Wolf01 has quit IRC (Quit: Once again the world is quick to bury me.)
22:37:09 *** MinchinWeb[m] has quit IRC (Ping timeout: 480 seconds)
22:38:12 *** MinchinWeb[m] has joined #openttd
23:45:45 *** WormnestAndroid has quit IRC (Ping timeout: 480 seconds)
23:45:57 *** WormnestAndroid has joined #openttd
23:46:29 *** MinchinWeb[m] has quit IRC (Ping timeout: 480 seconds)
23:56:43 *** MinchinWeb[m] has joined #openttd
continue to next day β΅