IRC logs for #openttd on OFTC at 2024-02-26
⏴ go to previous day
00:12:32 *** HerzogDeXtEr has quit IRC (Read error: Connection reset by peer)
00:52:28 *** Leopold_ has quit IRC (Remote host closed the connection)
00:57:46 *** Leopold_ has joined #openttd
02:02:35 *** Flygon has quit IRC (Read error: Connection reset by peer)
02:45:53 *** Leopold___ has joined #openttd
02:46:03 *** Leopold_ has quit IRC (Remote host closed the connection)
03:09:41 *** Leopold___ has quit IRC (Remote host closed the connection)
03:10:45 *** Leopold has joined #openttd
03:28:10 *** Wormnest has quit IRC (Quit: Leaving)
03:56:19 *** debdog has quit IRC (Ping timeout: 480 seconds)
03:58:50 *** gnu_jj_ has joined #openttd
04:02:00 *** gnu_jj has quit IRC (Ping timeout: 480 seconds)
04:24:26 *** D-HUND is now known as debdog
05:01:09 <ajmiles> Got the "undraw" functionality working so the chat message area can do its thing when drawing a dark transparent background behind the chat messages. Such a cursed feature!
05:13:13 <ajmiles> Tomorrow: Screenshots. And what should be the final function in the blitter that needs supporting CopyImageToBuffer
05:14:58 *** misterbungus has quit IRC (Quit: Logging off...)
05:35:30 *** Leopold has quit IRC (Remote host closed the connection)
05:35:31 *** Leopold has joined #openttd
05:45:29 *** Leopold has quit IRC (Remote host closed the connection)
05:49:40 *** Leopold has joined #openttd
05:55:10 *** Leopold has quit IRC (Remote host closed the connection)
05:58:27 *** Leopold has joined #openttd
06:13:24 *** keikoz has quit IRC (Ping timeout: 480 seconds)
07:13:21 <DorpsGek> - Add: summary for week 08 of 2024 (by OpenTTD Survey)
07:45:59 <andythenorth> wonder if there's a way to do code analysis on nml
07:46:35 <andythenorth> I want to know the largest switches (where 'largest' means branching to highest count of unique varact2 IDs)
07:47:07 <andythenorth> maybe nmlc could log this?
07:47:12 <merni> ajmiles: That feels very old-fashioned
07:47:42 <merni> the idea of "un-drawing"
08:13:07 <andythenorth> hmm, is it fine for the graphics chain to check about 7000 varact 2 every time it runs? (load a register value and compare it with vehicle ID)
08:13:49 <andythenorth> I need to reduce varact 2 ID consumption, so instead of trying to span directly to a varact 2 that might be very far away in the ID space, I can make a recursive switch on every vehicle, and just chain up through them
08:14:27 <andythenorth> basically a switch that says "this is not the switch you are looking for" most of the time
08:15:23 *** ahyangyi has joined #openttd
08:15:23 <ahyangyi> Can you solve the ID consumption problem by reordering things?
08:16:08 <andythenorth> that route has mostly been explored as far as it can
08:16:33 <andythenorth> the main consumer of varact 2 IDs is 'randomised vehicles'
08:17:12 <ahyangyi> Hmm, you could also duplicate some of these varact2s, which results in ligher varact2 consumption but bigger newgrfs
08:17:24 <andythenorth> and much slower compiles
08:18:09 <andythenorth> but it's a closing door anyway: duplicating the varact2s results in the same problem with 'randomised vehicles', but from a different direction
08:18:11 <ahyangyi> I just optimized my compile time from ~20min to ~6min
08:18:20 <andythenorth> ouch, that's insane
08:18:31 <andythenorth> any more than 30s and I can't work
08:19:53 <johnfranklin> What on earth is varaction 2? "switch" in NML?
08:20:58 <andythenorth> so Horse 'randomised' vehicles have an action 3 / varact 2 that
08:20:58 <andythenorth> * picks a random other vehicle from a list of candidates
08:20:58 <andythenorth> * chains to that vehicles graphics varact 2 chain
08:20:58 <andythenorth> * has to span across all of the vehicles in the candidate list, and all *their* varact 2s
08:20:58 <andythenorth> * the compile tries to optimise by placing randomisation candidates adjacent to the randomised vehicles
08:21:00 <andythenorth> * vehicles can be randomisation candidates for multiple 'randomised' vehicles
08:21:54 <andythenorth> current Horse, these randomised vehicles consume about 40 unique varact 2 IDs (from a limit of 256)
08:23:34 <ahyangyi> Yeah, I feel paying that 40 IDs is the sanest solution
08:24:25 <andythenorth> I don't have that much capital 😛
08:24:29 <andythenorth> the ID limit is being hit
08:24:32 <ahyangyi> If I feel mad I might consider organizing the candidates in binary trees
08:25:00 <ahyangyi> And wish good luck that I don't break these delicate constructs in the next refactor
08:26:47 <ahyangyi> ( I'm under the impression that Horse tries to be as backwards compatible as possible? )
08:30:13 <reldred> no he breaks save compat all the time 😛
08:30:41 <ahyangyi> Hmm, from a pure optimization (i.e. minimize maximum varact2 consumption) perspective, it seems not be a binary tree, but a tree where each i-th level node has (i+1) children; and still relies on assumptions about what candidate gets used in what randomised vehicle
08:30:44 <johnfranklin> I should move my fork collection to a single github repo
08:30:57 <johnfranklin> Is this a bad idea
08:31:10 <reldred> I keep everything in seperate repo's
08:31:34 <reldred> Makes it easier especially if my fork is of someone elses github project
08:32:12 <johnfranklin> Keep them separate
08:33:52 <LordAro> Why do you want to merge them?
08:34:26 <johnfranklin> I thought it would be convenient
08:34:46 <johnfranklin> And I have tons of unfinished craps
08:37:43 <peter1138> var act 2 extended byte?
08:38:00 <andythenorth> goes it I broke the limits *again*? 😛
08:38:47 <peter1138> Also, slightly relatedly, is the 255 industry tile layouts per GRF a problem?
08:39:07 <andythenorth> FIRS hasn't hit it yet
08:39:10 <reldred> disturbs me very sprites
08:39:31 <ahyangyi> johnfranklin: Creating "organizations" might be a solution
08:39:45 <andythenorth> FIRS has used 185 tile layouts so far
08:40:07 <peter1138> Still 70 off the limit then.
08:40:15 <andythenorth> in principle, tile layouts can be worked around
08:40:35 <andythenorth> already ~everybody reuses tiles that check position in industry layout
08:40:42 <peter1138> Yeah you can vary the layout by varactions.
08:40:47 <andythenorth> then also the industry ID could be checked
08:40:59 <andythenorth> 'one tile to rule them all'
08:41:17 <ahyangyi> Considering that the industry limit is even smaller, and the industry layout field has a rather small byte limit as well
08:41:19 <peter1138> What if to remove the limit is 1 line of code?
08:41:19 <andythenorth> it's only static props (animation stuff etc) that need a new layout
08:41:29 <andythenorth> goes it throw out LOC
08:42:23 <peter1138> What if the comment for the limit explicitly mentions "extending action3 with an extended byte later on"?
08:42:40 <andythenorth> these are the things I have seen before 😛
08:42:51 <andythenorth> oops, accidental HST
08:48:27 <ahyangyi> andythenorth: Yeah. My point is that, instead of:
08:48:29 <ahyangyi> (with a peak consumption of 5 IDs)
08:48:37 <ahyangyi> (with a peak consumption of 3 IDs)
08:51:43 <reldred> peter goes and throwed out limitation
08:52:42 <andythenorth> ahyangyi: yes, your layout is approximately the idea I had also
08:53:03 <andythenorth> it means that OpenTTD has to evaluate more each time the graphics are resolved
08:53:38 <andythenorth> I was going to do
08:53:53 <andythenorth> which means every vehicle gets a switch of this kind, but only one
08:53:59 <andythenorth> and all randomised candidates can reuse
08:54:27 <ahyangyi> yes, point is that the computational overhead of a fairly balanced tree is much smaller than a caterpillar-shaped tree, if it is ever a concern
08:54:28 <andythenorth> but it's insane in terms of graphics resolution
09:56:59 <xarick> good morning, gentleperson
09:58:09 <kuhnovic> So this is the percentage of times the low level pathfinder deviates from the high level path right?
10:06:00 <kuhnovic> And IIRC you need a way to determine if a ship is going around in circles or not. Just an idea: in the ship controller logic (ship_cmd.cpp) keep track of the last 10 water regions that the ship has been in. If there any duplicates then that's a ship going in circles. However, this will trigger false positives when the ship has a short route (say, 2 regions). A way to avoid this would be to clear
10:06:00 <kuhnovic> the list-of-last-regions every time a ship docks. The easiest way I can think of is to do this when the checkShipReverse method is called, it seems to be called every time a ship is about to leave the station.
10:18:26 <peter1138> > the core devs refuse to let the settings just be inherited from the last game you played
10:21:39 <xarick> a cache? I'm too noob for that
10:21:49 <reldred> It would be nice to be able to save the game settings like you can with grf loadouts.
10:22:14 <reldred> I'll make all sorts of tweaks during a running game and then forget what they are until the next game.
10:23:00 <peter1138> Yeah but we refuse to let that happen.
10:24:36 <peter1138> Settings presets would be nice, of course.
10:25:00 <peter1138> Although given the way the ini file works with different sections, and then presets also being sections, that could be... interesting.
10:25:36 <peter1138> I guess the `section.setting = value` format could work.
10:25:37 <LordAro> settings presets are the true replacements of difficulty settings, imo
10:25:52 <peter1138> Someone should implement that.
10:25:56 <peter1138> Then we can refuse it.
10:26:07 <LordAro> just wait until the next time truebrain is between jobs
10:27:16 <peter1138> He'll look at it for 5 minutes and then pop out a solution.
10:28:06 <reldred> Write it out to a seperate named file? Split newgrf presets out as well? Launch flag to pick a config file? Might be useful to server operators.
10:28:23 <reldred> But of course, you’d have to refuse it.
10:29:36 <peter1138> We should refuse that existing feature for sure 😄
10:30:11 <reldred> Oh how silly of me, ofcourse, yes, refuse that feature, remove from 14.0
10:36:56 <xarick> > [2024-02-26 10:36:12] dbg: [script:0] The savegame has an AI by the name 'DummyAI', version -1 which is no longer available.
10:36:56 <xarick> > [2024-02-26 10:36:12] dbg: [script:0] A random other AI will be loaded in its place.
10:36:56 <xarick> > [2024-02-26 10:36:12] dbg: [script:0] The savegame has an AI by the name 'DummyAI', version -1 which is no longer available.
10:36:56 <xarick> > [2024-02-26 10:36:12] dbg: [script:0] A random other AI will be loaded in its place.
10:36:56 <xarick> > [2024-02-26 10:36:23] dbg: [script:0] No suitable AI found, loading 'dummy' AI.
10:36:56 <xarick> > [2024-02-26 10:36:23] dbg: [script:0] No suitable AI found, loading 'dummy' AI.
10:49:54 <xarick> that's a lot of dumb vehicles, something's fishy...
10:50:20 <kuhnovic> xarick: You wrote your own depot-finding yapf implementation, but you are too noob for a cache? I'm not buying it 😛
10:52:10 <xarick> well, it's 2.83%, i guess that's believable then
10:52:24 <kuhnovic> Those vehicles aren't dumb btw, in fact they do the "smart" thing by deviating from the path suggested by the high level pathfinder. It's the high level pathfinder who did the dumb thing 😛
10:52:36 <andythenorth> peter1138: once again crowd-sourced therapy might seem applicable, player has persecution issues
10:55:26 <xarick> what if... the intermediate region is a dead end
10:55:37 <xarick> if that is hypothetically possible
10:56:53 <xarick> it follows the entire cache to the intermediate region? what exactly happens once there?
10:58:23 *** peter1139 has joined #openttd
11:00:36 <kuhnovic> A dead end means it's the final destination
11:00:51 <kuhnovic> Otherwise the high level PF wouldn't have handed it out
11:03:52 <xarick> in this example, it is rejecting the high lvl pf path, how it goes to region 5
11:04:04 <xarick> it takes the low lvl pf path instead
11:04:34 <xarick> it's still pointing to 5? the entire cache? or
11:05:46 <kuhnovic> It's indeed still pointing to 5. WIth my changes, the low level PF essentially says "I'll ignore the suggested high level path, I found a better one". But it still must end up back on the high level path.
11:06:43 <kuhnovic> And I think 5 is the only region that's on the high level path, so indeed the entire path except for the tiles that are in 5 will be cached.
11:08:06 <andythenorth> ach it's cold, my fingers are colf
11:08:10 <andythenorth> can't even type see
11:08:43 <xarick> i worry about the center tile thing
11:09:20 <xarick> that could lead to a different patch label, wouldn't it?
11:10:00 <kuhnovic> Here's an example of why taking shortcuts isn't "dumb". The suggested high level path is shown by the yellow numbers. You can see that it would clearly lead to a suboptimal path. The low level pathfinder picks a different path. The red part is the extra part that got cached after my fix in #12181.
11:10:01 <xarick> then again path would not be found in that case, very confusing
11:10:09 <merni> andythenorth: Use a heater!
11:11:05 <kuhnovic> Don't worry about the center tile thing. That's just some generic tile for the low level to aim for. It just needs to get to the last water region on the high level path. THe moment it reaches it then we're good.
11:11:39 <kuhnovic> The center tile doesn't have to be a valid water tile at all.
11:13:46 <kuhnovic> A better way to word it would be: the center tile is the tile to which the heuristic (the estimate) is calculated. And it's just an estimate, it's only there to nudge A* in the right direction.
11:14:48 <xarick> I see, it only cached 1 region
11:14:59 <xarick> then it picked up the high lvl pf again from 2 onwards?
11:17:39 <kuhnovic> So it just takes a shortcut, but make sure it ends up back on the high level path. Before my changes it wouldn't cache the red part, which would cause the ship to do a PF run starting from the region with the depot in it. And that might lead to a completely different high level path. Not likely, but it can happen. And if you are _really_ unlucky, you'll get a high level path that sends you exactly
11:17:39 <kuhnovic> back to the direction you came from, and then the ships go in circles.
11:21:03 <xarick> in AAAHogEx savegame, the ships are caching the entire path until it enters region 53, 151, that's a much larger red line
11:22:00 <xarick> they go via canal route on the right side
11:22:09 <kuhnovic> The savegame from the issue you mean? Yeah there they cache the path all the way to the last region. But the idea is the same: FU high level PF, I'm gonna take this shortcut!
11:22:42 <xarick> gotta do something for testing purposes, brb
11:22:58 <kuhnovic> Gotta do something for lunch purposes
11:23:02 <kuhnovic> Then back to actual work haha
11:23:47 <xarick> i wanna mess with that intermediate region a bit, see if it can make it fail or something, :p
11:37:52 <xarick> i can't seem to fool the low lvl pf :p
11:38:49 <kuhnovic> Do you want my patch for debug rendering?
11:39:06 <xarick> im opening a big sea to a dead end
11:39:19 <xarick> but it still takes the short canal route
11:40:07 <kuhnovic> A* makes things look kinda smart 😁
11:40:29 <kuhnovic> xarick: Need to dig it up from my pc, will do that soon.
11:43:06 <ahyangyi> xarick: Are DummyAI and 'dummy' AI the same?
11:45:15 <ahyangyi> Hmm, will I break things by uploading a fork of AAAHogEx, but named "DummyAI"?
11:47:00 <xarick> I uninstalled the AIs from my download folter
11:47:07 <xarick> that's why it switched to dummy ai
11:47:44 <xarick> that's an interesting question
11:48:11 <xarick> fallback to a real AI instead of DummyAI
11:48:17 <xarick> not sure if that would work
11:53:33 <kuhnovic> xarick: here you go. Warning: extremely janky. The debug drawing is reset every time the pathfinder is called, which means it works great with one ship, but will jump all over the place when you have multiple of them.
11:55:02 <kuhnovic> But at least you have the tools to do some basic debug drawing. Look in viewport_func.h for the functions, and water_regions.h contains a function to add an entire region patch to the debug drawing.
11:57:16 <xarick> 70000 ships might be a bad test
11:59:07 <xarick> hmm how to apply a diff...
11:59:15 <xarick> visual studio lacks this feature?=
12:00:06 <LordAro> visual studio is not a version control system
12:02:20 <xarick> okay, command line it is
12:12:52 <xarick> it's on a different label
12:12:55 <peter1138> That's a fun edge case.
12:13:15 <peter1138> High level pathfinder sees a very different cost, I guess.
12:13:40 <xarick> i wanted to fool the low lvl pf
12:13:47 <xarick> but seems that's not possibru
12:16:06 <peter1138> Add a cost for passing from one region to another? Sub-optimal paths...
12:18:36 <kuhnovic> The high level pathfinder doesn't look at the tile-level details, all it knows it whether it can go from one region to another. So to the high level PF both paths are equally good. The low level PF begs to differ.
12:19:12 <peter1138> I mean add a cost for crossing regions to the low level PF.
12:19:30 <peter1138> The high level path there is only 4 regions, but the low level path is 7 region.s
12:19:54 <peter1138> Not suggesting it's a good or anything like that, but could be interesting to try 🙂
12:20:55 <kuhnovic> That can backfire quite a bit. If you make a diagonal move and you just cut the corner, you've suddenly passed 2 regions, but only a couple of tiles
12:22:14 <peter1138> kuhnovic: Not sure I follow.
12:22:32 <kuhnovic> Difficult to explain without an example, one moment
12:22:35 <peter1138> johnfranklin: Missing rounded corners. Logo isn't the same (not sure if it's meant to be)
12:23:19 <johnfranklin> I want to contribute to 2TT Danish Trains
12:24:06 <johnfranklin> They are 1x zoom and 8bpp, and according to the source, their voxels are not so "accurate"
12:24:19 <peter1138> Also, very plain and flat, no greebling or seams, and no shading.
12:27:47 <kuhnovic> peter1138: Paint FTW. In this situation you'd add the penalty of crossing a region boundary twice, but the actual number of tiles traversed is small.
12:29:13 <kuhnovic> I don't want to dismiss your idea entirely, but in general penalties like that tend to correct some of the behavior, but also introduce additional weirdness in other cases. It can turn into whackamole quite quickly.
12:29:17 <peter1138> Right but the alternative also crossings boundaries twice?
12:29:39 <kuhnovic> Depends on what the alternative is 😉
12:30:51 <peter1138> And my view here is... maybe it isn't the most optimal path, but maybe it makes it match the highlevel PF a bit more.
12:31:20 <peter1138> And if the HL and LL PF match, then maybe the looping situation will be alleviated. Maybe.
12:31:29 <xarick> I tried to force this, I fail
12:31:40 <peter1138> But yeah, I am just guessing, and only considered it an interesting thing to try 🙂
12:32:14 <kuhnovic> It is a good suggestion, it might resolve the issue indeed
12:33:02 <xarick> there's more to this path than it seems...
12:33:10 <xarick> i'll look at this better after lunch
12:33:13 <kuhnovic> In general I found that the easiest thing to do is just "let the LLPF to it's thing". If that means it deviates from the HL path then that's fine too, because the HL path doesn't take the details of the terrain into account.
12:36:15 <kuhnovic> xarick: I don't see why the HL PF would ever put that region on the path, since it doesn't lead to the (intermediate) goal. Keep in mind that the path is actually a vector of water region _patches_ , not just water regions. So it would traverse the region you marked with the red circle, but not the water patch within that region. You see that in the debug drawing: the canal is marked in black,
12:36:15 <kuhnovic> meaning it's part of the HL path.
12:51:36 <kuhnovic> Just saw this on reddit, almost pissed myself
12:51:56 *** khanterwinters has joined #openttd
13:17:07 <talltyler> Stop making me hungry!
13:21:57 <peter1138> Especially the O and the D.
13:23:21 <merni> Somehow it looks a bit like a departure board
13:23:45 <merni> Well, in small size anyway; the font gives it away
13:30:05 <xarick> I was fixated on the center tile
13:31:59 <xarick> turns out, that center tile is actually not where the low lvl pf actually pf's to, SetIntermediateDestination is medling with estimated costs by using that center tile, but it is still looking for a path to the real destination
13:32:04 <xertov> hello guys is there anyone here who can help me with accessing translator files ?
13:32:32 <kuhnovic> xarick: Didn't I tell you exactly that a few hours ago 😛 ?
13:32:32 <xertov> i was accepted but i cant access the files ? idk i really want to help translating but im stuck now idk who to ask
13:32:43 <xarick> kuhnovic: yes, but I was blind at the time
13:33:23 <_glx_> xertov: log out then log in again ?
13:33:24 <LordAro> xertov: did you accept the subsequent invitation?
13:35:25 <_glx_> what's you github username and the requested language? (so I can check things)
13:37:07 <xertov> tbh im very new to open source stuff and i got an econ background not a programmer so really maybe im just slow to understand how this all works
13:37:23 <_glx_> ah yes expired invitation
13:38:12 <xertov> alright let me know when i should check it and where it ll go
13:38:19 <_glx_> you should get the invitation again
13:38:57 <_glx_> the "here" link in the screenshot
13:39:44 <_glx_> now log off then log on from translator and it should be fine
13:40:14 <johnfranklin> British food is famous for its… awfulness.
13:42:07 <xertov> ok nice i ll go read the manual and hopefully it will work fine
13:42:25 <peter1138> Urgh, std::span doesn't have const_iterator... silly.
13:45:52 <peter1138> Requires C++23 for that.
13:46:33 <xarick> `if (!path_found || node == nullptr) GetRandomFollowUpTrackdir(v, src_tile, trackdir, true);`
13:47:03 <xarick> shouldn't it be `return GetRandomFollowUpTrackdir`...
13:47:42 <kuhnovic> peter1138: Story of my life. At work we still use C++ 11...
13:48:17 <_glx_> openttd switched to c++20 not to long ago
13:48:23 <kuhnovic> I know, and I love it
13:48:45 <_glx_> and it was not fun on CI side 🙂
13:52:49 <kuhnovic> xarick: That looks wrong indeed. I guess it now returns whatever the Trackdir equivalent of 0 is.
13:53:05 <xarick> no wonder it was working 🙂
13:54:52 <xarick> it returns something from pf.GetBestNode()
13:55:13 <xarick> but know it's gonna be fixed 😛
13:55:22 <kuhnovic> I did fix that a while ago. Or well, I tried 😛
13:55:50 <kuhnovic> Are you going to create a PR ?
13:56:00 <xarick> erm... i prefer it broken 🙂
13:57:05 <kuhnovic> It doesn't actually return anything useful now. Just TRACKDIR_X_NE I guess, assuming that one has value 0
13:58:49 <xarick> nah it loops parents till the first one for the trackdir
13:59:43 <xarick> unless node is really nullptr
13:59:54 <xarick> the that should actually crash openttd?
14:00:19 <xarick> or transform nullptr to 0?
14:01:59 <xarick> ah, it would probably crash here, if node is nullptr: `const WaterRegionPatchDesc end_water_patch = GetWaterRegionPatchInfo(node->GetTile());`
14:02:12 <xarick> seems that it was never nullptr so far
14:04:07 <peter1138> Function returning "auto" works, but is so dirty 😦
14:08:33 <xarick> doesn't look like it's even possible to have node being nullptr
14:08:40 <xarick> the origin tile is added
14:09:13 <xarick> Yapf().PfSetStartupNodes();
14:15:53 <andythenorth> I should shard my switches eh
14:15:53 <xarick> need that savegame where my ships become lost
14:25:05 <kuhnovic> xarick: Doesn't hurt to check either
14:26:05 <xarick> but there's still 2 tracks
14:29:00 <xarick> TRACKDIR_LEFT_N is the tile the ship is at
14:30:17 <xarick> he's gonna turn 90 degrees to the left
14:30:50 <xarick> what happens when it reaches the end
14:31:19 <xarick> oh, it did a reverse call
14:31:34 <xarick> then the path was no longer lost
14:32:05 <xarick> let me block the ship entirely in 1 tile
14:33:25 <xarick> ChooseShipTrack isn't being called
14:33:51 <xarick> seems to be calling CheckShipReverse
14:34:49 <kuhnovic> The ship controller is quite an enigma
14:37:26 <xarick> woah, your CheckShipReverse is kinda... bugged
14:37:36 <xarick> didn't pay much attention to it till now
14:38:04 <xarick> if there is no path, you return false all the time
14:39:00 <xarick> in that image, there is no path, so it returns false, meaning do not reverse, hmm... maybe that's okay...
14:39:53 <kuhnovic> CheckShipReverse is a bit strange yes. But it was already doing this before I added the regions.
14:40:08 <xarick> seems to handle invalid trackdir
14:40:32 <kuhnovic> It's essentially doing "try to find a path... no luck? Turn around an try again"
14:41:07 <xarick> forgive me, I guess it's fine afterall
14:41:39 <kuhnovic> Hehe, no worries. It took me a while to understand it.
14:43:09 <xarick> if (!pf.FindPath(v)) return false; maybe it should also set INVALID_TRACKDIR before returning false?
14:44:04 <xarick> maybe it's fine, I'm still learning how this works
14:53:43 <xarick> ah, I'm starting to understand
14:58:53 <xarick> it's when a ship collides with terrain head on
14:59:31 <xarick> but this reverse is special
14:59:36 <xarick> it's not a 180 degrees
15:00:22 <xarick> it can be from 90 to 180
15:04:13 <_glx_> yes the reverse tries possible exits
15:05:29 <xarick> imagine someone blocked a ship like this
15:05:55 <xarick> without the special reverse, it's stuck going left, 180 degrees, going right, 180 degrees, going left
15:06:15 <xarick> with the special reverse, it can unstuck from there
15:07:06 <xarick> it can move towards south, or towards southeast, not just east
15:07:39 <xarick> the highlevel pathfinder CheckShipReverse doesn't seem to care about this situation 😦
15:10:14 *** Wormnest has joined #openttd
15:10:49 *** HerzogDeXtEr has joined #openttd
15:11:19 <xarick> I need a more drastic scenario where the highlvlpf actually fails
15:14:48 <xarick> dang, it's only doing 180 degrees
15:15:02 <xarick> glx, do you remember when you implemeted this feature? is it 13.4?
15:15:14 <xarick> cus if it is, it's not working there either
15:15:36 <_glx_> It's older than 13 I think
15:16:27 <_glx_> Anyway there's no path in this case
15:24:37 <kuhnovic> IIRC it's the shipController() function that does this. Somewhere in the giant tree of if statements 😛
15:28:44 <xarick> it's again related to path not found but yet there's still some tracks found
15:29:42 <xarick> let me look at what NPF do
15:30:56 <xarick> NPF also stuck to 180 degrees
15:37:05 <kuhnovic> Are you fixing an actual reproducable issue, or are you fixing something that you _think_ is an issue :P?
15:38:24 <xarick> fixing something I think is an issue
15:39:09 <merni> Why is it an issue that an unreachable buoy is unreachable?
15:40:31 <xarick> I'm solving the reversing options being stuck to only 180 degrees
15:40:37 <merni> And why is that an issue?
15:41:06 <merni> Also, could someone please review 12139? I am noticing the issue it fixes while playing now and it rather irritates me :p
15:41:19 <xarick> it's lost, but in a worse state than just lost
15:41:49 <xarick> I wanna free it so it can continue to be lost, but not stuck
15:54:17 <_glx_> lost and stuck is fine for me
15:55:00 <kuhnovic> Does it get unstuck it it's no longer lost (e.g. the destination can be reached)
15:55:19 <_glx_> if you press "skip" it will unstuck I think
15:56:05 <_glx_> and I guess it will too if you free the buoy
15:56:49 <_glx_> it's clearly not a regular situation
15:58:07 <_glx_> a stuck lost ship should also be easier to notice from player POV
16:04:42 <xertov> is this how i should do it ?
16:05:22 <xertov> whatever is in {} i just leave it as it is right ?
16:07:14 <xarick> eww NPF ... different beast
16:07:29 <merni> xertov: Most of the time yes
16:16:00 <talltyler> Do we need to keep NPF around for savegame compatibility?
16:16:49 <_glx_> oh we can convert the setting (we did when removing OPF, not sure about the name)
16:22:53 <xertov> _glx_: ok nice , now what about the error: string is missing ?
16:23:00 <xertov> am i doing smething wrong ?
16:23:03 <merni> > This incorrectly blocks a company with a poor local authority rating from removing a stop, without bulldozing the road.
16:23:03 <merni> Hm, does it? I need to test that
16:23:14 <merni> I thought this was only for using the bomb tool
16:23:19 <_glx_> xertov: just means it's not translated yet
16:23:36 <xertov> _glx_: oh i see , also does someone fact check the translations ?
16:23:54 <merni> Other translators can change them if they spot something wrong by chance
16:24:00 <merni> But there is no review or approval as such
16:24:17 <_glx_> you can check your work in nightly builds
16:24:36 <xertov> i ll be playing openttd with greek on then just in case i find something sus
16:24:59 <xarick> hmm, the NPF unstucking isn't that smart...
16:25:09 <xertov> although i am probably am the only greek person that will play openttd
16:25:29 <xertov> but translating a bit is a small price to pay for the new shipfinding mechanic
16:25:40 <merni> the fact that the greek langfile exists is proof that someone else did :p
16:26:34 <xertov> someone may have done it and used google translate idk
16:26:42 <xertov> or i guess they could really be greek
16:26:59 <merni> I think openttd has been around for longer than google translate, not sure of the age of the first greek translation though :p
16:27:15 <xertov> some words feel strange to translate
16:27:45 <xertov> it feels weird to translate status
16:27:59 <merni> You're not translating "status: missing"
16:28:06 <merni> That just means that string is missing in the language
16:28:16 <merni> You have to translate only the bold part
16:28:40 <merni> Though there are probably instances of "status" in existing strings
16:28:57 <merni> It usually helps to see what other translators have done, to maintain consistency
16:30:39 <kuhnovic> The surveys definitely show a very strong preference for YAPF over NPF 😛
16:31:39 <_jgr_> NPF has no advantages ovr YAPF so it's somethign that you'll only see in old saves
16:31:47 <xertov> merni: how can i do that ?
16:32:24 <merni> xertov: There should be a list of similar strings at the bottom of the translation page
16:32:36 <merni> You can also see the list of all the strings
16:33:13 <xertov> merni: there is nothing here though
16:33:13 <xertov> and naaah how do i translate this ?
16:33:44 <xertov> do i just put [{STRING}, {STRING}]?
16:34:05 <merni> I have no idea what that string is used for, probably yes
16:36:26 <xertov> ok i ll just do this everytime then
16:41:32 <merni> Well, it seems to be mathematical interval notation; does it even need to be translatable?
16:41:44 <_glx_> string names give some int on where it's used, but sometimes it's not easy to know where
16:42:22 <xertov> but it thought it doesnt matter what is used where
16:42:35 <xertov> im translating everything i get after all
16:42:55 <xertov> its just whenever i see something with just strings and nothing else should i just leave it or copy paste the string back
16:43:02 <_glx_> merni: don't forget RTL vs LTR, sometimes they need to change things
16:44:09 <_glx_> and in this case different strings are possible, could be interval, or just a number, or just a string
16:45:07 <_glx_> depends on parameter info
16:48:47 <merni> merni: I could probably handle this with a `keep_road` param like stations have a `keep_rail`
16:49:03 <merni> Anyway I should probably finish the code-style stuff first
16:53:27 <_zephyris> merni: Oof, didn't realise that was the extent of the bug!
16:54:49 <xertov> should i correct others translations?
16:54:55 <xertov> or do i need permission
16:55:53 <wensimehrp> _glx_: I made it using the Unicode comma... Maybe I should consider changing it back
16:56:16 <merni> _zephyris: Well, no, that would just be a little more pleasing than keeping the check in the switch like it was
16:56:42 <_zephyris> wensimehrp: Stick to ascii when possible 🙂 Though, I guess if it's a CJK translation then not an issue
16:57:04 <merni> The fix is basically mostly in `CanRemoveRoadWithStop`
16:57:07 <peter1138> What is "the Unicode comma"?
16:57:26 <wensimehrp> Why cannot the world use a united language system...
16:57:26 <wensimehrp> ,- unicode, used in CJK languages
16:57:29 <_zephyris> Probably the fixed width
16:57:36 <peter1138> Unicode covers ASCII, so the unicode for comma is U+002C.
16:57:46 <xarick> NPF can be removed but AyStar is still being used by river generation
16:57:47 <merni> wensimehrp: yeah, that's just a full-width comma
16:58:02 <merni> because CJK people want commas to take up the same square as a character
16:58:02 <wensimehrp> iirc full width commas are not in ascii
16:58:09 <peter1138> Ah so you used a unicode full-width comma. Not a unicode comma.
16:58:22 <_zephyris> Well, if you're being _accurate_ yes
16:58:28 <_zephyris> But colloquially I understood!
16:58:36 <wensimehrp> You're right, I dropped the *full-width* there
16:58:44 <_zephyris> Hmm, RC-1 shows the Serbian translation problem for the es accent...
16:59:56 <peter1138> Serbian uses the combining accent, yes.
17:00:58 <peter1138> Maybe you updated the font to support that, U+0301 🙂
17:01:22 <xarick> wasn't there a PR open for removing NPF already?
17:01:23 <_zephyris> I've got the medium font with combing accents.
17:01:43 <_zephyris> It's just _a lot_ of leg work to set it all up - I'll hopefully get to the other fonts soon
17:02:30 <peter1138> Chuvash (whatever that is) uses Ҫ (U+04AA) which is also missing.
17:04:43 <_zephyris> peter1138: Really? Which translation is that?
17:05:08 <_zephyris> Should be done in the other fonts too...
17:05:32 <wensimehrp> merni: Languages are strange...
17:05:32 <wensimehrp> For example, Simplified Chinese (maybe Korean and Traditional Chinese also) requires spaces between numbers/non-CJK and CJK characters, but Japanese don't.
17:05:32 <wensimehrp> Japanese has half-width katakanas and the other two languages don't similar characters.
17:05:32 <wensimehrp> Traditional Chinese requires "traditional" punctuations while other CJK languages uses the more "western" punctuations.
17:05:32 <wensimehrp> All of those languages could be formatted from either left to right, from right to left, or from the top to the bottom.
17:06:24 <wensimehrp> Sometimes you will get results like this if you are using a CJK IME。To me,This is very annoying。
17:06:30 <peter1138> Ah it's missing from the small font, not the normal font.
17:06:44 <_zephyris> peter1138: Cool, that's a simpler fix
17:08:27 <_zephyris> Added that to the bug
17:35:15 <xarick> all ships want to go to that buoy
17:35:39 <xarick> there is no path, but... should the ships unstuck?
17:37:05 <kuhnovic> Stuck or not, they won't reach the destination. The user has to do something to change that. The moment that happens the ships will get unstuck and go to their destination (right?)
17:37:25 <xarick> yes, though NPF is a little bit... edgy
17:37:47 <kuhnovic> I would focus on YAPF
17:40:50 <xarick> all ships unstucked, except those 2, with NPF
17:41:15 <xarick> let me test YAPF just for confirmation
17:41:55 <peter1138> NPF and YAPF are not expected to behave the same.
17:44:00 <xarick> oh I was testing 13.4 🙂
17:51:06 <xarick> except NPF, same issue
17:52:35 <merni> well, technically it is feature freeze, right
17:52:47 <merni> so would that be included for 14?
17:54:30 <merni> 100% for trains, 99.7% for RV
17:54:49 *** gelignite has joined #openttd
18:01:23 <andythenorth> hmm definitely need to shard switches 😛 ` nmlc info: Concurrent spritegroups: 252/256 ("generated/iron-horse.nml", line 615545)`
18:01:35 <andythenorth> quite a busy work time though
18:03:02 *** michi_cc_ has joined #openttd
18:03:17 <_glx_> I hope your generator does "all results" then the switch to select results
18:03:51 <andythenorth> it might not in some cases
18:04:16 <andythenorth> sometimes it does some fancy stuff to try and fold down all similar results
18:05:06 <merni> Slightly different approach.
18:05:39 <_glx_> a way could be to have the last switch splitting on GB(id, 4, 4), then you have 16 switches on GB(id, 0, 4)
18:06:01 <andythenorth> ^^ the one in the gist, I can shard on variant ID
18:06:19 <andythenorth> generally I've tried to consolidate switches, as it's a faster compile
18:06:24 <andythenorth> but the limit is hit 😛
18:07:13 *** gelignite has quit IRC (charon.oftc.net helix.oftc.net)
18:07:13 *** HerzogDeXtEr has quit IRC (charon.oftc.net helix.oftc.net)
18:07:13 *** Ox7C5 has quit IRC (charon.oftc.net helix.oftc.net)
18:07:13 *** peter1139 has quit IRC (charon.oftc.net helix.oftc.net)
18:07:13 *** kuhnovic has quit IRC (charon.oftc.net helix.oftc.net)
18:07:13 *** _rei4122 has quit IRC (charon.oftc.net helix.oftc.net)
18:07:13 *** jinks has quit IRC (charon.oftc.net helix.oftc.net)
18:07:13 *** michi_cc has quit IRC (charon.oftc.net helix.oftc.net)
18:07:13 *** Deep3D has quit IRC (charon.oftc.net helix.oftc.net)
18:07:13 *** azubieta608226663 has quit IRC (charon.oftc.net helix.oftc.net)
18:07:13 *** Alkel_U3 has quit IRC (charon.oftc.net helix.oftc.net)
18:07:13 *** rain[m]1 has quit IRC (charon.oftc.net helix.oftc.net)
18:07:13 *** temeo[m] has quit IRC (charon.oftc.net helix.oftc.net)
18:07:13 *** audunm[m] has quit IRC (charon.oftc.net helix.oftc.net)
18:07:13 *** patricia[m]1 has quit IRC (charon.oftc.net helix.oftc.net)
18:07:13 *** playback2396[m] has quit IRC (charon.oftc.net helix.oftc.net)
18:07:13 *** yubvin[m] has quit IRC (charon.oftc.net helix.oftc.net)
18:07:13 *** einar[m] has quit IRC (charon.oftc.net helix.oftc.net)
18:07:13 *** calbasi[m]1 has quit IRC (charon.oftc.net helix.oftc.net)
18:07:13 *** jeeg[m] has quit IRC (charon.oftc.net helix.oftc.net)
18:07:13 *** cjmonagle[m] has quit IRC (charon.oftc.net helix.oftc.net)
18:07:13 *** karl[m]12 has quit IRC (charon.oftc.net helix.oftc.net)
18:07:13 *** Farrokh[m] has quit IRC (charon.oftc.net helix.oftc.net)
18:07:13 *** emilyd[m] has quit IRC (charon.oftc.net helix.oftc.net)
18:07:13 *** giords[m] has quit IRC (charon.oftc.net helix.oftc.net)
18:07:13 *** andythenorth[m] has quit IRC (charon.oftc.net helix.oftc.net)
18:07:13 *** nolep[m] has quit IRC (charon.oftc.net helix.oftc.net)
18:07:13 *** Timberwolf has quit IRC (charon.oftc.net helix.oftc.net)
18:07:13 *** KenjiE20 has quit IRC (charon.oftc.net helix.oftc.net)
18:07:13 *** Timberwo1f has joined #openttd
18:09:22 <_glx_> and all `chronos_ss_doors_open_position_` are spritesets or other switches ?
18:11:07 *** gelignite has joined #openttd
18:11:07 *** HerzogDeXtEr has joined #openttd
18:11:07 *** peter1139 has joined #openttd
18:11:07 *** kuhnovic has joined #openttd
18:11:07 *** _rei4122 has joined #openttd
18:11:07 *** azubieta608226663 has joined #openttd
18:11:07 *** rain[m]1 has joined #openttd
18:11:07 *** temeo[m] has joined #openttd
18:11:07 *** audunm[m] has joined #openttd
18:11:07 *** patricia[m]1 has joined #openttd
18:11:07 *** playback2396[m] has joined #openttd
18:11:07 *** yubvin[m] has joined #openttd
18:11:07 *** einar[m] has joined #openttd
18:11:07 *** calbasi[m]1 has joined #openttd
18:11:07 *** jeeg[m] has joined #openttd
18:11:07 *** cjmonagle[m] has joined #openttd
18:11:07 *** karl[m]12 has joined #openttd
18:11:07 *** Farrokh[m] has joined #openttd
18:11:07 *** emilyd[m] has joined #openttd
18:11:07 *** giords[m] has joined #openttd
18:11:07 *** andythenorth[m] has joined #openttd
18:11:07 *** nolep[m] has joined #openttd
18:11:07 *** KenjiE20 has joined #openttd
18:11:07 <andythenorth> direct references to spritesets
18:11:22 <_glx_> so they probably don't eat act2 IDs
18:11:53 <andythenorth> they shouldn't, but interestingly changing the contents of this switch was triggering the limit
18:12:01 <andythenorth> I need to re-test that to confirm though
18:12:31 <_glx_> oh they are spritgroups maybe
18:12:53 <_jgr_> They need to use an action 2 ID otherwise there's no way to reference them from a varaction 2
18:13:01 <andythenorth> ` spriteset(chronos_ss_doors_closed_position_variant_0_base_livery_5, "generated/graphics/iron-horse/chronos.png") {
18:13:01 <andythenorth> spriteset_template_asymmetric_unreversed_8_8_unflipped(310,NOANIM)
18:13:33 <_glx_> yeah that generates action1 and an action2
18:13:59 <_jgr_> Presumably you could get rid of a lot of these switches by just using register indexing instead?
18:14:03 <andythenorth> confirmed, increasing the number of variants handled by this switch triggers the limit
18:14:30 <andythenorth> _jgr_: possibly, what would that look like? 🙂
18:15:12 <_glx_> 310 depends on variant and livery ?
18:15:32 <andythenorth> and door state (loading in station or not)
18:15:54 <_glx_> maybe a template with these args then
18:17:09 <merni> Can the Emscripten CI and Preview be merged in some way? Seems rather a waste to have both
18:17:34 <andythenorth> _glx_: spriteset template? 🙂
18:17:47 <_jgr_> andythenorth: Might be that that only works for objects and similar, looking again at it
18:17:51 *** HerzogDeXtEr1 has joined #openttd
18:18:02 *** azubieta608226663 has quit IRC (Read error: Connection reset by peer)
18:18:02 *** gelignite has quit IRC (Read error: Connection reset by peer)
18:18:02 *** jinks has quit IRC (Read error: Connection reset by peer)
18:18:02 *** jinks_ is now known as jinks
18:18:10 *** Alkel_U3 has joined #openttd
18:18:21 *** azubieta608226663 has joined #openttd
18:19:01 <_glx_> merni: preview is optional, so we like to see emscripten is not broken even without previews
18:19:11 *** Deep3D has quit IRC (Read error: Connection reset by peer)
18:19:17 *** Deep3D- has joined #openttd
18:19:25 <merni> But where preview does exist, can it build on top of emscripten in some way?
18:19:40 <merni> I guess it's just more load on github's servers, doesn't really matter :p
18:20:33 <_glx_> and emscripten is not the worse, we also have MinGW 😉
18:21:34 <merni> Local Authority Attitude is still an advanced setting...?
18:22:02 *** jeeg[m] has quit IRC (Ping timeout: 480 seconds)
18:22:37 *** HerzogDeXtEr has quit IRC (Ping timeout: 480 seconds)
18:22:37 <merni> TallTylerviaGitHub: talltyler unbroke it :)
18:24:52 *** jeeg[m] has joined #openttd
18:29:59 <andythenorth> well I can just split the switch, although there is a balance where splitting them also breaches the ID limit 🙂
18:30:12 <andythenorth> because more IDs have to be spanned across the switches in-between
18:31:10 <_glx_> oh actually there are more broken strings in simpleton's city builder, many have an extra {STRING} to please the {STRING2} without actually feeding the {STRING}
18:36:15 <_glx_> well the split should be in the form "X results" "switch for them" "Y results" "switch for them" ... "switch for the switches"
18:38:13 <_glx_> each intermediate switches should be able to reuse IDs
18:38:20 <peter1138> So it was always broken but validation makes it known.
18:46:30 <xarick> explain me something, how can there be more roadstops than stations?
18:47:07 *** j_n has quit IRC (Quit: User went offline on Discord a while ago)
18:47:59 <xarick> this is a savegame from ChooChoo
18:48:59 <_glx_> xarick: one station can have many roadstops
18:49:15 <frosch123> lazy dorpsgek... i thought eints was late with committing, but dorpsgek just did not announce it
18:53:59 <frosch123> Eddi|zuHause: since you are the only one reading german forums. i now defined "Zyklus" as translation for the no-dl "period". previous translators randomly used either "Quartal" or "Zeitraum", which both made no sense
18:55:13 <Eddi|zuHause> i haven't actually ever looked at that patch
18:55:53 <Eddi|zuHause> i'm sure people will complain about it :p
18:56:30 <frosch123> i never start ottd in german, most translations are weird. but this one just annoyed me too much :p
18:57:11 <frosch123> for example "Wanduhr-basierte Zeit" is just wtf
18:59:55 <xarick> wall clock based time?
19:10:05 <DorpsGek> - Update: Translations from eints (by translators)
19:13:47 <andythenorth> would 64k action2 IDs be enough?
19:15:59 <andythenorth> it has taken 1m LOC to hit the limit 😛
19:16:49 <andythenorth> it's 50 MB of nml, and the nml step takes 16 seconds to run
19:17:12 <andythenorth> I can't imagine anyone else having the patience to exceeed it 😛
19:17:16 <frosch123> you can hit it in 512 LOC, if you do it clever
19:17:29 <andythenorth> probably one line of python templating? 😛
19:17:55 <frosch123> probably NML should learn to reorder them
19:18:02 <frosch123> or we should switch to WASM
19:18:13 <frosch123> or hell freezes over
19:18:17 <frosch123> whatever happens faster
19:20:11 <Eddi|zuHause> andythenorth: if you raise the limit, people don't care about it anymore, and potentially reach it faster, then have no knowledgebase/tools left to avoid it.
19:20:36 <peter1138> If you raise the limit, does it need to be avoided?
19:22:40 <andythenorth> frosch123: how many temp storages do we have? 😛
19:22:45 *** Deep3D- is now known as Deep3D
19:22:57 *** Deep3D is now known as Deep3D-
19:23:00 <andythenorth> switches can select more switches, using a temp storage
19:23:12 <andythenorth> in fact one is enough eh
19:23:33 <andythenorth> ok so I could insert pseudo (routing) switches periodically to the file
19:23:34 <Eddi|zuHause> peter1138: not for a while.
19:24:02 <andythenorth> register is dword?
19:24:22 <andythenorth> signed or unsigned? Probably doesn't matter
19:24:29 <andythenorth> ok 4294967295 switches then 😛
19:24:35 <Eddi|zuHause> but i don't think you can use register as a pointer to an action2
19:24:50 <andythenorth> challenge accepted 😛
19:24:54 <_jgr_> No, but you can use it as the argument to switch which fans out to those switches
19:25:42 <Eddi|zuHause> but i think a switch can only have 255 branches :p
19:25:51 <frosch123> andy invented int 22
19:26:14 <frosch123> oh, bad memory, it's int 21
19:27:00 <peter1138> ExtendedByte ranges?
19:30:27 <andythenorth> DOS Extended Mode?
19:33:15 <andythenorth> I think the largest single cause of varact2 ID exhaustion is 'randomised vehicles'
19:33:16 <frosch123> int21 may actually be a good fit for andy. define all procedures at start, add a dispatcher switch after them, which calls a function specified in some TEMP reg
19:34:28 <andythenorth> randomised vehicles should work with a "does X live here?" switch per vehicle
19:34:36 <andythenorth> then chain to same switch for next vehicle
19:35:20 <andythenorth> currently the varact2 ID consumption is roughly linear with the number of randomisable vehicles
19:36:50 <LordAro> so i've built my new computer
19:37:02 <LordAro> it needs a second atx 12v cable
19:37:08 <LordAro> guess what i don't have
19:37:39 <frosch123> need a graphics card for the cold winter?
19:38:04 <LordAro> at least, the DRAM indicator light is illuminated, which i'm very much hoping is just due to the missing power cable
19:38:15 * andythenorth horrible IDs about putting action 1 etc together
19:38:22 <andythenorth> then switching into them by blocks of ID
19:38:31 <LordAro> amazon stocks suitable cables, luckily
19:39:21 <LordAro> (at least i had the foresight to buy a modular PSU 8 years ago)
19:39:24 <peter1138> Delivery by 10pm right?
19:40:52 <LordAro> peter1138: alas, just tomorrow
19:41:01 <LordAro> i'll have to go into the office :(
19:41:24 <frosch123> you have an 8 year old PSU?
19:43:20 <frosch123> hmm, i don't remember when mine blew up the last time
19:43:37 <LordAro> corsair is pretty solid
19:44:18 <LordAro> i've got a 7 year old seasonic in the server, they're even more solid
19:45:33 <frosch123> nevermind, i think it was 10 when it blew up
19:45:40 <frosch123> so you have still 2 years left
19:53:03 <talltyler> merni: Thanks, I found one code style nitpick but otherwise I tested it and it works. I’ll approve once you fix that last thing. 😄
20:02:40 <xarick> Radeon RX 7900 GRE, should I buy?
20:03:20 <xarick> gonna wait for prices first
20:04:25 <belajalilija> Yeah you’ll want the latest hardware to play OpenTTD
20:05:03 <xarick> I wonder how good will PoE 2 be
20:08:09 <xarick> I won't buy anything from Nvidia until they decide to use a non melting connector
20:08:59 <xarick> or until some of their partners uses PCIe 8pin connectors
20:17:27 *** geli has quit IRC (Quit: Stay safe!)
20:18:07 <xarick> dang I wish I was rich
20:20:08 <xarick> gonna wait for PoE 2 release, then I'll decide
20:36:29 <xarick> i wanna test my stuff with graphics
20:38:59 <kuhnovic> xarick: Is this #8022 rearing its ugly head again?
20:40:18 <_glx_> nice random selection of chunk
20:40:44 <_glx_> it seems to switch from one to another
20:41:08 <kuhnovic> But is it going for a service?
20:41:39 <xarick> yes, it wants to, but then becomes out of range
20:42:01 <xarick> you have a fix, I'm not testing the fix atm
20:43:08 <kuhnovic> Ok that makes sense. For I moment I was afraid it was the pathfinder's fault.
20:44:08 <_glx_> basically distance increases when following the river shape
20:44:39 <_glx_> no it's fine, just suboptimal
20:46:21 <xarick> how do I draw tiles covered by a distance from the depot? I'm bad at drawing
20:46:44 <xarick> I wanted to showcase the range
20:47:33 <xarick> maybe I'll do it via GS
21:03:16 <andythenorth> sharded one switch
21:03:32 <andythenorth> ID use fell from 252 to 209
21:03:46 <andythenorth> compile time increased by about 5s
21:03:59 <andythenorth> or 18% over base
21:04:13 <andythenorth> nml file size only 0.2 MB larger
21:05:07 <andythenorth> actually the compile times are not very stable, not enough runs
21:15:14 <xarick> i just tried to fullscreen... it failed
21:15:29 <xarick> i set 1920x1080, and it didn't let me
21:17:21 <xarick> anyways, here's something
21:17:40 <xarick> max bird distance where the depot is in range
21:20:29 <truebrain> "works as expected" 😄
21:20:36 <kuhnovic> Clearly shows why the ship loses track of its depot
21:23:12 <_jgr_> truebrain: I found this all a bit confusing but I'm happy to just leave it if there isn't actually an issue
21:23:33 <truebrain> as I wrote, there is a difference between "works as intended" vs "works as wanted" 🙂
21:23:58 <truebrain> not being able to change deviation is just a bit weird
21:24:18 <truebrain> but I also wouldn't know how to put it in the interface, I have to admit
21:24:55 <truebrain> maybe the whole deviation is just a big mistake 🙂 The idea is nice .. but that is about as far as I am willing to go 😛
21:25:04 <_jgr_> kuhnovic: Seems like it needs some hysteresis added
21:26:16 <kuhnovic> I have a fix where the ship stops looking for a depot as soon as it has found one. But that's going to be problematic if the path suddenly gets blocked due to terraforming.
21:27:24 <xarick> I also have a fix, but nobody likes mine 🙂
21:28:35 <xarick> with my fix, in this specific example, not enough range to reach depot
21:29:23 <andythenorth> all is not well 😛
21:30:12 <xarick> how do i make yapf print stuff on the screen? it has some debug stuff
21:31:33 <andythenorth> could we make grfcodec faster? 😛
21:31:45 <andythenorth> multi-threaded realsprite encode maybe? 😛
21:33:09 <kuhnovic> xarick: In my debug drawing patch there is a line in yapf.hpp or yapf_base.hpp that you can incomment, that adds some drawing.
21:34:00 <xarick> I see, gonna try adapt it to my stuff
21:40:41 <truebrain> meh; can't reproduce #12120, and I also can't find anywhere what exception it is that triggered
21:41:33 <_glx_> yeah this NOT_REACHED makes it hard 🙂
21:41:44 <truebrain> not really sure why it is there, I have to admit 😛
21:42:23 <_glx_> and we don't use that many exceptions (except in script code)
21:42:39 <_glx_> could be coming from fmt
21:42:47 <truebrain> the OS also throws exceptions, I guess
21:42:51 <_glx_> this lib also use exceptions
21:45:35 <truebrain> hmm .. there are non-default fonts used for the bootstrap
21:45:39 <truebrain> maybe that has something to do with it?
21:45:50 <truebrain> I can't even test that 😄
21:47:09 <_glx_> there's no sprite font in bootstrap anyway, so it relies on OS
21:47:29 <truebrain> yeah, but in this case a Japanese font is loaded
21:47:36 <truebrain> not sure how that influences bootstrap
21:48:09 <_glx_> bootstrap texts are translated
21:48:24 <truebrain> so in combination with `fmt`, that might cause an issue?
21:49:10 <_glx_> without knowing the exact crash location
21:49:29 <truebrain> but I also don't have such fonts to test that out
21:50:31 <andythenorth> ` nmlc info: Concurrent spritegroups: 209/256 ("generated/iron-horse.nml", line 615978)` enough headroom? Or I optimise more switches? 😛
21:50:32 <SigHunter> is there a way to get budget window further back than current year +2? also vehicles more than last+current?
21:51:42 <_glx_> wondering if the 0KB png might be a hint too
21:51:52 <truebrain> and the weird crashdump filename
21:53:12 <truebrain> did find an unrelated bug because of that crash 🙂
21:56:07 <truebrain> what triggered peter1138 😛
22:00:01 <_glx_> hmm can't reproduce, I "removed" my openttd dir, put a basic cfg with just the langfile setting
22:00:37 <truebrain> guess we can't resolve that ticket
22:00:42 <_glx_> that's the selected fonts
22:01:46 <_glx_> same font as in the report it seems
22:02:19 <truebrain> as for #12175, it sounds like the error to handle the error causes an error that causes an error .. in the crashlog we have code to prevent that, but this might be slightly before that or something
22:02:43 <truebrain> I did not think of doing that _glx_ , as I just saw a font that I wouldn't know how to get running .. smart move there 😄
22:03:50 <xarick> kuhnovic: Can't draw any path with FindNearestDepot when it doesn't find any destination, because...
22:04:45 <xarick> the nodes returned are just 1 track in front of ship
22:05:26 <_glx_> indeed #12175 could depend on used language
22:05:53 <_glx_> but eints is supposed to validate
22:06:20 <truebrain> should / would / could 😄
22:06:32 <_glx_> could be somewhere in G or P though
22:07:13 <truebrain> unless we can replicate it, pretty sure we won't be able to figure out what happens there 🙂
22:07:33 <_glx_> yeah the only know thing is the area in code
22:07:51 <truebrain> we can argue if we should have `assert` that deep in the string system, but .. *shrug*
22:08:00 <truebrain> won't be an issue with stable releases 😛
22:08:57 <_glx_> well if it fails on the first part of the assert it will definitely crash in stable 🙂
22:10:07 <truebrain> which creates a crashdump we can analyze! 😄
22:10:45 <_glx_> but assert should also create crashdump, it "aborts" when the window is closed
22:10:59 <_glx_> and that triggers the crash handler
22:11:10 <peter1138> > 3 files changed, 113 insertions(+), 127 deletions(-)
22:11:13 <peter1138> So much for a cleanup :S
22:11:23 <truebrain> 14 lines, calling that cleanup? 😄
22:11:49 <peter1138> I deduplicated some code, but also added... er, what are they... those comment things...
22:22:46 <xarick> hmm, this thing is actually awesome
22:22:58 <xarick> I just identified a bug with FindNearestDepot
22:24:02 <xarick> I can't use the reverse trackdir
22:25:00 <xarick> it was going to be prone to the same problem
22:41:56 *** keikoz has quit IRC (Ping timeout: 480 seconds)
22:52:24 <_glx_> should I allow that (current master just kills the script on circular reference or not enough parameters)
22:57:58 <_glx_> hmm and circular reference detection is just weird as it only checks the stringid
23:24:10 <_glx_> indeed circular reference detection doesn't work with changes in ScriptText done after its introduction
23:24:13 <truebrain> Killing it sends a better message to the author, but is less friendly to the player 😄
23:24:51 <_glx_> local text = GSText(GSText.STR_2);
23:24:51 <_glx_> GSStoryPage.New(GSCompany.COMPANY_INVALID, text);
23:25:25 <_glx_> doesn't even reach the detection because it crashes openttd before 🙂
23:25:52 <_glx_> yes it's silly and it was the reason for circular reference detection
23:35:57 *** nielsm has quit IRC (Ping timeout: 480 seconds)
23:37:47 <xarick> there's a flaw with yapf where npf is actually superior
23:39:24 <xarick> a ship is moving inside a very narrow canal with no exit
23:39:39 <xarick> i order go to nearest depot
23:39:56 <xarick> and there's no path on yapf, but there's a path on npf
23:40:30 <xarick> it forces the ship into the side, and reverses
23:40:52 <xarick> maybe this behaviour could be ported from npf to yapf?
23:41:04 <_glx_> ok even in 13.4 it's undetected, openttd crashes (event viewer shows it), but there's no crash window
23:44:36 *** tokai|noir has joined #openttd
23:44:36 *** ChanServ sets mode: +v tokai|noir
23:45:59 <xarick> i thought it would reverse
23:47:03 <xarick> yapf is the one that does the turn into the side, not npf
23:48:52 <xarick> reverse at the end of line for ships? yes or no?
23:51:12 *** tokai has quit IRC (Ping timeout: 480 seconds)
continue to next day ⏵