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. https://git.io/fjmqA 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. https://git.io/fjmYK 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. https://git.io/fjmqA 06:21:44 <DorpsGek_II> [OpenTTD/OpenTTD] TrueBrain commented on pull request #7506: Add: AI/GS Reinstate custom settings profile. https://git.io/fjmOB 06:24:27 <DorpsGek_II> [OpenTTD/OpenTTD] TrueBrain commented on pull request #6926: Change: Allow dock to be constructed in more locations https://git.io/fjmOR 06:24:28 <DorpsGek_II> [OpenTTD/OpenTTD] TrueBrain closed pull request #6926: Change: Allow dock to be constructed in more locations https://git.io/fhnCx 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. https://git.io/fjmOu 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 https://git.io/fjmO2 06:31:38 <DorpsGek_II> [OpenTTD/OpenTTD] TrueBrain dismissed a review for pull request #7366: Add: List recently executed commands in crashlog output. https://git.io/fjIKC 06:32:16 <DorpsGek_II> [OpenTTD/OpenTTD] nielsmh commented on pull request #7351: Add: Warn players that company passwords are not truly secure https://git.io/fjmOV 06:36:04 <DorpsGek_II> [OpenTTD/OpenTTD] TrueBrain commented on pull request #7454: Restore libtimidity https://git.io/fjmOr 06:36:05 <DorpsGek_II> [OpenTTD/OpenTTD] TrueBrain closed pull request #7454: Restore libtimidity https://git.io/fjk5H 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 https://git.io/fjmOo 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> https://github.com/OpenTTD/OpenTTD/pull/7505 <- 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. https://git.io/fjmOD 06:47:36 <DorpsGek_II> [OpenTTD/OpenTTD] TrueBrain closed pull request #7505: Change: Permit autoreplacing a plane with a helicopter or vice versa. https://git.io/fjmt4 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 https://git.io/fjmOH 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 https://github.com/OpenTTD/OpenTTD/pull/7340 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. https://git.io/fhAxC 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. https://git.io/fjm3e 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) https://git.io/fhbqc 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) https://git.io/fhbqc 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 https://git.io/fjm3s 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. https://git.io/fjm3C 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 https://git.io/fjm3s 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> https://devs.openttd.org/~smatz/3d/tunnel.png 08:06:54 *** synchris has joined #openttd 08:07:00 <peter1138> https://devs.openttd.org/~smatz/3d/tunnel2.png 08:07:25 <peter1138> https://devs.openttd.org/~smatz/3d/tunnel.ogg < 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 findversion.sh 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) https://git.io/fhbqc 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> https://wiki.openttd.org/Frosch/ButGroundTypes 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) https://git.io/fhbqc 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) https://git.io/fhbqc 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 https://git.io/fjm3D 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 https://git.io/fjm3D 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: https://i.imgur.com/TQ84X2E.png 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 https://git.io/fjmIS 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 https://git.io/fjqK7 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) https://git.io/fhbqc 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 https://git.io/fjmsT 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 https://git.io/fjmsI 09:21:57 <DorpsGek_II> [OpenTTD/website] TrueBrain merged pull request #79: Fix: make the size of the fast-download-header content aware https://git.io/fjqK7 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 http://binaries.openttd.org/binaries/ 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 https://git.io/fjms3 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 https://git.io/fjmss 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: https://www.staging.openttd.org/ <- that doesnt look good 09:32:04 <LordAro> hrm. 09:32:07 <andythenorth> tried realism for cryo tanks, no like https://dev.openttdcoop.org/attachments/download/9398/nah_2.png 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 https://git.io/fjms4 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 https://git.io/fjms4 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 https://git.io/fjms0 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 https://git.io/fjmsu 09:43:34 <DorpsGek_II> [OpenTTD/website] TrueBrain merged pull request #81: Fix: Remove extra padding-top for download headers https://git.io/fjms4 09:43:57 <DorpsGek_II> [OpenTTD/OpenTTD] TrueBrain updated pull request #7270: Introduce CMake (and removing all other project-related code) https://git.io/fhbqc 09:44:16 <DorpsGek_II> [OpenTTD/CompileFarm] TrueBrain merged pull request #34: Fix 97e2532: docs docker still broke with CMake sources https://git.io/fjms3 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 https://git.io/fjmIS 10:04:03 <TrueBrain> andythenorth: http://devs.openttd.org/~truebrain/openttd-20190413-cmake-g798491121d-macosx.dmg <- 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 https://git.io/fjmsX 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) https://git.io/fhbqc 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) https://git.io/fjmsS 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. https://git.io/fjms7 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. https://git.io/fjmsA 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) https://git.io/fhbqc 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) https://git.io/fhbqc 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) https://git.io/fhbqc 10:47:56 <DorpsGek_II> [OpenTTD/OpenTTD] SamuXarick commented on pull request #7505: Change: Permit autoreplacing a plane with a helicopter or vice versa. https://git.io/fjmGk 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. https://git.io/fjmGG 11:05:32 <DorpsGek_II> [OpenTTD/OpenTTD] PeterN commented on pull request #7505: Change: Permit autoreplacing a plane with a helicopter or vice versa. https://git.io/fjmG8 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) https://git.io/fjmGj 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. https://git.io/fhAxC 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 https://git.io/fjqQt 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) https://git.io/vhlfg 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 https://git.io/fjmZj 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() https://git.io/fjmnv 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() https://git.io/fjLmR 13:14:56 <DorpsGek_II> [OpenTTD/OpenTTD] PeterN updated pull request #7464: Fix: Industry coverage area is no longer rectangular. https://git.io/fjIo3 13:21:29 <DorpsGek_II> [OpenTTD/OpenTTD] michicc approved pull request #7464: Fix: Industry coverage area is no longer rectangular. https://git.io/fjmnO 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: https://github.com/auge8472/OpenTTD-website/commits/webrework 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. https://git.io/fjIo3 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) https://git.io/fhbqc 13:36:15 <Eddi|zuHause> meanwhile: https://www.youtube.com/watch?v=pLwYMecqOxY 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 https://git.io/fjmn8 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> https://www.destroyallsoftware.com/talks/wat <-- 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> https://www.tt-wiki.net/wiki/NMLTutorial 14:11:40 <TrueBrain> holy crap, that was hiding :D 14:11:42 <TrueBrain> tnx michi_cc :) 14:11:52 <andythenorth> https://github.com/OpenTTD/nml/tree/master/examples 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? https://github.com/OpenTTD/OpenTTD/compare/master...SamuXarick:variable-script_max_opcodes?expand=1 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 https://newgrf-specs.tt-wiki.net/wiki/Action0/Airports when it says "you first need to define it by setting property 8 or 9 for it" as there's is not property 9, and in the code prop 9 is checked but ignored in final 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 https://paste.openttdcoop.org/pne7eyxue/bgmw4n/raw 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 https://paste.openttdcoop.org/pne7eyxue#line-900 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 https://paste.openttdcoop.org/pne7eyxue#line-948 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 https://en.wikipedia.org/wiki/Switch_statement 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 https://git.io/fjmcG 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: https://paste.openttdcoop.org/pne7eyxue/bgmw4n/raw <- 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? https://www.openttd.org/downloads/openttd-pullrequests/pr6811/latest.html 14:47:02 <TrueBrain> peter1138: https://dev.azure.com/openttd/OpenTTD/_build/results?buildId=2336 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: https://paste.openttdcoop.org/pne7eyxue/bgmw4n/raw <- 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: https://newgrf-specs.tt-wiki.net/wiki/Callbacks#Show_additional_text_in_industry_window_.283A.29 14:50:42 <andythenorth> ok it's CB 37 14:50:44 <andythenorth> https://newgrf-specs.tt-wiki.net/wiki/Callbacks#Cargo_sub-type_display_for_industries_.2837.29 14:51:02 <glx> https://newgrf-specs.tt-wiki.net/wiki/TextIDs/Water_strings 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, https://www.tt-forums.net/viewtopic.php?f=29&t=85137 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> https://github.com/OpenTTD/OpenTTD/blob/master/src/newgrf.cpp#L8948 <- the NULL -> nullptr messed up this table :P 14:56:38 <Eddi|zuHause> TrueBrain: now, try to understand https://dev.openttdcoop.org/projects/cets/repository/entry/scripts/write_engine.py :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 https://docs.google.com/spreadsheets/d/1pXX0eGtNfBBj38TmOoi8qHUeHd559PndQxXNEAUtNh0/edit?hl=de&hl=de#gid=0 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 https://github.com/andythenorth/firs/blob/master/src/templates/industry_secondary.pynml 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 https://www.tt-forums.net/viewtopic.php?f=68&t=83239 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> http://www.ttdpatch.de/grfspecs/m4nfoManual/ 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> https://github.com/wube/factorio-data/blob/master/base/prototypes/item/turret.lua 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://84.91.140.29:13979 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 https://dev.openttdcoop.org/attachments/download/9399/tankers_eh.png 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> http://fuzzle.org/~petern/ottd/nrt4.png vs http://fuzzle.org/~petern/ottd/nrt5.png 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 https://paste.openttdcoop.org/p3supw2fm/g8z9ts/raw 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> https://xkcd.com/1172/ 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: https://www.xkcd.com/2044/ 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 https://github.com/andythenorth/firs/blob/v4-development-track/src/templates/industry_secondary.pynml#L49 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) https://git.io/fjm8G 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 https://git.io/fjm8r 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 https://git.io/fjm8Q 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. https://dev.openttdcoop.org/attachments/download/9399/tankers_eh.png vs https://dev.openttdcoop.org/attachments/download/9400/tankers_eh_2.png 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 https://www.greenbrier-europe.com/fileadmin/user_upload/Zags_53m_v.jpg 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> https://github.com/OpenTTD/OpenTTD/blob/master/src/industry_cmd.cpp#L2660 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 https://git.io/fhrqY 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 https://git.io/fjm8r 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. https://git.io/fjm4i 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. https://git.io/fjm4i 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: https://github.com/OpenTTD/OpenTTD/blob/master/CONTRIBUTING.md 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 :) https://newgrf-specs.tt-wiki.net/wiki/VehicleRefitting 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 <TrueBrain> ET_DISASTER_ZEPPELINER_CRASHED, 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:04 <TrueBrain> ET_DISASTER_ZEPPELINER_CLEARED, 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. https://git.io/fjm4N 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. https://git.io/fjm4i 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 https://wiki.openttd.org/Frosch/GS_Area_Control 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> 84.91.140.29:13979 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 https://git.io/fjmBW 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 https://git.io/fjmBB 19:55:20 <DorpsGek_II> [OpenTTD/OpenTTD] nielsmh closed pull request #7504: Feature: Hide block signal tools by default https://git.io/fjmvH 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 https://wiki.openttd.org/Frosch/Town_Control 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 https://git.io/fhamZ 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> https://devs.openttd.org/~truebrain/mods/towns.txt 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 https://git.io/fjmRJ 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:43 <TrueBrain> TOWN_MOD_COMMUNICATES_WITH_NEIGHBOURS 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) https://git.io/vhlfg 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 https://git.io/fjvY8 21:38:29 <DorpsGek_II> [OpenTTD/OpenTTD] SamuXarick updated pull request #7104: Fix #5405: Aircraft could route to depots outside their range https://git.io/fhKsL 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> https://i.imgur.com/KCtyGKe.png 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 https://git.io/fhuqz 22:05:34 <DorpsGek_II> [OpenTTD/OpenTTD] stale[bot] closed pull request #7272: Change: [NPF] Add path cache for ships. https://git.io/fhb8v 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 https://git.io/fjU1d 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 https://git.io/fjqQu 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. https://git.io/fhHI1 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. https://git.io/fh9jW 23:26:00 <DorpsGek_II> [OpenTTD/OpenTTD] glx22 opened pull request #7509: Codechange: replace left QSortT() with std::sort() https://git.io/fjm0B 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() https://git.io/fjm0R 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() https://git.io/fjm0E 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() https://git.io/fjm0B 23:54:20 <DorpsGek_II> [OpenTTD/OpenTTD] glx22 commented on pull request #7509: Codechange: replace left QSortT() with std::sort() https://git.io/fjm0w 23:55:01 <DorpsGek_II> [OpenTTD/OpenTTD] Milek7 opened pull request #7510: Emscripten support https://git.io/fjm0r 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