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

Powered by YARRSTE version: svn-trunk