Back to Home / #openttd / 2018 / 04 / Prev Day | Next Day
#openttd IRC Logs for 2018-04-28

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