IRC logs for #openttd on OFTC at 2025-04-08
β΄ go to previous day
00:01:14 *** WormnestAndroid has quit IRC (Remote host closed the connection)
00:01:18 *** WormnestAndroid has joined #openttd
00:55:46 *** WormnestAndroid has quit IRC (Read error: Connection reset by peer)
00:57:09 *** WormnestAndroid has joined #openttd
01:44:32 *** Wormnest has quit IRC (Quit: Leaving)
02:41:46 *** WormnestAndroid has quit IRC (Read error: Connection reset by peer)
02:41:48 *** WormnestAndroid has joined #openttd
02:45:07 *** geizeskrank has quit IRC (Ping timeout: 480 seconds)
02:45:57 *** gnu_jj_ has quit IRC (Ping timeout: 480 seconds)
02:48:41 *** geizeskrank has joined #openttd
03:53:58 *** debdog has quit IRC (Ping timeout: 480 seconds)
05:09:08 *** keikoz has quit IRC (Ping timeout: 480 seconds)
05:53:20 *** toktik is now known as Guest13138
05:56:12 *** Guest13138 has quit IRC (Remote host closed the connection)
07:26:09 <peter1138> My other patch just removes that button... :p
07:33:08 <FLHerne> how about adding the programmable signals as found in jgrpp
07:33:29 <FLHerne> then there really will be no reason to use block signals and you can call them 'legacy' ;-)
07:34:46 <FLHerne> at the moment I'm with LordAro, there are useful things you can only do with block signals in trunk, not only mad openttdcoop setups but a simple priority merge
07:35:33 <FLHerne> they're an unintuitive and awkward way to achieve that but currently the only one
07:36:30 <andythenorth> what is a prio merge?
07:36:36 <andythenorth> I never figured any of this stuff out
07:36:57 <andythenorth> I liked the multi-aspect signals in JGRPP though π
07:37:16 *** locosage has joined #openttd
07:37:16 <locosage> useful things include just signalling a straight track with no junctions whatsoever
07:37:21 <locosage> block signals just work better for that
07:37:34 <LordAro> didn't that get fixed?
07:37:50 <andythenorth> we made them green not red, but block is faster than PBS
07:37:55 <andythenorth> got a video somewhere
07:38:11 <andythenorth> plain line block **is ** faster than PBS under certain conditions
07:39:35 <peter1138> I missed the bit where my PR makes any functional changes.
07:39:37 <locosage> also, pbs bug that clogs stations still haven't been fixed afaik
07:40:02 *** tokai has quit IRC (Quit: c('~' )o)
07:40:37 <LordAro> locosage: has it been reported?
07:48:11 <peter1138> Potentially leave the platform and path reserved until the signal is cleared, but probably that's too naive and breakable.
07:54:49 <peter1138> Path reservations reserve up to the signal. Maybe they need to include the signal...
08:54:52 <peter1138> FLHerne, last time I asked if anyone fancied doing so there were no takers.
08:55:05 <peter1138> (Programmable signals)
09:34:46 <andythenorth> 'confusing signals'
10:17:03 <xarick> "Signals devs don't want you to use"
10:18:22 *** emperorjake has joined #openttd
10:18:22 <emperorjake> Can we also get rid of that button again while we're at it
10:19:34 <xarick> let's try clone a class
10:26:37 *** peter1138[d] has quit IRC (Quit: User went offline on Discord a while ago)
10:33:39 <pickpacket> xarick: SIG_INTERRUPT and SIG_KILL? ;)
10:34:34 <pickpacket> I think I've asked before, but is there a difference in infrastructure cost between the different signals?
10:44:20 *** Smedles has quit IRC (Read error: Connection reset by peer)
10:45:06 *** Smedles has joined #openttd
10:47:45 * peter1138 trying to optimise a database query: goes from 6 seconds to 10 seconds. Damn it.
11:53:01 *** ChanServ sets mode: +v tokai
11:55:54 <frosch123> pickpacket: Two way signals count as 2 signals. Otherwise they are all the same
11:56:42 <pickpacket> frosch123: π ty
12:05:24 <peter1138> This query is much quicker without the filter applied :(
12:06:12 <peter1138> Timing: Generation 26.976 ms, Inlining 0.000 ms, Optimization 16.201 ms, Emission 331.811 ms, Total 374.988 ms
12:06:23 <peter1138> Timing: Generation 26.666 ms, Inlining 32.967 ms, Optimization 3695.869 ms, Emission 3390.808 ms, Total 7146.309 ms
12:06:36 <pickpacket> peter1138: I guess applying the filter in the query would be about as efficient as making the query and then filtering the result in the calling code
12:08:15 <pickpacket> orudge: nice that we could get rid of ads on the forum!
12:09:30 <peter1138> It feels like it should be possible to just do the query as is, and then filter that. But alas not :(
12:32:42 <peter1138> Not that I can see.
12:54:13 *** WormnestAndroid has quit IRC (Read error: Connection reset by peer)
12:54:16 *** WormnestAndroid has joined #openttd
12:54:19 <talltyler> peter1138: I missed your last request but I quite like programmable signals and would love to see them in vanilla. π
12:54:19 *** WormnestAndroid has quit IRC (Read error: Connection reset by peer)
12:54:20 *** WormnestAndroid has joined #openttd
12:54:23 *** WormnestAndroid has quit IRC (Remote host closed the connection)
12:54:24 *** WormnestAndroid has joined #openttd
12:55:09 <talltyler> They can be quite a footgun, although not too unlike signals in general
13:46:20 *** Flygon has quit IRC (Read error: Connection reset by peer)
14:12:03 <xarick> how to make this logic more efficient
14:13:45 <xarick> for every station outside spread_rectangle, remove it from the station_list
14:16:49 <zanooda2000> planetmakerviaGitHub: Well big thanks that old players still can use it.
14:16:49 <zanooda2000> But this is really strange change.
14:16:49 <zanooda2000> Can you really do "advanced" train management with path signals only? Like the same, basic but still "advanced" priority merge?
14:31:34 <zanooda2000> Can you please unban me on Rau117 on GitHub so I'll white here way less
14:32:48 <zanooda2000> So for now I can suggest raneming Path signals to just "Signals" and keeping block signal as is.
14:34:50 <zanooda2000> So path signals will be way easier to recognize β "Signal" vs "One Way PBS" / "Path Signal"
14:38:46 *** belajalilija has joined #openttd
14:38:46 <belajalilija> Renaming path signals to just signals might actually be a good idea
14:39:06 <belajalilija> But having block and pre signals be called legacy is good too
14:43:22 <zanooda2000> The point is, PBS still not That advanced as blocks. You just cannot make, for example, long priority merge with it.
14:43:22 <zanooda2000> _this is not about "do you really need priority" (yes, I need)_
14:47:10 <zanooda2000> Blocks... are both at the same time. Legacy and, well, I admit, pretty outdated for their *intended* usage, but just nessecary f you wanna push the train limits - for advanced gameplay.
14:50:06 <peter1138> Hmm, removing the recursive view from the query dramatically improves it.
14:51:42 <peter1138> I wonder if I should look at materialised views.
14:55:47 <_glx_> xarick: try using foreach instead of Begin, IsEnd, Next
15:07:53 <xarick> is foreach safe to use with RemoveItem?
15:08:38 <peter1138> Oh, right, you can't create-or-replace a materialized view :/
15:21:34 <peter1138> Well anyway, not having this recursive view in the query makes it take ~70ms instead of 6-10seconds.
15:22:11 <peter1138> Some combination of query optimising and filtering gets it into a state, I guess.
15:22:30 <xarick> before: 1 ticks, 482 ops, after: 1 ticks, 491 ops
15:23:17 <peter1138> 10 seconds is crazy time for a user to wait.
15:24:07 <peter1138> Materialised views may be in the future, but in this case I don't 100% need it.
15:24:31 <peter1138> However, basically this is all I've done today :S
15:24:40 <peter1138> (That and go back to bed due to being ill)
15:46:57 <zanooda2000> talltyler: Hmm... I really-really hope that even with programmable signals, old-school blocks will remain in game.
15:46:57 <zanooda2000> With power of bunch of super-smart signals and tons of pretty-dumb signals, that "advanced" (unrealistic) gameplay will be grown to the next level!
15:50:04 <belajalilija> I donβt think thereβs any chance of block/pre signals being removed
15:51:01 <andythenorth> zero chance of current developers approving and shipping removal
15:52:15 <andythenorth> it's so useful that buy menu text searches badges
15:52:21 <andythenorth> and I unbroke search with Horse
15:54:05 <belajalilija> Are badgers released?
15:54:26 <belajalilija> Or are you on some pre release build?
15:58:34 <andythenorth> not sure if it's in sync with badgers in git
15:58:45 <talltyler> Badges are in nightly
15:58:54 <locosage> PBS - Permanently Bugged Signals π€
16:00:01 <peter1138> Badges were merged about 2 months ago.
16:00:08 *** brickblock19280 has joined #openttd
16:00:08 <brickblock19280> Path *Based* signals
16:00:27 <peter1138> Default badges not yet, but that doesn't prevent the feature being tested and ironed out.
16:00:53 <_glx_> they perfectly balance if all tracks between signal and platforms have the same penalty
16:01:50 <peter1138> (The badges inside the default badges PR can be downloaded from bananas)
16:16:26 <xarick> before: 1 ticks, 482 ops / after: 0 ticks, 3859 ticks
16:18:00 <xarick> this OrthogonalTileArea is finally paying off
16:20:09 *** Wormnest has joined #openttd
16:23:40 <xarick> a bit on the high side for finding none
16:24:19 <xarick> let's try a station spread of 64
16:29:25 *** izhirahider has quit IRC (Read error: Connection reset by peer)
16:29:38 *** rightnut has quit IRC (Read error: No route to host)
16:30:19 *** rightnut has joined #openttd
16:30:55 *** izhirahider has joined #openttd
16:33:18 <xarick> so it can only be... AITileList
16:42:17 <xarick> found the culprit π
17:01:16 <xarick> wow, foreach is fast, but does it work with RemoveItem?
17:19:01 <xarick> how can I use `ScriptList::_set` ?
17:19:04 *** Wormnest has quit IRC (Ping timeout: 480 seconds)
17:31:42 <_glx_> foreach uses Begin, IsEnd and Next internally
17:31:53 <_glx_> so RemoveItem should work
17:32:19 <_glx_> foreach usest _nexti metamethod
17:43:02 <xarick> i need to sort list by item
17:43:26 <xarick> SetValue is doing... stuff probably
17:43:27 <_glx_> oh and list[item] = null to remove it
17:44:10 <_glx_> sorting is not affected
17:47:59 *** WormnestAndroid has quit IRC (Ping timeout: 480 seconds)
17:51:03 *** WormnestAndroid has joined #openttd
17:53:29 <xarick> all these new methods are just faster
17:54:18 <yiffgirl> LC-ZorgviaGitHub: i do wonder how many people actually care about vehicle exclusivity.
17:54:18 <yiffgirl> if you're in single player, you definitely don't care because there's nobody else for new vehicles to be excluded from
17:58:03 <yiffgirl> i think a client setting to automatically say no would go a fair way. it shouldn't automatically say yes because that implies the extra work to not get blacklisted for however many years
18:02:16 <yiffgirl> perhaps a new window would be a good idea, to show all the offers at once. a little bit like the financials window in how it pops up at the beginning of the year
18:02:16 <yiffgirl> and then you can toggle the automatic denial there
18:06:53 *** SigHunter has joined #openttd
18:27:58 *** WormnestAndroid has quit IRC (Read error: Connection reset by peer)
18:29:12 <xarick> isn't vehicle exclusivity giving a bonus to station rating if the vehicle visits the station?
18:30:28 *** WormnestAndroid has joined #openttd
18:33:09 *** Wormnest has joined #openttd
18:42:48 *** tokai|noir has joined #openttd
18:42:48 *** ChanServ sets mode: +v tokai|noir
18:49:55 *** tokai has quit IRC (Ping timeout: 480 seconds)
18:54:01 *** Wormnest has quit IRC (Quit: Leaving)
19:02:54 *** kuka_lie has joined #openttd
19:22:33 <xarick> i want an option to... actually, nevermind
19:22:34 *** gelignite has joined #openttd
19:25:42 <xarick> how to add an item to a list using that funny method?
19:26:00 <xarick> list[item_that_doesn't_exist] = value ?
19:28:35 <xarick> ```station_list.AddItem(tile_list.GetValue(tile), airport_rectangle.DistanceManhattan(tile));
19:28:35 <xarick> station_list[tile_list[tile]] = airport_rectangle.DistanceManhattan(tile);```
19:28:35 <xarick> are these equivalent actions?
19:30:44 <peter1138> Maybe. Often "tile_list[tile
19:30:59 <peter1138> Often "tile_list[tile]" will create the element if it doesn't exist, and give it a value of zero.
19:31:05 <peter1138> (Well, the default value)
19:31:09 <peter1138> Not sure if that's the case here.
19:34:21 <_glx_> default value is 0 if item doesn't exist
19:34:50 <_glx_> ah no _get will error out
19:35:38 <_glx_> GetValue() returns 0 if not found
19:35:56 <_glx_> [] errors (ie crash the script)
19:35:58 <xarick> tile exists in tile_list
19:47:43 <xarick> wait, need to print adjacentStation
19:57:14 *** WormnestAndroid has quit IRC (Ping timeout: 480 seconds)
19:59:40 *** WormnestAndroid has joined #openttd
20:22:57 <xarick> `TownAirportRadRect` is the last one needing OrthogonalTileArea treatment
20:23:02 *** kuka_lie has quit IRC (Quit: Lost terminal)
20:24:11 <xarick> `EstimateTownRectangle` is the more complicated one
20:48:32 *** gelignite has quit IRC (Quit: Stay safe!)
20:55:19 *** WormnestAndroid has quit IRC (Read error: Connection reset by peer)
20:55:20 *** WormnestAndroid has joined #openttd
21:16:40 <xarick> trying to make sense of this code
21:17:40 <xarick> estimate town rectangle is that inner square. the estimation is okayish
21:18:11 <xarick> the outer rectangle is somewhat confusing to explain
21:19:25 <xarick> each tile of the outer square is the top tile position of an airport of size 4x3 so that at least one of the tiles of its coverage area is inside the inner rectangle
21:22:12 *** keikoz has quit IRC (Ping timeout: 480 seconds)
21:53:41 <peter1138> Meh at StrongTypes again...
21:53:47 *** nielsm has quit IRC (Ping timeout: 480 seconds)
22:17:17 *** Wolf01 has quit IRC (Quit: Once again the world is quick to bury me.)
22:32:55 <xarick> EstimateTownRectangle is the slowest one
22:33:24 <xarick> TownAirportRadRect calls EstimateTownRectangle
continue to next day β΅