IRC logs for #openttd on OFTC at 2023-12-06
⏴ go to previous day
00:22:42 *** _aD has quit IRC (Quit: leaving)
00:29:22 *** APTX has quit IRC (Quit: Farewell)
01:17:55 <peter1138> Someone turned off the Internet Archive :(
01:18:41 <peter1138> Did andythenorth close the lid?
02:02:40 *** herms has quit IRC (Quit: bye)
02:36:10 *** Wormnest has quit IRC (Quit: Leaving)
03:31:21 <talltyler> Rubidium: if you’re still reviewing, #11435 is standing in my way of other NotDaylength PRs and should be pretty straightforward. 🙂
04:05:55 *** debdog has quit IRC (Ping timeout: 480 seconds)
04:09:33 *** Extrems has joined #openttd
05:00:53 *** Extrems has joined #openttd
05:11:40 <johnfranklin> truebrain: And 1752-09-02 to 1752-09-13 should also not exist
05:13:48 <merni> johnfranklin: Not really, different countries shifted to the Gregorian calendar at different times
05:14:45 <merni> for example in most of Catholic Europe the dates were 1582-10-05 to 1582-10-14
05:15:21 <merni> of course the brits took 200 years more because everything a pope does must be bad
05:17:47 <johnfranklin> I read this from a British author
05:18:05 <johnfranklin> "Horrible Science" series by Rick Arnold
05:18:32 <johnfranklin> (maybe horrible history, I cannot remember every word I have read in my primary school)
06:24:41 *** HerzogDeXtEr has joined #openttd
06:30:11 *** keikoz has quit IRC (Ping timeout: 480 seconds)
07:29:42 *** ChanServ sets mode: +v tokai
07:36:45 *** tokai|noir has quit IRC (Ping timeout: 480 seconds)
07:40:15 <ahyangyi> merni: So, different dates should be nonexistent depending on the climate type?
08:04:51 <Eddi|zuHause> ahyangyi: we already have different euro introduction years.
08:07:27 <Eddi|zuHause> what openttd uses is called "back-dated gregorian calendar"
08:08:22 <Eddi|zuHause> (and let's not talk about year 0)
08:20:29 <pickpacket> Can I start in any year BC?
08:36:40 <emperorjake> OpenTTD doesn't support BC dates
08:37:02 <emperorjake> valid years are 0-5000000
09:10:28 <peter1138> Astronomical calendar :)
09:31:04 <peter1138[d]> OpenTTD glitches also support trans rights.
09:35:06 <talltyler> Good! Trans rights are human rights. 🙂
09:35:44 <talltyler> And it’s a nice change from glitches opening a portal into the void 😄
09:58:17 *** Smedles has joined #openttd
10:11:33 <xarick> windows updates ruined the work I was doing
10:12:05 <xarick> restarted by itself during the night 😦
10:14:37 <pickpacket> xarick: yay windows...
10:15:23 <LordAro> who leaves their computer without saving?
10:15:47 <LordAro> or, who leaves their computer doing stuff without specifically disabling automatic restart?
10:18:06 <peter1138> Using a negative array index is likely to be wrong :D
10:18:18 <LordAro> depends on the language :p
10:18:32 <ahyangyi> My Windows machine rebooted itself twice this week due to updates
10:33:27 <merni> LordAro: People who expect their computer to do what they tell it to do and not have a mind of its own :p
10:40:30 <johnfranklin> sometimes just in one hour
10:40:46 <peter1138> 10:40:41 up 41 days, 2:51, 2 users, load average: 1.03, 1.19, 1.29
10:40:51 <peter1138> I probablky need a reboot.
10:42:24 <andythenorth> oof ```10:42 up 34 days, 2:57, 17 users, load averages: 3.59 3.29 3.35```
10:42:44 <andythenorth> why so many users Apple?
10:44:09 <pickpacket> andythenorth: is that the macbook that runs bananas and the coordinator? ;)
10:50:54 <peter1138> Most useful features :D
10:51:07 <andythenorth> shall we do the same in game?
11:12:09 <peter1138> Town generation stalls for a very long time if there are no buildable houses.
11:14:41 <ahyangyi> But how do you tell the difference between "no buildable houses" and "only houses with extremely weird conditions are available" ?
11:15:07 <ahyangyi> Long stall for the latter case seems to be reasonable
11:18:33 <peter1138> A problem is despite world gen being in a separate thread, this part has locked it, so everything stops and you can't abort.
11:19:09 <peter1138> It will eventually give up, but it takes along time on a 256x256 map. Wouldn't like to wait for 4096x4096 to finish :-)
11:19:42 <peter1138> Possibly "Couldn't build the first town" should indicate that it shouldn't try to build any more.
11:27:06 <Eddi|zuHause> but most of the "conditions" can easily be run through some sanity check before even generating the map
11:27:58 <Eddi|zuHause> that being town zone and construction year
11:31:41 *** misterbungus has quit IRC (Quit: Logging off...)
11:36:17 *** misterbungus has joined #openttd
11:43:19 <peter1138> I would argue with "easily".
11:56:27 <peter1138> Hmm, I think I need to buy some instant coffee.
12:12:17 <LordAro> does sound suspiciously halting-problem-y
12:12:37 <LordAro> but you can probably rule out at least some (most?) possibilities
12:24:18 <Eddi|zuHause> it can't be halting problem, because GRF isn't turing complete
12:25:20 <talltyler> How do you reproduce this stall? That would give us things to fix. Of course, “no houses available at this date” is a very different problem than “every house failed the construction callback”
12:28:33 <xarick> hooray! new amd drivers, let's hope they fix driver timeout
13:11:13 <xarick> anyone else also experiencing the same issue? When I view some high quality youtube video in fullscreen mode, the system hangs during playback for ~2 minutes until it recovers with a driver timeout error
13:11:41 <xarick> the very odd thing is that it's only youtube fullscreen that causes this
13:13:23 <peter1138> talltyler, in my case it's because I've just set the date too early. It's expected to fail, but the complete hang is a bit awkward.
13:14:45 <peter1138> And the corrupt string is because ConvertDateToYMD does not handle "too early" dates, and leads to out of bounds memory access.
13:19:31 <peter1138> I have no clue how to apply our leap year logic to negative dates :D
13:20:08 <peter1138> Why? Because why not. Someone mentioned Year 0 and then BC and then... :)
13:22:19 <peter1138> Early game years + NoDL = Win?
13:57:30 *** D-HUND is now known as debdog
14:01:14 <talltyler> How early is too early? Negative year?
14:02:23 <andythenorth> ask me yesterday
14:02:38 <peter1138> Negative daylength?
14:02:41 <alfagamma7> Had pizza after 4 years today
14:10:46 <peter1138> Must have been a bit cold.
14:17:51 <peter1138> Modern game development is weird.
14:18:04 <peter1138> They just have boxes that they connect together and it all just... works.
14:20:20 <_glx_> ah yes the blueprint thing
14:20:49 <_glx_> (it actually generates C# code in background)
14:21:57 <andythenorth> can we do that for OpenTTD?
15:11:12 <peter1138> If I ever managed to go through my patch backlog will I end up implementing 'custom bridgeheads' again...?
15:11:32 <peter1138> (The patch was pre-C++, there's no way it'll apply :))
15:17:43 <LordAro> not with that attitude
15:19:49 <talltyler> It’s also in JGRPP if that’s an easier starting point
15:39:16 <xarick> uhm, I don't know what's a virtual function
15:43:44 <peter1138> You were dealing with override yesterday, so you probably do.
15:45:15 <xarick> `virtual ClosestDepot FindClosestDepot([[maybe_unused]] bool limited = false) { return {}; }` this one has a virtual tag to it, but I don't know what or why or how it works
15:49:34 <LordAro> there's no simple answer i can give for what virtual functions are
16:11:22 *** Wormnest has joined #openttd
16:15:52 <xarick> avoids code repetition
16:17:20 <xarick> how would I handle aircraft
16:17:41 <_glx_> it's handled by base class
16:19:50 <_glx_> and FindClosestDepot will have max_penaly parameter instead of limited
16:20:23 <_glx_> you can then pass the parameter to the specialized search depot function
16:21:04 <xarick> hmm, how would i force pass a 0?
16:22:06 <xarick> the limitation was just for the order in the orderlist
16:22:17 <xarick> the other cases like manual sending to depot, will still use 0
16:22:32 <_glx_> default value for the parameter will be 0, like your bool was false
16:23:37 <_glx_> but in UpdateOrderDest() you will pass the value returned by the new virtual function
16:23:56 *** gelignite has joined #openttd
16:24:40 <_glx_> the name I used is maybe not the best
16:26:19 <_glx_> the parameter is called max_distance in the different FindClosestXXXDepot()
16:26:39 <xarick> not always, sometimes it's max_penalty
16:27:50 <_glx_> yeah it's fully inconsistent
16:29:11 <_glx_> for NPFTrainFindNearestDepot it's `@param max_penalty max max_penalty (in pathfinder penalty) from the current train position (used also as optimization - the pathfinder can stop path finding if max_penalty was reached and no depot was seen)`
16:30:01 <_glx_> while for YapfTrainFindNearestDepot it's `@param max_distance max distance (int pathfinder penalty) from the current train position (used also as optimization - the pathfinder can stop path finding if max_penalty was reached and no depot was seen)`
16:46:24 <xarick> it more closely resembles the walking distance
16:47:05 <xarick> if it is involving the pathfinder
16:47:33 <xarick> closest ship depot however, uses distance manhattan instead of calling the pathfinder
16:48:41 <xarick> or trajectory distance
16:49:10 <xarick> ok, gonna see what I can do
17:03:56 <xarick> uint32_t, is it any different than uint or uint32?
17:04:54 <merni> `uint32_t` is the only one of those 3 which is standard in C
17:05:07 <merni> so the other 2 depend on what they are defined as
17:05:25 <merni> in particular I'd expect something called `uint` to be the same as `unsigned int` and thus vary in size
17:06:08 <xarick> hmm, the pathfinder expects an int though
17:07:41 <xarick> but the default value is in uint32_t
17:29:31 <xarick> max_distance vs max_penalty vs max_some_other_name
17:30:03 <xarick> it can be misleading whenever the context changes
17:30:07 <andythenorth> hmm such variants 😄
17:30:38 <andythenorth> I guess I could use the name callback there
17:40:08 <xarick> what does const override do?
17:40:26 <xarick> `uint16_t GetMaxWeight() const override;`
17:41:04 <xarick> get the returned value of that function as a const?
17:41:32 <LordAro> if you go look, you'll find another GetMaxWeight without override
17:41:49 *** virtualrandomnumber has joined #openttd
17:43:26 <xarick> I see, but i'm unsure if i use const here:
17:43:26 <xarick> `uint32_t GetMaxDepotSearchPenalty() override;`
17:43:26 <xarick> `uint32_t GetMaxDepotSearchPenalty() const override;`
17:44:08 <LordAro> i suspect the compiler will shout at you if they don't match
17:44:34 <_glx_> `const` here means the object won't be modified by the call
17:44:42 <peter1138> If it doesn't modify, use const.
17:44:54 <peter1138> Or if it's C# don't implement any concept for const.
17:45:35 <_glx_> my example should use const
17:48:27 <xarick> `virtual uint32_t GetMaxDepotSearchPenalty() const { return 0; }`
17:51:41 <xarick> does that still let me change the maximum_go_to_depot_penalty setting value during a game?
17:55:01 <_glx_> this one will always return 0 🙂
17:55:31 <_glx_> but any function returning maximum_go_to_depot_penalty will use the correct value
18:01:17 <peter1138> What was TRHCOM.GRF for?
18:01:50 <peter1138> Seems to contain bits of duplicate sprites, but the palette is different.
18:20:03 *** virtualrandomnumber has quit IRC (Quit: virtualrandomnumber)
18:29:01 <peter1138> Timberwolf, omg, Fury of the Furries!
18:30:16 <xarick> why aren't my vehicles automatically servicing
18:31:49 <xarick> oh, breakdowns disabled, im dumb
18:39:14 <DorpsGek> - Update: Translations from eints (by translators)
18:48:41 <xarick> there's really no pathfinder call for ship depot, it's so misleading :p
18:49:03 <xarick> but is this what you wanted, glx?
19:16:14 <peter1138> Ships don't pathfind to find a depot?
19:22:37 *** Flygon has quit IRC (Quit: A toaster's basically a soldering iron designed to toast bread)
19:36:27 <peter1138> (I wonder if one of the other pipcontainer changes made them unnecessary... they must have been added for a reason initially.
19:43:48 <xarick> PeterNviaGitHub: there is, but not from ProcessOrders
19:49:14 <xarick> in the case of a ship with a solo order 'go to closest ship depot' and no depot around, it won't hinder performance. The search is performed by iterating all available depots and give that with the shortest distance manhattan. This doesn't cost anything cpu-wise
19:50:29 <xarick> it will set the destination tile to the order
19:51:22 <xarick> but in this case, the destination is invalid when it gets to IndividualVehicleControl. It is handled differently there.
19:51:41 <xarick> i think it just resorts to randomly roam around the sea
20:00:55 <Timberwolf> peter1138: which I'm sure I used to be better at! Although it is *very* bouncy.
20:01:38 <Timberwolf> On the plus side, I now know why I only got PC speaker sound effects while my friend with the same sound card in a 386 got sampled ones.
20:03:19 <peter1138> It's important to know, 30+ years later...
20:09:49 <peter1138> I think my box of it must be in the loft. I'm not sure if the floppies still work, and... don't have a drive anyway. Hmm.
20:12:59 *** gelignite has quit IRC (Quit: Stay safe!)
20:15:56 <Eddi|zuHause> well, there's no time limit to learning from the past
20:18:05 *** rau117 has quit IRC (Quit: User went offline on Discord a while ago)
20:36:10 *** nielsm has quit IRC (Ping timeout: 480 seconds)
21:13:14 <peter1138> Hmm, no MIDI output on FotF :/
21:13:33 <peter1138> I had a GUS and I'm sure it worked with that.
21:16:07 <peter1138> Are we preferring unnamed-parameters or [[maybe_unused]] (even though we know it's not maybe at all..)?
21:16:32 <peter1138> c46407b425a3d9df25ee0e67d2fc2560ab78ca09 and a6597afe4d28b82f82702dfd8617609033ae10f5 are identical.
21:16:42 <xarick> @glx I reworded the text a bit
21:17:05 <xarick> _glx_: I reworded the text a bit
21:17:12 <xarick> dang, i'm too noob for discord
21:18:08 <xarick> the commit message text, that is
21:28:45 <xarick> can your survey scan people's vehicle orders?
21:29:03 <xarick> how many players use go to nearby depot?
21:30:32 <xarick> how many players are gonna be mad at this nerf
21:31:19 <LordAro> well, we've said that before
21:31:42 <_glx_> it will most likely be invisible unless chaotic networks
21:32:03 <LordAro> but vehicles already get lost if they're beyond the normal pathfinder default
21:32:04 <xarick> the limit is roughly equivalent to 20 tiles
21:32:20 <xarick> it's just too short sometimes
21:33:21 <_glx_> it's possible to use a multiplier
21:35:57 <xarick> trains are like 10 tiles, 12 tiles sized.
21:36:11 <xarick> just reverting direction eats away 10 tiles
21:36:54 <xarick> i also think there's a large cost for the reverse
21:37:22 <xarick> they'll never get a depot from go to nearest depot
21:41:08 <xarick> just confirmed... it's broken
21:41:13 <_glx_> indeed 20 tiles might be too short, but applying a *2 (or bigger) in UpdateOrderDest() is always possible
21:42:30 <peter1138> Hmm, my screenshot tool has lot the ability to capture video clips :o
21:42:37 <_glx_> hmm max penalty is 1M, so *2 should fit
21:43:19 <xarick> the cost for the reversing a train to the other direction is very likely 100000 or so...
21:44:09 <xarick> if the station line ends there and the depot is in the reversed direction, go to nearest depot order simply fails while it could be just next door after reverse
21:44:23 <_glx_> default is something like 20000 (a tile is usually 100)
21:47:44 <xarick> thx... that was gonna be bad if it went in
21:53:04 <peter1138> Screencast working by restarting Gnome Shell... pfft.
21:58:41 *** HerzogDeXtEr has quit IRC (Read error: Connection reset by peer)
22:01:41 <xarick> how do I use Obs to capture only part of the screen?
22:02:26 <xarick> i need to capture two openttds 😦
22:02:44 <xarick> two windows side by side in the same video
22:07:28 *** Wolf01 has quit IRC (Quit: Once again the world is quick to bury me.)
22:26:02 <xarick> go to nearest depot failing
22:27:12 <xarick> strange, the video isn't parsed
22:27:24 <xarick> it does not like AOM-AV1?
22:27:44 <xarick> so much for AV1 being the future of video encoding
22:30:39 <xarick> is anyone able to view the video?
22:34:52 <xarick> this is what I see... 😦
22:38:20 <_glx_> peter1138: oh that's very nasty, and good way to never sell trains anymore
22:40:26 <_glx_> previews and streaming are different discord things
22:48:32 <xarick> `YAPF_INFINITE_PENALTY 100000 const int`
22:49:20 <_glx_> so infinite means 100 tiles
22:49:23 <xarick> meaning that 2000 is just not sufficient
22:50:15 <xarick> the cost for reversing alone is YAPF_INFINITE_PENALTY + the rest of the path
22:51:19 <xarick> bad PR, I wasn't keen on the solution to be honest... kinda glad to see it fail
22:53:04 <_glx_> actually it doesn't really solve the issue, which is there's only one order, and failing to fail a depot jumps to next order
22:53:37 <xarick> the next order is itself :p
22:53:48 <_glx_> with the limit you just make it fail faster
22:55:18 *** Wormnest has quit IRC (Ping timeout: 480 seconds)
23:04:45 *** keikoz has quit IRC (Ping timeout: 480 seconds)
23:24:08 <xarick> I can't think of how implementing the alternative
23:25:24 <xarick> I could have multiple go to nearest depot orders one after another for the same effect
23:26:52 <xarick> in my mind, doing pathfinding in ProcessOrders is bad
23:28:59 <xarick> I dunno... Does ProcessOrders really need to be done every tick?
23:29:34 <xarick> or maybe just this specific order, treat it differently somehow
23:37:41 *** Wormnest has joined #openttd
23:40:15 <_glx_> usually ProcessOrders handling is quite fast, if you have a destination tile
23:42:11 <_glx_> and UpdateOrderDest() role is to set the destination tile, so it needs to find one
23:43:10 <_glx_> "go to nearest" is just not easy to handle
continue to next day ⏵