IRC logs for #openttd on OFTC at 2025-12-10
β΄ go to previous day
00:46:57 <peter1138> Path signals showing green when it's clear is now the wrong thign :)
01:01:15 *** ChanServ sets mode: +v tokai
01:08:05 *** tokai|noir has quit IRC (Ping timeout: 480 seconds)
01:43:17 *** izhirahider_ has joined #openttd
01:49:17 *** izhirahider has quit IRC (Ping timeout: 480 seconds)
01:49:17 *** izhirahider_ is now known as izhirahider
02:11:42 *** Wormnest has quit IRC (Quit: Leaving)
02:14:43 *** WormnestAndroid has joined #openttd
03:30:25 *** yiffgirl has joined #openttd
03:30:26 <yiffgirl> thinking again about road town connections on map generation. what's the chance of that making it into vanilla do we reckon
03:30:26 <yiffgirl> [don't worry, i'm not touching anything until i know exactly how it works this time]
04:12:40 <jfkuayue> caffeine effect again
04:20:14 *** Zathras_7 has joined #openttd
04:20:34 *** Zathras_1 has joined #openttd
04:23:46 *** Zathras_11 has quit IRC (Ping timeout: 480 seconds)
04:23:56 *** Zathras_4 has quit IRC (Ping timeout: 480 seconds)
06:52:56 *** Smedles has joined #openttd
07:14:02 *** Zathras_1 has quit IRC (Quit: Connection reset by beer!)
07:59:33 <_zephyris> Road connections are interesting to me... But needs to be performant, and think about who owns the road
08:24:43 <peter1138> yiffgirl, I'm not against it, but it does change the early game completely.
08:26:02 <peter1138> THough I get the feeling with the way NewGRFs are developed these days, players are not interested in starting in the 20th century so much any more.
08:29:23 <kaibaneddy> Really? When are they interested in starting?
08:37:53 <peter1138> I'm sure I've seen NewGRFs that only start adding things in the 1980s.
08:43:25 <kaibaneddy> sure, but perhaps that's more indicative of a haphazard "drawing things I'm personally familiar with" approach of some NewGRF authors, rather than what players want.
08:43:25 <kaibaneddy> If anything, the most common timeframe wish I've seen from players is earlier - 19th century.
08:44:06 <peter1138> I wasn't being entirely serious :)
08:45:09 <peter1138> Of course, in the 19th century is when railway companies were building railways, and roads were... not quite the thing they are now.
08:46:14 <kaibaneddy> that's why 20th century is the correct way to play openttd π
08:46:32 <kaibaneddy> or one reason why, at least
08:46:41 <peter1138> But this is a game about trains! :D
08:47:05 <kaibaneddy> it's a game about trains squashing road vehicles on level crossings...
08:53:25 <kuhnovic> We need a Falkirk wheel in openttd
09:02:59 <kuhnovic> I would really like to have #14743 in 15.0, even though it's currently not in RC1. Otherwise scenario makers will have to wait for another year until they can use this feature (or make nightly-only scenario's). I am biased though: I really want to use this to add landmark signs to my Norway map π
09:03:41 <peter1138> Is that the one already merged?
09:05:53 <locosage> Would be nice to have some gs bindings for the recent se features
09:06:10 <peter1138> Heh, you could've put the text colour in the string as a control code, instead of bumping savegame version :)
09:09:54 <kuhnovic> I did consider that actually haha
09:10:21 <kuhnovic> Felt a bit too "the user needs to know how the internals work"
09:18:36 <kuhnovic> Anyway, I marked it as Backport Requested. If anyone objects, feel free to remove it π
10:03:05 <xarick> oh, this is not the codestyle defined in visual studio
10:07:45 <peter1138> I needed to add a header, but the headers were jumbled, so I auto-formatted it with the definition from #14014. As it wasn't much different I applied the whole thing.
10:15:23 <xarick> is this setting isn't it?
10:24:21 * peter1138 ponders heightmap loading.
10:25:02 <peter1138> It's very common for the first "layer" above sea-level to end up being 2 or more height levels higher, instead of at level 1.
10:25:26 <peter1138> Presumably for heightmaps that were created when we only had 15 levels.
10:25:44 <peter1138> ISTR I had a patch to try normalising it.
10:33:03 <rito12_51026> kaibaneddy: Some people are more intrested in years 1850 - 1950 than 1950 - 2050.
10:33:44 <kaibaneddy> rito12_51026: definitely
10:37:21 <rito12_51026> However, then there were cabs, carriages, and other animal based vehicles.
10:37:47 <kaibaneddy> personally I think the best (tm) 100 year span for TTD is 1900 - 2000: Doesn't suffer from too-slow 19th c vehicles, but keeps the nostalgia model-train factor. Has a nice transition from steam to diesel/electric, props to jets, etc. Industries like oil refineries and coal-fired power stations (more or less) make sense for the whole duration, etc...
10:51:11 <xarick> stupid encryption popups...
10:51:22 <xarick> windows is being very annoying lately
10:51:33 <xarick> i don't want to encrypt anything
10:52:05 <xarick> i am the sole user of this computer
10:52:11 <xarick> i don't want passwords
10:52:39 <LordAro> until you download a virus or someone else gains access
10:55:20 <xarick> which makes me think windows is encrypting something without my consent
10:56:03 <xarick> it's windows that's locking me out of my own system
10:56:22 <LordAro> what if i told you that your SSD is already encrypted
10:56:27 <LordAro> that's part of how it's designed
10:56:40 <xarick> i have bitlocker disabled
10:56:48 <LordAro> (imgur is dead to me, i can't help you there)
10:57:53 <peter1138> There's never a wrong time to switch to Debian ;-)
10:58:19 <LordAro> peter1138: can i suggest that xarick might not do so well on Debian? :p
11:01:05 <LordAro> (i also realise how silly trying to bring up SSD-firmware-level encryption was)
11:06:02 <LordAro> that's not what bitlocker is
11:13:39 <xarick> first time it occurred to me though
11:18:47 <peter1138> You can definitely back the keys up. Whether you know they exist or that they need to be backed up is another matter.
11:19:59 <LordAro> as it says at the bottom of that thread, EFS != bitlocker
11:20:05 <LordAro> similar enough though
11:21:58 <xarick> I'm running this command `cipher /u /n /h`
11:22:32 <xarick> so far, nothing was listed, but it's still running, the ssd has tons of stuff
11:23:26 <LordAro> it's amazing really, you can say all sorts of stuff and it just won't get read
11:32:01 <xarick> C:\Users\Ricardo Soares\AppData\Local\Microsoft\VisualStudio\BackupFiles\SamuXarick\~AutoRecover.bplustree_type.hpp
11:32:01 <xarick> the only file it found
11:32:19 <xarick> that's very.... in yourface
11:34:41 <_glx_> VS encrypting backup files, that's unexpected
11:47:01 *** WormnestAndroid has quit IRC (Read error: Connection reset by peer)
11:47:02 *** WormnestAndroid has joined #openttd
11:47:07 *** WormnestAndroid has quit IRC (Read error: Connection reset by peer)
11:47:08 *** WormnestAndroid has joined #openttd
11:47:11 *** WormnestAndroid has quit IRC (Read error: Connection reset by peer)
11:47:22 *** WormnestAndroid has joined #openttd
11:47:59 <kuhnovic> It's not hard to dox Xarick
11:50:34 <_glx_> Seems to not be a new thing
11:54:06 <jfkuayue> Imgur embedded in Discord, accessing from UK - yes
11:54:59 <jfkuayue> Finally, good weather today
11:55:52 <LordAro> after the rain shower passed, yes
11:59:52 *** nucrow has quit IRC (Quit: User went offline on Discord a while ago)
12:55:10 *** notluke2578 has quit IRC (Ping timeout: 480 seconds)
12:55:10 *** wensimehrp has quit IRC (Ping timeout: 480 seconds)
12:55:14 *** ahyangyi has quit IRC (Ping timeout: 480 seconds)
12:55:15 *** pibbz13 has quit IRC (Ping timeout: 480 seconds)
12:55:19 *** zanooda2000 has quit IRC (Ping timeout: 480 seconds)
12:55:19 *** alfagamma7 has quit IRC (Ping timeout: 480 seconds)
12:55:20 *** rito12_51026 has quit IRC (Ping timeout: 480 seconds)
12:55:21 *** certator has quit IRC (Ping timeout: 480 seconds)
12:55:30 *** reldred has quit IRC (Ping timeout: 480 seconds)
12:55:36 *** yiffgirl has quit IRC (Ping timeout: 480 seconds)
12:56:19 *** mkdir7 has quit IRC (Ping timeout: 480 seconds)
12:56:19 *** lemuria0685 has quit IRC (Ping timeout: 480 seconds)
12:56:24 *** _tweez has quit IRC (Ping timeout: 480 seconds)
12:56:25 *** honza_ has quit IRC (Ping timeout: 480 seconds)
12:56:30 *** _zephyris has quit IRC (Ping timeout: 480 seconds)
12:56:35 *** jfkuayue has quit IRC (Ping timeout: 480 seconds)
12:56:35 *** squirejames has quit IRC (Ping timeout: 480 seconds)
12:56:37 *** DorpsGek_vi has quit IRC (Read error: Connection reset by peer)
12:56:37 *** michi_cc[d] has quit IRC (Write error: connection closed)
12:56:37 *** digitalfox has quit IRC (Read error: Connection reset by peer)
12:56:37 *** davidxn has quit IRC (Write error: connection closed)
12:56:37 *** kuhnovic has quit IRC (Write error: connection closed)
12:56:37 *** _jgr_ has quit IRC (Write error: connection closed)
12:56:37 *** andythenorth has quit IRC (Write error: connection closed)
12:56:37 *** tabytac has quit IRC (Write error: connection closed)
12:56:37 *** brickblock19280 has quit IRC (Read error: Connection reset by peer)
12:56:37 *** mmtunligit has quit IRC (Write error: connection closed)
12:56:37 *** audigex has quit IRC (Write error: connection closed)
12:56:37 *** talltyler has quit IRC (Write error: connection closed)
12:56:37 *** xarick has quit IRC (Write error: connection closed)
12:56:37 *** vondpc has quit IRC (Remote host closed the connection)
12:56:37 *** emperorjake has quit IRC (Write error: connection closed)
12:56:37 *** kaibaneddy has quit IRC (Write error: connection closed)
12:56:37 *** kaji_kaede has quit IRC (Write error: connection closed)
12:56:37 *** locosage has quit IRC (Write error: connection closed)
12:56:37 *** belajalilija has quit IRC (Write error: connection closed)
12:56:37 *** _glx_ has quit IRC (Write error: connection closed)
12:56:59 *** DorpsGek_vi has joined #openttd
13:09:43 <peter1138> Looks like -funroll-loops :p
13:10:30 <peter1138> (This will be slower to compile, the optimiser has to figure that out.)
13:12:49 *** kuhnovic has joined #openttd
13:12:49 <kuhnovic> How did you figure that out so quickly?
13:13:20 <kuhnovic> peter1138: We can let Xarick measure the difference π
13:14:41 <peter1138> static constexpr DiagDirection DIAGDIRECTIONS_ALL[] = {DIAGDIR_NE, DIAGDIR_SE, DIAGDIR_SW, DIAGDIR_NW};
13:15:02 <peter1138> ^ This is an alternative that compiles to the same code. Basically an array instead of a bitset.
13:15:05 <kuhnovic> Haha ok, I was doing the same, you just beat me to the punch π
13:16:46 <kuhnovic> Hmmz yeah that would essentially do the same thing. Would there be any benefit to having it as a enumbitset? It has some nice utility functions but I wonder if they are relevant for a set-of-all-values
13:17:35 <kuhnovic> (I did it again, I totally Cunningham's-lawed Peter)
13:20:17 <peter1138> Yeah, as a bitset you can use it with bitset operations.
13:29:02 *** Heiki has quit IRC (Quit: issued !quit command)
13:34:00 <LordAro> peter1138: it's like you're watching AoCO or something :D
13:37:15 <_glx_> ah crash log also says `"font": "crashed while gathering information"`
13:45:41 <peter1138> Survey crashes are fun, because they never occur if you abandon the game before a certain time :)
13:46:17 <_glx_> invalid pointer in `fc` ?
13:48:43 <LordAro> checking for null or at least asserting seems appropriate anyway
13:50:20 <peter1138> Yes, its needed. Other loops that iterate FontCache::Get() do :)
13:51:04 <peter1138> I'll fix it later, unless someone else wants to add `if (fc == nullptr) continue;` in the right place before.
13:51:35 <LordAro> some sort of "null" string in the survey would be more useful :p
13:54:08 <peter1138> They're dynamically loaded, nullptr just means a font was loaded there but now it's not.
14:22:34 <Heiki> test, please donβt read
14:30:45 <xarick> finally i can visualise the whole thing in action
14:30:45 <kuhnovic> I still have no idea what Xarick is trying to improve
14:32:19 <xarick> I'm making ScriptList faster!
14:32:30 <xarick> but i ended up in btree code
14:33:36 <xarick> for some reason i dont think my btree+ works like that
14:34:05 <xarick> i mean... copilot's generated code
14:34:55 <_glx_> it's easy to make ScriptList faster, or at least less impacting for openttd
14:44:50 <peter1138> _glx_, I like the suspendable stuff, but I can't think of a way to avoid the duplicate item processing, which could cause issues.
14:45:08 <peter1138> (Is it meant to be "illegal" to have side-effects?)
14:45:19 <_glx_> I think duplicate item processing is gone now
14:47:56 <_glx_> originally it suspended after failed valuation, now it does it on loop begin
14:56:07 *** Wormnest has joined #openttd
14:59:25 <xarick> finally it matches copilot's design
15:02:28 <peter1138> _glx_, hmm, needs a rebase.
15:05:05 <xarick> oops, it diverges on 10
15:14:54 <xarick> oh it's just that they store the wrong separator?
15:15:55 <xarick> probably the way they present the separators
15:16:02 <xarick> other than that, it's equal
15:22:11 *** SigHunter has joined #openttd
15:22:31 <xarick> erased key 4, doesn't match any
15:24:11 <xarick> I reduced to 4 leaves, they still have 5
15:43:23 *** Flygon has quit IRC (Quit: A toaster's basically a soldering iron designed to toast bread)
15:52:50 *** Borg has quit IRC (Quit: leaving)
17:13:18 <xarick> linear search beats binary search
17:17:07 <xarick> copilot says something about L1 cache
17:17:18 <peter1138> Depends on the number of elements, yes.
17:17:53 <xarick> of either 8 bytes or 2*8 bytes
17:32:42 <peter1138> I wonder how long RVG takes to creating its town list on a 4kx4k map... :D
17:35:54 <peter1138> Could it have checked that first? Dunno if there's a call to get the number.
17:37:06 <_glx_> there is GSTown.GetTownCount()
17:39:39 *** mmtunligit has joined #openttd
17:39:39 <mmtunligit> RVG was 1400 max i thought, did it get boosted somehow?
17:39:44 *** firepup650 has quit IRC (Quit: Going down with the ship)
17:41:01 *** firepup650 has joined #openttd
17:41:11 <peter1138> Hmm, seeing CPU blips, but I guess that's something else.
17:54:15 <xarick> oh wow, we're at 432 seconds
17:56:14 <xarick> i think i can make emplace faster
17:56:23 <xarick> now that I understand this slightly better
17:59:22 <peter1138> 3 fixes and 1 feature in the to-be-backported pile.
18:00:02 *** firepup650 has quit IRC (Ping timeout: 480 seconds)
18:01:14 *** firepup650 has joined #openttd
18:07:56 *** andythenorth has joined #openttd
18:07:56 <andythenorth> xarick should make nmlc faster
18:09:21 <mmtunligit> Sub-second compile times for horse?
18:16:21 <peter1138> I need to go and find a bike.
18:17:14 <LordAro> you don't have one immediately to hand?
18:33:13 <peter1138> It's been a while since I looked in the shed...
18:33:17 *** jfkuayue has joined #openttd
18:33:17 <jfkuayue> Notts is uncyclable.
18:34:05 *** notluke2578 has joined #openttd
18:34:05 <notluke2578> trams or bicycles, take your choosing
18:34:28 <peter1138> I mean, I have a trike, no problem.
18:34:57 <notluke2578> well you cant have a bicycle if theres trams in your city
18:35:00 <notluke2578> youll get stuck all the time
18:36:50 <jfkuayue> I canβt find the slope gradient
18:38:33 <jfkuayue> Buses going eastward struggle to accelerate
19:12:21 *** gelignite has joined #openttd
19:32:52 <andythenorth> Notts is flat, except where it's not
19:45:08 <xarick> index_in_parent costs memory though
20:01:12 *** rito12_51026 has joined #openttd
20:01:12 <rito12_51026> Is it possible to run OpenTTD's CI test on my own GitHub, do I have to pay for that?
20:03:40 <xarick> woah, it's kinda large
20:05:41 <xarick> teach me how to play tetris with this
20:10:30 <xarick> they're both 1576 bytes per node
20:22:23 <xarick> unique_ptr takes 8 bytes
20:54:23 <_jgr_> xarick: Leaf nodes have values but not children, and internal nodes have children but not values
20:55:06 <_jgr_> So having fields for both in all nodes is a waste of space
20:58:49 <xarick> trying to decipher what you said
20:59:25 <andythenorth> you need a sparser structure
20:59:29 <_jgr_> That wasn't quite what I said, but who knows?
20:59:46 <andythenorth> initing unused fields is unnecessary
21:00:19 <andythenorth> [I am just guessing, I have no actual knowledge]
21:01:29 <xarick> i need another structure just for defining children?
21:02:28 <_jgr_> The data structure that you're trying to implement has two types of nodes
21:04:32 <_jgr_> You will never have a node which has both values and children, so having a node structure with separate value and children arrays leads to your ndoes being very large, as you noted
21:06:19 *** johnfranklin has joined #openttd
21:18:55 <xarick> aha, mr copilot explained your point
21:20:53 <xarick> LeafNode + InternalNode, then std::variant stuff
21:35:54 <johnfranklin> what if copilot was not a Mr
21:57:40 *** Wolf01 has quit IRC (Quit: Once again the world is quick to bury me.)
22:08:37 *** johnfranklin has left #openttd
22:24:19 <xarick> oh boy, modern c++ is verbose
22:32:51 <xarick> std::get<std::holds_alternative<Leaf>(*this->root) ? Leaf : Internal>
22:34:20 <_jgr_> xarick: Consider std::visit
22:34:59 <_jgr_> Though the test is a bit redundant given you already have an is_leaf field
22:35:58 <xarick> by copilot suggestion, "I no longer require is_leaf"
22:37:18 <_jgr_> That is fine, the variant field serves the same purpose
22:39:28 <xarick> ``` bool empty() const noexcept
22:39:28 <xarick> assert(this->root != nullptr);
22:39:28 <xarick> return std::visit([](auto const &n) { return n.count == 0; }, *this->root);
22:40:35 <xarick> it used to be `return this->root->count == 0;`
22:41:16 <_jgr_> I don't follow why the count field needs to differ depending on the node type?
22:44:06 <xarick> can the root become an internal?
22:45:44 <xarick> nop, it can become internal
22:49:12 <xarick> this changes the logic quite a bit
22:59:45 *** locosage has joined #openttd
22:59:45 <locosage> is it still relevant that action7/9 can't skip action2?
23:09:42 <jfkuayue> ohno the sleep schedule
23:09:42 <jfkuayue> Saturday-Sunday: didn't sleep
23:09:42 <jfkuayue> Sunday-Monday: 2230-0900
23:09:42 <jfkuayue> Monday-Tuesday: 2200-0830
23:09:42 <jfkuayue> Tuesday-Wednesday: 0500-0930
continue to next day β΅