IRC logs for #openttd on OFTC at 2019-04-13
            
00:00:52 *** arikover has joined #openttd
00:01:34 <Samu> that helicopter change...
00:01:38 <Samu> hmm
00:01:56 <Samu> not sure if it would make sense if I split it into a pr of its own
00:02:20 <Samu> context: https://github.com/OpenTTD/OpenTTD/pull/7503
00:07:43 <Samu> ok, i'll do it
00:10:36 <peter1138> I'm not sure it's a desirable change at all.
00:17:05 <DorpsGek_II> [OpenTTD/OpenTTD] SamuXarick updated pull request #7503: Feature: Add aircraft type dropdown in Autoreplace window https://git.io/fjqQz
00:24:41 <DorpsGek_II> [OpenTTD/OpenTTD] SamuXarick opened pull request #7505: Change: Permit autoreplacing a plane with a helicopter or vice versa. https://git.io/fjmt4
00:30:37 *** Progman has quit IRC
00:35:01 *** tokai|noir has joined #openttd
00:35:01 *** ChanServ sets mode: +v tokai|noir
00:42:00 *** tokai has quit IRC
00:47:08 <Samu> why was difficulty preset custom removed?
01:04:33 <Samu> what happened here? https://github.com/OpenTTD/OpenTTD/commit/812ae4140a8566c2b4b43c6aa5bab5eecf82f18a#diff-aee88b4caa62907399795a20ac1d63f5L28
01:05:55 *** arikover has quit IRC
01:09:50 *** Supercheese has quit IRC
01:20:57 *** Wolf01 has quit IRC
01:53:09 *** Supercheese has joined #openttd
02:12:40 *** colde has quit IRC
02:13:18 *** colde has joined #openttd
02:49:34 <DorpsGek_II> [OpenTTD/OpenTTD] SamuXarick opened pull request #7506: Add: AI/GS Reinstate custom settings profile. https://git.io/fjmqA
02:52:22 *** Samu has quit IRC
03:39:23 *** chomwitt has quit IRC
04:16:06 *** Wormnest has quit IRC
04:17:16 *** Wormnest has joined #openttd
04:33:16 *** D-HUND has joined #openttd
04:36:33 *** debdog has quit IRC
04:43:40 *** Flygon has joined #openttd
04:53:32 *** glx has quit IRC
04:58:47 *** Sheogorath has quit IRC
05:01:45 *** HerzogDeXtEr has quit IRC
05:12:27 *** Flygon has quit IRC
05:13:35 *** berndj-blackout is now known as berndj
05:23:35 *** Sheogorath has joined #openttd
06:09:46 *** winircuser-777 has joined #openttd
06:15:51 *** Supercheese has quit IRC
06:16:12 *** Supercheese has joined #openttd
06:17:31 *** winircuser-777 has quit IRC
06:23:44 <DorpsGek_II> [OpenTTD/OpenTTD] PeterN commented on pull request #7506: Add: AI/GS Reinstate custom settings profile. https://git.io/fjmYK
06:47:22 *** rocky11384497 has quit IRC
06:51:36 *** rocky11384497 has joined #openttd
06:56:45 *** nielsm has joined #openttd
07:07:56 *** Alberth has joined #openttd
07:07:56 *** ChanServ sets mode: +o Alberth
07:08:01 <Alberth> o/
07:54:34 *** sla_ro|master has joined #openttd
08:03:54 *** synchris has joined #openttd
08:21:43 <DorpsGek_II> [OpenTTD/OpenTTD] TrueBrain closed pull request #7506: Add: AI/GS Reinstate custom settings profile. https://git.io/fjmqA
08:21:44 <DorpsGek_II> [OpenTTD/OpenTTD] TrueBrain commented on pull request #7506: Add: AI/GS Reinstate custom settings profile. https://git.io/fjmOB
08:24:27 <DorpsGek_II> [OpenTTD/OpenTTD] TrueBrain commented on pull request #6926: Change: Allow dock to be constructed in more locations https://git.io/fjmOR
08:24:28 <DorpsGek_II> [OpenTTD/OpenTTD] TrueBrain closed pull request #6926: Change: Allow dock to be constructed in more locations https://git.io/fhnCx
08:27:29 *** andythenorth has joined #openttd
08:27:31 <DorpsGek_II> [OpenTTD/OpenTTD] TrueBrain commented on pull request #7316: Change: Always report error when ordering a road vehicle to wrong type of road stop. https://git.io/fjmOu
08:28:38 *** Progman has joined #openttd
08:30:25 <DorpsGek_II> [OpenTTD/OpenTTD] TrueBrain commented on pull request #7351: Add: Warn players that company passwords are not truly secure https://git.io/fjmO2
08:31:38 <DorpsGek_II> [OpenTTD/OpenTTD] TrueBrain dismissed a review for pull request #7366: Add: List recently executed commands in crashlog output. https://git.io/fjIKC
08:32:16 <DorpsGek_II> [OpenTTD/OpenTTD] nielsmh commented on pull request #7351: Add: Warn players that company passwords are not truly secure https://git.io/fjmOV
08:36:04 <DorpsGek_II> [OpenTTD/OpenTTD] TrueBrain commented on pull request #7454: Restore libtimidity https://git.io/fjmOr
08:36:05 <DorpsGek_II> [OpenTTD/OpenTTD] TrueBrain closed pull request #7454: Restore libtimidity https://git.io/fjk5H
08:36:50 <andythenorth> moin
08:36:54 <TrueBrain> nielsm: does that mean you will do that for this PR, or for a next? (7351)
08:36:55 <TrueBrain> hi andythenorth :)
08:37:10 <nielsm> not for that PR
08:37:14 <TrueBrain> I see peter1138 also produces more PRs than the rest can digest :D
08:37:16 <andythenorth> are we aiming for Issue Count Zero then?
08:37:27 <andythenorth> 52 issues, 49 Prs
08:37:31 <andythenorth> singularity approaches
08:37:58 <DorpsGek_II> [OpenTTD/OpenTTD] TrueBrain approved pull request #7351: Add: Warn players that company passwords are not truly secure https://git.io/fjmOo
08:38:05 <TrueBrain> the typical: "it looks okay to me" approval :P
08:38:22 <andythenorth> that's what nightlies are for :D
08:38:37 <andythenorth> except everyone plays JGR, so you'll have to wait for JGR to merge upstream
08:39:27 <TrueBrain> "everyone" .. being in a hyperbolic mood today? :D
08:40:27 <andythenorth> the best mood :)
08:40:33 <andythenorth> much assertion
08:40:39 <andythenorth> few evidence
08:40:53 <andythenorth> I have been incredibly well-behaved all working week
08:41:32 <TrueBrain> *applauds*
08:41:37 <TrueBrain> what did that give you?
08:41:40 <TrueBrain> a cookie I hope? :D
08:41:42 <andythenorth> results
08:41:45 <andythenorth> no cookie
08:41:47 <andythenorth> just results
08:42:01 * andythenorth wonders who was discussing artefact publishing
08:42:06 <andythenorth> was it andythenorth ?
08:42:09 <andythenorth> was it TrueBrain ?
08:42:47 <TrueBrain> werent we both? :D
08:42:59 <andythenorth> I hope so, or we are being sock-puppeted
08:43:58 <TrueBrain> I dont want a hand up my ass, sorry :(
08:44:53 <TrueBrain> https://github.com/OpenTTD/OpenTTD/pull/7505 <- is it me, or is this really weird?
08:46:58 <andythenorth> "no need"
08:47:35 <DorpsGek_II> [OpenTTD/OpenTTD] TrueBrain commented on pull request #7505: Change: Permit autoreplacing a plane with a helicopter or vice versa. https://git.io/fjmOD
08:47:36 <DorpsGek_II> [OpenTTD/OpenTTD] TrueBrain closed pull request #7505: Change: Permit autoreplacing a plane with a helicopter or vice versa. https://git.io/fjmt4
08:47:40 <andythenorth> now we have to construct a defensible rationale about why that behaviour is not wanted :(
08:47:43 <TrueBrain> fuck it, sick and tired of these kind of PRs
08:47:44 <andythenorth> I hate this crap
08:47:56 <TrueBrain> euh ... did I have to do that?
08:47:59 <TrueBrain> :D
08:48:10 <andythenorth> you will when Samu comes back yes
08:48:12 <TrueBrain> I think it is reversed: he has to give a ationale why we would WANT this
08:48:17 <TrueBrain> yeah, no
08:48:23 <andythenorth> I hate this crap
08:48:33 <andythenorth> some stuff is just instinctively....'no need'
08:48:36 <TrueBrain> I wish I could rate limit how many PRs a person can have open :P
08:48:38 <andythenorth> not even wrong, just 'no need'
08:49:20 <TrueBrain> so all LordAro gave me was a draft PR .. boooo :P
08:51:20 <DorpsGek_II> [OpenTTD/website] TrueBrain commented on pull request #79: Fix: make the size of the fast-download-header content aware https://git.io/fjmOH
08:52:16 <TrueBrain> okay .. I think that was the administrative part of the day done :)
08:54:44 <andythenorth> carnage
08:59:47 *** arikover has joined #openttd
09:00:05 <andythenorth> $someone should test this :P https://github.com/OpenTTD/OpenTTD/pull/7340
09:00:09 <andythenorth> I'm not saying it's better
09:00:14 <andythenorth> but tropic is broken
09:01:45 <andythenorth> and my 'fix' just duplicates existing temperate rules, so eh
09:01:56 <peter1138> hi
09:02:29 <andythenorth> it's peterererer
09:03:11 <DorpsGek_II> [OpenTTD/OpenTTD] PeterN updated pull request #7316: Change: Always report error when ordering a road vehicle to wrong type of road stop. https://git.io/fhAxC
09:03:37 <TrueBrain> pfft, this CMake branch is starting to become annoying :P
09:03:47 <peter1138> The removed comment at the top of #7340 is telling.
09:04:11 <peter1138> desert terrain needs special height distribution.
09:04:15 <peter1138> It does... but not like that.
09:05:51 <peter1138> If we could run an independent pass of perlin noise (or some other generator), then you can use that to determine which areas should be desert, rather than relying only on existing height.
09:06:17 <LordAro> TrueBrain: well, because it's not done :p i was rather hoping someone else could test it out and see what they think...
09:06:48 <TrueBrain> fair :)
09:08:02 <LordAro> also moin
09:08:19 <andythenorth> peter1138: deserts on mountain tops? o_O
09:09:53 <peter1138> It would no longer become a mountain top
09:10:52 <nielsm> keep in mind the desert areas should have small variations in height, up to +2, but only very smooth changes
09:12:02 <andythenorth> when I tested 7340, I figured it was 'enough'
09:12:14 <andythenorth> but better terrain would be better of course :P
09:12:23 <peter1138> You can generate the "is it desert" noise first, and then use that to 'force' the smooth tgp settings on desert areas.
09:12:53 <peter1138> andythenorth, yeah, i was just expanding on "i'm not saying it's better"
09:16:00 <andythenorth> if there are proposed fixes, I will sit hitting newgame and passing subjective judgements on the maps :P
09:16:17 <andythenorth> maybe we could automate that
09:16:42 <peter1138> There's an interesting fractal generator on the frooms.
09:17:27 <DorpsGek_II> [OpenTTD/OpenTTD] PeterN commented on pull request #7316: Change: Always report error when ordering a road vehicle to wrong type of road stop. https://git.io/fjm3e
09:20:40 *** synchris has quit IRC
09:21:56 *** chomwitt has joined #openttd
09:22:52 * peter1138 fiddles with nrt again
09:23:10 <peter1138> Way too much duplication :p
09:24:50 <peter1138> Thought so.
09:25:30 <peter1138> NRT draws a base... road sprite.
09:26:40 <DorpsGek_II> [OpenTTD/OpenTTD] TrueBrain updated pull request #7270: Introduce CMake (and removing all other project-related code) https://git.io/fhbqc
09:26:45 <peter1138> Railtypes do it correctly: draw a base plain tile.
09:26:55 <peter1138> TrueBrain, is it ready for merging yet? :)
09:27:12 <TrueBrain> I am validating that as we speak :)
09:27:17 <peter1138> \o/
09:28:00 <TrueBrain> some things still need fixing .. like debian dependencies
09:28:07 <TrueBrain> and installing of a linux menu entry
09:28:16 <TrueBrain> but .. we can do that later, I guess .. we have till next release :P
09:31:10 <andythenorth> more coffee?
09:31:19 <andythenorth> is coffee rehydrating?
09:36:20 <TrueBrain> right, I think we will be dropping Jessie support btw :P
09:36:32 <TrueBrain> CMake 3.0 .. lol
09:39:13 <DorpsGek_II> [OpenTTD/OpenTTD] TrueBrain updated pull request #7270: Introduce CMake (and removing all other project-related code) https://git.io/fhbqc
09:42:02 *** arikover has quit IRC
09:43:15 *** synchris has joined #openttd
09:43:26 <DorpsGek_II> [OpenTTD/CompileFarm] TrueBrain opened pull request #32: Add: support CMake for release builds too https://git.io/fjm3s
09:43:47 <TrueBrain> okay .. after I can merge that PR, I can test to see if CMake still produces release binaries :)
09:44:14 <TrueBrain> if that works, I think the CMake PR is ready for review / merge :D \o/
09:46:32 <peter1138> Nice of that guy to come along and review it last week.
09:46:40 <TrueBrain> very much so :)
09:49:16 <TrueBrain> What was a bit funny to me, that clearly it is not normal to support old platforms out of the box .. seems we are a bit weird there :P
09:49:42 <peter1138> Debian don't support Jessie now, anyway.
09:49:59 <TrueBrain> yeah, but even Stretch's default CMake is too old for all the tricks we want to use :P
09:50:09 <TrueBrain> so is Ubuntu 16.04
09:50:40 <TrueBrain> but yeah .. we now support cmake 3.5+, which is fine by me
09:50:53 <TrueBrain> just means library detection is a bit more odd
09:51:52 *** arikover has joined #openttd
09:52:35 *** synchris has quit IRC
09:56:37 <TrueBrain> peter1138: bit slow, but is 7316 a change, or a fix? :)
09:56:59 <DorpsGek_II> [OpenTTD/OpenTTD] TrueBrain approved pull request #7316: Change: Always report error when ordering a road vehicle to wrong type of road stop. https://git.io/fjm3C
09:57:34 <peter1138> Not really sure.
09:57:34 <DorpsGek_II> [OpenTTD/CompileFarm] TrueBrain merged pull request #32: Add: support CMake for release builds too https://git.io/fjm3s
09:57:52 <peter1138> The intention is if you try to order a vehicle to the wrong type of station, it ignores it.
09:58:18 <peter1138> This is okay if you try to order a road vehicle to a train station, for example.
09:58:31 <peter1138> But it gets inconsistent when ordering a bus to a truck stop.
09:59:03 <TrueBrain> so you fix this inconsistency, not? :D
09:59:07 <TrueBrain> but yeah, up to you :)
09:59:29 <peter1138> That is also ignored, unless it's an articulated bus, where trying to send it to a non-drive-through stop gives an error box
09:59:50 <TrueBrain> E_TOO_COMPLICATED :D
10:00:49 <peter1138> Or a bus to a tram stop.
10:00:55 <peter1138> That currently gives a warning too.
10:02:30 <TrueBrain> having trucks and buses was a mistake :P
10:02:49 <peter1138> :P
10:02:49 *** Supercheese has quit IRC
10:02:59 <peter1138> passenger and freight trams too
10:03:36 <TrueBrain> yeah ...
10:03:39 <TrueBrain> remove them you say?
10:03:41 <peter1138> Anyway, the change makes it consistent.
10:03:41 <TrueBrain> no more pax?
10:03:46 <peter1138> :D
10:03:52 <peter1138> coal trains only
10:04:03 <nielsm> hm the main reason we don't have signals in bridges/tunnels is the wormhole tech, right?
10:04:13 <nielsm> i.e. map storage of the signals
10:04:24 <peter1138> nielsm, there's "nowhere" to store the signal data/state, yes.
10:04:45 <peter1138> Also it's difficult to place them inside tunnels
10:05:03 <TrueBrain> we once had someone working on seeing underground, so you could build curved tunnels etc
10:05:08 <TrueBrain> was a fun idea
10:05:08 <Alberth> not to mention resolve a jam there
10:05:08 <peter1138> JGRPP has the patch that provides virtual signals
10:06:51 <peter1138> https://devs.openttd.org/~smatz/3d/tunnel.png
10:06:54 *** synchris has joined #openttd
10:07:00 <peter1138> https://devs.openttd.org/~smatz/3d/tunnel2.png
10:07:25 <peter1138> https://devs.openttd.org/~smatz/3d/tunnel.ogg < even a video :p
10:07:50 <peter1138> nielsm, 410KB patch if you want to resurrect that :D
10:08:17 <TrueBrain> oeh, OSX 10.14 is available for CI
10:11:18 <TrueBrain> Task 'Build' duration has increased by 6s (1.45%) in the last 14 days
10:11:19 <TrueBrain> :D
10:12:28 <peter1138> We've been using more std:: stuff in the last 14 days.
10:13:02 <peter1138> Urgh, current drawing of just trams also draws a plain road tile underneath :p
10:14:01 <TrueBrain> haha, no more findversion.sh ofc .. oops .. things are breaking now :D
10:19:56 <DorpsGek_II> [OpenTTD/OpenTTD] TrueBrain updated pull request #7270: Introduce CMake (and removing all other project-related code) https://git.io/fhbqc
10:20:49 <peter1138> Hmm, okay, I see why we draw an old-style road underneath new roads: pavement.
10:21:32 <peter1138> That feels ugly though :(
10:23:51 <andythenorth> https://wiki.openttd.org/Frosch/ButGroundTypes
10:25:51 <peter1138> That UI is a little extreme.
10:27:24 <andythenorth> innit
10:28:20 <peter1138> Hmm, wait, there's already a pavement sprite.
10:29:13 <peter1138> Huh.
10:29:14 <DorpsGek_II> [OpenTTD/OpenTTD] TrueBrain updated pull request #7270: Introduce CMake (and removing all other project-related code) https://git.io/fhbqc
10:29:27 <peter1138> So it draws an old-style road sprite for no pavements.
10:29:31 <TrueBrain> finding bugs in the CD part .. so happy I test this stuff :D
10:29:32 <peter1138> And a new pavement sprite if there are pavements.
10:29:35 <peter1138> That's... funny.
10:29:44 <peter1138> Also it draws two new road sprites!?
10:30:52 <peter1138> Hmm, that might be the road type being wrong.
10:31:45 <DorpsGek_II> [OpenTTD/OpenTTD] TrueBrain updated pull request #7270: Introduce CMake (and removing all other project-related code) https://git.io/fhbqc
10:32:15 <peter1138> Hmm, I guess second road sprite can be an overlay, as it is in some cases.
10:35:49 *** arikover has quit IRC
10:35:57 <TrueBrain> "c++: error: unrecognized command line option '-flifetime-dse=1'"
10:35:59 <TrueBrain> BOOOEEEEEE
10:37:13 <andythenorth> fuck me nml is slow
10:37:22 <andythenorth> tweaking sprites is ridiculous
10:37:44 <andythenorth> maybe I decompile with grfcodec, edit the sprites, recompile, then copy them back to my repo
10:39:45 <peter1138> I guess linking in the sprites separately is out of the question.
10:39:57 <andythenorth> there's a cache, but yeah
10:40:18 <peter1138> If the code doesn't need to change, it should be able to just replace the sprites.
10:40:41 <andythenorth> yes
10:40:51 <andythenorth> that's not how nmlc works afaict
10:41:51 <planetmaker> o/
10:42:29 <DorpsGek_II> [OpenTTD/CompileFarm] TrueBrain opened pull request #33: Fix: put docs also in build/bundles with CMake sources https://git.io/fjm3D
10:45:14 *** synchris has quit IRC
10:49:19 <Artea> dammnnnnnnnnnn
10:49:28 <Artea> I just shutdown the server by mistake
10:49:36 <Artea> f****
10:51:54 *** synchris has joined #openttd
10:54:03 <peter1138> Oops
10:54:30 <peter1138> I feel we should not be drawing a base road sprite for NRT roads.
10:54:31 <peter1138> Hmm.
10:55:42 <DorpsGek_II> [OpenTTD/CompileFarm] TrueBrain merged pull request #33: Fix: put docs also in build/bundles with CMake sources https://git.io/fjm3D
10:56:05 <peter1138> Also yay, I found my mini battery charger.
10:57:19 <peter1138> image += 19
10:57:21 <peter1138> Love it.
11:00:03 <andythenorth> peter1138: it's not due to some crap with rail crossings is it?
11:00:10 <andythenorth> I think that's old news
11:00:20 <peter1138> Nah. Snow.
11:03:02 <LordAro> TrueBrain: https://i.imgur.com/TQ84X2E.png
11:03:25 <peter1138> Oh, the pavement sprite is a default sprite? o_O
11:04:13 <DorpsGek_II> [OpenTTD/website] LordAro updated pull request #80: General layout refactor https://git.io/fjmIS
11:05:27 <peter1138> Oh fudge.
11:05:54 <peter1138> It was a newgrf overwriting it, bad newgrf.
11:07:09 *** Alberth has left #openttd
11:13:04 <TrueBrain> LordAro: yeah, that is in the wrong PR :P
11:13:48 <LordAro> eh, i was going to do it anyway
11:14:05 <TrueBrain> basically, I read your PR as a draft PR (at least, this is how you represent it)
11:14:13 <TrueBrain> so I wanted to fast-track the other PR to at least fix something :D
11:14:32 <TrueBrain> so possibly you can push that last commit to his branch? ;)
11:14:49 <LordAro> nah, i've changed the names of everything
11:14:55 <LordAro> i can probably use the webeditor though
11:15:02 <TrueBrain> hmm .. Windows Regression hangs on release builds ...
11:15:06 <TrueBrain> that doesn't sound good
11:16:32 <TrueBrain> why is it running the regression in the first place ..
11:16:45 <DorpsGek_II> [OpenTTD/website] LordAro updated pull request #79: Fix: make the size of the fast-download-header content aware https://git.io/fjqK7
11:16:52 <LordAro> TrueBrain: happy? :p
11:18:22 <TrueBrain> if you can add the screenshot and a commit there, yes :)
11:18:28 <TrueBrain> now it looks a bit rude :P
11:18:54 *** Romazoon has joined #openttd
11:18:57 <DorpsGek_II> [OpenTTD/OpenTTD] TrueBrain updated pull request #7270: Introduce CMake (and removing all other project-related code) https://git.io/fhbqc
11:20:23 <Romazoon> just wanted to drop a thank you, for fixing the "newobject disapearing like HQ when bought by another company"
11:20:25 <DorpsGek_II> [OpenTTD/website] LordAro commented on pull request #79: Fix: make the size of the fast-download-header content aware https://git.io/fjmsT
11:20:55 <TrueBrain> tnx a bunch LordAro :)
11:21:38 <Romazoon> and has anyone issue with the online download content today ? the download just don t start ( i can see the list of newgrf, i can select them for download, but then the download stay forever at 0 )
11:21:51 <DorpsGek_II> [OpenTTD/website] TrueBrain approved pull request #79: Fix: make the size of the fast-download-header content aware https://git.io/fjmsI
11:21:57 <DorpsGek_II> [OpenTTD/website] TrueBrain merged pull request #79: Fix: make the size of the fast-download-header content aware https://git.io/fjqK7
11:22:19 <Artea> I just downloaded some NewGRF and worked
11:22:42 <Romazoon> ok, then i ll find out what wrong on my side, ty ;)
11:23:00 <TrueBrain> Romazoon: you can try to visit http://binaries.openttd.org/binaries/ and check if it redirects you to a file listing
11:23:07 <TrueBrain> (it will go to another URL)
11:23:18 <TrueBrain> at least that is the URL it tries to use on the background)
11:25:09 <LordAro> didn't samu say something about the one of the mirrors being "blank" on its index page?
11:25:28 <DorpsGek_II> [OpenTTD/CompileFarm] TrueBrain opened pull request #34: Fix 97e2532: docs docker still broke with CMake sources https://git.io/fjms3
11:25:39 <TrueBrain> some are, yes
11:25:43 <TrueBrain> others are not
11:25:50 <TrueBrain> but it always redirects, and always returns 200 (or at least, it should)
11:25:54 <DorpsGek_II> [OpenTTD/CompileFarm] LordAro approved pull request #34: Fix 97e2532: docs docker still broke with CMake sources https://git.io/fjmss
11:26:03 <LordAro> fair
11:26:12 <TrueBrain> just a simple way to validate connections are working :D
11:27:11 <Romazoon> so downloading something from those link worked
11:27:23 <TrueBrain> so at least it is not your connection Romazoon :)
11:27:48 <TrueBrain> I dont really know what to try otherwise to debug this further, honestly
11:28:10 <TrueBrain> there are several mirrors .. possibly one of them is giving you grief
11:28:29 <Romazoon> meanwhile, i letted the "download grf window" in background...and it actually ended up downloading the newgrf i was trying to download...never saw such a lag happen when downloading newgrf (talking of minuts here)
11:29:09 <TrueBrain> temporary hickup?
11:29:15 <Romazoon> so there is no problem anymore...i ll blame my poor connection
11:29:38 <LordAro> the list of content is getting fairly large..
11:29:45 <planetmaker> or it was a 32bpp 4x set which takes 100s of megabytes :)
11:30:04 <Romazoon> it was only one new grf, about 6Mo (new version of RUKTS)
11:30:20 <planetmaker> ok :)
11:30:24 <TrueBrain> and it shouldnt get stuck at 0, even with those large ones
11:30:50 <Artea> planetmaker: I shutdown server by mistake :(
11:30:58 <Romazoon> but i tried a random other, and it also got stuck at 0, so that s why i thought maybe something goign on at the fruit store
11:31:08 <Artea> didnt checked the time and didnt copy the info of companies at time :(
11:31:14 <Artea> dedicated needs logs
11:31:16 <TrueBrain> LordAro: https://www.staging.openttd.org/ <- that doesnt look good
11:32:04 <LordAro> hrm.
11:32:07 <andythenorth> tried realism for cryo tanks, no like https://dev.openttdcoop.org/attachments/download/9398/nah_2.png
11:32:12 <planetmaker> Artea, a dedicated server only needs regulary autosaves for such cases
11:32:20 <planetmaker> you need logs only when you want to identify griefers
11:32:41 <Artea> yeah
11:32:42 <LordAro> TrueBrain: oh, because of the extra padding in download-fast-2
11:32:47 <LordAro> i don't have those anymore in my branch :)
11:32:54 <TrueBrain> :D
11:33:01 <TrueBrain> would you mind fixing that too? (sorry :P)
11:33:11 <TrueBrain> in general, it is going to be a lot easier I think if we do these one by one
11:33:13 <TrueBrain> instead of a big-bang
11:33:13 <LordAro> yeah, sure
11:33:23 <LordAro> well, maybe
11:33:32 <LordAro> a lot of the html changes have to be all at once
11:33:59 <TrueBrain> I guess
11:34:08 <TrueBrain> hmm .. MSVC is being a dick
11:35:16 <DorpsGek_II> [OpenTTD/website] LordAro opened pull request #81: Fix: Remove extra padding-top for download headers https://git.io/fjms4
11:35:31 <LordAro> sorry, webeditor doesn't let me create a branch in my fork
11:35:36 <LordAro> silly thing
11:37:19 <TrueBrain> LordAro: padding of 5px looks odd; mind if I change it to 9px or so?
11:37:22 <LordAro> sure
11:37:34 <LordAro> again, looks better for me :p
11:37:44 <LordAro> because of some-random-other-change i did
11:37:58 <LordAro> i'll see if i can split the commits up a bit
11:38:26 <DorpsGek_II> [OpenTTD/website] TrueBrain updated pull request #81: Fix: Remove extra padding-top for download headers https://git.io/fjms4
11:38:37 <TrueBrain> if we can at least merge parts of it, that would be nice, yes
11:39:04 <LordAro> TrueBrain: why not all? :p
11:39:11 <LordAro> TrueBrain: now neither of us can approve that PR :p
11:39:26 <TrueBrain> "why not all?"
11:39:52 <DorpsGek_II> [OpenTTD/website] TrueBrain commented on pull request #81: Fix: Remove extra padding-top for download headers https://git.io/fjms0
11:40:03 <TrueBrain> what do you mean, sorry?
11:40:35 <LordAro> just merge the PR as-is, what could possibly go wrong? :p
11:41:42 *** HerzogDeXtEr has joined #openttd
11:41:45 <TrueBrain> your WIP PR?
11:41:54 <TrueBrain> sounds like a bad idea to merge something with a commit WIP in there
11:42:21 <TrueBrain> owh, that is what you meant, so, I am being slow today
11:42:34 <LordAro> you got there eventually <3
11:42:34 <TrueBrain> basically, it is how you present your PR .. it reads to me: parts are done, other parts need attention
11:42:54 <TrueBrain> but that might purely be how you present it .. hard to read these kind of PRs :D
11:43:05 <DorpsGek_II> [OpenTTD/website] TrueBrain approved pull request #81: Fix: Remove extra padding-top for download headers https://git.io/fjmsu
11:43:34 <DorpsGek_II> [OpenTTD/website] TrueBrain merged pull request #81: Fix: Remove extra padding-top for download headers https://git.io/fjms4
11:43:57 <DorpsGek_II> [OpenTTD/OpenTTD] TrueBrain updated pull request #7270: Introduce CMake (and removing all other project-related code) https://git.io/fhbqc
11:44:16 <DorpsGek_II> [OpenTTD/CompileFarm] TrueBrain merged pull request #34: Fix 97e2532: docs docker still broke with CMake sources https://git.io/fjms3
11:44:46 <TrueBrain> getting there with cmake :D
11:44:49 <TrueBrain> think I fixed all bugs now
11:46:18 <LordAro> all of them?
11:46:38 <TrueBrain> yes
11:46:39 <TrueBrain> after this
11:46:40 <TrueBrain> we are done
11:46:42 <TrueBrain> no more development
11:46:44 <TrueBrain> finished
11:46:45 <TrueBrain> fin
11:46:52 <LordAro> excellent
11:53:08 <andythenorth> win win
11:53:54 <peter1138> So we can start on OpenTTD 2!
11:54:14 <peter1138> I'm confused over nrt sprite drawing now :(
11:54:16 <TrueBrain> first a vision peter1138, you know better
11:54:42 <TrueBrain> *holds up a sarcasm sign, in case that wasn't clear*
11:57:25 <TrueBrain> okay, MSVC regression works again, good :)
11:58:56 <andythenorth> there's no sarcasm emoji
11:58:59 <andythenorth> :P is the closesr
11:59:28 <TrueBrain> :P
11:59:42 <TrueBrain> okay, and docs also work now
11:59:42 <TrueBrain> sweet
12:02:45 <DorpsGek_II> [OpenTTD/website] LordAro updated pull request #80: General layout refactor https://git.io/fjmIS
12:04:03 <TrueBrain> andythenorth: http://devs.openttd.org/~truebrain/openttd-20190413-cmake-g798491121d-macosx.dmg <- would you mind testing this?
12:04:13 <TrueBrain> report anything that is incorrect pretty plz :)
12:04:15 *** synchris has quit IRC
12:05:34 *** Samu has joined #openttd
12:05:55 <andythenorth> TrueBrain: works fine
12:05:56 <Samu> hi
12:07:08 * andythenorth BIAB
12:07:21 <DorpsGek_II> [OpenTTD/OpenTTD] michicc approved pull request #7501: Use std::sort() when it's possible https://git.io/fjmsX
12:08:11 *** synchris has joined #openttd
12:08:13 <TrueBrain> andythenorth: sweet, tnx :)
12:09:58 <Samu> meh, stuff closed again
12:10:25 <TrueBrain> meh; you wasted my time again :(
12:12:29 <LordAro> Samu: you really need to stop opening PRs for every little idea that pops into your head
12:12:37 <LordAro> you will end up getting blocked
12:13:15 <TrueBrain> I want a rule, that people can only have 2 PRs open. They can decide which to close. That would greatly help.
12:13:34 <TrueBrain> ofc devs can ignore that rule ;)
12:13:58 <LordAro> not sure how well that would work out in the long run
12:14:01 <TrueBrain> hmm .. publish a Windows installer for nightlies, or keep only the .zip?
12:14:55 <LordAro> probably just the zip for nightlies?
12:15:04 <Samu> because the custom profile is already a requirement when creating AI settings
12:15:07 <LordAro> but if it's cheap to generate, no reason why not
12:15:18 *** Samu was kicked by LordAro (Not here)
12:15:35 <TrueBrain> it is only disk-space, basically
12:15:35 <LordAro> oops.
12:16:16 <peter1138> Why is custom a requirement?
12:17:24 <DorpsGek_II> [OpenTTD/OpenTTD] TrueBrain updated pull request #7270: Introduce CMake (and removing all other project-related code) https://git.io/fhbqc
12:17:49 <TrueBrain> pretty sure he cannot hear you
12:17:55 <peter1138> Oh.
12:17:59 <TrueBrain> :D
12:18:03 <LordAro> i did a thing
12:18:05 <peter1138> He can read logs.
12:18:25 <LordAro> i'm not sure what "custom profile" is in this context either, all the difficulty setting stuff got removed, right?
12:18:36 <peter1138> LordAro, he's confused about what the setting is for.
12:18:43 <TrueBrain> I am sure that what-ever it is, the PR was the place to talk about it
12:18:56 <peter1138> But it's closed ;)
12:18:57 <TrueBrain> I have enough of those empty PRs without context changing something random
12:19:10 <LordAro> we could add a PR template
12:19:20 <LordAro> might help encourage people to explain themselves a bit more
12:19:30 <TrueBrain> he is the only one not doing it ..
12:19:39 <TrueBrain> not sure we want to tailor a policy around 1 person
12:20:02 <TrueBrain> I like how people don't understand the issue template :D
12:20:16 <TrueBrain> but yeah, otherwise, go for it LordAro :) It won't hurt, I guess :)
12:21:01 <DorpsGek_II> [OpenTTD/OpenTTD] TrueBrain commented on pull request #7270: Introduce CMake (and removing all other project-related code) https://git.io/fjmsS
12:21:03 <LordAro> i could suggest that people not understanding the issue template means the template is not clear enough ;)
12:21:09 <TrueBrain> no longer a draft PR, the CMake one :D
12:21:17 <TrueBrain> LordAro: I tend to agree :)
12:21:18 <LordAro> \o/
12:21:19 <DorpsGek_II> [OpenTTD/OpenTTD] SamuXarick commented on pull request #7506: Add: AI/GS Reinstate custom settings profile. https://git.io/fjms7
12:22:20 <TrueBrain> *counts to 10*
12:24:18 <LordAro> hmm, so AIs do have a concept of easy/medium/hard difficulty?
12:24:20 <LordAro> what is it used for?
12:24:34 <TrueBrain> once upon a day the idea was that AIs did something with it
12:24:40 <TrueBrain> to give different types of gameplay
12:24:44 <TrueBrain> of course this totally failed
12:25:03 <TrueBrain> it also used to change how often an AI was allowed to do something
12:25:08 <TrueBrain> not sure if that still exists :D
12:25:22 <peter1138> It changes the start date interval (yes, another place!)
12:25:30 <peter1138> And I believe it tells the AI how to behave.
12:25:56 <LordAro> where is it set though? i don't see it in the AI settings
12:26:18 <peter1138> It's in AI competitor stuff, and CUSTOM isn't an available option.
12:26:27 <peter1138> "custom" doesn't make sense.
12:26:36 <peter1138> So SP_CUSTOM should actually be removed.
12:26:59 <DorpsGek_II> [OpenTTD/OpenTTD] PeterN commented on pull request #7506: Add: AI/GS Reinstate custom settings profile. https://git.io/fjmsA
12:27:09 <peter1138> s/actually/probably/
12:27:34 <LordAro> oh i see it, buried in the settings
12:27:45 <DorpsGek_II> [OpenTTD/OpenTTD] TrueBrain updated pull request #7270: Introduce CMake (and removing all other project-related code) https://git.io/fhbqc
12:28:14 <LordAro> could probably check to see whether any AI actually does anything with that setting, and remove entirely if not?
12:28:25 <TrueBrain> +1
12:28:55 *** Romazoon has quit IRC
12:33:36 <peter1138> Yes, it's probably useless really.
12:33:59 <peter1138> It's hard enough writing an AI that'll work, let alone trying to make it easier or harder. I think?
12:34:53 *** Samu has joined #openttd
12:34:54 <TrueBrain> grrr, why can't I fix this bug .. it keeps making md5sums of the sha256 file :P
12:35:03 <TrueBrain> peter1138: that is what we found out, yes
12:36:47 <DorpsGek_II> [OpenTTD/OpenTTD] TrueBrain updated pull request #7270: Introduce CMake (and removing all other project-related code) https://git.io/fhbqc
12:37:29 *** synchris has quit IRC
12:38:46 <michi_cc> TrueBrain: Get it to make a CRC32 of the md5sum file :p
12:39:08 <michi_cc> Ultimate security :)
12:40:27 *** synchris has joined #openttd
12:44:30 <TrueBrain> :D
12:45:22 *** synchris has quit IRC
12:46:35 *** synchris has joined #openttd
12:46:59 <DorpsGek_II> [OpenTTD/OpenTTD] TrueBrain updated pull request #7270: Introduce CMake (and removing all other project-related code) https://git.io/fhbqc
12:47:56 <DorpsGek_II> [OpenTTD/OpenTTD] SamuXarick commented on pull request #7505: Change: Permit autoreplacing a plane with a helicopter or vice versa. https://git.io/fjmGk
12:48:54 <Samu> I'm sad
12:49:00 *** Smedles has quit IRC
12:50:29 *** Smedles has joined #openttd
12:55:42 <Samu> there is no difference in replacing a small plane with a large plane to replacing a helicopter with a plane if 7502 is implemented
12:56:24 <Samu> if one is permited, the other should be too
13:00:50 <DorpsGek_II> [OpenTTD/OpenTTD] SamuXarick commented on pull request #7505: Change: Permit autoreplacing a plane with a helicopter or vice versa. https://git.io/fjmGG
13:05:32 <DorpsGek_II> [OpenTTD/OpenTTD] PeterN commented on pull request #7505: Change: Permit autoreplacing a plane with a helicopter or vice versa. https://git.io/fjmG8
13:08:37 <Artea> nice
13:08:55 <Artea> installed NewGRF of Ships
13:09:03 <Artea> pretty nice ones there
13:09:29 <TrueBrain> some people are awesome in art :)
13:09:49 <TrueBrain> happy we have people that contribute stuff like that indeed :)
13:09:54 <Samu> peter1138, I had no other choice but to make a PR about it, to attend your request
13:10:01 <Samu> now it's closed :(
13:10:42 <TrueBrain> so what is your point.. we are not allowed to disagree with your opinion? don't be a drama queen please....
13:10:54 <TrueBrain> it is getting really old
13:11:52 <Samu> if you disagree with 7505, you're also disagreeing with 7502, pretty much
13:12:23 <Samu> I knew i should have gone with 1 PR
13:13:47 <TrueBrain> it would still have been a bad idea and still be denied
13:13:48 *** synchris_ has joined #openttd
13:14:02 <TrueBrain> how ever you dress up something, a bad idea is a bad idea
13:14:24 <TrueBrain> you will not get better at this if you keep resisting everything that is being said to you
13:14:25 <peter1138> It was a bad idea hidden in a GUI PR, just as much as a bad idea by itself.
13:14:49 <peter1138> The fact that you opened a PR without explaining anything about WHY you think an explicit check should be removed makes it worse.
13:15:01 <peter1138> It's not like that check is there by accident.
13:15:04 <TrueBrain> people are getting rreeeeeaaalllyyyyy tired of how you act Samu .. that mostly ends in a block .. just be aware of how you act reflects on us
13:15:27 *** synchris has quit IRC
13:15:53 <TrueBrain> if you don't change how you communicate, things are not getting any better
13:17:01 <peter1138> Half a mind to close 7503 as well.
13:17:10 <peter1138> Erm
13:17:14 <peter1138> Not that one. 7502.
13:17:36 <TrueBrain> those numbers all look alike :p
13:17:44 <peter1138> Quite. They're all similar subjects :)
13:22:08 *** synchris_ has quit IRC
13:24:18 <peter1138> Hmm, yeah, this road type has the original road visible underneath :/
13:25:52 <peter1138> Complex :D
13:27:38 <peter1138> Well, I'll finished deduplicating code first, then deal with it.
13:29:50 <Artea> Im sad
13:30:04 <Artea> turning off the dedicated server made me horrible sad
13:30:20 <peter1138> Can't you just turn it on again?
13:30:28 <Artea> it isnt the same
13:30:35 <peter1138> ... why not?
13:30:36 <Artea> it was already over 2100 years
13:30:44 <peter1138> Did you not have autosaves on?
13:30:48 <Artea> no
13:31:01 <peter1138> And nobody has a client-side save?
13:31:14 <Artea> not at that state
13:31:21 <peter1138> I have a save from 2086.
13:31:29 <peter1138> But that was a couple of days ago.
13:31:35 <Artea> yeah
13:31:42 <Artea> well
13:31:53 <Artea> at least gave me an idea of how things turns out
13:32:37 <Artea> cities becomes astronomical huge
13:35:07 <Artea> also peter
13:35:17 <Artea> added NewGRF
13:35:47 <Artea> for ships and road vehicles
13:35:47 <DorpsGek_II> [OpenTTD/OpenTTD] JGRennison commented on issue #7496: Crashes on start - malloc(): invalid next size (unsorted) https://git.io/fjmGj
13:35:53 <Artea> which is nice feature
13:39:43 <Eddi|zuHause> <TrueBrain> I think it is reversed: he has to give a ationale why we would WANT this <-- i'm not Samu (i hope), but i kinda understand the reason "people don't understand small vs. large plane". however, i think that approach is wrong on at least 3 different levels
13:41:10 <peter1138> Eddi|zuHause, this isn't about the particular issue ;)
13:41:28 <Artea> I only notice difference between Large Airports and Hub Airports when playing with pm
13:43:51 <DorpsGek_II> [OpenTTD/OpenTTD] PeterN merged pull request #7316: Change: Always report error when ordering a road vehicle to wrong type of road stop. https://git.io/fhAxC
13:45:20 <Artea> I'm such a noob
13:49:21 <DorpsGek_II> [OpenTTD/OpenTTD] PeterN merged pull request #7501: Use std::sort() when it's possible https://git.io/fjqQt
13:49:35 <peter1138> ^ Getting that out the way as potential for conflicts...
13:50:17 <Eddi|zuHause> peter1138: i probably missed a few discussion subjects while scrolling over it
13:51:54 <TrueBrain> same old same old :p
13:52:07 <TrueBrain> not you, the topics, btw
13:53:16 <peter1138> Eddi|zuHause, it wasn't even that PR ;)
13:53:43 <Eddi|zuHause> ... they all look the same
13:53:48 <peter1138> Quite.
13:54:54 <peter1138> Anyone fancy reviewing #7467/#7464?
13:55:23 <peter1138> #7464 depends on #7467 (otherwise I have to duplicate code again :p)
14:00:09 <peter1138> 172 files changed, 4725 insertions(+), 1418 deletions(-)
14:00:12 <peter1138> NRT at the moment...
14:00:22 <TrueBrain> cmake is doing better :p
14:02:34 <peter1138> 209 files changed, 5148 insertions(+), 1361 deletions(-)
14:02:40 <peter1138> ^ that was before I scrapped subtypes.
14:03:05 <peter1138> Didn't save all that much :/
14:03:19 <peter1138> But simplifies the code anyway
14:03:46 <Eddi|zuHause> @calc 1-4725/5148
14:03:46 <DorpsGek> Eddi|zuHause: 0.0821678321678
14:03:50 <Eddi|zuHause> 8%?
14:04:13 *** nielsm has quit IRC
14:04:13 <peter1138> Well, I just deduplicated a ton of drawing code as well, so not quite fair.
14:04:24 <Eddi|zuHause> @calc 1-(4725+1418)/(5148+1361)
14:04:24 <DorpsGek> Eddi|zuHause: 0.0562298356122
14:05:07 <peter1138> And I just used fix-up so I can't compare pre-dedup
14:05:26 <peter1138> Actually I can, I haven't pu shed yet
14:06:15 <peter1138> 172 files changed, 4773 insertions(+), 1412 deletions(-)
14:06:23 <peter1138> So dedup saved 50 LoC.
14:07:50 <peter1138> More deduping to do though
14:12:37 *** glx has joined #openttd
14:12:37 *** ChanServ sets mode: +v glx
14:22:25 *** supermop_Home has joined #openttd
14:22:28 <supermop_Home> yo
14:42:51 <peter1138> Ah, I probably need to reset flags instead of copying from the defaults.
14:47:08 <peter1138> 172 files changed, 4697 insertions(+), 1420 deletions(-)
14:47:13 <peter1138> Bit more dedup :p
14:47:34 <Eddi|zuHause> you'll get it down to ~10 lines eventually :p
14:47:51 <DorpsGek_II> [OpenTTD/OpenTTD] PeterN updated pull request #6811: Feature: Add NotRoadTypes (NRT) https://git.io/vhlfg
14:48:51 <peter1138> I didn't know about docklands101.grf
14:50:18 <supermop_Home> its a cutie
14:51:05 <peter1138> Funny when two AIs build road in parallel.
14:52:53 <peter1138> Hmm, it seems to define electric roads though.
14:53:37 <Eddi|zuHause> roads with catenary, or roads with embedded induction surface?
14:55:30 <reldred> hang on, did I read that pull request correctly, has NRT just hid trunk? Now that's neat to see considering how long I've been on hiatus :)
14:55:53 <Eddi|zuHause> no
14:56:08 <Eddi|zuHause> a "pull request" has not hit trunk yet
14:56:16 <Eddi|zuHause> it would say "merged pull request" in that case
14:56:55 <reldred> ahhh yeah, just reading through it now
14:57:02 <reldred> Still. Nice to see progress.
14:57:02 <supermop_Home> peter1138 it has roads for electric trucks
14:57:11 <supermop_Home> and trolleybusses
14:57:45 <peter1138> There's a "Road Construction" type
14:57:55 <peter1138> Which has catenary.
15:00:20 <DorpsGek_II> [OpenTTD/website] auge8472 commented on pull request #80: General layout refactor https://git.io/fjmZj
15:03:03 <peter1138> reldred, test it though ;)
15:03:17 <peter1138> reldred, and comment on the PR ;)
15:03:23 <peter1138> more eyes, more reviews, more likely...
15:05:05 <reldred> Hah, I've long since lost the obsessive eye for details I used to have. I'm far too much of a filfthy casual. Also got no bloody build environment on this thing yet. Bought the damn thing to run Linux on it and never bothered to check whether the LTE card was actually working in Linux or not.
15:05:15 <reldred> I mean I did just install Cygwin
15:05:38 <peter1138> So now using Windows?
15:05:45 <reldred> Sigh, I'm guessing the usual subjects would have some binaries prepped though wouldn't they?
15:06:10 <reldred> It's a mixture. Some machines running niche tasks are on Linux, but a lot of windows these days, yes.
15:06:21 <peter1138> VS 2017/2019 is free these days ;)
15:06:36 <reldred> True, but ofcourse I'd then have to learn how to use it :P
15:06:44 <peter1138> But actually, I use Windows but develop inside a Linux VM :-)
15:07:29 <reldred> But no, I bought a little surface go to be my travel companion as the gpd pocket was starting to annoy me. Didn't think to investigate LTE support first
15:07:42 <peter1138> Hmm :/
15:07:53 <reldred> Yeah some new fancy quallcomm chip
15:08:03 <reldred> Tablet is nice though.
15:08:54 <DorpsGek_II> [OpenTTD/OpenTTD] michicc approved pull request #7467: Codechange: Replace duplicated code with TileArea::Expand() https://git.io/fjmnv
15:12:12 <peter1138> Thanks :D
15:12:36 <DorpsGek_II> [OpenTTD/OpenTTD] PeterN merged pull request #7467: Codechange: Replace duplicated code with TileArea::Expand() https://git.io/fjLmR
15:14:56 <DorpsGek_II> [OpenTTD/OpenTTD] PeterN updated pull request #7464: Fix: Industry coverage area is no longer rectangular. https://git.io/fjIo3
15:21:29 <DorpsGek_II> [OpenTTD/OpenTTD] michicc approved pull request #7464: Fix: Industry coverage area is no longer rectangular. https://git.io/fjmnO
15:23:37 <andythenorth> is cat?
15:23:59 <Eddi|zuHause> not here
15:25:11 <Eddi|zuHause> youtube apparently only knows 2 topics now, game of thrones and star wars
15:25:11 <TrueBrain> is producing a win32 still useful, I wonder ..
15:25:21 <Eddi|zuHause> TrueBrain: people will request it
15:25:33 <TrueBrain> does Microsoft still support it
15:25:36 <LordAro> TrueBrain: https://github.com/auge8472/OpenTTD-website/commits/webrework so now what do we do? :>
15:25:49 <Eddi|zuHause> when did that ever stop anyone? :p
15:25:50 <TrueBrain> LordAro: compete, duh
15:25:54 <peter1138> Does it run on Windows XP?
15:26:27 <TrueBrain> LordAro: choice is yours, don't ask me what to do with it :P
15:26:54 <milek7> afaik XP requires older toolchain, v141_xp
15:28:00 <DorpsGek_II> [OpenTTD/OpenTTD] PeterN merged pull request #7464: Fix: Industry coverage area is no longer rectangular. https://git.io/fjIo3
15:28:19 <LordAro> TrueBrain: keep for now, rereview after Win7 EoL, imo
15:28:37 <TrueBrain> its so annoyingggggggggg
15:28:44 <LordAro> hehe
15:29:15 <peter1138> Change for change sake ;)
15:29:45 <Eddi|zuHause> maybe lack of support from openttd is what makes some people finally switch over?
15:30:39 <Markk> Of course
15:30:45 <Eddi|zuHause> the majority of people who still use 32bit OS will probably do that on a 64bit system anyway
15:31:07 <Eddi|zuHause> but you will hear from the other 300 people
15:31:12 <Markk> The security flaws, unavailability of updates and compability issues is not enough.
15:31:26 <Markk> It's the unability to play OpenTTD that makes it!
15:31:58 <Eddi|zuHause> Markk: more likely is that they stay with an older OpenTTD, though
15:32:39 <Markk> That's true, too dangerous to connect to the internet to download a newer version!
15:32:43 <Markk> :D
15:33:25 <Eddi|zuHause> i know a person who never connects his computer to the internet, because the instant he would do that, his cracked photoshop would stop working
15:33:50 <Markk> Oh, poor soul!
15:35:27 <DorpsGek_II> [OpenTTD/OpenTTD] TrueBrain updated pull request #7270: Introduce CMake (and removing all other project-related code) https://git.io/fhbqc
15:36:15 <Eddi|zuHause> meanwhile: https://www.youtube.com/watch?v=pLwYMecqOxY
15:36:16 <TrueBrain> okay .. now win32 shouldn't be overwriting win64 ...
15:36:50 <Markk> Eddi|zuHause: I must ask you something, I've seen your nick for at least 10 years in here. Are you ever not in "zu House"?
15:37:00 <Eddi|zuHause> yes
15:37:16 <Eddi|zuHause> @seen Eddi|nichzuhause
15:37:16 <DorpsGek> Eddi|zuHause: Eddi|nichzuhause was last seen in #openttd 1 year, 38 weeks, 3 days, 3 hours, 11 minutes, and 6 seconds ago: <Eddi|nichZuHause> everyone knows jesus was american
15:37:29 <Markk> Fascinating
15:37:37 <TrueBrain> good quote
15:38:22 <Markk> Oh, so you've been like the girl at Frizels house, and stuck there for more than 1.5 years?
15:38:37 <Markk> Fritzels*
15:38:41 <Eddi|zuHause> i'm not austrian
15:38:47 <Markk> Oh, without an e as well
15:39:04 <Markk> I didn't say that you were, just stuck in the house part.
15:39:04 <DorpsGek_II> [OpenTTD/website] LordAro commented on pull request #80: General layout refactor https://git.io/fjmn8
15:39:07 <Markk> :)
15:39:30 <LordAro> Markk: i feel like that was 15 years
15:39:42 <Markk> A decimal here and there...
15:39:46 <andythenorth> what if I could paint sprites directly in OpenTTD?
15:39:51 <andythenorth> then it wouldn't matter how slow nmlc is
15:40:02 <Eddi|zuHause> andythenorth: then the world would implode
15:40:16 <andythenorth> as long as we don't add an email client, we're ok
15:40:45 <andythenorth> it's soooooo achingly slow
15:40:55 <andythenorth> and I can't do a partial compile for trains like I can for FIRS
15:41:13 <andythenorth> FIRS there's a single-industry compile flag, which takes about 15 seconds
15:41:20 <andythenorth> and is very helpful for painting
15:41:32 <Eddi|zuHause> andythenorth: did you get my last test of cets compile? the numbers were like 2 minutes real time (5 minutes single-core), and 1 minute (both single and real time) of that spent in grfcodec just handling the graphics
15:41:52 <andythenorth> and cets is huge?
15:42:04 <Eddi|zuHause> dunno, is 1k vehicles huge?
15:42:18 <andythenorth> ish
15:42:23 <Eddi|zuHause> well, technically more like 3k
15:42:27 <andythenorth> the big sets take a long time
15:42:36 <andythenorth> V was getting 30 minutes or something
15:42:43 <andythenorth> and the czech sets are similar
15:42:50 <peter1138> Modify the sprite aligner tool, eh?
15:43:02 <andythenorth> maybe :D
15:43:03 <andythenorth> those compile times are embarassing :P
15:43:05 <andythenorth> voxels?
15:43:07 <Eddi|zuHause> andythenorth: cets doesn't have 2x and 4x sprites
15:43:24 <Eddi|zuHause> if at all, voxels would increase compile time :p
15:44:18 <andythenorth> xml!
15:45:48 <peter1138> Ok, electric vs non-electric trams is working now :p
15:45:52 <andythenorth> yay
15:45:57 <andythenorth> that was where all this started :)
15:46:03 <andythenorth> I made a patch to make catenary optional
15:46:05 <TrueBrain> lol .. I was looking at NML, never looked how that language looks, and I was like: this looks like YAML, but isn't on some details :P
15:46:10 <andythenorth> then it was suggested to do it properly
15:46:12 <peter1138> Amazing what happens when people play-test and report issues ;)
15:46:12 <TrueBrain> I switch back to IRC, and see andythenorth say: XML
15:46:14 <TrueBrain> it made me giggle
15:46:20 <andythenorth> TrueBrain: NML looks like nothing
15:46:25 <andythenorth> except nml
15:46:37 <andythenorth> it's like json meets xml
15:46:50 <TrueBrain> its some kind of hybrid indeed :)
15:46:58 <peter1138> switch blocks in NML are weird
15:47:04 <TrueBrain> is the language itself bad? (honest question)
15:47:07 <andythenorth> yes
15:47:10 <Eddi|zuHause> no
15:47:12 <andythenorth> it's entirely usable
15:47:14 <andythenorth> but it's bad
15:47:22 <andythenorth> it's bad like javascript it bad
15:47:32 <Eddi|zuHause> it's nothing like javascript
15:47:34 <peter1138> It's okay for simple things.
15:47:39 <peter1138> But lacks templating.
15:47:44 <peter1138> It's not really a language.
15:47:51 <TrueBrain> does it have functions, or macros?
15:47:52 <peter1138> It's a definitions.
15:47:54 <andythenorth> it's weird
15:47:55 <peter1138> -a
15:48:05 <andythenorth> it shows the nfo roots (in the switch block structure)
15:48:11 <andythenorth> but hides away a lot of nfo stuff
15:48:14 <Eddi|zuHause> https://www.destroyallsoftware.com/talks/wat <-- NML is nothing like that
15:48:33 <andythenorth> Eddi|zuHause: have you ever used jquery?
15:48:39 <Eddi|zuHause> no
15:48:49 <andythenorth> ok so jquery plasters a load of useful stuff over javascript
15:48:56 <andythenorth> to make it at least survivable
15:48:59 <TrueBrain> every time I dip my toe into NewGRF, one way or the other, I keep asking myself: what happens if I add lua to OpenTTD :P
15:49:04 <TrueBrain> I can't help myself there
15:49:06 <andythenorth> and jquery adds it's own JS-ish syntax
15:49:18 <peter1138> TrueBrain, it would slow down a lot.
15:49:19 <andythenorth> so you can at least get things done in jquery
15:49:26 <TrueBrain> peter1138: would it, really? :)
15:49:28 <andythenorth> but it just feels all wrong, like there's no desig :P
15:49:29 <Eddi|zuHause> TrueBrain: but then... squirrel?
15:49:37 <peter1138> NewGRF isn't a language, it's a state machine.
15:49:43 <andythenorth> yes
15:49:46 <andythenorth> it's just branches
15:49:48 <milek7> luajit is quite fast
15:49:56 <TrueBrain> like blazing fast :P
15:50:04 <andythenorth> it's just a decision tree
15:50:05 <peter1138> Also, yeah, we have squirrel already...
15:50:14 <TrueBrain> yeah; I still regret picking Squirrel over lua
15:50:18 <andythenorth> lots of what proper languages do just isn't needed for newgrf
15:50:22 <Eddi|zuHause> squirrel-to-lua-jit?
15:50:24 <TrueBrain> but I am not that interested in the debate of one language vs the other
15:50:31 <TrueBrain> I am more interested in what NewGRF really does
15:50:35 <TrueBrain> and I keep having issues with it :D
15:50:39 <TrueBrain> (the understanding part)
15:50:43 <andythenorth> alberth has the same
15:50:52 <andythenorth> he has tried to understand it multiple times to make a replacement
15:50:56 <andythenorth> and can never grok it
15:50:57 <peter1138> TrueBrain, it provides a set of conditions that openttd evaluates.
15:51:10 <Eddi|zuHause> TrueBrain: NewGRF was designed from a TTDPatch point of view
15:51:22 <andythenorth> I find it really easy, what does that say? :P
15:51:22 <TrueBrain> sorry for the most likely annoying or "loaded" questions, but: the conditions and evaluations feel kinda random?
15:51:23 <michi_cc> TrueBrain: NewGRFs are byte code-compiled expression trees (or something like that).
15:51:27 <Eddi|zuHause> TrueBrain: allowing extending stuff without changing a lot of the internals
15:51:47 <TrueBrain> michi_cc: that "or something like that" keeps confusing me :)
15:51:52 <TrueBrain> but I guess my expectations are wrong
15:52:04 <andythenorth> it's just a bunch of switches that resolve to a pointer to a sprite or value
15:52:05 <TrueBrain> I guess what you all 3 now say: it iis nothing with a higher plan
15:52:07 <TrueBrain> it just is
15:52:09 <andythenorth> seems like basics :P
15:52:21 <TrueBrain> so I guess you have to approach each action individually?
15:52:23 <glx> more like assembler
15:52:24 <michi_cc> Well, it's not a pure language by any form. Simple properties can't be called expression trees.
15:52:37 <Eddi|zuHause> TrueBrain: not only each action, also each feature
15:52:38 <andythenorth> did nobody build electronic circuits in school with logic gates?
15:52:40 <TrueBrain> glx: from what I get, it is nothing like assembler
15:52:50 <TrueBrain> assembler has a higher level design
15:52:59 <peter1138> The only resemblance to assembly is that it is byte-coded, heh.
15:53:00 <TrueBrain> Eddi|zuHause: ah .. okay
15:53:11 <peter1138> andythenorth, yes, logic ladders.
15:53:12 <Eddi|zuHause> TrueBrain: like action 0 (properties) for trains is easy, but action 0 for stations is WTF?
15:53:22 <TrueBrain> so I keep thinking wrong about assuming there is some common between all the things
15:53:23 <TrueBrain> fair
15:53:26 <andythenorth> peter1138: did you have those blue preassembled boards with connectors?
15:53:33 <glx> well yeah in it's pure nfo form it's just a bunch of numbers :)
15:53:37 <michi_cc> Stations is really what you have to exclude because it doesn't fit in with anything else.
15:53:52 <andythenorth> stations are fucking crazy
15:54:11 <andythenorth> I understand most of the design at the API level, but fuck stations :P
15:54:13 <Eddi|zuHause> NotStations?
15:54:30 <TrueBrain> so I can just look at it as such: in OpenTTD sometimes it calls to a NewGRF, which returns some values, on which OpenTTD reacts; for each action/feature that "some" is well defined, but between them they do not really share something
15:54:33 <glx> newgrf stations are a hack on a hack no ?
15:54:48 <Eddi|zuHause> newgrf whatever is a series of hacks, mostly
15:54:58 <Eddi|zuHause> just some hacks turned out better than others :p
15:55:01 <michi_cc> There's two main parts (that apply to all other features): A simple property part, that is providing replacement values for stuff in src/tables/*.
15:55:12 <glx> but some hacks are more clean than stations
15:55:13 <andythenorth> TrueBrain: you make a call, you get a value back, the value resolves to a sprite or value
15:55:39 <michi_cc> Secondly, there's an expression/decision tree part which OpenTTD evaluates to resolve certain values. Values can e.g. be "sprite to draw right now" or "train power".
15:55:52 <TrueBrain> gotcha, tnx michi_cc
15:56:27 <TrueBrain> always happy if someone can find the language to use that I can process; not an easy task :D
15:56:30 <michi_cc> Everything else is fluff around it (localized strings, conditional stuff to support parameters and stuff to allocate new entities).
15:56:38 <TrueBrain> but yeah, that explains why I never understood NewGRF .. I expected it to be something else
15:56:45 <andythenorth> it isn't :)
15:57:08 <andythenorth> it's also pretty cool
15:57:22 <andythenorth> as a content API it's bonkers, but on the other hand it works
15:57:30 <Artea> Im using OpenGFX+
15:57:38 <Eddi|zuHause> good for you
15:57:42 <Artea> isnt by you, andy ?
15:57:46 <andythenorth> absolutely not
15:57:57 <andythenorth> I have like one sprite in OpenGFX and that is it
15:57:57 <Artea> I think Im using some NewGRF from you
15:57:57 <glx> it's a collegial work IIRC
15:57:59 <peter1138> TrueBrain, that's why it doesn't translate well to a normal language.
15:58:06 <michi_cc> Some features are split up internally, like e.g. industries have an industry feature and an industry tile feature. This helps with a clearer data structure and separation of concerns and avoids the mess that stations are.
15:58:15 <glx> FIRS maybe Artea ?
15:58:30 <andythenorth> the worst parts of newgrf are
15:58:37 <Artea> probably
15:58:43 <peter1138> michi_cc, i was wondering about adding stationtiles actually
15:58:49 <TrueBrain> peter1138: I still fail to see how that would be the case (but that is my lack of understanding)
15:58:49 <andythenorth> * the spec is full of spiders, which can't be touched because community demand for newgrf compatibility
15:59:00 <peter1138> so the layout of them is the same as for industrytiles etc.
15:59:02 <andythenorth> * it's a PITA to develop for because the toolchains and docs are shit
15:59:10 <peter1138> would make nml station support simpler, i think.
15:59:13 <Eddi|zuHause> peter1138: do we want to rip out the existing station spec with grfv9 and start over?
15:59:16 <glx> write better tools andythenorth ;)
15:59:29 <peter1138> Eddi|zuHause, no, it would stay in place, and we'd ahve legacy and new
15:59:35 <andythenorth> I can't even maintain nml
15:59:48 <peter1138> most of newstations is fine
15:59:48 <Eddi|zuHause> (the interpretation code would stay in place for legacy grfs)
15:59:54 <peter1138> it's just the tile layout stuff which is weird.
16:00:14 <peter1138> so... just add the varaction 3/2/1 tile layout stuff instead
16:00:15 <michi_cc> I'd say NewGRFs are more closely related to functional and not imperative languages, even if it is of course not a functional language by strict CS terms.
16:00:41 <Artea> FISH 0.9.2
16:00:48 <TrueBrain> is NewGRF fully callback driven?
16:00:56 <Eddi|zuHause> yeah, pretty much
16:01:01 <TrueBrain> "pretty much" or yes? :D
16:01:02 <michi_cc> If it's not a static table property, then yes.
16:01:12 <TrueBrain> yeah, okay :)
16:01:20 <Eddi|zuHause> TrueBrain: there's always this one exception :p
16:01:32 <TrueBrain> in that case I would like to hear that exception
16:01:38 <TrueBrain> otherwise it keeps being illusive
16:02:13 <Eddi|zuHause> TrueBrain: there's static stuff, there's calculation stuff that happens on loading, and then there's calculation stuff that happens on callback
16:03:12 <glx> and some stuff on loading can cause desyncs IIRC
16:03:23 <glx> but usually we block that
16:03:30 <Eddi|zuHause> static stuff is action 0 (properties) and 4 (strings), callback stuff is action 3/2/1, and loading stuff is action 6/7/9/D
16:03:49 <michi_cc> And NML, despite having meta language, in its name, isn't being very meta at all. It's only really abstracting two things away: string handling and identifier allocation. Everything else in NML is a simple transformation.
16:03:52 <Eddi|zuHause> i guess action 5/A is also static
16:04:19 <Eddi|zuHause> and whatever was action B? i think it was error handling
16:04:49 <glx> action C are comments, seems silly to put comments in bytecode, but well
16:04:50 <michi_cc> Hmm, okay, I forgot action splitting (i.e. splitting calculations in as many actions as needed to express them).
16:04:56 <TrueBrain> michi_cc: okay, interesting. why does it need to handle identifiers?
16:05:28 <michi_cc> NewGRFs actions are referenced by numbers. The numbers are limited but may be reused when not needed anymore.
16:06:02 <glx> and if you change one, you need to update all others
16:06:17 <glx> better have a tool doing it for you :)
16:06:28 <TrueBrain> why do you need to update all others?
16:06:36 <Eddi|zuHause> michi_cc: i would have expected calculations to be expressed as "advanced varaction 2", is it really split into multiple?
16:06:37 <TrueBrain> is this like GWBASIC?
16:06:45 <TrueBrain> 10: .. 20: .. GOTO 10 ?
16:06:51 <Eddi|zuHause> TrueBrain: yes
16:07:02 <Eddi|zuHause> (in the broadest terms)
16:07:14 <Eddi|zuHause> TrueBrain: that's why there exists nforenum
16:07:53 <michi_cc> Eddi|zuHause: My knowledge may be wrong or outdated, but I though NML calculations could be more complicated that what a single varact can contain.
16:08:07 <andythenorth> they are remarkably unrestricted
16:08:12 <andythenorth> nml expressions are bad crack
16:08:21 <andythenorth> they are really powerful, and solve problems
16:08:29 <andythenorth> but afaict they contribute horribly to achingly slow compiles
16:09:07 <glx> I think the advantage of nml is that you write your complex operation in a natural form, and it's then translated into silly varaction 2 :)
16:09:19 <andythenorth> I think that's fair
16:09:39 <michi_cc> TrueBrain: A VarAction is basically a switch statement, and the case labels refer to previously defined Actions by numeric identifier. In NFO, you have to keep track of these identifiers, NML does it for you.
16:09:53 <TrueBrain> k :)
16:09:59 <TrueBrain> basically, NML makes them labels?
16:10:04 <Eddi|zuHause> yes
16:10:10 <TrueBrain> I can see that being useful :)
16:10:16 <TrueBrain> okay, this conversation really helps :D
16:10:52 <TrueBrain> is there an example of a small, readable, well documented, NML?
16:11:02 <michi_cc> The tutorial?
16:11:06 <peter1138> Also with NML you get to deal with properties by name instead of hex numbers, at least compared to NFO.
16:11:11 <andythenorth> there are examples in the nml repo
16:11:15 <peter1138> Which is simply translation.
16:11:15 <TrueBrain> there is a tutorial?!
16:11:21 <andythenorth> it ships with examples also
16:11:30 <michi_cc> https://www.tt-wiki.net/wiki/NMLTutorial
16:11:40 <TrueBrain> holy crap, that was hiding :D
16:11:42 <TrueBrain> tnx michi_cc :)
16:11:52 <andythenorth> https://github.com/OpenTTD/nml/tree/master/examples
16:12:00 <TrueBrain> ah .. I get why I didnt read that .. NFO vs NML
16:12:03 <TrueBrain> yeah, I dont care about NFO
16:12:05 <TrueBrain> :D
16:12:09 <andythenorth> you should :D
16:12:18 <andythenorth> also...imagine if the docs were in the repo :P
16:12:19 <michi_cc> Of course, that page has the perfect counter-example to the claim "NML is a high-level NewGRF language compiler which compiles NML and it's language files into NewGRF files (and NFO files, if asked to do so). Coding a NewGRF in NML is similar to writing in any other programming language except that there are no real sub-routines; you can use the usual definition and condition statements."
16:12:29 <TrueBrain> that tutorial basically says: learn 2 new things :D
16:12:36 <Eddi|zuHause> TrueBrain: it sometimes helps knowing NFO to understand why an NML expression is as weird as it is
16:12:48 <andythenorth> "In addition, m4nfo natively includes a powerful macro processor suitable for private customizing or templating applications (indeed, m4nfo is written in M4, a very efficient macro processor itself), so there's no need for any external tools, like CPP for macro usage or artificially crafted extra Python layers, resulting in bloated installations."
16:12:50 <michi_cc> If you'd reformat the NFO on that page how most people would write it, it would look almost identical to the NML next to it :)
16:13:29 <Samu> TrueBrain, are you still interested in how this stands atm? https://github.com/OpenTTD/OpenTTD/compare/master...SamuXarick:variable-script_max_opcodes?expand=1
16:14:38 <Samu> I continued work on it after it was closed.
16:15:17 <Eddi|zuHause> michi_cc: of course, to support your weak claim that A is better than B you'd use the most obfuscated version of B you can find :p
16:15:19 <TrueBrain> LOAD_TEMP / STORE_TEMP .. TEMP means temporary?
16:15:39 <Eddi|zuHause> TrueBrain: yes
16:15:49 <Eddi|zuHause> there's also LOAD_PERM / STORE_PERM
16:15:55 <Eddi|zuHause> but not all features support it
16:16:22 <Eddi|zuHause> TEMP means it's discarded at the end of the callback chain
16:16:58 <TrueBrain> those switch statements, holy crap
16:17:03 <Eddi|zuHause> TrueBrain: also, callbacks are executed "backwards". the last line of code is executed first
16:17:04 <andythenorth> PERM is, e.g. industry registers
16:17:45 <Eddi|zuHause> TrueBrain: every switch that is executed refers to switches that were defined before it in the code
16:17:46 <glx> btw I still think there's an error in https://newgrf-specs.tt-wiki.net/wiki/Action0/Airports when it says "you first need to define it by setting property 8 or 9 for it" as there's is not property 9, and in the code prop 9 is checked but ignored in final
16:17:47 <andythenorth> I could paste some FIRS nml, nut I don't want to traumatise TrueBrain
16:18:06 <glx> looks like a broken copy/paste of industries
16:18:09 <TrueBrain> switch (FEAT_OBJECTS, SELF, switch_fingerpost_3_object, [ <- that last parameter .. wtf is that?
16:18:35 <Eddi|zuHause> glx: but in a fight between "is the spec wrong" or "is the code wrong", usually the spec wins
16:18:52 <glx> spec and code are wrong it seems
16:19:14 <TrueBrain> okay, so there is some form of macros
16:19:15 <Eddi|zuHause> TrueBrain: that is the name given to this switch for future uses
16:19:16 <TrueBrain> right
16:19:22 <TrueBrain> Eddi|zuHause: no, the one after that
16:19:29 <TrueBrain> (didn't want to copy/paste the whole blob, sorry)
16:19:36 <Eddi|zuHause> the part in [] is the expression being evaluated
16:19:39 <TrueBrain> I get that it stores 2 temp variables
16:19:41 <TrueBrain> but holy crap
16:19:57 <andythenorth> there's nothing like macros, except for spritesets
16:20:06 <Eddi|zuHause> if you use [] you can have multiple sequential expressions
16:20:20 <andythenorth> this is quite simple nml https://paste.openttdcoop.org/pne7eyxue/bgmw4n/raw
16:20:21 <Eddi|zuHause> the result of the last one being used for switch evaluation
16:20:39 <Eddi|zuHause> TrueBrain: it's somewhat like the comma operator in C
16:20:50 <peter1138> 14:46 <@peter1138> switch blocks in NML are weird
16:20:52 <peter1138> :D
16:20:57 <TrueBrain> okay, so here 'switch' is abused :D
16:21:00 <TrueBrain> it is really not a switch
16:21:10 <TrueBrain> but more a macro I guess
16:21:14 <andythenorth> it's quite similar to a switch
16:21:20 <Eddi|zuHause> NML failed a bit to abstract away the switch stuff
16:21:25 <TrueBrain> no, it has nothing to do with a switch :P It has one a single 'case' even
16:22:07 <andythenorth> usually there would be more cases https://paste.openttdcoop.org/pne7eyxue#line-900
16:22:11 <TrueBrain> if I read this correct, switch_fingerpost_3_object is now a 'function', that returns the right spriteset for the terrain-type and slope
16:22:14 <TrueBrain> right?
16:22:35 <Eddi|zuHause> TrueBrain: in NFO terms, this is a(n) (advanced)(var)action 2, which consists of 2 parts, an expression being evaluated, and a jump to two or more previously defined action 2 (or 1)
16:22:47 <Eddi|zuHause> TrueBrain: either part can be omitted
16:22:54 <glx> switch is just a loosely translation of NFO switch I think
16:23:01 <TrueBrain> yeah, I dont know NFO, so that is not helping, sorry :)
16:23:10 <TrueBrain> I don't care what it points to, I care about what it is doing :D
16:23:26 <andythenorth> it evaluates and branches
16:23:32 <TrueBrain> yeah, not helping
16:23:38 <andythenorth> this is a simple one https://paste.openttdcoop.org/pne7eyxue#line-948
16:23:47 <Eddi|zuHause> TrueBrain: "switch" is a name given to this construct, which usually will branch to other switches, but sometimes doesn't
16:23:51 <glx> but indeed it's not a switch from a dev point of view ;)
16:23:53 <TrueBrain> so is my summary of above a correct interpretation of that tutorial NML block?
16:24:08 <TrueBrain> k, tnx Eddi|zuHause
16:24:23 <andythenorth> glx: how isn't it a switch? :o
16:24:53 <andythenorth> the syntax is almost identical to the wiki reference case for a switch https://en.wikipedia.org/wiki/Switch_statement
16:24:56 <TrueBrain> what I tried to say a moment ago: from all that are talking, michi_cc is trying to speak my language, instead of confusing by being principle about shit ;)
16:25:01 <Eddi|zuHause> TrueBrain: sometimes the switch degenerates into "just return the result of this expression"
16:25:07 <TrueBrain> it is not important how you perceive things ;)
16:25:07 * andythenorth asks to learn, not to argue glx
16:25:19 *** Wormnest has joined #openttd
16:25:29 <TrueBrain> Eddi|zuHause: okay, so my assumption it is just a macro/function/whatever is correct in that sense?
16:26:53 <TrueBrain> okay, I think I can follow this NML snippet of the tutorial
16:26:53 <Eddi|zuHause> TrueBrain: in that particular case it's a sequential evaluation of the part in [], and then an unconditional jump to the switch referred in {}
16:27:07 <TrueBrain> purchase: switch_fingerpost_3_purchase;
16:27:07 <TrueBrain> autoslope: return(CB_RESULT_AUTOSLOPE);
16:27:16 <TrueBrain> this defines the language I guess :)
16:27:30 <glx> andythenorth: the syntax looks like a usual switch, but with differences, not very intuitive
16:27:36 <TrueBrain> the switch is evaluated till it also returns a .. fuck, what is the word
16:27:54 <andythenorth> result?
16:27:55 <andythenorth> pie?
16:27:58 <andythenorth> fish?
16:28:12 <andythenorth> some bytes?
16:28:25 <TrueBrain> literal, but not really what I mean
16:28:28 <TrueBrain> meh, what-ever
16:28:58 <glx> would be clearer with case x:, default:, range(begin, end):
16:29:06 <TrueBrain> okay, now to the NFO .. that thing on the left is indeed just mean and evil
16:29:08 <Eddi|zuHause> TrueBrain: a switch can recurse until it finds one of two things: a sprite(set) or a "return <number>" (callback result)
16:29:10 <TrueBrain> I saw better NFOs :P
16:29:29 <TrueBrain> k, that was my assumption, tnx Eddi|zuHause :)
16:29:34 <peter1138> recurse?
16:29:42 <TrueBrain> can't stand I cannot find the word I am looking for
16:29:44 <peter1138> There's no recursion.
16:30:30 <TrueBrain> a variable like 'tile_slope', I guess that comes from a more global variable space?
16:30:35 <Eddi|zuHause> well maybe "chain" is a more correct word
16:30:37 <TrueBrain> that is defined at moment of execution or something
16:30:41 <TrueBrain> I got what you mean Eddi|zuHause :)
16:30:44 <peter1138> Very much chain, yes.
16:31:20 <peter1138> TrueBrain, variables come from the particular feature being evaluated, but yes.
16:31:43 <Eddi|zuHause> TrueBrain: yes, there's a list of variables that get defined by "the outside" that may be feature- or callback-specific
16:32:04 <peter1138> NFO could be something like "var 0x40, bits 8-15" ... nml provides human-sensible names for things.
16:32:44 <TrueBrain> NML compiles directly to GRF (as in, bytecode), or is there an in-between step?
16:32:52 <peter1138> It can do GRF or NFO.
16:32:57 <Eddi|zuHause> nml can compile to GRF or NFO
16:33:05 <LordAro> echo
16:33:13 <Eddi|zuHause> test failed.
16:33:29 <TrueBrain> is going to NFO ever used? (wondering what the use case is)
16:33:39 <Eddi|zuHause> yes, i use it in CETS
16:33:48 <Eddi|zuHause> because... i'm weird
16:33:54 <TrueBrain> what does it add for you?
16:34:11 <glx> nml is not feature complete yet IIRC
16:34:17 <DorpsGek_II> [OpenTTD/website] auge8472 opened pull request #82: Discussion basis for rework of the general HTML structure and the CSS rules https://git.io/fjmcG
16:34:37 <andythenorth> going to nfo was at minimum needed for easy regressions
16:34:39 <Eddi|zuHause> basically, CETS was too big for nmlc to handle, so i split it up into multiple. then those parts get output as NFO and recombined to be handled by grfcodec
16:34:47 <TrueBrain> ha :D
16:34:49 <TrueBrain> fair
16:34:56 <andythenorth> it's necessary to be able to compare the nfo output
16:35:00 <TrueBrain> those load/store temp stuff is annoying to read :P
16:35:07 <peter1138> Yes
16:35:17 <glx> and to implement too ?
16:35:21 <TrueBrain> but I guess that can easily be solved by adding another layer of abstraction there
16:35:25 <andythenorth> I also had nml -> nfo -> grfcodec -> grf, but I deleted it
16:35:48 <Eddi|zuHause> "easily" :p
16:36:08 <TrueBrain> andythenorth: https://paste.openttdcoop.org/pne7eyxue/bgmw4n/raw <- sprite 2022, that points to a 'default' sprite?
16:36:34 <andythenorth> yes, in the baseset
16:36:36 <TrueBrain> Eddi|zuHause: if NML uses an AST, it should be easy. But I don't dare to ask :P
16:37:11 <Eddi|zuHause> TrueBrain: the AST is not really the problem, but the semantics...
16:37:21 <TrueBrain> and locality
16:37:22 <TrueBrain> fair :)
16:37:34 <Eddi|zuHause> TrueBrain: there are general purpose registers, and specific usage (write-only) registers
16:37:56 <Eddi|zuHause> and the lifetime of each is... weird
16:38:01 <TrueBrain> STORE_TEMP acts like a register, you say?
16:38:16 <Eddi|zuHause> yes, STORE_TEMP(value, register)
16:38:20 <TrueBrain> okayyyyyyyyy
16:38:21 <glx> all storages are registers
16:38:26 <TrueBrain> I assumed it was just a freeform index
16:38:34 <TrueBrain> but so there are write-only and stuff ..
16:38:42 <TrueBrain> that name is misleading :D
16:38:43 <TrueBrain> lol
16:38:58 <Eddi|zuHause> yes, like some 60+ vars consume a register
16:39:11 <glx> and registers are a kind of array in openttd code
16:39:25 <peter1138> It basically is an array index, heh.
16:39:31 <TrueBrain> , STORE_TEMP(construction_state != 3 ? 1 : LOAD_TEMP(255), 255) <- I like this constant chaining :)
16:39:36 <Eddi|zuHause> and don't ever look at the string stack :p
16:40:39 <Eddi|zuHause> ... which should look like SetDParam(value), but doesn't...
16:41:03 <TrueBrain> too lazy to look up: switch (FEAT_INDUSTRYTILES, PARENT, blast_furnace_tile_1_lc_1, ( <- to what does 'parent' refer?
16:41:14 <andythenorth> depends on context
16:41:15 <peter1138> parent scope for that feature
16:41:18 <andythenorth> in that context, it's industry
16:41:21 <Eddi|zuHause> for "industry tile", PARENT means "industry"
16:41:24 <peter1138> so for industrytiles it refers to industry
16:41:32 <TrueBrain> triple echo!
16:41:35 <TrueBrain> LordAro: I win :D
16:41:38 <andythenorth> at least we all said same
16:41:39 <TrueBrain> tnx btw :)
16:41:42 <TrueBrain> indeed
16:41:44 <Eddi|zuHause> for e.g. train vehicles, PARENT means the engine
16:41:51 <TrueBrain> okay, so scope is very important ..
16:42:11 <peter1138> yeah, when you use parent scope you get a different set of variables
16:42:17 <Eddi|zuHause> i think for industries, PARENT is the town
16:42:22 <TrueBrain> does NML also validate things, that you used it correctly?
16:42:24 <TrueBrain> or does it only convert?
16:42:42 <Eddi|zuHause> there is some error checking
16:42:46 <glx> I hope it validates :)
16:42:58 <glx> but probably not everything
16:43:22 <TrueBrain> okay, so far this TEMP and PERM stuff is the most unreadable when looking over NMLs
16:43:30 <TrueBrain> that requires some good attention to spot the 0 from the 1
16:43:42 <andythenorth> nml lints
16:43:44 <TrueBrain> especially as it is the last parameter, not the first
16:43:52 <TrueBrain> (for store)
16:43:56 <andythenorth> nml doesn't validate that everything will make sense when compiled
16:45:02 <TrueBrain> okay, so constantly you have a switch preparing variables, calling something like 'return'., 'spriteset', 'produce' to use those variables to do the right thing
16:45:36 <andythenorth> cookie for TrueBrain
16:45:38 <TrueBrain> I can see how this leads to abusive NMLs :D
16:45:53 <TrueBrain> you can really write unreadable stuff here :P (but so you can with any language)
16:46:04 <andythenorth> nobody sensible writes nml
16:46:05 <TrueBrain> return 0x3800 + string(STR_EMPTY); <- '0x3800' ?
16:46:25 <Eddi|zuHause> magic value
16:46:34 <andythenorth> magic due to unfinished stuff
16:46:35 <TrueBrain> that I got :D
16:46:40 <peter1138> TrueBrain, how did you do the published build of PR6811? https://www.openttd.org/downloads/openttd-pullrequests/pr6811/latest.html
16:47:02 <TrueBrain> peter1138: https://dev.azure.com/openttd/OpenTTD/_build/results?buildId=2336
16:47:13 <TrueBrain> Queue it yourself to build a new one :) You will get what I mean when you press Queue
16:47:36 <TrueBrain> Eddi|zuHause / andythenorth: what does the magic value refer to here? (and how to know?)
16:47:43 <peter1138> "Queue build for OpenTTD release - nightly"
16:47:45 <TrueBrain> what does it do? why is it unfinished?
16:47:46 <andythenorth> I can look it up
16:47:50 <TrueBrain> peter1138: yup!
16:47:52 <Eddi|zuHause> TrueBrain: i'm trying to find it, not having enough context
16:47:53 <andythenorth> give me a couple of minutes
16:47:57 <andythenorth> I know the context
16:48:02 <peter1138> Thanks
16:48:07 <TrueBrain> Eddi|zuHause: https://paste.openttdcoop.org/pne7eyxue/bgmw4n/raw <- somewhere at the bottom
16:48:12 <TrueBrain> peter1138: works for every PR ofc :)
16:48:24 <TrueBrain> automatically publishes etc etc
16:49:33 <TrueBrain> okay, I somewhat understand NML now .. and I somewhat grasp how that reacts in OpenTTD as NewGRF
16:49:37 <TrueBrain> tnx a lot all :)
16:49:44 <TrueBrain> crash-course :P
16:49:50 <andythenorth> I have to read the nml source for that 0x3800
16:50:06 <TrueBrain> so how did you know to use it?! :D
16:50:31 <Eddi|zuHause> TrueBrain: i would have hoped to find the magic value here: https://newgrf-specs.tt-wiki.net/wiki/Callbacks#Show_additional_text_in_industry_window_.283A.29
16:50:42 <andythenorth> ok it's CB 37
16:50:44 <andythenorth> https://newgrf-specs.tt-wiki.net/wiki/Callbacks#Cargo_sub-type_display_for_industries_.2837.29
16:51:02 <glx> https://newgrf-specs.tt-wiki.net/wiki/TextIDs/Water_strings maybe
16:51:26 <andythenorth> so the 3800 determines where the subtext is to be displayed
16:51:45 <TrueBrain> wtf?
16:51:49 <andythenorth> 800 is text without waiting amount
16:51:50 <TrueBrain> how... euh ... wuth?
16:51:51 <peter1138> Yay, wallyweb made a build :D
16:52:06 <andythenorth> displayed in industry window and industry directory
16:52:08 <andythenorth> it's just nfo
16:52:11 <andythenorth> simples
16:52:18 <Eddi|zuHause> string-ID is a value 0..0x400?
16:52:32 <peter1138> andythenorth, https://www.tt-forums.net/viewtopic.php?f=29&t=85137
16:52:33 <peter1138> andythenorth, ;(
16:52:45 <andythenorth> comes up once a year :)
16:52:48 <andythenorth> clearly this is the one
16:52:49 <TrueBrain> okay .. so NML did some abstraction, but not everything, basically
16:52:51 <glx> oh 0x3800 is a flag
16:52:55 <TrueBrain> it 'skipped' some things, so to say?
16:52:55 <andythenorth> yes
16:53:01 <andythenorth> it's a flag glx
16:53:07 <TrueBrain> glx: yeah, exactly, what was the info I needed :P But it took them a while to answer that :D
16:53:15 <andythenorth> TrueBrain: nml isn't actively maintained
16:53:18 <TrueBrain> a + for flags looks off :P
16:53:22 <andythenorth> I know that's disputed, but eh
16:53:23 <andythenorth> it's not
16:53:30 <andythenorth> cos I don't do maintain it
16:53:32 <Eddi|zuHause> yeah, should be |
16:53:37 <TrueBrain> andythenorth: irrelevant to the question; I am not trying to blame or bash or whatever, I am trying to understand what it is :)
16:53:49 <andythenorth> ok so 'yes'
16:53:51 <TrueBrain> :D
16:53:58 <andythenorth> it's not exactly skipped, just not done
16:54:11 <andythenorth> fortunately it can fallback to bytecode in places
16:54:18 <TrueBrain> as I guess something like stirngs(STR_EMPTY) | NO_WAITING_AMOUNT | WHAT_EVER would be more readable?
16:54:28 <andythenorth> one might say so :P
16:54:32 <TrueBrain> yeah, okay, so when NML does not provide something, NFO is used again
16:54:34 <TrueBrain> fair
16:54:54 <TrueBrain> resulting in things like date(5000000,12,31)
16:54:54 <Eddi|zuHause> TrueBrain: that's why i said earlier it helps to know the underlying NFO
16:54:56 <TrueBrain> that are just cute :)
16:55:03 <peter1138> Hmm, okay, so if I use the plain clear tile instead of road, I miss out on shading.
16:55:09 <TrueBrain> Eddi|zuHause: now (and only now) I understand that, yes :)
16:55:13 <peter1138> But... maybe the road type should be providing that?
16:55:36 <peter1138> As currently the shading is clearly for the default roads
16:56:04 <TrueBrain> https://github.com/OpenTTD/OpenTTD/blob/master/src/newgrf.cpp#L8948 <- the NULL -> nullptr messed up this table :P
16:56:38 <Eddi|zuHause> TrueBrain: now, try to understand https://dev.openttdcoop.org/projects/cets/repository/entry/scripts/write_engine.py :p
16:56:55 <TrueBrain> why are you giving my python code now?
16:57:01 <TrueBrain> is there another abstraction build on top of NML?
16:57:05 <peter1138> Yeah, alignment wasn't catered for :/
16:57:16 <Eddi|zuHause> TrueBrain: that's python code that outputs NML code, yes
16:57:18 <Artea> does FISH 2 have same NewGRF as FISH 0.9.8 ?
16:57:27 <TrueBrain> yeah, that doesn't surprise me one bit Eddi|zuHause :)
16:57:35 <Eddi|zuHause> TrueBrain: because i didn't feel like copy-pasting the same thing 1000 times
16:57:37 <TrueBrain> NML just begs to have another language on top of it :P
16:58:06 <TrueBrain> (and 'language' here can be stretched to things like a templating system etc)
16:58:17 <andythenorth> TrueBrain: I can send you my newsletter :P
16:58:29 <glx> Artea: I guess it doesn't has it's a different newgrf
16:58:30 <peter1138> it has "templates" but they are only for sprite offsets/coordinates.
16:58:35 <Eddi|zuHause> TrueBrain: input for that script is https://docs.google.com/spreadsheets/d/1pXX0eGtNfBBj38TmOoi8qHUeHd559PndQxXNEAUtNh0/edit?hl=de&hl=de#gid=0
16:58:39 * andythenorth does not write nml
16:58:59 <TrueBrain> andythenorth: how do I care about your local news exactly? :P (random comments are random, I guess)
16:59:08 <TrueBrain> Eddi|zuHause: lol
16:59:15 <TrueBrain> again, not surprised, but possibly impressed
17:00:12 <Artea> just going stick with FISH 0.9.8
17:00:19 <andythenorth> TrueBrain: that paste of mine you read...generated by https://github.com/andythenorth/firs/blob/master/src/templates/industry_secondary.pynml
17:00:41 <TrueBrain> omg, what have you done?!
17:00:49 *** Wormnest_ has joined #openttd
17:00:51 <andythenorth> not written nml
17:00:59 <TrueBrain> you did, at least once, but nice try
17:01:21 <Eddi|zuHause> that might be partially my fault, by not teaching andythenorth all the things necessary to build a compiler
17:01:24 <andythenorth> it makes me so sad
17:01:28 <andythenorth> when I see the forum people
17:01:31 <andythenorth> writing nml by hand
17:01:39 <andythenorth> and all their bugs due to fat fingers
17:01:44 <andythenorth> I generate bugs AT SCALE
17:02:06 <andythenorth> Eddi|zuHause: I stopped at recursive trees :P
17:02:12 <TrueBrain> like I said already, but the only logic result based on the state of NML is that people make an abstraction out of it
17:02:17 <andythenorth> yes
17:02:19 *** Fuco has joined #openttd
17:02:19 <TrueBrain> just clearly everyone made their own
17:02:22 <andythenorth> it's horrid
17:02:25 <glx> well if nml natively supported pynml syntax (or similar) ;)
17:02:26 <TrueBrain> instead of confederating :D
17:02:35 <andythenorth> even if nml had templating, it's still horrid
17:02:59 <Eddi|zuHause> TrueBrain: it started by people using CPP on top of NML to make up for missing #include and constant evaluation
17:03:07 <andythenorth> that was horrid
17:03:09 <peter1138> So I was able to modify nmlc to add newgrf docks...
17:03:12 <TrueBrain> glx: honestly, without a clear design, it is just replacing one for the other, creating more distance between the two languages
17:03:16 <peter1138> And create a newgrf dock...
17:03:18 <andythenorth> but we were doing that in nfo Eddi|zuHause :)
17:03:27 <peter1138> And hit none of the issues that andythenorth complains about.
17:03:38 <Eddi|zuHause> yes, but the fact that nml failed to address that...
17:03:57 <TrueBrain> as pynml might be perfect for andythenorth, but Eddi|zuHause would find issues he cannot solve with it .. and because it now goes via 2 translators, ... etc etc
17:03:59 <Eddi|zuHause> peter1138: how is that possible, he complains about EVERYTHING?
17:04:06 <TrueBrain> classic example of CS :)
17:04:13 <glx> indeed I think the original idea for nml was to ease newgrf writing
17:04:18 <andythenorth> it won at that
17:04:22 <andythenorth> people can use it
17:04:27 <andythenorth> like people can use perl
17:04:28 <Eddi|zuHause> TrueBrain: pynml was invented after i created CETS
17:04:34 <andythenorth> pynml wasn't invented
17:04:41 <TrueBrain> how many of those abstractions are there in the NewGRF world? (just an idea)
17:04:43 <andythenorth> it's just misapplying a tool
17:05:03 <andythenorth> pynml just applies a pattern I know from websites to nml
17:05:04 <Eddi|zuHause> TrueBrain: there's m4nfo which avoids nml altogether
17:05:27 <andythenorth> I treat nml exactly like a static website compile :P
17:06:07 <TrueBrain> Eddi|zuHause: is it popular?
17:06:09 <andythenorth> there's a new one in forums somewhere, I'll find it
17:06:15 <andythenorth> m4nfo is very popular
17:06:21 <Eddi|zuHause> and oberhümer tried to spread the CETS way of generating nml files to other people like one of the british spinoff sets
17:06:29 <andythenorth> I was going to switch to m4nfo, but it's not complete
17:06:35 <andythenorth> and I suspect I won't get along with the author
17:06:47 <Eddi|zuHause> dunno, i know of like 2 people who use m4nfo. but i haven't looked in the newgrf forum for ages
17:06:56 <andythenorth> this is the new one https://www.tt-forums.net/viewtopic.php?f=68&t=83239
17:07:06 <TrueBrain> well, the manual of m4nfo is nicer (sorry :P)
17:07:25 <andythenorth> don't be
17:07:27 <andythenorth> I agree
17:07:36 *** Wormnest has quit IRC
17:08:11 <TrueBrain> again a language with a weird set of lexer-definition
17:08:32 <TrueBrain> did people not follow advanced compiler constructions?!
17:08:37 <Eddi|zuHause> TrueBrain: i guess it's even less abstracting from NFO
17:09:10 <Eddi|zuHause> TrueBrain: what are you reading?
17:09:38 <TrueBrain> m4nfo manual
17:09:52 <TrueBrain> s/follow/follow the course/
17:10:12 <Eddi|zuHause> link?
17:10:13 <peter1138> m4nfo is kinda old, it predates nml by a lot.
17:10:23 <TrueBrain> http://www.ttdpatch.de/grfspecs/m4nfoManual/
17:10:49 <TrueBrain> but someone took their time to write the manual :)
17:10:54 <peter1138> Ok, pr6811 built. Do I need to do anything else or will the latest page update itself?
17:11:13 <Eddi|zuHause> ok, so the amount of users of m4nfo is now apparently 3?
17:11:26 <peter1138> MB, George and...?
17:11:40 <TrueBrain> peter1138: after build, the release will be published (you can follow that under Releases). After that, a new website build is triggered. If build, it is published, and the server is asked to start the new version
17:11:43 <Eddi|zuHause> that page lists MB, Snail and Uwe
17:11:47 <TrueBrain> after that reloading the page gives you a new version
17:12:23 <Eddi|zuHause> i wasn't aware of george using m4nfo
17:13:01 <peter1138> Eddi|zuHause, ah, I was guessing.
17:13:38 <TrueBrain> can GRFs interact with the game without the user explicitly building something related to the NewGRF?
17:13:38 <peter1138> "Trigger webisite build succeeded"
17:13:52 <TrueBrain> so I get when you build an industry and pick a NewGRF, it uses that GRF
17:13:57 <TrueBrain> same for trains, rails, etc
17:14:03 <glx> yes, industries and town newgrf
17:14:07 <TrueBrain> but are there that the human did not touch?
17:14:19 <TrueBrain> town buildings, I guess?
17:14:23 <TrueBrain> or anything else related to towns?
17:14:31 <peter1138> town builds and industries are built by the game, so yes.
17:14:34 <Eddi|zuHause> i'm not sure what you're asking
17:14:39 <glx> there are cost base too
17:14:51 <glx> affecting the economy
17:14:52 <TrueBrain> if I install all the NewGRFs in the world, start a game, and do not use any NewGRF thing myself as human
17:14:58 <TrueBrain> what of the map is in control of any NewGRF
17:15:08 <TrueBrain> Eddi|zuHause, that is what I am trying to ask, worded differently
17:15:22 <andythenorth> TrueBrain: that is a big ask
17:15:24 <TrueBrain> glx: like overwriting costs for baseset trains?
17:15:25 <Eddi|zuHause> NewGRF may change for example what amount you get paid on delivery
17:15:32 <peter1138> cargo types too.
17:15:35 <Eddi|zuHause> or the station rating
17:15:38 <TrueBrain> ah, ofc, hmm, interesting
17:15:51 <Eddi|zuHause> also, texts displayed in various places
17:15:54 <Eddi|zuHause> and sprites
17:15:55 <TrueBrain> but for that it explicitly hooks into baseset items, so to say?
17:15:57 <peter1138> And of course AIs will use NewGRF vehicles too.
17:16:01 <TrueBrain> (sorry if my questions use the wrong term etc :P)
17:16:07 <andythenorth> can newgrf bits of the UI too
17:16:10 <andythenorth> not sure which bits
17:16:27 <glx> dropdown menus andythenorth ;)
17:16:28 <Eddi|zuHause> well, NewGRFs can replace every sprite in the game
17:16:33 <peter1138> TrueBrain, so a newgrf industry provides new industries, and the game will use them. No user interaction required.
17:16:38 <Eddi|zuHause> basesets are basically special cased newgrfs
17:16:52 <TrueBrain> peter1138: yeah, we got that one; was wondering if there is more
17:17:01 <peter1138> Ah
17:17:05 <TrueBrain> basesets are NewGRFs that can be overwritten, is that a fair way of stating it?
17:17:24 <TrueBrain> can one NewGRF overwrite a sprite of another NewGRF?
17:17:26 <Eddi|zuHause> yes, also NewGRFs can overwrite other NewGRFs
17:17:32 <TrueBrain> noooooooooo
17:17:40 <peter1138> Haha
17:17:48 <peter1138> NewGRFs can *disable* other NewGRFs... lols
17:17:50 <glx> and newgrf can conflict with other newgrf too
17:17:58 <Eddi|zuHause> like there's "addon newgrfs"
17:18:02 <TrueBrain> conflicting is totally a logic result
17:18:05 <TrueBrain> the other ones are choices
17:18:09 <Eddi|zuHause> that depend on and modify another newgrf
17:18:16 <TrueBrain> why .... did someone hate someone else that much?
17:18:25 <TrueBrain> and who approved that :P
17:18:49 <Eddi|zuHause> TrueBrain: i think that was already there when OpenTTD started including NewGRF stuff
17:18:50 *** Fuco has quit IRC
17:18:59 <TrueBrain> I guess it can be useful for 'price' mods
17:19:01 <glx> sometimes addons are just to fix unmainained newgrf
17:19:14 <Artea> I tried FISH 0.9.8 and FISH 2 2.0.3
17:19:20 <Artea> both uses same file name
17:19:33 <Artea> so I guess I didnt see FISH 2 working out, right ?
17:19:40 <glx> don't use 2 versions at the same time
17:19:43 <andythenorth> FISH 2 isn't FISH 0.9.8
17:19:50 <Artea> I know
17:19:54 <andythenorth> they should actually both work
17:19:55 * andythenorth tests
17:20:07 <Artea> what I didnt know was both had same name
17:20:22 <glx> openttd doesn't care about the name
17:20:24 <andythenorth> yeah they both work for me
17:20:24 <Eddi|zuHause> openttd doesn't really care about the filename
17:20:30 <Artea> I stick with yoursm andythenorth
17:20:35 <andythenorth> openttd cares about the filename quite often
17:20:56 <TrueBrain> https://github.com/wube/factorio-data/blob/master/base/prototypes/item/turret.lua
17:21:01 <andythenorth> Artea: FISH 2 is better than FISH
17:21:03 <andythenorth> but both suck
17:21:30 <Artea> I liked the new ships
17:21:45 <glx> TrueBrain: looks like XML in lua syntax ;)
17:22:05 <TrueBrain> how does that look like XML?!
17:22:06 <Artea> Maddelena Ferry is cute
17:22:14 <TrueBrain> looks like JSON in lua :P
17:22:14 <Eddi|zuHause> more like JSON
17:22:22 <TrueBrain> owh, wait, its a dict :P
17:22:45 <Eddi|zuHause> i was once reading a JSON file as a python dict...
17:23:04 <Eddi|zuHause> which almost worked...
17:23:10 <TrueBrain> I had to do that once ... as the customer used '' instead of ""
17:23:14 <TrueBrain> and most JSON parsers refuse that
17:23:23 <TrueBrain> Python AST dict reading does allow it
17:23:26 <Eddi|zuHause> i think i had to replace TRUE/true or something
17:23:27 <TrueBrain> dirty hacks being dirty
17:23:53 <peter1138> Yay, new NRT build online.
17:23:55 <TrueBrain> okay, so Factorio uses a similar way of doing things, it seems
17:23:59 <TrueBrain> peter1138: nice :D
17:24:00 <andythenorth> peter1138: \o/
17:24:35 <Artea> btw
17:24:42 <Artea> saw a tiny village
17:24:51 <Artea> using 6 tiles with water around
17:24:54 <Artea> is that normal ?
17:25:06 <TrueBrain> very expensive housing
17:25:33 <glx> it will build a bridge at some point
17:25:48 <TrueBrain> okay, so this is a bit of a vision question .. where do we see NewGRF going?
17:25:55 <TrueBrain> do we want to keep using GRF, as-is
17:25:59 <TrueBrain> is that important to us?
17:26:20 <TrueBrain> or do we want to allow 'mods', and of course support GRFs (legacy support or not, don't care)
17:26:22 <Samu> may I have an opinion?
17:26:53 <glx> Samu doesn't like newgrf messing with the AIs ;)
17:26:53 <TrueBrain> TTDp is dead, not? So the only thing we have is a few authors that would flip out, I guess
17:26:58 <Eddi|zuHause> are you asking for a... vision...?
17:27:21 <TrueBrain> Eddi|zuHause: honestly, no; I am more interested where the emotions are
17:27:32 <TrueBrain> but asking that question mostly doesn't work well with the type of people we have in this channel
17:27:40 <Eddi|zuHause> if you ask anyone besides andy, GRF is fine, just needs extending here and there
17:27:50 <TrueBrain> yes; but I am not asking if it is fine
17:27:56 <TrueBrain> I am asking if there is an emotional attachment to it
17:28:08 <TrueBrain> do we care what 'it' is?
17:28:15 <TrueBrain> or do we just want to be able to mod OpenTTD?
17:28:22 <Eddi|zuHause> well, my main concern would be throwing away decades of community work
17:28:24 <glx> at least when openttd extends newgrf it's done in a cleaner way
17:28:26 <TrueBrain> (its an honest question btw)
17:28:34 <TrueBrain> Eddi|zuHause: like I said, legacy support and all
17:28:36 <peter1138> I think we definitely want to keep all the current newgrf support
17:28:53 <peter1138> Whether that's as is or by implementing an abstraction layer is another matter.
17:28:58 <Eddi|zuHause> i don't think GRF is broken enough to scrap it
17:29:04 <peter1138> ^^
17:29:18 <TrueBrain> again, not the question, but it sortof is an answer
17:29:32 <TrueBrain> say we add something new, which can be done in NML+, which does not compile this part to GRF. OpenTTD can load NML+ (and ofc GRF)
17:29:36 <TrueBrain> is that acceptable?
17:29:47 <TrueBrain> or do we consider GRF the one and only truth in this matter?
17:30:13 <TrueBrain> (in other words: how big is the solution space)
17:30:13 <Eddi|zuHause> the main question is, do we want to merge the scopes of, say NewGRF and GameScript
17:30:26 <TrueBrain> no, that is not a question, that is a proposal for a solution ;)
17:30:28 <peter1138> I'd say that's fine but we do then have 2 interfaces instead of 1 to maintain.
17:30:35 <Artea> openttd://84.91.140.29:13979 should be a feature
17:30:45 <TrueBrain> Artea: I await your Pull Request
17:30:53 <andythenorth> Eddi|zuHause: wait wat, grf is fine, it's just shit to extend, and nmlc is slow
17:30:59 <andythenorth> also tankers https://dev.openttdcoop.org/attachments/download/9399/tankers_eh.png
17:31:04 <Artea> dont know where to put in, TrueBrain
17:31:11 <TrueBrain> peter1138: tnx :)
17:31:14 <andythenorth> ^^ do those tankers all look same or not?
17:31:20 <glx> it's OS dependant Artea I think
17:31:28 <Eddi|zuHause> Artea: that should be possible? just translate that into "openttd --ip IP --port PORT"
17:31:29 * andythenorth missed all the grf discussion due to pixels
17:31:36 <andythenorth> did you decide a vision yet?
17:31:52 <Eddi|zuHause> Artea: should require no changes to openttd itself, just the installer registering it
17:31:56 <glx> Eddi|zuHause: -n ip:port
17:32:09 <Eddi|zuHause> glx: whatever, didn't want to look it up :p
17:32:09 <Artea> I only say that for servers page
17:32:11 <TrueBrain> peter1138: do you think the others also think similar? (I know, a bit hard to answer, but I am going to try anyway :D)
17:32:38 <glx> servers page needs a rewrite IIRC
17:35:27 <andythenorth> I shouldn't answer for frosch, but eh, afaict, frosch thinks grf is fine (and should be kept), except where it's not (and that should be burnt, but the drama is too much)
17:35:42 <TrueBrain> that is why I am not talking about what should happen to GRF
17:35:44 <TrueBrain> as I don't care
17:36:00 <TrueBrain> I just wonder if we consider GRF to be the alpha-and-the-omega :)
17:36:03 <andythenorth> "what do we want to do?"
17:36:03 <Eddi|zuHause> TrueBrain: i'm still not sure what you're asking
17:36:12 <andythenorth> he's looking for a vision
17:36:18 <TrueBrain> Eddi|zuHause: I fully understand that; it is mostly as it is a question better done face-to-face :)
17:36:28 <TrueBrain> andythenorth: I am not
17:36:28 <Eddi|zuHause> i asked him that, he said no...
17:36:30 <Artea> hmmmm
17:36:31 <TrueBrain> don't put words in my mouth
17:36:42 <andythenorth> "TrueBrain: okay, so this is a bit of a vision question .. where do we see NewGRF going?"
17:36:43 <Artea> why AIAI started an AroAI didnt ? :o
17:36:45 <andythenorth> oof
17:36:52 <TrueBrain> "a bit", is the part
17:36:52 <andythenorth> must have been sock puppet TrueBrain
17:37:01 <TrueBrain> I am NOT looking for a vision, but I understand this touches that
17:37:13 <TrueBrain> I hate hands up my ass :P We have been over this :)
17:37:30 <andythenorth> sometimes Truebrain that will happen, or it will be a colonoscopy
17:37:36 <andythenorth> as you age, you find out
17:37:38 <Eddi|zuHause> you prefer... ok, maybe scratch that joke :p
17:37:44 <TrueBrain> Eddi|zuHause: basically, I am trying to find out what the solution space is we can work in
17:37:59 <andythenorth> there are usually 3 or 4 options
17:38:07 <andythenorth> and option 1 is usually either 'do nothing' or 'nuke it all'
17:38:13 <TrueBrain> several solutions exist (pre-build stuff)
17:38:19 <TrueBrain> which we could look at, for example
17:38:33 <andythenorth> at what level is the question though?
17:38:34 <TrueBrain> but it is important to know where people are in a spectrum of willing to allow new influence
17:38:43 <andythenorth> are we at level of reimplement grf?
17:38:48 <andythenorth> or level of mod openttd?
17:38:48 <TrueBrain> for most things I know, related to OpenTTD
17:38:54 <TrueBrain> but for NewGRF this is very unclear to me
17:39:05 <TrueBrain> never replace something with something else for the reason of replacing it
17:39:18 <TrueBrain> that is the most stupidest thing people keep doing :P
17:39:27 <michi_cc> TrueBrain: Had to step out for a bit, but even if the discussion is mostly over as it seems, let me still present my own concluding remarks :)
17:39:31 <Eddi|zuHause> there are 3 directions where GRF could be going: 1) continue as is (gradual extension, maybe a new toolchain), 2) supercede it with a new spec that is somewhat compatible, 3) declare it deprecated and start something completely new
17:39:37 <TrueBrain> michi_cc: please do :)
17:40:19 <TrueBrain> Eddi|zuHause: the problem is that you (all) mostly keep talking about what to do with GRF. Which is, in my experience, the wrong approach. GRF is not important, it is a technical solution to a problem. But that answer kinda shows me what I am trying to get out of you :)
17:40:35 <andythenorth> michi_cc has the floor :P
17:40:38 <TrueBrain> there is a strong emotional attachment to GRF, basically :) (positive or negative)
17:40:41 * andythenorth wonders if we need a talking stick
17:40:49 <TrueBrain> I am sure he is typing :)
17:40:54 <andythenorth> we have a talking pig at work
17:41:02 <andythenorth> it makes a farting noise when you squeeze it
17:41:09 <Eddi|zuHause> TrueBrain: there's always a strong attachment to things that are already there
17:41:17 <TrueBrain> some are stronger than others
17:41:23 <TrueBrain> nobody really cares I killed config.lib :P
17:41:26 <andythenorth> what about a strong negative attachment? :P
17:41:28 <TrueBrain> (at least, it seems)
17:41:56 * andythenorth has a very strong attachment to the *affordance* of grf
17:42:04 <andythenorth> couldn't give any fucks about actual implementation
17:42:09 <michi_cc> IMHO (New)GRF from the perspective of OpenTTD is a domain-specific bytecode languages, that provides the two things OpenTTD needs: Table-driven static values and dynamic runtime values (value here includes sprites) using efficient expression/decision trees. [tbc]
17:43:12 <Eddi|zuHause> TrueBrain: my main concern is with the few dozen people that write GRFs who are not represented in this chat
17:43:31 <michi_cc> From a NewGRF dev perspective, there are three toolsets to use: The real assembler, the everything-is-better-with-strings assembler and the I'm-not-an-assembler assembler. None of the tools tries anything to abstract the bytecode structure away.
17:43:54 <andythenorth> +1
17:44:00 <TrueBrain> I like how you word it michi_cc :)
17:44:06 <andythenorth> it's very clear
17:44:14 <TrueBrain> Eddi|zuHause: yeah, that is fair
17:44:21 <michi_cc> You're still writing raw expression trees (heck, you can't even have forward declarations of switch'es).
17:44:39 <TrueBrain> yeah, its just a mapping
17:44:56 <TrueBrain> and I get it, both why it is created and why people love/hate it :)
17:45:07 <peter1138> I think only andythenorth actually hates it.
17:45:21 <Eddi|zuHause> i think nml set out to abstract away more things but then couldn't quite pull through with it
17:45:25 <TrueBrain> pretty sure most people will have a love/hate reaction to both NFO and NML :)
17:45:26 <michi_cc> So basically, NewGRF from OpenTTD side is not perfect, but efficient and relatively easily extended. From the writing side, it dearly misses something that can be called a compiler.
17:45:38 <Samu> for my perspective, maintainers/maintenance and the ever more confusing growing list of newgrfs with the same names, or similar names, is a problem. It makes me run away from even trying any.
17:46:06 <peter1138> Samu is the only person who considers MORE content bad.
17:46:24 <TrueBrain> michi_cc: k, tnx a lot :D
17:47:08 <TrueBrain> I am happy I finally have some grip on wtf NewGRFs is, are, and work :P
17:47:15 <TrueBrain> I feel I learned stuff today :)
17:49:47 <Samu> it clearly doesn't motivate me to create a newgrf
17:50:19 <michi_cc> For those with weak imagination: The listed tools are NFO, m4nfo, and NML, at least viewed as someone not writing NewGRFs :p
17:50:41 <TrueBrain> ha, that is what I assumed you meant :D Guess I did learn something today \o/ So happy :)
17:50:56 <andythenorth> we didn't answer your actual question though
17:50:56 <TrueBrain> right, this leaves a huge spectrum of possible ways of moving this forward, damn
17:51:09 <andythenorth> and you ruled eddi's point out of scope
17:51:17 <andythenorth> about newgrf domain vs. GS domain
17:51:29 <TrueBrain> andythenorth started to randomly talk about something
17:51:32 <TrueBrain> ffs, context people :)
17:51:35 <TrueBrain> we cannot read your mind :P
17:51:42 <michi_cc> Simple conclusion: We need better tools, not necessarily better OTTD.
17:52:03 <andythenorth> [4:30pm] Eddi|zuHause: the main question is, do we want to merge the scopes of, say NewGRF and GameScript
17:52:04 <andythenorth> [4:30pm] TrueBrain: no, that is not a question, that is a proposal for a solution
17:52:06 <TrueBrain> work from a demand, not from a solution :)
17:52:13 <TrueBrain> andythenorth: holy crap, you jumped back 22 minutes :P
17:52:16 <TrueBrain> no wonder I was totally confused
17:52:22 <andythenorth> 10 minute attention span
17:52:29 <TrueBrain> no, the conversation continued
17:52:36 <michi_cc> Grfmaker tried, but was never extended to cover any of the interesting things.
17:52:49 <peter1138> Hmm, maybe I should make it a road type flag as to whether to draw bare or original roads underneath?
17:52:50 <TrueBrain> I can imagine a webtool to create GRFs, honestly :P
17:53:00 <andythenorth> TrueBrain: I've done it already
17:53:03 <andythenorth> I deleted it
17:53:20 <TrueBrain> you have a patch for that ... peter1138, stop influencing people like this :)
17:53:22 <TrueBrain> <3
17:53:49 <andythenorth> how do I teach TrueBrain the problem between GS and newgrf? o_O
17:54:00 <TrueBrain> by not starting off calling it a problem
17:54:04 <TrueBrain> as it most likely is not a problem
17:54:12 <peter1138> http://fuzzle.org/~petern/ottd/nrt4.png vs http://fuzzle.org/~petern/ottd/nrt5.png
17:54:12 <TrueBrain> you might perceive it as a problem
17:54:14 <andythenorth> how do I teach TrueBrain the relationship between GS and newgrf?
17:54:17 <TrueBrain> but you already make it a problem calling it a problem :P
17:54:25 <Eddi|zuHause> TrueBrain: there's three sides to GRF developing: a) graphics, b) writing code, and c) which parts of the game can actually be influenced
17:54:35 <TrueBrain> first looks weird peter1138
17:54:58 <peter1138> Yeah, first is basically the original roads leaking out.
17:55:07 <Eddi|zuHause> a) maybe needs some toolchain to generate sprites from a 3d model (with zoom levels)
17:55:07 <peter1138> Even for trams!
17:55:07 <andythenorth> both look weird
17:55:15 <TrueBrain> Eddi|zuHause: how good are our GRF authors in those 3 jobs?
17:55:18 <andythenorth> but nrt5 is better
17:55:25 <TrueBrain> (as I am used to people being either good in a or b, not both)
17:55:38 <peter1138> Yes, both look weird. I think the road type needs to provide its own shading, which is somehow compatible with whatever base set?
17:55:42 <Eddi|zuHause> b) needs efficient ways to scale up the number of objects (includes, teplates, partial compiles, ...)
17:55:50 <andythenorth> peter1138: yes, but that's tricky, TMWFTLB?
17:55:58 <Eddi|zuHause> c) needs collaboration with game developers
17:56:26 <peter1138> andythenorth, that's down to the arists to draw!
17:56:26 <TrueBrain> sounds fair to me, yes
17:56:47 <andythenorth> TrueBrain frosch has a quote that is perfect for the successful newgrf authors: "Artists think he's a great programmer. Programmers think he's a great artist."
17:57:21 <glx> and you get zbase ;)
17:57:25 <andythenorth> covers a) and b)
17:57:38 <andythenorth> you all think I suck at code
17:57:44 <andythenorth> and the artists in forums think I suck at sprites
17:57:48 <TrueBrain> andythenorth: I am well aware, which lead me to ask that question; it might be that we found the few people that are good at both ;)
17:57:57 <andythenorth> meanwhile, more andythenorth newgrfs than most people :P
17:58:16 <Eddi|zuHause> TrueBrain: V453000 is somewhat good at a), i hear, b) you get monstrosities like pynml from andy, or CETS by me, and c) is somewhat lacking, like we have had multiple tickets from people like George which just sat there not being implemented
17:58:40 <andythenorth> I wrote a whole frigging essay on c
17:58:45 *** gelignite has joined #openttd
17:58:55 <glx> well George has silly ideas sometimes
17:59:07 <TrueBrain> Eddi|zuHause: I like you found a format to talk to me I can process :D Tnx for that :)
17:59:10 <andythenorth> 1000 words on newgrf https://paste.openttdcoop.org/p3supw2fm/g8z9ts/raw
17:59:30 <TrueBrain> glx: silly or not, creativity comes out of sillyness
17:59:59 <glx> and the main issue when people request a newgrf feature is not providing test cases
18:00:25 <andythenorth> and the test cases are hard to provide in nml
18:00:30 <andythenorth> because nml needs patched for that
18:00:35 <peter1138> glx, that and the X/Y problem.
18:00:38 <andythenorth> but nml can't be patched without the spec
18:00:44 <andythenorth> impedance mismatch
18:00:54 <Eddi|zuHause> i don't think i ever reached a "1000 words" mark on any essay that required "1000 words", but that maybe is a bit short? :p
18:01:05 <TrueBrain> Eddi|zuHause: I btw fully agree on b) being an issue; it took me 3 of you explaining me what things are before I could process it .. the manuals are ... difficult too :D
18:01:12 <TrueBrain> (steep learning curve, basically)
18:02:10 <andythenorth> I don't know how to explain that we can no longer take grf in isolation
18:02:14 <andythenorth> because GS :P
18:02:17 <TrueBrain> btw, other games somewhat 'solved' c) by forcing the base game to be a mod too
18:02:20 <TrueBrain> it is a funny approach
18:02:20 <Eddi|zuHause> TrueBrain: CETS was an attempt by me to cover b) a bit, and i was looking for someone who could do a) which was then filled by oberhümer who only did partial stuff
18:02:32 <andythenorth> there's no a) b) c) format for explaining GS <-> grf
18:02:39 <Eddi|zuHause> and on the c) part my contribution is pr#7000
18:03:00 <milek7> is sdl2 going upstream?
18:03:13 <peter1138> At some point probably yes
18:03:21 * andythenorth tries until TrueBrain stops slapping him
18:03:28 <Eddi|zuHause> milek7: depends on your definiton of "is" and "going", mostly :p
18:03:36 <TrueBrain> Eddi|zuHause: reminds me, you should fix the things in PR 7000 :P
18:03:52 <Eddi|zuHause> i should do loads of things...
18:03:58 <andythenorth> so TrueBrain grf doesn't have a comprehensive view of everything in the map / game loop, and we added GS to do that
18:04:04 <andythenorth> but GS is blind to grf and vice versa
18:04:13 <TrueBrain> Eddi|zuHause: :D
18:04:24 <peter1138> grf doesn't have a view of anything.
18:04:36 <Eddi|zuHause> i'm notorious for not doing things i should do...
18:04:36 <andythenorth> view / word of your choice
18:04:39 <peter1138> andythenorth going off on a tangent again :p
18:04:42 <TrueBrain> andythenorth: you are describing a problem; that is not really helping me :) I like that so far we have been describing what we want / like / etc
18:04:50 <TrueBrain> basically, and you should know better, work from use-cases
18:04:52 <TrueBrain> not from problems
18:05:05 <andythenorth> I've tried that before
18:05:13 <andythenorth> I just get shot down tbh
18:05:21 <TrueBrain> you are being emotional :D
18:05:28 <andythenorth> yes
18:05:39 <andythenorth> I'm bored of being told my use cases aren't valid
18:05:41 <Eddi|zuHause> starting from a specific use case has a problem with people replying "you're not seeing the big picture"
18:05:44 <TrueBrain> steer away from that :)
18:05:46 <andythenorth> the correct answer is to stop asking
18:05:58 <andythenorth> ^ what eddi said
18:06:16 <andythenorth> it's not helpful, so I don't do it
18:06:20 <TrueBrain> I like that for the last N minutes we are having a drama-free conversation (at least, from my perception) :)
18:06:31 <andythenorth> +1
18:06:35 <Samu> milek7, 240 companies branch ready?
18:06:50 <peter1138> Samu, did you rebase it yet?
18:06:57 <TrueBrain> but okay, if you like to talk about GS, I think it is important to talk in domains
18:07:08 <TrueBrain> for example, if I understand this all right, NewGRF isn't an actor himself
18:07:09 <andythenorth> yes
18:07:10 <TrueBrain> GS is only an actor
18:07:19 <TrueBrain> (at least, it should be)
18:07:20 <Samu> rebase had many failed hunks, too many for me to handle
18:07:21 <andythenorth> define actor?
18:07:37 <TrueBrain> GS can do stuff, change the map, randomly pop up and destroy your town
18:07:40 <TrueBrain> a NewGRF should never
18:07:47 <andythenorth> newgrf can in limited cases be an actor
18:07:50 <andythenorth> generally not
18:07:51 <TrueBrain> (in my perception, mind you :D)
18:07:57 <peter1138> andythenorth, it can't.
18:08:01 <peter1138> andythenorth, openttd is the actor.
18:08:25 <TrueBrain> GS is best described as a deity AI, in my book
18:08:27 <Eddi|zuHause> openttd is the actor, that's why NewGRF only consists of callbacks
18:08:33 <TrueBrain> ^^ :)
18:08:41 <glx> openttd asks newgrf, newgrf never decides by itself
18:08:45 <TrueBrain> that domain definition is, in my opinion, pretty nice
18:08:54 <andythenorth> ok so we know what actor means
18:08:55 <Eddi|zuHause> GS is the actor, it can run commands, but does not have any callbacks
18:09:44 <Eddi|zuHause> andy's problem is that industries have only local scope, but need to get ways to influence each other (going back to c))
18:09:46 <TrueBrain> I can get if a GS wants a NewGRF being installed, so to say
18:09:49 <milek7> Samu: not yet
18:10:04 <TrueBrain> Eddi|zuHause: a use-case, cool :D Tnx :)
18:10:12 <andythenorth> Eddi|zuHause: it's that plus more
18:10:18 <peter1138> "plus more" useful
18:10:23 <andythenorth> industry <-> town relations
18:10:28 <andythenorth> town <-> cargo relations
18:10:30 <Samu> GS's are limited to "just 1"
18:10:35 <andythenorth> GS <-> newgrf tech tree relations
18:10:40 <TrueBrain> can you give an example, to make it more 'understandable' for me?
18:10:55 <andythenorth> or just understandable :P
18:10:59 <Eddi|zuHause> "global economy" (map wide), "regional economy" (town wide), "local economy" (industry)
18:11:17 <andythenorth> industry closure is a known case
18:11:23 <andythenorth> newgrf controls industry closure
18:11:29 <peter1138> that's never possible
18:11:29 <TrueBrain> so ... if I bring all the coal to a single powerplant, that powerplant is paying less and less for my coal, kinda thing?
18:11:47 <andythenorth> that's already possible
18:11:55 <peter1138> openttd controls industry closuer, by using callbacks.
18:12:03 <peter1138> we already went through this.
18:12:12 <peter1138> closuer
18:12:16 <andythenorth> ok I change the words to one's you'll accept
18:12:18 <TrueBrain> if the game doesn't allow a NewGRF to close it, it will never close it, I guess?
18:12:23 <Eddi|zuHause> NewGRF can request this industry being closed, but it can't actually enforce it
18:12:28 <andythenorth> what?
18:13:02 <andythenorth> are we talking in theory, or actual reality of current openttd code?
18:13:29 <TrueBrain> lets go back to explaining to me what you would like to do
18:13:44 <peter1138> GS can say "close this industry", newgrf can say "why yes, thanks for asking, you may close this industry"
18:14:24 <TrueBrain> so for example the industry influencing industry, how should I look at that
18:14:37 <TrueBrain> or industry influencing towns
18:14:40 <Eddi|zuHause> NewGRF has the ability to write a sternly worded letter to openttd about closing the industry
18:14:52 <TrueBrain> those things are so generic to me, it doesnt really mean anything to me :D
18:16:32 <Eddi|zuHause> TrueBrain: things like having one big supermarket vs. many small shops in the town accepting consumer goods
18:16:41 <andythenorth> very simply, TrueBrain the industry decides whether to close or not
18:16:52 <andythenorth> on a monthly basis, and in response to a random cb
18:16:57 <TrueBrain> too technical
18:17:04 <TrueBrain> (especially the cb part :P)
18:17:11 <TrueBrain> so ... I have 2 towns
18:17:13 <TrueBrain> 3 industries
18:17:16 <TrueBrain> 4 cargos
18:17:23 <TrueBrain> what is happening because of what?
18:17:32 <TrueBrain> more in that idea, I like an example
18:17:35 <TrueBrain> (functional level)
18:17:58 <andythenorth> stuff like: cargo a -> industry 1 -> cargo b -> town
18:18:17 <andythenorth> industry 0 -> cargo a -> industry 1 -> cargo b -> town
18:19:01 <Eddi|zuHause> TrueBrain: random example, you have a medieval economy with a sawmill that is water-powered. then in the next town an industry opens which uses steam power for milling saw, at 100 times the previous rate. how does the water-powered sawmill know it is being technologically obsoleted and starved of customers?
18:19:58 <TrueBrain> Eddi|zuHause: hmm .. trying to process ..
18:20:23 <TrueBrain> if a company is still running a train to that water-powered one, does the industry care?
18:20:29 <Eddi|zuHause> "for milling saw"... which idiot wrote that?
18:20:41 <TrueBrain> I fully understood you, so that is fine :)
18:21:20 <Samu> is that where a GS can be useful?
18:21:33 <TrueBrain> okay, falling back to the i) global ii) regional, iii) local, is it fair to say you want an industry to look around itself to see what other industries are doing?
18:22:01 <TrueBrain> and, just to validate, NewGRFs only operate in iii) atm, right?
18:22:19 <TrueBrain> (by what is given to them from OpenTTD via cbs?)
18:22:24 <Eddi|zuHause> TrueBrain: i meant, the NewGRF wants to enforce this technological obsolescence by closing the industry despite trains running
18:22:45 <TrueBrain> and not so much based on dates, but more based on what happens around it?
18:22:50 <Eddi|zuHause> yes
18:23:18 <TrueBrain> so .. to validate: a town decides to build an industry nearby, which is more modern, which causes the industry in another town to close, because it is obsolete?
18:23:40 <Eddi|zuHause> town, or player funded, or whatever
18:23:47 <TrueBrain> that would be an interesting gameplay
18:23:56 <TrueBrain> that is not a level OpenTTD currently operates on
18:24:01 <Samu> GS
18:24:41 <TrueBrain> personally I have always been interested in the example above .. in OpenTTD you can move all the cargo to a single industry
18:24:44 <TrueBrain> and it accepts ALL OF IT
18:24:49 <TrueBrain> for the same fucking price
18:24:54 <TrueBrain> which is bananas to me :P
18:25:04 <TrueBrain> but I guess that can be solved in NewGRFs already, as that is fully local information
18:25:17 <Eddi|zuHause> there's different approaches to that, all are somewhat unsatisfactory
18:25:39 <TrueBrain> Satisfactory is a cool game, in contrast :D
18:25:50 <Eddi|zuHause> like, you can lower the price calculation based on the influx, but cargodist won't care about that and send cargo there anyway
18:26:02 <TrueBrain> haha, cargodist is being a bitch here ofc
18:26:09 <Eddi|zuHause> or, you can make a hard cap on the stockpile, also confusing cargodist
18:26:11 <michi_cc> An then of course you get some part of the player base crying bloody murder because the NewGRF/Openttd just disrupted their carefully constructed SRNW.
18:26:22 <TrueBrain> SRNW?
18:26:42 <michi_cc> Self-regulation network, look it up on openttdcoop if you dare.
18:26:48 <TrueBrain> and yeah, they are different types of gameplay; creative vs survival is similar in discussion :)
18:26:54 <LordAro> https://xkcd.com/1172/
18:27:04 <andythenorth> introducing cdist to this discussion :D
18:27:06 <andythenorth> brave
18:27:42 <Eddi|zuHause> just trying to paint a picture that c) is actually a hard problem :p
18:27:49 <michi_cc> Basically trains controlled purely by signals and other trains, and not by orders.
18:28:04 <TrueBrain> Eddi|zuHause: funny enough, for me it doesn't feel like difficult, more as poorly scoped atm :)
18:28:14 <TrueBrain> michi_cc: brrrr :P
18:28:32 <TrueBrain> but I do get that c) is important in this story
18:28:45 <TrueBrain> and given NewGRF and GS are both in their own domain
18:28:47 <Eddi|zuHause> michi_cc: it's not very self-regulating if it can't cope with industries opening and closing? :p
18:29:03 <TrueBrain> btw, did you all notice andythenorth thought it was an example to just chain industries and towns via cargos? :D
18:29:10 <TrueBrain> I fully expected he was typing more, but seemly he was not :P
18:29:12 <TrueBrain> <3 <3
18:29:15 <michi_cc> Eddi|zuHause: Did I miss the self-moving stations? :D
18:29:15 <andythenorth> no I started simple
18:29:21 <andythenorth> and stopped to see if simple worked :P
18:29:34 <TrueBrain> I was asking for examples for your use-case :)
18:29:54 <Eddi|zuHause> michi_cc: that's realistic, like at the bottom of an open-pit mine they got movable rails :p
18:30:16 <TrueBrain> self-building rails are next?
18:30:20 <Eddi|zuHause> michi_cc: they got special trains that just pick up a rail and put it down 10m next to it :p
18:30:45 <TrueBrain> okay, given we supply the tools and the integration, is someone going to be able to build a mod that takes care of all this
18:30:49 <andythenorth> eddi's case with industries closing is trivial
18:30:50 <TrueBrain> looking at other games, yes
18:30:53 <andythenorth> it's already covered
18:30:55 <TrueBrain> Factorio has several total conversions
18:31:18 <Eddi|zuHause> andythenorth: it's rudimentary covered
18:31:30 <andythenorth> yes rudimentary is the exact word
18:31:47 <TrueBrain> any more examples Eddi|zuHause?
18:32:01 <TrueBrain> not involving industry closure
18:32:06 <andythenorth> town growth
18:32:13 <TrueBrain> too vague; try again plz
18:32:34 <andythenorth> I am waiting for Eddi|zuHause to pose a nice example
18:32:40 <Eddi|zuHause> TrueBrain: there's a feature in openttd that tries to balance the number of industries on the map, but the NewGRF sometimes misses ways of influencing that distribution algorithm
18:32:49 <TrueBrain> I see you are participating nicely andythenorth ;)
18:33:05 <TrueBrain> nice Eddi|zuHause :)
18:33:11 <michi_cc> Non-serious and completely hyperbolical summary of andy's problem: Players complain that FIRS industries close, andy faffs around with non-satisfactory solutions and declares NewGRF, GS and everything broken. My conclusion: OTTD industry lifetime algorithm is bad. (Sorry, andy :P)
18:33:12 <andythenorth> it's a long standing dynamic where Eddi|zuHause reframes my problems
18:33:13 <TrueBrain> I can imagine that being a wish :D
18:33:38 <andythenorth> michi_cc: kinda accurate
18:33:47 <TrueBrain> I like framing this against global and local
18:34:01 <TrueBrain> NewGRFs are expected to stay local, GS are expected to be global
18:34:06 <andythenorth> michi_cc: to be specific, what I declare broken is being told to solve that problem in GS
18:34:39 <TrueBrain> so I can fully imagine that FIRS cannot solve this issue
18:34:44 <TrueBrain> as it is a problem in the global domain
18:34:53 <andythenorth> it is
18:35:03 <andythenorth> town registers somewhat blur the picture
18:35:05 <TrueBrain> so many solutions flash by my eyes atm :P
18:35:13 <Eddi|zuHause> TrueBrain: there's a feature called "Town Effect" which is a property of cargos. if a cargo with a "town effect" gets delivered anywhere near the town, a flag is set in the town "this type of cargo got delivered". but it's use case is too specific to the original game features of "this town only grows if food and water is provided"
18:35:42 <andythenorth> you probably need to read that twice
18:35:45 <TrueBrain> lol; yeah, make sense :D
18:35:54 <TrueBrain> nah, it was one of the first things I did with GS
18:35:58 <TrueBrain> custom town goals
18:36:01 <TrueBrain> I fell right into thatone :P
18:36:15 <Eddi|zuHause> exactly
18:36:45 <andythenorth> TrueBrain: so somewhat there is rudimentary communication possible on a town level
18:36:52 <andythenorth> towns have registers that any industry in that town can write to
18:36:54 <andythenorth> and read
18:37:21 <andythenorth> it's used by at least one grf to make electricity for other nearby industries
18:38:10 <TrueBrain> so mods that cause urbanization are currently not possible, I guess .. where a city gets modern enough that other towns lose population to grow that city
18:39:00 <Eddi|zuHause> i wanted to write a gamescript like that, where a city incorporates nearby towns, which become suburbs
18:40:03 <TrueBrain> okay, interesting stuff
18:40:04 <Eddi|zuHause> pikka had a town grf where towns get "rural" or "urban" characteristics, with different kinds of houses
18:40:15 <Samu> why make GS's do that which should be done in the game core, instead?
18:40:32 <TrueBrain> Eddi|zuHause: and the combination is epic win :)
18:40:48 <Samu> or even NewGRF
18:40:59 <Eddi|zuHause> these things could never properly communicate with the current mechanisms
18:41:14 <TrueBrain> yup
18:41:19 <TrueBrain> domain separation is a nice thing
18:41:21 <TrueBrain> till it isn't :)
18:41:54 <TrueBrain> okay, so c) is more than just adding stuff to the game
18:41:59 <TrueBrain> we currently also lack a clean way of doing so
18:42:10 <andythenorth> do I need to put samu on /ignore finally?
18:42:21 <peter1138> andythenorth, likely
18:42:27 <Samu> what?
18:42:34 <TrueBrain> where NoAI has a clear API with some clear fundamentals to validate additions too
18:42:40 <Eddi|zuHause> TrueBrain: https://www.xkcd.com/2044/
18:42:44 <andythenorth> 'why use content APIs instead of modding the code' is a day 1 thing Samu
18:42:53 <andythenorth> it's basics
18:42:55 <TrueBrain> Eddi|zuHause: that is the biggest issue, yes
18:42:58 <TrueBrain> you want to avoid that
18:43:27 <michi_cc> It is almost possible today to do something like this: Houses define a town zone where they can appear. If NewGRFs properly sorted houses into zones, you only need GS control over the town zone sizes to get rural/urban.
18:43:29 <Eddi|zuHause> TrueBrain: that's why we don't want to give in to andy's demand of merging GS into GRF :p
18:43:33 <TrueBrain> so, in summary, the demand is that we can have something on the global level work together with something on the local level
18:44:06 <andythenorth> Eddi|zuHause: we should merge GS into grf
18:44:28 <Eddi|zuHause> michi_cc: imho it's more than "just give GS control over town zones"
18:44:37 <michi_cc> Maybe garnish that with non-circular town zones, to allow local urban city centers in the sense of suburbs.
18:44:52 <Eddi|zuHause> i, however, do think the current town zones are too rigid
18:45:16 <andythenorth> nielsm has the regions idea
18:45:16 <TrueBrain> okay, I am hungry .. well, I have been for over an hour :) But I liked this conversation too much :D
18:45:17 <Samu> some of the stuff that GS can control, should be something the main game code should do instead. what was wrong with my statement?
18:45:21 <TrueBrain> tnx a lot all, very informative :)
18:45:21 <andythenorth> which is thoroughly interesting
18:45:36 <Eddi|zuHause> i'm having that same problem, TrueBrain :p
18:45:50 <andythenorth> my kids are hungry :P
18:45:52 <andythenorth> oof bad parenting
18:46:07 <TrueBrain> my head needs time to give this all a place .. too many solutions popping up .. we first need to go back to the solution space :D
18:46:12 <TrueBrain> back later :)
18:46:55 <michi_cc> Well, the town zones things is more of an example that we already have possible interfaces in many situations. NewGRFs can already define quite some properties of houses to characterise them. What's missing is just a way for a GS to make use of these properties to shape town growth.
18:48:10 <glx> hmm it seems 2 of the 3 operator< I implemented are not working (never called) and of course I only checked the working one
18:48:31 <michi_cc> And as long as both sides try to adhere to the interface, there's no need for any specific NewGRF <-> GS interaction. (Of course, if a NewGRF puts a skyscraper into the zone for simple houses, the result is non-satisfactory.)
18:49:16 <Eddi|zuHause> glx: we need a code coverage test? :)
18:49:38 <glx> not sure it would help there
18:50:55 <andythenorth> michi_cc: there's additional grit in the wheels with GS
18:50:59 <andythenorth> in that one can only have one
18:51:02 <glx> so FiosItem::operator< works but WindowDesc::operator< and SmallMap::operator< are not used by sort
18:51:10 <andythenorth> which might be fine, but makes it hard to solve newgrf problems in GS
18:51:21 <andythenorth> and multiple GS doesn't look very wise
18:52:59 <peter1138> glx, oops :-)
18:53:13 <Eddi|zuHause> michi_cc: an example where that approach failed is "smooth economy"
18:54:29 <andythenorth> such a candidate for removal :)
18:56:40 <Samu> uhm... :(
18:58:33 <andythenorth> eh I actually have to reimplement FIRS industry closure for v4
18:58:57 <andythenorth> the addition of 16 cargos to industries broke the old implementation
18:59:03 <andythenorth> so who's got ideas? o_O
18:59:12 <andythenorth> this is a real use case
19:07:22 *** Wormnest_ has quit IRC
19:09:18 <Eddi|zuHause> i'm almost certainly going with a "no closure" option
19:09:56 <Eddi|zuHause> or "no closure unless technologically obsoleted"
19:10:34 *** frosch123 has joined #openttd
19:12:44 <Samu> no wonder newgrfs conflict with each other
19:18:13 <andythenorth> Eddi|zuHause: currently https://github.com/andythenorth/firs/blob/v4-development-track/src/templates/industry_secondary.pynml#L49
19:18:23 <andythenorth> your first case is met :P
19:18:25 <Eddi|zuHause> not opening that :p
19:18:41 <andythenorth> it won't hurt much
19:19:38 <andythenorth> unrelated: I can probably micro-optimise some FIRS compile time there
19:19:49 <andythenorth> there's no need to declare the callbacks for every economy
19:20:46 <andythenorth> that will save a few action 3s
19:23:49 <glx> oh SmallMap::operator< may work, but as SortByKey is never used it's hard to test
19:24:36 <Samu> How to create a Tag?
19:26:18 <Samu> gonna try create a SamuPatchPack for peter1138
19:26:21 <Samu> hehe
19:27:48 <Artea> seems I have 2 clients in my server
19:28:02 <Artea> wondering how things is going
19:28:55 <Artea> all I know is my company is going bankrupt
19:28:56 <Artea> :(
19:30:01 <Artea> hmmm
19:30:05 <Artea> need change ticks again
19:31:17 <DorpsGek_II> [OpenTTD/OpenTTD] DerDakon commented on pull request #7270: Introduce CMake (and removing all other project-related code) https://git.io/fjm8G
19:37:39 <Artea> how fun
19:37:48 <Artea> 2 clients, 1 company
19:38:08 <peter1138> Co-op!
19:38:19 <peter1138> I got distracted by my NodeMCUs.
19:38:28 <peter1138> What was I doing?
19:38:34 <glx> ok if I had a SortByKey call it fails to compile, so clearly operator< was not working ;)
19:39:23 <peter1138> Odd.
19:39:58 <glx> SmallMap is templated stuff all in a header
19:40:15 <glx> so I guess unused functions are just never compiled
19:40:59 <LordAro> indeed so
19:41:16 <LordAro> i'd suggest if it's not used at all, it should just be deleted
19:43:53 <glx> probably yes, and it looks wrong anyway as it's just doing a->first - b->first (or a.first < b.first), and that doesn't work very well for char* keys ;)
19:52:00 *** Supercheese has joined #openttd
19:56:31 <DorpsGek_II> [OpenTTD/OpenTTD] glx22 opened pull request #7507: Fix 801cbea9c: operator< is not always the best idea https://git.io/fjm8r
20:01:54 <peter1138> Hm
20:02:49 <peter1138> And they're sorted just to get a nice file on first write? :-)
20:03:19 <Artea> sad I cannot compile OTTD on my VPS
20:04:02 <peter1138> Why not?
20:04:13 <Artea> my OpenSSL is broken
20:04:30 <Artea> and is CentOS 7
20:04:37 <peter1138> Broken?
20:04:44 <Artea> not sure if can compile from source code
20:05:03 <Artea> yeah, from yum is one version, but tried to compile from source
20:05:09 <Artea> so is pretty much conflicting
20:05:23 <Artea> can't compile UnrealIRCd correctly
20:05:36 <Artea> my ZNC had to be non-SSL
20:05:48 <Artea> a real mess
20:06:04 <Artea> but that was like 2 years ago, when I was "full on" IRCds
20:06:41 <Artea> now my VPS only serves to ZNC, to hold nicks in some servers
20:07:12 <Artea> now got that tickle to return
20:07:23 <Samu> i fail at mixing branches
20:07:45 <peter1138> Merge.
20:08:09 <peter1138> Artea, ah, you broke it yourself.
20:08:22 <peter1138> Artea, generally you want to install your distributions development libraries, not from source.
20:08:25 <Artea> well, older version of OpenSSL in yum
20:09:15 <Artea> vs new version on official site
20:09:26 <milek7> openttd requires openssl?
20:09:36 <Artea> no
20:09:45 <Artea> far I know, no
20:10:05 <peter1138> There is that :p
20:10:33 <Artea> openssl x86_64 1:1.0.2k-16.el7_6.1
20:10:40 <Artea> seems they kinda worked on that
20:10:56 <peter1138> Okay, but what stops you building OpenTTD?
20:11:18 <DorpsGek_II> [OpenTTD/OpenTTD] michicc approved pull request #7507: Fix 801cbea9c: operator< is not always the best idea https://git.io/fjm8Q
20:11:58 *** nielsm has joined #openttd
20:12:02 <Artea> no GUI
20:12:17 <Artea> but I'll give a try
20:12:36 <milek7> --enable-dedicated
20:12:41 <Samu> i dont understand rebases, the commits are getting placed deep down into the history...
20:12:43 <andythenorth> so standard tankers recolour per cargo, e.g. https://dev.openttdcoop.org/attachments/download/9399/tankers_eh.png vs https://dev.openttdcoop.org/attachments/download/9400/tankers_eh_2.png
20:12:56 <andythenorth> which part of the cryo tankers shall I recolour?
20:13:43 <Eddi|zuHause> i like the 2nd one slightly more
20:14:00 <Artea> same
20:14:09 <Eddi|zuHause> but the modern black one looks a bit wrong
20:14:22 <andythenorth> that's the standard tanker :)
20:14:28 <andythenorth> they're 'done'
20:14:37 <andythenorth> but the white with yellow stripe are not 'done'
20:14:48 <Eddi|zuHause> maybe the CC part shaded a bit darker?
20:15:05 <Eddi|zuHause> the dark and bright colours bite somewhat
20:15:16 <andythenorth> they do a bit
20:15:37 <andythenorth> so on the cryo tankers I could recolour any of:
20:15:42 <andythenorth> * the yellow stripe
20:15:44 <andythenorth> * the chassis
20:15:50 <andythenorth> * the white tank
20:15:52 <andythenorth> * the CC tank
20:17:08 <Eddi|zuHause> maybe i don't understand which exact thing you're talking about
20:17:28 <andythenorth> cargo specific recolours
20:17:38 <andythenorth> the standard tankers recolour by cargo
20:17:43 <andythenorth> going to do same for cryo tanker
20:17:45 <Eddi|zuHause> what's depicted in the pictures?
20:18:06 <andythenorth> the first one has labels
20:18:27 <andythenorth> tankers, cryo tankers, food tankers
20:18:48 * andythenorth is very hungry, is it lunch time/
20:18:49 <Eddi|zuHause> and what's the cargo difference?
20:18:59 <Eddi|zuHause> in which timezone?
20:19:04 <andythenorth> yes
20:22:08 <andythenorth> chlorine tanks tend to blue it seems https://www.greenbrier-europe.com/fileadmin/user_upload/Zags_53m_v.jpg
20:22:18 <andythenorth> using cherry-picked evidence :P
20:22:21 <peter1138> Samu, can you make an AI that learns about cash exploits? :p
20:22:56 <peter1138> I guess our AIs don't really "learn"
20:23:31 <Eddi|zuHause> andythenorth: i meant, the standard tanker you depict in 2 colours, what's the cargo?
20:23:52 <andythenorth> oh the silver is petrol, the black is oil or coal tar or something
20:24:02 <andythenorth> not everything gets a unique colour, but I try ;p
20:24:48 <Eddi|zuHause> what are your current cargo options for cryo tankers? (and what cargo class?)
20:24:55 <andythenorth> there's no class
20:25:06 <andythenorth> it just has labels for oxygen, and chlorine
20:25:13 <andythenorth> it will probably get nitrogen and ammonia
20:25:39 <andythenorth> we don't have a class for 'liquified gas under pressure'
20:25:48 <Eddi|zuHause> recolouring is probably not necessary...
20:25:59 <andythenorth> that answer is quite appealing
20:26:05 <andythenorth> it is a lot less work
20:26:17 <andythenorth> let's go with that
20:28:25 <Artea> seems it works
20:28:37 <Artea> is compiling after had to install some packages
20:30:52 <Artea> install: cannot change permissions of ‘///usr/local/share/pixmaps’: No such file or directory
20:32:30 <Artea> I have my VPS broken
20:32:45 <Artea> seems I need to backup the znc folder and reinstall all over
20:32:53 <peter1138> Well, you don't need to do make install
20:33:03 <peter1138> But if you do do make install, you need to sudo to root.
20:34:36 <peter1138> Hmm, I guess I should investigate this money exploit.
20:34:49 <Artea> worked, Thanks
20:35:22 <TrueBrain> yw
20:35:42 <peter1138> :p
20:35:47 <TrueBrain> :D
20:37:31 <andythenorth> let's see what ideas TrueBrain has about why industries might close
20:37:46 <andythenorth> what's the default?
20:38:16 <TrueBrain> 12
20:38:40 <andythenorth> I think it's 5 :P
20:40:39 <Samu> stupid nullptr always ruining rebases
20:41:41 <TrueBrain> I was thinking about NML .. so for example doing that in Squirrel is not really helping I guess, as the problem is not so much the language, but more the undescriptiveness of it, and the lack of being able to go higher in abstraction
20:41:42 <TrueBrain> interesting
20:42:28 <TrueBrain> basically you want a more strong typed language .. and an existing
20:42:32 <TrueBrain> that would I guess help out
20:43:28 <Artea> nice
20:43:47 <Artea> seems than compiles very well
20:43:50 * andythenorth looking in industry_cmd for actual closure rules for secondary industry :P
20:43:55 <andythenorth> not finding it
20:44:31 <Artea> but will try after cleanup VPS
20:44:37 <andythenorth> L2661?
20:45:13 <andythenorth> https://github.com/OpenTTD/OpenTTD/blob/master/src/industry_cmd.cpp#L2660
20:45:49 <andythenorth> so it varies by smooth economy or not
20:46:02 <andythenorth> what does Chance16 do with that ternary?
20:46:12 <TrueBrain> I am curious what happens if I try to abstract NML to Python .. just to understand NewGRF a bit more ..
20:49:25 <DorpsGek_II> [OpenTTD/OpenTTD] SamuXarick updated pull request #7094: Fix #7088: Retrieve an appropriate name for a non-existant AI/GS when displaying a textfile https://git.io/fhrqY
20:50:17 <Artea> andythenorth: Smoothness ?
20:50:20 <Samu> sorry, I don't understand rebases, I'm just updating everything
20:50:39 <Artea> I have in my server
20:50:45 <Artea> but also have Inflation
20:50:59 <Artea> is gets weird hard after 100 years
20:51:56 <Artea> * weirdly
20:58:59 <Eddi|zuHause> TrueBrain: try to read the nmlc source? :p
20:59:33 <TrueBrain> no tnx
20:59:35 <TrueBrain> I'm good
20:59:57 <Eddi|zuHause> andythenorth: in smooth economy it doe Chance16(1,180) and in nonsmooth it does Chance16(1,2)?
21:00:27 <frosch123> that's because it is called monthly in smooth, and randomly in non-smooth
21:00:57 <andythenorth> so in non-smooth, I don't get a wave of *everything* unserviced closes after 5 years?
21:01:09 <frosch123> i..e the chance16(1,2) is mulitplied by another chance in some other place
21:01:40 <nielsm> yeah production change is checked much more often in smooth than in classic
21:01:40 <frosch123> no, you always get the 5 year thing
21:01:57 <frosch123> to remove the 5 year thing you need to randomse the industry age at game start, instead of making them all start at age 0
21:02:13 <andythenorth> could do that based on game seed?
21:02:25 <frosch123> yes, something like that
21:02:59 <Eddi|zuHause> i would solve that differently: the 5 year period doesn't start at game start, but when the first company builds a station in this region
21:03:14 <Eddi|zuHause> where we need to decide how a region is counted
21:03:41 <Eddi|zuHause> so the "economy" is slowed down in areas that are untouched by any player
21:03:52 <frosch123> then you also need to consider regons when spwaning new industries
21:03:59 <Eddi|zuHause> yes
21:04:09 <frosch123> otherwise areas with players decline, and areas withuot overcrowd with industries
21:04:14 <frosch123> though that may be kinda funny :p
21:04:30 <Eddi|zuHause> it gives players incentive to move to more areas :)
21:04:35 <andythenorth> regions patch :P
21:05:05 <nielsm> yeah I remember designing a scenario with carefully placed industries, and because nobody served them they all shut down and the ideas of the scenario went to the dump
21:05:28 <DorpsGek_II> [OpenTTD/OpenTTD] glx22 merged pull request #7507: Fix 801cbea9c: operator< is not always the best idea https://git.io/fjm8r
21:05:44 <TrueBrain> ideally such logic is always in some mod
21:05:47 <TrueBrain> that allows for some freedom :D
21:06:39 <Artea> bah
21:06:48 <Artea> small trains with small paths sux
21:06:57 <Artea> 5,000 euros is nothing
21:07:12 <Artea> when engine costs 47k
21:07:14 <Eddi|zuHause> TrueBrain: but such EconomyScript would need to be separate from GameScript?
21:07:45 <Eddi|zuHause> less powerful than a GameScript, but more NewGRF interactions?
21:07:48 <TrueBrain> don't know .. not really thinking in solutions as far as that goes
21:07:55 <TrueBrain> I can only see it being a mod
21:08:13 <TrueBrain> meaning I can also test my fucky ideas of how economy should behave
21:10:30 <Eddi|zuHause> TrueBrain: well, with the current framework, there are 3 approaches to this: 1) modify the game core, hardcoding the logic and providing tweakables to NewGRF, 2) offloading it to GameScript, potentially conflicting with non-economy GameScripts (as there can be only one), or 3) allowing a new kind of mod
21:11:06 <TrueBrain> and this happens when you think in solutions :D
21:11:14 <Samu> can I vote?
21:11:26 <TrueBrain> it is how my head works btw .. I always first draw up what I want to get out of it, in more vague terms
21:11:28 <Eddi|zuHause> that is how i think
21:11:31 <TrueBrain> like .. I want a mod to define econmy
21:11:38 <TrueBrain> I want a mod to define town growth
21:11:47 <TrueBrain> then we can look at the methods available
21:11:53 <andythenorth> sometimes we need a whiteboard :P
21:12:00 <TrueBrain> which spins up a ton of alternatives in my head
21:12:11 <TrueBrain> for example, say, just say, we abstract NML to Python, make it more strongly defined
21:12:17 <TrueBrain> that also allows to add GS-ish things in there
21:12:20 <TrueBrain> which you can compile to Squirrel
21:12:38 <TrueBrain> as ... NewGRF and Squirrel are just tools, a technical solution
21:12:39 <Eddi|zuHause> embed squirrel into GRFs?
21:12:42 <TrueBrain> we can ... mold them how-ever
21:12:47 <TrueBrain> possibly .. doesn't have to
21:12:55 <TrueBrain> the Python can compile into one or more NewGRFs and a GS, for example
21:13:07 <TrueBrain> as glueing things together ... fuck, we can do that, no problem
21:13:10 <TrueBrain> inside and outside of OpenTTD
21:13:14 <TrueBrain> I mean .. that is easy
21:13:32 <TrueBrain> (basically, mapping shit is easy)
21:13:43 <Eddi|zuHause> TrueBrain: i see a user problem with separating NewGRF and GS like that, because you can't make users activate both
21:13:51 <TrueBrain> so we create that
21:13:55 <TrueBrain> that is just a lack of imagination :)
21:14:50 <TrueBrain> btw, Eddi|zuHause, what you mention is a bigger problem: we have no presets of some sorts
21:15:10 <Eddi|zuHause> then you get a user problem where a person wants to use GenericIndustryGRFScript but also FavouriteGoalScript, and they block each other because of There Can Be Only One
21:15:17 <TrueBrain> I would love if in OpenTTD you can present your collection of NewGRFs as a single set, so people know they have a good experience :)
21:15:28 <andythenorth> packaged scenarios
21:15:29 <TrueBrain> again, you are thinking too much in the current solutions :)
21:15:32 <TrueBrain> it is holding you back!!! :D
21:15:57 <TrueBrain> if we think in what we would like, it is easier to see what we are missing
21:16:12 <Eddi|zuHause> i do that, because i have to assume we are going to have incremental solutions
21:16:27 <TrueBrain> meh; problem for future me
21:16:42 <TrueBrain> present me is more interested if there is something that we consider a good "point on the horizon"
21:17:08 <Eddi|zuHause> see, and i want to have a clearer path how to get to that point
21:17:23 <Eddi|zuHause> i can imagine lots of points on the horizon that i am never going to get to
21:17:46 <TrueBrain> I fully understand what you say (trust me, I do); nevertheless, it is good to sometimes ignore that completely
21:17:48 <Eddi|zuHause> i need to crystalize out the ones i can realistically see us getting towards
21:17:50 <peter1138> hi.
21:17:52 <TrueBrain> and just freely spin what you would like to have :)
21:18:06 <TrueBrain> we can look at the path to take after that :)
21:19:07 <Eddi|zuHause> TrueBrain: i can also do the opposite thing. when someone proposes a small incremental step, i can go "but when you start going that step, we also need X, Y and Z which lie in that same general direction 10 steps further"
21:19:23 <DorpsGek_II> [OpenTTD/OpenTTD] PeterN opened pull request #7508: Style: Fix alignment after NULL -> nullptr change. https://git.io/fjm4i
21:19:44 <TrueBrain> in dutch we say: "beren op de weg zien"
21:19:53 <TrueBrain> freely translated, always seeing problems
21:19:56 <LordAro> pretty sure "Style" isn't an improved prefix
21:20:04 <TrueBrain> sadly, this often doesn't promote creativity
21:20:09 <TrueBrain> as you constantly fixating people on a single problem
21:20:13 <TrueBrain> instead of on the total problem
21:20:34 <peter1138> LordAro, improved?
21:20:38 <andythenorth> what if the main game loop was content?
21:20:39 <TrueBrain> (as now too, instead of thinking what solutions we have, I am talking about the process :P)
21:20:46 <LordAro> peter1138: ...approved
21:20:49 <Eddi|zuHause> TrueBrain: that's not really what i meant
21:21:03 <TrueBrain> I don't mean it in a bad way Eddi|zuHause, as I seriously appreciate it :)
21:21:16 <peter1138> Oh right, I committed in my repo which doesn't have the commit hooks :/
21:21:25 <TrueBrain> bad peter1138 :P Local commit hook! :D
21:22:04 <Eddi|zuHause> TrueBrain: put the commit hooks into the repo so that every clone automatically has them? :)
21:22:13 <TrueBrain> you can't :(
21:22:20 <TrueBrain> well, code-wise, sure
21:22:21 <Eddi|zuHause> :/
21:22:26 <TrueBrain> but .. people still have to enable it
21:22:33 <TrueBrain> we can do a submodule to make it a bit easier, I guess
21:22:40 <TrueBrain> honestly, I also don't have it installed
21:22:43 <TrueBrain> I am just that good that I don't need it
21:22:46 <TrueBrain> (PUKE TIME)
21:22:53 <peter1138> I have them in OpenTTD/ but not OpenTTD2/ ;)
21:23:22 <peter1138> (I tend to have two on the go so that I can compare clean with modified at the same time.
21:23:25 <peter1138> )
21:23:30 <Eddi|zuHause> peter1138: that's what i meant, currently every clone must set them up manually
21:23:33 <DorpsGek_II> [OpenTTD/OpenTTD] PeterN updated pull request #7508: Style: Fix alignment after NULL -> nullptr change. https://git.io/fjm4i
21:24:07 <peter1138> Maybe I should do the same for all the SLV_ stuff that *someone* left a mess...
21:24:22 <Eddi|zuHause> would be easier if every clone automatically had them, and maybe users can manually remove them
21:24:55 <peter1138> Then we'd have to ensure our hooks are cross-platform...
21:25:30 <TrueBrain> ugh, that too
21:25:55 <TrueBrain> in the end, it is for your own benefit to take the effort ... otherwise the CI will shoot it down anyway
21:26:35 <TrueBrain> why are there so few typed scripting languages
21:26:38 <peter1138> Would be nice if github would just refuse the push :/
21:26:40 <TrueBrain> I know the answer, but it nanoys me
21:26:45 <TrueBrain> peter1138: yup ..
21:26:52 <TrueBrain> make a request, to allow installing pre-commit hooks?
21:26:58 <TrueBrain> pre-push? :)
21:26:59 <peter1138> But I guess that means github would have to run the pre-commit hook.
21:27:06 <Eddi|zuHause> there should be an easily accessible development howto for things like making a github clone, checking out, pushing, pr-ing, hooks and stuff
21:27:11 <TrueBrain> with GitHub Actions they allow all kind of funky stuff
21:27:13 <TrueBrain> so I don't see why not this
21:27:23 <TrueBrain> Eddi|zuHause: I expect a PR now :D
21:27:35 <andythenorth> Eddi|zuHause: https://github.com/OpenTTD/OpenTTD/blob/master/CONTRIBUTING.md
21:27:46 <TrueBrain> so both Lua and Squirrel are garbage when talking about being 'typed' in any form or shape
21:27:49 <TrueBrain> TypeScripting?
21:27:51 <andythenorth> it always pays to check :(
21:28:21 <TrueBrain> or an NML linter
21:28:21 <TrueBrain> lol
21:28:51 <frosch123> nml is too close to newgrf syntax imho
21:29:00 <TrueBrain> I found that out today, yes
21:29:04 <TrueBrain> with great tnx to a few people here :)
21:29:11 <TrueBrain> its just a mapping
21:29:14 <TrueBrain> not a higher language
21:29:34 <TrueBrain> so I was not surprised people wrote higher languages around NML :)
21:29:44 <Eddi|zuHause> like i said, it was probably meant to go higher, but fell short on that aim
21:29:45 <frosch123> but whatever you do, the most difficult part will always be that you modify the arcane built-in mechanics
21:30:00 <TrueBrain> arcane built-in?
21:30:04 <andythenorth> is there a scale of arcane frosch123 ?
21:30:08 <TrueBrain> (my language translator failed, sorry :( )
21:30:42 <frosch123> other games use the same language for both the base game and the add-ons
21:30:55 <andythenorth> yes
21:31:03 <Eddi|zuHause> TrueBrain: the existing newgrf interface has some weird limits in places, which are difficult to enforce if you abstract away too much
21:31:07 <frosch123> but for ottd you need to understand how ottd works, before you can mod it
21:31:24 <andythenorth> this is probably not what frosch123 means TrueBrain, but worth a look :) https://newgrf-specs.tt-wiki.net/wiki/VehicleRefitting
21:31:37 <TrueBrain> what am I looking at?
21:31:44 <frosch123> andythenorth: no, that is just techdebt
21:31:46 <TrueBrain> tnx Eddi|zuHause :)
21:32:07 <andythenorth> so some matches and petrol would get rid of that one
21:32:12 <frosch123> i don't agree with eddi
21:32:16 <TrueBrain> so AI/GS runs on just 26 events? Damn
21:32:38 <TrueBrain> okay, so what do you mean frosch123? (sorry, I really do not know what 'arcane built-in mechanics' means)
21:32:40 <frosch123> none of my scripts ever used the events :p
21:32:47 <frosch123> i just polled for changes
21:33:04 <TrueBrain> ET_DISASTER_ZEPPELINER_CRASHED,
21:33:04 <Eddi|zuHause> TrueBrain: like in hardware design, you have high level languages but if the low level tools can't correctly guess your intention, the result is not synthezizable in the low level layouting processes, and thus cannot be used
21:33:04 <TrueBrain> ET_DISASTER_ZEPPELINER_CLEARED,
21:33:06 <TrueBrain> my favorite :)
21:33:08 <andythenorth> frosch123: can you give any examples of specific mechanics?
21:33:19 <frosch123> TrueBrain: people use town zones, but none knows how they work
21:33:27 <frosch123> people use vehicle profit, but none knos how the work
21:33:32 <TrueBrain> ah :)
21:33:34 <frosch123> people use tile animation, but noone knows how it works
21:33:38 <TrueBrain> okay, that is another level of issues :)
21:33:50 <TrueBrain> do they need to know how it works?
21:33:54 <TrueBrain> (honest question)
21:34:01 <andythenorth> there needs to be somewhat a clear definition of behaviour
21:34:16 <andythenorth> most of the API is expressed in terms of 'move these bytes around'
21:34:23 <andythenorth> not 'this behaves like x'
21:34:45 <andythenorth> 'needs' is too strong, it's more of an observation
21:35:05 <DorpsGek_II> [OpenTTD/OpenTTD] LordAro approved pull request #7508: Cleanup: Fix alignment after NULL -> nullptr change. https://git.io/fjm4N
21:35:09 <TrueBrain> another approach is a bit more drastic, but add an event-like system instead of callbacks, to which you can subscribe
21:35:13 <DorpsGek_II> [OpenTTD/OpenTTD] LordAro merged pull request #7508: Cleanup: Fix alignment after NULL -> nullptr change. https://git.io/fjm4i
21:36:00 <Eddi|zuHause> TrueBrain, frosch123: the problem is not that the people don't understand how things work, the problem will be that the people who don't know how things work will write code, and have no way to find out why it doesn't work.
21:36:50 <Eddi|zuHause> and you can't properly explain to them "you can't do X and Y together, because it can't be translated into GRF"
21:37:03 <TrueBrain> ideally, we need a small piece of the game to fiddle with this
21:37:12 <TrueBrain> something that doesn't allow us to do currently what we like
21:37:17 <TrueBrain> but isn't throughout all the code
21:37:22 <TrueBrain> something cute, tiny, but useful
21:37:35 <andythenorth> stations!
21:37:37 <andythenorth> maybe not
21:37:50 <Eddi|zuHause> TrueBrain: town authority personalities
21:38:01 <TrueBrain> town zones, growth, etc
21:38:06 <TrueBrain> might be just tiny enough
21:38:20 <TrueBrain> the more passive side
21:38:24 <Artea> can someone test my server out to see if is hard ?
21:38:37 <andythenorth> do we want something known and entirely stable?
21:38:37 <TrueBrain> do I dare to ask ...... hard?
21:38:39 <Artea> I feel than it is, but i'm such a noob in OTTD
21:38:40 <Eddi|zuHause> basically tiny AIs that are run individually for each town, and can decide what players can do, where to build industries, roads, houses
21:38:56 <TrueBrain> cool idea Eddi|zuHause
21:39:24 <Artea> well, I kinda feel hard to start after a couple of years on
21:39:27 <andythenorth> can I raise the game?
21:39:35 <andythenorth> maybe hard mode version
21:39:37 <TrueBrain> but we have to include gfx .. so that has to include zones, buildings, growth, etc
21:39:41 <andythenorth> simple things are better first
21:39:46 <andythenorth> but arbitrary regions
21:39:50 <Artea> have Inflation activated
21:39:52 <andythenorth> with arbitrary scripts running
21:40:18 <andythenorth> and content (like an industry package) could request regions and register scripts into them
21:40:44 <andythenorth> hmm https://wiki.openttd.org/Frosch/GS_Area_Control
21:41:18 <andythenorth> ^^ I don't mean start there, just a proposed 'where to later'
21:42:04 <TrueBrain> okay ... I guess towns are still serviced via the tile iterator?
21:42:11 <TrueBrain> so .. a town doesn't really exist, the houses make the town :P
21:42:30 <TrueBrain> ah, yes
21:42:39 <TrueBrain> always happy if things haven't changed in 10 years :D
21:43:40 <TrueBrain> lol @ AlignTileToGrid
21:44:01 <Eddi|zuHause> TrueBrain: towns exist as a separate entity from all the houses that it consists of. keeping track of company ratings, airport noise levels, delivered goods, etc.
21:44:15 <TrueBrain> yeah, but the tick is not done per town
21:44:25 <TrueBrain> so that thing you describe is just a structure with data
21:44:27 <TrueBrain> it is no actor :)
21:44:42 <TrueBrain> (it is not alive)
21:44:48 <Eddi|zuHause> i suppose the tileloop hits the town center tile?
21:44:54 <TrueBrain> it hits houses
21:45:02 <Eddi|zuHause> the houses are individual actors
21:45:07 <TrueBrain> yup
21:45:11 <Eddi|zuHause> the town acts in the growth tick
21:45:29 <Eddi|zuHause> and reacts on player interactions (demolishing, building)
21:45:52 <Artea> I usually help towns finish the roads ;)
21:47:08 <Artea> 84.91.140.29:13979
21:47:15 <Artea> in case anyone wanna test out
21:47:20 <TrueBrain> Eddi|zuHause: ah no, the town itself grows the town
21:47:24 <TrueBrain> just everything else is done per house :)
21:47:33 <TrueBrain> so it is .. so-so :P
21:47:56 <frosch123> arcane built-in stuff :p
21:48:26 <TrueBrain> I am tempted to throw some Squirrel at it, but that is just because I know that can be done :D
21:48:27 <TrueBrain> ghehe
21:49:28 <Eddi|zuHause> there
21:49:43 <Eddi|zuHause> 's three things i imagine a town script could do
21:50:05 <Eddi|zuHause> 1) "paint" the town zones (possibly more than the existing 5)
21:50:34 <Eddi|zuHause> 2) keep track of player actions (like demolishing trees) to influence the company rating in more diverse ways
21:50:49 <Eddi|zuHause> 3) coordinate the industries in the area, seeing if all are served
21:51:36 <TrueBrain> and if the name it 'town mod' for a bit, that would also include grfs for houses
21:51:41 <TrueBrain> growth-something
21:51:44 <DorpsGek_II> [OpenTTD/OpenTTD] LordAro requested changes for pull request #7504: Feature: Hide block signal tools by default https://git.io/fjmBW
21:52:13 <TrueBrain> cargo-something
21:52:51 <Eddi|zuHause> 3) could also issue subsidies or something
21:53:08 <TrueBrain> good point; anything else town/house related we currently can do?
21:53:08 <Eddi|zuHause> which is probably a GS feature already
21:53:40 *** andythenorth is now known as Guest191
21:53:40 *** andythenorth has joined #openttd
21:53:42 <frosch123> TrueBrain: the control freaks want to mod complicated town guis
21:53:50 <andythenorth> kicking me was mean :P
21:53:50 <frosch123> which show contracts and whatnot
21:54:09 <TrueBrain> GUI control .. hmm .. that is another can of worms, but a valid one nonetheless
21:54:10 <frosch123> and they complain our string system can only handle 20 parameters, and not draw a 50x100 spreadsheet
21:54:22 <TrueBrain> lol
21:54:36 <Eddi|zuHause> TrueBrain: the citybuilder type games probably have a few requests in this direction
21:54:57 <frosch123> so, maybe we need a html/js engine for gui mods
21:55:02 <frosch123> :p
21:55:12 <TrueBrain> @kick frosch123 wash your mouth!
21:55:12 *** frosch123 was kicked by DorpsGek (wash your mouth!)
21:55:18 *** frosch123 has joined #openttd
21:55:19 <DorpsGek_II> [OpenTTD/OpenTTD] nielsmh commented on pull request #7504: Feature: Hide block signal tools by default https://git.io/fjmBB
21:55:20 <DorpsGek_II> [OpenTTD/OpenTTD] nielsmh closed pull request #7504: Feature: Hide block signal tools by default https://git.io/fjmvH
21:55:24 <TrueBrain> sorry, that had to be done frosch123 :P
21:55:34 <frosch123> is black liquish ok?
21:55:43 <TrueBrain> yup
21:55:56 <frosch123> i have no idea how to spell that word
21:56:19 <TrueBrain> neither do I :D
21:56:25 <frosch123> liquorice
21:56:32 <TrueBrain> okay .. so anything else that a town should be able to do
21:56:37 <TrueBrain> who to poke for citybuilder?
21:57:26 <TrueBrain> so NewGRF towns contains nearly nothing :)
21:57:31 <TrueBrain> NewGRF houses has more content :P
21:58:11 <Eddi|zuHause> is there liquor in liquorice?
21:58:15 <andythenorth> newgrf towns got sacked https://wiki.openttd.org/Frosch/Town_Control
21:58:33 <frosch123> more town actions?
21:58:36 <TrueBrain> Town mod should be able to access stations and industries, indeed
21:58:40 <Eddi|zuHause> TrueBrain: _dp_ maybe?
21:59:06 <nielsm> LordAro: the problem with presignals is the culture around them, they've been "marketed" as the The Correct Solution to station entrances since ttdpatch invented them and there hasn't been enough work/education on how path signals solve the same problems
21:59:11 <DorpsGek_II> [OpenTTD/OpenTTD] nikolas updated pull request #7086: Change #6173: Update SDL driver to use SDL 2.0 https://git.io/fhamZ
21:59:23 <TrueBrain> _dp_: any input on what a "town mod" should be able to do? In terms of influence town growth, deciding how the town should look, what-ever .. anything town-related you would like to modify?
21:59:26 <Eddi|zuHause> TrueBrain: newgrf towns contains nearly nothing, because newgrfs can't actually influence town, just houses and industries can read some town stats
21:59:32 <frosch123> like cargo-specific exclusive rights, or bribes to offer specific subsidies
21:59:39 <TrueBrain> hmm .. I would like to be able that a town can go from medieval to industrial to scifi
21:59:53 <TrueBrain> all town actions
21:59:54 <TrueBrain> good point
22:00:06 *** Guest191 has quit IRC
22:00:42 <frosch123> TrueBrain: andy failed hard when trying to provide industries for diferent tech levels
22:00:50 <andythenorth> fail hard
22:00:52 <frosch123> the transitions don't work out
22:01:37 <Eddi|zuHause> TrueBrain: i imagine towns having sporadic changes in government policy. like if an investor-friendly government is in place, infrastructure like rails is encouraged, but if a green government is in place, cutting trees or building airports is frowned upon
22:02:03 <frosch123> people hate industries closing down, so how could you ever shut down your medieval blacksmith industry
22:02:05 <TrueBrain> so .. it has a personality
22:02:32 <Eddi|zuHause> TrueBrain: like a non-static version of the current tolerance levels
22:02:33 <TrueBrain> frosch123: honestly, I wouldn't want that in my game how I am currently used to OpenTTD (well, havent played in 10 years, but okay)
22:02:44 <TrueBrain> but if you start a new game knowing that things like that happens .. that sounds like fun :D
22:02:48 <frosch123> personality treat: likes companies with names starting with A
22:02:56 <TrueBrain> (like Factorio .. I love Sea Block, but if I get that when I want to play a normal game, I am annoyed :D)
22:03:24 <TrueBrain> https://devs.openttd.org/~truebrain/mods/towns.txt
22:03:25 <TrueBrain> I wrote it down
22:03:29 <TrueBrain> because .. memory
22:03:44 <peter1138> Hrm..
22:03:49 <TrueBrain> goals
22:04:37 <andythenorth> the industry closure thing specifically failed because there's no way to do it well
22:04:48 <andythenorth> it's not interesting gameplay challenge, just fragmented and irritating
22:04:58 <andythenorth> (for evolution of industry types over time)
22:05:12 <andythenorth> if it was done carefully, it would be fine
22:05:20 <Artea> clients left server
22:05:20 <frosch123> TrueBrain: people also often want regions for diversity
22:05:22 <Artea> :(
22:05:28 <TrueBrain> frosch123: "zones", yes
22:05:35 <frosch123> like "lots of coal", "lots of farm"
22:05:35 <TrueBrain> zones / regions it is :)
22:05:38 <Eddi|zuHause> andythenorth: that's why i suggested earlier that industries need to be able to track nearby opening of "superceding" industry to start closing down
22:05:55 <andythenorth> yes, or that it's controlled by a game loop
22:05:59 <TrueBrain> anything else to add?
22:06:06 <Artea> allowing multi industries help closing sooner too
22:06:08 <TrueBrain> (not important to be complete atm btw; more wondering what the scope is)
22:06:11 <Eddi|zuHause> TrueBrain: mining towns, manufacturing towns, port towns, etc.
22:06:27 <TrueBrain> owh, the inverse of zones, gotcha
22:06:28 <frosch123> i am not sure whether i could still understand that list tomorrow :p
22:06:29 <andythenorth> TrueBrain: track local demand for each cargo? :P
22:07:09 <frosch123> region based pricing
22:07:24 <frosch123> so we get a new catchment area exploit
22:07:25 <andythenorth> region based cdist :P
22:07:35 <frosch123> but cargo, resell it on the neighbour tile for a higher price
22:07:41 <frosch123> *buy
22:07:43 <andythenorth> Railroad Tycoon 3
22:07:46 <milek7> formally, shouldn't sdl driver use SDL_LockSurface when it writes directly to surface->pixels?
22:08:10 <andythenorth> prices were gradients in RT3, so you could make money without covering source and destination
22:08:14 <Eddi|zuHause> frosch123: you could "fix" that exploit by providing a gradient :)
22:08:20 <andythenorth> building a train over a mountain was an easy way to make money
22:08:58 <TrueBrain> frosch123: made it a bit more verbose, for you :)
22:09:31 <andythenorth> TrueBrain: 'satisfaction' of industries in the region ;P
22:09:48 <andythenorth> nobody needs to know the internals, but industry should be able to report some kind of health
22:09:52 <TrueBrain> - coordinate with industries and stations
22:09:52 <TrueBrain> - you serving all industries? the town love you
22:10:09 <TrueBrain> ah, asking the industry what the town things of it
22:10:12 <Eddi|zuHause> TrueBrain: not sure if that is more "zones" or "regions", but one town being a suburb of a nearby city
22:10:17 <TrueBrain> that is just out of the scope I would like to set andythenorth :)
22:10:37 <TrueBrain> Eddi|zuHause: region for now :)
22:10:44 <TrueBrain> region is about whole town, zone is within a town, for now :)
22:10:51 <TrueBrain> (no clue if that is a good idea, but it works in my head :P)
22:11:28 <andythenorth> list includes 'player is allowed access to region'?
22:11:35 <andythenorth> in player actions?
22:12:02 <Eddi|zuHause> andythenorth: if you provide a GUI to purchase concessions
22:12:15 <TrueBrain> okay, feels like a good list to start working from
22:12:16 <andythenorth> or unlock goals
22:12:23 <andythenorth> or service neighouring region etc
22:12:26 <TrueBrain> so we have callbacks, but it also needs to be an actor
22:12:32 <TrueBrain> overshadows both GS and NewGRFs
22:12:38 <TrueBrain> and something that doesn't exist yet
22:12:40 <TrueBrain> interesting
22:12:54 <TrueBrain> also overshadows GUIs a bit
22:13:29 <frosch123> does it run on the server, the client or both?
22:13:33 <peter1138> Oh, NRT is somewhat broken :/
22:13:43 <TrueBrain> frosch123: good question; seems both
22:13:53 <TrueBrain> as GS part is server-only .. and NewGRF part is at least client
22:14:27 <Eddi|zuHause> it would be better if players could get "is this action allowed" feedback locally without waiting for the server
22:14:28 <peter1138> On loading a savegame there are more engine types than on a newgame... what have I broken :p
22:15:01 <LordAro> peter1138: mildly impressive
22:15:40 <TrueBrain> okay, we in fact have 3 things: callbacks, actor, and events
22:16:27 <Eddi|zuHause> TrueBrain: i mean things like the current "you can't demolish this building because your rating is too low"
22:16:32 <frosch123> can we drop the term "callback" and replace it with "decision hook" or similar?
22:16:42 <TrueBrain> Eddi|zuHause: that is currently first send to the server
22:16:48 <TrueBrain> but I do not think that is important right now tbh
22:16:56 <TrueBrain> frosch123: why? (wondering)
22:17:14 <frosch123> who is calling who in a callback?
22:17:15 <andythenorth> even pub / sub :P
22:17:19 <andythenorth> event *
22:17:20 <Eddi|zuHause> TrueBrain: i think it is first checked locally, then sent to the server, the server checks again, then does it, then sends it back to the clients
22:17:30 <TrueBrain> frosch123: fair; k :)
22:17:40 <TrueBrain> Eddi|zuHause: however, not important in this stage
22:17:51 <Eddi|zuHause> TrueBrain: a failed local attempt can pop up a message, a failed server attempt cannot
22:17:51 <frosch123> imho the defining part of newgrf callbacks is that ottd takes the initiative and the mod must answer in a synchronous way
22:18:20 <TrueBrain> synchronous hooks, actor, events
22:18:28 <TrueBrain> synchronous hooks, async actor, async events
22:18:30 <frosch123> while events are asynchronous with no return value
22:18:42 <frosch123> yeah, your terms
22:18:44 <Eddi|zuHause> "interrupts"? :)
22:18:48 <TrueBrain> okay, a town actor ..can it talk to other town actors?
22:18:52 <TrueBrain> or is a region town actor?
22:18:55 <TrueBrain> or a global town actor?
22:19:05 <TrueBrain> or is that for the mod to define?
22:19:20 <TrueBrain> virtual actors and real actors, I guess
22:19:25 <Eddi|zuHause> a town actor gets a list of neighbouring town actors, and a "parent" town actor?
22:19:29 <TrueBrain> a virtual actor can have one or more virtual/real actors
22:19:36 <TrueBrain> a real actor always has exactly one town in control
22:19:41 <frosch123> can gui scripts run on the client and submit custom commands to the server script?
22:19:54 <Eddi|zuHause> "parent" would act as the regional capital
22:20:02 <TrueBrain> frosch123: sure
22:20:33 <Eddi|zuHause> and the neighbouring towns could communicate directly, even if they don't have the same "parent"
22:21:41 <Eddi|zuHause> (neighbour relationsship, as well as town area, could be determined by a voronoi partition)
22:22:02 <frosch123> i hate voronoi partitions
22:22:20 <TrueBrain> frosch123: GUI should always run on client btw, I guess
22:22:21 <Eddi|zuHause> i like voronoi partitions
22:22:23 <TrueBrain> but custom commands can be nice
22:22:57 <frosch123> voronoi is for geometry, when you apply it to a stuff on a grid you get undefined stuff all the time
22:22:57 <TrueBrain> with virtual/real, I don't care
22:23:02 <TrueBrain> up to you to figure that out ;)
22:23:38 <frosch123> TrueBrain: we tried the reverse. story book is somewhat server-controlled gui
22:23:44 <Eddi|zuHause> frosch123: yeah, for useful voronoi you need euclidean space
22:23:57 <TrueBrain> frosch123: ah, yes. True :)
22:24:44 <TrueBrain> so the base game logic should move inside a mod
22:24:49 <TrueBrain> as much as possible, content-wise
22:25:01 <TrueBrain> that helps avoiding hacks and cheats, mostly makes a more clean API
22:26:02 <Eddi|zuHause> TrueBrain: that conflicts a bit with our current policy to not include such "default" mods into the game install
22:26:12 <Eddi|zuHause> see basesets
22:26:19 <TrueBrain> how is that an issue?
22:26:25 <TrueBrain> we force the download of a baseset on startup anywy
22:26:32 <Eddi|zuHause> that people who install the game get an incomplete game
22:26:41 <TrueBrain> so nothing changed?
22:27:13 <TrueBrain> cool fact, means you can update parts of OpenTTD without a new release :)
22:27:25 <TrueBrain> but for now, just look at it as the same as OpenGFX
22:27:29 <Eddi|zuHause> we need to hand-select some scripts (like AIs) and include them in the default installation
22:27:32 <TrueBrain> that removes that "conflict" completely ;)
22:27:42 <TrueBrain> we don't need to do such thing ;)
22:28:01 <TrueBrain> but the online content could for sure need some love, like some kind of rating system
22:28:03 <TrueBrain> or what-ever
22:28:12 <TrueBrain> and a first walkthrough, increasing your experience
22:28:21 <TrueBrain> but .. we are getting waaayyyyyyyyyy of track here
22:28:22 <andythenorth> we should all play roblox
22:28:23 <TrueBrain> one thing at the time
22:28:30 <andythenorth> and see how it game lobbies for new players :P
22:28:33 <Eddi|zuHause> you'd remove some existing features (like noise levels), and expect people to set up more stuff before they can run a complete game?
22:28:43 <TrueBrain> beren op de weg
22:28:52 * andythenorth has no idea how roblox handles it, but everything in roblox is content
22:29:42 <TrueBrain> does GS already have APIs for town interaction, I wonder .. *opens a webpage*
22:29:43 <Eddi|zuHause> TrueBrain: it relates to your previous suggestion that we need preset bundles
22:29:59 <TrueBrain> that is a solution
22:30:02 <TrueBrain> but for now, focus on town mod
22:31:18 <TrueBrain> hmm .. how do we care about performance
22:31:39 <TrueBrain> for a town mod it is a bit irrelevant I guess, as those are more rare events
22:31:46 <frosch123> we ban map sizes > 256x256
22:31:58 <V453000> ^
22:32:07 <TrueBrain> :( My first patch!
22:32:09 <TrueBrain> HOW DARE YOU
22:32:23 <V453000> XD
22:32:30 <TrueBrain> (seriously .. it was my first real contribution to OpenTTD .. allowing maps bigger than 256 by 256)
22:32:38 <TrueBrain> what a hell was that to get it approved .. lol
22:32:48 <frosch123> well, thing about it has "allowing maps smaller than 256x256"
22:32:59 <frosch123> *think *as
22:33:32 <TrueBrain> okay, I have this weird idea to approach this problem ..
22:33:48 <TrueBrain> I really think this can be build on any high-level language
22:33:49 <frosch123> anyway, gs can track cargo pick-up and delivery
22:33:52 <TrueBrain> as long as it supports typing and OO
22:33:54 <frosch123> and can set growth requirements
22:34:00 <frosch123> and growth-speed
22:34:10 <frosch123> but it scales badly for more towns
22:34:18 <TrueBrain> Squirrel scales poorly :P
22:34:37 <frosch123> or on other words, the gs author has to consider how to scale properly
22:34:48 <TrueBrain> fair
22:34:49 <frosch123> they cannot just spam growth-updates for all towns in a loop
22:34:53 <TrueBrain> nooooo
22:35:04 <TrueBrain> but, if we move the growth algorithm inside the town mod
22:35:08 <TrueBrain> that becomes a bit less of an issue
22:35:24 <TrueBrain> but yeah, if you shoot yourself in the foot .. it hurts
22:35:25 <TrueBrain> that is a fact
22:35:30 <frosch123> you mean "sync" instead of "async"?
22:35:40 <TrueBrain> context?
22:35:51 <frosch123> "move the growth algorithm inside the town mod"
22:36:08 <TrueBrain> hmm .. not sure if I meant that
22:36:21 <TrueBrain> I was more like: instead of firing a "grow this town"
22:36:31 <TrueBrain> the growth algorithm is in your control, and you can do what ever the fuck you want
22:36:47 <frosch123> currently you set a growth rate
22:36:55 <TrueBrain> yes, currently; hence the "town mod" reference :)
22:37:07 <frosch123> and then the gs runs in a loop and updates the rate for all towns, 1 town per command frame
22:37:34 <TrueBrain> but okay, performance might be an issue, but not a first concern .. first get something drawn down, I guess
22:37:55 <frosch123> i think the problem is always how to get data from server to client and back
22:38:24 <TrueBrain> GS can already do this
22:38:36 <TrueBrain> what exactly do you expect to become a problem?
22:38:39 <frosch123> but only with small bandwidth
22:38:43 <TrueBrain> ofc
22:38:48 <TrueBrain> what did you want to send over the wire here? :)
22:39:43 <frosch123> let's say: there is a server gs which asynchronously transmits scores to all clients, and then client sceripts decide on those parameers how to grow towns
22:40:03 <frosch123> currently gs are suspended while they transmit data
22:40:29 <frosch123> and we have no client side scripts which can "decompress" the data and act on it
22:40:29 <TrueBrain> okay, so you are asking how to split the server/client domain
22:40:39 <TrueBrain> so .. gfx, client
22:40:42 <TrueBrain> that is easy, I guess
22:40:57 <TrueBrain> animation, sound, ...
22:41:42 <TrueBrain> server: personality, growth, zones, regions, tracking player, coordination, actions, subsidies, cargo, goals, cost
22:42:02 <TrueBrain> (and sync to clients via commands, like we already do)
22:42:07 <TrueBrain> so yeah, server for state
22:42:35 <TrueBrain> that means in your example, I would suggest that the server updates a "persistent storage" via a command
22:42:38 <TrueBrain> which is received by all clients
22:42:42 <TrueBrain> which means they can show it in the GUI
22:42:55 <TrueBrain> a client should never be able to grow a town
22:43:27 <TrueBrain> from what I have read today, I don't see why large blobs will be pushed to clients
22:43:40 <TrueBrain> so either you didn't mention something yet, or we are not in sync :D
22:45:28 <frosch123> currently gs can only submit about 30 things per seconds, so when they want to update growth rate of towns depending on cargo delivery, it takes 2 minutes for 1000 towns.
22:45:53 <frosch123> unless the gs checks for "growth rate has not changed" and stuff
22:46:08 <TrueBrain> ah; that is another problem indeed
22:46:12 <TrueBrain> lucky, we are not creating a gs
22:46:13 <TrueBrain> but a town mod
22:46:17 <TrueBrain> so we can solve it in that concept
22:46:26 <TrueBrain> the idea was to have an actor per town
22:46:33 <TrueBrain> so a single town can grow 30 times per second
22:46:36 <TrueBrain> seems sufficient to me :P
22:47:18 <frosch123> oi, i hope you are not using a script engine then :p
22:47:39 <frosch123> like OOM is also an issue of some gs/ai
22:47:48 <TrueBrain> there is a reason I talked about performance and memory earlier :)
22:47:54 <TrueBrain> but Squirrel seriously is a bad fit for this
22:48:04 <TrueBrain> NFO is too
22:48:27 <frosch123> fortran I ?
22:48:39 <TrueBrain> an even worse fit :P
22:49:15 <TrueBrain> so far I have collected: typed, small footprint, existing (scripting) language
22:49:35 <TrueBrain> TypeScript keeps popping up
22:49:37 <TrueBrain> but ugh, really? :P
22:50:03 <Eddi|zuHause> is that javascript with typed hammered on top?
22:50:18 <TrueBrain> bastardized, yes
22:50:34 <TrueBrain> better said: javascript is a subset of typescript
22:50:54 <milek7> i don't think that v8/spidermonkey is small footprint
22:51:04 <TrueBrain> performance / memory-wise, it is
22:51:11 <TrueBrain> at least, can be :)
22:51:37 <TrueBrain> but okay, more important, typescript is compiled to javascript, can be compiled to any other format
22:51:41 <TrueBrain> from Python to what-ever :P
22:52:04 <TrueBrain> so I guess the frontend is not important, so the typed part is not
22:52:06 <TrueBrain> that makes it a bit easier
22:52:21 <Eddi|zuHause> how are we making sure the townscriptmodgrf does not desync?
22:52:28 <TrueBrain> magic
22:52:32 <TrueBrain> :D
22:52:41 <TrueBrain> the API definition has to enforce this, basically
22:52:49 <TrueBrain> not as much of a problem as you would think
22:53:57 <Eddi|zuHause> you could go back to running the script logic on the server, but adding more communication
22:54:22 <TrueBrain> was there a plan to do anything else?
22:54:24 <Eddi|zuHause> which might make the inferface a bit more sluggish on bad connections
22:54:35 <frosch123> Eddi|zuHause: i think it's better to also run a script on the client, but one that cannot issue commands etc
22:54:44 <TrueBrain> also, key word here :)
22:54:52 <TrueBrain> well, it should be able to issue commands, but to talk to his server :)
22:55:23 <TrueBrain> ah, Squirrel's stack-size is auto-grow
22:55:25 <TrueBrain> lol
22:55:37 <frosch123> so, essientally, a mod can define scripts for server and client, they do not share variables
22:56:06 <TrueBrain> owh! Ofc! We can enforce callbacks and actor-subfunctions to be proven correct
22:56:17 <TrueBrain> and enforce they have to be max N opcodes
22:56:21 <TrueBrain> like eBPF
22:56:49 <frosch123> TrueBrain: i think the OOM issues came from dictionaries of towns and industries and combinatorial explosion
22:57:05 <TrueBrain> yeah, so that we can avoid easily
22:57:11 <TrueBrain> as what a town mod can do, is very limited
22:57:14 <TrueBrain> in computational sense
22:57:17 <Samu> identifier "SmallVector" is undefined
22:57:18 <TrueBrain> like NFOs
22:57:23 <Samu> RIP my PR
22:58:06 <LordAro> Samu: are you actually trying to understand what's wrong, or are you just whining?
22:58:14 <TrueBrain> okay okay, that can work fine .. means we can control the town mod in more fine detail
22:58:39 <TrueBrain> so that comes back to the solution of: use a higher-level language to create the NewGRFs / GS / what-ever
22:58:41 <Samu> tried to
22:59:08 <Samu> it's about a closed PR, so I wouldn't bother
22:59:29 <peter1138> You wouldn't? But you are?
22:59:41 <Samu> wouldn't bother you
23:00:00 <TrueBrain> but you just did
23:00:03 <TrueBrain> suspisios
23:00:06 <TrueBrain> +u
23:00:07 <TrueBrain> what ever
23:00:10 <TrueBrain> typing is hard today
23:00:11 <LordAro> i mean i can tell you right now that SmallVector -> std::vector happened about a week ago
23:00:21 <TrueBrain> spoilers!
23:00:39 <LordAro> i've not said anything about the related followup work that would be required
23:01:17 <TrueBrain> okay, so I think I can do this in Python .. not that it has to be Python, but it seems as good as any other language
23:01:32 <TrueBrain> that also allows to really help this client/server split
23:01:34 <TrueBrain> and doing it safe
23:01:50 <TrueBrain> of course people can manipulate the output GRF and screw it up, but that is not important now
23:02:44 <TrueBrain> okay, Squirrel VM on its own is not that big
23:02:51 <TrueBrain> ~100 bytes, by the looks of it
23:03:12 <TrueBrain> the real work in OpenTTD is going to be things like: remove hardcoded actions and make that a plugable system
23:03:34 <TrueBrain> and of course there is the issue: what if there are two town mods
23:03:53 <andythenorth> cascade
23:03:57 <frosch123> so, there are exclusive api calls?
23:04:03 <andythenorth> one gets precedence
23:04:07 <TrueBrain> frosch123: "exclusive API calls"?
23:04:25 <TrueBrain> well, what you can also do, is that a mod indicates what he is doing; and make some categories marked as: only one
23:04:26 <Samu> i was rebasing a closed PR#7184, but SmallVector no longer exists, and I don't know how to convert to std::vector
23:04:30 <frosch123> mods have to specifiy in some meta data "i want to set town growth rates"
23:04:46 <frosch123> ottd only allows one mode which wants that, and blocks the api method for the rest
23:05:01 <DorpsGek_II> [OpenTTD/OpenTTD] Berbe commented on pull request #7286: Add #2155: newheightmapgame command https://git.io/fjmRJ
23:05:05 <TrueBrain> the same idea, but the wrong example I think :)
23:05:11 <TrueBrain> the Town actor will be in control of town growth
23:05:21 <TrueBrain> I see little issue in having 2 town mods in control of 2 different towns
23:05:34 <andythenorth> can we bid for who gets each?
23:05:36 <andythenorth> :P
23:05:54 <TrueBrain> but I was more thinking: you might have a town mod that only adds a few houses (gfx)
23:06:26 <TrueBrain> and those virtual actors .. we might indeed have a flag indicating that there can only be 1 root virtual actor
23:06:34 <TrueBrain> if two town mods indicate they want to claim that ..... ask the user?
23:06:35 <TrueBrain> block it?
23:06:37 <TrueBrain> don't know
23:07:26 <TrueBrain> hmm, in fact, if we ignore those "region", we can really assign a town mod to a single town, if we want to
23:07:38 <TrueBrain> but okay, a problem for future me
23:07:40 <frosch123> the mod should be blocked as a whole, but it should be possible for a mod to offer a mod setting to disable something, and the mod then being able to be active
23:07:50 <TrueBrain> I like that idea
23:07:56 <Eddi|zuHause> if you allow two different town mods on two different towns, communicating with neighbouring towns will not be possible
23:08:36 <TrueBrain> Eddi|zuHause: which might be a good example of such flag
23:08:42 <frosch123> anyway, what about something "more simple": what if two mods want to show some info in the town gui :p
23:08:43 <TrueBrain> TOWN_MOD_COMMUNICATES_WITH_NEIGHBOURS
23:08:45 <Eddi|zuHause> also, i would probably keep houses out of this?
23:09:06 <TrueBrain> frosch123: TOWN_MOD_CHANGES_GUI
23:09:06 <TrueBrain> :D
23:09:27 *** drac_boy has joined #openttd
23:09:29 <TrueBrain> okay, we have to work this out, but we can look how we can let them cooperate, or otherwise we have a clean way to put the user in control
23:09:30 <drac_boy> hi there
23:09:45 <TrueBrain> but yeah, having 2 mods that modify the same town GUI might be very nice
23:09:48 <drac_boy> can you introduce a newgrf vehicle after 2050 or not that easily? just wanted to recheck to be sure
23:10:26 <frosch123> yes you can
23:10:36 <TrueBrain> okay, I think this is sufficient for a proof-of-concept
23:11:00 <drac_boy> thanks forsch
23:11:02 <TrueBrain> I am still somewhat worried about performance, but this can always be mitigated with more technical solutions
23:11:13 <frosch123> drac_boy: essentially, the intro-date of the last vehicle defines when expiration of vehicles stops
23:11:22 <TrueBrain> as long as we make the higher-level language a clear definition and API
23:12:01 <frosch123> i am not sure about which vehicles affect which, but when you add a future helicopter it will enable expiration of earlier helicopters
23:12:09 <drac_boy> frosch heh yeah that makes sense, having nothing in buy list just because the last vehicle went stale doesn't sound like much fun :)
23:12:22 <drac_boy> and sorry to interrupt you truebrain
23:12:28 <TrueBrain> no worries drac_boy
23:12:30 *** nielsm has quit IRC
23:12:32 <TrueBrain> always welcome :)
23:13:42 <Eddi|zuHause> drac_boy: keep in mind that the "use the last vehicle for freezing technology" time is global, so if you provide only trains past 2050, players might not have ships, planes or trucks
23:14:52 <frosch123> i thought that was changed
23:15:11 <frosch123> like "per vehicle type", but possibly not per "plane/helicopter"
23:15:21 <TrueBrain> right, time to watch some telly; tnx all for participation :D
23:15:44 <TrueBrain> I will see if I can cook up some proof of concepts, so we can chat a bit more what direction to go
23:17:14 <peter1138> Hmm
23:17:48 <frosch123> hmm, looks like there is only a single _year_engine_aging_stops
23:18:05 <peter1138> So, er, when loading a savegame, is engine allocation done differently?
23:18:31 <frosch123> some engine stuff is stored in the savegame, like reliability stuff
23:19:18 <frosch123> and the savegame has a mapping of (grdid, grflocalid) -> globalengineid
23:20:10 <frosch123> so, newgrf are acitvated, and the ottd tries to give the engines the same id again, then newgrf properties are loaded, and then the savegame overwrites the reliability stuff
23:20:24 <Artea> damn
23:20:48 <Artea> R.I.P. AIAI 1985-2008/9
23:21:53 <Samu> what is the error it gets?
23:22:05 <Samu> CPU valuator ?
23:22:10 <Samu> then it's normal
23:22:19 <Artea> Your script made an error: excessive CPU usage in valuator function
23:22:37 <milek7> turns out that sdl1 works on emscripten too
23:23:06 <Samu> try this
23:23:09 <Samu> make towns not grow
23:23:24 <Samu> that error happens usually when he's trying to place airports on too large towns
23:23:43 <peter1138> Yay, fixed my savegame :p
23:23:43 <Artea> which is typical
23:23:59 <peter1138> frosch123, that was breaking NRT :-)
23:24:27 <Samu> or pray that AIAI stops using valuators
23:24:31 <Samu> the author
23:24:54 <peter1138> Some initialization was done during ID allocation, but not if the engine was mapped, so a value (0xFF) was not set, and so road type was not set properly, so loading failed.
23:25:02 <peter1138> I wonder how it did work, cos I didn't really change that.
23:25:32 <drac_boy> hmm should be fun thinking of something to fill the 2050+ period with that isn't like 1920 :)
23:26:44 *** sla_ro|master has quit IRC
23:26:52 <Samu> i wish i could select all branches, right click, fetch then rebase
23:27:10 <peter1138> That would not make sense.
23:27:16 <peter1138> Rebasing requires intervention.
23:27:28 <Samu> rebase onto upstream/master
23:28:37 <andythenorth> nmlc info: 65688 sprites, 48 cached, 0 orphaned, 41745 duplicates, 23895 newly encoded (native)
23:28:40 <Samu> those that would fail at rebasing, would abort
23:28:44 <andythenorth> lot of duplicates ^^
23:28:54 * andythenorth might be wearing clown shoes in public?
23:33:22 <DorpsGek_II> [OpenTTD/OpenTTD] PeterN updated pull request #6811: Feature: Add NotRoadTypes (NRT) https://git.io/vhlfg
23:35:05 *** argoneus_ has quit IRC
23:36:54 <DorpsGek_II> [OpenTTD/OpenTTD] SamuXarick updated pull request #7376: More than max_no_competitors could be created in network games https://git.io/fjvY8
23:38:29 <DorpsGek_II> [OpenTTD/OpenTTD] SamuXarick updated pull request #7104: Fix #5405: Aircraft could route to depots outside their range https://git.io/fhKsL
23:39:12 <milek7> hm
23:39:23 <drac_boy> anyway don't have anything else so going off atm
23:39:26 <milek7> 32bpp blitters assume they have RGBA buffer
23:39:29 *** drac_boy has left #openttd
23:39:50 <milek7> but this isn't necessarily the case
23:40:42 *** gelignite has quit IRC
23:42:01 <peter1138> You found a BGRA buffer?
23:42:55 <andythenorth> did we fix offsets for depot-flipped vehicles?
23:43:10 <andythenorth> they seem to not require handling in newgrf now
23:44:02 <milek7> peter1138: looks like it
23:44:02 <milek7> https://i.imgur.com/KCtyGKe.png
23:44:32 <peter1138> So is it now using a HW buffer? It was always SW before.
23:44:44 <milek7> it's html canvas
23:44:48 <peter1138> Um.
23:45:00 <peter1138> What driver?
23:45:08 <peter1138> (In OpenTTD)
23:45:24 <milek7> sdl
23:45:30 <peter1138> 1.2?
23:46:30 <milek7> both on 1.2 and 2
23:46:47 <milek7> emscripten on sdl1 didn't before because SDL_LockSurface/SDL_UnlockSurface wasn't called
23:46:57 *** argoneus has joined #openttd
23:47:21 <andythenorth> hmm the depot flip offset bugs don't manifest with 8/8 vehicles maybe?
23:47:31 <peter1138> I guess you need a translation buffer.
23:47:45 <peter1138> andythenorth, the offsets are the same for 8/8 vehicles...
23:47:48 <andythenorth> yeah
23:47:51 <andythenorth> that's the badger
23:48:02 <andythenorth> ok that isn't 2000 duplicate sprites for no reason then
23:48:39 <andythenorth> I thought I would have to eat humble pie about why Horse is so slow to compile :P
23:50:16 *** frosch123 has quit IRC
23:51:10 <peter1138> milek7, maybe you can get away with modifying the Encode() function to swap RGB around? This would then not incur a performance penalty.
23:51:29 <peter1138> milek7, I suspect it's technically the wrong place, though.
23:54:22 <andythenorth> bed
23:54:24 *** andythenorth has quit IRC