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