Config
Log for #openttd on 4th December 2021:
Times are UTC Toggle Colours
00:01:54  *** _aD has quit IRC
00:11:35  *** tokai has quit IRC
00:18:53  *** tokai has joined #openttd
00:18:53  *** ChanServ sets mode: +v tokai
00:19:53  *** _aD has joined #openttd
00:38:34  *** esselfe has quit IRC
00:41:07  *** esselfe has joined #openttd
02:44:10  *** WormnestAndroid has quit IRC
02:45:07  *** WormnestAndroid has joined #openttd
02:50:46  <DorpsGek> [OpenTTD/OpenTTD] RealDeuce opened pull request #9728: Explicitly disallow socket descriptor of -1 https://git.io/JMShF
03:15:11  *** Wormnest has quit IRC
03:31:58  *** D-HUND has joined #openttd
03:35:20  *** debdog has quit IRC
03:44:31  *** glx has quit IRC
03:49:23  <DorpsGek> [OpenTTD/OpenTTD] a2aaron commented on pull request #9727: Feature #9059: Add buttons to toggle music in the Game Options menu. https://git.io/JM9LY
04:34:40  *** Flygon has joined #openttd
05:26:28  *** andythenorth has joined #openttd
05:32:16  * andythenorth wonders if it was 'sufficient' not 'adequate' :)
05:32:20  <Eddi|zuHause> guys, there's snow
05:34:34  *** andythenorth has quit IRC
05:37:42  <Eddi|zuHause> i think i broke him
05:45:17  *** _aD has quit IRC
05:54:17  *** andythenorth has joined #openttd
06:00:43  *** andythenorth has quit IRC
08:07:12  *** sla_ro|master has joined #openttd
09:12:28  *** Wolf01 has joined #openttd
09:18:19  *** nielsm has joined #openttd
09:24:30  *** Wolf01 is now known as Guest7529
09:24:32  *** Wolf01 has joined #openttd
09:28:28  *** Speedy` has joined #openttd
09:30:30  *** Guest7529 has quit IRC
09:40:42  *** roadt__ has quit IRC
09:45:24  *** roadt has joined #openttd
09:53:28  *** andythenorth has joined #openttd
10:04:56  *** andythenorth has quit IRC
10:33:14  *** J0anJosep has joined #openttd
10:42:51  <TrueBrain> InternalPostPre
10:42:51  <TrueBrain> lol
10:42:51  <TrueBrain> :P
10:44:51  <TrueBrain> michi_cc: when we are at this, is ::Post really a good name?
10:45:04  <TrueBrain> DoCommand vs DoCommandP always confused people already
10:51:35  <DorpsGek> [OpenTTD/OpenTTD] TrueBrain commented on pull request #9725: Template DoCommand and friends https://git.io/JMHCs
10:55:14  <TrueBrain> ugh, I tried to review that PR, but I don't understand 90% of the magic :D Lol :)
10:57:36  <michi_cc> Well, with this PR you will definitely need a C++17 compiler. But be glad that it is C++17, otherwise something like https://github.com/OpenTTD/OpenTTD/blob/da67bfd0836e4f1607ce52a7498eb07b8b5c02ec/src/command_func.h#L306 would expand into about a million template specializations of structs with lots of std::enable_if and friends :)
10:58:18  <TrueBrain> in other words: it could have been worse :P
10:58:21  <TrueBrain> yeah, gotcha :)
10:58:45  <TrueBrain> its all magic to me :)
10:59:14  <michi_cc> There is a lot of magic you can do with if constexpr and parameter pack expansion (...).
10:59:36  <TrueBrain> its insane; and this PR is huge. Which both are a compliment to you :)
11:00:28  <michi_cc> E.g. "(ClientIdIsSet(std::get<Tindices>(values)) && ...)" expands to "ClientIdIsSet(std::get<1>(values)) && ClientIdIsSet(std::get<2>(values)) && ......." for exactly as many elements as values has. And it even is completely defined for a values with zero elements (false).
11:01:21  <TrueBrain> how does it know whether you want && or || ? :)
11:02:30  <michi_cc> Because you write the operator you want :)
11:02:53  <TrueBrain> owh, so the "&& ..." is the syntax
11:02:57  <TrueBrain> not you cutting off the line?
11:03:11  <TrueBrain> lol ... that is one odd syntax
11:03:13  <TrueBrain> but if it works, it works :)
11:03:21  <TrueBrain> how do you figure out what you can do and what not ......
11:03:33  <michi_cc> You can even do stuff like "0 + ... + template", "... + template" or "template + ...", which will handle initial values, left-associative and right-associative operators.
11:04:01  <michi_cc> You read https://en.cppreference.com/w/cpp/language/fold and stack overflow :)
11:04:14  <TrueBrain> impressive ...
11:05:55  <michi_cc> Most nifty is that it also works with the comma operator, so if you want to just call functions based on the parameter pack without doing anything with the result, just stick , in between :)
11:08:57  <DorpsGek> [OpenTTD/OpenTTD] michicc commented on pull request #9725: Template DoCommand and friends https://git.io/JMH8W
11:11:00  <michi_cc> Also, compilers have become really good a optimizing things, i.e. in https://godbolt.org/z/ja9Y7ane6 none of the templated tuple stuff, fold espressions or if constexpr survives, it literally is completely optimized out to two single static calls to CcCallback with fixed arguments.
11:12:08  <michi_cc> (If you ignore the million extra lines the MSVC assembly output contains and just skip directly to the end where main lives.)
11:13:06  <DorpsGek> [OpenTTD/OpenTTD] TrueBrain commented on pull request #9728: Fix: FreeBSD crash on multiplayer https://git.io/JMH4c
11:13:54  <TrueBrain> sick
11:14:41  <TrueBrain> I like that compiler got really clever, means we don't have to think so much about those things :)
11:16:08  <michi_cc> Some of that is not completely chance, e.g. std::tuple was explicitly designed for maximum compile time optimizations.
11:22:10  <peter1138> But, oh no! It takes so long to compile now!
11:22:26  <peter1138> How is it late morning already :/
11:22:58  <TrueBrain> I was wondering the same :P
11:23:19  *** J0anJosep has quit IRC
11:24:51  <TrueBrain> brr, I am compiling OpenTTD again .. that has been a while :P
11:31:57  <DorpsGek> [OpenTTD/OpenTTD] TrueBrain opened pull request #9729: Codechange: ensure OnConnect() always gets called with a valid socket https://git.io/JMH0F
11:32:49  <DorpsGek> [OpenTTD/OpenTTD] TrueBrain commented on pull request #9728: Fix: FreeBSD crash on multiplayer https://git.io/JMHEv
11:35:11  <TrueBrain> so are we going to self-promote on Steam?
11:35:51  <TrueBrain> or is the period already over? :P
11:37:31  <DorpsGek> [OpenTTD/OpenTTD] RealDeuce commented on pull request #9728: Fix: FreeBSD crash on multiplayer https://git.io/JMHED
11:37:53  <DorpsGek> [OpenTTD/appstore-data] TrueBrain commented on pull request #9: Add: Announcement for 2021 Steam Award nominations https://git.io/JMHE7
11:37:56  <DorpsGek> [OpenTTD/appstore-data] TrueBrain closed pull request #9: Add: Announcement for 2021 Steam Award nominations https://git.io/JMaQa
11:40:11  <TrueBrain> hmm, #9728 was using a release, so asserts were disabled .. so even the ones that did exist might not have triggered. Well, let's hope he tries my PR :)
11:42:05  <DorpsGek> [OpenTTD/OpenTTD] TrueBrain commented on pull request #9728: Fix: FreeBSD crash on multiplayer https://git.io/JMHu0
11:42:43  *** HerzogDeXtEr has joined #openttd
11:46:18  <DorpsGek> [OpenTTD/OpenTTD] RealDeuce commented on pull request #9728: Fix: FreeBSD crash on multiplayer https://git.io/JMHzc
11:47:03  *** frosch123 has joined #openttd
11:49:14  <TrueBrain> and indeed, the problem is in a totally different place :D
12:08:27  <TrueBrain> you can't convert a PR to an issue, lol
12:08:28  <TrueBrain> annoying
12:11:07  <DorpsGek> [OpenTTD/OpenTTD] TrueBrain opened issue #9730: [Bug]: [FreeBSD] crash on opening Multiplayer https://git.io/JMHrz
12:12:36  <DorpsGek> [OpenTTD/OpenTTD] TrueBrain commented on pull request #9728: Fix: FreeBSD crash on multiplayer https://git.io/JMHrQ
12:12:39  <DorpsGek> [OpenTTD/OpenTTD] TrueBrain closed pull request #9728: Fix: FreeBSD crash on multiplayer https://git.io/JMShF
12:17:33  <DorpsGek> [OpenTTD/OpenTTD] TrueBrain commented on issue #9730: [Bug]: [FreeBSD] crash on opening Multiplayer https://git.io/JMHrz
12:19:24  <TrueBrain> lol, seems the happy eyeball thing is kicking us in the nuts when timing is just a bit bad :P
12:21:11  *** jottyfan has joined #openttd
12:21:16  <DorpsGek> [OpenTTD/OpenTTD] TrueBrain commented on issue #9730: [Bug]: crash on opening Multiplayer https://git.io/JMHrz
12:21:18  *** jottyfan has quit IRC
12:26:49  *** andythenorth has joined #openttd
12:32:49  <andythenorth> yo
12:39:37  <FLHerne> oy
12:42:25  *** Alkel_U3 has quit IRC
12:46:11  <DorpsGek> [OpenTTD/OpenTTD] RealDeuce commented on issue #9730: [Bug]: crash on opening Multiplayer https://git.io/JMHrz
12:46:22  *** Alkel_U3 has joined #openttd
12:47:09  <TrueBrain> lol .... now that is just rude :P ("I am not going to test if anything you did actually fixed my issue")
12:47:35  <DorpsGek> [OpenTTD/OpenTTD] nielsmh commented on pull request #9727: Feature #9059: Add buttons to toggle music in the Game Options menu. https://git.io/JMHM9
12:48:32  <LordAro> TrueBrain: always run that risk by providing a workaround :p
12:48:44  <LordAro> a bit blunt though, for sure
12:48:58  <TrueBrain> it is not my workaround, it is his own "now we are leaking memory" one :D
12:49:35  <DorpsGek> [OpenTTD/OpenTTD] TrueBrain commented on issue #9730: [Bug]: crash on opening Multiplayer https://git.io/JMHrz
12:49:56  <TrueBrain> reproducing this issue locally is insanely difficult :P
12:52:47  <TrueBrain> I want "for {} else {}" in C++!
12:52:50  *** jottyfan has joined #openttd
12:55:09  *** jottyfan has quit IRC
12:56:57  <nielsm> the thing with "for ... else" is that the "else" part could do two different things logically: it could be a block that runs if the loop executes zero iterations, or it could be a block that executes if the loop runs to end without a "break" or "return" statement terminating it
12:57:47  <nielsm> although I guess the latter option is the more useful of the two
12:59:13  <TrueBrain> that is what Python does
13:00:01  <TrueBrain> hmm, response in #9730 is a bit funny, as they says they doesn't want to remove the entry from the config, but I doubt they can connect to it currently .. our code really fucks you over in those cases :D
13:02:19  <TrueBrain> the issue is annoying .... it is really difficult to see if a socket is connected, it seems :P
13:07:33  <TrueBrain> connections that are not open return "true" for a select() on write
13:07:39  <TrueBrain> which is .. not what it should be doing? Lol
13:14:38  <TrueBrain> ah, select() on a socket that is in a bad state causes all sockets to be reported in a weird state ... so my way of debugging this was influencing the results
13:14:39  <TrueBrain> nice
13:21:19  <nielsm> michi_cc: another verb for executing/posting a command could be Invoke
13:23:08  <TrueBrain> Invoke, not a bad suggestion either :)
13:23:21  <TrueBrain> hmm .. commit message .. this is a hard one to put in one line :D
13:30:03  <frosch123> i like "post" because it matches the C++2x executor terminology: dispatch, defer, post,
13:31:25  <TrueBrain> but what does it mean, "post" .. even in the C++2x context?
13:32:08  <nielsm> it means "send the request and continue executing"
13:32:34  <nielsm> posting a message: putting it in the mailbox and go on with your own things, while waiting for a response
13:33:09  <DorpsGek> [OpenTTD/OpenTTD] TrueBrain opened pull request #9731: Fix: [Network] bad timing can cause invalid socket to be used for server connections https://git.io/JMHbZ
13:33:44  <TrueBrain> ah, mailbox concept. Feels odd to consider the DoCommand similar :)
13:34:06  <TrueBrain> anyway, especially the InternalPostPre function triggered me :P It makes you scratch your head too much :)
13:34:08  <nielsm> if you consider it in the client-server context it makes sense
13:34:28  <nielsm> since you need to send the command to the server to get a definitive result from it
13:35:18  <TrueBrain> right, spend most time of #9731 actually reproducing the issue .. but after that, it was easy to solve :P
13:35:39  <michi_cc> Yeah, in a networking context, Post will indeed not to anything right away, but only when the command comes back from the server next tick.
13:36:03  <nielsm> (in Win32 programming you have SendMessage() and PostMessage() to deliver window messages to another window: SendMessage() blocks execution and returns the WndProc result to the caller, while PostMessage() shunts the message out and has the result discarded)
13:37:58  <TrueBrain> aren't we in between Send and Post in this example? Not that it matters :D
13:40:04  <TrueBrain> yeah, we run some checks on it, return false if it failed. If everything is fine, we queue it for networking
13:40:07  <TrueBrain> funny :)
13:40:16  <frosch123> "post" is non-blocking, "dispatch" is blocking. so "DoCommandP" is a "post", while "DoCommand without P" is a "dispatch"
13:40:34  <TrueBrain> Post isn't pure non-blocking, but I get what you mean :)
13:40:39  <TrueBrain> we have a weird hybrid :P
13:41:24  <frosch123> oh, right, in that case "defer"... i never used that, but it means "executor decides whether blocking/non-blocking"..
13:41:35  <frosch123> i hate it though :p
13:41:44  <TrueBrain> smells like Javascript :P
13:42:15  <DorpsGek> [OpenTTD/OpenTTD] TrueBrain commented on pull request #9725: Template DoCommand and friends https://git.io/JMHAO
13:43:29  <TrueBrain> there are some more "p2" comments in that file michi_cc :P
13:43:35  <TrueBrain> but now we are so nitpicking
13:45:38  <frosch123> nitpicking is great for postponing reading the template magic :)
13:45:49  <TrueBrain> I really tried, and I really cannot
13:45:57  <TrueBrain> was tempted to just approve it, honestly :P
13:46:14  <TrueBrain> InternalExecuteValidateTestPrepExec
13:46:17  <TrueBrain> that function-name :P
13:46:23  <TrueBrain> TestPropExec ... wuth? :D
13:47:02  <frosch123> i did not yet get that far, i barely started :p
13:47:56  <TrueBrain> right, back to the Post talk; I do not mind ::Post, but I think we should look at functionnames like InternalDoPost and InternalPostPre
13:48:04  <TrueBrain> as InternalDoPost, is the Post of the ::Do
13:48:21  <TrueBrain> and it becomes rather annoying to keep those different meaning of "Post" separated :P
13:48:47  <TrueBrain> InternalDoAfter and InternalPostBefore
13:48:51  <TrueBrain> as suggestions
13:48:59  <TrueBrain> would solve that problem for me completely :)
13:49:37  *** iSoSyS has joined #openttd
13:51:26  <DorpsGek> [OpenTTD/OpenTTD] TrueBrain commented on issue #9730: [Bug]: crash on opening Multiplayer https://git.io/JMHrz
13:54:14  <TrueBrain> where is glx .. #9722 needs some more readable backtrace :P
13:56:35  <michi_cc> TrueBrain: Are you looking by commit or at the total result, because in the final version there is only that p2 comment.
13:56:53  <TrueBrain> I am only looks at the final result, and a bit lower was another one
13:57:17  <michi_cc> Hmm, Ctrl-F disagrees.
13:58:06  <TrueBrain> https://github.com/OpenTTD/OpenTTD/pull/9725/files#diff-0bc326bb887d1d3321af2fe0386ddde9157d1ba109a73b93ea41b03f7bc3cb48R368
13:58:10  <TrueBrain> pretty sure your CTRL+F is broken ;)
14:01:33  <michi_cc> Ah, there...
14:02:09  <TrueBrain> its in the same file! :P
14:02:42  <TrueBrain> and in case it wasn't clear yet michi_cc , I really like what you did in that PR :)
14:03:00  <michi_cc> So, DoCommand<>::XX or Command<>::XX ?
14:03:55  <TrueBrain> latter .. "Do" has no more meaning, in my opinion
14:05:54  *** glx has joined #openttd
14:05:54  *** ChanServ sets mode: +v glx
14:10:29  <michi_cc> TrueBrain: InternalExecuteValidateTestPrepExec (which describes more exact what it does), or just InternalExecuteAfterTest?
14:11:21  <TrueBrain> mainly my head went: Prep .. Preparation? Exec .. Execute? So InternalExecuteValidateTestPreparationExecute? :D
14:11:38  <michi_cc> Yes, that would be the fully expanded function name :)
14:11:45  <TrueBrain> and that made me giggle :P
14:11:56  <TrueBrain> maybe adding a doxygen comment what it does is more than enough
14:12:06  <glx> oh right 9722, I forgot to open it on PC after seeing it on mobile
14:12:10  <michi_cc> But it exactly describes what it does, validate the test run and prepare for real execution.
14:12:16  <TrueBrain> And
14:12:21  <TrueBrain> okay, that part I did not guess :)
14:12:39  <TrueBrain> ValidateTextAndPrepExecute might work better?
14:12:48  <TrueBrain> dunno :) There was no doxygen, so I was just left giggling honestly :)
14:13:03  <TrueBrain> sometimes I am just a child
14:13:21  <TrueBrain> (I thought it was validating and testing the prepare to execute :P)
14:14:41  <TrueBrain> I btw like how you solved networking .. pretty slick
14:14:46  <michi_cc> Technically, I could have inlined the contents of all the Internal... functions into the calling functions, but I didn't want to lift (and include all corresponding headers) too many internals into the templated functions in the header.
14:15:43  <michi_cc> Yeah, endian_buffer.hpp is another one of those nifty templated thingies :)
14:16:11  <DorpsGek> [OpenTTD/OpenTTD] glx22 commented on issue #9722: [Crash]: Crashed while creating small map https://git.io/JMBfG
14:16:49  <glx> nice one
14:16:53  <glx> w is null
14:17:04  <glx> and of course asserts are disabled
14:17:07  <TrueBrain> still annoyed our network protocol is LE .. but not something we will be fixing any time soon :P
14:17:40  <glx> but how it's possible to not have main toolbar ???
14:17:41  <TrueBrain> glx: guess he pressed a hotkey during terrain generation?
14:18:06  <glx> seems so
14:19:03  <glx> indeed 'A' has been pressed :)
14:19:40  <glx> so autorail tool, and all the related windows update
14:20:59  <TrueBrain> funny if that actually crashes the game ... as nobody noticed that before? :P
14:22:13  <DorpsGek> [OpenTTD/OpenTTD] glx22 commented on issue #9722: [Crash]: Crashed while creating small map https://git.io/JMBfG
14:22:46  <glx> and indeed another thread is generating the world
14:23:19  * glx wants to try to reproduce now :)
14:26:55  <glx> and I can't reproduce it
14:27:00  <TrueBrain> :(
14:28:41  <glx> even with the key "stuck" while generating
14:29:29  <TrueBrain> can't reproduce it either :(
14:31:19  <michi_cc> Okay, finally poll: Command<>::Post, Command<>::Execute, Command<>::InvokeWitchcraft or something else?
14:31:27  <TrueBrain> YES!
14:31:34  <TrueBrain> :D
14:31:36  <glx> Invoke for me
14:35:41  <michi_cc> Okay, a fully unambiguous result I see.
14:36:27  *** supermop_Home has joined #openttd
14:36:59  <michi_cc> TrueBrain: BTW, is the command network packet change anything that has to be reflected in the TURN relay, or is it transparent on that level?
14:37:09  <TrueBrain> transparent
14:37:18  <TrueBrain> TURN only validates it is a valid OpenTTD packet
14:38:12  <glx> ok attached game thread callstack too
14:53:10  *** jottyfan has joined #openttd
15:04:18  <DorpsGek> [OpenTTD/OpenTTD] 2TallTyler commented on pull request #9727: Feature #9059: Add buttons to toggle music in the Game Options menu. https://git.io/JMQ3q
15:13:49  <michi_cc> Okay, I'm AFK until later, please discuss Command<>::Post until then :p
15:23:12  <TrueBrain> guess if we follow frosch123 's C++2x addiction, it should be Command::Dispatch for DoCommand and Command::Post for DoCommandP, not? :)
15:28:08  <michi_cc> I like ::Do though, as it always was DoCommand.
15:33:01  <Rubidium> oh darn... what did I cause? ;)
15:48:51  <TrueBrain> Nah, this one is on me .. couldn't handle the InternalPostPre :p
15:49:47  <Rubidium> following the style of the C++ specification would probably be favorable... though it's not yet part of the official specs as far as I can see... So, they could change the spec to suit the style that is chosen by us, right? ;)
15:52:11  <frosch123> they blatantly copied from boost::asio :p
16:29:10  *** sla_ro|master has quit IRC
16:37:26  *** Wormnest has joined #openttd
16:43:02  <dP> michi_cc, did you completely obliterate CommandContainer in #9725 ?
16:43:16  <dP> for all the stuff I do with commands I found container-baised api the most useful
16:44:54  <dP> as it allows to separate game state logic and technicalities of command invocation
16:48:58  <frosch123> there is still the network package. there is no struct with fixed members p1, p2,... that's the whole point of the PR, right?
16:50:46  <dP> it doesn't have to be a single struct :p
17:00:08  <frosch123> there are plenty of template instantiations, i guess those are the "structs" you are looking for
17:07:07  <DorpsGek> [OpenTTD/team] frosch123 commented on issue #272: [id_ID] Translator access request https://git.io/JM6Cn
17:11:47  <DorpsGek> [OpenTTD/OpenTTD] frosch123 commented on pull request #9709: Feature: Build objects by area https://git.io/JMQia
17:26:57  <DorpsGek> [OpenTTD/OpenTTD] frosch123 commented on pull request #9709: Feature: Build objects by area https://git.io/JMQMY
17:28:12  <DorpsGek> [OpenTTD/OpenTTD] frosch123 approved pull request #9729: Codechange: ensure OnConnect() always gets called with a valid socket https://git.io/JMQM2
17:32:11  <DorpsGek> [OpenTTD/OpenTTD] TrueBrain merged pull request #9729: Codechange: ensure OnConnect() always gets called with a valid socket https://git.io/JMH0F
17:34:24  <DorpsGek> [OpenTTD/OpenTTD] frosch123 commented on pull request #9731: Fix: [Network] bad timing can cause invalid socket to be used for server connections https://git.io/JMQD5
17:35:17  <DorpsGek> [OpenTTD/OpenTTD] TrueBrain commented on pull request #9731: Fix: [Network] bad timing can cause invalid socket to be used for server connections https://git.io/JMQyf
17:38:27  <DorpsGek> [OpenTTD/OpenTTD] frosch123 commented on pull request #9731: Fix: [Network] bad timing can cause invalid socket to be used for server connections https://git.io/JMQyr
17:38:37  <DorpsGek> [OpenTTD/OpenTTD] frosch123 approved pull request #9731: Fix: [Network] bad timing can cause invalid socket to be used for server connections https://git.io/JMQyX
17:40:10  <TrueBrain> it is just annoyed there is no sane way to check if a socket is connected ...
17:40:26  <TrueBrain> depending on this "if it was EINPROGRESS and now writable and no error, it is connected"
17:40:27  <TrueBrain> is just annoying
17:41:32  <TrueBrain> but you do have a good point frosch123 , it also checks for errors on sockets that do not have their writefd set .. which strictly seen can mean because of some race this is still not doing what it should be doing
17:45:30  <frosch123> do you want to add a test whether the bit is set?
17:45:59  <TrueBrain> no, but I also don't want to depend on n .. let me try something
17:46:59  <frosch123> the loop after the "if (n==0)" checks write_fd, so maybe some "for(..) else {}" there :p
17:47:31  <TrueBrain> I now merged the "connected_socket" part with the error loop
17:47:36  <TrueBrain> that seems to look more solid
17:50:24  <DorpsGek> [OpenTTD/OpenTTD] TrueBrain dismissed a review for pull request #9731: Fix: [Network] bad timing can cause invalid socket to be used for server connections https://git.io/JMQyX
17:50:27  <DorpsGek> [OpenTTD/OpenTTD] TrueBrain updated pull request #9731: Fix: [Network] bad timing can cause invalid socket to be used for server connections https://git.io/JMHbZ
17:50:31  <TrueBrain> I think this is more readable
17:51:38  <TrueBrain> well, the diff isn't :D
17:54:14  <DorpsGek> [OpenTTD/OpenTTD] TrueBrain updated pull request #9731: Fix: [Network] bad timing can cause invalid socket to be used for server connections https://git.io/JMHbZ
17:54:31  <TrueBrain> the longer I look at code, the more I start to change coding style .. I shouldn't be doing that :D
17:58:51  <TrueBrain> hard to emulate all kind of weird network setups :D
18:06:41  <nielsm> TrueBrain: I'd suggest changing the title of #9731 to "race condition" instead :)
18:07:23  <TrueBrain> well, honestly, it is just poor coding
18:07:27  <TrueBrain> but that is hard to write in a commit message :P
18:08:23  <TrueBrain> "race condition causes connection to use an invalid socket"
18:08:29  <TrueBrain> still a shitty commit message, but what can you do :P
18:08:58  <frosch123> Fix: TrueLight should have used a better DHCP server."
18:09:08  <TrueBrain> YES! THAT!
18:10:30  *** Flygon has quit IRC
18:10:58  <nielsm> Fix: connect failure due to race condition \n\n When an IPv6 connection takes longer to report an error than timeout on IPv4 connection, a socket variable may be set to an invalid value.
18:11:24  <TrueBrain> your subtext is not what is going on, but yeah, that works
18:11:31  <TrueBrain> well, it is not a connect failure
18:11:34  <TrueBrain> just random shit starts to happen :P
18:11:53  <TrueBrain> as surprisingly a lot accepts -1 as socket-id
18:13:22  <TrueBrain> the response time of connection to IP1 is > 250ms < (250ms+response time of connection to IP2)
18:13:23  <TrueBrain> :D
18:18:14  <TrueBrain> I now realise it is only really an issue in this case because the IPv4 connection also fails .. lol. Such an exceptional case in so many ways :D
18:18:51  <TrueBrain> all this "fix shit because IPv6 sucks" :P
18:19:21  <frosch123> Add: support for TrueIP
18:19:34  <frosch123> it's just too easy :p
18:19:36  <TrueBrain> ha, that would suck even harder :D
18:19:59  <TrueBrain> mostly I am nitpicking this PR to death as I want to work on TrueGRF, but am kinda stuck on how to do tile editing :D
18:27:19  *** sla_ro|master has joined #openttd
18:38:08  <TrueBrain> guess I should give it a rest and look at cargo ..
18:38:53  <TrueBrain> "The industry can be exploded by a military airplane (oil refinery) " <- wait, this is a thing?!
18:40:37  <frosch123> disasters
18:41:08  <TrueBrain> never ever witnessed it
18:41:11  <frosch123> one of the pointless ones, which are only visuals and don't change anything
18:41:14  <TrueBrain> but .. doubt I ever really played with disasters on :P
18:41:21  <TrueBrain> ah, well, that would also explain :D
18:41:38  <nielsm> is it really only visual? I thought it prevented production for 1 month
18:41:46  <frosch123> the industry's construction state is reset, so the build animation restarts. but it does not even stop production
18:41:58  <TrueBrain> sounds like a bug :P
18:42:21  <frosch123> nielsm: ok, i don't think i ever fact-checked it :)
18:43:28  <TrueBrain> the amount of time spend on those gimmicks ....... :D
18:44:25  <frosch123> the most weird one is the coal-mine-collapse
18:44:42  <frosch123> it terraforms and destroy trees, but does not destroy infrastructure
18:45:12  <TrueBrain> mine collapse I do know ..
18:45:18  <frosch123> i mean, sure, ufos destroying vehicles and rail tracks are annoying, but a disaster not destroying anything is even more stupid
18:45:22  <TrueBrain> but military stuff .. nope :P
18:48:31  <TrueBrain> lol, NewGRF Cargo with its "one unit" vs "multiple units"
18:48:36  <TrueBrain> so cute, thinking that covers all languages :D
18:48:55  <frosch123> i think you can skip those strings
18:50:13  <TrueBrain> "since 1 ton of gold ore should weigh exactly 1 ton" .. "should"... yes, 1kg of feathers is equal in weight to 1kg of lead
18:50:14  <frosch123> though didn't our lord change the subsidy new message just last month?
18:50:16  <TrueBrain> factual true :P
18:50:58  <frosch123> TrueBrain: sounds like mars newgrf :p
18:51:24  <TrueBrain> you expect on mars for kg to work differently? :P
18:51:51  *** sla_ro|master has quit IRC
18:52:31  <frosch123> depends whether your scale has a earth/mars switch
18:52:48  <TrueBrain> compare earth kg with mars kg? This is getting stranger and stranger :D
18:53:31  <frosch123> if you train a bit, you could probably lift 1 ton of gold on mars, while you probably can't on earth
18:53:54  <TrueBrain> that doesn't change that a kg of feathers is exactly the same weight as 1kg of lead :)
18:54:15  <frosch123> noone questioned that :)
18:54:37  <TrueBrain> the NewGRF specs allow this holding not-true! :P
18:54:49  <frosch123> but be careful if someone wants to sell you 1 ton of gold on mars using the earth price and an earth scale
18:55:07  <TrueBrain> how I would love to be fooled by that .. just for the fact I am on Mars :)
18:55:37  <TrueBrain> okay, I can safely say I do not understand most of the cargo properties
18:55:56  <frosch123> try with checking which one ottd acutally uses :p
18:56:59  * Rubidium hads tons of homework... but alas... all combined it never weighed more than 100 kg
18:57:20  <frosch123> 1B and 1C deprecates some of the older strings
18:57:47  <frosch123> Rubidium: did you check? paper weights a lot
18:58:33  <TrueBrain> so you can define your own profit callback .. but cargo has no properties .. hmm ..
18:59:26  <frosch123> oh dear, please do not restart the profit cb discussion again :)
18:59:27  <TrueBrain> owh, all encoded in the callback itself
18:59:50  <TrueBrain> hard to restart anything I am oblivious to :P
19:01:46  <frosch123> cargospec is funny, it feels like half of it is deprecated, only needed to support 10+ year old grfs
19:01:55  <frosch123> which probably do not work anyway
19:01:56  <Rubidium> frosch123: don't really need to weigh it; it was only one subject I had a lot of homework for, the rest was already done during class... well until I went to university, but then almost everything was digital and electrons do not weigh that much
19:02:01  <TrueBrain> also makes it really hard to figure out what to implement :P
19:02:59  <frosch123> TrueBrain: andy auto-generates cargo-colors using some color-distance metric :p
19:03:17  <TrueBrain> based on a script you made, not? :P
19:03:21  <TrueBrain> he tends to bring it up .. a lot
19:03:24  <TrueBrain> :D
19:03:40  <frosch123> i hoped you were oblivious to that :p
19:04:51  <TrueBrain> so okay ... lets see .. what action0 thingies do I understand from Cargo ... 09 .. 0e .. 0f ... 13, 14 .. 17-ish .. 1a .. rest is ... wtf :P
19:05:53  <frosch123> 08 is deprecated, but must be set, usually it is set to the same value as the action3id / item-id / whatever you call that
19:06:10  <frosch123> 09-0D no idea which are used, and which are depreacted by 1B and 1C
19:06:23  <frosch123> 0E deprecated, use action123 instead
19:06:37  <TrueBrain> yeah, set 0e to 0xffff basically
19:07:08  <frosch123> 16-17: most important of them all
19:07:25  <TrueBrain> "and slots 12-31 contain uninitialized garbage by default (so you can't trust them having meaningful information, you must set all of their properties). " <- this is just bullshit btw :P
19:07:28  <frosch123> rest is boring prices and stuff
19:07:36  <TrueBrain> at least for industries etc you can copy an existing to get some known good values :)
19:07:45  <TrueBrain> I did not understand 16 at all
19:07:52  <TrueBrain> just a big blob of what-ever :)
19:08:15  <frosch123> 16 describes the cargotype, so that vehicles can decide whether they can carry it
19:08:46  <TrueBrain> mostly, I do not understand "usage" and the "tips" parts
19:08:55  <frosch123> tankers transport liquid cargo, open wagons transport bulk cargo, ....
19:10:19  <TrueBrain> feels like that text doesn't belong there :D
19:10:36  <frosch123> TrueBrain: cargo classes are used in the cargotype to define the cargo, and they are used in the vehicle to define refittablity. the "vehicle tips" is "how to use this for vehicles", the "industry tips" is "how to use this in the cargo definition"
19:12:13  <frosch123> for cargo-defintions it boils down to: you have a combobox/radiogroup which picks exactly one of pax, mail, bulk, piece, liquid. and then some checkboxes for the other optional parts, which may each be disabled for some of the combobox-selections
19:12:40  <frosch123> "usage" column is also for vehicles only
19:13:02  <TrueBrain> hmm .. so should I read this as part of the vehicle specs that just happen to be on the cargo spec page?
19:13:10  <TrueBrain> I really don't understand what it is trying to tell me :D
19:13:16  <frosch123> it's both :)
19:13:32  <frosch123> cargos say which type they are, vehicles say which type they like or dislike
19:13:42  <TrueBrain> like .. I make a new cargo .. and I set "Not Pourable ".. what do the tips help me?
19:13:49  <TrueBrain> what are they trying to tell me?
19:14:21  <frosch123> the "industry tips" columns tells you, "'not pourable' may only be set for 'bulk'"
19:15:02  <frosch123> 'bulk' is a selection in the combobox/radiogroup, 'non pourable' is a checkbox which is disabled for non-bulk
19:15:17  <TrueBrain> okay, so if I just ignore "usage" and "vehicle tips" I will be fine :)
19:15:33  <frosch123> yes :)
19:15:43  <TrueBrain> tnx :)
19:15:47  <TrueBrain> these specs .... :P
19:16:29  <TrueBrain> Liquid can also be combined with Bulk, hmm
19:16:37  <frosch123> oh, "armored" is also one of the primary types like "mail"
19:17:12  <TrueBrain> I guess the Refrigerated "also set" is also "combine with", but just worded differently?
19:17:43  <frosch123> https://newgrf-specs.tt-wiki.net/wiki/CargoTypes <- if you need examples
19:17:56  <frosch123> "dyes" are listed as "piece goods + liquid"
19:18:27  <frosch123> but imho that is BS :) i would put "liquid" and "piece goods" into the radiogroup, so never set both
19:18:36  <TrueBrain> easy is better
19:18:38  <TrueBrain> okay ...
19:18:49  <TrueBrain> tnx, I think I understand 16
19:19:18  <TrueBrain> 10/11/12 or callback 39 are just ... gibberish
19:19:38  <frosch123> blame CS :)
19:19:58  <frosch123> you could reimplement the in-game cargo-payment chart for previewing their effect
19:20:18  <TrueBrain> I wonder to either implement 10/11/12 or 39, but not both
19:20:48  <TrueBrain> how do charts plot for cb39? Does it check every value for a range or something?
19:21:43  <frosch123> iirc there are 3 inputs to that callback, the chart fixes 2 and sweeps the 3rd on the X axis
19:21:58  <TrueBrain> makes sense
19:22:07  <TrueBrain> okay, 10/11/12 seems easiest to implement for now
19:22:11  <TrueBrain> cb39 can be done when-ever
19:22:46  <TrueBrain> always a bit of the question what is easier .. make it freeform from the start, or use the constrained version first :)
19:22:48  <frosch123> https://github.com/OpenTTD/nml/pull/220 <- cb39 was fixed in nml only recently
19:22:50  <andythenorth> oh dear
19:22:55  <andythenorth> I looked away for a few minutes
19:22:56  <frosch123> so, it's rarely used
19:23:04  <andythenorth> and TrueBrain decided to explore cargo classes :(
19:23:11  <TrueBrain> frosch123: tnx, that settles it for now :)
19:23:18  <andythenorth> if I had been here earlier I would have tried to derail this with lolz
19:23:23  <andythenorth> or discussions about programming
19:23:30  <TrueBrain> cargo ids are global I assume, in contrast to the rest I have been fiddling with?
19:23:47  <frosch123> what is a "cargo id"?
19:23:58  <TrueBrain> sorry, cargo slots
19:24:00  <frosch123> "cargo label" is the important thing
19:24:04  <TrueBrain> I was using the wrong lingo :P
19:24:07  <frosch123> cargo slots do not matter
19:24:23  <TrueBrain> so they are per GRF too?
19:24:38  <andythenorth> cargo ids only matter when you accidentally shoot yourself with them
19:24:44  <frosch123> unfortunately "not yet"
19:24:54  <TrueBrain> so they do matter then, not? :D
19:25:02  <frosch123> as in: they are not per grf, they should be, but noone bothered in 10 years
19:25:18  <TrueBrain> so if 2 GRFs define cargo slot 15, they overwrite their cargo?
19:25:27  <TrueBrain> latest that loads wins or something?
19:25:31  <frosch123> TrueBrain: let's say, slot 0+2 are pax+mail, never ever touch them
19:26:01  <frosch123> there are headaches with goods+food because default houses accept them
19:26:11  <frosch123> the other slots use sequentially
19:26:18  <TrueBrain> I only try to figure out if I can just start at 0x12
19:26:31  <TrueBrain> or that I will clash with other NewGRFs and have to do something weird or what-ever
19:26:34  <TrueBrain> or make it configurable
19:26:40  <TrueBrain> so you can co-exist with another NewGRF you like
19:26:50  <frosch123> avoid using slot 31, weird vehicle grf use them for magic regearing cargos, but never start a discussion about that :)
19:27:32  <andythenorth> and avoid anything that vehicle grfs have used for livery refits
19:27:38  <frosch123> start at slot 32+ for now :p
19:27:50  <TrueBrain> as if I understand this correctly, IndustryIDs are mine, and I don't need to care about anything else
19:27:58  <frosch123> correct
19:28:00  <TrueBrain> but for cargo this seems to be different, at least, the text suggests that (but doesn't say it)
19:28:45  <andythenorth> it's a tragedy of the commons
19:28:48  <andythenorth> but it mostly works
19:28:58  <frosch123> yes, cargos are technically global, but noone wants them to be global, so there are a lot of places where the global-id does not matter, but there are still a few where it matter, mostly default houses
19:29:01  <andythenorth> the problems are social not technical, except for houses
19:29:24  <TrueBrain> frosch123: ah; and if 2 NewGRF use the same ID, does that give any issuie?
19:29:33  <TrueBrain> and what if 2 GRFs define the same cargo label?
19:29:43  <frosch123> yes, the rule is "only use one cargo newgrf at once" :)
19:29:50  <TrueBrain> gotcha
19:29:56  <TrueBrain> and I guess mostly cargos are defined by industry grfs?
19:29:57  <frosch123> that's why FIRS checks for 60+ conflicting newgrf
19:30:25  <andythenorth> is it that many :o
19:30:43  <frosch123> yes, cargos are supposed to be defined by industry newgrf only, with the exception of the highly-political "regearing" cargo :)
19:30:43  <andythenorth> wow https://github.com/andythenorth/firs/blob/master/src/incompatible_grfs.py#L52
19:31:04  <andythenorth> regearing isn't political, pikka said it's stupid and removed it :)
19:31:24  <frosch123> andythenorth: my bad, only 56 :)
19:31:26  <TrueBrain> the more I think about it, the more I think I will make TrueGRF generate a GRF for each domain .. so when you add industries and vehicles in it, it creates 2 GRFs which depend on each othe ror something
19:31:57  <TrueBrain> but okay, long-term issues
19:31:58  *** supermop_Home has quit IRC
19:32:09  <TrueBrain> right, that only leaves me puzzled wtf 08 is about ...
19:32:29  <TrueBrain> "Values 1C-1F should be safe to use (if they aren't already taken, of course) "
19:32:33  <TrueBrain> like, what do I do with this information?
19:33:22  <frosch123> 08 is deprecated, make it unique, but the value does not matter
19:33:31  <TrueBrain> rgr
19:33:51  <TrueBrain> I wonder how many people would get butt-hurt if we just make a NewGRF spec for OpenTTD 12+
19:33:53  <TrueBrain> and remove EVERYTHING ELSE
19:34:17  <TrueBrain> 08 - deprecated - set to cargo slot ID
19:34:19  <TrueBrain> bam, done
19:34:40  <andythenorth> TrueBrain 7
19:34:42  <TrueBrain> but okay, I only need to understand it once .. so .. there is no real added value to me :P
19:34:56  <andythenorth> but would you bump the version?
19:35:01  <LordAro> andythenorth: what happened to TrueBrains 2 through 6?
19:35:02  <andythenorth> otherwise...savegames :(
19:35:13  <andythenorth> I hate the savegame guarantee
19:35:19  <andythenorth> it means we can never clean out the grf spec
19:35:36  <andythenorth> 'hate' is a strong word
19:35:44  <TrueBrain> okay, tnx frosch123 , I think I know enough to implement new cargos .. now to actually do it :D
19:36:03  <TrueBrain> sorry, cargoes
19:36:04  <andythenorth> implement TRUE and BRNZ
19:36:31  <andythenorth> I can't remember, but my test cargos might have been CATS and LOL_
19:37:52  <TrueBrain> well, 1D is still a mystery to me, but I already decided to completely ignore it :P
19:39:36  <TrueBrain> "Used by andythenorth to identify default cargo graphics in newgrfs that use code/graphics generation. " <- if you made it in the specs ......
19:40:36  <frosch123> i bet he got a bug report about using an undocumented label :p
19:40:54  <TrueBrain> hmm .. can you make a cargo climate depending?
19:41:26  <frosch123> you can make everything climate depending
19:41:35  <frosch123> using action7+9
19:42:04  <frosch123> but i don't understand the climate fuzz
19:42:19  <TrueBrain> the reason I ask, is because I was planning on showing the default cargos
19:42:20  <frosch123> industries and climates should be orthogonal
19:42:21  <TrueBrain> so you can disable them
19:42:27  <TrueBrain> but .. the default ones are climate depending :P
19:43:15  <frosch123> don't show the default cargos :) just disable all
19:43:32  <TrueBrain> that doesn't work, as that would mean all the default industries also don't work :)
19:43:44  <frosch123> default cargos are nothing special, there are 100s of cargos on https://newgrf-specs.tt-wiki.net/wiki/CargoTypes
19:43:52  <frosch123> and every firs version adds 20 more
19:44:26  <TrueBrain> my current idea is that when you start TrueGRF, you start with the default stuff, where you can start altering from
19:44:35  <frosch123> TrueBrain: i guess that is something you have to decide early: either only allow defining new stuff, or only allow modifying original stuff
19:44:51  <andythenorth> oh dear did I do a thing?:|
19:44:53  <TrueBrain> well, the latter minus the "only" part :P
19:45:38  <frosch123> then you get the full glory of TTD mess :p it's way worse than any cargospec-deprecations
19:45:49  <TrueBrain> like offsets with sprites :D
19:46:41  <frosch123> right, wasn't the idea to just supply firs sprites to pick from?
19:46:50  <frosch123> so also supply firs cargos to pick from :p
19:47:04  <TrueBrain> haha, no, but it is easy to test things with for sure
19:47:23  <DorpsGek> [OpenTTD/OpenTTD] RealDeuce commented on pull request #9731: Fix: [Network] connections can use an invalid socket due to a race condition https://git.io/JM7mL
19:47:56  <TrueBrain> how nice of him he did test it after all :D Now I just need an approval! :P
19:48:06  <TrueBrain> of they
19:48:07  <TrueBrain> dammit
19:48:11  <TrueBrain> I was doing so well :P
19:48:52  <TrueBrain> anyway, I see two scenarios: someone wants to make minor modification to the original game to scratch some itch .. like having all tiles of industries accept cargo
19:48:58  <TrueBrain> well, three scenarios
19:49:06  <TrueBrain> someone who wants to alter FIRS (or any other big industry set)
19:49:12  <TrueBrain> and someone who wants to start from scratch
19:49:18  <TrueBrain> the last two are easy
19:49:26  <TrueBrain> the first is a bit difficult, as their graphics come from basesets
19:49:54  <TrueBrain> initially I wanted to make a "default" template, which was just like FIRS, but for all default industries (so hide all default stuff, but add industries that are identical)
19:50:03  <frosch123> lol, how did you arrive at "alter FIRS is easy"
19:50:06  <TrueBrain> just .. that means the graphics will be OpenGFX's :P
19:50:27  <TrueBrain> from a TrueGRF perspective, altering an existing set vs creating from scratch are easy
19:50:41  <TrueBrain> they are nearly indentical
19:51:41  *** Strom has quit IRC
19:51:43  <TrueBrain> well, guess I can still do the default template stuff .. just sprites will be somewhat difficult
19:51:51  <TrueBrain> rest is just a matter of adding the correct numbers, give or take
19:52:59  <DorpsGek> [OpenTTD/OpenTTD] rubidium42 commented on pull request #9725: Template DoCommand and friends https://git.io/JM7YI
19:53:19  *** Strom has joined #openttd
19:53:55  <frosch123> TrueBrain: your PR drops TryNextAddress and OnFailure calls, are they not important?
19:54:16  *** WormnestAndroid has quit IRC
19:54:27  *** WormnestAndroid has joined #openttd
19:54:33  <TrueBrain> I wrote that in the description. It is already done a bit earlier in that function. So now all that happens is that it returns, and on next CheckActivity it does that exact same code again
19:54:35  *** WormnestAndroid has quit IRC
19:54:57  <TrueBrain> I am sure it was important when I wrote it, but I cannot find a logic reason for the code duplication anymore :P
19:54:57  *** WormnestAndroid has joined #openttd
19:55:01  <frosch123> yeah, just found that :)
19:55:28  <DorpsGek> [OpenTTD/OpenTTD] frosch123 approved pull request #9731: Fix: [Network] connections can use an invalid socket due to a race condition https://git.io/JM7YB
19:55:34  <TrueBrain> cheers
19:56:09  <DorpsGek> [OpenTTD/OpenTTD] TrueBrain merged pull request #9731: Fix: [Network] connections can use an invalid socket due to a race condition https://git.io/JMHbZ
19:56:13  <DorpsGek> [OpenTTD/OpenTTD] TrueBrain closed issue #9730: [Bug]: crash on opening Multiplayer https://git.io/JMHrz
19:56:21  <DorpsGek> [OpenTTD/OpenTTD] nielsmh commented on pull request #9725: Template DoCommand and friends https://git.io/JM7Ya
19:56:49  <TrueBrain> no, I do want to keep default stuff around as long as I possibly can .. most likely I will fail that somewhere along the line, but it is what it is :P
19:57:32  <TrueBrain> always so difficult .. how opinionated is your tool going to be :D
20:20:11  <TrueBrain> okay .. I can at least disable cargoes ... now to figure out all this naming stuff :D
20:20:42  <TrueBrain> can you see somewhere in-game what label a cargo has?
20:21:21  <frosch123> console
20:21:41  <frosch123> "cargotypes"
20:22:00  <TrueBrain> command not known
20:22:34  <frosch123> oh, "dump_info cargotypes"
20:22:36  <TrueBrain> dump cargotypes
20:22:41  <TrueBrain> euh, yeah, that
20:22:44  <TrueBrain> had to check source :D
20:22:49  <frosch123> same :p
20:23:24  <TrueBrain> right, label works too
20:24:11  <TrueBrain> andythenorth: what cargo does your chemical plant produce? Too lazy to look it up :P
20:25:10  <TrueBrain> ugh, too slow
20:25:12  <TrueBrain> looked it up already
20:25:34  <TrueBrain>     weight="1.2",  # extra realism, per forum suggestion Nov 2017
20:25:35  <TrueBrain> lolz
20:25:44  <glx> depends on FIRS version I guess
20:27:27  <frosch123> TrueBrain: nice, i like how "realism" defeated your earlier argument about tons=tons :)
20:27:51  <TrueBrain> I hope this converts "amount" to "weight"
20:27:56  <TrueBrain> but that might just be me hoping
20:28:25  <frosch123> if it's chemicals, it's probably m³->t
20:28:38  <TrueBrain> exactly, so argument still holds ;)
20:28:41  <frosch123> though, it should be < 1 then?
20:29:02  <TrueBrain> right-y-o, I can also make new cargoes ...
20:29:35  <TrueBrain> far from complete, but the rest is doable by just putting my head on the keyboard
20:32:21  <TrueBrain> hmm .. I guess "support the default stuff" is only a problem for industries and cargos .. stations and vehicles don't have that issue, I guess
20:33:24  <TrueBrain> need to think about it some more, but I might just go the more opinionated route .. and indeed make that an industry GRF via TrueGRF disables all defaults
20:35:14  <frosch123> there is also a third option
20:35:48  <frosch123> you can add a checkbox to choose between "disable all original stuff" and "keep all original stuff", but avoid the "keep only some original" and "modify original"
20:36:14  <TrueBrain> yeah, the thing with modifying original is, that I do not plan to support "everything"
20:36:18  <TrueBrain> but just a "sane" subset
20:36:24  <TrueBrain> so modifying the original will just be weird
20:37:04  <frosch123> let's say, "original stuff" does not become better with vehicles and houses :)
20:37:20  <frosch123> actually, original stations are also awful :p
20:37:53  <frosch123> but there are not as many stations... while houses are endless exceptions :)
20:38:12  <andythenorth> something something molecular weight
20:38:13  <andythenorth> or something
20:38:15  <andythenorth> I dunno
20:38:24  <TrueBrain> yeah ... what might be a simple way out, at least for now, is to make each category in TrueGRF to either say: "use original", or "define your own". A bit what you mention .. but not any hybrid. So that you cannot add cargoes and have the original too
20:38:32  <glx> at least for stations it's easy to keep original ones
20:39:28  <TrueBrain> hmm, no, my idea will suck balls
20:39:57  <TrueBrain> show original entries read-only, with an enable/disable button for each .. and allow adding new ones
20:41:07  <TrueBrain> https://truebrain.github.io/TrueGRF/ <- very basic cargo support :D
20:41:36  <TrueBrain> next is to link industries to cargoes, I guess :)
20:41:58  <TrueBrain> main shit about original cargoes is just that they are climate depending ...
20:42:32  <TrueBrain> that is why just not doing original cargoes so much easier :D
20:42:36  <frosch123> ogfx+industries redefine all original cargos
20:42:51  <frosch123> so they are all present
20:43:08  <glx> but source is still not available
20:43:09  <frosch123> it works well for temperate+arctic+tropic, but toyland is always weird in combination :)
20:43:24  <frosch123> glx: meh, i wanted to do that last year :)
20:43:39  <TrueBrain> 27 cargoes in OpenTTD
20:44:07  <TrueBrain> so yeah .. okay ... maybe I should do my shitty idea: per category you either define it or leave it alone
20:44:11  <TrueBrain> if you define it, you start from scratch
20:44:23  <TrueBrain> but I offer some templates that is either "default" bla, or FIRS bla, or ... bla
20:44:30  <TrueBrain> to get you going
20:44:39  <TrueBrain> where the default bla just adds the 27 cargoes from OpenTTD
20:45:31  <frosch123> i think if you define cargos but do not use them in industries, they still show up for vehicles and other gui lists
20:46:05  <frosch123> so, maybe cargos are more like a "library of cargos", and you add them to your newgrf by using them in an industry
20:46:23  <TrueBrain> Chemicals is unused, but shows up in Industry Chains :)
20:47:12  <TrueBrain> the other thing I am really tempted to do, is to make a superset of cargoes of what we currently have, and basically say: select at most 64
20:47:24  <TrueBrain> so RFPR is always Chemicals :P
20:48:26  <frosch123> hmm, chemicals is not transportable by any vehicle
20:48:34  <frosch123> did you not set any cargoclasses?
20:48:41  <TrueBrain> no, I did not
20:48:50  <frosch123> ok :)
20:49:04  <TrueBrain> need to think about the UX for that :D
20:49:34  <TrueBrain> such a choice .. do I go balls deep into the opinionated territory .. or do I stay as neutral as possible :D
20:49:36  <TrueBrain> this is hard!
20:49:58  <frosch123> i think opinionated is your only option
20:50:20  <frosch123> nml is already opinionated :p
20:50:29  <andythenorth> opinionated
20:50:33  <TrueBrain> well, I really mean: predefine a list of cargoes
20:50:39  <glx> nml just drop all useless specs ;)
20:50:39  <TrueBrain> with PRs you can request new ones :P
20:50:47  <TrueBrain> that form of opinionated :P
20:51:22  <frosch123> no, i would expect people to define cargos of their local economy
20:51:43  <TrueBrain> yeah, that is fair
20:51:44  <frosch123> but truegrf should be opinionated about only defining meaningful cargoclass combinations
20:52:01  <TrueBrain> so opinionated about the specs, not the content
20:52:01  <frosch123> instead of "any bit combination"
20:52:04  <TrueBrain> yeah, that I was already doing ;)
20:52:47  <TrueBrain> just shit cargoes depend on climate, that makes this difficult :D
20:52:52  <frosch123> by adding guis and previews for everything, truegrf has to be opinionated about "how" to implement things
20:53:00  <frosch123> but not about "what"
20:54:51  <TrueBrain> guess I need to add support for action7/9 to keep this sensible ..
20:57:01  <TrueBrain> bit sad that the default stuff is driving that
20:59:25  <TrueBrain> frosch123: remind me, how should I define cargo acceptance for an industry?
20:59:41  <TrueBrain> prop25?
21:00:21  <TrueBrain> wtf is CTT .....
21:00:29  <frosch123> industry property 25+26, tile property 12 bit 1
21:00:47  <frosch123> do not use the old industry properties or old tile acceptance properties :)
21:00:58  <frosch123> CTT = cargo translation table
21:01:21  <frosch123> every newgrf should have a CTT, that lists all cargos the newgrf knows about
21:01:32  <TrueBrain> happy it is a link :P
21:01:34  <TrueBrain> silly specs :D
21:02:07  <TrueBrain> okay, so this links labels to numbers to use in all other places
21:02:59  <TrueBrain> refitting based on those ids instead of cargo classes .. yah or nah?
21:03:03  <frosch123> yes, the action0+3 ids of the cargos only matter for linking those action0+3. they are not used anywhere else
21:03:11  <TrueBrain> (in other words, can I get away with refitting soly based on classes?)
21:03:14  <frosch123> everything else uses "index into CTT"
21:04:19  <frosch123> now you are at vehicles suddenly :p
21:04:44  <TrueBrain> yeah, I know
21:04:52  <TrueBrain> CTT only has 32 slots it says for refitting
21:04:59  <frosch123> for vehicles you always set the classes, and then add a short list of exceptions
21:04:59  <TrueBrain> so it advises to keep that in mind when defining it
21:05:13  <frosch123> haha, you are looking at deprecated stuff again :)
21:05:23  <TrueBrain> "Because the refit mask contains only 32 bits, only the first 32 entries in the translation table can make use of the refit mask."
21:05:28  <TrueBrain> NOTHING mentions any form of deprecation
21:05:53  <TrueBrain> these specs are just so annoying ... you simply don't know any truth it defines ..
21:05:56  <frosch123> the 32bit refit mask is deprecated :) don't use train property 1D, use properties 2C and 2D instead
21:06:12  <TrueBrain> k, tnx :)
21:06:28  <frosch123> TrueBrain: people stopped improving the specs, when nml solved stuff :)
21:06:36  <TrueBrain> I understand that
21:06:46  <frosch123> though nml specs are also difficult in some places :) but not with deprecations
21:07:46  <TrueBrain> it is too bad I am not knowledgeable enough to make such edits .. I would only make it worse :D
21:07:51  <TrueBrain> but alas .. hmm ..
21:08:23  <frosch123> problem with adding "deprecation" labels is, that "deprecation" is opinionated in some places :p
21:08:40  <frosch123> imagine andy tagging "regearing cargo" as "deprecated" :)
21:08:42  <TrueBrain> in this case I would say: if you plan to use prop 1D, be careful blablabla
21:09:08  <glx> nml just hide all this stuff
21:09:30  <TrueBrain> sadly I had 0 ways of using NML :)
21:09:51  <TrueBrain> well, honestly, it wouldn't have served the main goal: me understanding NewGRFs a bit more :)
21:09:54  <TrueBrain> so this is fine
21:11:14  <glx> haha understanding NewGRF
21:11:49  <TrueBrain> I did add: a bit more!!
21:13:21  <frosch123> hmm, I probably could tag things as "definitely deprecated" and "opinionated deprecated"...
21:14:25  <glx> and you are in an almost sane area of the specs
21:15:27  <andythenorth> I enjoy the spec
21:15:29  <andythenorth> it's like a game
21:16:54  <nielsm> yeah there's "this risks bugs" old features and then there's "you'll miss out on possibilities" old features
21:22:03  <andythenorth> I also enjoy that only a few parts are designed
21:22:07  <andythenorth> the rest just grew
21:22:13  <andythenorth> like crystals in a dish
21:22:53  <andythenorth> most APIs I've used there is a sense of somebody attempting to create a coherent artefact
21:23:09  <andythenorth> lots of grf was clearly 'yolo latest patch'
21:23:14  <frosch123> "designed" like mpeg and jpeg?
21:24:05  <frosch123> there was some rant about commitee design on HN recently
21:25:34  <TrueBrain> hmm, this climate based cargoes are just the worst, as it leaks through to industries ..
21:25:56  <TrueBrain> so for now, fuck default cargoes .. I am just going to force people (for now) to define their own cargoes :P
21:26:00  <frosch123> you can "test if cargo exists, define yourself otherwise"
21:27:34  <TrueBrain> all that is gold plating .. I first want to have something that does everything a bit, so I can see it is actually possible :)
21:27:48  <TrueBrain> so I have been trying so far really hard to not dive in too deep on one subject
21:27:52  <TrueBrain> and cargoes are ruining that! :P
21:29:20  <andythenorth> just make COAL
21:29:29  <andythenorth> and leave all properties as 1
21:35:28  <TrueBrain> right, so back to that focus .. I am missing cargo classes and profits .. guess those two are important for any new cargo :D
21:36:21  <TrueBrain> rest can be added later
21:38:18  <TrueBrain> https://github.com/OpenTTD/OpenTTD/blob/master/src/table/cargo_const.h#L102 <- what do those numbers mean, instead of labels?
21:39:18  <frosch123> ugly hack
21:40:18  <TrueBrain> 	/* Bzzt: check if cl is just an index into the cargo table */
21:40:19  <TrueBrain> briliant
21:40:20  <frosch123> if you take a look at the table above, you will find that stuff like OIL_ and WOOD exist multiple times
21:40:38  <frosch123> there is some hack to resolve that, yes with that bzzt :)
21:41:11  <frosch123> i.e. while WOOD exists in both temperate and arctic, it has different prices nevertheless :)
21:41:24  <TrueBrain> okay, so the 4 is also OIL_
21:41:24  <frosch123> so yes, you are on the right route with "do not support original stuff" :p
21:41:27  <TrueBrain> just another OIL_ :P
21:41:39  *** _aD has joined #openttd
21:44:24  <andythenorth> FIRS fucked around for ages with cunning schemes
21:44:32  <andythenorth> to reuse default cargos, or even industry tiles
21:44:35  <andythenorth> not good
21:44:46  <TrueBrain> there just isn't a sane way to put that in a useful GUI
21:46:45  <andythenorth> why am I playing tanks for 2 hours?
21:46:50  <andythenorth> instead of drawing some pixesl
21:48:11  *** gelignite has joined #openttd
21:48:32  <TrueBrain> right, tomorrow I will add classes, and I like the idea of showing a chart how profit is doing
21:49:05  <TrueBrain> guess adding what industries accept and produce is also simple from there ..
21:49:22  * andythenorth stops playing tanks
21:49:25  <TrueBrain> next indeed is to clean all default cargos/industries, and I can see if I can actually move a new cargo from 1 industry to another ..
21:49:31  <andythenorth> I want to join the productivity club
21:49:49  <TrueBrain> with that, I guess I show enough of TrueGRF to know it is a viable way of creating NewGRF
21:50:06  <TrueBrain> then the boring part starts .. reworking the GRF generator, cleaning up the code, and making it actually useful :D
21:50:21  <TrueBrain> well, no, I still need to figure out tile editing and sprite editing
21:50:27  <TrueBrain> but getting close
21:52:05  <andythenorth> then you can take user feedback!
21:52:09  <andythenorth> and requests!
21:52:14  <andythenorth> forums are good for that :)
21:52:25  <andythenorth> ok I need to draw these trains
21:52:26  <TrueBrain> I rather take it from you guys and Discord, if you don't mind :)
21:52:30  <andythenorth> you talked me into drawing
21:52:33  <andythenorth> so persuasive
21:52:37  <TrueBrain> you are welcome
21:53:39  <frosch123> i have a suggestion for opinionated tile editing: let the user group tiles into "sprite covers all tiles, i.e. big house", let the user draw the house as single sprite, and then truegrf cuts the sprite into parts for each tile
21:54:13  <frosch123> the preview should have a "transparency toggle", which only shows the ground sprites then
21:54:29  <TrueBrain> okay, I will take house suggestions when I get to that :)
21:54:35  <TrueBrain> maybe good to add, my v1 is industries only
21:54:47  <frosch123> i was talking industries :p
21:54:56  <TrueBrain> owh, you said "big house"
21:55:14  <frosch123> with "house" i meant industry building
21:55:26  <TrueBrain> yeah, that confused me, clearly ;)
21:55:36  *** jottyfan has quit IRC
21:55:43  <TrueBrain> the main thing for me with tile editing, is that I am not sure over what dimension to cut it
21:55:48  <TrueBrain> with that I mean: you have many industry options
21:55:53  <TrueBrain> cargo is being delivered
21:55:56  <TrueBrain> cargo is being produced
21:55:58  <TrueBrain> random
21:56:01  <TrueBrain> construction
21:56:01  <TrueBrain> etc
21:56:08  <TrueBrain> I want a slick way to make that possible
21:56:16  <frosch123> http://bundles.openttdcoop.org/firs/releases/LATEST/docs/html/industries.html <- there are graphics which cover a single tile, and there are graphics which cover multiple tiles
21:56:47  <frosch123> ottd requires that sprites do not extend over tile west/east/south tile borders, so sprites must be cut into multiple pieces
21:56:51  <TrueBrain> I see what you mean .. yet another dimension :D
21:56:53  <frosch123> it would be nice if truegrf would do that
21:57:16  <TrueBrain> so a tile (and in extend a sprite) can be more than 1x1
21:57:23  <frosch123> "construction stages" are overrated, you rarely see them
21:57:26  <frosch123> does firs even have any?
21:57:28  <TrueBrain> yeah, I don't mind .. would be interesting, but I can keep that in mind
21:57:40  *** gelignite has quit IRC
21:58:49  <frosch123> there are some sprites that are often reused: ground sprites like grass/concrete, cargo piles, fences, ...
22:00:31  *** Tirili has joined #openttd
22:01:11  <TrueBrain> the main thing I have been wondering about .. do I want to make a view for: normal, cargo delivered, etc, for the full industry
22:01:18  <TrueBrain> or do I want it per tile
22:02:08  <frosch123> maybe truegrf could have some black&white template sprites: building 1x1, building 1x2, 2x1, 2x2, ... so users would start by composing tile layouts using them, and then gradually replace them with real sprites
22:02:11  <andythenorth> frosch123 FIRS randomises construction states from about 4 sprites, global to the grf
22:11:04  <TrueBrain> frosch123: sounds like future-work, yes :)
22:11:17  <TrueBrain> for now I struggle with having something simple .. it is hard to design something for this :D
22:12:36  <frosch123> if you are thinking about "normal" vs "cargo delivered", you my have to look into what "production mechanic" you want to support
22:12:41  <michi_cc> So, did you already vote on Command<>::Exepostvoke?
22:12:56  <frosch123> from that you can derive what graphic/animation triggers would make sense
22:13:34  <TrueBrain> another annoying thing to solve, UX-wise, is how to select sprites .. showing it in a dropdown like now doesn't really work
22:13:48  <TrueBrain> sprites will either be global (ground-sprites etc) or local (for that specific industry)
22:13:52  <TrueBrain> but still the list is huge
22:13:54  <frosch123> organise them in a tree, let user drag/drop
22:15:22  <frosch123> two panels left/right, one shows a tree with sprites (and internal names/comments?), other shows the industry layout, you can drag sprites from the tree to the industry layout
22:15:38  <frosch123> tree starts with nodes like "ground sprites" and "building"
22:15:38  <TrueBrain> tree?
22:15:42  <TrueBrain> ah
22:16:32  <frosch123> a bit like stations and objects in-game are grouped into classes, to make them browsable easier
22:16:48  <frosch123> similar grf authors probably group sprites into "these look good togehter"
22:16:59  <frosch123> "heavy industry", "clean industry", ...
22:17:07  <TrueBrain> drag&drop is btw pretty hard, as HTML has issues with an orthogonal view, I have noticed :D
22:17:08  <frosch123> "cargo piles"
22:18:15  <frosch123> i have no idea about html :)
22:18:24  <TrueBrain> very good in squares
22:18:28  <TrueBrain> less good in non-squares :P
22:18:44  <TrueBrain> I have to fiddle a bit with it .. maybe I can do clever transformations
22:18:48  <glx> and improved a lot since IE6 ;)
22:19:00  <frosch123> i stopped at ie4 :p
22:19:39  <frosch123> iframes vs frameset :)
22:19:55  <michi_cc> dP: Yes, #9725 removes CommandContainer. Keeping it around when commands have a variable amount of typed parameters would mean to either make it into lists of lots of inherited sub-structs or binary serializing command arguments all the time. By using function templates and compile-time metaprogramming, the serialization hits needs to be only payed for network transfers.
22:20:48  <andythenorth> xoof
22:20:52  <andythenorth> too sleepy for pixels
22:20:54  <andythenorth> lame
22:22:37  *** andythenorth has quit IRC
22:24:21  <TrueBrain> https://github.com/users/TrueBrain/projects/2/views/1 <- needed to order my thoughts a bit .. lets try out GitHub Issues :)
22:25:20  <frosch123> discussions are better
22:25:26  <frosch123> they allow replies to comments
22:25:35  *** Tirili has quit IRC
22:25:40  *** Tirili has joined #openttd
22:25:54  <TrueBrain> not sure how you want to fit what I just linked in discussions :P That are either a lot of discussions .. or one that doesn't give overview :D :D
22:26:11  <TrueBrain> but these should all be issues, at least, that is what GitHub wants
22:26:41  <frosch123> oof, project management, i think i have an allergy
22:26:57  <TrueBrain> but at least now when something comes to mind I want to add, I can write it down somewhere
22:27:01  <TrueBrain> and hopefully not forget :D
22:31:43  <TrueBrain> https://github.com/github/roadmap/issues/285 <- seems they agree with you frosch123  :P
22:33:12  <glx> https://github.blog/2021-11-29-github-actions-reusable-workflows-is-generally-available/ <-- I knew about composite action (we use that IIRC) but not about reusable workflows
22:33:33  <TrueBrain> yeah, they announced that a while back
22:33:41  <TrueBrain> I wanted to implement it, but ... job has been keeping me busy :P
22:33:52  <TrueBrain> makes a lot of our workflows more manageable :)
22:34:01  <frosch123> TrueBrain: insert "reimplement jira"
22:34:13  <TrueBrain> basically ..
22:34:19  <TrueBrain> just integrated in a single place :D
22:34:25  <glx> yeah like all the OpenMSX/GFX/SFX ones
22:34:44  <frosch123> though atlassian apparently want to go cloud-only, and drop on-premise installations, which is a bit wtf
22:34:58  <TrueBrain> "want to"? They are going :P
22:35:20  <frosch123> the only reason gitlab still exists is that they have on-premise, so no idea why atlassian wants to be eaten by gh
22:38:53  <frosch123> oh dear... we received an essay from the bible belt
22:39:34  <TrueBrain> "We can see throughout time how we have been slowly conditioned to come to this point where we are on the verge of a cashless society. Would it surprise you to know that the Bible foretold of this event? Don't believe me? This may be the most imporant message you will read in these times...please do not ignore this!"
22:39:38  <frosch123> the google-is-poisoning-me mail was at least unusual, but this is just awful
22:39:39  <TrueBrain> let me know if you want to read more :P :P :P :P
22:39:53  <frosch123> it continues with racism :)
22:40:29  <TrueBrain> wow, that email is long
22:40:32  <TrueBrain> holy crap
22:40:40  <frosch123> exactly
22:40:42  <TrueBrain> "The only logical option is 6+6+6=18."
22:40:47  <TrueBrain> ah, yes, doing stuff with math to make your point
22:41:24  <TrueBrain> Now if you take: • 8+8+8=24 • 8+88=96 • 88+8=96 you get 24+96+96=216.
22:41:36  <TrueBrain> Take 144,000 divided by 216 and you get 666.
22:41:39  <frosch123> btw. there is a numberphile video about the origin of 666
22:42:25  <TrueBrain> @calc 666 * 6 * 6 * 6
22:42:25  <DorpsGek> TrueBrain: 143856
22:42:31  <TrueBrain> they are factually wrong
22:42:38  <TrueBrain> Here is another mathematical confirmation: 144,000 divided by 6, divided by 6, divided by 6 (6,6,6) equals 666.
22:42:49  <TrueBrain> I should have quoted that
22:42:51  <frosch123> it's similar to how the old testament mentions  a precise number of people that traveled to/from egypt or something
22:43:38  <TrueBrain> as soon as people start with these math shit, I just can't help but to start laughing
22:43:49  <TrueBrain> I can proof anything with any set of numbers .. it is so meaningless
22:44:27  <TrueBrain> "Why did the Biden campaign choose 30330? 2020 divided by 666 = 3.0330 Who believes this to be a coincidence?"
22:44:36  <TrueBrain> and now they care about decimals ...
22:44:46  <TrueBrain> @calc 2020 / 666
22:44:46  <DorpsGek> TrueBrain: 3.033033033033033
22:44:52  <TrueBrain> till an extend, ofc
22:45:09  <frosch123> be careful with quoting, you may trigger some oftc bot :)
22:45:17  <TrueBrain> haha :D
22:45:32  <TrueBrain> I hate how the email doesn't end
22:45:36  <TrueBrain> I am now left with wanting more!
22:45:49  <TrueBrain> just not for the right reasons, I am afraid
22:46:46  <frosch123> oh lol, did you see the senders'e mail address?
22:47:00  <frosch123> i only read the name, but the address is lolz
22:47:29  <TrueBrain> I am not even surprised
22:47:49  <TrueBrain> there is a "report abuse" link
22:47:54  <TrueBrain> do you mind? :D
22:47:58  <TrueBrain> (if I follow that link)
22:48:32  <TrueBrain> " 1.9 URIBL_ABUSE_SURBL Contains an URL listed in the ABUSE SURBL blocklist"
22:48:37  <TrueBrain> just not enough score to make it actual spam
22:48:44  <frosch123> i did not see any links, my mail program may block all of them
22:48:47  <TrueBrain> okay, so the abuse link won't help ..
22:48:48  <TrueBrain> bah :P
22:49:23  <TrueBrain> "Content analysis details: (4.9 points, 5.0 required)"
22:50:06  <nielsm> what that says is that the "report abuse" link is actually "confirm subscription"
22:50:12  <nielsm> I guess_
22:50:13  <nielsm> ?
22:50:41  <TrueBrain> not sure; all headers indicate it is a decent mailing application running behind it
22:50:56  <TrueBrain> but yeah, better not risk it :P
23:00:52  <frosch123> do you know what happened 2021-11-18?
23:00:57  *** nielsm has quit IRC
23:01:02  <TrueBrain> the sun came up
23:01:06  <TrueBrain> in the end went down again
23:01:08  <frosch123> there is a huge peak in ottd popularity in steam
23:02:03  <frosch123> ottd got 3k reviews from april to november, most in the beginning
23:02:21  <frosch123> it got 2k in past month, since 2021-11-18, which is well past 12.1
23:03:32  <frosch123> there is the option to plot the reviews over time
23:03:37  <TrueBrain> someone did some publication about OpenTTD somewhere?
23:03:57  <TrueBrain> https://steamdb.info/app/1536610/graphs/
23:04:08  <TrueBrain> also a very unusual Twitch spike on the 2nd
23:04:58  <frosch123> that site says 39k twitch viewers on 2021-11-25
23:05:22  <TrueBrain> the resolution is not that great of that graph
23:05:28  <TrueBrain> the one above shows it was on the 2nd of december
23:06:50  <frosch123> ok, that was yogscast then
23:07:00  <TrueBrain> I am not surprised :P
23:07:11  <frosch123> did it every year for how long?
23:07:30  <frosch123> but that is not the steam peak
23:07:56  <TrueBrain> where did you find reviews over time graph?
23:08:27  <frosch123> https://store.steampowered.com/app/1536610/OpenTTD/ <- scroll down to reviews, click on "show graph"
23:09:17  <TrueBrain> wow, that is a huge difference, lol
23:09:44  <frosch123> oh, that graph is imprecise as well, so reviews started 2021-11-24
23:09:52  <TrueBrain> we received more reviews in this month then ever before? :P
23:10:05  <frosch123> 2k reviews in past 2 week
23:10:31  <frosch123> steam awards something?
23:10:51  <TrueBrain> looking at the reviews, yeah .. they mention it a few times
23:11:21  <TrueBrain> amount of Steam downloads didn't change really
23:11:54  <frosch123> so someone botted? :p
23:12:27  <TrueBrain> in fact, downloads went down around that week
23:12:27  <TrueBrain> lol
23:12:36  <TrueBrain> but I have no clue how accurate that info from Steam is
23:13:24  <TrueBrain> https://cdn.discordapp.com/attachments/273533192601075712/916829555644305459/unknown.png
23:14:08  <TrueBrain> 840,000 people have installed OpenTTD in their Steam library
23:14:14  <TrueBrain> let that number sink in for a while
23:14:53  <glx> I'm one of them (but I don't play)
23:15:21  <glx> still 13.3h in the counter
23:15:36  <michi_cc> You mean 840000 people are crazy enough the believe we do a good job? :P
23:16:11  <TrueBrain> 130,000 people played more than 200 minutes
23:16:34  <TrueBrain> (sadly, that is the biggest bucket they show :P)
23:17:03  <TrueBrain> 620,000 people actually started the game
23:17:11  <TrueBrain> so 220,000 just added to their library never started it :P
23:17:25  <frosch123> ok, start of the reviews correlates with the reddit post on steam awards
23:17:36  <frosch123> https://www.reddit.com/r/openttd/comments/r1f1tq/openttd_is_eligable_for_this_years_steam_awards/ <- who of them botted the reviews? :p
23:19:16  <frosch123> they were clever enough to also bot negative reviews :)
23:20:21  <DorpsGek> [OpenTTD/OpenTTD] michicc commented on pull request #9725: Template DoCommand and friends https://git.io/JM7rE
23:20:28  <TrueBrain> ha, no, not botting, I remember: when you did a review to a game you nominated, you got some extra Steam points
23:20:34  <TrueBrain> that often is sufficient for people to write reviews :P
23:20:49  <glx> yeah I just repost my ETS2 review for that
23:21:04  <TrueBrain> also explains why there aren't really more downloads etc
23:21:33  <glx> you don't even need to make a new review, just updating it is enough
23:21:41  <TrueBrain> 12 million people on Steam read one of our news articles .. lol
23:21:51  <frosch123> haha, you are right :) factorio shows the same peak at the same date :)
23:22:09  <frosch123> and the same peak in november last year :p
23:22:23  <frosch123> every year in fact, lol
23:22:34  <frosch123> november is review month
23:22:36  <TrueBrain> shows how eager people are to get some digital points
23:23:23  <glx> hey mor xp, means your friend list can have more entries ;)
23:23:44  <TrueBrain> wait, you have friends?
23:23:49  <TrueBrain> owh, I am one of them
23:23:50  <TrueBrain> lol
23:23:51  <TrueBrain> oops :P
23:23:52  <frosch123> ok, so of the 3k people who reviewed in april, 2k reposted their review in november
23:23:56  <TrueBrain> I have 7 people on my list .. haha
23:23:57  <frosch123> at least we keep our customers
23:24:56  <TrueBrain> and no negative review complaints about networking :P
23:25:01  <TrueBrain> so at least that problem is solved :D
23:25:46  <TrueBrain> frosch123: in general I am very happy with the retention rate
23:25:52  <TrueBrain> we are pretty stable at 500 - 1000 players every day
23:25:59  <TrueBrain> which again is, if you just think about it, insane
23:26:02  <frosch123> "I don't like it. This review is for autumn sale."
23:26:11  <glx> lol
23:26:11  <TrueBrain> euh, every day -> constantly playing
23:26:14  <frosch123> i guess i do not know how steam works :)
23:26:40  <TrueBrain> just the realization that at any moment in time, 500 people are playing OpenTTD .. just weird :P
23:27:11  <glx> but 2 of those may be TrueBrain and me testing things
23:27:17  <frosch123> and how many of them hate you for removing block signals? :p
23:27:27  <glx> like trying to reproduce a crash
23:27:36  <TrueBrain> glx: drops in a bucket :)
23:28:08  <glx> but yeah it's impressive how many people are really playing
23:28:57  <glx> (oh some have probably pasted JGR on top of the steam install, but it still counts)
23:29:08  <frosch123> ahaha, factorio triggered a "off-topic review activity" with their last blog
23:29:52  <TrueBrain> lol, so Yogcast called it Christmas Trains this year
23:30:10  <TrueBrain> I was wondering if they really didn't do OpenTTD, but they did .. just named different in the calendar :P
23:30:27  <frosch123> kovarex wrote about some often-cited code-style guy, which apparently is politically controversial (never knew that, only ever talked with nerds about that guy)
23:32:37  <TrueBrain> lol
23:32:44  <TrueBrain> politics is ... amazing
23:33:41  <DorpsGek> [OpenTTD/OpenTTD] michicc updated pull request #9725: Template DoCommand and friends https://git.io/JMoxK
23:33:44  <DorpsGek> [OpenTTD/OpenTTD] michicc commented on pull request #9725: Template DoCommand and friends https://git.io/JM7ow
23:34:19  <frosch123> i encountered that guy like 3 times at my 2 work places, quite some people were fans about his programming talks. though imho there was too much talking for too little content, and the production was usually awful
23:34:38  <frosch123> but when factorio guy wrote their nerd-blog about it, it became a shitstorm
23:35:18  <frosch123> different bubbles, different subjects :)
23:35:34  <TrueBrain> "fun" :)
23:36:07  <TrueBrain> yogcast also uses the reduced signals GUI :P
23:36:09  <TrueBrain> just saying
23:36:37  <frosch123> really? they played the game? usually they just talk
23:36:51  <TrueBrain> they even had a GS installed
23:37:32  <glx> haha in their blog they talk about GUI
23:38:02  <frosch123> i think i watched a VOD of one of the participants from last year, who intentionally played a BS strategy (only ships), and actually *won*
23:38:23  <frosch123> yogscast has a blog?
23:38:30  <glx> no factorio blog
23:38:42  <frosch123> ah, that one :)
23:38:54  <glx> I think we have the same issue with our GUI
23:39:03  <glx> it's a pain
23:39:10  <glx> so we don't touch it ;)
23:40:43  <glx> but theirs seems way worse
23:47:02  *** Wolf01 has quit IRC
23:48:05  *** frosch123 has quit IRC
23:51:30  *** HerzogDeXtEr has quit IRC

Powered by YARRSTE version: svn-trunk