Times are UTC Toggle Colours
10:38:48 <FLHerne> Definitely don't unban, he's still whining about signals in an unrelated issue even in that comment :-/ 10:39:54 <LordAro> Realistically we should ban his new account too, as it's just being used to circumvent it 10:41:15 <FLHerne> It's also a violation of GH ToS 10:48:38 <dP> LordAro, yeah, I never rly understood those reasons 10:48:56 <dP> especially now that we're apparently ok to scan all known servers but too afraid to ask gc 10:50:13 <dP> and with turn if needed too 10:52:09 <LordAro> Rau0x75 also banned now 11:08:28 <andythenorth> ta 11:12:26 *** tokai|noir has joined #openttd 11:12:26 *** ChanServ sets mode: +v tokai|noir 11:19:36 *** tokai has quit IRC 11:20:48 *** andythenorth has quit IRC 12:14:20 *** sla_ro|master has joined #openttd 12:15:21 *** gelignite has joined #openttd 12:31:37 *** virtualrandomnumber has joined #openttd 12:31:52 <dP> it's getting more ridiculous xD https://i.imgur.com/IpjnSVu.png 12:32:06 <dP> also, google is hilariously bad at translating russian obscene lexic 12:36:01 *** virtualrandomnumber has quit IRC 12:38:30 *** WormnestAndroid has joined #openttd 12:39:22 <LordAro> i knew they were working together 12:40:52 <LordAro> maybe i should just ban everyone 12:42:26 <dP> well, it's just a chat group and rau is the most obnoxious one even there 12:43:22 <dP> I'm not sure anyone will even go through with this idea of his 13:09:28 *** WormnestAndroid has quit IRC 13:09:43 *** WormnestAndroid has joined #openttd 13:19:32 *** glx has joined #openttd 13:19:32 *** ChanServ sets mode: +v glx 13:45:41 <DorpsGek> [OpenTTD/OpenTTD] LEB0VSKI opened issue #9705: [Bug]: the ability to select the default signal has disappeared https://git.io/J1BH4 13:47:09 <DorpsGek> [OpenTTD/OpenTTD] LC-Zorg commented on issue #9702: [Bug]: It is not possible to transfer vehicles sharing orders between groups (using Ctrl+drag doesn't work) https://git.io/J1CpR 13:48:55 <LordAro> oho 13:49:08 <glx> duplicate ? 13:49:51 <LordAro> tempted to keep this one over #9631, as it doesn't have all the nonsense in it 13:51:03 *** while has quit IRC 13:51:20 *** while has joined #openttd 13:51:25 <LordAro> alternatively, if they follow through to make another sock puppet account as per dP's image, i'm just going to ban everyone 13:52:21 <glx> oh I didn't notice the username :) 13:55:36 <dP> he said he couldn't find how to change the username xDDD 14:03:28 <DorpsGek> [OpenTTD/OpenTTD] btzy commented on issue #9702: [Bug]: It is not possible to transfer vehicles sharing orders between groups (using Ctrl+drag doesn't work) https://git.io/J1CpR 14:10:28 *** andythenorth has joined #openttd 14:18:31 *** andythenorth has quit IRC 14:23:23 <FLHerne> Well, tat least this one is to the point 14:26:15 <DorpsGek> [OpenTTD/OpenTTD] LC-Zorg commented on issue #9702: [Bug]: It is not possible to transfer vehicles sharing orders between groups (using Ctrl+drag doesn't work) https://git.io/J1CpR 14:28:20 <Timberwolf> I have to get better at mentioning it when I get one of these "oh that's weird, the UI isn't working the way I was used to" things. 14:28:42 <Timberwolf> I noticed that Ctrl-click oddity a while back then just got used to "don't press ctrl until you're dragging" 14:32:23 *** tokai has joined #openttd 14:32:23 *** ChanServ sets mode: +v tokai 14:34:33 <supermop_work> What's all this then 14:35:03 *** nielsm has joined #openttd 14:39:22 *** tokai|noir has quit IRC 14:41:49 <DorpsGek> [OpenTTD/OpenTTD] FLHerne commented on issue #9705: [Bug]: the ability to select the default signal has disappeared https://git.io/J1BH4 14:42:10 <FLHerne> perhaps unhelpfully, I actually agree with this one :p 14:42:36 <LordAro> i don't think anyone particularly disagrees 14:49:04 <glx> pff I again failed to convert an nfo realsprite into nml one (silly compression bit in the middle of the list) 14:50:47 <glx> s/bit/byte 15:47:33 <glx> ok station implementation is not fully usable, layout registers are set way too early so it's impossible to use load_temp in the layout, because the switch used to set the values is after the registers are set 15:52:05 <supermop_work> you guys are doing stations? 15:52:24 <glx> https://gist.github.com/glx22/301ac434df8bfd41e137bc219a5bf465 <-- buffers are supposed to disappear when needed, but due to how nfo is created it can't work 15:53:17 <glx> yes I added stations support to nml, but it's not fully working for advanced stuff 15:56:33 <supermop_work> cool 15:57:03 <supermop_work> maybe i'll redo my sheds 15:58:58 *** andythenorth has joined #openttd 16:07:07 <supermop_work> hi andythenorth 16:07:38 <DorpsGek> [OpenTTD/OpenTTD] btzy commented on issue #9702: [Bug]: It is not possible to transfer vehicles sharing orders between groups (using Ctrl+drag doesn't work) https://git.io/J1CpR 16:24:34 *** Wormnest has joined #openttd 16:26:39 <FLHerne> > The android port is maintained by a separate entity, I believe it's just one person. 16:28:11 <LordAro> yup 16:35:23 <DorpsGek> [OpenTTD/OpenTTD] 2TallTyler commented on issue #9705: [Bug]: the ability to select the default signal has disappeared https://git.io/J1BH4 16:44:21 <FLHerne> I just found the "entity" amusing for some reason 16:44:38 <FLHerne> like there are non-person entities who maintain OpenTTD 16:45:07 <FLHerne> Presumably they meant to include teams, but eh 16:46:16 *** tokai|noir has joined #openttd 16:46:16 *** ChanServ sets mode: +v tokai|noir 16:47:20 <Flygon> Non-person entities? Alas, it is not me, a Flygon. 16:47:37 <Flygon> I say, about to buzz off at 3:47AM. 16:48:02 *** Flygon has quit IRC 16:53:17 *** tokai has quit IRC 17:01:01 *** frosch123 has joined #openttd 17:19:04 <DorpsGek> [OpenTTD/nml] glx22 commented on pull request #244: Add: support for stations https://git.io/J10JH 17:19:15 *** esselfe has quit IRC 17:21:41 *** esselfe has joined #openttd 17:38:06 <DorpsGek> [OpenTTD/OpenTTD] rob9283 opened issue #9706: [Crash]: Repeated Out Of Memory crashes https://git.io/J10LG 17:39:23 <LordAro> there is... absolutely nothing we can do about that 17:39:45 <glx> though 16GB should be more than enough 17:39:56 <LordAro> not if it's already at 90% 17:43:12 <dP> unless it's a memory leak somehow 17:52:56 <frosch123> is "productivity apps" slang for "scam ware"? 17:53:24 <dwfreed> it's slang for 10 copies of chromium, because they're all electron apps 17:53:35 <Rubidium> Adobe Premiere/Photoshop/... 17:54:22 <frosch123> there was a time when my brother-in-law used ie6, and half of the screen was covered by toolbar-addons :) 17:56:39 <glx> oh yeah I know people like that 17:57:04 <glx> all the prechecked boxes in installers 18:06:55 <DorpsGek> [OpenTTD/OpenTTD] LC-Zorg commented on issue #9705: [Bug]: the ability to select the default signal has disappeared https://git.io/J1BH4 18:43:08 <LordAro> i'm not sure what answer they're looking for there 18:43:18 <LordAro> "because we didn't think anyone would care" 18:43:24 <LordAro> is probably the most truthful 18:44:54 <DorpsGek> [OpenTTD/OpenTTD] nielsmh commented on issue #9706: [Crash]: Repeated Out Of Memory crashes https://git.io/J10LG 18:45:38 <nielsm> I'm not sure what that user means by the "being patient enough", that we should implement a memory allocator that sleeps for a bit and tries again if allocation fails at first? 18:46:50 <LordAro> i think they have an unrealistic expectation of how memory management works 18:46:54 <dP> LordAro, then why not just answer like that? 18:47:29 <frosch123> LordAro: not really 18:48:15 <frosch123> hiding block signals made some values of that setting contraditory, like "hide block signals + default to block signal". 18:48:35 <frosch123> following that, some decision had to be made about changing that setting *somehow* 18:48:48 <frosch123> and only then it was removed, because it was deemed unnecessary 18:49:11 <frosch123> you can also compare it how most gui state is not saved, like sorting of lists 18:49:14 <LordAro> dP: because wording it like that would just result in "why don't you care about your users" 18:49:44 <dP> LordAro, well you previous attempt resulted in "they want to remove all settings" :p 18:49:54 <dP> *your 18:50:20 <glx> we still want to remove some settings 18:50:42 *** tokai has joined #openttd 18:50:42 *** ChanServ sets mode: +v tokai 18:51:03 <LordAro> dP: exactly! 18:51:08 <LordAro> needs more thought first 18:51:17 <LordAro> and regardless, i was wrong 18:51:31 <LordAro> sounds like frosch123 has volunteered :p 18:54:21 <DorpsGek> [OpenTTD/OpenTTD] rob9283 commented on issue #9706: [Crash]: Repeated Out Of Memory crashes https://git.io/J10LG 18:54:47 <frosch123> wasn't the setting for enabling/disabling the signal gui removed as well? 18:55:01 <frosch123> i recall there was some forum drama when the signal gui was enabled by default in the past 18:55:06 <frosch123> i should dig up that thread :) 18:57:40 *** tokai|noir has quit IRC 19:09:18 <DorpsGek> [OpenTTD/OpenTTD] FLHerne commented on issue #9705: [Bug]: the ability to select the default signal has disappeared https://git.io/J1BH4 19:30:38 <DorpsGek> [OpenTTD/OpenTTD] LC-Zorg commented on issue #9705: [Bug]: the ability to select the default signal has disappeared https://git.io/J1BH4 19:33:20 <LordAro> i wonder how often LC is opening/closing OTTD such that this is a significant problem for them 19:38:22 <DorpsGek> [OpenTTD/OpenTTD] JGRennison commented on issue #9705: [Bug]: the ability to select the default signal has disappeared https://git.io/J1BH4 19:43:32 <dP> it's a noticeable problem for me as well but I agree with JGR there 19:47:26 <LordAro> it's been a "problem" since always, and there's very little we can do about it 19:54:25 <LordAro> short of entirely changing the config format/location, of course 19:58:06 <DorpsGek> [OpenTTD/OpenTTD] LC-Zorg commented on issue #9705: [Bug]: the ability to select the default signal has disappeared https://git.io/J1BH4 20:51:28 <TrueBrain> we are backward compatible, not forward compatible ;) You also can't load newer savegames in older versions .. similar, config flip/flops are expected (and we also have that on other places) 20:51:45 <TrueBrain> guess it is more interesting to understand why you would jump between versions like that 20:51:47 <TrueBrain> just for comparing? 20:53:10 <dP> I jump because of multiplayer and patchpacks 20:53:48 <dP> thankfully version transition in mp is shorter now so it's less of a problem 20:54:27 *** tokai|noir has joined #openttd 20:54:27 *** ChanServ sets mode: +v tokai|noir 20:55:32 <dP> also, sometimes to test for regressions 20:56:58 <TrueBrain> so debugging stuff; basically the -x works fine for that 20:57:07 <TrueBrain> as that is all not a normal or common user-flow :) 21:01:36 *** tokai has quit IRC 21:01:56 <DorpsGek> [OpenTTD/OpenTTD] James103 commented on issue #9706: [Crash]: Repeated Out Of Memory crashes https://git.io/J10LG 21:07:15 *** andythenorth has quit IRC 21:09:06 <TrueBrain> right ... now to draw more than one image ... hmmmmmmm 21:23:33 <TrueBrain> I need to remember how to make a callback chain, and .. I do not remember :D haha 21:24:42 <frosch123> you check the callback variable (0C?) somewhere in your chain, usually the beginning 21:24:49 <frosch123> and you end with a callback result action2 21:25:35 <frosch123> sprite-result-action2 and callback-result-action2 are different leafs on the action2 DAG 21:26:08 <frosch123> you can also terminate callbacks with a sprite-result-action2, which is a special result "callback failed" 21:26:57 <frosch123> and you can terminate sprite resolves with a callback-result-action2, which is a special result "sprite failed". but this is not really used 21:27:30 <TrueBrain> yeah, you told me those things before :) And I have them in the code 21:27:35 <TrueBrain> just need to understand again what was actually going on 21:28:13 <TrueBrain> for example, if I do not set any flags on the industry tile .. is it a callback? :P 21:28:28 <frosch123> what flags? 21:28:35 <TrueBrain> any 21:28:51 <frosch123> no idea what you mean 21:29:05 <TrueBrain> callbacks confuse me, basically 21:29:37 *** andythenorth has joined #openttd 21:33:30 <TrueBrain> okay, so I can make action2 set-ids, one for each tile 21:34:24 <TrueBrain> next I can make an action2 that checks the relative position, and points to the right one based on the layout 21:34:36 <TrueBrain> next I can make an action2 that checks the industry layout, and picks the right action2 of above 21:34:56 <TrueBrain> that leaves a bit of a gap between the action3 and action2 .. not sure what CB is the "give me a sprite to draw" 21:35:29 <frosch123> that is deliberately "undefined" 21:35:51 <frosch123> the idea is that you check the callbacks you know, and then the "default" case continues to the sprites 21:36:05 <frosch123> that means that all unknown callbacks go to the sprites and result in "callback failed" 21:36:26 <TrueBrain> okay, so for now I don't even need to check 0C basically 21:36:55 <frosch123> yes, if you do not want to serve any callback, don't check it, always return the sprites 21:38:47 <TrueBrain> 00yxYYXX 21:38:48 <TrueBrain> hmm 21:38:50 <TrueBrain> annoying format :P 21:40:02 <frosch123> why? 21:40:27 <TrueBrain> now I need to think harder :P 21:40:49 <TrueBrain> and do some bitshifting I guess 21:41:43 <TrueBrain> I really have to refactor my code to make these things easier 21:41:52 <TrueBrain> all these bytes are not really understandable for me anymore :P 21:41:56 <TrueBrain> I only wrote it .. how many months ago? :D 21:42:07 <frosch123> maybe generate nml instead? :p 21:42:28 <TrueBrain> if NML wasn't Python, that would have been viable :) 21:42:32 <TrueBrain> I even most likely would have 21:42:34 <TrueBrain> but here we are :) 21:43:29 <TrueBrain> ah, right, was D of primary object .. okay 21:43:35 <TrueBrain> so \x89\x43 should give me the position 21:44:37 <TrueBrain> mask, switch-size, switch-min/max .. I remember! :P 21:46:45 <andythenorth> can't we port nml to wasm? :P 21:46:50 <TrueBrain> nope 21:46:58 <andythenorth> cross-compile to node? 21:46:59 <TrueBrain> well, you can, but you are going to regret that 21:47:03 <TrueBrain> was something like .. 200MB? :P 21:47:19 <TrueBrain> well, no, not 200, but big :P 21:47:26 <andythenorth> sad times 21:48:17 *** nielsm has quit IRC 21:48:39 *** _aD has joined #openttd 21:48:59 <TrueBrain> owh, I forgot, I can just mask out the "x" and "y" 21:49:00 <TrueBrain> and only use XX and YY 21:49:00 <TrueBrain> nice 21:49:31 <TrueBrain> is it better to have a big single switch, or to have a nested switch, or it doesn't matter at all? As in: first check X, then Y? Or XY combined? 21:49:57 <frosch123> you have at most 256 cases per switch 21:50:04 <andythenorth> combined should be adequate 21:50:12 <frosch123> and you have at most 256 action2 id active 21:50:36 <TrueBrain> and we are back to the 16x16 :P 21:50:36 <frosch123> that means, you have to print your DAG in depth-first. breadth-first will fail quickly 21:50:48 <TrueBrain> but I was more wondering from a performance point of view of what-ever 21:51:02 <frosch123> viewer switches are better 21:51:10 <frosch123> ottd sorts them on load, and does binary search 21:51:21 <frosch123> s/viewer/fewer/ :/ 21:51:35 <TrueBrain> we understood ;) 21:52:39 <TrueBrain> Copilot is still incredibly scary 21:52:47 <frosch123> anyway, the depth-first approach is the important part. many grf authors reach that point in nml, and then don't know what to do 21:52:54 <TrueBrain> I am just having my cursor idling while thinking about what to do next, and it gives a perfectly valid first attempt 21:53:37 <TrueBrain> frosch123: yeah, basically what I wrote above how I want to approach this ;) 21:55:58 *** Montana has joined #openttd 21:57:42 <TrueBrain> hmm .. wrote invalid GRF .. that is new :P 22:00:17 <andythenorth> depth vs. breadth in varact 2? 22:00:24 * andythenorth curious 22:00:47 <TrueBrain> how I understood frosch, start with rendering the leafs of your graph, and work your way up 22:01:10 <TrueBrain> from a coding perspective, I have no other choice, as I first need to have a valid set-id, before I can reference it 22:01:23 <TrueBrain> so I need to start with what-ever doesn't have a reference in it (read: sprites) 22:01:34 <frosch123> if you start with all leafs, it's breadth-first, and immediate gameover 22:01:55 <andythenorth> not sure what I do 22:02:25 <TrueBrain> https://camo.githubusercontent.com/81237833eeedea03b1f124ef97a2834f07e81e53/687474703a2f2f7777772e6373652e756e73772e6564752e61752f7e62696c6c772f4a757374736561726368312e676966 22:02:29 <TrueBrain> to make sure we talk the same language 22:02:38 <frosch123> imagine you have 10 industry layouts, each 10x10 tiles. then you start with a switch to distinguish 10 layouts, then each case distinguishes 100 positions, so you end up with 1000 leaves 22:02:56 <frosch123> however, the maximum number of active nodes is 256, so encoding fails 22:03:27 <frosch123> if you first do 100 leafs for layout1, then the position switch for layout1, you are back to one active node. and you can continue with the next 100 leaves 22:03:31 <TrueBrain> haha, I am happy with how I approach the problem, as that would code-wise be completely impossible to me 22:03:43 * andythenorth has encountered the issue multiple times 22:03:51 <TrueBrain> I render all industry-tiles for 1 industry at once .. but that is just because they have to be < 256 anyway :P 22:04:15 <TrueBrain> so I absolutely do breadth-first per industry-layout :) 22:07:24 <TrueBrain> I am still a bit confused why sometimes set-ids are W 22:07:28 <TrueBrain> where I can only define at most 256 22:07:34 <TrueBrain> but I think I have asked this before :P 22:08:38 <frosch123> ttdp implementation detail 22:09:10 <frosch123> it has a reason in ttdp, but that does not matter for the grf author 22:09:33 <TrueBrain> Read past end of pseudo-sprite .. grrrr 22:13:44 * andythenorth now lost in breadth vs. depth 22:13:58 <andythenorth> I read this stuff a few times before, but now I'm trying to draw FIRS DAG...in my head 22:14:01 <andythenorth> fail 22:14:17 <TrueBrain> just handle 1 entity at the time, even if that entity is part of another entity 22:14:21 <TrueBrain> and don't try to do all entities at once 22:14:44 <andythenorth> the complete DAG to a sprite gets more fun 22:14:51 <andythenorth> snowline 22:14:52 <andythenorth> desert 22:14:56 <andythenorth> construction state 22:15:03 <andythenorth> fences or not 22:15:13 <andythenorth> tile slope 22:16:05 <TrueBrain> frosch123: reminds me .. advise on this: check if it is the animation frame callback, do that first, or do that after selecting layout + tile position? 22:16:54 <frosch123> possibly never :p 22:17:02 <TrueBrain> no animation? 22:17:28 <frosch123> set the layout to use the animation frame as index into the spriteset (instead of construction stage) 22:17:37 <frosch123> the thing we talked 2 days ago about 22:17:43 <TrueBrain> okay, fair 22:17:49 <glx> always check callbacks first 22:17:54 <TrueBrain> and how about callback 25, for things like: receive callback? 22:17:56 <TrueBrain> receive cargo 22:17:59 <glx> if you really need to 22:18:18 <TrueBrain> well, especially for cb25, it seems easier to first select the tile, and then check what that tile should show, sprite-wise 22:18:29 <TrueBrain> as otherwise you get multiple trees for tile selection 22:18:51 <frosch123> it doesn't really make a difference 22:19:01 <TrueBrain> good 22:19:15 <frosch123> checking the cb first is better, if the result does not care about the tile or layout :) 22:19:23 <TrueBrain> yeah, ofc 22:19:33 <glx> it just use more space in the grf, but nml does that too 22:19:46 <TrueBrain> code generation just becomes easier if it can poop out everything about a single tile, put that on a set-id, and go to the next tile :) 22:20:11 <TrueBrain> instead of for every property generate the whole layout-tree first, if you get what I mean :) 22:22:29 <andythenorth> did we mention procedures? :P 22:23:12 <frosch123> for industry tiles i have no example. but there are features where certain callbacks are called before or during construction and where not all variables are available 22:23:40 <TrueBrain> okay, so I cannot take it as a generic rule 22:23:44 <TrueBrain> and have to take it one at the time 22:23:45 <TrueBrain> sure 22:23:54 <frosch123> in those cases it's a problem if you read an invalid variable first, and later figure out that it is pointless for the callback 22:24:43 <glx> yeah I found out I can't use only a smart layout for station, I also need dumb one for purchase 22:25:42 <glx> well the smart one could work if my implementation was better :) 22:25:44 *** sla_ro|master has quit IRC 22:26:01 <glx> but for now it's impossible to use load_temp 22:27:01 <TrueBrain> this thinking about set-ids as temporary values is funny 22:27:38 <glx> it requires to carefully track them yes 22:27:51 <TrueBrain> very volatile thinking :D 22:28:41 <TrueBrain> my code somewhat works, but the switch-case doesn't seem to route things correctly :P 22:29:06 <glx> ideally you start assigning them from the action3 and go up in the action2s 22:30:02 <glx> so you can use the same id most of the time, and add one when branching 22:31:59 <TrueBrain> okay, my layout thing works .. just it can only render the first sprite .. hmm 22:34:02 <TrueBrain> owh, and I see I just used \x00 for the bounding box :P 22:34:04 <TrueBrain> guess that is not ideal 22:35:29 <TrueBrain> hmm .. guess that needs a good Z value .. 22:35:45 <TrueBrain> frosch123: you mentioned a 16x16xZ bounding box .. why 16x16? 22:35:58 <glx> 16x16 is the tile size 22:36:13 <TrueBrain> 32x16, not? 22:36:19 <TrueBrain> (sorry for asking stupid questions, but I rather ask them :P) 22:36:21 <frosch123> world coordinates, not pixels 22:36:31 <frosch123> press ctrl+b in-game 22:36:33 <TrueBrain> ooowwhhhhh 22:36:40 <glx> 0x0 on north corner 22:37:03 <TrueBrain> okay, that just confused me in the docs 22:37:24 <TrueBrain> "size of sprite" .. lol 22:37:31 <TrueBrain> so I was like: my sprite is 32 in width, not 16 :P 22:37:45 <frosch123> isn't it 64? 22:37:52 <TrueBrain> euh, yeah, it is 22:37:52 <TrueBrain> lol 22:37:54 <TrueBrain> even worse :P 22:37:57 <glx> yeah sprites and tiles use different coord system 22:38:16 <glx> indeed 64x31 for the sprite I guess 22:38:23 <TrueBrain> if I had the energy and understanding, I would make a lot of changes to the wiki :P 22:38:28 <frosch123> Z should be at least 16, and lowe than aircraft flight altitude :p 22:38:35 * andythenorth reading FIRS nml :P 22:38:35 <TrueBrain> but I keep thinking: if I am done with this, I never have to read it again :D 22:38:36 <andythenorth> lol 22:39:05 <TrueBrain> can I just use the sprite (yes, sprite!) height for this? Or is that weird? 22:39:27 <frosch123> use a fixed value 22:39:45 <frosch123> sprite dimension is unrelated 22:40:14 <TrueBrain> any suggestions? 0x20? 22:40:30 <frosch123> sure 22:40:45 *** jottyfan has joined #openttd 22:40:57 <TrueBrain> right, now to figure out why my code doesn't do what I expect it to do .. 22:41:01 *** jottyfan has quit IRC 22:41:16 <TrueBrain> I render a "failed set", which returns a number (read: invalid as return value for sprites); put it on set-id 0xfd 22:41:24 <glx> hardest part in newgrf world ;) 22:41:35 <TrueBrain> next I set set 0 .. <tiles> to point to the actual sprite 22:42:33 <TrueBrain> next I create a set-id on 0xfe with a big-ass switch-case, that reads 0x43, masks it with 0xffff, and iterates a single layout, 0xXXYY -> set-id of tile 22:42:46 <TrueBrain> and I activate that set-id .. (currently not supporting more than 1 layout :P) 22:43:19 <TrueBrain> 0xfe set seems to work fine, except for the pointing to the right set-id of a tile .. 22:43:39 <andythenorth> FIRS looks like breadth first with sprinkles 22:43:50 * andythenorth fell in a rabbit hole 22:44:55 <TrueBrain> the weird thing is, it points to the 4th sprite or something 22:44:58 <TrueBrain> not the first 22:45:25 <TrueBrain> tnx for playing rubber ducky 22:45:27 <DorpsGek> [OpenTTD/OpenTTD] davewthompson opened issue #9707: [Bug]: Sub-tropical landscape has incorrect shops and office buildings https://git.io/J1EUM 22:45:33 <TrueBrain> that last part triggered enough to understand what I am doing wrong :P 22:46:23 <TrueBrain> (read: on action1, I flipped num-sets with num-ent :P) 22:46:34 <glx> hehe 22:46:38 * andythenorth is in the deep end without a float 22:46:51 <andythenorth> how does a tree get modelled when it has subsidiary trees? 22:47:00 <TrueBrain> https://cdn.discordapp.com/attachments/337701432230805505/910662312262774834/unknown.png 22:47:01 <TrueBrain> there we go :) 22:47:05 <TrueBrain> tnx frosch123 !! 22:47:06 <andythenorth> e.g. another set of nodes is traversed in a separate DAG 22:47:13 <TrueBrain> I literally couldn't have done this without your help :) 22:47:16 <andythenorth> TrueBrain nice sprites you drew! :) 22:47:26 <TrueBrain> hahahaha 22:47:28 <TrueBrain> funny guy :P 22:47:37 <TrueBrain> right, let's hook up multiple layout support now .. 22:49:24 <DorpsGek> [OpenTTD/OpenTTD] James103 commented on issue #9707: [Bug]: Sub-tropical landscape has incorrect shops and office buildings https://git.io/J1EUM 22:49:31 <frosch123> andythenorth: want a deeper hole? enhance nml to reorder the DAG so it uses less ids :p 22:50:16 <andythenorth> didn't glx do that already :P 22:50:47 <andythenorth> ok so TrueGRF subscription €7 / month 22:50:50 <andythenorth> contains FIRS 22:51:16 <andythenorth> extra FIRS DLC subscriptions, euro one off charge 22:51:35 * andythenorth was surprised that Discord Nitro is 99.99 / year and is basically 'stickers' 22:51:48 <andythenorth> I'd pay 99.99 for Discord, but not for stickers 22:52:41 <TrueBrain> pretty sure TrueGRF shouldn't charge the content creators :P 22:52:52 <TrueBrain> that is an anti-subscription 22:52:55 <andythenorth> they are the best people to charge :P 22:53:09 <andythenorth> how much do I pay for photoshop per month :P 22:53:10 <andythenorth> oof 22:53:14 <supermop_work> ha 22:53:27 <andythenorth> I just don't think there are enough of them 22:53:56 <andythenorth> you can't live your glamorous life on 147 euros / month 22:53:57 <supermop_work> be like dassault and solidworks 22:54:10 <supermop_work> and charge ,000 one off fee 22:54:19 <andythenorth> how much Maya licenses used to be :P 22:54:24 <TrueBrain> lol ... stupid var44 is 1-indexed :P Who does that :D 22:54:32 <dP> it there a way to start a new game with exact same settings as a save? 22:54:46 <dP> restart/reload/newgame don't do that 22:56:00 <dP> restart seems the closest but it removes all newgrfs 22:58:05 <frosch123> i would consider that a bug 22:58:12 <frosch123> "restart" is supposed to use the same settings as the save 22:58:37 <TrueBrain> https://truebrain.github.io/TrueGRF/ <- now with a "Chemical Plant" (and tnx andythenorth for having a permissive license to use the images :D) 22:58:56 <andythenorth> this is how I achieve immortality right? 22:58:57 <andythenorth> :P 22:59:29 <TrueBrain> I cannot believe I actually manage to do this with such a minimum amount of debugging information 22:59:34 <andythenorth> lol I am testing it in the browser now 22:59:40 <TrueBrain> it really is: I hope I understood correctly how many bytes to feed this action :P 22:59:42 <DorpsGek> [OpenTTD/OpenTTD] davewthompson commented on issue #9707: [Bug]: Sub-tropical landscape has incorrect shops and office buildings https://git.io/J1EUM 22:59:42 <andythenorth> this is a frigging awesome way to build the industry 23:00:00 <TrueBrain> I am happy with the "preview" too .. I should add ground-sprites too, but yeah 23:00:47 <andythenorth> you basically made Industry Whack! 23:00:48 <andythenorth> https://grf.farm/iron-horse/2.31.0/html/train_whack.html 23:01:02 <TrueBrain> just without a score :P 23:01:43 <TrueBrain> I am really happy how this is turning out so far :D 23:02:00 *** Elouin has quit IRC 23:02:45 *** Elouin has joined #openttd 23:02:50 <FLHerne> TrueBrain: What is it exactly? 23:03:01 <TrueBrain> what context are you lacking? :) 23:03:52 <frosch123> FLHerne: it's a trick to recruit tb for nml development 23:04:19 *** HerzogDeXtEr has joined #openttd 23:04:24 <TrueBrain> Pretty sure that kinda failed :D 23:04:37 <frosch123> it's a long term plan :) 23:04:46 <TrueBrain> NewGRF development, that would be more valid ;) 23:05:34 <TrueBrain> But yeah FLHerne, it is pretty much what it says .. NewGRFs made easy 23:05:44 <TrueBrain> That content creators can focus on .. content, not code 23:06:05 <TrueBrain> Not aimed at experts ofc .. for that we have NML 23:06:46 <FLHerne> Ok, so it's GrfMaker but better and not unmaintained for years? :p 23:07:16 <andythenorth> NML and 'experts' in one sentence :o 23:07:17 <andythenorth> ouch 23:07:27 <andythenorth> NML is 100% devlolopment 23:08:15 <FLHerne> The GrfMaker problem was always that projects developed to need 'expert' functionality but there was no way to get from GrfMaker to human-readable source without recoding from scratch 23:08:35 <FLHerne> Being maintained and hopefully updated to support new stuff should help though :-) 23:11:39 <TrueBrain> We will see where this ends up .. strongly depends if people appreciate it etc ;) 23:12:02 <TrueBrain> But so far I am really happy with the result.. also the integration with the game itself is really sweet 23:16:14 <TrueBrain> https://www.tt-forums.net/viewtopic.php?p=1191379#p1191379 23:16:15 <TrueBrain> cute :) 23:16:41 <TrueBrain> FLHerne: anyway, from what I understood GrfMaker was more a wrapper around NFO. The aim of TrueGRF is a bit different: I am trying to orientate it around content creators, so that they do not care how the rest works 23:16:46 <glx> hmm I probably can't put registers preparation somewhere else, but maybe I can add some fake callback to put stuff before it 23:16:46 <TrueBrain> they want to make an industry 23:16:54 <TrueBrain> not care about all the other fluff 23:18:14 <TrueBrain> so you absolutely won't be able to do everything you can with NML, basically :P 23:18:37 <glx> oh you can do a lot more than NML in pure NFO :) 23:19:03 <TrueBrain> originally I wanted to use NML in the backend, but that would have required me running a webservice for it .. so I ended up implementing my own GRF generator instead .. bit sad, as it is a lot of extra work, but alas 23:19:45 <TrueBrain> at least it now runs completely in the browser :) 23:19:55 <FLHerne> Isn't there some pypy-in-JS thing? 23:20:08 <TrueBrain> only if you like very fat downloads, yes :) 23:20:16 <TrueBrain> and it is rather slow, from my initial testing 23:20:31 <TrueBrain> also there isn't really a file-system, so sprites were interesting 23:20:52 <FLHerne> Hm 23:21:11 <TrueBrain> on a positive note, it allows me to truly understand NewGRF :P For what-ever that is worth :D 23:21:19 <FLHerne> Is TrueGRF native JS? 23:21:25 <FLHerne> or something compiled with emscripten? 23:21:27 <TrueBrain> it runs fully in the browser 23:21:33 <TrueBrain> "native JS" doesn't really mean anything anymore :P 23:21:38 <FLHerne> well, OK 23:21:49 <glx> and no it's not written in JS I think :) 23:22:02 <TrueBrain> its a combination of a lot of different techniques .. it is coded in TrueScript, React and Rust 23:22:17 <TrueBrain> and uses OpenTTD emscripten for the game itself 23:22:19 <FLHerne> TrueScript?? 23:22:25 <TrueBrain> :P 23:22:33 <TrueBrain> TypeScript, but I couldn't resist :) 23:22:55 <TrueBrain> so after compiling, you end up with a lot of Javascript and WASM 23:25:24 <TrueBrain> emscripten is only used for OpenTTD. Rust is done via wasm-pack for example, and TypeScript/React via npm 23:25:40 <TrueBrain> basically, the answer is: it is complicated 23:25:50 <glx> npm is a pain ;) 23:25:52 <TrueBrain> source is here: https://github.com/TrueBrain/TrueGRF 23:25:56 <TrueBrain> if you are interested in more details 23:26:39 <TrueBrain> I really need to clean up the code :D 23:28:18 <TrueBrain> and my main goal atm is to proof this can actually work, by doing everything just enough that we see it is viable, without making it really polished or feature-complete 23:28:39 <TrueBrain> like: you cannot add industries via the GUI, but the backend fully supports adding new ones .. currently you just have to do that in the React component 23:29:16 <TrueBrain> which means up I have gems like this: https://github.com/TrueBrain/TrueGRF/blob/main/src/App.tsx#L142 :D 23:33:02 *** Montana has quit IRC 23:41:25 *** andythenorth has quit IRC 23:52:59 *** frosch123 has quit IRC