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

Powered by YARRSTE version: svn-trunk