IRC logs for #openttd on OFTC at 2021-05-30
            
00:02:53 *** ANIKHTOS has joined #openttd
00:03:01 <ANIKHTOS> hello to all
00:06:47 *** iSoSyS has joined #openttd
00:25:03 *** iSoSyS has quit IRC ()
00:41:50 *** Kitrana has quit IRC (Read error: Connection reset by peer)
00:42:42 *** ANIKHTOS has quit IRC (Quit: Page closed)
00:52:25 *** Kitrana has joined #openttd
01:33:34 *** HerzogDeXtEr has quit IRC (Read error: Connection reset by peer)
01:38:15 *** gelignite has quit IRC (Quit: Stay safe!)
02:04:26 *** glx has quit IRC ()
02:59:35 *** Wormnest has quit IRC (Quit: Leaving)
03:22:58 *** Eddi|zuHause has quit IRC (Remote host closed the connection)
03:23:42 *** Eddi|zuHause has joined #openttd
04:58:28 *** tokai has joined #openttd
04:58:28 *** ChanServ sets mode: +v tokai
05:05:29 *** tokai|noir has quit IRC (Ping timeout: 480 seconds)
05:12:06 *** Flygon has joined #openttd
06:05:18 *** tokai|noir has joined #openttd
06:05:18 *** ChanServ sets mode: +v tokai|noir
06:05:35 *** snail_UES_ has quit IRC (Quit: snail_UES_)
06:11:34 *** andythenorth has joined #openttd
06:12:14 *** tokai has quit IRC (Ping timeout: 480 seconds)
06:36:35 *** nielsm has joined #openttd
06:40:47 *** Wolf01 has joined #openttd
07:28:41 *** gelignite has joined #openttd
07:31:58 *** sla_ro|master has joined #openttd
07:41:00 <DorpsGek> [OpenTTD/OpenTTD] rubidium42 updated pull request #9307: Fix: artificially limit heightmap sizes to something reasonable https://git.io/JGZqm
07:46:14 <DorpsGek> [OpenTTD/OpenTTD] TrueBrain approved pull request #9307: Fix: artificially limit heightmap sizes to something reasonable https://git.io/JGCtW
07:50:09 <DorpsGek> [OpenTTD/OpenTTD] rubidium42 commented on pull request #9307: Fix: artificially limit heightmap sizes to something reasonable https://git.io/JGCqk
07:50:41 <DorpsGek> [OpenTTD/OpenTTD] rubidium42 merged pull request #9307: Fix: artificially limit heightmap sizes to something reasonable https://git.io/JGZqm
07:56:02 <DorpsGek> [OpenTTD/OpenTTD] rubidium42 updated pull request #9273: Codechange: [Network] Use std::string for admin name and version https://git.io/Jscc1
07:57:45 <DorpsGek> [OpenTTD/OpenTTD] rubidium42 commented on pull request #9273: Codechange: [Network] Use std::string for admin name and version https://git.io/JGCmk
08:03:23 <DorpsGek> [OpenTTD/OpenTTD] rubidium42 updated pull request #9273: Codechange: [Network] Use std::string for admin name and version https://git.io/Jscc1
08:03:50 <DorpsGek> [OpenTTD/OpenTTD] TrueBrain approved pull request #9273: Codechange: [Network] Use std::string for admin name and version https://git.io/JGCYq
08:11:48 *** Progman has joined #openttd
08:14:39 <DorpsGek> [OpenTTD/OpenTTD] TrueBrain opened pull request #9313: Codechange: rename _SQ64 into POINTER_IS_64BIT https://git.io/JGCOi
08:15:25 <DorpsGek> [OpenTTD/OpenTTD] rubidium42 merged pull request #9273: Codechange: [Network] Use std::string for admin name and version https://git.io/Jscc1
08:31:35 *** WormnestAndroid has quit IRC (Remote host closed the connection)
08:31:48 *** WormnestAndroid has joined #openttd
08:37:09 *** HerzogDeXtEr has joined #openttd
08:39:30 <DorpsGek> [OpenTTD/OpenTTD] rubidium42 approved pull request #9313: Codechange: rename _SQ64 into POINTER_IS_64BIT https://git.io/JGCnq
08:40:07 <DorpsGek> [OpenTTD/OpenTTD] TrueBrain merged pull request #9313: Codechange: rename _SQ64 into POINTER_IS_64BIT https://git.io/JGCOi
08:40:43 <DorpsGek> [OpenTTD/OpenTTD] rubidium42 approved pull request #9311: Codechange: use setting name instead of index for HandleOldDiffCustom() https://git.io/JGCn8
08:41:03 <DorpsGek> [OpenTTD/OpenTTD] TrueBrain merged pull request #9311: Codechange: use setting name instead of index for HandleOldDiffCustom() https://git.io/JGnPe
08:41:13 <DorpsGek> [OpenTTD/OpenTTD] TrueBrain updated pull request #9312: Codechange: add a wrapper function to find all settings based on prefix https://git.io/JGnXk
08:41:37 <TrueBrain> ugh ... the new savegame idea is nice, but it leaves such blobs of code behind to load old games ..
08:42:07 *** andythenorth has quit IRC (Quit: andythenorth)
08:42:43 <DorpsGek> [OpenTTD/OpenTTD] rubidium42 approved pull request #9312: Codechange: add a wrapper function to find all settings based on prefix https://git.io/JGCn9
08:55:36 <TrueBrain> and settings are stored in a custom way, that is not helping either :D
08:55:56 <DorpsGek> [OpenTTD/OpenTTD] TrueBrain merged pull request #9312: Codechange: add a wrapper function to find all settings based on prefix https://git.io/JGnXk
08:59:18 *** tokai has joined #openttd
08:59:18 *** ChanServ sets mode: +v tokai
09:06:08 *** tokai|noir has quit IRC (Ping timeout: 480 seconds)
09:08:29 <TrueBrain> lol, many things could be C++17-ified in the saveload stuff too ...
09:08:35 <TrueBrain> how deep to make this rabbit hole you ask? :D
09:23:48 *** tokai|noir has joined #openttd
09:23:48 *** ChanServ sets mode: +v tokai|noir
09:29:40 *** nielsm has quit IRC (Remote host closed the connection)
09:30:44 *** tokai has quit IRC (Ping timeout: 480 seconds)
09:39:02 <Rubidium> maybe first wait for glx with the for loop for the chunk handlers?
09:39:33 <TrueBrain> well, I decided not to go down that rabbit hole at all :P
09:41:48 *** jottyfan has joined #openttd
09:42:14 *** andythenorth has joined #openttd
09:42:18 <TrueBrain> the idea of writing the schema first and then in a loop the data, is .. tricky ..
09:42:24 <andythenorth> ooof
09:42:25 <TrueBrain> lot of code is not build with that in mind :D
09:42:35 <andythenorth> nothing says 'sunny bank holiday weekend' like getting C19 tests for the kids
09:42:58 <TrueBrain> oof indeed
09:45:39 *** jottyfan has quit IRC ()
09:54:43 <TrueBrain> " * Do something of which I have no idea what it is :P" <- a doxygen comment of a function
09:54:44 <TrueBrain> lol
09:55:53 *** EER has joined #openttd
09:56:09 <andythenorth> maybe I can automate my s3 grf website in small steps
09:56:22 <andythenorth> automating the sync would be nice
09:56:24 <EER> automation sounds like fun
09:56:36 <TrueBrain> seems EER wants to help you out andythenorth :)
09:56:43 <andythenorth> oof
09:56:48 <EER> I'm all about that scripting life man
09:57:09 <andythenorth> seems AWS publish a big python lib
09:57:19 <andythenorth> Boto3
09:57:27 <TrueBrain> its what we use for all AWS automation :)
09:57:34 <TrueBrain> did you look at Cloudflare Pages?
09:57:47 <TrueBrain> they basically automated the: you push to GitHub, we publish the results for you
09:57:55 <andythenorth> I did, but I have work-based reasons to learn more about AWS
09:58:05 <TrueBrain> AWS has those services too
09:58:17 <DorpsGek> [OpenTTD/OpenTTD] rubidium42 opened pull request #9314: Codechange: let the setting name be std::string https://git.io/JGCaz
09:58:22 <TrueBrain> just ... a bit harder ... to digest :D
09:58:27 <andythenorth> the short cut to publishing is: push a tag to GitHub, then [magic]
09:58:40 <andythenorth> but I need to learn a bit more about AWS for myself
10:00:10 <EER> From my five minute foray into AWS for e-mail hosting reasons I feel their dashboarding is really really convoluted compared to Azure
10:00:32 <EER> but I guess if I would spend more than 5 minutes and needed to do something I actually cared about perhaps it's quite straightforward ;)
10:01:12 <TrueBrain> andythenorth: https://medium.com/avmconsulting-blog/automate-static-website-deployment-from-github-to-s3-using-aws-codepipeline-16acca25ebc1 :)
10:01:36 <TrueBrain> it is just the start of increasing your AWS bill
10:01:40 <TrueBrain> so be a bit careful there :)
10:02:27 <TrueBrain> or https://aws.amazon.com/blogs/devops/automatically-deploy-from-github-using-aws-codedeploy/ btw
10:02:47 *** andythenorth_ has joined #openttd
10:03:04 <EER> "This post has been updated on October 1, 2018 to reflect the deprecation of GitHub services"
10:03:16 <TrueBrain> yup
10:03:20 <TrueBrain> doesn't make it any less valuable :)
10:03:20 <EER> I guess the target keeps moving ;)
10:03:33 <TrueBrain> AWS can also host code etc
10:03:51 <TrueBrain> but yeah ... it is not easy to learn AWS services, sadly
10:03:55 *** andythen_ has joined #openttd
10:04:13 <TrueBrain> seems andythenorth doesn't want to know, so now he made himself into an army of 3
10:04:14 <TrueBrain> :D
10:04:30 <EER> maybe that will help reading through all the docs :p
10:05:18 *** andythe__ has joined #openttd
10:05:34 <andythe__> do I have an odd tail on my nick
10:05:45 <andythe__> this connection has lolz stability
10:05:59 <TrueBrain> it saw the AWS links I send
10:06:01 <TrueBrain> so it ran away
10:06:05 <TrueBrain> makes sense
10:08:45 *** andythenorth has quit IRC (Ping timeout: 480 seconds)
10:10:51 *** andythenorth_ has quit IRC (Ping timeout: 480 seconds)
10:11:56 *** andythe__ is now known as andythenorth
10:11:56 *** andythen_ has quit IRC (Ping timeout: 480 seconds)
10:13:45 <andythenorth> oof I'm up to Sam preview-10
10:13:54 <andythenorth> so now I have to remember the git command to sort tags properly
10:14:29 <Rubidium> just make it Sam preview-9.9
10:15:01 <andythenorth> yes
10:15:06 <andythenorth> then 9.9.9 after that
10:15:15 <Rubidium> just 9.99
10:16:03 <andythenorth> wonder why my docs builder is sooooo slow
10:16:52 <andythenorth> maybe copytree is really slow? https://github.com/andythenorth/grf.farm/blob/master/src/build_dist.py#L45
10:20:04 <andythenorth> it's slow copying 36,576 items with 357.1 MB on disk file size
10:21:29 <andythenorth> maybe I could only copy what's changed
10:21:37 <andythenorth> but I don't know how to reliably determine that
10:26:55 *** Samu has joined #openttd
10:28:15 <peter1138> good ol' rsync eh
10:34:05 *** iSoSyS has joined #openttd
10:34:06 *** andythenorth has quit IRC (Quit: andythenorth)
10:36:40 *** andythenorth has joined #openttd
10:36:43 *** Speedy` has quit IRC (Read error: Connection reset by peer)
10:37:21 *** nielsm has joined #openttd
10:37:51 *** Speedy` has joined #openttd
10:46:29 *** iSoSyS has quit IRC ()
10:50:04 *** andythenorth has quit IRC (Quit: andythenorth)
11:00:42 *** Wolf01 is now known as Guest194
11:00:43 *** Wolf01 has joined #openttd
11:03:32 *** geli has joined #openttd
11:07:14 *** Guest194 has quit IRC (Ping timeout: 480 seconds)
11:10:11 *** gelignite has quit IRC (Ping timeout: 480 seconds)
11:11:09 *** tokai has joined #openttd
11:11:09 *** ChanServ sets mode: +v tokai
11:13:40 *** jottyfan has joined #openttd
11:17:17 <DorpsGek> [OpenTTD/OpenTTD] rubidium42 opened pull request #9315: Codechange: use std::string with network's ContentInfo https://git.io/JGCyL
11:18:07 *** tokai|noir has quit IRC (Ping timeout: 480 seconds)
11:23:21 *** frosch123 has joined #openttd
11:23:52 <frosch123> how underwhelming.. only 3 devzone mails over night, 1:25, 8:55, 12:59
11:26:44 *** Strom has quit IRC ()
11:28:27 *** Strom has joined #openttd
11:35:55 *** andythenorth has joined #openttd
11:35:55 <andythenorth> so goes it use os.system.foo and rsync?
11:35:59 <andythenorth> not copytree?
11:38:51 <peter1138> Simplex noise, eh?
11:39:53 <andythenorth> for TGP?
11:41:16 <andythenorth> hmm simplex has a bit of a trypophobia effect in some results
11:41:17 <andythenorth> weird
11:42:28 * andythenorth now in procedural generation reddit
11:42:34 <andythenorth> it's really quite trypophobic
11:44:11 <andythenorth> staring at this is slightly like taking hallucinogens https://www.reddit.com/r/proceduralgeneration/comments/njcewn/rivers_roses_raccoons/
11:58:57 *** andythenorth_ has joined #openttd
11:59:40 *** andythenorth has quit IRC (Ping timeout: 480 seconds)
12:02:42 <DorpsGek> [OpenTTD/OpenTTD] LC-Zorg commented on discussion #9299: Cities build irrational bridges: right on the shore, along the lake, next to each other https://git.io/JGLMK
12:06:59 *** Strom has quit IRC ()
12:08:06 *** Strom has joined #openttd
12:12:11 <TrueBrain> frosch123: our saveload routines are .. annoying to put in any database format :P
12:12:33 <TrueBrain> there are a lot of weird and custom things we do in each chunk
12:13:06 <TrueBrain> the idea of (header1, header2), (item1.1, item1.2), (item2.1, item2.2)
12:13:12 <TrueBrain> is not ... really possible in many places :P
12:13:20 <frosch123> can you give an example
12:13:25 <TrueBrain> plenty!
12:13:29 <frosch123> i thought it was just SlObject everywhere
12:13:36 <TrueBrain> kinda
12:13:50 <TrueBrain> basically, what we do in most places
12:13:59 <TrueBrain> write index
12:14:00 <TrueBrain> write blob
12:14:01 <TrueBrain> write index
12:14:02 <TrueBrain> write blob
12:14:08 <TrueBrain> and the blob can be of different lengths
12:14:08 <TrueBrain> https://github.com/OpenTTD/OpenTTD/blob/master/src/saveload/company_sl.cpp#L429
12:14:10 <TrueBrain> as example
12:14:16 <TrueBrain> num_build_rec is not static
12:14:21 <TrueBrain> so okay, that could be a list
12:14:30 <TrueBrain> but if you look at that function alone, which is a single iteration
12:14:38 <TrueBrain> you see it is not "just" a simple dict we write
12:15:15 <TrueBrain> its not impossible to fix it all btw
12:15:17 *** andythenorth has joined #openttd
12:15:18 <TrueBrain> just .. not as trivial
12:15:21 <frosch123> yeah, company looks more complicated :)
12:15:31 <TrueBrain> so far I haven't found an "easy" one :)
12:15:50 <frosch123> INDY looks easy, doesn't it?
12:15:50 <TrueBrain> but nested lists are the very least we need
12:16:22 <TrueBrain> INDY does, but shows we need post-processing
12:16:26 <TrueBrain> which is not fully unexpected, ofc
12:16:44 <frosch123> the poolindex->pointer transition?
12:16:44 <TrueBrain> but yeah, hadn't checked thatone yet :P
12:17:05 <TrueBrain> IncIndustryTypeCount and stuff
12:17:15 <TrueBrain> but I had the same with settings .. basically it becomes: load the saveblob
12:17:17 <TrueBrain> post-process it
12:17:30 <TrueBrain> instead of what we do now: load one field, post-process, load the second, post-process, etc
12:17:54 <TrueBrain> but I kinda gave up on the idea of "just adding a header" :)
12:18:01 *** andythenorth_ has quit IRC (Ping timeout: 480 seconds)
12:18:31 <frosch123> IncIndustryTypeCount is just in the wrong place :p it belong into InitializeWindowsAndCaches, though ofc noone knows whether it is read earlier in the saveload code :p
12:18:59 <TrueBrain> there are all kinds of these things :)
12:19:04 <TrueBrain> https://github.com/OpenTTD/OpenTTD/blob/master/src/saveload/station_sl.cpp#L336
12:19:12 <TrueBrain> like .. SwapPackets? What is it doing and why there? :)
12:19:15 <frosch123> TrueBrain: so, what about only the settings part?
12:19:24 <frosch123> that was the rabbit hole one level up, right?
12:19:24 <TrueBrain> I think we just have to start there
12:19:29 <TrueBrain> as that is the most important one
12:19:38 <TrueBrain> the rest doesn't change -that- much
12:20:05 <TrueBrain> the main issue I am having there, is backwards compatibility
12:20:11 <TrueBrain> I basically need a giant list of the current order :)
12:20:37 <TrueBrain> or an "order" field, but the settings-generator is not the easiest code to work with :P
12:21:32 <DorpsGek> [OpenTTD/OpenTTD] LC-Zorg opened issue #9316: Very large cities can build bridges of unlimited length https://git.io/JGCbV
12:21:45 <TrueBrain> UNLIMITED?! Cool :D
12:21:50 <TrueBrain> sorry :P
12:23:22 <frosch123> swappackets is a funny hack :p
12:23:44 <TrueBrain> I think it is only worth cleaning this all up when we really go to SQLite
12:23:55 <TrueBrain> otherwise it feels really .. "pointless" to do
12:25:02 <TrueBrain> and I think in my first draft I am going to make settings just "key-based" instead of the current "indexed-based", just to see how that goes
12:27:43 <DorpsGek> [OpenTTD/OpenTTD] James103 commented on issue #9316: Very large cities can build bridges of unlimited length https://git.io/JGCbV
12:29:50 <TrueBrain> I think it is fair if you have 250k people living in your city that you can pull of the bridge of all bridges :D
12:32:22 <frosch123> https://en.wikipedia.org/wiki/List_of_longest_bridges <- the problem is that all the viaducts spoil the bridge list
12:34:36 <Rubidium> LGTM is broken as this seems to be https://lgtm.com/rules/1505957036972/
12:34:50 <Rubidium> and LGTM does not trigger on this
12:34:51 <DorpsGek> [OpenTTD/OpenTTD] LC-Zorg opened issue #9317: The city, while expanding, blocks waterways, which may block the movement of ships https://git.io/JGCxz
12:35:55 <DorpsGek> [OpenTTD/OpenTTD] LC-Zorg commented on issue #9316: Very large cities can build bridges of unlimited length https://git.io/JGCbV
12:37:05 <TrueBrain> settings are really this weird combination of struct vs list .. and SaveLoad is not build for it :D
12:38:44 *** andythenorth has quit IRC (Quit: andythenorth)
12:41:09 <DorpsGek> [OpenTTD/OpenTTD] rubidium42 opened pull request #9318: Fix #9316, 64eddaeb: at about 250.000 inhabitants the bridge length limit check overflows https://git.io/JGCpg
12:42:12 <DorpsGek> [OpenTTD/OpenTTD] rubidium42 updated pull request #9318: Fix #9316, 64eddaeb: at about 250.000 inhabitants the bridge length limit check overflows https://git.io/JGCpg
12:42:22 <Rubidium> that's what I get for pushing it before my local build is complete ;)
12:45:18 <DorpsGek> [OpenTTD/OpenTTD] LC-Zorg opened issue #9319: Bridges built over diagonal waterways can block them https://git.io/JGChU
12:46:37 <DorpsGek> [OpenTTD/OpenTTD] 2TallTyler commented on issue #9317: The city, while expanding, blocks waterways, which may block the movement of ships https://git.io/JGCxz
12:59:23 *** glx has joined #openttd
12:59:23 *** ChanServ sets mode: +v glx
13:07:40 <glx> I remember some PR about #9317 and #9319, but can't find them
13:08:03 <Rubidium> aren't those the ones 2TallTyler linked to?
13:08:08 <glx> oh yes
13:08:29 <glx> he was faster, didn't look back to 2018 yet
13:08:47 <DorpsGek> [OpenTTD/OpenTTD] michicc approved pull request #9318: Fix #9316, 64eddaeb: at about 250.000 inhabitants the bridge length limit check overflows https://git.io/JGWft
13:09:22 <DorpsGek> [OpenTTD/OpenTTD] rubidium42 closed issue #9316: Very large cities can build bridges of unlimited length https://git.io/JGCbV
13:09:25 <DorpsGek> [OpenTTD/OpenTTD] rubidium42 merged pull request #9318: Fix #9316, 64eddaeb: at about 250.000 inhabitants the bridge length limit check overflows https://git.io/JGCpg
13:15:01 *** tokai|noir has joined #openttd
13:15:01 *** ChanServ sets mode: +v tokai|noir
13:16:16 *** jottyfan has quit IRC (Quit: jottyfan)
13:21:56 *** tokai has quit IRC (Ping timeout: 480 seconds)
13:28:31 <TrueBrain> okay ... I can now save/load settings based on their name .. just a bunch of issues to resolve :P
13:29:30 <TrueBrain> the main issue is how to know when we are done reading the header ..
13:33:02 <TrueBrain> lol, you cannot overwrite a savegame that crashes the game
13:33:05 <TrueBrain> as clicking on it .. loads it :D
13:35:54 <TrueBrain> warning: ISO C++ forbids converting a string constant to ‘char*’ <- it is a warning that someone forbids it .. lol?
13:37:46 <frosch123> it's valid in c89 :p
13:37:52 <frosch123> though it may segfault
13:38:30 <TrueBrain> hmm .. I write 384 settings and load 357
13:38:34 <TrueBrain> that doesn't sound correct :)
13:39:40 <TrueBrain> ah, conditional bla
13:45:39 <glx> hmm maybe starting VS2019 16.10.0 was not a wise idea
13:46:17 <glx> oh forgot "update" somewhere in previous sentence
13:46:29 <TrueBrain> I stopped reading after VS anyway :P
13:46:30 <TrueBrain> <3
13:47:00 <glx> it's stuck at 46 of 1369
13:47:33 <glx> .net packages installation is so slow
13:51:00 <TrueBrain> owh, you can only have 1 SlObject in a Save function
13:51:11 <TrueBrain> otherwise the size is not calculated in full
13:51:56 <frosch123> didn't you just show me earlier that company_sl has two dozen of them?
13:52:14 <TrueBrain> in a wrapper!
13:52:28 <TrueBrain> SlAutolength
13:52:32 <TrueBrain> which only accepts 1 argument
13:52:33 <TrueBrain> I have 2 :P
13:53:04 <glx> you need a wrapper around wrapper :)
13:55:20 <TrueBrain> well, I need to move my code inside the saveload
13:55:24 <TrueBrain> but I first want to know if it works :P
13:59:27 <TrueBrain> finally :D I can official load the game back in :)
14:00:33 <TrueBrain> https://github.com/OpenTTD/OpenTTD/compare/master...TrueBrain:settings-rework <- getting there .. it now writes a header, and uses it to load the entries back in
14:00:46 <TrueBrain> now to move it inside saveload as I really need to store the type
14:01:01 <TrueBrain> it is not a dict .. guess "table" is the best word for what this is
14:01:29 <TrueBrain> means I can write the size of the header instead of this weird "(end marker)" :D
14:03:50 <TrueBrain> byte block_mode; ///< ???
14:03:51 <TrueBrain> lol
14:16:20 <peter1138> Best comments
14:16:44 <glx> and of course now it needs a reboot
14:17:04 *** glx has quit IRC ()
14:17:07 <TrueBrain> someone is enjoying your Microsoft software :)
14:17:13 <TrueBrain> s/your/their/
14:21:25 *** glx has joined #openttd
14:21:25 *** ChanServ sets mode: +v glx
14:21:35 <TrueBrain> wb
14:21:46 <glx> happy to have a SSD ;)
14:27:03 *** Gustavo6046 has quit IRC (Ping timeout: 480 seconds)
14:29:21 <TrueBrain> settings is a nice test-case .. there are so many headers, it doesn't fit in a single byte :P
14:31:24 <Rubidium> you just need a byte with more bits ;)
14:31:31 <TrueBrain> ...... NO
14:31:32 <TrueBrain> stop it you
14:31:34 <TrueBrain> STOP IT :D
14:47:28 <Rubidium> it's fun finding manuals where CHAR_BIT is 16 and INT_MAX is 32767... will be fun to get OpenTTD compiled there
14:47:40 <TrueBrain> what did I just say?
14:47:44 <TrueBrain> you never listen :P
14:47:52 <TrueBrain> <3
14:48:59 <Rubidium> I did... STOP: Stop, Take a Breath, Observe, Proceed
14:49:13 <TrueBrain> ....
14:49:14 <TrueBrain> :P
14:49:47 <TrueBrain> SlTableHeader(saveloads.data());
14:49:47 <TrueBrain> SlObject(object, saveloads.data());
14:49:49 <TrueBrain> well, that works
14:49:51 <TrueBrain> now for loading ..
14:50:00 <TrueBrain> which is vastly more complicated :D
14:53:37 <Samu> hi, got a question: isn't the Frozen economy setting supposed to not create new industries?
14:54:59 <Samu> Oil Rigs are being generated
14:58:36 *** jottyfan has joined #openttd
15:22:18 *** tokai has joined #openttd
15:22:19 *** ChanServ sets mode: +v tokai
15:22:41 <TrueBrain> hi Samu ! No clue, sorry :(
15:26:11 <TrueBrain> frosch123: https://github.com/OpenTTD/OpenTTD/compare/master...TrueBrain:settings-rework <- I think this is generic enough to also be used by the simpler SaveLoads that we have
15:26:23 <TrueBrain> it is not finished yet, but I think this shows the basics enough
15:26:25 <TrueBrain> I could use opinions :)
15:26:46 <TrueBrain> but basically on save I write a header (SaveLoad gained "name" for that)
15:26:58 <TrueBrain> and on load I first read the header, then shuffle the SaveLoad array to be in the right order
15:27:16 <frosch123> i didn't know rct has even more sprite sorting issues as ottd
15:27:17 <TrueBrain> so very little changes for the rest of SaveLoad .. it just reorders the list of fields to read :)
15:27:33 <TrueBrain> frosch123: go fix them!
15:28:15 <frosch123> what's your plan for savegame version 289.1 ? :p
15:28:27 <frosch123> sorry, first thing to notice :)
15:28:38 <TrueBrain> what are you smoking exactly? :P
15:28:51 <frosch123> you seem to like {} a lot
15:29:03 <TrueBrain> yeah, being explicit when I really mean an empty string
15:29:11 <TrueBrain> not that it looks like I forgot to add it or what-ever :)
15:29:18 *** tokai|noir has quit IRC (Ping timeout: 480 seconds)
15:30:21 <TrueBrain> and if you mean, why not "", last time I got comments on my PR for using "" and not {}, so yeah, that :P
15:32:33 <TrueBrain> after dinner I will see if I can do INDY or what-ever
15:33:46 <frosch123> i think the biggest advantage is still that also other tools like bananas could read parts of savegames
15:33:54 <frosch123> so, i wonder what chunks may be interesting for them
15:34:09 <frosch123> current bananas parses used newgrf, ai and gs
15:34:13 <TrueBrain> it for sure would make reading a lot easier :)
15:34:17 <frosch123> settings is the next big thing
15:34:41 <frosch123> what else would be nice to know for bananas?
15:34:53 <TrueBrain> _m
15:34:56 <TrueBrain> things like elevation
15:34:57 <TrueBrain> % sea
15:35:03 <TrueBrain> how many towns
15:35:04 <TrueBrain> how many industries
15:35:12 <TrueBrain> so many things :)
15:36:56 <TrueBrain> owh, right, and I need to store the type and on loading check if they still match
15:37:01 <TrueBrain> but that is easy now :)
15:37:20 <TrueBrain> settings that are enums are not stored by their value btw
15:37:38 <TrueBrain> that requires a bit more work and attention :)
15:37:48 <TrueBrain> value = string value
15:39:01 <TrueBrain> anyway frosch123 , reason I linked it: do you see any issues with this approach?
15:42:50 <frosch123> static void RealSave_PATS(Town *t) <- what's that Town? :p
15:43:00 <TrueBrain> I don't care about your OCD atm
15:43:01 <TrueBrain> :)
15:43:12 <TrueBrain> there is a good reason this is not a PR yet :P
15:43:25 <TrueBrain> damn, you are the kind of person you really cannot show an in-between work, aren't you? :P
15:44:04 <frosch123> no, you just overestimate how much i understand the saveload code :) i have no idea what this slautolength does
15:44:43 <TrueBrain> makes sure the chunk length is calculated correctly :)
15:45:18 <TrueBrain> a bit of a quirk in the SaveLoad .. the top-level is a bit weird
15:45:43 <TrueBrain> but also not relevant to my question, honestly :D (most chunk save/load already have SlAutoLength :P)
15:46:44 <frosch123> i like how you use the same saveload-thingie to store the header, reusing the same version_from/to, just replacing the type with string and using the name
15:48:26 <TrueBrain> not sure if it is needed, but basically this keeps the current savegame version stuff alive
15:48:45 <TrueBrain> so there is nothing you cannot do after this change you could before :)
15:52:21 <frosch123> you do not yet store the type, right?
15:52:29 <TrueBrain> nope, not yet
15:53:50 <TrueBrain> stupid "conv" field is 2 things in one .. how to store on disk, and how to store in memory
15:53:52 <TrueBrain> so annoying
15:53:59 <frosch123> not sure about the "" terminator. don't we usually store arrays with a size-item in front?
15:54:08 <TrueBrain> "it depends" :)
15:54:13 <TrueBrain> arrays are 0-terminated
15:54:15 <TrueBrain> but it is an index
15:54:19 <TrueBrain> lists are prefixed with the size
15:54:27 <TrueBrain> my main issue is: I don't know the size yet
15:54:39 <TrueBrain> because version_from/version_to etc
15:54:54 <TrueBrain> but I ensure that there are no "" entries (as that would break anyway)
15:55:09 <TrueBrain> so I figured .. either I write 2 bytes at the start to give the length, or a \0 at the end to indicate the end
15:57:25 <frosch123> hmm, i am not happy with the #variable
15:57:45 <TrueBrain> why not?
15:57:46 <frosch123> people can break savegames just by renaming some struct members
15:58:02 <TrueBrain> the alternative is to change every saveload desc[]
15:58:04 <TrueBrain> to add a field
15:58:14 <TrueBrain> which is in .. I would guess .. 90% of the times identical to the struct member :)
15:58:32 <TrueBrain> I am not disagreeing with you btw
15:58:42 <TrueBrain> I fiddled a bit with it, but had a hard time finding a good method
15:59:07 <frosch123> maybe we can add some regression test, that detects when names change
16:00:04 <TrueBrain> I also considered yet-another-set-of-macros so you can overwrite the name
16:00:10 <TrueBrain> but .. yeah .. more is not better in this case :P
16:00:39 <TrueBrain> I also realised that if we can do reflection, lot of the SLE_XXX lines can be smaller :P
16:01:15 <TrueBrain> maybe we should rewrite the macros into C++
16:01:30 <Rubidium> definitely a lot is possible with templates in that respect
16:02:00 <TrueBrain> but yeah frosch123 , name changes will now be an extra thing on the list to watch out for
16:02:02 <Rubidium> except for the way it is stored in the file
16:02:09 <frosch123> TrueBrain: actually, nevermind, the variable names are repeated in the .ini files. so renaming stuff there is more obvious than just renaming in a struct
16:02:19 <frosch123> they are already used in openttd.cfg
16:02:31 <Rubidium> but the way it is stored would become part of the savegame format, so... that's not really an issue I guess
16:02:35 <TrueBrain> for the settings specific, the names are taken from the .ini file
16:02:47 <frosch123> i just assumed we were already at the reflection-thingie :p
16:02:57 <TrueBrain> not 2023 yet :(
16:03:31 <Rubidium> though the new code will probably be a lot cleaner if one would start with a new format and have the old cruft as (yet another) oldloader
16:03:44 *** Wormnest has joined #openttd
16:04:11 <TrueBrain> we have a function GetVarFileType, that is not used
16:04:13 <TrueBrain> instead, GB() is used
16:04:18 <TrueBrain> yippie? :D
16:04:37 <TrueBrain> not -> not always
16:04:39 <TrueBrain> typing, hard
16:05:10 <Rubidium> as if you don't you'll still need to keep the old format information around in likely the same structure/list, so the point of going to a new format diminishes quite significantly
16:05:37 <Rubidium> I guess someone wasn't finished with the GB -> more descriptive helper function conversion yet
16:06:38 <nielsm> I haven't read the discussion at all, but going to a new savegame file format could perhaps be done as a two-step conversion, where there is an isolated library that essentially converts everything to the baseline for the new format, and then further conversions are on top of that
16:07:45 <Rubidium> I've been wrapping my head around trying to figure out a nice and elegant way to determine "var type" from the actual type. Though the "file type" still needs to come from somewhere making doing it sort-of-moot
16:09:14 <frosch123> you can probably do it with decltype
16:10:53 <Rubidium> only partly as for enums you want to go to their int-type, etc. It's mostly just simmering while I'm doing other things
16:10:54 <frosch123> SaveLoadMagicTemplate<decltype(Industry::tile)>(...)
16:11:37 <frosch123> https://en.cppreference.com/w/cpp/types/underlying_type
16:11:49 <Rubidium> yeah, I already found that
16:12:15 <frosch123> but well, probably easier with c++20 concepts
16:12:29 <Rubidium> the problem is "Dimension" that needs to become "list" ;)
16:16:27 *** Beer has joined #openttd
16:17:59 <Rubidium> hmm, can you "symlink" variables? i.e. class Dimension : std::array<int, 2> { int width -> this[0]; int height -> this[1]; }, so I can use it as an std::array while still having the useful labels width and height
16:19:04 <TrueBrain> okay, type is now also saved .. now only I need the ability to skip unknown fields, and throw a clean error when they differ .. but first, DINNER TIME! :D
16:20:11 <frosch123> Rubidium: you can certainly add a custom operator[] to a regular struct
16:20:32 <frosch123> but the whole "union" thing is uff
16:20:47 <glx> ok I tried something different for #9180 with https://github.com/OpenTTD/OpenTTD/compare/master...glx22:saveload2
16:22:06 *** Gustavo6046 has joined #openttd
16:23:18 <Rubidium> frosch123: sadly it's not about the operator[] but rather it being of type std::array so I can make all lists std::array
16:26:28 *** Kitrana has quit IRC (Read error: Connection reset by peer)
16:27:32 <DorpsGek> [OpenTTD/BaNaNaS] frosch123 opened pull request #99: Change: migrate OpenTTD user gabriel_j_young to GitHub user gabrieljyoung https://git.io/JGWiA
16:32:39 <Rubidium> https://godbolt.org/z/ra1daG8cG <- it sort of works, but... wonky as heck
16:35:27 *** Kitrana has joined #openttd
16:35:33 *** andythenorth has joined #openttd
16:36:37 *** andythenorth has quit IRC (Remote host closed the connection)
16:37:28 *** andythenorth has joined #openttd
16:38:09 <andythenorth> how many tails have I got now?
16:38:12 <andythenorth> oh none :(
16:44:45 *** Gustavo6046_ has joined #openttd
16:45:29 *** snail_UES_ has joined #openttd
16:47:12 *** Gustavo6046 has quit IRC (Ping timeout: 480 seconds)
16:47:12 *** Gustavo6046_ is now known as Gustavo6046
17:04:05 <frosch123> Rubidium: why do you need it to be a real std::array? isn't something duck-types like std::array good enough?
17:09:39 <Rubidium> as I want to make all "lists" std::array, and get the size of the array from the type
17:10:24 <Rubidium> and changing the macros to be able to inject a "different" type (i.e. casting) might be way more troublesome in the long run
17:11:09 <Rubidium> although conceptually std::vector might be even better
17:11:27 <frosch123> you speak in riddles :)
17:12:14 <Rubidium> there are 3 "lists" in the settings code; (old)diff_custom, music presets and _cur_resolution
17:12:52 <Rubidium> I want to move away from type[N] as the N gets lost, so you have to hope whatever is passed actually fits within the collection
17:13:49 <Rubidium> the bonus of std::array<type, N> is that it has the same memory layout as type[N], so for migration purposes I can mix and match
17:14:34 <DorpsGek> [OpenTTD/OpenTTD] J0anJosep updated pull request #8480: Feature: Multitile depots https://git.io/JL5Hh
17:14:59 <Rubidium> and why vector might be better... for diff_custom there is a 17 and 18 element variant, for music presets... why limit to 33? Or why use 33 spaces when you do not use it? And _cur_resolution is... uhm... a nuisance
17:17:37 <Rubidium> an alternative would be a custom SettingDesc type for Dimension
17:21:53 <frosch123> https://dpaste.org/HDhy <- i found that in my openttd.cfg
17:22:11 <frosch123> no idea from when the entries are
17:23:11 *** Gustavo6046_ has joined #openttd
17:23:19 *** Gustavo6046 has quit IRC (Quit: ZNC 1.8.2 - https://znc.in)
17:23:45 *** Gustavo6046_ is now known as Gustavo6046
17:25:05 <Rubidium> the last three are the current behaviour
17:25:06 <frosch123> so resolution[0] and resolution[1] would be good enough
17:25:28 <frosch123> no need to invent something for a single setting
17:25:55 <Rubidium> well, it would become [resolution] \n width=640 \n height=480
17:26:02 <frosch123> "music presets" sounds like std::vector to me. they could be arbitrary size in theory
17:26:07 <DorpsGek> [OpenTTD/BaNaNaS] TrueBrain approved pull request #99: Change: migrate OpenTTD user gabriel_j_young to GitHub user gabrieljyoung https://git.io/JGW5y
17:26:13 <DorpsGek> [OpenTTD/BaNaNaS] TrueBrain merged pull request #99: Change: migrate OpenTTD user gabriel_j_young to GitHub user gabrieljyoung https://git.io/JGWiA
17:27:10 *** iSoSyS has joined #openttd
17:30:15 <DorpsGek> [OpenTTD/OpenTTD] J0anJosep opened issue #9320: Crash related to #9309 and DoCommandPInternal https://git.io/JGWFm
17:32:50 <DorpsGek> [OpenTTD/OpenTTD] J0anJosep commented on issue #9320: Crash related to #9309 and DoCommandPInternal https://git.io/JGWFm
17:34:04 <DorpsGek> [OpenTTD/OpenTTD] James103 commented on issue #9320: Crash related to #9309 and DoCommandPInternal https://git.io/JGWFm
17:36:01 <DorpsGek> [OpenTTD/OpenTTD] rubidium42 commented on issue #9320: Crash related to #9309 and DoCommandPInternal https://git.io/JGWFm
17:37:02 <DorpsGek> [OpenTTD/OpenTTD] J0anJosep commented on issue #9320: Crash related to #9309 and DoCommandPInternal https://git.io/JGWFm
17:42:08 <DorpsGek> [OpenTTD/OpenTTD] rubidium42 opened pull request #9321: Fix #9320, 2e136285: nullptr could not be converted to string https://git.io/JGWNJ
17:44:41 <DorpsGek> [OpenTTD/OpenTTD] J0anJosep commented on issue #9320: Crash related to #9309 and DoCommandPInternal https://git.io/JGWFm
17:52:13 <TrueBrain> frosch123: well, that is ne for the statistics again I guess :)
17:52:22 <DorpsGek> [OpenTTD/OpenTTD] TrueBrain approved pull request #9321: Fix #9320, 2e136285: nullptr could not be converted to string https://git.io/JGWAQ
17:53:35 *** iSoSyS has quit IRC ()
17:54:11 *** Flygon has quit IRC (Quit: A toaster's basically a soldering iron designed to toast bread)
17:55:13 *** tokai|noir has joined #openttd
17:55:13 *** ChanServ sets mode: +v tokai|noir
17:59:52 <DorpsGek> [OpenTTD/OpenTTD] rubidium42 closed issue #9320: Crash related to #9309 and DoCommandPInternal https://git.io/JGWFm
17:59:55 <DorpsGek> [OpenTTD/OpenTTD] rubidium42 merged pull request #9321: Fix #9320, 2e136285: nullptr could not be converted to string https://git.io/JGWNJ
18:02:08 *** tokai has quit IRC (Ping timeout: 480 seconds)
18:05:27 <TrueBrain> guess itis time to remove some settings and see if everything still works :P
18:05:33 <andythenorth> \o
18:12:40 <TrueBrain> new setting without bump, no issues; removing one, no issues; reordering it, no issues
18:12:43 <TrueBrain> it seems to actually work :P
18:13:27 *** andythenorth has quit IRC (Quit: andythenorth)
18:13:44 <TrueBrain> changing the type: a nice clean error
18:27:24 <TrueBrain> https://github.com/OpenTTD/OpenTTD/compare/master...TrueBrain:settings-rework <- frosch123 : see last commit, that is how an industry would look like
18:27:36 <TrueBrain> lot less code than I expected :D
18:28:59 <TrueBrain> still need a hard-coded fixed list for old savegames, but other than that, you can reorder the entries after that change :)
18:50:49 <frosch123> \o/
18:51:18 <frosch123> now we only need a reason to remove companies from the game
18:51:24 <TrueBrain> haha :D
18:51:48 <TrueBrain> if I return std::vector<SaveLoad> from a function
18:51:54 <TrueBrain> does it copy it, or will it do the smart thing?
18:53:14 <frosch123> it will do RVO if it can
18:54:15 <TrueBrain> so it is fine to do, if I understand that correctly :)
18:54:25 <frosch123> yes, it's encuraged to do
18:56:39 *** WormnestAndroid has quit IRC (Read error: Connection reset by peer)
18:56:52 *** WormnestAndroid has joined #openttd
18:57:22 <TrueBrain> k, so now lets fix loading old savegames while the settings ini file has its order changed ...
19:21:10 <TrueBrain> even that works \o/ :D
19:27:07 *** tokai has joined #openttd
19:27:07 *** ChanServ sets mode: +v tokai
19:33:49 <DorpsGek> [OpenTTD/OpenTTD] TrueBrain opened pull request #9322: Add: store settings as key->value pair https://git.io/JGlmd
19:34:02 *** tokai|noir has quit IRC (Ping timeout: 480 seconds)
19:36:41 <DorpsGek> [OpenTTD/OpenTTD] TrueBrain updated pull request #9322: Add: store settings as key->value pair https://git.io/JGlmd
19:37:02 <TrueBrain> frosch123: now you can let your OCD loose :P
19:43:19 <frosch123> hmm, you keep the savegame-version-"from" in the .ini files. can they be moved to _sl_compat as well?
19:43:43 <TrueBrain> in theory, but new ones will be needed in the ini files sooner or later
19:43:48 <TrueBrain> someone is going to change a type, etc
19:44:31 <DorpsGek> [OpenTTD/OpenTTD] TrueBrain updated pull request #9322: Add: store settings as key->value pair https://git.io/JGlmd
19:44:40 <frosch123> ah, i guess you still need to load some of the old settings for conversion
19:45:04 <TrueBrain> yeah
19:45:15 <TrueBrain> but honestly, this is the cheap way out
19:45:22 <TrueBrain> we can polish it further
19:45:41 <TrueBrain> that I moved the SLE_NULL is more a necessity .. they don't have names :P
19:47:30 *** andythenorth has joined #openttd
19:52:24 <TrueBrain> I also poked JGR on Discord, as I can imagine this messing with work he has in JGRPP :)
19:52:40 <andythenorth> quite cool https://www.reddit.com/r/openttd/comments/noiaya/tool_for_making_map_images_from_save_files/
19:53:06 <TrueBrain> indeed
19:53:24 <TrueBrain> frosch123: another reason to do this header stuff .. makes savegame read-tools a lot easier to keep compatible :)
19:54:04 <TrueBrain> andythenorth: I left him a note :)
19:54:27 <frosch123> TrueBrain: yep, bananas at least
19:54:47 <TrueBrain> yeah, we knew that already :P But clearly also other projects :)
19:55:35 <frosch123> well, and desync debugging no longer needs a hexviewer of the savegame
19:55:50 <frosch123> we can write a ottd2json/yaml/... tool
19:56:20 <DorpsGek> [OpenTTD/OpenTTD] DorpsGek pushed 1 commits to master https://git.io/JGl37
19:56:21 <DorpsGek> - Update: Translations from eints (by translators)
19:56:44 <frosch123> dorpsgek is moving into another timezone
19:57:04 * andythenorth wonders if map could be reconstructed from that visualisation :P
19:57:16 <andythenorth> serialise != deserialise
19:57:18 <andythenorth> oof
19:57:49 <TrueBrain> frosch123: GitHub is, sadly :(
19:57:59 <TrueBrain> frosch123: haha, ottd2json, now that is a funny idea :D
19:58:05 <TrueBrain> would make interesting debug-sessions for sure
19:58:37 <frosch123> until now we only had a tool that could parse chunks and dump them as hex
19:58:52 <frosch123> so we could run a text diff on the chunks of server and client savegaems
19:59:11 <frosch123> but you always had to have the SL_... stuff next to it, and then parse manually
19:59:35 <TrueBrain> well, in my PR you have a choice .. I can do it for as many chunks as I reasonably can
19:59:38 <TrueBrain> or leave that for another day
19:59:44 <TrueBrain> I am fine with either, honestly
20:00:25 <DorpsGek> [OpenTTD/OpenTTD] TrueBrain updated pull request #9322: Add: store settings as key->value pair https://git.io/JGlmd
20:00:30 <TrueBrain> upside of only doing Settings that if I screwed up, it is very local
20:00:38 <TrueBrain> upside of doing it all at once, well, we are busy with it anyway :P
20:04:42 <TrueBrain> despite our launch on Steam, it seems that this month will be a pretty average AWS bill .. funny :)
20:04:49 <frosch123> "yesterday" (before lunch) you told me, sl_company was too difficult :p
20:05:08 <TrueBrain> frosch123: funny aint it :P
20:05:18 <TrueBrain> but I am still not sure that one is easily doable
20:05:27 <TrueBrain> but many others are now very easy
20:05:28 <frosch123> what is the current number of steam licenses?
20:05:46 <frosch123> are there still new people?
20:06:56 <TrueBrain> Lifetime total units (?) 545,160
20:07:00 <TrueBrain> so yeah, more new people :)
20:07:19 <TrueBrain> 40k this week
20:07:40 <TrueBrain> ~10k active players a day
20:07:57 <TrueBrain> and 100 active players a day on Mac + Linux combined :P
20:07:58 <TrueBrain> its cute
20:08:26 <frosch123> everytime steam comes up, i think my main motivation to add achievements would be to add troll achievements like "started the game", "crashed the game", ...
20:08:50 <TrueBrain> the latter, absolutely
20:08:51 <Rubidium> "found the cheats"
20:09:09 <frosch123> "used ctrl"
20:10:31 <TrueBrain> "played before 1940 for no longer than 5 minutes"
20:10:40 <TrueBrain> "tried to make trams, but had no NewGRF for it loaded"
20:10:52 <TrueBrain> "played with inflation on .. the poor bastard"
20:11:38 <TrueBrain> "Installed NewGRFs, but forgot to activate them and entered a new game without them"
20:12:00 <Rubidium> "downloaded all content"
20:12:11 <TrueBrain> so happy I removed that functionality :P
20:12:16 <frosch123> https://www.gog.com/forum/general/why_isnt_openttd_not_on_the_gog_store_yet/page1 <- haha
20:12:18 <TrueBrain> now someone has to click a lot
20:12:53 <TrueBrain> they will be surprised in .. well, not long now :)
20:13:11 <TrueBrain> guess we should also prepare some news etc for it
20:21:01 <frosch123> or just wait until you can hit "retweet" :p
20:22:01 <andythenorth> 'turned off 90 deg corners'
20:22:09 <andythenorth> 'installed abase'
20:22:17 <andythenorth> 'uninstalled abase'
20:22:27 <frosch123> the latter is a hard one :)
20:22:48 <frosch123> "donated to ottd" would be an evil one :p
20:25:28 *** jottyfan has quit IRC (Quit: jottyfan)
20:30:53 *** HerzogDeXtEr has quit IRC (Read error: Connection reset by peer)
20:32:44 <Timberwolf> https://www.reddit.com/r/openttd/comments/noiaya/tool_for_making_map_images_from_save_files/
20:33:08 <Timberwolf> Oh, clipboard.
20:39:38 *** andythenorth has quit IRC (Quit: andythenorth)
20:43:47 <FLHerne> "all trains stuck at the same time"
20:45:20 *** andythenorth has joined #openttd
20:49:21 <TrueBrain> "ships is lost but you haven't noticed for 5 years"
20:50:13 <TrueBrain> of course the win-conditions use a randomizer
20:50:16 <TrueBrain> just so people get frustrated
20:50:20 <TrueBrain> otherwise it isn't a real achievement
20:52:41 <frosch123> "had an ai running for 10 game years, without crashing"
21:01:57 <FLHerne> "had an AI running for 10 game years without getting fed up of it building ugly shit and killing it"
21:08:46 *** EER has quit IRC (Remote host closed the connection)
21:09:11 *** frosch123 has quit IRC (Quit: be yourself, except: if you have the opportunity to be a unicorn, then be a unicorn)
21:09:14 <TrueBrain> "Managed to start a game with an AI" :p
21:11:23 *** WormnestAndroid has quit IRC (Ping timeout: 480 seconds)
21:13:27 *** WormnestAndroid has joined #openttd
21:18:00 *** azubieta60 has quit IRC (Remote host closed the connection)
21:18:22 *** Wolf01 has quit IRC (Quit: Once again the world is quick to bury me.)
21:21:17 *** azubieta60 has joined #openttd
21:23:18 *** Samu has quit IRC (Quit: Leaving)
21:36:40 <andythenorth> wonder what happens if I thread pool my copytree operations
21:36:49 <andythenorth> there are n, and they're orthogonal to each other
21:37:41 *** WormnestAndroid has quit IRC (Remote host closed the connection)
21:38:46 <andythenorth> this is quite fun to scroll up and down https://grf.farm/unsinkable-sam/preview-11/html/ships.html
21:38:48 *** WormnestAndroid has joined #openttd
21:39:21 *** nielsm has quit IRC (Ping timeout: 480 seconds)
21:48:12 *** andythenorth has quit IRC (Read error: Connection reset by peer)
21:48:43 *** andythenorth has joined #openttd
21:54:18 *** andythenorth has quit IRC (Quit: andythenorth)
22:12:31 *** andythenorth has joined #openttd
22:26:05 *** sla_ro|master has quit IRC ()
22:36:37 *** andythenorth has quit IRC (Quit: andythenorth)
22:50:47 *** Progman has quit IRC (Remote host closed the connection)
22:56:22 *** WormnestAndroid has quit IRC (Ping timeout: 480 seconds)
22:58:54 *** WormnestAndroid has joined #openttd
23:52:04 *** WormnestAndroid has quit IRC (Read error: Connection reset by peer)
23:52:17 *** WormnestAndroid has joined #openttd