IRC logs for #openttd on OFTC at 2025-03-21
β΄ go to previous day
01:07:00 <peter1138> Hmm, I should check the intermediate steps there...
01:23:53 <peter1138> Oh, except the last commit is meant to be two :S
02:05:08 *** Wormnest has quit IRC (Quit: Leaving)
03:09:20 *** WormnestAndroid has quit IRC (Read error: Connection reset by peer)
03:09:23 *** WormnestAndroid has joined #openttd
03:09:26 *** WormnestAndroid has quit IRC (Read error: Connection reset by peer)
03:09:28 *** WormnestAndroid has joined #openttd
03:09:31 *** WormnestAndroid has quit IRC (Read error: Connection reset by peer)
03:09:31 *** WormnestAndroid has joined #openttd
03:50:43 *** WormnestAndroid has quit IRC (Remote host closed the connection)
03:50:45 *** WormnestAndroid has joined #openttd
03:52:00 *** WormnestAndroid has quit IRC (Read error: Connection reset by peer)
03:52:01 *** WormnestAndroid has joined #openttd
03:59:07 *** geizeskrank has quit IRC (Ping timeout: 480 seconds)
04:01:13 *** debdog has quit IRC (Ping timeout: 480 seconds)
04:02:38 *** geizeskrank has joined #openttd
04:45:28 <DorpsGek> - Update: Translations from eints (by translators)
06:12:18 *** keikoz has quit IRC (Ping timeout: 480 seconds)
06:49:49 <Rubidium> is it really steam failed to fail tonight?
07:11:57 *** truebrain has joined #openttd
07:11:57 <truebrain> They fixed it!!! \o/
07:26:27 <pickpacket> why is the latest nightly on the homepage from the 18th?
07:55:11 <pickpacket> LordAro: yes please
07:55:14 <LordAro> might struggle to make April 1st release...
07:55:38 <pickpacket> LordAro: that's okay by me... there are some code changes I need to get into that ;)
07:56:26 <pickpacket> but. We played the nightly from the 18th in multiplayer last night and it kept crashing
07:56:38 <pickpacket> Hoping the one from today is better
07:56:52 <pickpacket> why was there no nightly from the 19th and the 20th?
07:59:28 <LordAro> dunno, maybe some other ci failure?
08:00:10 <LordAro> or perhaps the steam failure prevented deploying to the website for whatever reason?
08:00:22 <LordAro> (i'm guessing, go find the ci logs)
08:00:43 <LordAro> i hope you reported the crash though :p
08:06:03 <pickpacket> LordAro: I didn't run the server :(
08:07:51 *** locosage has joined #openttd
08:07:51 <locosage> pickpacket, I also heard someone mentioning desyncs
08:08:00 <locosage> report them plz too if so
08:09:36 <pickpacket> locosage: those are harder. After the 15 player game they tried with only 5 players and it worked perfectly.
08:09:43 <pickpacket> Can a GS cause desyncs?
08:09:51 <pickpacket> because we were using one
08:10:19 <locosage> it shouldn't be able to
08:11:48 <locosage> but it can "cause" desync in a sense that it does something that triggers the bug
08:15:41 <pickpacket> I can't see how it would do that... It was just updating story book pages
08:15:54 <pickpacket> I guess we can more or less rule that out then
08:20:41 <_zephyris> Remind me why 32bpp LUTs are a bad solution for 32bpp recolour. Too big? 256^3=16MiB? Industry standard seems to be to use 8^3=0.5KiB and lerp, but would that be too slow for real time?
08:22:38 <locosage> I thought they're even-number sized usually like 11x11
08:22:54 <_zephyris> Oh, probably, to get the corner cases.
08:23:11 <_zephyris> TBH, I looked at the resulting colour map images and eyeballed it, didn't bother counting if it was 8 or 9!
08:23:43 <locosage> anyway, should be fast enough with the good implementation
08:26:28 <_zephyris> Not _ideal_ for discontinuous recolours, ie. like CC.
08:27:51 <locosage> should be good enough imo
08:36:10 *** mindlesstux has joined #openttd
09:11:54 <peter1138> LUTs are a bad solution because the game doesn't support them.
09:33:43 <_zephyris> Look up table. Basically just a recolour sprite, but for 32bpp.
09:34:15 <_zephyris> Maps (r, g, b) to an output (r, g, b)
09:38:45 <_zephyris> I'm messing with them for pixel pushing, might as well think about if/how they could be used elsewhere.
09:39:32 *** akimoto has joined #openttd
09:54:42 *** ahyangyi has joined #openttd
09:54:42 <ahyangyi> pickpacket: A switch
09:57:31 <ahyangyi> Though color LUTs often come with built-in interpolations (in case of those `11*11*11` things)
10:29:49 <pickpacket> how does the available colour palette for 32bpp sprites look?
11:05:03 <ahyangyi> remapping 32bpp involves mapping to nearest colour in palette, so it's like a 3d voronoi graph?
11:05:16 <ahyangyi> I wonder if there's a way to visualize that graph :S
11:05:56 <_zephyris> Not easily in two dimensions
11:09:01 <_zephyris> This is the TTD DOS palette
11:10:20 <ahyangyi> Lots of thin slices.
11:10:21 <_zephyris> (well, done carelessly, with animated palette entries in there too)
11:16:11 <truebrain> pickpacket: Shows 21 here, date on the website
11:16:33 <truebrain> (GitHub Actions had a disruption, so the website didn't rebuild)
11:40:48 <peter1138> _zephyris, I was being a bit facetious. LUTs are not a "bad solution", but the suggestion to "just use LUTs" is a bad suggestion.
11:41:14 <_zephyris> Yeah, I know It can't be a full solution, animated palettes
11:41:42 <peter1138> _zephyris, like, come up with a proposal that involves how a LUT should be defined, stored, used, and how it should work alongside existing palette remaps...
11:42:01 <peter1138> That's the thing "LUT" is not a full solution. It's just the word "LUT".
11:42:53 <peter1138> 07:56 < pickpacket> but. We played the nightly from the 18th in multiplayer last night and it kept crashing
11:43:10 <peter1138> I'm sure you don't need us to tell you what you should do in that case.
11:45:16 <pickpacket> peter1138: I'm not sure I can recreate it, but I've got the crashlogs and screenshots now (as I said I wasn't hosting it)
11:45:57 <pickpacket> I'll put in a issue as soon as I can, but it'll probably be Sunday
11:46:07 <pickpacket> bit busy this weekend
11:49:40 <xarick> hash tile next, hash tile prev... too complex
11:52:54 <xarick> how about someone draws the linkage process, maybe then I would understand how's these links maintained
11:54:03 <peter1138> It's a doubly-linked list.
12:26:48 <xarick> some kind of magic happening
12:27:37 <xarick> so the prev can be the first, and if the first is itself, then prev is also itself
12:28:51 <xarick> how's this updatehashes not recursive... what magic don't i understand
12:32:12 <peter1138> No, it cannot point to itself.
13:17:24 <xarick> hash_tile_prev is itself
13:20:35 <xarick> but only if it is the first in the tile hash
13:22:34 <peter1138> It's not "itself", it just points to the same thing.
13:22:51 <peter1138> `hash_tile_current` points to the hash bucket.
13:23:30 <peter1138> `hash_tile_prev` points to the previous pointer in the chain. If it's the first vehicle in hash chain, than that is, of course, the hash bucket. So it points to the same thing.
13:26:50 <xarick> pointing to a pointer, oh... boy this is so deep
13:34:35 <LordAro> it'd be cute if it hadn't been going on for near enough 10 years
13:34:49 <LordAro> wait till you come across pointers to pointers to pointers
13:35:39 <kuhnovic> With some consts thrown in just to make it even more fun
13:45:16 <peter1138> Aliasing them can make it make more sense.
13:45:45 <kuhnovic> Can just as easily make it more confusing in larger projects
13:46:10 <peter1138> Yes, it needs to be very directed.
13:46:20 <peter1138> `using VehiclePointer = Vehicle *;` is NOT.
13:46:53 <kuhnovic> Haha I was just about to type a similar example. I had a colleague that used to do exactly that.
13:46:54 <peter1138> > 42 files changed, 9431 insertions(+), 8413 deletions(-)
13:47:29 <peter1138> typedef void (CDECL *SignalHandlerPointer)(int);
13:47:35 <peter1138> That is named Pointer but...
13:47:51 <peter1138> (Also it's Unix signals, not rail signals.)
13:50:19 <xarick> but then there's still an unordered_map
13:50:59 <xarick> _vehicle_tile_hash[Key]
13:51:40 <peter1138> No, there are only pointers.
13:52:12 <peter1138> LordAro, has it really been near 10 years?
13:54:46 <xarick> new_hash = &_vehicle_tile_hash[v->tile]
13:59:28 <xarick> nope, I still dont understand this
14:01:50 *** kuka_lie has joined #openttd
14:06:39 <andythenorth> should I make Horse have player-configurable buy and running costs though? π
14:07:49 <LordAro> peter1138: gotta be close
14:07:58 *** kuka_lie has quit IRC (Remote host closed the connection)
14:12:36 *** kuka_lie has joined #openttd
14:17:14 *** Smedles_ has joined #openttd
14:20:13 *** Smedles has quit IRC (Ping timeout: 480 seconds)
14:23:39 *** audigex has joined #openttd
14:23:39 <audigex> andythenorth: Just build a HorseAI and you can cut the player out of the loop entirely - more hassle than they're worth IMO
14:26:05 <xarick> dealing with all those train engines
14:42:48 <xarick> hmm... but will it break AIs?
14:48:39 <kuhnovic> I made something like this once, but I wanted to get the highlighting right and got completely stuck there
14:48:55 <LordAro> AIs don't use click & drag mechanisms?
14:55:22 <peter1138> Hmm, array or switch...
14:56:01 *** Wormnest has joined #openttd
14:56:15 <kuhnovic> I wish C++ switches would suck less
15:00:22 <peter1138> Well, is there a C++ way to do what Blitter_32bppOptimized::Draw() does better?
15:04:10 <kuhnovic> There might be, but it will probably make it harder to understand what's going on
15:12:49 <peter1138> Perhaps but I'm asking generally.
15:28:48 <xarick> I'm trying dumb stuff π
15:29:02 <xarick> Tile::vehicle_tile_hash = std::make_unique<Vehicle *[]>(Map::size);
15:49:55 <peter1138> Why is it still surprising?
16:09:55 <xarick> asking about the veh() part
16:11:06 <xarick> i don't mind the memory increase
16:52:17 *** WormnestAndroid has quit IRC (Remote host closed the connection)
16:52:25 *** WormnestAndroid has joined #openttd
17:03:01 *** Wormnest has quit IRC (Ping timeout: 480 seconds)
17:04:34 *** WormnestAndroid has quit IRC (Ping timeout: 480 seconds)
17:04:49 *** WormnestAndroid has joined #openttd
17:07:06 <michi_cc> peter1138: Given that mode is a template parameter, you could do explicit template specification of a helper function. Your mileage may vary on the elegance of that π
17:17:55 *** WormnestAndroid has quit IRC (Remote host closed the connection)
17:17:58 *** WormnestAndroid has joined #openttd
17:19:03 *** gelignite has joined #openttd
17:28:08 <xarick> why is regression crashing
17:28:38 <xarick> Unexpected output: Crash encountered, generating crash log...
17:28:43 *** akimoto has quit IRC (Remote host closed the connection)
17:31:57 <xarick> okay, building an aircraft crashes, i see
17:35:41 <xarick> ah, v->tile = {value=4294967295 }
17:35:47 <xarick> that's not on the array
17:36:55 <LordAro> looks suspiciously -1
17:37:29 <xarick> it's the aircraft shadow π¦
17:39:39 <peter1138> Are you messing around with the collision hash or the viewport hash?
17:41:52 <xarick> loading a newgrf hangs openttd
17:42:41 <peter1138> All you had to do what increase the hash bits a *little* so you could run your... tests a bit quicker.
17:43:52 *** Flygon has quit IRC (Read error: Connection reset by peer)
17:47:48 <xarick> but master doesn't crash
17:52:12 *** WormnestAndroid has quit IRC (Remote host closed the connection)
17:53:24 *** WormnestAndroid has joined #openttd
17:55:43 <peter1138> LordAro, why is 10 minutes on a static trainer bike so much harder than real cycling...?
17:56:05 *** WormnestAndroid has quit IRC (Remote host closed the connection)
17:56:10 *** WormnestAndroid has joined #openttd
17:56:24 <peter1138> Two hours of easier real cycling is probably more beneficial, except it's wet & dark.
18:02:48 <xarick> `Vehicle *v = Tile(Map::WrapToMap(v->tile)).veh();` testing
18:03:39 *** Wormnest has joined #openttd
18:03:59 <xarick> oops, it's tile, not v->tile
18:08:11 <xarick> hmm it still hangs when i load a newgrf,
18:12:12 <xarick> ResetVehicleHashes i guess
18:18:06 <xarick> for (auto tile : Map::Iterate()) { tile.veh() = nullptr; }
18:18:12 <andythenorth> did we mention lunch?
18:18:43 <xarick> isn't there an easier way to access this hidden array?
18:19:48 <xarick> does not hang anymore at least
18:23:07 <peter1138> andythenorth, fish & chips?
18:25:55 <andythenorth> I think I forgot to lunch
18:26:03 <andythenorth> I had marmalade on toast, I guess that's lunch
18:42:02 *** ChanServ sets mode: +v tokai
18:48:58 *** tokai|noir has quit IRC (Ping timeout: 480 seconds)
18:59:51 <xarick> I started a game testing the new vehicle hash with 15 AIs
19:42:43 <peter1138> Hmm, better check tomorrow's route.
19:49:51 <jfkuayue> I ate fish and chips tonight
19:50:30 <pickpacket> I porch pirated a package from a neighbour
19:50:50 <pickpacket> I mean, not really. They asked me to because they won't be home until Sunday
19:51:10 <andythenorth> I ate fishfingers
19:52:21 <pickpacket> andythenorth: I call bullshit. Fish don't have fingers!
19:52:42 <pickpacket> Though maybe they did before you ate them all. Hmm
19:52:45 <jfkuayue> How does Haggis taste? How does Stargazy Pie taste? They are too badly famous...
19:54:09 <jfkuayue> I was shocked when I saw the main dish on the Caledonian Sleeper catering service is... haggis
19:57:22 <andythenorth> Do chickens have nuggets?
19:58:26 <belajalilija> jfkuayue: Haggis is functionally similar to sausage meat
19:58:56 <belajalilija> Itβs sausage meat with some added grain and more herbs
19:59:22 <jfkuayue> but it is organs, not flesh...
19:59:51 <jfkuayue> Or it is not so bad as rumoured
20:00:50 <belajalilija> jfkuayue: Meat is meat
20:01:24 <belajalilija> jfkuayue: The only people who really have an issue with it are foreigners who donβt understand it or picky eaters
20:02:03 <belajalilija> Might be a bit hard to get though
20:02:26 <belajalilija> The further south you go in England the more it becomes a seasonal thing
20:04:30 <_zephyris> Lots of pepper, lots of oatmeal (compared to sausagemeat)
20:05:26 <_zephyris> And, illegal in the USA
20:06:08 <belajalilija> _zephyris: Along with kinder eggs last time i checked
20:06:57 <belajalilija> One of those rare occasions they do care about the safety and well-being of children
20:07:10 <peter1138> Don't let them have fun.
20:11:01 <pickpacket> andythenorth: chickens are made of nuggets. They're the building blocks of poultry
20:11:39 <peter1138> Funny though, after all that newgrf.cpp is still nearly 2000 lines...
20:15:34 <peter1138> Hmm, about 10% of the code is in files with newgrf in the name.
20:17:34 <peter1138> Although loads of bits that are newgrf related are outside of them.
20:19:20 <peter1138> Hmm, might unsplit the string mapping stuff. I had envisaged having more helper bits but as that's the only once it seems a bit weird.
21:06:43 <peter1138> I guess I could "split the split"
21:07:08 <xarick> wow, never realised newgrf had that much code
21:12:20 <peter1138> If I did less splitting, I guess Act1/2/3 would git reasonably well.
21:53:41 <_zephyris> May not look like much, but it is a 32bpp recolour using only the 8bpp blue->green company colour recolour sprite as input...
22:00:38 <peter1138> Yeah, not sure what you're trying to show.
22:05:46 <peter1138> So whatever I changed made it require explicitly initialisation. Which... it should've required anyway. So there's that.
22:06:32 <_zephyris> Sorry, I'm being annoyingly vague, just mildly happy
22:14:30 <xarick> woah, my test game is already at 75k road vehicles
22:16:43 <xarick> 35 ms for road vehicle ticks π
22:27:37 *** WormnestAndroid has quit IRC (Ping timeout: 480 seconds)
22:28:52 *** Wormnest has quit IRC (Ping timeout: 480 seconds)
22:31:20 *** WormnestAndroid has joined #openttd
22:48:58 *** kuka_lie has quit IRC (Quit: leaving)
22:56:11 *** keikoz has quit IRC (Ping timeout: 480 seconds)
23:08:18 *** WormnestAndroid has quit IRC (Read error: Connection reset by peer)
23:13:49 *** WormnestAndroid has joined #openttd
23:22:02 <xarick> why there's no mail going to Plonnley at Deningville Docks?
23:25:22 <xarick> all those trucks are trying to load mail
23:25:30 <xarick> but none wants to go to Plonnley
continue to next day β΅