Times are UTC Toggle Colours
00:09:43 <Thedarkb-X40> Bleh, my ratings are plummeting because I can't keep up with the production of this iron mine. 00:49:48 *** Flygon has joined #openttd 01:14:02 *** HerzogDeXtEr has quit IRC 01:36:00 *** glx has quit IRC 01:40:04 *** Lap_op has quit IRC 02:04:15 *** tokai|noir has joined #openttd 02:04:15 *** ChanServ sets mode: +v tokai|noir 02:09:06 *** iSoSyS has joined #openttd 02:10:42 *** tokai has quit IRC 02:11:13 *** iSoSyS has quit IRC 02:20:30 *** tokai has joined #openttd 02:20:30 *** ChanServ sets mode: +v tokai 02:27:07 *** tokai|noir has quit IRC 02:28:41 *** tokai|noir has joined #openttd 02:28:41 *** ChanServ sets mode: +v tokai|noir 02:34:57 *** tokai has quit IRC 02:35:37 *** tokai has joined #openttd 02:35:37 *** ChanServ sets mode: +v tokai 02:37:07 *** tokai|noir has quit IRC 02:52:40 *** muffindrake2 has joined #openttd 02:54:32 *** muffindrake1 has quit IRC 03:01:56 *** ToffeeYogurtPots_ has quit IRC 03:02:31 *** ToffeeYogurtPots_ has joined #openttd 03:30:08 *** tokai|noir has joined #openttd 03:30:09 *** ChanServ sets mode: +v tokai|noir 03:37:02 *** tokai has quit IRC 03:38:07 *** tokai has joined #openttd 03:38:07 *** ChanServ sets mode: +v tokai 03:40:42 *** tokai|noir has quit IRC 03:46:32 *** tokai has quit IRC 03:50:05 *** tokai has joined #openttd 03:50:05 *** ChanServ sets mode: +v tokai 03:59:47 *** tokai|noir has joined #openttd 03:59:47 *** ChanServ sets mode: +v tokai|noir 04:02:07 *** tokai has quit IRC 04:02:51 *** tokai has joined #openttd 04:02:51 *** ChanServ sets mode: +v tokai 04:09:37 *** tokai|noir has quit IRC 04:13:55 *** tokai|noir has joined #openttd 04:13:55 *** ChanServ sets mode: +v tokai|noir 04:17:02 *** tokai has quit IRC 04:17:14 *** tokai has joined #openttd 04:17:14 *** ChanServ sets mode: +v tokai 04:24:17 *** tokai|noir has quit IRC 04:28:12 *** Lap_op has joined #openttd 04:30:00 *** Lap_op has quit IRC 04:30:02 *** tokai has quit IRC 04:31:53 *** Thedarkb1-X40 has joined #openttd 04:31:57 *** Thedarkb1 has joined #openttd 04:33:02 *** tokai has joined #openttd 04:33:02 *** ChanServ sets mode: +v tokai 04:34:58 *** tokai|noir has joined #openttd 04:34:58 *** ChanServ sets mode: +v tokai|noir 04:38:27 *** Thedarkb-X40 has quit IRC 04:38:27 *** Thedarkb has quit IRC 04:41:52 *** tokai has quit IRC 04:44:58 *** tokai has joined #openttd 04:44:59 *** ChanServ sets mode: +v tokai 04:48:48 *** sla_ro|master has joined #openttd 04:51:12 *** tokai|noir has quit IRC 05:01:16 *** tokai|noir has joined #openttd 05:01:16 *** ChanServ sets mode: +v tokai|noir 05:07:42 *** tokai has quit IRC 05:09:22 *** tokai|noir has quit IRC 05:19:16 *** sim-al2 has quit IRC 05:23:04 *** sim-al2 has joined #openttd 05:50:06 *** sim-al2 is now known as Guest1149 05:50:07 *** sim-al2 has joined #openttd 05:54:07 *** Guest1149 has quit IRC 05:54:07 *** sim-al2 is now known as Guest1150 05:54:08 *** sim-al2 has joined #openttd 05:57:50 *** Wacko1976 has joined #openttd 05:58:08 *** sim-al2 is now known as Guest1151 05:58:09 *** sim-al2 has joined #openttd 05:58:12 *** Guest1150 has quit IRC 05:59:36 *** Progman has joined #openttd 06:02:12 *** Guest1151 has quit IRC 06:04:28 *** nielsm has joined #openttd 06:08:58 *** andythenorth has joined #openttd 06:09:02 <andythenorth> bonjour 06:10:31 <nielsm> g'morning 06:18:10 *** Cubey has quit IRC 06:47:22 *** gelignite has joined #openttd 06:57:00 <peter1138> mais oui 07:00:00 <peter1138> Hmm, it appears to be raining. 07:00:11 *** sim-al2 is now known as Guest1157 07:00:12 *** sim-al2 has joined #openttd 07:04:12 *** Guest1157 has quit IRC 07:05:42 <peter1138> Oh my, there's a VR model railway simulator. 07:06:53 <andythenorth> sprites complete: 61; incomplete: 122 07:06:59 <andythenorth> what does it all mean? 07:07:22 <andythenorth> 1/3 done I guess 07:26:17 *** HerzogDeXtEr has joined #openttd 07:42:26 <andythenorth> TrueBrain: 07:42:34 <andythenorth> where's the new OS X binary candidate? o_O 07:44:06 <peter1138> https://devs.openttd.org/~truebrain/osx-experimental/ 07:44:23 <andythenorth> ta 07:46:19 *** FLHerne has joined #openttd 07:59:00 *** Pikka has joined #openttd 08:04:21 *** ipADblocker has joined #openttd 08:04:32 *** FLHerne has quit IRC 08:10:32 *** FLHerne has joined #openttd 08:11:02 *** nielsm has quit IRC 08:28:30 *** ipADblocker has quit IRC 08:28:57 *** Cybertinus has joined #openttd 08:29:16 *** ipADblocker has joined #openttd 08:29:24 <Cybertinus> good morning everybody 08:29:37 <peter1138> HELLO! 08:29:46 <Cybertinus> I just installed OpenTTD 1.8.0 on my Fedora laptop, but I can't get the music to play 08:30:04 <Cybertinus> I have downloaded OpenMFX and some other base sets 08:30:19 <peter1138> Yeah, music needs Timidity by default 08:30:38 <Cybertinus> ok 08:30:53 <Cybertinus> that's something I need to install on my computer or is that an ingame download? 08:31:26 <peter1138> It's separate 08:31:41 <Cybertinus> ok 08:31:49 <Cybertinus> let me check, thanks for the point 08:31:50 <Cybertinus> er 08:32:24 <peter1138> Should be packaged by Fedora. 08:32:33 <Cybertinus> yeah 08:32:42 <Cybertinus> running sudo dnf install timidity++ now :) 08:33:47 <peter1138> Duke Nukum Forever! 08:33:58 <Cybertinus> haha 08:35:22 <Cybertinus> ok, I got music now! 08:35:23 <Cybertinus> thnx 08:35:41 <Cybertinus> it only plays via the laptop speakers, not via the speakers I've got hooked up to my docking station :p 08:36:09 <peter1138> Hmm 08:36:23 <peter1138> If it's all on defaults then it should be using pulseaudio. 08:37:43 <peter1138> Maybe timidity doesn't use pa by default. 08:38:10 <Cybertinus> maybe, yes. I'm diving into the timidity settings now 08:40:30 <andythenorth> hmm 08:40:35 <andythenorth> ok the OS X build is pretty fucked 08:41:13 <andythenorth> I need to test it on a mac that's not also fucked though 08:41:37 <andythenorth> our 10.13 machine has an expanding battery that causes the trackpad to not accept clicks 08:41:45 <peter1138> o_O 08:41:53 <peter1138> Other people reported it works better. 08:41:59 <peter1138> Good ol' Macs. 08:43:01 <andythenorth> so far, GS is crashing, the cursor is locked to left of game viewport, and it's crashed (looks like fonts, again) 08:43:11 <andythenorth> these might not be specific to this new build 08:43:32 <andythenorth> cursor artefacts are gone though :) 08:44:00 <andythenorth> so I need to test with a mouse 08:44:02 <andythenorth> on my mac 08:44:07 <andythenorth> but...USB-C innit :P 08:45:56 <peter1138> GS is crashing how? 08:47:31 <andythenorth> specific to Busy Bee 08:47:48 <andythenorth> I will look more later, child A is busy playing right now 08:48:04 <andythenorth> it's like having a chaos monkey 08:50:53 *** ipADblocker has quit IRC 08:57:05 <Cybertinus> ok, I "fixed" my issue 08:57:37 <Cybertinus> I've disabled the music in the game, and I just start VLC with all the files in the ~/.openttd/content_download/baseset/openmfx* as a playlist :p 09:06:05 *** tokai has joined #openttd 09:06:05 *** ChanServ sets mode: +v tokai 09:09:01 <peter1138> :p 09:09:03 *** synchris has joined #openttd 09:09:23 <peter1138> This is why we need a built-in synth :S 09:09:30 <TrueBrain> w00p, I compiled strgen! :) 09:10:46 <peter1138> Hmm, wasn't there a libtimidity driver? 09:11:30 *** Wacko1976_ has joined #openttd 09:11:55 <peter1138> Ah, but libtimidity isn't packaged it seems. 09:15:02 <peter1138> Urgh, auto-hell. 09:15:31 <peter1138> There's a configure.ac, can't remember how to bootstrap it. 09:17:29 <peter1138> https://askubuntu.com/questions/27677/cannot-find-install-sh-install-sh-or-shtool-in-ac-aux 09:17:36 <peter1138> Yeah, that "simple" sequence of commands. 09:17:47 *** Wacko1976 has quit IRC 09:18:11 <TrueBrain> so strgen doesn't use the basename of the language file .. wuth?! 09:18:17 <TrueBrain> strgen is a bit weird :D 09:18:26 <peter1138> Oh? 09:18:39 <TrueBrain> I give it a -s and -d, so I expect I can do 'dutch.txt' next 09:18:49 <TrueBrain> but it has to be a valid path from your working directory 09:18:53 <TrueBrain> so I make it src/lang/dutch.txt 09:19:02 <TrueBrain> now it wants to create the file DEST_FOLDER/src/lang/dutch.lang 09:19:21 <TrueBrain> but my SOURCE_DIR is also set ... so it does find english.txt 09:19:25 <TrueBrain> this is weird :P 09:19:28 <peter1138> Hm 09:21:25 <TrueBrain> so I will set the working directory :P 09:21:55 <TrueBrain> why does compiling english.lng give so many warnings? :D 09:22:55 *** D-HUND is now known as debdog 09:23:21 <peter1138> It doesn't. 09:24:35 <TrueBrain> param STRING doesnt match STRING2 09:24:38 <TrueBrain> the usual 09:25:42 <peter1138> No, none of that. 09:25:51 <TrueBrain> ah, why my folder stuff crashes and burns, is because of / in path on Windows 09:25:57 <TrueBrain> well, a mix of / and \ :) 09:26:17 <TrueBrain> guess that is also why it doesnt see it is doing english.txt 09:26:21 <TrueBrain> and gives warnings 09:26:27 <TrueBrain> (as english.txt has different validation) 09:26:31 <peter1138> Yeah 09:30:27 *** gelignite has quit IRC 09:30:37 *** tycoondemon has quit IRC 09:30:44 <TrueBrain> so yeah ... despite the fact that / works in paths these days, our code says: Windows? \ it is! 09:30:51 <peter1138> :) 09:31:47 <TrueBrain> okay, so only the last parameter has this issue; so TO_NATIVE_PATH it is :) 09:32:44 <Thedarkb1-X40> How do I turn off the vehicle is losing money thing? 09:32:55 <Thedarkb1-X40> I have some ships that only make money every two years. 09:32:56 <TrueBrain> thing? 09:33:01 <Thedarkb1-X40> Message 09:34:14 *** debdog has quit IRC 09:34:35 *** tokai|noir has joined #openttd 09:34:35 *** ChanServ sets mode: +v tokai|noir 09:34:57 <peter1138> Go into settings, search for "profit" 09:35:06 <peter1138> "Warn if a vehicle's income is negative" 09:37:55 *** debdog has joined #openttd 09:37:57 *** Thedarkb1 has quit IRC 09:38:22 <Thedarkb1-X40> Thanks 09:40:35 <Cybertinus> there was also some window where you could define what messages you see and which you don't? And there you could also select if you want the message to pop out of the statusbar, or if it was just a scrolling messge 09:40:36 <Cybertinus> right? 09:40:57 <peter1138> Yes, that got moved to settings as well. 09:41:02 *** tokai has quit IRC 09:41:04 <peter1138> Filter for "news" 09:41:23 <Cybertinus> ok, didn't know that. Haven't played OpenTTD for a few years now :) 09:44:04 <TrueBrain> yippie, all languages are now compiled \o/ :D 09:46:47 *** frosch123 has joined #openttd 09:53:00 <peter1138> Oops, started too early for RVs. Doing a cargodist feeder system is out of the question then :p 10:01:30 <peter1138> Hmm, weird that the cargo flow legend lets you spy on other companies. 10:01:43 <peter1138> I suppose you can see all their orders anyway. 10:04:07 <andythenorth> add Hog :P 10:04:15 <andythenorth> you can add newgrfs to a running game, right :P 10:04:17 <Thedarkb1-X40> What's the most efficient way of joining two double tracked lines perpendicular to each other? 10:06:28 <peter1138> andythenorth, no it's illegal. 10:11:31 <Rubidium> Thedarkb1-X40: probably something like https://wiki.openttd.org/High_Speed_4-Way_Fly-over/under but have a look at the other junctions 10:12:15 <Thedarkb1-X40> Thanks 10:12:17 <Rubidium> Thedarkb1-X40: at least look for ones with split-before-merge being yes 10:12:39 <peter1138> I just use signals. 10:12:45 <peter1138> And then they join. 10:13:01 <peter1138> It's "efficient" with regards to track and signals ;) 10:14:54 <Thedarkb1-X40> Eh, slowdowns aren't a huge deal anyway. 10:16:42 *** Wacko1976_ has quit IRC 10:18:23 <andythenorth> this shape sucks to draw in pixels :) https://cc2rails.com/28716-thickbox_default/wagon-jouef-herforder-pils-tremie-a-bogies-ho-ho.jpg 10:18:58 *** Wormnest has joined #openttd 10:19:19 <TrueBrain> can we remove WINCE and PSP from OpenTTD? Not maintained, and I am unsure if any binaries have been produced in a long long long time for them :P 10:19:35 <andythenorth> I sold my PSP 10:19:37 <andythenorth> or gave it away 10:19:38 <andythenorth> so yes 10:19:49 <peter1138> WINCE is somewhat... ancient. 10:21:02 <peter1138> 9 PRs o_O 10:21:45 *** Wolf01 has joined #openttd 10:21:51 <andythenorth> is one of them group livery? o_O 10:21:54 <Wolf01> Moin 10:22:08 <peter1138> No. Nor is one NRT. 10:23:13 <andythenorth> if I move to github will people send me PRs containing sprites? 10:23:18 <andythenorth> as I am missing a few hundred 10:23:56 <Wolf01> I wonder if is possible to make the logitech quickcams to work on >=win7... my lego webcam requires win98-XP 10:23:58 <peter1138> You could send yourself PRs 10:24:18 <andythenorth> I do actually get sent sprites sometimes in devzone 10:24:20 <andythenorth> via tickets 10:24:31 <Thedarkb1-X40> WinCE Was replaced with windows mobile. 10:24:46 <Thedarkb1-X40> As far as I know it's still supported though. 10:25:47 <andythenorth> TrueBrain: the new OS X binary doesn't trigger the "32 bit is dead" warning from Apple :) 10:25:51 <Thedarkb1-X40> Last version of CE proper came out in 2013 10:26:11 <TrueBrain> andythenorth: good :) 10:26:11 <frosch123> andythenorth: maybe watch the factorio repo? yesterday they put the lua part of the game on github, which controls all the game balancing and stuff. while it is meant as source for modders, I also wonder whether people will submits PRs to change balancing :p 10:26:33 <andythenorth> :P 10:26:49 <peter1138> Right, I gotta make this patch bigger :p 10:27:03 *** gelignite has joined #openttd 10:30:44 <frosch123> he, i would not have expected V to have been on github for two years 10:32:45 <TrueBrain> okay .... we already have c++17 code in OpenTTD :D That took me by surprise :P 10:32:59 <LordAro> wut 10:33:00 <frosch123> fall-through :) 10:33:05 <LordAro> oh yeah 10:33:06 <frosch123> LordAro: your patch 10:33:11 <LordAro> lol 10:33:26 <TrueBrain> I hate you 10:33:28 <TrueBrain> :D 10:33:36 <LordAro> you too bae 10:33:51 <frosch123> iirc c++17 is not supported on the compilers we target 10:34:03 <frosch123> so, c++17 is optional. we want to target c++14 10:35:34 <TrueBrain> yeah .. so I just told CMake to target c++17 if available,and it will drop to c++14, c++11, etc if it cannot find it 10:35:44 <TrueBrain> going to put the low-bar on c++11 for now, but we can increase that to c++14 :) 10:35:48 <peter1138> So the CI needs to warn on it? 10:35:59 <peter1138> Or flat out just fail I guess. 10:36:30 <Wolf01> What are you revolutioning today? 10:36:31 <LordAro> there's not all that much in C++14 10:36:50 <LordAro> std::make_unique is probably the biggest 10:37:14 <frosch123> captures are the biggest :) 10:37:25 <frosch123> captures in c++11 are treacherous 10:37:55 <frosch123> but well, ottd does hardly use functors 10:38:11 <LordAro> true 10:38:18 <frosch123> hmm, ... actually... FOR_EACH_xxx 10:38:27 <frosch123> all the weird macros :p 10:39:03 <LordAro> would be good to get rid of those :p 10:39:26 <frosch123> well, they work, so no real benefit 10:40:11 <peter1138> Ugly though. 10:40:15 <TrueBrain> okay, cmake starts to work .. slowly .. table/settings.h next :) What is that about ... 10:42:51 <frosch123> i was against that :p 10:46:27 <TrueBrain> okay, that was easy enough :) Pfew :) 10:46:51 <TrueBrain> now for the parsing of source.list ... lol 10:47:10 <TrueBrain> the #ifs are not the issue .. the #else are :) 10:50:06 <peter1138> Yeah, what is that .ini thing all about? 10:52:12 *** som89 has joined #openttd 11:00:41 <peter1138> Hmm, I really can't come up with decent names for these scrolling methods... 11:00:59 <peter1138> "mouse moves the camera" "mouse moves the map" 11:01:37 <LordAro> s/camera/viewport/ ? 11:01:57 <peter1138> and which one is really reversed? heh 11:02:10 <frosch123> "Move map with LMB", "Move map with RMB", "Move map with RMB, mouse locked", "Move viewport with RMB, mouse locked" 11:02:26 <TrueBrain> hmm .. how about MorphOS and BeOS support? 11:02:31 <TrueBrain> is tokai|noir still maintaining those? :) 11:02:37 <TrueBrain> or was orudge doing BeOS? 11:02:51 <frosch123> TrueBrain: you forgot os/2 11:03:04 <TrueBrain> maybe we should have a new rule, that we only support targets which we have a Docker for to compile them with :) 11:03:05 <peter1138> frosch123, thanks 11:03:12 <peter1138> TrueBrain, good rule. 11:03:18 <TrueBrain> okay, parsing source.list was easier than I expected 11:03:27 <TrueBrain> simple state machines are simple 11:04:10 <TrueBrain> owh, it can be nested .. so I have to make a stack :D Okay, it is slightly more complicated :P 11:05:26 <peter1138> std::stack 11:05:33 <peter1138> Oh, right, not C++ code :p 11:08:29 <TrueBrain> owh, no, not a stack, I need a depth indicator .. I wrote this before I remembered .. 11:08:32 <TrueBrain> and I did :P 11:08:45 <TrueBrain> while doing this, I was like ... I have thought about this before, haven't I? 10 years ago ... 11:08:47 <TrueBrain> lol 11:09:13 <peter1138> Happens with my patches too ;p 11:09:21 <TrueBrain> just mine are in the codebase 11:09:26 <TrueBrain> :P 11:09:53 *** Wacko1976 has joined #openttd 11:15:45 <peter1138> Committing patches is overrated. 11:19:19 <tokai|noir> TrueBrain: No. 11:21:32 <TrueBrain> oeh, you are not only lurking :D 11:25:26 <tokai|noir> TrueBrain: Oh... but I am lurking. :) 11:29:39 <TrueBrain> :D 11:29:55 <TrueBrain> right, some time later, I finally got my source.list parser to work :) 11:30:17 *** tokai has joined #openttd 11:30:17 *** ChanServ sets mode: +v tokai 11:32:05 <TrueBrain> and now it is missing _openttd_revision etc :) 11:32:09 <TrueBrain> expected-ish 11:36:57 *** tokai|noir has quit IRC 11:47:32 <peter1138> Hmm 11:47:45 <andythenorth> my offsets are all wrong eh 11:51:41 *** tycoondemon has joined #openttd 11:52:27 <_dp_> thinking on that clone PR had a idea that having some kind of a "clone this vehicle in same depot it was built in" button is probably a good idea 11:53:12 <TrueBrain> I .... just build an openttd.exe via cmake :D 11:53:26 <TrueBrain> _dp_: MORE BUTTONS IN THE UI :P 11:53:40 <frosch123> what? .exe :o 11:53:40 <_dp_> TrueBrain, more hotkeys :p 11:53:57 <TrueBrain> frosch123: yes, I was doing it on Windows with MSVC as compiler 11:54:01 <frosch123> _dp_: then you also need buttons to "assign home depot" and more 11:54:03 <TrueBrain> and it really works .... 11:54:26 <TrueBrain> starting gives some errors because I did not do everything yet to make the bin folder correct :D 11:54:35 <_dp_> frosch123, not rly but I guess makes sense for completion of interface 11:54:50 <_dp_> frosch123, It's more of a route thing actually, add a vehicle to a route 11:55:12 <_dp_> frosch123, just that OpenTTD doesn't have any concept of routes 11:55:48 <TrueBrain> okay, this is cool .. it even copied the correct dlls in the same folder :) 11:56:56 <peter1138> _dp_, you'd have to remember the depot. And then it if was removed...? 11:57:06 <TrueBrain> hmm .. failed to find a graphics set .. didnt it auto-download one? 11:57:23 <peter1138> missing networking? 11:57:26 <frosch123> yes, but only when gui 11:57:32 <peter1138> ar 11:57:40 <_dp_> peter1138, I know, I know, too many ifs 11:57:44 <TrueBrain> it is very possible that -DENABLE_NETWORK was not set :) 11:57:46 <TrueBrain> good point peter1138 :) 11:57:48 <peter1138> Although would be nice if dedi servers can do that. 11:58:06 * andythenorth wonders how to fix the in-game sprite aligner 11:58:10 <TrueBrain> I didnt go through all the settings yet .. as it is a bit messy which exist :)D 11:58:16 <andythenorth> I never use it because the numbers bear no relation to the nfo/nml 11:58:30 <andythenorth> well...they must have some relation...but it's opaque 11:59:05 <_dp_> basically two things that annoys me in cloning that I constantly have to find depots and vehicles to clone 11:59:37 <_dp_> and sometimes I don't even care about either 11:59:41 <andythenorth> I clone in the depot 11:59:43 <andythenorth> but that's just me 11:59:53 <_dp_> like, plane crashed, fuck it, just make another one) 12:01:02 <peter1138> auto-clone :p 12:01:32 <_dp_> yeah, though it plane case I would also like auto-advertising 12:02:02 <Pikka> at that point, why not just turn plane crashes off? 12:02:36 <_dp_> Pikka, I think I did already, at least on some servers 12:02:46 *** tycoondemon has quit IRC 12:03:49 <andythenorth> hmm where's the sprite aligner in src :P 12:03:54 <andythenorth> it's probably just maths 12:07:28 <TrueBrain> meh; cmake 3.5 doesn't know about c++17 yet, so it yells about it :P 12:07:42 *** tycoondemon has joined #openttd 12:09:32 <Wolf01> andythenorth: https://www.packtpub.com//packt/offers/free-learning intereested? 12:09:44 <andythenorth> nah but thanks :) 12:10:16 <_dp_> it may not be a bad idea to introduce routes though. They already exist in form of shared orders so it won't change much, just a workflow a bit 12:10:33 <frosch123> merge groups and shared orders :p 12:10:54 <_dp_> frosch123, I've no idea what groups are even for :p 12:11:03 <frosch123> for routes :p 12:12:48 <TrueBrain> meh .. being c++11 for everything except 1 MSVC version is annoying :D 12:12:58 <Eddi|zuHause> replace groups by SQL queries :p 12:13:18 <andythenorth> you mean Squirrel? 12:13:20 <andythenorth> or SQL? :P 12:13:35 * andythenorth wonders about relational table for all vehicles 12:13:43 <andythenorth> embed sqlite 12:13:54 <andythenorth> it's not even a stupid idea 12:14:42 * _dp_ already has a relational tables for all players and companies 12:15:12 <_dp_> want no more of that :p 12:16:41 <TrueBrain> frosch123 / LordAro: gnu++11 or stdc++11? 12:16:43 <Eddi|zuHause> i don't think SQLite is going to cut it here, you need some crazy object-relational thing, because you consatnly need to update all the vehicles 12:16:57 <TrueBrain> frosch123 / LordAro: gnu++11 or c++11? (oops, std is not part of that) 12:17:05 <_dp_> may be nice setup for a coding game though, relational tables, programmed signals, etc... 12:18:02 <andythenorth> Eddi|zuHause: how about noSQL? o_O 12:18:11 <frosch123> TrueBrain: if it compiles, then no gnu extensions :) 12:18:37 <LordAro> ^ 12:19:11 <Eddi|zuHause> andythenorth: i've never really understood what that is. but it sounds like the opposite of what's needed :p 12:19:24 <TrueBrain> k 12:19:34 <TrueBrain> so now how to fix MSVC2017 special c++17 case ... 12:19:34 <andythenorth> Eddi|zuHause: it's like a database, but you can't trust it 12:19:37 <andythenorth> but it's faster 12:19:46 <andythenorth> it's not canonical 12:19:54 <andythenorth> oh and it tends to break a lot in production 12:20:02 <andythenorth> due to being engineered by people who aren't database engineers 12:20:21 * andythenorth actually has limited experience, might be spreading FUD 12:21:18 <frosch123> andythenorth: use postgres foreign data wrappers to connect your nosql junk to sql 12:21:54 <frosch123> how about an admin port foreign data wrapper? :p 12:22:21 <_dp_> frosch123, no need to connect anything, just store stuff as json in postgres :p 12:22:53 <andythenorth> does that get us routes? 12:23:11 <andythenorth> and groups that are multi-dimensional but also hierarchical? 12:23:13 <TrueBrain> LordAro: would it hurt if we remove the c++17 statement? It is a real pita to get right .. 12:23:17 <frosch123> _dp_: everything in a single bytea blob? 12:23:46 <LordAro> TrueBrain: which? 12:23:52 <_dp_> andythenorth, was that even supposed to? 12:23:55 <TrueBrain> LordAro: fallthrough 12:24:13 <LordAro> how is it a pain? it'd be dead code, but i'm fairly sure it's that anyway? 12:24:14 <_dp_> frosch123, put sqlite db in postgres blob so you can sql while you sql 12:24:38 <TrueBrain> LordAro: the problem is, that we are c++11, except for 1 compiler on 1 version 12:24:46 <TrueBrain> making something generic for that is .. difficult :) 12:24:52 <LordAro> heh 12:24:52 <TrueBrain> (and a bit weird) 12:25:01 <LordAro> fine then :p 12:25:05 <TrueBrain> you get something like: # Only on MSVC2017+, we are c++17. On all other, we are c++11 12:25:06 <LordAro> wouldn't hurt anyway 12:25:17 <LordAro> probably 12:25:20 <TrueBrain> that on itself is not a real issue, but someone working on MSVC2017 won't see he did c++17 12:25:24 <TrueBrain> only when the CI starts yelling he does 12:25:27 <TrueBrain> feels kinda weird 12:25:36 <frosch123> i though msvc2017 barely implements c++14? 12:26:22 <TrueBrain> I really think OpenTTD should have 1 set for all its targets :) Means everyones assumption is the same, no matter which OS/Compiler you use :) 12:26:57 <TrueBrain> (as you set the standard for the whole project; not 1 file) 12:28:51 <LordAro> frosch123: last i checked msvc2017 implemented most of it 12:29:04 <andythenorth> _dp_: mumble mumble player feature requests 12:29:20 <andythenorth> and a long argument here once 12:29:23 <frosch123> LordAro: 14 or 17? 12:29:37 <LordAro> 14 12:31:20 <TrueBrain> https://github.com/TrueBrain/OpenTTD/tree/cmake 12:31:26 <TrueBrain> not nearly done yet 12:31:29 <TrueBrain> but .. its a start 12:31:46 <_dp_> how do I create nested groups or was that never merged? 12:32:10 <frosch123> dragging or so 12:33:00 <andythenorth> works fine 12:33:08 <_dp_> frosch123, oh, weird, I though I tried that 12:34:27 *** ToffeeYogurtPots_ has quit IRC 12:34:53 <LordAro> TrueBrain: that source.list parsing definitely needs separating into a function 12:35:07 <LordAro> or converting to proper preproc >:) 12:35:07 <andythenorth> there were some patches that fixed group counts iirc 12:35:08 <TrueBrain> so many stuff needs fixing 12:35:16 <andythenorth> there are some oddities with grops 12:35:20 <andythenorth> +u 12:35:43 <TrueBrain> but Visual Studio 2017 runs this file fine too :D 12:35:54 <frosch123> TrueBrain: you should decide whether you want to put blanks after "foreach", "if", "else" etc :p 12:36:17 <TrueBrain> frosch123: that decision has been made years ago 12:36:24 <frosch123> then follow it :) 12:36:29 *** Thedarkb1 has joined #openttd 12:36:44 <TrueBrain> I did; and if you spot a mistake, let me know. But this is not helping :) 12:36:48 <frosch123> anyway, i think that's the first cmake file i see, so no idea 12:37:39 <peter1138> foreach () endforeach() .hmm. 12:37:39 <frosch123> two matches for "else(", 3 matches for "foreach(" 12:37:49 <TrueBrain> cmake is awesome :) I just have to learn it all the options we have ... will be a while :( 12:38:00 <TrueBrain> frosch123: so you found 5 mistakes in how many lines of code? Please :P 12:38:06 <LordAro> peter1138: it is not a pretty language 12:38:08 <peter1138> line 112 and 120 of /CMakeLists.txt 12:38:25 <TrueBrain> cmake is very nice with endNNN .. it is always NNN / endNNN 12:38:37 <TrueBrain> and what I like most about if(), you have to repeast your statement in else and endif .. this is annoying, but avoids so many mistakes 12:38:47 <TrueBrain> there is quiet some thought behind it 12:38:54 <LordAro> TrueBrain: ah, but you don't 12:38:56 <LordAro> they can be empty 12:38:58 <peter1138> Hmm, anyway I guess CMakeLists doesn't need to follow our C++ standard, so whatever looks nicer. 12:40:13 <peter1138> Hmm, I guess I need an enum for this scrolling stuff. 0-3 is a big vague :p 12:40:59 <frosch123> TrueBrain: to be more annoying, sometimes you indent with 4 spaces, sometimes with 8 12:41:29 <TrueBrain> frosch123: that is CMake 12:41:34 <TrueBrain> and that is pretty consistent 12:41:43 <TrueBrain> well, you dont have to do that, but every sane CMakeLists.txt does that :) 12:41:57 <TrueBrain> 8 spaces for when you are still inside parameter definitions 12:42:00 <frosch123> 4 for if, 8 for wrapped parameters? 12:42:02 <TrueBrain> 4 for indenting 12:42:20 <TrueBrain> makes it a lot easier to spot what is what :) As things can get a bit insane 12:42:39 <TrueBrain> and I did that consistently, I see :) 12:43:16 <TrueBrain> what I really like about CMake, I tell in strgen that if you include openttd:languages, it should add a few include directories 12:43:28 <TrueBrain> so when you include it, things are fixed for you 12:43:39 <TrueBrain> so in 1 place you define everything, and all your users are supplied with the right info 12:43:42 <TrueBrain> so much easier 12:43:47 *** Alberth has joined #openttd 12:43:47 *** ChanServ sets mode: +o Alberth 12:43:57 <frosch123> o/ 12:43:59 <TrueBrain> (same for the find_package stuff .. it even copies the dll files for you .. as those are defined in the package) 12:44:00 <Alberth> hi hi 12:44:07 <TrueBrain> morning Alberth 12:44:23 <TrueBrain> I do think I can remove include_directories(${ZLIB_INCLUDE_DIR}), as that should be part of target_link_libraries .. but not sure 12:45:12 <Alberth> compiling and linking are different things 12:46:01 <TrueBrain> different linking :) 12:46:15 <TrueBrain> target_link_libaries, links a library to a target 12:46:22 <TrueBrain> including all the target definitions he said 12:46:35 <Alberth> ok :) 12:46:36 <TrueBrain> (well, in CMake 2 it meant 'linking'in what you meant. In CMake 3 no longer) 12:46:46 <TrueBrain> misleading names being misleading, I guess :) 12:47:00 <Alberth> ah, how progress makes things simpler and easy :) 12:49:33 <TrueBrain> okay, you still need the include_directories :) 12:49:39 <TrueBrain> bit weird honestly .. but I guess that is what it is 12:50:30 <TrueBrain> what is annoying about cmake, that OFF, NO, FALSE, are all considered 'false' 12:50:41 <TrueBrain> so NO / ON is false / true 12:50:44 <TrueBrain> which is just WRONG 12:51:08 <LordAro> ah, you've got past the "cmake is so nice" phase :p 12:51:31 <TrueBrain> so in your opinion you either have to be 100% positive, or don't like something? 12:51:34 <TrueBrain> there is nothing in between? 12:51:44 <LordAro> ':p' 12:52:21 <APTX_> there is no "cmake is so nice" phase 12:53:22 <TrueBrain> we really have to prune our OS tree .. so much weird targets 12:53:31 <TrueBrain> what is this 'OSX'?! 12:53:58 <Alberth> something proprietary 13:01:08 *** ToffeeYogurtPots has joined #openttd 13:10:51 *** andythenorth has quit IRC 13:27:14 *** ToffeeYogurtPots has quit IRC 13:30:24 <peter1138> So 13:30:57 <peter1138> Do we need more CPU power for the CI? :p 13:31:05 <peter1138> Ah, just completed. 13:31:12 <peter1138> Such impatience. 13:33:16 <TrueBrain> yes 13:33:26 <TrueBrain> AWS still hasnt replied to any of my communication :( 13:33:38 <peter1138> Odd. 13:34:21 <LordAro> :( 13:37:49 <ZehMatt_> TrueBrain :) 13:38:42 <TrueBrain> not sure what that smile is for ... you happy we didn't get a reply yet? :s 13:38:51 <ZehMatt_> happy to see you 13:38:54 <ZehMatt_> :) :) 13:39:12 <TrueBrain> now I am just scared :( 13:39:41 <ZehMatt_> lol 13:40:20 <ZehMatt_> im wondering about https://github.com/OpenTTD/OpenTTD/pull/6744 13:40:56 <TrueBrain> so am I 13:41:12 <TrueBrain> it shows more problems than it fixes .. problems that were always there, just hiding 13:41:20 <TrueBrain> we were talking about it yesterday .. seems this needs a bit more work 13:41:33 <ZehMatt_> so what are the problems 13:41:40 <TrueBrain> one of the bigger things that bother me, that now 2 functions handle something to do with realtime 13:41:44 <TrueBrain> that feels very weird 13:41:55 <ZehMatt_> how so 13:42:05 <ZehMatt_> its typical in games to have two time variables 13:42:10 <TrueBrain> not what I said :) 13:42:21 <TrueBrain> with your pathc, UpdateWindows and DrawWindows both track _real_tick 13:42:25 <TrueBrain> one at 100, one at 15 13:42:32 <TrueBrain> and I cannot see the reason why they are in 2 functions 13:42:45 <TrueBrain> feels more we have a TickWindows functions or something 13:43:03 <TrueBrain> so that made us wonder if we shouldnt have a RealTick() function in windows 13:43:32 <ZehMatt_> hm 13:44:06 <TrueBrain> all-in-all, I keep coming back that it feels like patching up something that is already broken 13:44:11 <TrueBrain> and I still have to look in the code myself 13:44:22 <ZehMatt_> most of the video drivers are a mess imho 13:44:23 <TrueBrain> it always has been weird btw 13:44:42 <TrueBrain> as basically with your patch you see a lot easier that many drivers dont have vsync or double buffer 13:44:45 <ZehMatt_> they do all the same more or less with minor differences 13:44:49 <TrueBrain> which is a very weir dcombination to have 13:45:16 <TrueBrain> and it is also weird that FastForward has anything to do with Window code 13:45:22 <TrueBrain> as .... FF should influence the game 13:45:25 <TrueBrain> not a Window 13:45:53 <ZehMatt_> well yes best case 13:46:20 <ZehMatt_> so what do you suggest 13:46:38 <TrueBrain> maybe frosch123 has some wisdom to share here; but I am tempted to say: lets not do this PR now, and lets go back and really look at UpdateWindows, and how it is used 13:47:11 <TrueBrain> your patch showed more issues than I have dear :) 13:47:40 <ZehMatt_> well apart from now liking how its done, from a technical point its the best viable option atm 13:47:46 <ZehMatt_> not* 13:47:58 <TrueBrain> what is the best viable option? 13:48:06 <ZehMatt_> unify the video drivers 13:48:10 <ZehMatt_> cleanup the whole thing 13:48:34 <LordAro> not a small amount of work 13:48:35 <TrueBrain> not sure that video drivers have to be unified to fix this messy stuff, but a good look at the Window code 13:48:52 <ZehMatt_> they all do more or less the same thing 13:48:53 <TrueBrain> and make functions responsible for one thing, and one thing only 13:49:04 <ZehMatt_> its a lot of duplicate code 13:49:10 <TrueBrain> yeah, but the problem we notices is not so much due to the video drivers; more what UpdateWindows does :D 13:49:17 <TrueBrain> but the video drivers need attention for sure too 13:49:24 <TrueBrain> as it is stupid that alt+enter keeps the resolution 13:49:31 <TrueBrain> I havent seen that in a game for ... 10+ years 13:49:39 <TrueBrain> go to the fucking native resolution, you silly 13:49:42 <ZehMatt_> lol 13:50:02 <TrueBrain> fullscreen borderless is defacto standard 13:50:06 <TrueBrain> but .... nope 13:50:19 <TrueBrain> so there is a lot more wrong with the video drivers :) 13:50:49 <ZehMatt_> ok so 13:51:09 <ZehMatt_> theres also OnHundredthTick() 13:51:28 <ZehMatt_> maybe windows update should only call window->Update() 13:51:29 <TrueBrain> which ticks on the RealTime, right? 13:51:37 <ZehMatt_> so it can decide all of flashing/highlightining what not internally 13:51:41 <TrueBrain> some windows do need a tick on a game-time tick 13:52:00 <TrueBrain> so I guess there should be 2 callbacks: RealTime, and GameTime 13:52:04 <TrueBrain> both which can be configured 13:52:08 <TrueBrain> and indeed, than locally shit can be done 13:52:10 <ZehMatt_> currently UpdateWindows runs per tick 13:52:12 <TrueBrain> instead of globally :P 13:52:16 <ZehMatt_> DrawWindows every frame 13:52:31 <TrueBrain> yes, and a Window has I believe a Tick callback 13:52:38 <ZehMatt_> hm 13:52:39 <TrueBrain> and OneHunderthTick callback (which is RealTime) 13:52:47 <ZehMatt_> i made that real tiem 13:52:51 <ZehMatt_> before it was ticks 13:53:00 <ZehMatt_> which is kinda misleading too 13:53:05 *** bwn has quit IRC 13:53:10 <TrueBrain> exactly 13:53:21 <ZehMatt_> wouldnt be a Tick function enough 13:53:36 <TrueBrain> I have been told some also do stuff with the game tick 13:53:39 <TrueBrain> but .. hearsay 13:54:32 <TrueBrain> if I read the current (master) code right, every millisecond UpdateWindows is called, or what ever comes closest (no delta or anything) 13:54:51 <TrueBrain> he calls ProcessScheduleInvalidation and ProcesSHighlightedInvalidation on every window 13:55:14 <TrueBrain> and calls OnHunderdthTick every 100 "milliseconds" (what-ever delta it had) 13:56:15 <TrueBrain> unless you press FF .. than it goes as quickly as it can 13:56:18 <TrueBrain> here I am losing it :P 13:56:23 <TrueBrain> why the fuck does FF have influence on this .. 13:56:25 <ZehMatt_> on win32_v it calls UpdateWindows per game tick (30ms) 13:56:47 <ZehMatt_> where do you see it being called each ms 13:56:55 <TrueBrain> owh, misleading define, you are right 13:57:47 <ZehMatt_> so its internal counter wants 15 ticks 13:57:50 <ZehMatt_> which is 15 * 30 13:57:51 <ZehMatt_> right? 13:58:05 <TrueBrain> so UpdateWindows has 2 tasks ... invalidate parts of the screen for window updates .. and call OnHunderdthTick every 100 game ticks 13:58:14 <ZehMatt_> yea 13:58:20 <ZehMatt_> im curious about who calls OnTic 13:58:23 <TrueBrain> if you mean with 15, the highlight, yes 13:58:24 <ZehMatt_> OnTick* 13:58:39 <TrueBrain> every 15 gameticks, the highlight cycles 13:58:51 <ZehMatt_> ah i see 13:58:57 <ZehMatt_> its somewhere else 13:59:37 <TrueBrain> and the 100th thing is used to force a redraw once so many game ticks 13:59:52 <ZehMatt_> hm 13:59:59 *** bwn has joined #openttd 14:00:19 <TrueBrain> so that should indeed be based on game ticks 14:00:19 <ZehMatt_> so he hundred tick event should be moved into the UpdateWindow function in my PR 14:00:26 <ZehMatt_> and it shouldn't be using realtime 14:00:30 <TrueBrain> and the highlight to the Draw :P 14:00:38 <TrueBrain> seems that way 14:00:39 <ZehMatt_> that highlight/flash whatever thing should be maybe dealt with different 14:01:17 <TrueBrain> than there is the OnTick callback 14:01:22 <TrueBrain> which is done in the StateGameLoop .. 14:01:31 <ZehMatt_> which is ran per tick 14:01:35 <ZehMatt_> from within GameLoop 14:01:39 <ZehMatt_> StateGameLoop etc 14:01:46 <TrueBrain> each game tick, yes 14:01:59 <frosch123> i believe both OnTick and OnHundredthTick assume realtime 14:02:08 <TrueBrain> OnTick is used for animation 14:02:16 <frosch123> they are both called when the game is paused 14:02:23 <ZehMatt_> i see 14:02:23 <TrueBrain> frosch123: 100th seems to be gametick related .. is for setting itself dirty 14:02:30 <frosch123> OnHundredthTick is used to update cpu-intensive lists 14:02:32 <TrueBrain> frosch123: for example to change the Y-axis 14:02:38 <ZehMatt_> also out of curisouty 14:02:49 <ZehMatt_> fast forward is shifting the num updates correct? 14:03:00 <TrueBrain> but OnTick is now in the game loop .. but seems to be for animation .. so in DrawWindow makes more sense? 14:03:14 <TrueBrain> "shifting the num updates" <- no clue what you said there, sorry :) 14:03:21 <ZehMatt_> originally the game went like 14:03:42 <ZehMatt_> numUpdates = (timeElapsed / ticks_per_sec) << speed; 14:03:50 <ZehMatt_> i guess you guys dont have that anymore 14:04:13 <TrueBrain> FF has been ,for as long as I can remember, do everything as fast as you possibly can 14:04:20 <TrueBrain> in other words: don't sleep 14:04:21 <TrueBrain> burn CPU 14:04:29 <ZehMatt_> i see, slightly different to orct2 then 14:04:31 *** sla_ro|master has quit IRC 14:04:34 <TrueBrain> I do not think it ever "just made the game faster" 14:04:36 <ZehMatt_> where its basically a timescale 14:04:51 <TrueBrain> don't confuse RCT too much with TT; they are a few years apart :) 14:04:54 <ZehMatt_> so the highlight delay could be simply increased by the scale 14:05:02 <TrueBrain> lot of stuff he did for RCT he never did for TT :P 14:05:05 <ZehMatt_> but not in this case 14:05:27 <TrueBrain> highlight delay should not be influenced by FF, in my opinion 14:05:30 <TrueBrain> it is just a visual gimmick 14:05:44 <ZehMatt_> yes but if your game would run 2x the speed 14:05:45 <TrueBrain> sure, it gives a cool feeling of LOOK HOW FAST MY GAME IS GOING :D 14:05:49 <ZehMatt_> you could say the highlight time needs 2x longer 14:05:55 <ZehMatt_> and it will always look the same 14:05:57 <ZehMatt_> in theory 14:05:59 <TrueBrain> no, you should talk about gameticks and realticks 14:06:04 <TrueBrain> not trying to map one on the other 14:06:07 <TrueBrain> that is what brought us in this mess :D 14:06:20 <ZehMatt_> using ticks is fine if you know how fast things are 14:06:32 <TrueBrain> no; ticks already have a resolution 14:06:35 <TrueBrain> it only gets messy 14:06:46 <TrueBrain> GUI stuff should have nothing to do with Game stuff 14:06:52 <TrueBrain> you should be able to thread them even 14:06:57 <TrueBrain> just with a mutex to exchange data 14:07:23 <ZehMatt_> ok let me break it down 14:07:33 <ZehMatt_> you want OnTick, OnHundredthTick realtime based 14:07:44 <ZehMatt_> altho OnTick currently is bound to the game loop 14:07:51 <ZehMatt_> which is 30ms between ticks 14:08:24 <TrueBrain> I am not sure 100th tick should be realtime; we have to look how it is used for that honestly 14:08:29 <TrueBrain> there might be 2 usages 14:08:31 <ZehMatt_> so essentially UpdateWindows and DrawWindow requires to be called every frame 14:08:35 <TrueBrain> for example, updating a signlist, is realtime 14:08:42 <TrueBrain> updating the y-axis of the graph, is gametime 14:09:23 <TrueBrain> and that is why I think the approach is wrong; splitting UpdateWindows is only showing the problem 14:09:40 <TrueBrain> I think we first have to start with the Window itself, and clean those up to make more clear what we want to be influenced by FF 14:09:53 <TrueBrain> for example, animation of a news article coming up (animation from the bottom) 14:09:58 <TrueBrain> should that be influenced by FF? 14:10:02 <ZehMatt_> you still need to know when those updates are called and from where I believe 14:10:34 <ZehMatt_> i think its important for the network part that the host isnt doing anything out of order where clients do it in a different spot 14:11:01 <TrueBrain> so is animation of a Window important? If that is different in speed, does anything break? 14:11:10 <TrueBrain> (between server and client) 14:11:13 <ZehMatt_> im not sure how you check desyncs 14:11:20 <ZehMatt_> in orct2 every active sprite is hashed 14:11:21 <TrueBrain> desyncs is about randomizers getting out of sync 14:11:23 <ZehMatt_> minus a few fields 14:11:42 <TrueBrain> there are 2 randomizers: one that should be in sync, and is game related 14:11:45 <ZehMatt_> it checks the prng state + sprites 14:11:48 <TrueBrain> and one that is used for everything else 14:11:57 <TrueBrain> (here too you see the 2 worlds; game-world, and the rest) 14:12:08 <ZehMatt_> i get how its done 14:12:16 <ZehMatt_> but i havent looked into how network events are handled 14:12:21 <TrueBrain> that is all there is to it 14:12:29 <ZehMatt_> in the current refactor I'm doing on orct2 none of the actions are executed immediately 14:12:33 <TrueBrain> the only important thing is that game-related stuff are handled in-order 14:12:50 <ZehMatt_> they are queued for the end of the update loop so clients will do the same regardless where the action is invoked from 14:12:52 <TrueBrain> (and for that to work, all network commands are always queued by 1 tick) 14:13:01 <TrueBrain> exactly; default trick 14:13:15 <TrueBrain> so that is not really relevant for our Window stuff :) 14:13:19 <TrueBrain> they do not influence the game state 14:13:34 <TrueBrain> so animation speed is irrelevant .. or at least should be :D 14:13:36 <ZehMatt_> goodie 14:13:42 <ZehMatt_> makes things much easier 14:13:46 <ZehMatt_> unlike orct2 :v 14:13:50 <TrueBrain> ghehe :) 14:14:00 <TrueBrain> OpenTTD had a lot of desync issues back in 2004 14:14:00 <ZehMatt_> well it never had mp honestly in the vanilla game 14:14:07 <TrueBrain> when rewriting the network, we changed it to a lock-step method 14:14:18 <TrueBrain> so client sends to server, server sends to all clients WHEN to execute it 14:14:31 <TrueBrain> and the WHEN is always at least current + 1 14:14:34 <TrueBrain> (can be more) 14:14:39 <TrueBrain> then server says: all step to N 14:14:47 <TrueBrain> (server is in control) 14:14:48 <ZehMatt_> not too different then 14:14:55 <ZehMatt_> clients cant go beyond host ticks 14:14:59 <TrueBrain> so if you click anything on a client, it takes at least 2 ticks before you see it execute 14:15:02 <ZehMatt_> actions are executed on a specific tick 14:15:24 <ZehMatt_> it just waits for the host to do it 14:15:28 <ZehMatt_> tells the client which tick 14:15:34 <ZehMatt_> and at tick N client(s) does it 14:15:41 <TrueBrain> so back to our current problem: most games talk about an FPS and UPS these days, for good reason 14:15:51 <TrueBrain> FPS is about the client rendering .. UPS about the gamestate 14:16:00 <peter1138> 10 PRs, gosh 14:16:04 <TrueBrain> if UPS takes 90% of my CPU time, do I care if my FPS drops to 10fps? 14:16:16 <TrueBrain> (currently they are locked; if FPS drops, UPS does, and other way around) 14:16:27 <TrueBrain> this is why you have a hard time quiting the game if you load a very big map 14:16:32 <TrueBrain> which is silly :P 14:16:42 <ZehMatt_> heh 14:16:49 <TrueBrain> I would like to lock my FPS to .. say .. at least 10? 14:16:52 <TrueBrain> and UPS can suffer more 14:17:04 <TrueBrain> but having both UPS and FPS at 1 ... makes some shitty gameplay :P 14:17:10 <peter1138> Hmm 14:17:20 <TrueBrain> (or 0.001) :P 14:17:33 <ZehMatt_> well yes 14:17:50 <peter1138> OnTick() should be game-tick based 14:17:56 <TrueBrain> peter1138: no 14:18:00 <peter1138> There should be an OnRealtimeTick() that is realtime backed. 14:18:02 <peter1138> based. 14:18:04 <TrueBrain> OnTick mostly handles shit like animation atm 14:18:29 <TrueBrain> I havent found an OnTick yet that does anything game-state related 14:18:30 <peter1138> Ok, scrap OnTick(), add OnGameTick() and OnRealtimeTick() 14:18:30 <ZehMatt_> arent animations based on ticks? 14:18:35 <peter1138> No ambiguity then. 14:18:39 <TrueBrain> peter1138: fine by me :P 14:18:40 <peter1138> Really? Hmm. 14:18:48 <TrueBrain> ZehMatt_: currently everything is based on ticks 14:18:53 <TrueBrain> but lets forget what is and isnt 14:18:57 <TrueBrain> lets talk about what we want 14:19:03 <ZehMatt_> all ears 14:19:07 <TrueBrain> do we want animation to be game tick or real tick based? 14:19:14 <TrueBrain> that is the question we should be asking :) 14:19:24 <TrueBrain> and here is a minor issue ... NewGRFs 14:19:24 <peter1138> real tick, I think. 14:19:26 <ZehMatt_> well if you fast forward the game you would expect animations to go faster? 14:19:29 <TrueBrain> they can influence game state ... 14:19:42 <peter1138> ZehMatt_, game animations yes, window animations? no! 14:19:43 <TrueBrain> so where is andy :P 14:19:51 <ZehMatt_> yes true 14:19:56 <TrueBrain> so anything in a viewport should go quicker with FF 14:20:06 <TrueBrain> anything else should not (From a visual point of view)? 14:20:16 <ZehMatt_> well where would be such code 14:20:20 <peter1138> Quite a few OnTick()s just refresh data if needed 14:20:24 <ZehMatt_> so far theres only the highlight i can think off 14:20:24 <peter1138> That seems to be the wrong place to do it. 14:20:36 <peter1138> ZehMatt_, scrolling credits 14:20:47 <peter1138> ZehMatt_, news window pop up 14:20:49 <TrueBrain> animation in general 14:20:57 <TrueBrain> (not sprite-animation :D) 14:21:01 <TrueBrain> transitions, maybe a better word 14:21:15 <TrueBrain> news in the banner scrolling by 14:21:18 <TrueBrain> (from right to left) 14:21:42 <TrueBrain> but also window dragging? 14:21:45 <peter1138> The settings window uses the OnTick() event to handle click debouncing. 14:21:56 <TrueBrain> wow ..... lol 14:21:59 <TrueBrain> also a nice one :) 14:22:06 <TrueBrain> button down/up state 14:22:08 <peter1138> well, its buttons are not "real" 14:22:11 <TrueBrain> (the time to go from one to the other) 14:22:23 <peter1138> also, something about scrollbars uses ticks 14:22:35 <TrueBrain> so in FF my scrollbar goes a lot faster? 14:22:59 <peter1138> Something about button release times or something 14:23:03 <peter1138> Would need to look it up again. 14:23:40 <TrueBrain> so possibly a good start for this is not with splitting UpdateWindows or when it is called, but start using a delta for "realtick" updates 14:23:51 <TrueBrain> so that animation always takes, say, 1 second, for news to pop out 14:23:56 <TrueBrain> no matter what the current FPS is/was 14:24:00 <TrueBrain> no matter the FF settings? 14:24:13 <ZehMatt_> from where I understand it 14:24:18 <ZehMatt_> OnTick has to be always each 30ms 14:24:21 <ZehMatt_> regardless of FF 14:24:26 <peter1138> No 14:24:27 <ZehMatt_> otherwise things go to fast 14:24:36 <TrueBrain> we just established there is not 1 rule for OnTick 14:24:42 <ZehMatt_> https://share.epic-domain.com/2018-04-28_16-24-37.txt 14:24:43 <peter1138> Some things within OnTick() are to do with refreshing data, that should be game ticks. 14:24:46 <ZehMatt_> for example this 14:24:53 <ZehMatt_> it moves every tick 4 pixel 14:24:56 <peter1138> Some things are realtime. Yeah, we just discussed :p 14:24:59 <ZehMatt_> making OnTick faster moves more pixels 14:25:12 <ZehMatt_> so why cant we leave OnTick on 30 14:25:14 <ZehMatt_> regardless 14:25:17 <peter1138> I have an idea that I should just add OnRealtimeTick() and rename OnTick() and do a PR? 14:25:20 <TrueBrain> we just, in the last 5 minutes, showed many situations with different solutions :) 14:25:30 <peter1138> And then ZehMatt_'s PR can just be about the updatewindows change. 14:25:47 <ZehMatt_> feel free to commit onto mine 14:25:53 <ZehMatt_> the topic is the same 14:25:54 <TrueBrain> ZehMatt_: read up plz :) We keep telling you: some Window uses OnTick for real time stuff, some use it for game time stuff 14:25:57 <TrueBrain> there is no 1 solution 14:26:23 <peter1138> okay guys, i'm firing up VS ;D 14:26:30 <TrueBrain> but I do not think that OnRealtimeTick() is a solution; I think OnRealtimeTick(delta) is 14:26:31 <ZehMatt_> i totally get it 14:26:44 <ZehMatt_> you guys are the better judge to what needs moving 14:26:55 <peter1138> TrueBrain, so that windows don't need to reference _realtime_ticks themselves? 14:26:57 <peter1138> Hmm, no 14:27:08 <ZehMatt_> I agree with peter1138 14:27:13 <ZehMatt_> thats how it should be done normally 14:27:16 <peter1138> TrueBrain, thing is when you want to wait 450ms... what use is delta? 14:27:17 <TrueBrain> peter1138: so that if the FPS drops, things still end in the defined time 14:27:26 <LordAro> limiting scope/usage of global vars is never a bad thing 14:27:38 <peter1138> LordAro, it would mean every window needs to keep track though. 14:27:45 <TrueBrain> if you want to wait 450ms, you have an internal time saying: 450 -= delta 14:27:47 <TrueBrain> I mean ... 14:27:55 <TrueBrain> but do we have any window that does that? 14:27:57 <ZehMatt_> cant a window request a timer 14:28:02 <ZehMatt_> to make things even simpler 14:28:12 <ZehMatt_> AddTimerFunc(&MyWindow::fn, this, delay) 14:28:13 <TrueBrain> currently we have 2 callsbacks: every gametick, and every 100 gameticks 14:28:27 <TrueBrain> but normally, in UI animation, you use deltas 14:28:30 <TrueBrain> not "amount of ticks" 14:28:36 <TrueBrain> as if you are in need of CPU, things get weird 14:28:41 *** bwn has quit IRC 14:29:22 <TrueBrain> for gameticks we cannot use a delta, because game state is important :P 14:29:23 <ZehMatt_> also not all windows even implement OnTick 14:29:25 <TrueBrain> but for realtime you can 14:29:31 <TrueBrain> of course they don't 14:29:35 <TrueBrain> why would every need to 14:29:41 <ZehMatt_> but you still iterate each window and call the virtual func 14:29:51 <TrueBrain> so? 14:29:53 <ZehMatt_> not that you'll ever have 1000+ windows 14:29:59 <ZehMatt_> its just a waste calling empty functions :p 14:30:06 <TrueBrain> dont confuse the current discusion with pre-mature optimizations :) 14:30:16 <ZehMatt_> im not talking about optimizations 14:30:25 <TrueBrain> [16:29] <ZehMatt_> its just a waste calling empty functions :p 14:30:26 <TrueBrain> yes you are :) 14:30:26 <ZehMatt_> rather a system where you can setup timers that run the requested time 14:30:32 <peter1138> TrueBrain, hmm, i'd use "expires = _realtime_ticks + 450;" to set the timer, and "if (_realtime_ticks >= expires) {}" to cause the action to happen 14:30:32 <TrueBrain> come back about that when you can profile it is an issue ;) 14:30:51 <TrueBrain> peter1138: TICKS. That will not work 14:30:55 <TrueBrain> it does work if you call it _realtime_clock 14:30:58 <peter1138> realtime-ticks in this case is ms :p 14:30:59 <TrueBrain> :P 14:31:09 <TrueBrain> huge difference :) 14:31:19 <TrueBrain> but yes, either you use a global msec, or a local delta_msec 14:31:23 <LordAro> std::chrono::high_resolution_clock 14:31:23 <TrueBrain> tomato tomat to me 14:31:25 <LordAro> sorted. 14:31:28 *** bwn has joined #openttd 14:31:34 <peter1138> _realtime_ticks IS in milliseconds. 14:31:39 <TrueBrain> point is, don't depend on how often YOU are called 14:31:56 <TrueBrain> peter1138: if that is the case, the name is misleading :) 14:32:06 <TrueBrain> ticks suggests there is no predefined value between 2 ticks, just a best-effort :) 14:32:22 <TrueBrain> (which is why game-ticks is such a poor value for UI stuff :D) 14:32:33 <TrueBrain> but okay, tomato tomato :) Lets call it a realtime_clock :) 14:32:49 <TrueBrain> or, ofc, the std::chrono :) 14:33:16 <TrueBrain> and if you do both the delta and the clock, you fix both cases: those where you want to wait 450ms, and those who are doing animation 14:33:27 <peter1138> Let's do the delta. 14:33:28 <LordAro> is the argument here only to do with the name of _realtime_ticks variable? 14:33:32 <peter1138> It removes use of globals. 14:33:35 <peter1138> LordAro, looks it :p 14:33:46 <LordAro> goodo 14:33:49 <TrueBrain> LordAro: that is what we narrowed down to now, yes 14:34:06 <TrueBrain> talking the same language is for some reason important in conversations 14:34:08 <TrueBrain> dunno what that is about 14:34:10 <peter1138> oh fuck VS 14:34:23 <ZehMatt_> non relevant question: are you guys planning on changing the coding style perhaps any day 14:34:31 <peter1138> grep and vim is much easier to work with. 14:34:38 <TrueBrain> very very unlikely; you would have to make a very strong case ZehMatt_ 14:34:48 <peter1138> ZehMatt_, changing what for what purpose? 14:34:51 <ZehMatt_> typing_things_like_this_is_silly_imho 14:35:04 <TrueBrain> AndTypingLikeThisIsAnyBetter? 14:35:14 <ZehMatt_> startSmall 14:35:16 <ZehMatt_> :D 14:35:24 <LordAro> well that's just objectively wrong :p 14:35:27 <TrueBrain> coding styles have no room for personal preference 14:35:30 <peter1138> Nah, we're not C#. 14:35:38 <LordAro> also what TrueBrain said 14:35:43 <TrueBrain> the only important thing is that we all do the same 14:35:45 <ZehMatt_> but you guys arent C either 14:35:56 <LordAro> although my personal preferences do align quite strongly with OTTD's code style :p 14:35:58 <TrueBrain> and changing the full codebase to change from one casing to the other, is silly :) 14:36:26 <ZehMatt_> well this is an rather unconvential style 14:36:41 <ZehMatt_> im more the industrie guy so I barely see this unless I dig up 70's code 14:36:45 <TrueBrain> honestly, most project I work with use something really similar 14:36:52 <TrueBrain> so I guess it depends on your experience with other projects 14:36:57 <TrueBrain> again, personal preference :) 14:37:05 <TrueBrain> Java uses another style, sure 14:37:23 <Alberth> java itself doesn't mind, I found :p 14:37:39 <LordAro> ah least we don't have the "declare variables before use" thing from C 14:37:39 <TrueBrain> you are only heavily suggested to use a certain way :D 14:37:40 <LordAro> urgh 14:38:09 <TrueBrain> declare before use ... I think I dont understand you there :P 14:38:10 <Alberth> ZehMatt_: just become style agnostic, code in whatever is prefered 14:38:26 <peter1138> "more the industry guy" doesn't hold any sway. That assumes none of us does any professional coding, which is bullcrap. 14:38:34 <LordAro> int foo; .....; foo = bar(); 14:38:40 <peter1138> Oh, unless you meant industrial systems. 14:38:40 <ZehMatt_> i didnt mean to say that 14:38:48 <TrueBrain> LordAro: in C++ you also have to do that? What am I missing? 14:38:48 <peter1138> In which case, who cares, they're all prehistoric anyway. 14:38:55 <ZehMatt_> its just what ive seen so far 14:39:02 <ZehMatt_> they all stick to more or less the same thing 14:39:03 <peter1138> Well, now you've seen OpenTTD :D 14:39:05 <LordAro> TrueBrain: int foo = bar(); 14:39:11 <TrueBrain> LordAro: you can do that in C too? 14:39:12 *** synchris has quit IRC 14:39:17 <Alberth> TrueBrain: a few statements not involving 'foo' at the dots :p 14:39:24 <LordAro> TrueBrain: nowadays yes, but people often don't because of hysterical reasons 14:39:26 <ZehMatt_> and i didnt mean to offend anyone 14:39:33 <TrueBrain> LordAro: so your argument was void :) Okay :) 14:39:34 <peter1138> LordAro, we do have the declare first thing in a few places, left over of course. 14:39:45 <Alberth> LordAro: like Matlab, still using C89 :p 14:39:57 <TrueBrain> LordAro: I was like ... they fixed that .... LONG ago :P 14:40:18 <peter1138> ZehMatt_, you'll get on to tabs vs spaces at some point and that'll lead no where :p 14:40:31 <ZehMatt_> ive been there many times 14:40:32 <TrueBrain> but I guess the next one you say is that you are happy we can use // for comments :P 14:40:35 <ZehMatt_> something im not too worried about imho 14:40:43 <ZehMatt_> i just fix it to whats wanted 14:40:55 <ZehMatt_> because converting them is so hard in 2018 :D 14:41:18 <Alberth> most editors aren't worth their name :p 14:41:27 <peter1138> Hmm.... 14:41:33 <TrueBrain> anywayyyyyyy ... UI ... 14:41:37 <ZehMatt_> nowadays i just use spaces 14:41:43 <peter1138> Any idea why SmallMapGui is in smallmap_gui.h? 14:41:48 <peter1138> None of the other windows are in a header file. 14:41:58 <TrueBrain> I see a commit coming up :P 14:42:24 <peter1138> TrueBrain, I can't, you took that away from us! You stole our rights! I'm gonna protest! 14:42:32 <ZehMatt_> lol 14:42:35 <TrueBrain> peter1138: you go girl :P 14:42:50 <TrueBrain> so to conclude a bit here ZehMatt_, I think before your PR is going to work, we should make most of the UI independant of FF 14:42:53 <TrueBrain> by what-ever means :P 14:43:07 <TrueBrain> as then your commit makes a lot of sense 14:43:12 <ZehMatt_> works for me 14:43:26 <TrueBrain> basically the same result, but your PR started top-down 14:43:29 <peter1138> There is one line in src/linkgraph/linkgraph_gui.cpp that reaches into SmallMapWindow directly. 14:43:31 <TrueBrain> I suggest we first run a bottom-up :) 14:43:33 <peter1138> And it probably shouldn't. 14:43:38 <ZehMatt_> "works for me" 14:43:41 <ZehMatt_> :v 14:43:52 <ZehMatt_> cant deny that the window dragging and such is much better 14:43:57 <ZehMatt_> with a few downsides on FF 14:44:05 <peter1138> It's shit for me, cos of that glitching thing :( 14:44:19 <peter1138> But if I leave Minecraft open behind the game, it's all perfect. 14:44:22 <ZehMatt_> im not even sure what the issue is about 14:44:29 <TrueBrain> lol @ peter1138 :D 14:44:39 <LordAro> lolwut 14:44:42 <ZehMatt_> its not a true fullscreen thing 14:44:46 <TrueBrain> known_bugs.txt entry: if you have screen tearing, launch Minecraft while playing OpenTTD! 14:44:55 <ZehMatt_> lol 14:45:06 <TrueBrain> not sure what to think about that :D 14:45:26 <peter1138> Not even joking. Actually any game that does screen flipping in the background. 14:45:33 <peter1138> It makes me think it's a driver issue. 14:45:41 <ZehMatt_> anyway if I can somehow help changing window code just tell me what to do 14:45:48 <peter1138> I'd say "but it does it on Linux" but it's effectively the same driver there :p 14:45:54 <ZehMatt_> but first we have to establish where to put what 14:46:05 <peter1138> I might fix this smallmap window first. 14:46:08 <peter1138> Rabbit holes. 14:46:14 <TrueBrain> well, I am playing Factorio Sea Block, so meh :P 14:46:19 <ZehMatt_> you'll also introduce OnRealTimeTick? 14:47:14 <peter1138> Ok, what. 14:47:21 <peter1138> static const uint LINKGRAPH_DELAY = 0xf; 14:47:26 <peter1138> Who allowed that ;( 14:47:33 <peter1138> That 0xf... means... 14:47:53 <peter1138> 15 ticks. Aka 450ms? 14:48:05 <TrueBrain> "one moment ladies and gentlemen, we are experiencing some annoyance" 14:48:06 <TrueBrain> :D 14:48:12 <ZehMatt_> probably 14:48:19 <peter1138> Also 14:48:19 <TrueBrain> 450 / MILLISECONDS_PER_TICK? :) 14:48:21 <peter1138> uint refresh; 14:48:26 <peter1138> if (--refresh > 0) 14:48:27 <peter1138> hmm 14:48:31 <ZehMatt_> yea 14:48:32 <ZehMatt_> lol 14:48:39 <peter1138> is it signed or unsigned in the condition? 14:48:43 <peter1138> Oh, no 14:48:47 <peter1138> It expects 0 14:48:47 <TrueBrain> unsigned :) 14:48:53 <TrueBrain> >= 0 would be more fun 14:48:54 <TrueBrain> :D 14:49:06 <TrueBrain> I love that CLion warngs me about those stupid things while writing the code :P 14:49:34 <peter1138> 0xff * 30 14:49:44 <peter1138> I wonder why 0xff? 14:49:47 <peter1138> Did something see "byte" ? 14:49:51 <TrueBrain> because 0xfe looks weird 14:49:57 <peter1138> 7.65 seconds seems weird 14:50:08 <APTX_> you could have written it as if (refresh --> 0) 14:50:21 <TrueBrain> APTX_: but it doesn't do the same! :P 14:50:45 <ZehMatt_> thats why I stick to my timer system :v 14:50:45 <peter1138> It looks fun though. 14:50:49 <APTX_> it should do the same thing 14:50:51 <ZehMatt_> such code wouldn't be required 14:51:03 <peter1138> APTX_, no, --refresh vs refresh-- evaluates differently 14:51:22 <TrueBrain> APTX_: you are one step later in your case :D 14:51:36 <TrueBrain> if (--1 > 0) is true 14:51:39 <TrueBrain> if (1-- > 0) is false 14:51:54 <TrueBrain> -- is such a fun operator :D 14:52:02 <TrueBrain> (--a) returns (a - 1) 14:52:05 <TrueBrain> (a--) returns a 14:52:18 <TrueBrain> an operator with a side-effect :D 14:52:36 <TrueBrain> a.decrease(return_origin=True) vs a.decrease(return_origin=False) :D 14:52:49 <TrueBrain> too much Python TrueBrain .. okay .. sorry .... 14:53:01 <APTX_> ok I see your point 14:53:18 <TrueBrain> but it looks awesome, if (refresh --> 0) :D 14:53:19 <APTX_> I did see it after the first line though 14:53:23 <TrueBrain> that would fuck up so many people :D 14:53:48 <peter1138> I need my PC to compile all the time. 14:53:58 <peter1138> When it's idle, the soundcard produces a lot of noise. 14:54:10 <LordAro> peter1138: that's the reverse of normal 14:54:11 <APTX_> TrueBrain: it was a joke relating to: https://stackoverflow.com/questions/1642028/what-is-the-operator-in-c 14:54:13 <TrueBrain> unplug your soundcard 14:54:26 <LordAro> my soundcard makes noise when i'm doing a lot of disk activity 14:54:31 <peter1138> Difficult, it's on the motherboard. 14:54:33 <APTX_> C++ jokes 14:54:37 <ZehMatt_> bad isolation 14:54:50 <TrueBrain> lol @ APTX_ .. that is horrible 14:55:07 <LordAro> hmm, do we need labels for PRs? 14:55:08 <ZehMatt_> nowadays i just go with usb sound 14:55:11 <ZehMatt_> no more noise 14:55:13 <LordAro> not-ready, and such like? 14:55:15 <TrueBrain> one thing I still want to sneak in a project is: #define true (random()>0.95?1:0) 14:55:24 <ZehMatt_> lol 14:55:56 <APTX_> TrueBrain: you want to do it with sizeof 14:56:04 <TrueBrain> LordAro: I was more wondering the other solution .. close PRs if they need something else to happen first, or are being split up, etc 14:56:34 <TrueBrain> as I am unsure leaving a PR open with somethinglike: this will be done after N, we won't end up with 100 PRs :P 14:57:01 <LordAro> it's a tricky balance, i agree 14:57:20 <peter1138> TrueBrain, can PRs have dependencies? 14:57:26 <TrueBrain> I think 6749 for example can be closed, as he is splitting it up in better smaller chunks 14:57:29 <TrueBrain> not really 14:57:32 <Eddi|zuHause> TrueBrain: close PRs if they weren't changed in a month? 14:57:44 <LordAro> as long as the PRs are waiting on the submitter rather than the devs, i wouldn't be too worried about them 14:57:54 <TrueBrain> and PR 6750 has no resolution; so should it remain a PR? Reopening is alwayspossible 14:58:16 <LordAro> and then close them after a month of inactivity or something 14:58:26 <APTX_> TrueBrain: for returning a+1 (or a-1) there's these: https://blogs.msdn.microsoft.com/oldnewthing/20150525-00/?p=45044 14:58:41 <peter1138> virtual void OnTick() 14:58:44 <LordAro> i got the impression that 6749 was being split into other PRs, but the bulk of it was staying where it was 14:58:48 <peter1138> { /* Overrride default OnTick */ 14:58:50 <peter1138> } 14:58:50 <TrueBrain> LordAro: but how does it help .. it just keeps pulling attention 14:58:53 <peter1138> So, er.... 14:58:53 <TrueBrain> having an empty PR list is nice 14:59:10 <peter1138> Ah, inherits from another window. 14:59:17 <LordAro> it is, but the reality is that people open PRs before they are ready :p 14:59:22 <TrueBrain> LordAro: sure, I guess that can be the result; b ut shouldnt we close the PR for now, and reopen when it is time it can be reviewed? 14:59:33 <TrueBrain> so there should be some wiggleroom, for sure 14:59:38 <peter1138> They *think* they are ready. 14:59:43 *** snail_UES_ has joined #openttd 14:59:56 <LordAro> i don't think things should be closed unless there's no chance they'll be reopened again 14:59:57 <TrueBrain> but if we keep PRs open for too long, we just start ignoring all PRs :P 15:00:10 <LordAro> closing/reopening looks "bad", imo 15:00:14 <TrueBrain> why? 15:00:23 <TrueBrain> closing only means: this is not something we can actively help you with 15:00:34 <LordAro> idk, as if we can't make up our mind what to do with it 15:01:08 <TrueBrain> huh? only outsiders might think that (for what-ever reason), but do we care about those? 15:01:19 <TrueBrain> it is about keeping things clear and workable for us, devs 15:01:34 <LordAro> yeah, and i think labels is a better way of doing that 15:01:53 <TrueBrain> and I am doubting that .. same for issues btw 15:02:18 <TrueBrain> keeping things open where the action is not ours, is just asking for more work on our side 15:02:27 *** Thedarkb1 has quit IRC 15:02:46 <LordAro> i agree that PRs shouldn't sit around doing nothing forever, but closing them just because the submitter is taking longer than a day or two to get back to it doesn't seem reasonable either 15:02:47 <TrueBrain> we have to keep the author responsible for his PR :) 15:02:56 <TrueBrain> huh?! 15:03:00 <TrueBrain> how did you jump to that :P 15:03:14 <TrueBrain> there is a lot of grey; not that much black and white here :) 15:03:17 <LordAro> how did you jump to "PRs are devs responsibility" :p 15:03:26 <TrueBrain> I never did? 15:03:38 <LordAro> 16:02:18 < TrueBrain> keeping things open where the action is not ours, is just asking for more work on our side 15:03:54 <TrueBrain> and how did you read into that: PRs are devs responsibility?! 15:04:00 <TrueBrain> really, less black/white, more grey plz :) 15:04:25 <TrueBrain> lets go back to the examples I was bringing: we now have a PR which was too big, and the author is splitting it up in smaller chunks 15:04:42 <TrueBrain> is it useful for us to keep the origin PR open? There is a chance he makes thatone smaller, or maybe he makes a new one 15:04:49 <TrueBrain> does keeping the PR contribute to anything, for us? 15:05:01 <LordAro> right, we need to ask him what he's intending to do with it 15:05:04 <TrueBrain> I was planning today to ask the author exactly that btw 15:05:18 <TrueBrain> as keeping it around for us, is just noise 15:05:23 <TrueBrain> we cannot do anything with it in its current state 15:05:36 <ZehMatt_> are we talking about my PR? 15:05:39 <TrueBrain> so, by closing it, we put the ball back to the author; he needs to tell us when we are done again 15:05:44 <TrueBrain> ZehMatt_: no, but we can now :) 15:05:54 <TrueBrain> as similar goes for yours; but it is a bit different 15:05:57 <LordAro> i see no benefit to closing it before we know what's going to be done with it 15:06:03 <ZehMatt_> just wondering 15:06:10 <LordAro> it's pointless to close it if it just gets reopened again 15:06:35 <TrueBrain> okay, LordAro, take a deep breath, step out of your current rain of thought, and lets jump on it from a different angle :) 15:06:56 <TrueBrain> lets take the MIDI PR: 1 of 2 actions I planned on doing today 15:07:13 <TrueBrain> 1) if he joins IRC, ask him if we can close his PR, and that he reopens it when he is done, or how he wanted to fix this 15:07:16 <TrueBrain> 2) ask the same in the ticket 15:07:22 <TrueBrain> we put the ball to HIM 15:07:29 <TrueBrain> that is how you deal with these things 15:07:39 <TrueBrain> you don't rudely go closing tickets and walk on :) 15:08:00 <LordAro> i know that 15:08:12 <TrueBrain> so what is the downside of doing that? we can scare off the author 15:08:19 <TrueBrain> so we have to make it very clear it is not saying no 15:08:20 <LordAro> i disagree with the "close his PR, and that he reopens it when he is done" bit 15:08:21 <TrueBrain> but only a not now 15:08:35 <TrueBrain> okay, you disagree; why? 15:08:44 <_dp_> this is getting weird... pretty much every time I decide not to pay for mobile internet and it runs out power outage happens within few days %) 15:08:45 <LordAro> it only serves to create noise in the issue 15:08:45 <ZehMatt_> what about WIP label 15:08:58 <TrueBrain> noise in the issue? 15:09:01 <TrueBrain> from whos perspective? 15:09:08 <LordAro> everyone's 15:09:11 <TrueBrain> why? 15:09:14 <TrueBrain> give a use case? 15:09:20 <TrueBrain> as we as dev won't look at it anymore 15:09:23 <TrueBrain> (as we shouldn't) 15:09:28 <TrueBrain> the author doesnt care, as he is working on it 15:09:29 <LordAro> "closed" from the outside looks as if it is dead 15:09:39 <TrueBrain> I think you have to recalibrate that :) 15:09:43 <TrueBrain> in GitHub that is very much not true 15:09:47 <TrueBrain> it is just a "not now" 15:09:55 <LordAro> that has not been my experience 15:09:57 <TrueBrain> it has nothing to do with dead or alive 15:10:13 <TrueBrain> but you cannot possibly keep PRs alive hoping the user picks it up 15:10:16 <TrueBrain> you say, close them after a month 15:10:23 <TrueBrain> but what if he reopens it 1 day after that with an update? 15:10:28 <TrueBrain> same holds 15:10:42 <peter1138> Hmm, so that status bar ticker... 15:10:47 <TrueBrain> tick tack 15:10:49 <TrueBrain> no? 15:10:50 <peter1138> Currently it's game ticks, which is wrong, right? 15:10:52 <TrueBrain> tacker 15:10:57 <TrueBrain> I think it is peter1138 15:10:57 <peter1138> But also, it stops when you pause the game. 15:11:04 <TrueBrain> also wrong, imo :) 15:11:06 <peter1138> Is that right? 15:11:06 <peter1138> Hmm 15:11:45 <TrueBrain> ZehMatt_: labels are nice, but in general you should try to avoid having issues/PRs around that are not moving 15:11:57 <TrueBrain> as in the end you only end up with a lot of issues and PRs :) 15:12:08 <TrueBrain> bit like cleaning your room ... "I am going to keep this, as I mgiht need it some day" 15:12:09 <peter1138> Do we have any PRs that are not moving yet? 15:12:12 <TrueBrain> you only end up with a pile of junk :P 15:12:21 <TrueBrain> peter1138: they are all too fresh 15:12:24 <TrueBrain> imo :) 15:12:31 <TrueBrain> 2 I doubt if they survive the day 15:12:35 *** Gja has joined #openttd 15:12:46 <TrueBrain> one depends on your actions in the next few hours :P :P 15:12:57 <frosch123> peter1138: i have no idea how to continue with 6751 :) 15:13:09 <frosch123> an api request without usecase 15:13:36 <TrueBrain> frosch123: adding stuff for adding, is arely sensible 15:13:49 <TrueBrain> so why are you not sure how to continue? :D 15:14:12 <frosch123> i always left the closing to others :p 15:14:39 <TrueBrain> :D 15:15:00 <TrueBrain> I like LordAro's suggestion there; but is Zuu willing to do that? :) 15:15:33 <TrueBrain> (btw, LordAro, talking about annoying noise in issues ... every force push stays behind in the issue it references ... that is just a bug in GitHub if you ask me :( ) 15:15:42 <TrueBrain> (example: #5377) 15:17:21 <peter1138> frosch123, hmm, yeah, that last comment in 6751 is bizaare. Like... the submitter didn't even write the patch. 15:17:38 <peter1138> Oh it says that in the first note. 15:17:43 <peter1138> krinn... 15:17:51 <frosch123> yes, zuu dug out some krimm patch 15:18:29 <peter1138> 6 years ago. 15:18:41 <TrueBrain> so would the PR be okay if it also had IsCanalTile? Or unified in a single function? Or not at all till someone asks for it again? 15:18:57 <peter1138> And yes, the problem with the use case is exactly the problem you said. 15:19:12 <frosch123> TrueBrain: i would really like to know the intention 15:19:21 <frosch123> like, should the ai avoid clearing rivers when building? 15:19:31 <frosch123> but then cleaning canals is just as bad 15:19:33 <peter1138> It's okay to clear canals? 15:19:39 <peter1138> Worse I'd say. 15:19:44 <frosch123> and cleaning sea is fine or what? 15:19:47 <TrueBrain> he wrote a bit why in the originl issue 15:20:09 <TrueBrain> is krinn still alive in OpenTTD community? 15:20:31 <peter1138> The "why" seems to be "we need to detect rivers" but doesn't explain what's special about rivers. 15:21:10 <TrueBrain> because you have to destroy them before youcan build on them, it seems :) 15:21:22 <TrueBrain> and from how I read it, you currently have no way to know you could destroy it 15:22:49 <frosch123> hmm, there is ScriptMarine::IsCanalTile 15:23:19 *** Xaroth has joined #openttd 15:23:29 <TrueBrain> so alias it to ScriptTile too? 15:23:41 <peter1138> Hmm, the status bar scrolling has a fixed "width" 15:23:53 <peter1138> It doesn't care about the length of the text or the width of the widget. 15:23:58 *** agentw4b has joined #openttd 15:24:05 <frosch123> i guess in that case ScriptTile only has landscape stuff 15:24:07 <TrueBrain> peter1138: stop finding work :P 15:24:11 <peter1138> :p 15:24:15 <peter1138> Good point. 15:24:17 <frosch123> while the transport stuff is in more specific classes 15:24:19 <peter1138> That's a separate issue. 15:24:39 <TrueBrain> frosch123: guess the same holds for roads etc indeed 15:24:44 <frosch123> peter1138: every modern games scrolls those short news vertically :p 15:24:47 <TrueBrain> but is river a transport thing, or a landscape thing? 15:24:56 <peter1138> Hmm, 2 pixels every 30 ms. 15:24:57 <frosch123> rivers are not company constructed 15:25:02 <peter1138> so 15ms per pixel. 15:25:06 <frosch123> so sea/river is landscape, canal is transport 15:25:08 <TrueBrain> frosch123: neither are town roads :) 15:25:14 <TrueBrain> :P 15:25:17 <TrueBrain> (nitpicking ftw!) 15:25:33 <frosch123> oh, there is also ScriptTile::IsStationTile... 15:25:38 <TrueBrain> peter1138: best thing is that animation can look good in 2x too ! :P 15:26:01 <peter1138> Yeah, I mean... should it be faster if the the gui is scaled up? 15:26:12 <peter1138> Same with the credits window. 15:26:16 <peter1138> Well, again, separate issue. 15:26:19 <TrueBrain> :D 15:26:48 <ZehMatt_> did i just open a can of worms 15:27:02 <peter1138> ZehMatt_, you "found" some issues :) 15:27:27 <peter1138> Rabbit holes. Warren?> 15:27:42 <ZehMatt_> i wonder, has it no one ever bothered before me that the UI is somewhat sluggish 15:27:57 <ZehMatt_> 30hz updates i mean 15:27:59 <TrueBrain> bothered enough to do something about it, is the question I guess :) 15:28:51 <ZehMatt_> i also should setup my other PR at some point to remove GetTickCount calls 15:28:55 <peter1138> No, not really. 15:29:05 <peter1138> GetTickCount... uhm... 15:29:08 <peter1138> Don't show me :( 15:29:16 <ZehMatt_> huh 15:29:21 <ZehMatt_> win32_v uses it 15:30:30 *** andythenorth has joined #openttd 15:30:55 <TrueBrain> nice solution frosch123 :) 15:31:21 <_dp_> does it make sense to make a patch that allows road/bus stops to overbuild each other? 15:33:21 <andythenorth> it does to me :P 15:33:45 *** Zuu has joined #openttd 15:33:49 <frosch123> does not sound useful to me 15:33:54 <frosch123> why would you want to do that? 15:34:00 <frosch123> they share no vehicles 15:34:26 <frosch123> it's kind of the opposite of an upgrade 15:35:07 <TrueBrain> frosch123: just wondering, if you give comments on a PR which are resolved, do you mind if someone else (for example in this case: me), accepts the PR and merge it? Or do you rather want to do that validation yourself? 15:35:18 <frosch123> well, "upgrade" is the wrong word. but we only allow overbuilding for compatible stuff 15:36:14 <frosch123> TrueBrain: nah, go ahead 15:36:29 <_dp_> frosch123, makes it faster to fix when you built the wrong one 15:36:57 <_dp_> frosch123, having wrong rv station type is just something I have constant issues with) 15:38:18 <TrueBrain> frosch123: cool, tnx :D Means I can make myself useful :D 15:39:44 <frosch123> i guess i should keep on "commenting" instead of "requesting changes" :) 15:40:18 <TrueBrain> I like requesting changes; I dislike GitHub not dismissing it with a push, but only if the line you marked is touched 15:40:20 <TrueBrain> that is just annoying 15:40:27 <TrueBrain> but I have no issues dismissing your request frosch123 :P 15:40:39 <_dp_> other part would be allowing rv station removal to remove any station type, but I'm not sure how to make it reasonable for vanilla 15:40:46 <TrueBrain> I miss a bit the overview of what still needs attention .. you see badly when someone pushed a new commit 15:42:34 *** andythenorth has quit IRC 15:43:02 *** Thedarkb1 has joined #openttd 15:43:13 <peter1138> _caret_timer... 15:43:15 <peter1138> what 15:43:33 <LordAro> times carrots 15:43:48 <peter1138> Oh textbuf isn't a window of course. 15:43:48 <peter1138> :S 15:44:03 <peter1138> Still, that shouldn't be sped up in fast-forward either. 15:44:18 <peter1138> But it's not a window so falls outside the remit of this patch. 15:46:28 <TrueBrain> :D 15:46:35 <TrueBrain> and so it spreads :P 15:48:04 *** sla_ro|master has joined #openttd 15:49:34 <_dp_> frosch123, it's similar to overbuilding rail station with different rotation. Isn't much of "upgrading" either, just convenient way of reorganizing the station 15:49:39 <Eddi|zuHause> <frosch123> like, should the ai avoid clearing rivers when building? <-- without reading the whole backlog, i'd say AI should be prevented from clearing water unless it specifically says "i definitely want to clear water" 15:50:22 <peter1138> "Dispatch WE_TICK event over all windows" 15:50:29 <peter1138> Yeah, I don't think WE_TICK exists for a long time. 15:52:06 <peter1138> Gah, I can't scroll the window properly without 6756 ;p 15:52:47 <peter1138> Hmm, also, that one should probably remove the obsolete strings. 15:52:59 * _dp_ thinking of making AI that does nothing but deliberately destroying all rivers 15:53:06 <TrueBrain> what is the difference between map and viewport? 15:53:37 <_dp_> sadly you can't easily run it in mp :( 15:53:38 <peter1138> Quite. 15:53:53 <peter1138> Previous wording was "camera"... where does that fit in? 15:54:07 <TrueBrain> I honestly dont know how they differ? 15:54:47 <peter1138> The difference is moving the map under a viewport, or moving a viewport over a map. 15:55:00 <peter1138> A weird distinction that affects only the direction of movement. 15:55:07 <peter1138> And it's not intuitive. 15:55:13 <TrueBrain> ah! That is the difference 15:55:19 <TrueBrain> holy crap, that took way too long :D 15:55:22 <peter1138> "reverse scroll" was logical because it was just "opposite to normal" 15:55:27 <peter1138> Yeah 15:55:28 <TrueBrain> haha :D 15:56:01 <peter1138> Btw, should CI warn if strings have been removed from english but are still present in other langs? 15:56:31 <peter1138> (Or, I guess, warn on any language file error?) 15:56:36 <Zuu> I think in general AIs should bridge canals so that if the player want to use it for ships it is not ruined. 15:56:46 <TrueBrain> currently any language error is ignored .. good question .. frosch123? 15:57:04 <Eddi|zuHause> warning sounds like the correct level 15:57:20 <Zuu> But then, it is hard to dictate what AIs people will write. 15:57:39 <TrueBrain> CI can either error or ignore; they dont have a 'warn' level 15:57:43 <peter1138> :( 15:58:08 <TrueBrain> I really think we will have a GitHub bot soon .. so many of thse can be solved with that :) 15:58:17 <TrueBrain> the bot can just say in a comment: CI is fine, but did you know ...... :D 15:58:17 <Eddi|zuHause> Zuu: yes, an AI building roads should probably leave canals alone. but an AI building canals might want to reroute existing canals 15:58:29 <_dp_> TrueBrain, make it error and rethink if someone complains? 15:58:32 <frosch123> TrueBrain: we used to split removal of strings into separate commits, but maybe that is just wrong :p 15:58:42 <TrueBrain> frosch123: feels off :) 15:59:30 <LordAro> seems to me like it should be an error 15:59:33 <peter1138> Hmm, right, OnGameTick() and OnRealtimeTick(int delta_ms) created. 15:59:41 <peter1138> delta_ms just to make sure we know it's in milliseconds :) 15:59:50 <peter1138> And now... I need to call it. 15:59:52 <TrueBrain> frosch123 and LordAro have the same colour on IRC .. sometimes I ahve a hard time seeing one or the other replied :P 16:00:23 <LordAro> peter1138: clearly should std::chrono::duration :p 16:00:29 <LordAro> then it is very unambiguous 16:00:48 <TrueBrain> delta of the type signed feels wrong :D 16:02:37 <peter1138> Point. 16:03:06 <peter1138> I should make it float, in case we want sub-ms accuracy ;) 16:03:46 <TrueBrain> where is my shot-gun .... 16:05:34 <peter1138> True, floats are not that accurate. 16:05:37 <Eddi|zuHause> if you're ever doing "a-b" on a variable, it should probably have a signed type 16:06:47 <TrueBrain> owh, peter1138, just so I mentioned it, remember that TickCount wraps every ~49 days :P 16:08:44 <snail_UES_> hey guys, question about RandomAction2 16:08:58 <TrueBrain> bit random question, but sure 16:09:18 <snail_UES_> the specs say that bits 0…3 are used to count from the starting vehicle 16:09:33 <snail_UES_> but this would restrict to a max of 15 vehicles... 16:09:47 <Eddi|zuHause> anything larger than that you must push to register 0x100 16:10:09 <Eddi|zuHause> nml does that 16:10:23 <snail_UES_> ok… I was thinking about circumventing this by setting <count> to 0 and use register 0x100 16:10:32 <snail_UES_> so it’s possible, right? 16:10:36 <Eddi|zuHause> yeah, exactly 16:10:45 <snail_UES_> ok great, thx 16:11:29 <Eddi|zuHause> but nml does that automatically for you 16:11:58 <snail_UES_> ok, but I’m not using nml 16:12:04 <Eddi|zuHause> i figured :p 16:15:46 *** Cubey has joined #openttd 16:16:06 <peter1138> TrueBrain, heh, yeah I'd already considered that. If it wraps it just does an extra tick with no delta. Next tick will carry on. 16:16:20 <peter1138> TrueBrain, may be a slight hiccup but won't break. 16:16:43 <TrueBrain> good :) 16:19:11 <peter1138> Oh. AHAHA 16:19:18 <peter1138> _realtime_ticks is only updated every 30ms... 16:19:30 <TrueBrain> so it is a ticks? :P 16:19:49 <peter1138> The value is ms. 16:19:58 <peter1138> So it jumps 30 every time. 16:19:59 <Eddi|zuHause> peter1138: i think _realtime_ticks was meant for "do this tick anyway even though the actual game is paused" 16:21:59 *** glx has joined #openttd 16:21:59 *** ChanServ sets mode: +v glx 16:25:21 *** Flygon has quit IRC 16:28:37 *** Thedarkb1 has quit IRC 16:32:54 <peter1138> Yay, an ICU crash. 16:34:54 <_dp_> ok, I'm out of GS patches for now, so let's switch to towns xD https://github.com/OpenTTD/OpenTTD/pull/6758 16:40:53 <TrueBrain> ghehe 16:46:17 *** som89 has quit IRC 17:07:28 <peter1138> Hmm, why would you update widget lowered state in OnTick()? 17:07:49 <TrueBrain> welcome to the sticky part called Window :) 17:08:03 <TrueBrain> write all these things down, and put ZehMatt_ to work too? :D 17:08:10 <peter1138> Should be in OnInvalidateData(), and then that called... 17:11:43 <glx> TrueBrain: what changes are needed to get the right icu from vcpkg ? 17:11:44 <peter1138> Ah, cos some of the data it depends on is in the video drivers. 17:12:22 <TrueBrain> glx: change 61 to 57 in the port file, run it, you get a sha mismatch, copy/paste the right sha in 17:14:34 <glx> arg they upgraded git again 17:14:59 <TrueBrain> git, or vcpkg? 17:15:04 <glx> vcpkg 17:15:06 <TrueBrain> as vcpkg updates a lot :) 17:15:09 <TrueBrain> that is the whole idea ;) :D 17:18:49 <glx> hmm I should get icu55 to compare with useful version 17:19:09 <TrueBrain> I guess we need to check both 17:19:23 <TrueBrain> if icu57 gives a large static, icu might be to blame. If it doesnt, VS2017 17:19:27 <TrueBrain> so roll your dice :D 17:19:37 <glx> indeed I'll try both 17:19:41 <TrueBrain> tnx :) 17:31:39 <glx> I hope the MSYS2 it's getting won't conflict with my global MSYS 17:32:28 <TrueBrain> no clue; always installed it in a Docker :D 17:33:08 * LordAro wonders what to do 17:33:52 <LordAro> oh, i made this https://gist.github.com/LordAro/2fe011a8a5ef3360d915ef04f513e068 17:34:23 <TrueBrain> you made the output, or the tool? :P 17:34:27 <glx> you can ignore 3rdparty 17:34:33 <LordAro> glx: you can ignore most of them 17:34:45 <LordAro> i already excluded most 17:34:48 <LordAro> TrueBrain: the output :p 17:34:51 <TrueBrain> awh :( 17:34:53 <TrueBrain> which tool does that? 17:35:02 <LordAro> i'm not that good :p 17:35:04 <LordAro> cppcheck 17:35:07 <TrueBrain> ah :D 17:36:34 *** synchris has joined #openttd 17:39:35 <glx> good it uses the right tools 17:41:24 <glx> could have been fun as I have msys bash, a bash from gitshell and the bash it installed from msys2 17:41:47 <TrueBrain> so much bashing :( 17:42:26 <glx> I already know I can't configure and make openttd from the gitshell 17:48:29 *** nielsm has joined #openttd 17:56:39 <peter1138> Was there a magic command to strip removed strings from other langs? 17:56:50 *** Pikka has quit IRC 17:57:02 *** gelignite has quit IRC 17:58:17 * Rubidium wonders how long this OpenTTD compile is going to take; 15 minutes in and already at sqapi.cpp 17:58:33 <TrueBrain> you need a better CPU Rubidium! 17:58:38 <Eddi|zuHause> make -j12 18:00:35 <nielsm> peter1138 last I asked the answer was "no" 18:00:51 <peter1138> And you didn't make one? :p 18:01:02 <nielsm> sed -i -e /STR_WHATEVER/d src/lang/*.txt src/lang/unfinished/*.txt 18:01:38 <nielsm> is what I ended up with 18:01:59 <Eddi|zuHause> maybe translator/eints should take care of that? 18:02:26 <Eddi|zuHause> so it scans for removed strings in english.txt and removes it from the other langfiles on its daily commit? 18:05:06 <Rubidium> TrueBrain: I'm fairly certain nobody's going to give me a CPU (and all the other required hardware) to make this compile significantly faster before the build completes 18:05:57 <Eddi|zuHause> Rubidium: how sure are you that the compile is not taking 5 weeks? :p 18:06:48 <Rubidium> not that sure, but having a machine that finished this compile much faster... it's going to be an oldie 18:11:37 *** Thedarkb1 has joined #openttd 18:18:28 <Rubidium> at least the md5sum of the languages is the same, so there's some good hope my patch actually works on BE machines 18:21:14 <LordAro> Rubidium: ...what are you compiling on? 18:24:16 <Rubidium> fake Malta 24Kc 18:25:54 <LordAro> i have not heard of that 18:26:49 *** snail_UES_ has quit IRC 18:28:09 *** sim-al2 is now known as Guest1198 18:28:10 *** sim-al2 has joined #openttd 18:28:45 *** snail_UES_ has joined #openttd 18:29:25 <Rubidium> LordAro: replace fake with qemu and you're more likely to find it 18:31:11 <TrueBrain> wow, you started a BE for that .. nice Rubidium :D 18:31:32 <peter1138> Ah, so that's why it's so slow :p 18:32:16 *** Guest1198 has quit IRC 18:33:53 <TrueBrain> we all assumed he just had a terrible machine .. but he was doing something different :D 18:37:21 *** andythenorth has joined #openttd 18:44:05 <glx> Elapsed time for package icu:x64-windows-static: 57.6 min <-- not bad 18:44:51 <TrueBrain> its terrible how long it takes ... :( 18:46:30 <Rubidium> well, for me compiling squirrel takes about as long as that ;) 18:47:29 <peter1138> Hmm, it's rebuilding table/strings.h every time. What've I broked :S 18:47:41 <LordAro> Rubidium: is there a partiular reason for this, or just for fun? 18:47:59 <TrueBrain> he is doing something that makes me REALLY happy :D 18:48:11 <LordAro> is that legal? 18:48:17 <TrueBrain> making me happy? 18:48:18 <TrueBrain> I sure hope so 18:48:21 <TrueBrain> otherwise I missed a law .. 18:48:28 <LordAro> REALLY happy 18:48:39 <TrueBrain> although it would explain my past relationships I guess .... 18:48:43 <TrueBrain> now you made me depressed :'( 18:48:48 <LordAro> :( 18:49:19 <Rubidium> LordAro: you can make TB happy as well... simply convert http://rbijker.net/openttd/endian_1.diff & http://rbijker.net/openttd/endian_2.diff into a PR (although obviously I haven't tested the big endian side of things yet, nor MSVC) 18:49:34 <LordAro> ah yes, i remember 18:49:41 <TrueBrain> he didnt ask you to remember :P 18:49:57 <LordAro> tough 18:50:11 <TrueBrain> :D 18:50:31 <frosch123> meh, my generated images are not deterministic 18:50:40 <frosch123> i guess plantuml adds some timestamp or something 18:50:42 <TrueBrain> do we want to know? :P 18:51:26 <glx> ok build started 18:54:31 <TrueBrain> owh, btw, Rubidium, your first patch works for MSVC. I have been using that all day with CMake and MSVC :P 18:54:40 <TrueBrain> second I didnt try, as MSVC :P 18:54:45 <glx> and compile failed 18:55:17 <TrueBrain> glx: ICU? 18:55:29 <glx> openttd with vcpkg icu 18:55:37 <TrueBrain> what error? 18:55:44 <peter1138> Hmm, it's oaky after make clean. 18:55:52 <glx> cmemory.h not found 18:55:59 <TrueBrain> ah, yes! 18:56:00 <TrueBrain> I forgot 18:56:04 <TrueBrain> you have to copy that yourself 18:56:38 <TrueBrain> its in vcpkg\buildtrees\icu\src\icu-57.1\icu\source\common\cmemory.h 18:56:48 <TrueBrain> to include\layout\ 18:56:56 <TrueBrain> (it is no longer there in ICU 58+ :D 18:57:00 <TrueBrain> sorry, totally forgot 18:59:26 <glx> anyway .lib are huge compared to useful ones 19:01:31 <TrueBrain> yeah .. so possibly it is the way ICU is compiled .. 19:01:35 <TrueBrain> at least that narrows the issue down 19:04:07 <glx> 30.6MB 19:04:11 <TrueBrain> okay 19:04:21 <TrueBrain> so now the quesiton, is ICU55 any different I guess 19:04:27 <TrueBrain> so happy it is not me :D 19:04:28 <glx> let's remove 57 first 19:06:07 *** McBash has joined #openttd 19:06:13 <peter1138> Heinz 57? 19:27:10 <frosch123> he, finished my review, already outdated :p 19:27:17 <TrueBrain> :D 19:28:29 <frosch123> hmm, or is it a github bug 19:28:53 <TrueBrain> looks weird indeed 19:29:15 <TrueBrain> or did you have the commit older then 33 minutes open? 19:29:26 <frosch123> no, i just opened it 19:29:27 *** snail_UES_ has quit IRC 19:29:46 <TrueBrain> weird 19:30:26 <peter1138> Odd. 19:31:39 <peter1138> Oops, yes, removed one too many. 19:34:06 *** sla_ro|master has quit IRC 19:35:00 *** andythenorth has quit IRC 19:36:30 <glx> ICU55 build failed 19:37:03 <glx> probably too old for vcpkg 19:41:14 <glx> or it's just a problem in ICU55 source 19:41:31 <TrueBrain> :( 19:41:55 <TrueBrain> I will see if tomorrow I can understand what vcpkg does, and what openttd-useful does 19:41:56 <glx> D:/developpement/GitHub/vcpkg/buildtrees/icu/src/icu-55.1/icu/source/io/ufile.c(70): warning C4013: '__iob_func' non défini(e) ; extern retournant int pris par défaut 19:41:57 <glx> D:/developpement/GitHub/vcpkg/buildtrees/icu/src/icu-55.1/icu/source/io/ufile.c(70): error C2109: un indice requiert un type tableau ou pointeur 19:42:24 <glx> I think openttd useful is built directly in VS 19:42:46 <glx> but michi_cc knows more I think 19:42:51 <TrueBrain> lets see ... there is a lengthy description of how it is build 19:42:58 <TrueBrain> I think Rubidium build those :) 19:43:12 <glx> not version 6 19:43:34 <TrueBrain> ah, we rolled our own 'static' variant 19:43:38 <TrueBrain> what 'version 6' you refer to glx? 19:43:58 *** bakkerl is now known as Lamp- 19:44:32 <glx> the hidden version 19:44:37 <TrueBrain> of what? 19:45:01 <TrueBrain> okay, so we just heavily modified the ICU project file to make a static ... who knows what is in there and what is not :D Can explain the difference I guess 19:45:03 <glx> https://www.openttd.org/en/download-openttd-useful <-- this page only give 5.1 19:45:09 <TrueBrain> ah, of openttd-useful 19:45:18 <TrueBrain> you just said 'version 6' :P 19:45:24 <TrueBrain> silly if there is a newer version that it never got published tbh 19:45:49 <glx> yes useful version 6 is needed for VS2015 and up I think 19:46:02 <michi_cc> TrueBrain: But it is published: https://www.openttd.org/en/download-openttd-useful/6.0 19:46:07 <glx> but doesn't work for prievious 19:46:17 <TrueBrain> published as 'stable' 19:46:51 <glx> not sur about the last part ;) 19:48:08 <TrueBrain> but okay .. that means that the vcpkg static is just too static :D 19:51:07 <michi_cc> Ah, looking at the 6.0 source zip I see where the size difference comes from. Out ICU is build with a different, smaller content of icudata. Full ICU data has lots of stuff we never need (like e.g. tables of country names in each language). 19:51:16 <michi_cc> s/Out/Our/ 19:51:51 <TrueBrain> any specifics how to disable that? 19:52:02 <glx> not useful I guess 19:52:28 <michi_cc> By modifying the project files, i.e. there is no build option. 19:52:47 <TrueBrain> any specific profile file or something? 19:52:51 <TrueBrain> possibly a diff? :D 19:53:08 <glx> but handcrafted icu is inconsistant with using vcpkg to simplify our task 19:53:12 <michi_cc> TrueBrain: Download openttd-useful-6.0-source.zip 19:54:13 <glx> since windows 10 creator update, ICU is included at the OS level 19:54:30 <glx> but that won't help for previous windows versions 19:54:58 <glx> and I guess it doesn't include layout stuff 19:55:10 <TrueBrain> michi_cc: I want to patch vcpkg; so far it is a bit too vague for me :) 19:55:11 <michi_cc> I never checked how much of what we need is implemented by Uniscribe (which is the native Windows API). 19:55:20 <glx> https://msdn.microsoft.com/en-us/library/windows/desktop/mt823414(v=vs.85).aspx 19:55:34 <michi_cc> TrueBrain: The zip contains said diff. 19:55:46 <TrueBrain> now that is useful information :) 19:56:42 *** Alberth has left #openttd 19:57:11 <TrueBrain> but why does ICU have a table of country names ... 19:57:21 <TrueBrain> sounds like ICU tried to do everything 19:57:38 <glx> they stopped doing the layout ;) 19:57:59 <TrueBrain> and only because they got sick of all the bugs they coulldnt fix :P 19:58:21 <michi_cc> Because ICU " providing Unicode and Globalization support". And we only need the Unicode stuff. 19:59:38 <TrueBrain> okay, 6.0 diff is similar to 5.1 diff 19:59:41 <TrueBrain> not really helpful, that diff 20:00:42 <TrueBrain> it adds static; it doesnt really show what to remove 20:01:59 <TrueBrain> we don't need any data part of ICU? 20:02:52 <michi_cc> We need some data part, but not all data. 20:03:11 <TrueBrain> any way to make that more specific? 20:03:29 <TrueBrain> as I cannot randomly not compile data :D Do we have a list, or is there some lookup, or? Any breadcrumbs? 20:04:11 <michi_cc> You probabyl want to look at makedata.mak, makedata.vcxproj and icudata.lst 20:05:15 <TrueBrain> I noticed this in the 5.1 too .. how did those changes came to be? 20:05:21 <TrueBrain> either someone went really in depth in it 20:05:28 <TrueBrain> or it got taken from somewhere? :) 20:06:19 <michi_cc> Some of that might have already been done by Rb, the rest would be me I guess. 20:06:50 <michi_cc> There's some additional code changes in tools/ to properly build the static data lib, too. 20:07:37 <TrueBrain> via vcpkg, the statics compiled without issues .. might be 57 20:08:23 <michi_cc> Probably. 20:08:39 <michi_cc> Lots of stuff about ICU data can be found at http://userguide.icu-project.org/icudata#TOC-Customizing-ICU-s-Data-Library 20:09:34 <TrueBrain> now we are getting somewhere :D 20:10:56 <TrueBrain> okay, something to fiddle a bit with tomorrow 20:11:09 <TrueBrain> basically, ICU is 15 MiB of additional binary size ...... 20:11:11 <TrueBrain> lolz 20:11:16 <TrueBrain> stupid library is stupid 20:11:27 <TrueBrain> if only they would have put all that data in different libraries 20:11:31 <TrueBrain> so you could pick the ones you like 20:11:33 <TrueBrain> or something 20:11:44 <TrueBrain> most likely they have their reasons 20:14:00 <TrueBrain> tnx michi_cc; especially the icudata.lst is a good tip :) 20:19:44 *** andythenorth has joined #openttd 20:20:30 <peter1138> :wq 20:20:33 <peter1138> Oops 20:20:43 <glx> this is not vi 20:21:12 <LordAro> nor vim 20:25:32 *** andythenorth has quit IRC 20:26:14 <peter1138> curticks = GetTicks(); realtime_tick += curticks - lastcurticks; 20:26:23 <peter1138> Why is it done like that? 20:27:56 <peter1138> Hmm, I see. 20:28:47 *** Thedarkb1 has quit IRC 20:33:01 <TrueBrain> HE CAN SEE CLEARLY NOW, THE RAIN HAS GONE 20:35:31 *** McBash has quit IRC 20:38:01 *** agentw4b_ has joined #openttd 20:39:24 *** agentw4b__ has joined #openttd 20:44:07 *** agentw4b has quit IRC 20:46:13 *** ToBeFree has joined #openttd 20:46:42 *** agentw4b_ has quit IRC 20:48:22 <Eddi|zuHause> i always thought of that as "he can see clearly, now [that] the rain has gone" 20:49:15 <TrueBrain> you say tomato, I say tomato 20:54:45 *** synchris has quit IRC 21:07:08 <peter1138> :( 21:07:13 <peter1138> InputLoop... 21:07:52 <peter1138> Can of worms. 21:07:56 <peter1138> This gets deeper... 21:11:21 <_dp_> frosch123, am I reading it right that code and chances are fine, just need to explain that in comment? 21:11:44 <frosch123> yes, code looks fine, i just wondered about the bit magic for 15 mintues :p 21:12:50 <_dp_> frosch123, I though mentioning 1-bit intersection is enough xD 21:12:59 <frosch123> esp. because i did not look at the switch after it, and wondered how that bit magic would check for a corner 21:13:09 <_dp_> ah) 21:13:15 <frosch123> _dp_: the same comment also mentions the corner :) 21:17:51 <_dp_> frosch123, is this descriptive enough? https://paste.openttdcoop.org/ps1z4ivqt 21:18:01 *** andythenorth has joined #openttd 21:18:34 <frosch123> should be fine :) 21:18:45 *** agentw4b__ has quit IRC 21:20:08 <_dp_> frosch123, done 21:28:28 <frosch123> thanks :) now waiting for jenkins :p 21:28:47 <peter1138> Bad timing :( 21:29:19 <peter1138> Hmm, is it possible to setup extra nodes elsewhere? 21:29:27 <peter1138> As in... if I had spare capacity... 21:29:36 <_dp_> frosch123, could also turn that switch into bit magic but comment explaining that will probably be even bigger than the switch xD 21:30:28 <frosch123> peter1138: combo breaker, there could have been 3 dp commits in a row 21:31:05 <andythenorth> jenkins on AWS spot nodes :P 21:31:08 <peter1138> Aww 21:31:15 <andythenorth> almost free for just a few nodes 21:31:39 <peter1138> Still finding gui bits that should be realtime working on game ticks... 21:34:09 *** snail_UES_ has joined #openttd 21:39:40 <peter1138> Ok, that works better. 21:39:55 <peter1138> Scrollbar buttons are usable in FFWD mode now :p 21:42:12 <peter1138> Ah yes, must not forget the animated mouse cursors that are affected by FFWD. 21:45:25 <frosch123> @calc 0.02 * 52 * 20 * 12*4 21:45:25 <DorpsGek> frosch123: 998.4 21:45:39 <frosch123> hmm, yeah, aws is too expensive for us 21:46:14 <frosch123> hmm, actually, only a 1/4 of that 21:47:51 <peter1138> £250 a year? 21:48:07 <peter1138> € 21:48:21 <Eddi|zuHause> is there much difference? 21:48:22 <frosch123> $ 21:48:51 <frosch123> Eddi|zuHause: it all depends on estimating how many minutes we actually need :p 21:49:01 <frosch123> i tried the current activity 21:49:37 <frosch123> 12 builds per day, 4 days per week, 52 weeks per year 21:50:00 <frosch123> 20 minutes per build when using 2 cores 21:50:18 <_dp_> hmm, having hard times understanding my own patch 21:50:24 * _dp_ too much freaking magic 21:50:39 <Eddi|zuHause> means you didn't document it properly!!!! 21:50:45 <peter1138> frosch123, what's it all running on at the moment? The normal OpenTTD server? 21:50:57 <frosch123> half a cent for 2 cores per minute 21:51:05 <_dp_> Eddi|zuHause, yeah, but there's like 6 lines comment I'm trying to understand xD 21:51:10 <andythenorth> it starts out cheap and gets expenisve 21:51:27 <frosch123> peter1138: i assume so, 5 years old 21:51:43 <peter1138> Is the plan to get rid of it? 21:51:46 <_dp_> Ah, got it... I guess I'll add few more lines to that comment xD 21:51:49 <andythenorth> do we need a patreon? o_O 21:52:14 <frosch123> peter1138: maybe, but it is unrealistic :p 21:52:54 <frosch123> we won't be able to run custom stuff like eints, bananas2 and masterserver on cloud stuff for free 21:53:04 <frosch123> so custom server will likely be cheaper 21:53:18 <peter1138> Yeah, cloud is not really cheaper. 21:53:50 <frosch123> but cloud may be an option for the farm, since we have a hard time to predict the usage for that :p 21:54:08 <Eddi|zuHause> "cloud" always sounds to me like the only point where it's better is if you need to scale it quickly to random loads 21:54:11 <peter1138> I think cloud is more of an option when you can predict it :p 21:55:52 <frosch123> andythenorth: i have no idea about ottd finances, but there was always enough money, there is probably some miner somewhere 21:56:35 <andythenorth> cloud is $$ more for equal performance 21:56:39 <frosch123> the last fundraiser was for 0.7 iirc 21:56:41 <andythenorth> unless you have to pay sysadmin 21:57:00 <andythenorth> if you only measure computing perf. / $ then cloud is not a good deal 21:57:07 <andythenorth> do we pay our sysadmin? 21:58:01 <frosch123> yes, with "thanks" 21:58:25 <nielsm> excuse me what's the difference here? http://0x0.st/sQdv.png 21:58:35 <nielsm> IntelliDense? 21:59:34 <andythenorth> who has the money these days? o_O 21:59:51 <frosch123> rudge always did 22:07:37 <frosch123> i guess just buying more vps is cheapest option when current server is overloaded 22:09:11 *** sim-al2 has quit IRC 22:11:18 <frosch123> @calc 52 * 20 * 12*4 * 1.604/60 22:11:18 <DorpsGek> frosch123: 1334.528 22:11:42 <frosch123> @calc 52 * 20 * 12*4 * 0.106/60 22:11:42 <DorpsGek> frosch123: 88.192 22:12:32 <frosch123> ovh offers cpu power for 1/3 the price of aws 22:13:00 *** Thedarkb1 has joined #openttd 22:13:03 <frosch123> with more ram and network bandwidth 22:14:17 <Wolf01> 'night 22:14:20 *** Wolf01 has quit IRC 22:14:37 <peter1138> Hmm, I guess the scrolling patch makes OpenTTD playable in VR desktops too :p 22:14:50 <peter1138> Well, "playable" 22:15:05 <peter1138> Mind you would still be easier to just use the mouse. 22:16:06 <frosch123> people always wanted to drive inside their own trains 22:16:26 <peter1138> Yeah. There's a new game for that. Rolling Line. 22:16:36 <peter1138> https://store.steampowered.com/app/754150/Rolling_Line/ 22:20:23 *** andythenorth has quit IRC 22:23:36 <nielsm> hmm, if the player switches to an empty music set, playback stops 22:23:49 <nielsm> if the player then switches to a non-empty music set, playback does not resume 22:24:10 <nielsm> but there isn't any way to know whether playback was stopped because player switched to empty music set, or because player pushed the stop button 22:24:28 <peter1138> Make a way :P 22:24:35 <nielsm> would be it okay to assume that playback always should start if the player switches away from an empty set? 22:25:17 <nielsm> I think it's what I'd personally want most of the time 22:25:48 <frosch123> i think there is some magic about the intro gui always playing the same song 22:26:26 <nielsm> actually, if you stop the music, exit the game, and start again, you get no music on the title screen 22:27:19 <nielsm> same if you switch to NoMusic in game options from title screen, closes game options, opens again, then selects a different music set 22:29:59 <nielsm> unrelated, I can't get the Game Options window to properly redraw the music set description when I change set, is there a good overview of the various window invalidation functions somewhere? 22:31:42 *** Wacko1976 has quit IRC 22:38:43 <frosch123> nielsm: SetDirty probably 22:40:48 <frosch123> or InvalidateData 22:40:48 <nielsm> yes see, I am in fact calling InvalidateWindowData(WC_GAME_OPTIONS, 0); SetWindowDirty(WC_GAME_OPTIONS, 0); 22:40:48 <nielsm> and it does just about nothing 22:40:48 <peter1138> Well 22:40:49 <peter1138> The window also needs to implement logic to handle the invalidation. 22:40:57 <frosch123> nielsm: if you have "this", you do not need the window class stuff 22:41:21 <nielsm> I don't in this context 22:41:53 <frosch123> anyway the old dropdown did InvalidateData 22:41:57 <nielsm> since the ChangeMusicSet function I'm factoring code into fits best in music_gui.cpp, since it needs to call all the playlist management functions 22:44:06 <frosch123> nielsm: you need to call InvalidateWindowData(WC_GAME_OPTIONS, WN_GAME_OPTIONS_GAME_OPTIONS) 22:47:03 <nielsm> and pass gui_scope=true to it too, I think 22:47:03 <frosch123> yes 22:54:56 *** frosch123 has quit IRC 22:57:33 <peter1138> TrueBrain, hehe, _realtime_tick was implemented by... you ;) 22:58:08 <nielsm> the answer to "what idiot wrote this terrible code?" is always "myself" 23:00:59 <peter1138> Back in the days of VARDEF... 23:01:48 <glx> ok ICU55 is not compilable with vs2015 and above it seems 23:02:18 <glx> oh when we had globals everywhere peter1138 ? 23:02:59 <peter1138> Well, we still do. 23:03:25 <glx> it's cleaner now 23:03:34 <peter1138> A bit. 23:06:10 *** GT has joined #openttd 23:13:37 *** nielsm has quit IRC 23:18:45 *** Wormnest has quit IRC 23:22:46 *** Progman has quit IRC 23:24:37 *** Gja has quit IRC 23:34:24 *** GT has left #openttd 23:47:33 *** Zuu has quit IRC 23:50:27 *** FLHerne has quit IRC