IRC logs for #openttd on OFTC at 2020-03-05
            
00:01:31 *** Samu has quit IRC
00:11:08 *** HerzogDeXtEr has quit IRC
00:14:38 *** cHawk- has quit IRC
00:48:49 *** Progman has quit IRC
01:00:37 *** Samu has joined #openttd
01:11:16 *** Samu has quit IRC
02:13:06 *** Flygon has joined #openttd
03:16:14 *** adikt- has joined #openttd
03:21:19 *** adikt has quit IRC
03:51:50 *** adikt- has quit IRC
03:51:57 *** adikt has joined #openttd
04:08:13 *** glx has quit IRC
04:34:03 *** debdog has joined #openttd
04:37:24 *** D-HUND has quit IRC
05:06:58 *** Wormnest__ has quit IRC
05:46:12 *** sla_ro|master has joined #openttd
05:47:28 *** sla_ro|master has quit IRC
05:48:46 <DorpsGek_III> [OpenTTD/OpenTTD] SoothedTau commented on issue #7644: Mysteriously poor performance on macOS https://git.io/fjii3
06:08:31 *** OsteHovel has quit IRC
06:14:54 *** OsteHovel has joined #openttd
06:33:22 *** tokai|noir has joined #openttd
06:33:22 *** ChanServ sets mode: +v tokai|noir
06:40:04 *** tokai has quit IRC
08:25:37 *** Etua has joined #openttd
08:36:40 *** ZirconiumX has quit IRC
08:44:27 *** ZirconiumX has joined #openttd
08:52:01 *** tokai has joined #openttd
08:52:01 *** ChanServ sets mode: +v tokai
08:58:48 *** tokai|noir has quit IRC
09:01:47 *** tokai|noir has joined #openttd
09:01:47 *** ChanServ sets mode: +v tokai|noir
09:08:36 *** Smedles has quit IRC
09:08:48 *** tokai has quit IRC
09:10:11 *** tokai has joined #openttd
09:10:11 *** ChanServ sets mode: +v tokai
09:10:53 *** Smedles has joined #openttd
09:17:03 *** tokai|noir has quit IRC
09:25:16 *** Etua has quit IRC
09:47:17 *** Smedles has quit IRC
09:50:34 *** Smedles has joined #openttd
10:42:59 *** tokai|noir has joined #openttd
10:42:59 *** ChanServ sets mode: +v tokai|noir
10:49:31 *** Samu has joined #openttd
10:50:03 *** tokai has quit IRC
11:00:06 *** Samu has quit IRC
11:07:54 *** tokai has joined #openttd
11:07:54 *** ChanServ sets mode: +v tokai
11:14:49 *** tokai|noir has quit IRC
11:56:51 *** nielsm has joined #openttd
12:01:38 *** tokai|noir has joined #openttd
12:01:38 *** ChanServ sets mode: +v tokai|noir
12:08:39 *** tokai has quit IRC
12:31:42 *** tokai has joined #openttd
12:31:42 *** ChanServ sets mode: +v tokai
12:38:24 *** tokai|noir has quit IRC
13:26:11 *** tokai|noir has joined #openttd
13:26:11 *** ChanServ sets mode: +v tokai|noir
13:33:19 *** tokai has quit IRC
13:59:01 *** Samu has joined #openttd
14:03:27 <Samu> hi
14:23:14 *** tokai has joined #openttd
14:23:14 *** ChanServ sets mode: +v tokai
14:28:46 *** spnda has joined #openttd
14:29:59 *** tokai|noir has quit IRC
14:42:28 *** Flygon has quit IRC
14:54:06 *** cHawk has joined #openttd
15:24:11 *** tokai|noir has joined #openttd
15:24:11 *** ChanServ sets mode: +v tokai|noir
15:31:09 *** tokai has quit IRC
16:21:39 <Samu> this comment is incredibly confusing https://github.com/OpenTTD/OpenTTD/blob/master/src/water_cmd.cpp#L1351
16:26:25 <Samu> but i finally got it
16:26:28 <Samu> took me 4 years
16:32:49 <Samu> does it matter the infrastructure counts of the company that bankrupts? you make it seem like it's important
16:33:04 <Samu> on change tile owner
16:34:26 <DorpsGek_III> [OpenTTD/OpenTTD] SamuXarick updated pull request #7937: Build on competitor canal https://git.io/JvUIQ
16:35:12 <Samu> I had a mistake in the counting, but since the company bankrupts, it wouldn't matter
16:35:41 *** tokai has joined #openttd
16:35:41 *** ChanServ sets mode: +v tokai
16:41:47 *** sla_ro|master has joined #openttd
16:42:59 *** tokai|noir has quit IRC
16:56:30 <DorpsGek_III> [OpenTTD/OpenTTD] SamuXarick updated pull request #7937: Build on competitor canal https://git.io/JvUIQ
17:00:14 *** Generalcamo has joined #openttd
17:01:39 *** Generalcamo has quit IRC
17:02:49 *** Generalcamo_ has joined #openttd
17:02:59 <Generalcamo_> Hello
17:03:21 *** Generalcamo_ is now known as Generalcamo
17:03:59 <Generalcamo> Just curious, is OpenMSX still an active project?
17:09:34 <Samu> it should be
17:11:11 <DorpsGek_III> [OpenTTD/OpenTTD] SamuXarick updated pull request #7937: Build on competitor canal https://git.io/JvUIQ
17:11:42 <Samu> hue
17:11:44 <Samu> https://github.com/OpenTTD/OpenTTD/pull/7937/commits
17:12:38 *** sla_ro|master has quit IRC
17:12:54 <Samu> ah snap, commit checker is lame at times
17:13:20 <Generalcamo> There's a pull request on the OpenMSX github that has been open for nearly a year now
17:13:31 <Generalcamo> It makes me worried that any contribution I make will be ignored
17:13:49 *** sla_ro|master has joined #openttd
17:13:54 <DorpsGek_III> [OpenTTD/OpenTTD] SamuXarick updated pull request #7937: Build on competitor canal https://git.io/JvUIQ
17:23:40 *** tokai|noir has joined #openttd
17:23:40 *** ChanServ sets mode: +v tokai|noir
17:25:10 *** bjarni has quit IRC
17:26:55 <LordAro> Generalcamo: things are in the process of getting cleaned up, it just takes a bit of time to do so
17:27:18 <LordAro> OpenMSX certainly isn't dead - any contribution won't be ignored intentionally
17:27:25 <LordAro> just might take a while for someone to notice it
17:28:55 *** Wormnest__ has joined #openttd
17:30:34 *** tokai has quit IRC
17:33:39 *** DecapitatedO has joined #openttd
17:41:04 <Generalcamo> Ahh
17:41:05 <Generalcamo> Alright
17:41:36 <Generalcamo> https://github.com/OpenTTD/OpenMSX/pull/1
17:41:40 <Generalcamo> This is the PR I was referring to
17:53:43 *** HerzogDeXtEr has joined #openttd
17:58:16 *** TrueBrain_ii has quit IRC
18:00:36 *** cHawk has quit IRC
18:02:32 *** TrueBrain_ii has joined #openttd
18:22:00 *** tokai has joined #openttd
18:22:00 *** ChanServ sets mode: +v tokai
18:29:04 *** tokai|noir has quit IRC
18:31:41 *** Arveen has quit IRC
18:37:28 <Samu> I typed some notes https://github.com/OpenTTD/OpenTTD/pull/7937#issuecomment-594780463
18:37:45 <Samu> sheding some light on that mysterious PR
18:40:55 <Samu> ChangeTileOwner functions are still a bit of a mystery
18:41:48 <Samu> they got teared due to simplicity
18:42:06 <Samu> and that may confuse a possible reviewr
18:44:52 <Samu> they're still hard as heck to follow
18:45:23 <Samu> but that's their nature
18:55:29 *** Arveen has joined #openttd
18:57:34 <DecapitatedO> Hey, I'd like to work on issue #7957 (https://github.com/OpenTTD/OpenTTD/issues/7957). Currently, there are two proposed solutions.
18:57:41 <DecapitatedO> 1) Have two console commands, banlist_read and banlist_write, that read a list of banned players from a local file, and write the list of banned players to a local file
18:57:55 <DecapitatedO> 2) Make banned players appear in log files, parse the log files, and generate a new openttd.cfg with the banned players, in case that openttd.cfg is mounted read-only, like in some Kubernetes configurations
18:58:03 <DecapitatedO> Do you have any opinions on which solution should be implemented?
18:58:33 <LordAro> nielsm: you had thoughts on this before ^
18:58:40 <LordAro> i think i prefer the second solution though
18:58:56 *** Arveen2 has joined #openttd
19:00:51 <DecapitatedO> Alright
19:02:37 *** frosch123 has joined #openttd
19:04:09 *** Arveen has quit IRC
19:06:40 <nielsm> doesn't the second solution present the problem of syncing new bans into a server, without restarting?
19:07:19 <nielsm> you'd have to implement an admin port solution for that regardless, if you don't want servers to have regular restarts
19:08:20 *** Arveen2 has quit IRC
19:19:33 *** tokai|noir has joined #openttd
19:19:33 *** ChanServ sets mode: +v tokai|noir
19:23:18 <TrueBrain> frosch123: do you have a source for your height map conclusion? As I couldn't find the source:(
19:24:25 <TrueBrain> frosch123: and I will attach my test.c later, but the NewGRF really is flipped for me :p I am still so confused :( and tnx for looking into it :)
19:24:55 *** Progman has joined #openttd
19:26:09 <frosch123> TrueBrain: https://github.com/OpenTTD/OpenTTD/blob/master/src/network/core/tcp_content.cpp#L133
19:26:14 <frosch123> scenarios and heightmaps are the same thing
19:26:24 *** tokai has quit IRC
19:26:28 <frosch123> the scenaioscanner finds bots
19:26:31 <frosch123> *bth
19:26:33 <frosch123> *both
19:26:53 *** tokai has joined #openttd
19:26:53 *** ChanServ sets mode: +v tokai
19:27:52 <frosch123> TrueBrain: argueably ottd only compares the id, so it relies on heightmaps and scenarios having distinct ids
19:28:44 <frosch123> i guess that is important for new bananas :) scenario and heightmap ids are shared
19:29:04 <TrueBrain> Ah .. good to know, and sweet, you found it :D code only talks about scenarios :p silly :D
19:29:18 <TrueBrain> Yes, very important :D
19:31:50 <frosch123> added that as a comment, to make it complete
19:33:54 *** tokai|noir has quit IRC
19:34:46 <frosch123> TrueBrain: newgrf.py also reads the grfid the same as ottd
19:41:40 *** glx has joined #openttd
19:41:40 *** ChanServ sets mode: +v glx
19:41:52 *** Generalcamo has quit IRC
19:42:42 *** tokai|noir has joined #openttd
19:42:42 *** ChanServ sets mode: +v tokai|noir
19:49:44 *** tokai has quit IRC
20:09:45 <frosch123> TrueBrain: i think your confusion was about https://godbolt.org/z/kENC99
20:12:23 *** Wolf01 has joined #openttd
20:20:39 *** spnda has quit IRC
20:24:10 *** Progman has quit IRC
20:29:52 <TrueBrain> it is not a "was"
20:30:02 <TrueBrain> and I am not confused about that part :)
20:30:06 <TrueBrain> it is where the problem kinda starts
20:30:15 <TrueBrain> my gist I typed pretty explicit with ' and " :)
20:30:34 <TrueBrain> it is that the GRFID 'ABCD' and the AI short_name "ABCD" result in different unique_ids
20:30:41 <TrueBrain> from a user perspective, that is a bit of an issue, so to say
20:31:17 <TrueBrain> so the GRFID 'ABCD' is stored as 0x41424344
20:31:42 <TrueBrain> where the short_name "ABCD" is stored as 0x44434241
20:31:55 <TrueBrain> I guess the biggest issue I have, is that for some reason, BaNaNaS byte_swaps the GRFID
20:32:30 <TrueBrain> btw, you state that the GRFID 'ABCD' becomes 0x44434241 .. that is not what I find.
20:32:39 <frosch123> why did you even start with ' ?
20:32:49 <TrueBrain> '' as multichar, "" as string :D
20:33:06 <frosch123> yes, but why do you consider grfid a multichar?
20:33:15 <frosch123> and not a string
20:33:28 <TrueBrain> grfids are cast from char[4] to uint32, not?
20:33:44 <TrueBrain> short_names are read char-by-char into an uint32
20:33:53 <frosch123> yes, but char[4] is a string for this purpose
20:34:39 <TrueBrain> and there it seems to break; at least, for some reason the uint32s I receive from the OpenTTD client from AIs is in a different order than NewGRFs
20:35:07 <frosch123> that is because ottd sents them in network order, so ottd swaps them for the network
20:35:16 <TrueBrain> they are BOTH send in network order
20:35:24 <TrueBrain> so why are they byteswapped in comparison?
20:35:49 <TrueBrain> again, NewGRF 'ABCD' becomes 0x41424344 after reading, AI "ABCD" becomes 0x44434241
20:36:19 <TrueBrain> anyway, the problem I was trying to solve, is that when I use newgrf.py or "grfid" (the grfcodec tool), the unique_id I got was different from what BaNaNaS database returned to me
20:36:28 <TrueBrain> while for AIs and BaseSets it was correct
20:36:53 <TrueBrain> that in essence is what I am trying to understand, and where I fail misseribly :D
20:37:19 <frosch123> [20:35] <TrueBrain> again, NewGRF 'ABCD' becomes 0x41424344 after reading, AI "ABCD" becomes 0x44434241 <- that statement is wrong
20:37:41 <frosch123> where the hell do you start with 'ABCD'? newgrf are also just "ABCD"
20:38:01 <TrueBrain> no need to get hell involved :) I am just tryring to understand the world here :)
20:38:17 <TrueBrain> from what I understand, the grfid char[4] is cast to an uint32, right?
20:38:28 <frosch123> yes, but that is not 'ABCD'
20:38:30 <TrueBrain> so that char[4] = "ABCD" becomes 0x41424344, right?
20:38:46 <frosch123> no, see my godbold link
20:38:49 <TrueBrain> (well, you cannot assigned "ABCD" to a char[4], but not the point :)
20:39:13 <TrueBrain> ah, so that is what you meant with your link; did not pick that up :)
20:39:14 <frosch123> char[4] = "ABCD" becomes 0x44434241
20:39:54 <TrueBrain> okay, so there we misundrstood eachother; at least, I did not pick that up from your link
20:40:05 <TrueBrain> I was told grfids are assigned as multichars, you say as strings. k
20:40:35 <TrueBrain> so that makes it even more puzzling tbh
20:41:16 <TrueBrain> where do we write strings to in GRFs, just for my shake
20:42:17 <frosch123> what?
20:42:20 <TrueBrain> shake? sake, lol
20:42:53 <frosch123> a cast converts by LE, a multibyte constant is converted by the compilers as bE
20:43:11 <frosch123> so, multibyte only applies to constants in the source code
20:43:36 <frosch123> since newgrf are not compiled into ottd, it is pretty hard to define a grfid as multibyte constant
20:43:55 <TrueBrain> that I understand ;) I was wondering how something like NML writes it to the file
20:44:32 <TrueBrain> https://github.com/OpenTTD/grfcodec/blob/master/src/grfid.cpp#L150
20:44:51 <frosch123> file.print_string(self.grfid.value, False, True) <- nml prints it as string :)
20:44:56 <TrueBrain> okay, now I get why BaNaNaS is doing the swap too, it is this code written in Python :D
20:45:23 <TrueBrain> yeah, okay, so "ABCD" is written in the file as 41 42 43 44
20:45:28 <TrueBrain> which in LE is 0x44434241
20:45:31 <frosch123> grfid prints in for the user as swapped
20:45:31 <TrueBrain> k, good
20:45:53 <TrueBrain> so it is byteswapped to become 41 42 43 44 for the user perspective, which is fine ofc
20:46:07 <TrueBrain> the problem is .. this is stored in the BaNaNaS database :D
20:46:11 <TrueBrain> so there it went wrong, okay, that makes sense
20:46:26 <TrueBrain> BaNaNaS writes the byteswapped value in the database
20:46:41 <TrueBrain> (as uint32)
20:46:49 <TrueBrain> so it writes 0x41424344, instead of 0x44434241
20:47:02 <frosch123> so the content_server swaps it back?
20:47:14 <TrueBrain> was just checking that part
20:48:15 <TrueBrain> not that I can find. And this is why I am not understanding it
20:48:26 <TrueBrain> to be clear: this might just be me totally not understanding what the hell is going on
20:48:35 <TrueBrain> first let meupdate the gist
20:50:59 *** gelignite has joined #openttd
20:51:23 <TrueBrain> https://github.com/OpenTTD/OpenTTD/blob/master/src/network/core/tcp_content.cpp#L120
20:51:30 <TrueBrain> why ... is that BSWAP32 there?
20:52:19 <TrueBrain> Config
20:52:24 <TrueBrain> so .. that is for config.ini
20:52:24 <TrueBrain> k
20:53:05 <TrueBrain> no, it is not
20:53:05 <frosch123> ah, so it is indeed swapped by the ottd client, just for bananas
20:53:10 <TrueBrain> lol, oops, never believe a function-name :)
20:53:15 <TrueBrain> so I am not crazy \o/
20:53:36 <TrueBrain> so BaNaNaS is storing it wrong, and the protocol fixesit, or the protocol was broken, and BaNaNaS fixes it, what-ever it might be
20:53:41 <TrueBrain> but ... finally :D That line of code makes sense :D
20:53:59 <frosch123> meh, so bananas stores it wrong in the db, and client fixes it :/
20:54:11 <frosch123> that means we cant change it :/
20:54:13 <TrueBrain> which ever came first, but yes
20:54:30 <TrueBrain> well, I am somewhat planning to bump the protocol version, because we found more shit to fix
20:54:37 <TrueBrain> but we need backwards compatibility ;)
20:54:55 <frosch123> ok, so the new content_server should swap it
20:55:01 <TrueBrain> yes
20:55:08 <TrueBrain> in the GitHub repo I will store it as you would expect
20:55:15 <TrueBrain> so 41424344 for ABCD GRFID
20:55:30 <TrueBrain> and content_server is going to fix this up
20:55:52 <TrueBrain> okay, this took waaayyyyy to long to find 1 line of code that makes a boo-boo :P
20:56:03 <frosch123> return reader.swap(reader.read_dword()) <- musa also swaps it :)
20:56:21 <TrueBrain> yeah, that is where my ?!?!?!?! started :P
20:56:39 <TrueBrain> but ofc musa also has to swap it :D So someone already should have had a mindfuck about this :P
20:56:40 <TrueBrain> possibly did
20:58:00 <TrueBrain> okay, it makes me really happy to found out what is going on, as I hate having code that "works but nobody knows why"
21:01:17 <TrueBrain> okay, so now NewGRFs from BaNaNaS can be converted with "%08x", and AIs etc first need to be byte-swapped .. yeah, that is correct
21:01:42 <LordAro> TrueBrain: pretty sure ?!?!?!?! is a trigraph
21:01:51 <TrueBrain> a what?
21:02:03 <frosch123> trigraphs are removed in c++17 or 20
21:02:59 <TrueBrain> ??= becomes # .. wtf is this?
21:03:17 <frosch123> it's for vim users
21:03:21 <TrueBrain> scary shit :P
21:03:24 <TrueBrain> nobody cares about vim users :D
21:03:55 <TrueBrain> okay, so now I have Scenarios and Heightmaps left to validate .. Scenario is written in the database as 1, 2, 3, etc
21:04:02 <TrueBrain> so "%08x" gives a folder-name that is as expected
21:04:37 <frosch123> i thought you wanted to treat all the same?
21:04:39 <TrueBrain> on OpenTTD's side it is read with scanf and %u, from 1, 2, 3, etc values too
21:04:47 <frosch123> so first scenario would have folder name "01000000"
21:05:01 <TrueBrain> well, that is what happened, but not what I would expect; do you?
21:05:09 <TrueBrain> in the GitHub repo it looks really weird :P
21:05:37 <frosch123> if you want to use different folder names for scenarios and heightmaps, then i would use %d instead of %x
21:06:01 <TrueBrain> that makes the content-server code a tiny bit more difficult, as that means special cases two content-types :)
21:06:14 <TrueBrain> I guess the bigger question is: do we want to allow people to self-assign values?
21:06:20 <frosch123> no :)
21:06:41 <TrueBrain> so auto-count .. means I need a file to tell the counter
21:06:48 <TrueBrain> but otherwise not a problem
21:06:49 <frosch123> i don't get your comment about "two types", if you only do the bswap for some types, you already have two types
21:07:01 <frosch123> if you treat all the same, then scenario beomces "01000000"
21:07:04 <TrueBrain> the bswap is done now on receive/send
21:07:11 <TrueBrain> so the internal code has no knowledge of this protocol glitch
21:07:38 <TrueBrain> yeah, that is what happened now, it became "01000000", and I was wondering if we wanted to keep that :D
21:07:47 <frosch123> i think it is fine
21:07:56 <TrueBrain> it looks a bit odd from a human perspective, that is mostly it
21:08:03 <frosch123> the id is not used anywhere else in that format, so it can be whatever
21:08:22 <TrueBrain> very true; but the eye also wants to be pleased :P
21:08:30 <TrueBrain> but I also really like less code
21:08:51 <TrueBrain> so I am VERY conflicted :P
21:09:49 *** andythenorth has joined #openttd
21:10:03 <TrueBrain> wait, I don't need an extra file to know "latest", as we never remove folders. Blacklist them, possibly, but never remove.
21:10:06 <TrueBrain> sweet
21:10:38 <andythenorth> yo
21:10:40 <TrueBrain> frosch123: https://gist.github.com/TrueBrain/513471b885c2005726787ed1b1d2ef1b <- it looks so uggglllyyyyy
21:10:41 <TrueBrain> hi andythenorth
21:10:52 <TrueBrain> frosch123: but okay, doing more things the same is better .... grrr :@ :)
21:11:44 <frosch123> TrueBrain: imagine we run out of uint32 ids. with the LE schema you can easily extend it to uint64
21:11:55 <TrueBrain> hahahaha :D
21:12:04 <TrueBrain> Kudos for effort :)
21:12:13 <frosch123> do you not believe in the longevity of ottd? :p
21:12:23 <TrueBrain> till the year 3020? Nah!
21:12:41 <frosch123> you mean year 30^20, right?
21:12:56 <TrueBrain> I expect that in the year 2938, many people start playing OpenTTD again
21:13:11 <TrueBrain> and given the many moons and planets we occupy, a lot of heightmaps are created
21:13:15 <frosch123> very specific :)
21:13:23 <TrueBrain> makes it feel more real
21:13:24 *** sla_ro|master has quit IRC
21:13:55 <frosch123> but good idea, we should ban city builder players to the moon
21:14:50 <TrueBrain> I really really cannot believe, grfids are bytewapped on the protocol ..
21:15:29 <TrueBrain> okay ... content server boots again, world seems to be sane
21:16:06 <TrueBrain> nobody can claim I did not give this enough attention :P
21:17:07 <TrueBrain> btw frosch123 , I found 1 AI where Zuu did his magic, and the parsing of the short_name indeed fails
21:17:18 <TrueBrain> so I need that Python-based .nut parser after all :P
21:17:55 <frosch123> i would not write a custom .nut parser. rather use the real squirrel
21:18:24 <TrueBrain> yeah, C API link it
21:18:25 <andythenorth> Elon is building his starship factory
21:18:33 <andythenorth> 1000 rockets, 150 ton payloads, reusable
21:18:34 <TrueBrain> well, C++, but what-ev
21:18:42 <andythenorth> thinks he needs to move about 1m tonnes of freight to mars
21:19:31 <DorpsGek_III> [OpenTTD/OpenTTD] SamuXarick updated pull request #7937: Build on competitor canal https://git.io/JvUIQ
21:19:40 <andythenorth> hmm nothing in forums
21:19:47 <andythenorth> :o frosch in reddit though
21:19:56 <TrueBrain> link or it didnt happen
21:20:02 <Samu> there was a bug with infrastructure countings and nobody told me anything :)
21:20:10 <Samu> fixed
21:20:36 <andythenorth> https://www.reddit.com/r/openttd/comments/fctebr/an_area_for_just_cool_pictures/
21:21:19 <TrueBrain> nice :D
21:21:50 <andythenorth> also was the Feb blog post done yet?
21:21:58 <andythenorth> lots of things happened....
21:22:24 <frosch123> andythenorth: that's already my 5th post on that reddit, or so
21:22:28 <andythenorth> Lo
21:22:31 <andythenorth> :o even
21:23:00 <frosch123> i never answer questions, i always link to external sites
21:23:10 <frosch123> if there were mods, they would hate me :)
21:24:12 <andythenorth> hmm
21:24:18 <andythenorth> is 2 small sausages enough?
21:24:25 * andythenorth generally eating less meat
21:24:31 <andythenorth> but this is the only meat today
21:24:39 <andythenorth> like 70g so far
21:25:20 <frosch123> i was down to 300g/week last year. this year i have access to a cafeteria, so i cannot track it
21:25:42 <TrueBrain> cannot, or don't want to? :P
21:25:55 <andythenorth> 300g / week is 2 servings?
21:26:09 <frosch123> i can track the number of meat and veggie meals per week, but i have no idea how much meat there actually is
21:27:01 <Samu> OpenTTD CI Expected — Waiting for status to be reported
21:27:06 <Samu> is it working?
21:27:20 <frosch123> andythenorth: it's multiple meals as cold cuts
21:27:21 <Samu> i waited 8 minutes already
21:27:44 <TrueBrain> Samu: I would write an angry letter if I were you
21:27:49 <andythenorth> if it's prosciutto or similar, 300g goes a long way :)
21:27:57 * andythenorth makes a ham sandwich
21:28:54 <Samu> doesn't seem to be working, it doesn't usually have to wait that much
21:29:33 <andythenorth> so shall I write the nfo / nml docs for diagonal rivers? :)
21:30:29 <frosch123> or write the maparray docs for tiles with river + rail
21:30:46 <frosch123> does river+river work?
21:30:57 <Samu> river/canal
21:31:00 <TrueBrain> river bridges?! :D
21:31:05 <TrueBrain> (aka aquaducts)
21:31:40 <frosch123> aquaducts are canal-bridges, river bridges are usally called tunnels
21:32:27 <Samu> i want to write an angry letter
21:32:42 <Samu> OpenTTD CI is not advancing :(
21:32:48 <TrueBrain> frosch123: you say tomato, I say tomato :P
21:33:19 <frosch123> i don't like the beatles
21:33:34 <TrueBrain> what did they ever do to you?!
21:34:43 <Samu> https://github.com/OpenTTD/OpenTTD/pull/7937 - Some checks haven't completed yet... it's been 15 minutes, it's taking too long
21:34:50 <Samu> angry mode
21:34:54 <Samu> j/k
21:36:25 * andythenorth considered writing docs first for next newgrf change :)
21:36:32 <TrueBrain> how mature!
21:36:50 <andythenorth> I've never seen it work, mind you
21:36:53 <andythenorth> but eh
21:37:01 <TrueBrain> funny enough, me neither :)
21:37:18 <andythenorth> my favourite is UI style guides
21:37:22 <TrueBrain> frosch123: 1 minor downside of the 01000000, folder sorting is odd as fuck :P
21:37:23 <andythenorth> then the docs are the test cases
21:37:32 <andythenorth> so have to be written at same time as UI styles
21:37:42 <TrueBrain> tdd
21:37:45 <TrueBrain> ddd
21:37:46 <andythenorth> innit
21:37:50 <TrueBrain> (documentation-driver-development)
21:38:04 <andythenorth> I thought ddd was despair-driven-development?
21:38:24 <TrueBrain> I only read that "ddd" is very insulting to women. the C and D language too
21:38:25 <TrueBrain> and now the F language
21:38:35 <frosch123> TrueBrain: https://github.com/OpenTTD/OpenTTD/commit/3a13b75e37b5642de3c1e89cf6ab3bf860b76375#diff-ac5f18db9673c1af6a0439091bc33598 <- the BSWAP has its origin in the gui code, so it probably was copy&paste from the user-fomatting
21:38:41 <TrueBrain> why are all the programming language so women-related :P
21:39:04 <TrueBrain> frosch123: I so much tried not to look into the why; so happy you did :D
21:39:47 <TrueBrain> 17th of Jan 2009 .. the day we started with BaNaNaS ..
21:39:51 <TrueBrain> 11 years old ..
21:39:53 <TrueBrain> lol
21:40:20 <TrueBrain> server went live a week before I believe, for some people to try out ..
21:40:31 <TrueBrain> and in a month we had many more uploads than Rb and me ever expected :P
21:41:07 <TrueBrain> but yeah, this seems like an honest mistake that slipped in ...
21:44:59 <frosch123> hmm, for me ddd means data-display-debugger. all entries on urbandictionary are rather men-related than women-related. and programming languages are mostly about coffee
21:45:22 <frosch123> 3 different off-topic things in one line, i guess that is no record :)
21:45:48 <frosch123> i blame you :)
21:46:05 <TrueBrain> yw :)
21:46:40 <TrueBrain> okay, all BaNaNaS files, minus the few errors in ob[gms] files, all validate now. Well, except for a GameScript (tnx Zuu) and a NewGRF (fuck PDF support)
21:46:47 <TrueBrain> that makes me very happy :)
21:46:56 <LordAro> :)
21:47:19 <frosch123> when bananas was created, ottd could not even show the txt files
21:47:40 <frosch123> so also allowing pdf was reasonable
21:47:52 <TrueBrain> it was. But only 1 upload has it :D
21:48:03 <TrueBrain> so I am going to drop any form of support for that now :P
21:48:25 <frosch123> it's my favorite grf, and andy's least favorite
21:49:07 <TrueBrain> it is a savegame-only grf
21:49:25 <TrueBrain> hmm ... we remapped a few scenarios, remember .. that would mean I have to recreate the tarballs ..
21:49:38 <TrueBrain> guess I don't remap for now :D
21:49:52 <andythenorth> I have a least favourite grf? :o
21:50:06 <andythenorth> does it change the crossing bells sound for something even worse?
21:50:30 <frosch123> i think you consider it a youthful folly, and don't want to be reminded about it
21:51:25 <Samu> https://dev.azure.com/openttd/OpenTTD/_build it did not trigger the most recent build, can someone start it for me?
21:51:28 <glx> Samu: CI just not started yet
21:51:36 <Samu> ya, that
21:53:28 <glx> just force push again
21:53:37 <TrueBrain> so I guess I now really have to start working on the Javascript part ... ugh ....... can someone else please do so?
21:53:41 <TrueBrain> glx: does it ever work on drafts?
21:54:37 <glx> last 5 CI runs were for this PR, so yes
21:55:00 <TrueBrain> cool :)
21:55:17 <Samu> is there a limit per day?
21:55:40 <frosch123> andythenorth: what are you using js for? only the upload part? or more?
21:56:01 <TrueBrain> guess that was for me? :)
21:56:13 <frosch123> oh, yes
21:56:19 <Samu> $ git push --force
21:56:19 <Samu> Everything up-to-date
21:56:19 <TrueBrain> upload part for sure has to be javascript, yes
21:56:22 <Samu> doesn't let me push
21:56:24 <TrueBrain> the rest, I am not sure about yet ..
21:56:27 *** WormnestAndroid has quit IRC
21:56:28 <glx> git commit --amend
21:56:30 <TrueBrain> I was considering making it a single-page thingy
21:56:34 <glx> then you can force push
21:56:56 <frosch123> i wondered, how many people have their content already online somewhere else? like dropbox or similar. would it make sense to just ask for a link?
21:56:59 <TrueBrain> but honestly, I have no clue what I want there .. haven't written HTML/js in ages
21:56:59 <Samu> but I have nothing to amend atm, hmm gonna try
21:57:20 <TrueBrain> frosch123: good question; I have no clue honestly :)
21:57:27 <glx> even if you don't change anything in the commit it will be a new one
21:57:28 <DorpsGek_III> [OpenTTD/OpenTTD] SamuXarick updated pull request #7937: Build on competitor canal https://git.io/JvUIQ
21:57:28 <Samu> nice, it works
21:57:34 <TrueBrain> we could use https://uppy.io/
21:57:44 <TrueBrain> allows everything, basically
21:57:51 <TrueBrain> the uploading part is easy btw
21:57:51 *** WormnestAndroid has joined #openttd
21:58:03 <Samu> aha, it started! https://dev.azure.com/openttd/OpenTTD/_build/results?buildId=5558&view=results
21:58:06 <TrueBrain> it is giving good and clear feedback on what needs fixing, that is a bit an a dread
21:58:12 <Samu> thx glx
21:58:17 <TrueBrain> and it might be okay once I start doing it .. but .. I am just dreading it :P
21:58:23 <glx> maybe it was just because nobody logged into azure for a long time
21:58:56 <TrueBrain> "that is a bit an a dread", wtf was I smoking .. lol
21:59:18 <frosch123> TrueBrain: if you use flask or bottle, i can help
21:59:27 <frosch123> (prefer flask)
21:59:39 <glx> silly names :)
21:59:47 <TrueBrain> hmm .. I was thinking doing it like the rest of the projects, in asyncio
21:59:53 <TrueBrain> but the API part I guess is simple
21:59:59 <TrueBrain> (but I could surely use help, ofc)
22:00:20 <TrueBrain> I can setup that it can serve static files and have a simple API; after that it is easier to colleborate, I guess
22:01:11 <frosch123> glx: i am waiting for tub and barrel
22:02:24 <andythenorth> I can't javascript but I can html
22:02:37 <andythenorth> but only old html, that actually works in a wide range of browsers
22:02:43 <andythenorth> oof
22:03:20 <TrueBrain> I guess we should swagger the API ...
22:04:53 *** WormnestAndroid has quit IRC
22:05:06 *** WormnestAndroid has joined #openttd
22:09:06 <TrueBrain> frosch123: guess flask has better swagger integration :D
22:09:38 <TrueBrain> flask-restplus still a thing?
22:09:52 <TrueBrain> hmm, last version 2019-08-12 ...
22:11:47 <frosch123> https://gitlab.com/pgjones/quart <- that claims to incorporate flask with asyncio
22:12:13 <TrueBrain> not sure that is useful tbh. Flask on its own is fine for this project
22:12:14 <frosch123> but is it necessary to run the api and the webapp in the same process?
22:12:31 <TrueBrain> but all other projects currently use aiohttp
22:12:36 <TrueBrain> but using something else for this is fine
22:12:44 <TrueBrain> frosch123: no, API should be done by Python, static-files by nginx
22:13:12 <TrueBrain> flask-restx is the contiunation of flask-restplus, that is nice
22:13:30 <frosch123> what "other" are you thinking of?
22:14:00 <TrueBrain> DorpsGek, content-server, master-server
22:14:05 <TrueBrain> but it is fine, really
22:14:14 <TrueBrain> we need the tool that is most efficient :)
22:14:32 <TrueBrain> this will be content-api btw
22:14:51 <TrueBrain> (content-server also has a webserver, as OpenTTD client makes HTTP calls to it to get redirects for HTTP downloads)
22:15:25 <TrueBrain> https://flask-restx.readthedocs.io/en/latest/swagger.html
22:16:16 <TrueBrain> has input validation included; guess that is nice?
22:16:33 <TrueBrain> what did you use for eints? Homebrew REST API?
22:17:09 <frosch123> eints is simple single-threaded bottle
22:17:17 <frosch123> it blocks while it talks to github
22:17:20 <TrueBrain> ah :)
22:17:52 <frosch123> it assumes there are only few translators
22:18:25 <frosch123> i would also expect ther are few bananas-uploaders and editors, while there are many downloaders
22:18:37 <TrueBrain> downloads won't go via content-api
22:18:43 <frosch123> so aiohttp for the latter is certainly needed
22:18:44 <TrueBrain> only uploads and listing
22:19:05 <frosch123> "listing" can be statically generated, right?
22:19:09 *** cawal[m] has quit IRC
22:19:23 <TrueBrain> yes, but needs regenerating every update
22:19:28 <TrueBrain> but .. you are on to something there tbh
22:19:34 <TrueBrain> as we can do that like the website
22:19:37 <TrueBrain> or possibly in the website
22:19:42 <TrueBrain> and on GitHub commit, trigger a rebuild
22:20:09 <TrueBrain> so ... possibly we can make the whole HTML+JS in the website repo? Or is that weird?
22:20:18 <TrueBrain> and have content-api only do the API
22:22:21 * andythenorth uploads Horse to bananas
22:22:38 <frosch123> when the api stores the uploads, it can also update the listing and store it in the same go
22:22:57 <frosch123> creator-interface is different
22:23:47 <TrueBrain> yeah, so we have a few parts: API for "managers" (creators?), HTML+JS for "managers", HTML for public listing (ala https://bananas.openttd.org)
22:24:08 <TrueBrain> I guess we should bundle the first two in a single docker
22:24:19 <TrueBrain> as that is just more practical in creating it
22:24:31 <TrueBrain> the latter ... so many solutions :P
22:26:12 <frosch123> i am quite sure noone wants to code a js fat-client that talks directly to the api, and only the api
22:26:33 <TrueBrain> not sure I get what you mean
22:28:03 <frosch123> i suggested to use python-bases flask to provide html forms for uploaders and editing meta data. alternatively you can have a pure json api, and people download a js client that talks to the json api, and does all the forms in js
22:28:27 <andythenorth> electron!
22:28:38 <TrueBrain> I would like to avoid the first, as that gives us a situation we have now: BaNaNaS web via django, and musa via its own validation routines
22:28:45 <TrueBrain> I rather have a single API that can be used by both web and CLI
22:29:22 <TrueBrain> it is the 2020 way of web-development after all .. and it makes me a bit sad, as that means a js-based webclient .. which I am not looking forward to
22:29:30 <TrueBrain> but it is the right thing to do, I guess .....
22:31:33 <frosch123> if you go for pure json api, then flask is not the best option, then stick with aiohttp
22:31:53 <TrueBrain> if you do an API, you should do swagger. And aiohttp has no real swagger support in existence :P
22:31:57 <TrueBrain> hence the flask-restx
22:32:08 <TrueBrain> I rather have you guys talk me out of the js-approach
22:32:12 <TrueBrain> as I freaking hate it
22:32:16 <TrueBrain> but .. it is the 2020 thing to do ..
22:32:21 <LordAro> TrueBrain: don't do it
22:32:32 * LordAro smacks andythenorth
22:32:39 <TrueBrain> make andythenorth do it you say? :D
22:32:47 <LordAro> andythenorth: wash your mouth out with soap
22:32:54 <frosch123> how about the middle way: have a python thingie host http-forms, but make it create server-server json calls to the other api
22:32:57 <TrueBrain> it shouldn't be hard to find people willing to write a modern HTML+JS shell around an API, would it?
22:33:02 <frosch123> so the real data is only touched by the real api
22:33:03 <andythenorth> also, what is electron?
22:33:11 <andythenorth> is it the new way to have local vulns?
22:33:32 <frosch123> TrueBrain: quite sure that is the hardest part. people to js for work, i do not know anyone who does it for fun
22:33:32 <TrueBrain> frosch123: works for me, honestly. Just as long as we accept we are doing it the 2015 way in that case :D
22:33:55 <TrueBrain> although I wonder how difficult it really is, doing it in js .. as there are like 10 API calls to do
22:34:00 <TrueBrain> it is not THAT complicated
22:34:20 *** Arveen has joined #openttd
22:34:29 <TrueBrain> but I notice you too don't really look forward doing it that way :P
22:34:33 <TrueBrain> guess we are getting old :D
22:34:33 <frosch123> well, you have to do sessions though
22:34:50 <TrueBrain> andythenorth: solve this for us plzzzzzzz
22:34:51 <frosch123> but maybe you have to do that anyway
22:35:19 <andythenorth> TrueBrain: sorry NFI :(
22:35:21 <DorpsGek_III> [OpenTTD/OpenTTD] SamuXarick updated pull request #7937: Build on competitor canal https://git.io/JvUIQ
22:35:34 <andythenorth> I only work with python apps that do post, and then I only write the UI
22:35:42 <TrueBrain> the UI in what?
22:35:45 <andythenorth> apps
22:35:49 <TrueBrain> lame
22:35:54 <TrueBrain> :P
22:36:05 <andythenorth> using the most rudimentary html
22:36:13 <Samu> just closed Visual Studio, no more updated pull requests
22:36:26 <andythenorth> we don't fuck around with javascript stuff, we have to actually work
22:36:34 <andythenorth> sorry :|
22:36:35 <TrueBrain> okay, I like your suggestion in that case frosch123 , as it allows someone to come along and do this properly :P
22:37:04 *** Progman has joined #openttd
22:37:18 <frosch123> TrueBrain: https://github.com/cr0hn/aiohttp-swagger
22:37:33 <TrueBrain> frosch123: yeah, have you read how they implemented it?
22:37:38 <TrueBrain> just one big blob of doc-string
22:37:40 <TrueBrain> it is horrible :P
22:37:40 <frosch123> oh, "looking for maintainers"
22:38:05 <TrueBrain> I like about things like flask-restx, that is can also validate based on the swagger info
22:38:20 <TrueBrain> input validation is GOOOODDDD :D
22:38:48 <frosch123> ok, so flask-based json api
22:38:58 *** cawal[m] has joined #openttd
22:39:11 <TrueBrain> okay, flask-restx for the API, flask for the html-form, tusd for uploads (has to be javascript, I like the uppy client)
22:39:41 <frosch123> oh, i thought you discarded tusd
22:39:51 <TrueBrain> I really hate the implementation, but there is not much better out there
22:40:01 <TrueBrain> so I wrapped it with some scripts, and it is somewhat behaving
22:40:12 <TrueBrain> you need a javascript uploader for bigger files
22:40:19 <TrueBrain> and I really like uppy :D
22:40:26 <TrueBrain> as it allows uploading via links :)
22:40:39 <TrueBrain> (and dropbox, and google drive, and one drive, and and and)
22:41:17 <TrueBrain> but just tus-js-client is fine by me too btw
22:41:33 <Samu> I revised the entire PR, it's getting closer to "Ready for review". There's just a few things waiting... like #7947 being merged or not
22:41:50 <frosch123> i am quite sure you know a lot more about js than me :)
22:42:09 <TrueBrain> that says more about your knowledge than mine :D
22:42:25 <frosch123> my js experience is from ns4/ie4 times
22:42:30 <TrueBrain> okay okay ..
22:42:33 <TrueBrain> I can write TypeScript
22:42:50 <TrueBrain> what killed it for me, is the amount of frameworks you can / have to use these days
22:42:51 <frosch123> is that the thing with |0 for integers ?
22:43:03 <TrueBrain> TypeScript is Javascript, but typed
22:43:07 <TrueBrain> it is "sane" javascript :P
22:43:19 <TrueBrain> no clue about |0
22:44:05 <frosch123> something adds " | 0" to all integer expressions, which annotates them as integers for browsers, so they can jit it as integer arithmetic
22:44:15 <TrueBrain> lol
22:44:25 <TrueBrain> okay, a lot more important question: do we want the manager-part to be in the OpenTTD website style? :D
22:44:28 <frosch123> i forgot what the float annotation was, but it was a similar nop
22:44:33 <TrueBrain> as otherwise LordAro really should remove the last few images there :P
22:44:47 <frosch123> TrueBrain: eints is not in that style either
22:44:50 <frosch123> so, no
22:44:56 <frosch123> css is andy's task
22:45:57 <andythenorth> I'm sure we have other contributors :P
22:46:07 <frosch123> anyway, we write the python and some simple templates, and leave the css to others
22:46:11 <andythenorth> hurrah
22:46:20 *** heffer has quit IRC
22:46:30 <TrueBrain> ack; first get it to work, improve after
22:46:35 <frosch123> we have many people in the "website" team :)
22:46:48 <TrueBrain> so we are going to make the most ugliest website possible
22:46:51 <TrueBrain> that will force people to do something :D
22:47:36 <TrueBrain> so we get a content-api, content-api-cli, content-api-web-forms content-api-web-js (if anyone ever wants to :P)
22:47:55 <LordAro> TrueBrain: https://motherfuckingwebsite.com/
22:47:56 <TrueBrain> (not perse repositories btw, just for my ordering of thought)
22:48:21 *** heffer has joined #openttd
22:48:26 <frosch123> LordAro: not enough marquee
22:48:46 <TrueBrain> okay, so we need a workflow, to implement both sides
22:48:55 <TrueBrain> we need to figure out authentication, but you mostly did that for eints already
22:49:37 <TrueBrain> I can do the groundwork this weekend, and we can split up the work after that. Sounds good?
22:49:43 <frosch123> sure
22:49:47 <TrueBrain> awesome :)
22:49:54 <TrueBrain> really shouldn't be too complicated
22:50:01 <TrueBrain> mostly agreeing on what the MVP should be :)
22:50:31 <TrueBrain> upload files -> some choices like "new content" vs "new version" -> some more uploads (readme, license, ..) -> publish
22:50:49 <frosch123> about authentication: do we store ownership as github logins (readable, but user can actually change them), or github user ids (integers, persistent)
22:51:07 <TrueBrain> they can change logins? Damn ...
22:51:11 <TrueBrain> that is sad ..
22:51:18 <TrueBrain> so the uids I guess ...
22:51:22 <frosch123> not they, you
22:51:33 <frosch123> it has a long page of things that break if you do :)
22:51:35 <TrueBrain> yeah, we refer tothe same group :)
22:51:48 <TrueBrain> (they, our users :D)
22:51:52 <TrueBrain> hmm
22:52:09 <TrueBrain> I rather have logins, as that means we can understand that as humans
22:52:10 <frosch123> TrueBrain: https://github.com/settings/admin <- don'T press the top button, but read the link above it
22:52:50 <frosch123> TrueBrain: well, we can store both
22:52:53 <TrueBrain> okay, like: REALLY HORRIBLE IF YOU DO THIS, BUT OKAY
22:53:12 <frosch123> use the integer for access, and update the login name whenever the user updates something
22:53:16 <TrueBrain> store login at the content, and a big list of mapping, or something :)
22:53:39 <TrueBrain> well, no, my idea is stupid
22:53:46 <TrueBrain> just login:uid in authors.yml is fine
22:53:46 <frosch123> for eints it did not matter, since usernames do not persist past commit messages
22:54:02 <TrueBrain> login can be out-of-date, which is totally fine
22:54:09 <frosch123> yep, so we agree
22:54:36 <frosch123> though i would go for uid:login, just for paranoia that login may contain :
22:54:49 <TrueBrain> I like that all parts that are coming up we already did :) Github authentication, commit to GitHub, API, HTML :)
22:54:53 <frosch123> and i want to split on first :, not last :
22:55:16 <TrueBrain> frosch123: well, it is YAML, so: authors:\n- login: TrueBrain\n uid: 12312312312312312312
22:55:17 <TrueBrain> :D
22:55:30 <TrueBrain> owh, and quotes ofc
22:55:41 <TrueBrain> but that part will be fine :)
22:55:59 <frosch123> ok, so two nested levels
22:56:19 <TrueBrain> in YAML it is very normal to have dicts, which the above is :)
22:56:32 <TrueBrain> well, a list of dicts, I guess
22:56:36 <TrueBrain> to be more correct :)
22:57:04 <frosch123> i had trouble spotting the "-"
22:57:26 <TrueBrain> https://github.com/OpenTTD/OpenTTD/blob/master/.github/workflows/commit-checker.yml#L12
22:58:09 <TrueBrain> or better:
22:58:10 <TrueBrain> https://gist.github.com/TrueBrain/34cd8e135b080621284b27ed8249aa9c#file-authors-yaml-L4
22:58:18 <TrueBrain> I should have done that in the first place :)
23:00:29 <frosch123> LordAro: did you read the source? top and bottom?
23:01:13 <LordAro> frosch123: i prefer this one http://bettermotherfuckingwebsite.com/
23:01:38 *** tokai has joined #openttd
23:01:38 *** ChanServ sets mode: +v tokai
23:01:39 <frosch123> TrueBrain: "uid" -> "github"? then we can add other authenticators later
23:02:03 <TrueBrain> or "authors" -> "github" ?
23:02:12 <TrueBrain> as the login might be tight to the authentication method
23:02:43 <TrueBrain> like this?
23:03:22 <frosch123> i would have used the login as displayname, so there should only be one per person
23:03:46 <frosch123> but, too much detail, can be changed later
23:03:58 <TrueBrain> no no, I like this fiddling late at night :)
23:04:32 <TrueBrain> updated
23:04:39 <TrueBrain> yeah, that looks better :)
23:05:32 <TrueBrain> and now with comments
23:07:26 <TrueBrain> so in listing we can use display-name, when someone logins via GitHub it can change, but only for new content he uploads
23:07:33 <TrueBrain> works-for-me
23:08:26 <frosch123> oh, right, i forgot about "openttd"... we already have another authentication method
23:08:29 *** tokai|noir has quit IRC
23:08:37 <TrueBrain> yeah, which is now solved nicely too :)
23:09:02 *** Wolf01 has quit IRC
23:09:43 <TrueBrain> okay, off to bed for me. But I am a bit more optimistic now, tnx frosch123 :) We can do this!!!! :D
23:10:05 <TrueBrain> possibly we should make a post about this in the weekend, to let people know what is coming
23:10:21 <TrueBrain> I guess andythenorth is now yelling: FEB DEV POST
23:10:29 <TrueBrain> and I guess he would be right, would be a perfect place for that :)
23:10:33 <andythenorth> perfecto
23:10:36 <andythenorth> just in time for April :)
23:10:44 <andythenorth> I would write blog posts, but meh
23:10:53 <TrueBrain> anyway, night
23:10:54 <andythenorth> is it bedtime? :)
23:10:57 * andythenorth should
23:11:04 <andythenorth> night
23:11:18 *** andythenorth has left #openttd
23:12:59 *** frosch123 has quit IRC
23:15:00 *** heffer has quit IRC
23:16:32 *** tokai|noir has joined #openttd
23:16:32 *** ChanServ sets mode: +v tokai|noir
23:20:04 *** heffer has joined #openttd
23:23:24 *** tokai has quit IRC
23:27:39 *** gelignite_ has joined #openttd
23:30:06 *** nielsm has quit IRC
23:31:32 *** Generalcamo has joined #openttd
23:37:11 *** HerzogDeXtEr has quit IRC
23:49:22 *** tokai has joined #openttd
23:49:22 *** ChanServ sets mode: +v tokai
23:52:14 *** Progman has quit IRC
23:56:24 *** tokai|noir has quit IRC
23:58:24 *** Samu has quit IRC