IRC logs for #openttd on OFTC at 2023-05-04
β΄ go to previous day
00:14:57 *** Wormnest has joined #openttd
00:19:35 *** WormnestAndroid has quit IRC (Remote host closed the connection)
00:21:15 *** WormnestAndroid has joined #openttd
01:07:39 *** Wormnest has quit IRC (Ping timeout: 480 seconds)
01:12:01 *** _aD has quit IRC (Quit: leaving)
01:40:30 *** Wormnest has joined #openttd
01:55:45 *** WormnestAndroid has quit IRC (Ping timeout: 480 seconds)
01:55:47 *** WormnestAndroid has joined #openttd
01:59:49 *** WormnestAndroid has quit IRC (Read error: Connection reset by peer)
01:59:51 *** WormnestAndroid has joined #openttd
02:12:15 *** debdog has quit IRC (Ping timeout: 480 seconds)
02:13:02 *** D-HUND is now known as debdog
02:21:51 *** Wormnest has quit IRC (Quit: Leaving)
06:44:15 *** HerzogDeXtEr has joined #openttd
07:27:41 *** Flygon has quit IRC (Read error: Connection reset by peer)
07:28:54 <TrueBrain> SicIuvatIreSubUmbras: now do the same test on aBase or zBase π That is much more interesting, honestly π
07:29:14 <TrueBrain> those small NewGRFs, they don't actually impact the counter ... but those use 32bpp EZ NewGRFs ......... π
07:42:48 <petern> Hmm, how 'bad' would it be to give vehicle/house/industry/industry-tile specs extra cargo type fields.
07:45:03 <petern> We have 4 cargo "id" systems, 2 of which are prominent thoughout the code, 1 is mostly limited to NewGRF interoperability, and the last is almost completely irrelevant (as the 3rd way replaced it.)
07:46:46 <TrueBrain> sounds like us π
07:47:51 <petern> The two prominent ones are often used interchangeably, because with only the default cargo types the values happen to be the same. I'd like to make them conflict as types, but to do so I need to split them in the specs -- one type is needed as definitions to set the second type up correctly, the second type is needed during runtime.
07:49:29 <petern> We used to have another type as well, global cargo types, although I got rid of that before cargo labels came along anyway, so there was never technically 5 types.
07:51:32 <TrueBrain> and I thought, let me recompress all base graphics with brotli, just to get some stats ..... but .... it isn't lying when it says it is slower to compress π
07:51:44 <TrueBrain> already running for 20 minutes
07:52:30 <TrueBrain> it might shock everyone but trying to compress PNGs further is expensive π
07:52:31 <petern> Hmm, I broke that. Oops.
07:54:26 <petern> More manually this time.
07:54:38 <petern> "Accept combination" normally works fine.
07:54:51 <TrueBrain> you do have to actual look at the chunks
07:55:15 <petern> Yeah the merge editor was lying to me.
07:55:31 <petern> Worse, it ended up being compilable!
07:57:57 <TrueBrain> it takes 4+ minutes to compress a single zbase ... lol
07:59:30 <petern> Take two coming up, except I'm waiting for compilation to finish so I can run it this time.
07:59:43 <petern> (I ran it last time but didn't check a window)
08:20:54 <petern> `return (x >> s) & (((T)1U << n) - 1);`
08:21:01 <petern> Is it more or is that cast to T in the wrong place?
08:24:32 <Rubidium_> it might be the right place if you want it to work with uint64_t; 1U << 32 is undefined IIRC, (uint64_t)1U << 32 isn't AFAIK
08:25:17 <Rubidium_> though if you expect it to return a uint16_t, then... integer promotion might be messing with you
08:26:47 <Rubidium_> or if your x is uint64_t/size_t and you want an int out of it, then you might need the cast for the complete expression too (on some platforms)
08:48:43 <TrueBrain> TrueBrain: SicIuvatIreSubUmbras I did some benchmarking .. our Base Graphics, a total of 45 files in 2.4 GiB uncompressed. `gzip -9` takes 2 minutes, makes 2.1 GiB out of it. `brotli -6` takes 4 minutes, and makes 1.8 GiB out of it. `brotli -9` takes 54 (!) minutes, and makes 1.7 GiB out of it.
08:49:07 <TrueBrain> in short, it is hard to make a case that adding yet-another-dependency to OpenTTD is worth the minor reduction in bandwidth π¦
08:49:32 <TrueBrain> it is important to note that most of those GRFs contain PNGs, which are already compressed .. this is why comrpessions have such a hard time with it π
08:55:52 <dP> What are you talking about? Grfs don't contain PNG, just some basic compression, like lz77 or smth
08:56:54 <dP> Adding better image compression algorithm to grf would probably give the best result. Like flif it what was it called
08:57:04 <glx[d]> Because lz77 is fast to decompress on a 386
08:57:36 <TrueBrain> and there, I fixed my sentence ..
09:00:13 <TrueBrain> ugh, I really don't want to build an UI for the survey PR .. I am so pushing it forward .. it is so not fun to make new windows .... π¦
09:01:58 <dP> Iirc temporal8 posted on forum somewhere that 100mb PNG yield 300mb grf
09:04:14 <petern> Increase in size comes mainly with compressing each sprite individually, along with the poor algorithm.
09:05:00 <dP> Yeah, individual compression is bad
09:06:02 <petern> Switching to a sprite atlas would require some fairly fundamental changes.
09:12:27 <TrueBrain> hmm .. was trying `StrongIntegralTypedef` on the `Date` type .. but the casts in our scripting API makes that a bit .... annoying π
09:13:46 <glx[d]> Everything is SQInteger
09:13:55 <TrueBrain> well, no, ScriptDate::Date is an enum
09:14:02 <TrueBrain> but you can't cast a `StrongTypedef` that easily around
09:14:08 <TrueBrain> at least, we have nothing for that in place yet π
09:14:37 <TrueBrain> but hopefully it is the only place where we cast a `Date` from one type to the other π Let's see π
09:17:47 <glx[d]> We cast tiles quite often IIRC
09:17:51 <TrueBrain> meh, it goes a bit wrong with `std::max` and friends ..
09:18:24 <TrueBrain> which makes sense ofc
09:18:38 <TrueBrain> but it would mean a lot of template definitions to get it to work properly π
09:19:17 <TrueBrain> glx[d]: a simple grep shows no sign of a cast of `TileIndex`. Doesn't mean they aren't there, but I guess that would need some special glue to actually work
09:19:49 <glx[d]> Not direct cast but use of the member inside the type
09:19:52 <TrueBrain> grepping for these things is very tricky π
09:19:59 <petern> There's a few direct (TileIndex) casts, but not many.
09:20:12 <TrueBrain> glx[d]: yeah, and that would be the solution for ScriptDate too
09:20:19 <petern> Casts *to* TileIndex, that is.
09:20:43 <Rubidium_> TileIndex has an operator uint32() and a constructor that accepts uint32
09:21:07 <petern> But all this makes debugging a right pain π¦
09:21:14 <TrueBrain> `warning: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second`
09:21:16 <Rubidium_> which the compiler happily injects in the code when it needs to
09:21:17 <TrueBrain> haha, love the warning π
09:21:37 <TrueBrain> petern: yeah, that I can imagine
09:22:08 <TrueBrain> okay, using `StrongIntegralTypedef` for `Date` is not a good move π
09:22:18 <TrueBrain> lot of our code starts to yell in various of places
09:22:24 <petern> Debugger can't "happily inject" when you are trying to look at things from a breakpoint.
09:22:32 <TrueBrain> it is not so much an issue with `StrongIntegralTypedef`, more an issue with how we use `Date` π
09:22:33 <petern> You have to back to to adding printfs
09:23:02 <TrueBrain> `if (!IsInsideMM(rti->introduction_date, 0, MAX_DAY)) continue;`
09:23:04 <TrueBrain> statements like that π
09:23:37 <TrueBrain> yeah .. rabbithole π
09:28:52 <Rubidium_> you could replace the 0 with a MIN_DAY, and implement the comparator functions. Then IsInsideMM, max and friends should just work "fine"
09:34:01 <TrueBrain> can you define an operator for a struct outside of that struct .. so in a later moment in time, I wonder π
09:34:49 <TrueBrain> been playing too much with Rust .. traits are so much easier π
09:41:06 <TrueBrain> hmm .. and in the end, because of the implicit `int32` cast, it still doesn't prevent a statement like this: `int32 bla = this->date_of_last_service;` π
09:42:36 <TrueBrain> so I guess the biggest added value would be to avoid assigning a TimerGameCalender::Date to TimerGameEconomy::Date
09:50:56 <TrueBrain> for your viewing pleasure
10:01:35 <TrueBrain> oops, #10761 was meant as draft π There are a few things to resolve .. like a weird memset π
10:04:36 <Rubidium_> you can convert a non-draft to a draft
10:14:15 <TrueBrain> I know, and I did before I wrote that sentence π
10:16:11 *** axet has quit IRC (Quit: Leaving.)
10:30:15 <petern> I've got some patches around that get rid of a load of the MemSet stuff.
10:30:42 <petern> Part of my tidyup the fixups and fixup the tidyups.
10:37:02 <TrueBrain> Yeah, I was reading that code and was like: run!
10:43:00 <petern> It's more rabbithole stuff, I need to know when to stop π
10:44:53 <Rubidium_> when MemSetT, CallocT, MallocT, stredup and free are essentially eradicated :D
10:45:33 <Eddi|zuHause> ... we'll find other "what were we thinking?!?" parts of the code :)
10:46:08 <Rubidium_> well... those aren't as "fun" as "what was CS thinking?!?"
10:46:34 <Eddi|zuHause> i don't think he was using any of those functions :p
11:05:20 <TrueBrain> yippie, building releases with JSON support works on all targets now π
11:07:40 <TrueBrain> ugh, so, UI for survey .. ugh ..
11:08:42 <Eddi|zuHause> "would you please allow us to spy on you? we're not selling your data *pinkiepromise*"
11:27:33 <glx[d]> And a checkbox "remember my choice"
11:29:12 <Eddi|zuHause> and opting out routes you through 3 separate confirmation windows, where the yes/no buttons are differently coloured that most people accidentally click "yes" anyway
11:29:46 <glx[d]> Don't forget the GDPR link
11:31:11 <glx[d]> There should be some room in new game config window for easy access of the setting
11:32:27 <TrueBrain> petern: do we have a "link" Widget? (text you can click on that opens a browser)
11:33:21 <petern> There's a "View Website" button in the NewGRF config window.
11:33:30 <TrueBrain> yeah, but those are buttons
11:33:34 <TrueBrain> was wondering if we had link text
11:34:18 <Eddi|zuHause> what's next? a link parser for readme files?
11:34:36 <petern> Not specifically, you could just use a text widget and handle its click event.
11:34:49 <glx[d]> There's PR for that I think
11:34:50 <TrueBrain> yeah, but that would be a new pattern in our UI design π
11:34:54 <TrueBrain> so I will just have a button π
11:35:01 <petern> Yeah, might as well have a button so it fits
11:37:36 <TrueBrain> always nice, adding new strings ... -full recompile-
11:45:55 <TrueBrain> okay, this is bad π
11:46:11 <TrueBrain> let's .. make them real buttons with text on it instead
11:49:19 <TrueBrain> much better already .. now to space them a bit better π
11:49:56 <TrueBrain> I always forget how to do spacing π Let's see ..
11:54:33 <TrueBrain> yeah, found it; I love the WindowDimensions π
11:55:44 <TrueBrain> it "just works" π
12:03:18 <TrueBrain> `About survey and privacy`, that is a nice way of wording that
12:10:28 *** WormnestAndroid has quit IRC (Remote host closed the connection)
12:10:35 *** WormnestAndroid has joined #openttd
12:29:03 <TrueBrain> to the point, no extra fluff, I like it!
12:34:41 <andythenorth> needs 1 mention of privacy
12:34:53 <andythenorth> 'more information including privacy' or something
12:35:09 <andythenorth> otherwise the tinfoil people will go all audacity on us
12:36:08 <andythenorth> TrueBrain: works for me π
12:36:15 <andythenorth> shall we consult wider?
12:37:02 <TrueBrain> Game Options now look like that; but I didn't want to add those two buttons to the popup too .. so it is a bit redirections, but okay
12:38:11 <glx[d]> Does it ask everytime is setting is "no" ?
12:38:21 <TrueBrain> glx[d]: no; it never asks if you set it to no
12:38:30 <TrueBrain> it will only ask when no choice has been made, once per run of the game
12:38:38 <andythenorth> kamnet: got any time to collate community responses about it? π
12:38:59 <andythenorth> the more we can show we did all the right things, the less pointless drama around it
12:39:05 <TrueBrain> right, now to build that "preview" ... that is the more tricky one ..
12:39:54 <kamnet> Actually I don't have time. Dr appts all day, then leaving for a weekend trip to visit the GF and family
12:40:28 <TrueBrain> which window can I copy for a blob of text .... the readme window π
12:50:15 <petern> Do we need to add code to detect if the privacy policy has changed? :p
12:51:03 <TallTyler> Would you want to add βanonymousβ to the brief description of the survey in the pop-up?
12:52:04 <TrueBrain> I removed "anonymous" completely from all descriptions, as it is often a reason for debate
12:52:15 <TrueBrain> I rather have that we make clear in our privacy statement that we do not track individuals
12:55:56 <TrueBrain> (and show that by the content of the survey result)
12:57:45 <TrueBrain> Rubidium: can I also make requests for what C -> C++ to do next? π
13:00:25 <Rubidium_> you can, though I won't promise I'll actually do that right away
13:00:44 <TrueBrain> π I was looking at textfile ... it is a nice window, but the old-style C is making my head spin π
13:00:56 <TrueBrain> GetTextfile specifically
13:04:03 <TrueBrain> hmmm ... it is written a bit too much in a way that is rather annoying to reuse π
13:04:37 <TrueBrain> TFT_END is used a lot to show the three buttons (readme / changelog / license)
13:05:28 <glx[d]> It's content specific, as it was the only user
13:05:40 <SicIuvatIreSubUmbras> TrueBrain: Right, thank you for diving into thisβ¦ thatβs indeed not all that impressive considering the implementation costs
13:05:41 <TrueBrain> yeah, it is like "almost" generic π
13:06:07 <TrueBrain> SicIuvatIreSubUmbras: yeah .. we looked at this more often π It is an annoying problem, as it actually need changing of the GRF container to become useful π
13:07:23 <SicIuvatIreSubUmbras> Yea sorry for wasting your time, I searched on discord and GitHub to see if brotli was brought up before and found no results, thatβs why I asked
13:07:37 <TrueBrain> SicIuvatIreSubUmbras: no need to be sorry; I appreciate you thinking along π
13:07:57 <TrueBrain> and I wouldn't call it a waste of time .. now we have more statistics π
13:08:33 <TrueBrain> who knows, it might have surprised us! But sadly .. it didn't π¦
13:09:50 <TrueBrain> well, that is something ... π
13:12:11 <TrueBrain> no clue what is up with the title π
13:17:07 <petern> Probably expecting a parameter to be set depending on the filename.
13:17:24 <TrueBrain> I removed that need, I was sure ..
13:17:35 <TrueBrain> `STR_TEXTFILE_SURVEY_RESULT_CAPTION :{WHITE}Preview of survey result`
13:17:40 <TrueBrain> doesn't require parameters anymore
13:19:15 <TrueBrain> ah, my bad ... made a boo-boo in the enum π
13:19:22 <TrueBrain> time to ... RECOMPILE EVERYTHING
13:22:27 <petern> `see reference to function template instantiation 'std::array<CommandDispatch,135> MakeDispatchTable<unsigned short,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,10
13:22:27 <petern> 116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26>(std::integer_sequence<unsigned short,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,8
13:22:27 <petern> 8,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134>,std::integer_sequence<size_t,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26>) noexcept' being compiled`
13:23:38 <bigyihsuan> petern: what do you mean a 135-adic generic type
13:24:51 <TrueBrain> now to find out why it doesn't reflow on its own ..
13:25:32 <petern> Β£22 on new bearings, bikes are expensive :/
13:29:00 <Rubidium_> petern: I can imagine things going awry... there's a lot of numbers missing from the sequence :D
13:30:16 <Rubidium_> or in other words, looks like the Discord -> IRC bridge loses some characters
13:30:18 <TrueBrain> that is a bug in Discord -> IRC bridge of which I am too lazy to fix π
13:30:28 <TrueBrain> the IRC server announces it can handle a certain line-length
13:30:32 <TrueBrain> the IRC library picks this up
13:30:38 <TrueBrain> but seems to forget it is including the header
13:31:03 <LordAro> "gprparsing-projects.adb:10035:25: error: "Utils" is not visible"
13:31:10 <LordAro> gotta love errors on the 10000th line of the file
13:31:24 <TrueBrain> .... okay ... I thought we had issues
13:32:29 <Rubidium_> OpenTTD can beat that... narrowly by messing up at the end of newgrf.cpp
13:33:33 <LordAro> never mind C++-ifying, should work on splitting that file :D
13:35:14 <petern> I started a branch to split up newgrf.cpp actually.
13:35:33 <TrueBrain> please do a `git branch | wc -l` for us tnx
13:35:33 <petern> But that's another rabbit hole which I will leave for later.
13:36:02 <TrueBrain> so you do run out of "I have a patch for that" some day ...
13:36:21 <LordAro> how about `git stash list | wc -l` ? :p
13:37:27 <TrueBrain> okay, that should be the in-game UI elements for the survey thingy .. now I really have to dive into this OpenTTD CSS bla again .. I don't want to!!!
13:59:39 <TrueBrain> fun fact: if you make a binary without JSON support, it still asks you if you want to participate in the survey, but it never actually transmits one ..
14:00:06 <TrueBrain> I could fix it, but that is a lot of `ifdef` .. pretty sure that is silly
14:03:22 <TrueBrain> mostly around the Game Options it is a bit weird code .. hmm
14:03:37 <TrueBrain> guess I could name the frame, and toggle it
14:05:29 <TrueBrain> `if constexpr (!NetworkSurveyHandler::IsSurveyEnabled()) {`
14:08:30 <petern> Is that the new ifdef? π
14:08:46 <TrueBrain> doesn't work on preprocessing level, but kinda π
14:13:03 <TrueBrain> but I didn't want to leak through the whole code WHY it is disabled .. so now the class can locally decide, and the rest of the code can piggyback on it π
14:17:13 <TrueBrain> 40+ minutes to build mingw .... why are we building mingw again? π¦
14:18:10 <TrueBrain> there, now if you don't have a JSON library, nobody will tell you about any survey π
14:20:40 <TrueBrain> the effort we put in graceful accepting the lack of certain libraries .. it is amazing π
14:35:16 <petern> Yeah, I was wondering if the json dependency should just be required.
14:35:50 <petern> TrueBrain: It does occasionally catch errors that other compilers don't but mainly yes, it's so slooooowwwww...
14:42:31 *** Smedles_ has joined #openttd
14:45:38 *** Smedles has quit IRC (Ping timeout: 480 seconds)
14:46:31 *** Smedles has joined #openttd
14:53:52 *** Smedles_ has quit IRC (Ping timeout: 480 seconds)
14:55:11 *** Smedles_ has joined #openttd
14:58:23 *** Smedles has quit IRC (Ping timeout: 480 seconds)
14:59:12 *** Smedles has joined #openttd
15:01:30 <LordAro> TrueBrain: because if mingw stops working, i won't be able to do any ottd dev without rebooting into linux :p
15:06:33 *** Smedles_ has quit IRC (Ping timeout: 480 seconds)
15:06:47 <TrueBrain> Install WSL2 already and relief us from this horror! π
15:24:45 <petern> Nah, if LordAro is the only mingw user, and mingw stops working, LordAro has to fix it π
15:25:06 <TrueBrain> We just make him compile every PR and report!
15:25:56 <TrueBrain> Can't believe LordAro can use mingw for development .. compiles take 4 times as long .. I already get annoyed with my compile times
15:42:37 <LordAro> noo, that's too much like an actual development environment
15:42:42 <LordAro> and i'm supposed to be using linux for that
15:42:47 <LordAro> windows is supposed to be for games
15:43:16 <LordAro> TrueBrain: only for quick hacky dev
15:44:22 <TrueBrain> And you really have to let go of the line between Windows and Linux .. we all did :p
15:44:59 <TallTyler> Hmm, engine age is stored in days, but then compared against reliability phases which are stored in months? Is the documentation wrong or am I going crazy?
15:44:59 <TallTyler> (#10746 touches this thanks to signed/unsigned comparison annotations)
16:01:25 *** gelignite has joined #openttd
16:06:25 <petern> Yeah, the comments are wrong.
16:06:38 <petern> I think vehicle age is days, but engine age is months.
16:06:54 <petern> Engine age is only incremember once a month.
16:07:20 <petern> So the test of MAX_DAY is wrong too.
16:08:14 <petern> Ah, you added the comment for age π
16:08:30 <petern> But it was always "Date" which is wrong.
16:11:54 *** Wormnest has joined #openttd
16:16:37 <TallTyler> Ah, that would make more sense
16:37:56 <petern> TallTyler: amazing the bugs you can find when you just try to do a little tidying π
16:42:17 <TrueBrain> Sometimes I wonder how the game could work :p
16:50:48 <andythenorth> sheer bloody mindedness
16:51:10 <andythenorth> sometimes I wonder how motor vehicles work so reliably and with relatively so few problems
17:21:18 <Rubidium_> changing math_func.hpp... yay massive recompile :(
17:21:42 <TrueBrain> Don't talk to me about recompiles π’
17:21:56 <Rubidium_> strings are less bad than math_func.hpp
17:21:57 <TrueBrain> Can't we speed up the game? Slim it down?
17:22:12 <glx[d]> don't dare touching stdafx.h π
17:22:15 <TrueBrain> Throw away road vehicles?
17:22:36 <TrueBrain> Rubidium_: It is not a competition π :p
17:22:44 <Rubidium_> throw away NewGRF & scripts
17:23:01 <Rubidium_> oh... and translations. That'll help a lot, since you can just hardcode strings again where you need them
17:23:17 <TrueBrain> Use WASM to make everything into small addons? π
17:24:47 <TrueBrain> Honestly, it is not hard to make strings inline and collect them for translations
17:24:56 <TrueBrain> Just not sure it actually fixes anything π
17:25:40 <TrueBrain> I am annoyed I lost script that reduced includes of files, by checking one by one if they are needed
17:26:03 <TrueBrain> It was a slow script, but it ended up with a lot less includes
17:26:43 <glx[d]> I did that manually with the script gui split
17:27:28 <TrueBrain> Rubidium_: Sweet! Just the CMake bump might be an issue .. we need to check the Linux release for that
17:27:48 <TrueBrain> Might need to switch to the vcpkg cmake to make that work
17:28:11 <glx[d]> 3.16 is very recent for linux world
17:29:23 <Rubidium_> it's like 10 releases ago!
17:30:08 <Rubidium_> though maybe I'm running a too bleeding edge Linux :D
17:30:22 <TrueBrain> Yeah ... linux sucks in updating build dependencies
17:30:31 <TrueBrain> Reason we are so happy with vcpkg π
17:30:46 <petern> 3.18 is on Debian Stable, so it should be fine?
17:31:04 <TrueBrain> Linux releases use CentOS 7 π
17:31:17 <TrueBrain> Debian is not our benchmark here :p
17:31:28 <glx[d]> and they have 3.9 on CentOS 7 ?
17:31:30 <petern> I tend to think if it's in Debian Stable, it's in everything else...
17:32:53 <TrueBrain> Surprising, they patched it to 3.26 even
17:32:59 <TrueBrain> I am absolutely shocked
17:35:21 <TrueBrain> Never knew precompiled headers was a thing
17:45:28 <Rubidium_> even that seems to support/use 3.26
17:46:50 <TrueBrain> Haha, that I already said yes π
17:48:23 <TrueBrain> Bit touch and go with manylinux .. autoconf is not updated for example. But cmake is, so whoop π
17:50:38 <glx[d]> hehe centos7 has 2.8.12 by default π
17:52:46 <Rubidium_> lets just call debian10 EOL ;)
18:11:58 <frosch> two places in netherlands were suggested, what now? π
18:24:33 <TallTyler> I'm supposed to be in Germany in June for training for my new job (if all goes to plan). Not sure of the dates yet but if nobody proposes a date before then I'll pick one π
18:25:34 <TrueBrain> Well, don't pick it just before you go on travels :p
18:26:36 <TallTyler> Yeah, that might be their problem more than mine
18:27:02 <Rubidium_> also bear in mind that those locations in the Netherlands close at 17:00 or 18:00, so you might need something afterwards as well. Which you might need to arrange if the group's getting big
18:27:40 <TallTyler> In Feburary they asked if I could start April 1, then last week if I could start May 5 and fly to Germany May 6, then today they proposed June 1 with training sometime that month...
18:28:22 <Rubidium_> that sounds like "Sankt Nimmerlein" to me
18:28:57 <TallTyler> I sure hope not, but I'm looking for alternatives just in case
18:29:19 <TrueBrain> TallTyler: Did they at least start paying on the 1st of April?
18:29:25 <TallTyler> I do at least have the proposed employment terms as of today, not an official letter though
18:37:59 <TrueBrain> haha, does it show it used to read `automated survey`? π Tnx π
18:39:12 <michi_cc[d]> Somehow that irked me when seeing the screenshot of the message π
18:40:03 <TrueBrain> I will make new screenshots, as both are outdated π
18:41:24 <DorpsGek> - Update: Translations from eints (by translators)
18:54:37 *** nebulabc has quit IRC (Quit: must've rage quit Β―\_(γ)_/Β―)
19:00:19 <TallTyler> TrueBrain: I wish! Apparently I'm supposed to do unpaid training for most of May before starting in June, which is allegedly a German workplace norm... π€
19:00:36 <TallTyler> I've been burned by too many American employers to accept that so easily though
19:00:52 <michi_cc[d]> It is definitely not a norm.
19:01:06 <TrueBrain> I wouldn't think that is not even legal in the EU, but who am I π
19:02:29 *** nebulabc has joined #openttd
19:05:58 <TallTyler> I'll be sure to bring that up in my 8 am tomorrow call. Way too early for such a thing, but π
19:06:09 *** nebulabc has quit IRC (Quit: Must have rage quit Β―\_(γ)_/Β―)
19:06:33 *** nebulabc has joined #openttd
19:08:16 *** nebulabc has joined #openttd
19:08:40 <petern> Okay, TimerGameCalendar::Month isn't suitable because it's only 8 bits.
19:08:54 <TallTyler> Uh oh, are we fixing the same bug?
19:09:00 <petern> Well you mentioned it π
19:11:16 <petern> It was originally a uint16, and increased once a month up until 0xFFFF.
19:11:56 <petern> frosch then got confused and thought it was days not months π
19:12:38 <TallTyler> Should it go back to uint16? Or just become an int32?
19:12:40 <petern> SVN days, so no code reviews really back then.
19:13:01 <TallTyler> (it's currently an int32, but called a TimerGameCalendar::Date)
19:15:52 <petern> Hmm, okay it is calendar based rather than economy based.
19:16:16 <TallTyler> Right. Engines are calendar based, vehicles are economy based
19:16:35 <TallTyler> Because vehicle aging and replacement is a game balance (economy) thing
19:16:54 <petern> Well no not really, vehicle age should be in calendar time.
19:17:25 <petern> Dunno, should vehicles get old in a time-frozen game...
19:18:36 <TallTyler> That's a #10700 discussion to have, but my conclusion was that continuing to age them according on economy time is "less wrong" than keeping them on calendar time
19:19:26 <TallTyler> Autorenew should handle it, or if breakdowns are disabled then it's a non-issue anyway
19:20:54 <petern> `e->age != std::numeric_limits<decltype(e->age)>::max()` seems a bit wordy :p
19:22:15 *** WormnestAndroid has quit IRC (Remote host closed the connection)
19:22:40 <petern> With uint16 engines stop aging after approximately 5380 years. Hmm.
19:23:14 <TallTyler> Max year is 5 million
19:23:29 <TallTyler> Maybe we should keep it int32?
19:23:36 <TallTyler> Less work for me that way π
19:30:16 <Rubidium_> Maybe use OverflowSafeInt<uint16>?
19:35:09 *** WormnestAndroid has joined #openttd
19:38:42 *** Kuhnovic has quit IRC (Quit: User went offline on Discord a while ago)
19:49:29 <TallTyler> Aw, my #include changes broke #10731 and probably a bunch more PRs for no reason...sorry! π¦
19:49:40 <TallTyler> (broke = merge conflicts)
19:52:38 <TrueBrain> ugh, I forgot GitHub actions don't work on a new repository till there is some action in the main branch already
19:52:40 <TrueBrain> that is just annoying π
19:58:06 *** gelignite has quit IRC (Quit: Stay safe!)
20:00:59 *** tokai has quit IRC (Read error: Connection reset by peer)
20:01:34 *** ChanServ sets mode: +v tokai
20:16:47 <petern> OverflowSafeInt<uint16_t> appears to not be comparable with uint16.
20:42:40 <petern> Merge before 2TallTyler changes things again π
20:43:00 <michi_cc[d]> You could merge one more.
20:47:28 <Rubidium_> good... I haven't killed my own PRs yet
20:48:13 <TrueBrain> always nice, that another OpenTTD repo stalls because the workers are busy with the main repo π
20:48:45 *** axet1 has quit IRC (Quit: Leaving.)
20:57:08 <michi_cc[d]> peter killed himself with #10672 though π (Okay, nothing bad, but it does conflict now).
20:57:27 <petern> Wrong number, but yes.
20:57:35 <petern> I'm waiting for it to compile before I push.
20:59:06 <petern> Is it bad to browse Etsy for DIY synth kits?
21:01:07 *** keikoz has quit IRC (Ping timeout: 480 seconds)
21:02:33 <Eddi|zuHause> not worse than a lot of other things :)
21:06:04 <petern> Better get my russian translating skills out.
21:07:39 <TrueBrain> you can ask to make the screenshots in the english language? π
21:09:27 <TrueBrain> Yeah, I rather see that, than petern attempting to butcher your language π
21:09:57 <TrueBrain> mind terribly updating the issue with those shots?
21:19:22 <TrueBrain> I even made you guys a preview so it is easier to see π
21:21:24 <Eddi|zuHause> i can't english today, probably nothing useful would come out...
21:22:23 <TrueBrain> owh, and I am going to start the slow process of removing "staging", and make Pull Request deploy automatically to a staging. This means "main" goes directly to production. This repository is the first attempt to that .. not exactly what I want yet, but it is getting close π
21:24:53 <TrueBrain> hmmm ... why did some CI jobs for master just cancel ... it is set to not cancel on master ..
21:25:28 <TrueBrain> `cancel-in-progress: ${{ github.ref != 'refs/heads/master' }}` .. it really is there .. how odd
21:26:08 <petern> Not using main for new repos?
21:26:23 <TrueBrain> we do; this was OpenTTD's main repo I was talking about
21:26:49 *** HerzogDeXtEr has quit IRC (Read error: Connection reset by peer)
21:28:20 <TrueBrain> owh, they never started
21:28:24 <TrueBrain> so they aren't actually cancelled
21:28:27 <TrueBrain> just bumped out of the queue
21:28:32 <TrueBrain> GitHub thinks that is fine
21:28:39 <TrueBrain> as who would want every commit checked after all ... lolz
21:28:52 <TrueBrain> (sometimes they are a bit .. focused on their use-cases π Despite tons of threads about these things :P)
21:29:52 <TrueBrain> well, at least they no longer make it a red cross next to the commit .. so I guess it is "good enough" π
21:47:52 *** nielsm has quit IRC (Ping timeout: 480 seconds)
22:02:41 *** tokai|noir has joined #openttd
22:02:41 *** ChanServ sets mode: +v tokai|noir
22:09:22 *** tokai has quit IRC (Ping timeout: 480 seconds)
22:57:54 <petern> Apparently std::optional causes fun
23:04:37 <Eddi|zuHause> for which definition of "fun"?
23:05:28 <TrueBrain> Just some missing includes. Fun fact: Microsoft advises to add these includes (like vector, optional, etc) in stdafx, so it can be precompiled
23:15:09 <glx[d]> well vector is (or will be) used almost everywhere in openttd
continue to next day β΅