Times are UTC Toggle Colours
00:21:56 *** iSoSyS has joined #openttd 00:26:09 *** iSoSyS has quit IRC 01:24:09 *** twpol is now known as Guest3672 01:24:19 *** twpol has joined #openttd 01:27:44 *** Smedles has quit IRC 01:28:08 *** Guest3672 has quit IRC 01:28:58 *** Smedles has joined #openttd 02:16:17 *** Wormnest has quit IRC 02:24:16 *** tokai has joined #openttd 02:24:16 *** ChanServ sets mode: +v tokai 02:31:10 *** tokai|noir has quit IRC 02:33:17 *** glx has quit IRC 02:59:14 *** debdog has joined #openttd 03:02:35 *** D-HUND has quit IRC 03:31:15 *** Eddi|zuHause has joined #openttd 04:02:31 *** Flygon has joined #openttd 05:41:05 *** virtualrandomnumber has joined #openttd 05:50:12 *** supermop_Home has quit IRC 06:03:22 *** nielsm has joined #openttd 06:10:10 *** sla_ro|master has joined #openttd 06:55:35 *** andythenorth has joined #openttd 07:24:29 *** tokai|noir has joined #openttd 07:24:29 *** ChanServ sets mode: +v tokai|noir 07:31:10 *** tokai has quit IRC 07:33:02 *** tokai has joined #openttd 07:33:02 *** ChanServ sets mode: +v tokai 07:39:39 *** tokai|noir has quit IRC 08:13:48 *** andythenorth has quit IRC 08:34:56 *** tokai|noir has joined #openttd 08:34:56 *** ChanServ sets mode: +v tokai|noir 08:41:54 *** tokai has quit IRC 08:59:52 *** andythenorth has joined #openttd 09:21:32 *** andythenorth has quit IRC 09:22:28 *** virtualrandomnumber has quit IRC 10:11:49 *** iSoSyS has joined #openttd 11:32:30 *** andythenorth has joined #openttd 11:38:25 <andythenorth> yo 11:44:52 *** tokai has joined #openttd 11:44:52 *** ChanServ sets mode: +v tokai 11:51:50 *** tokai|noir has quit IRC 11:52:08 <andythenorth> hmm 11:52:18 <andythenorth> this FIRS town growth idea is quite broken currently 11:52:44 <andythenorth> the unavoidable FAIL is that grf can't control town growth 11:54:24 * andythenorth sad times 12:22:00 *** Samu has joined #openttd 12:24:14 *** glx has joined #openttd 12:24:14 *** ChanServ sets mode: +v glx 12:25:27 <Samu> hi 12:25:41 <DorpsGek> [OpenTTD/nml] glx22 merged pull request #228: Fix: define PY_SSIZE_T_CLEAN in _lz77.c https://git.io/JBhfz 12:50:44 *** TrueBrain_ii1 has quit IRC 13:38:02 *** y2kboy23 has quit IRC 13:38:03 *** TrueBrain_ii has joined #openttd 13:39:14 *** y2kboy23 has joined #openttd 13:40:07 *** y2kboy23 has quit IRC 13:43:19 *** y2kboy23 has joined #openttd 13:52:40 *** gelignite has joined #openttd 13:58:13 *** tokai|noir has joined #openttd 13:58:13 *** ChanServ sets mode: +v tokai|noir 14:05:09 *** tokai has quit IRC 14:18:45 *** WormnestAndroid has quit IRC 14:20:37 *** WormnestAndroid has joined #openttd 14:27:09 *** sla_ro|master has quit IRC 14:34:42 <andythenorth> how does town growth work anyone 14:34:45 <andythenorth> anyway * 14:34:49 <andythenorth> some kind of numbers 14:44:38 <andythenorth> coop studied it: http://wiki.openttdcoop.org/User:Mfb/Towns 14:46:27 <Timberwolf> iirc the limit quite quickly becomes the road network causing the town to be unable to place houses, rather than transferred cargo. 14:46:36 <Timberwolf> I think a spiral outward is supposed to be optimal? 14:46:49 <Timberwolf> Possibly you need to keep pruning junctions to avoid it creating a mess of loops. 14:59:00 <andythenorth> hmm 14:59:12 <andythenorth> grf control of towns would also have to consider playing funding :P 14:59:13 <andythenorth> this is lolz 14:59:30 <Timberwolf> And gamescripts with Bad Features. 14:59:52 * andythenorth in UpdateTownGrowth 15:00:06 <Timberwolf> Villages will occasionally make the town with a company HQ grow a bunch of houses on the spot, if the dividend payout is large enough. 15:00:10 <andythenorth> not seeing where / why TOWN_CUSTOM_GROWTH flag gets set 15:00:48 <andythenorth> is CmdTownGrowthRate GS API? 15:01:13 <Timberwolf> There's something in there to change it, you have NONE and NORMAL in there at least. 15:02:12 <Timberwolf> GS can also directly force the "place a house" algorithm to trigger. 15:02:38 <peter1138> Is it beer o'clock? 15:02:56 <andythenorth> it was sometime ago yes 15:02:59 * andythenorth is on holiday 15:03:05 <andythenorth> UpdateTownGrowth now 15:03:15 * peter1138 is also on holiday. 15:03:28 <Timberwolf> It was beer o'clock at the weekend, followed by cocktail o'clock, followed by pretty much an entire day of not doing anything o'clock. 15:04:27 <peter1138> I've been to a pub for a meal, I feel dirty. 15:04:36 <andythenorth> was it a spoons? 15:04:41 <peter1138> Fuck no. 15:04:58 <andythenorth> probably fine then 15:05:15 * andythenorth used to go to spoons a lot, steak and chips was about £4 15:05:25 <andythenorth> "best not to ask how they manage that price" 15:05:35 <LordAro> ^ 15:06:26 <andythenorth> uuf 15:06:37 <andythenorth> maybe CmdTownGrowthRate() could be split up 15:06:53 <andythenorth> so there's a function for setting TOWN_CUSTOM_GROWTH and associated red tape 15:07:01 <andythenorth> and the GS cmd calls that 15:07:05 <andythenorth> and also grf can call it 15:08:15 <andythenorth> would the grf callback just need to return number of days between growth attempts? 15:08:55 <peter1138> Do I want to restart Tomb Raider (hit a game-breakng bug in my save-game) or go flying? 15:11:56 <peter1138> Maybe I should go cycling, but it's a bit miserable out. 15:14:42 * andythenorth playing a lot of Solitair 15:14:46 <andythenorth> or Solitaire 15:14:55 <andythenorth> also this beer isn't cold, mistakes were made 15:19:13 *** Wormnest has joined #openttd 15:33:58 <peter1138> My beer is quite hot and tastes of milky tea. 15:34:20 <LordAro> peter1138: ah, so you did go to spoons 15:35:14 <peter1138> hah 15:35:40 <peter1138> Though my local sometimes does an Earl Grey beer. 15:37:37 <LordAro> curious 15:40:21 <andythenorth> hmm grf callbacks 15:40:24 <andythenorth> I wrote one once 15:40:28 <andythenorth> many years ago 15:40:35 <andythenorth> one of my actual OpenTTD commits 15:40:37 <andythenorth> such pride :P 15:40:59 * andythenorth wants a grf callback for https://github.com/OpenTTD/OpenTTD/blob/master/src/town_cmd.cpp#L2856 15:41:08 <andythenorth> minus the GS stuff 15:42:41 <Timberwolf> Who wins if both GS and GRF try to set a town growth rate? 15:44:51 <peter1138> Players 15:45:17 <Timberwolf> I liked the stuff Pikka was doing in TaI with restricting the houses available to a town based on various factors. You could extend that to do cool stuff like a mining town building mostly miners' terraces, etc. 15:45:25 <Timberwolf> Although then you also have to build a town set :p 15:45:54 <Timberwolf> Maybe we need some informal agreement on how industry and town sets are supposed to interact. 15:46:32 <glx> grf are not intended to set stuff, they are only asked by the game (callbacks) and game set stuff 15:52:26 <andythenorth> if both GS and GRF try to set a town growth rate...I don't use those GS 15:52:40 <andythenorth> I'm kinda into patchpack territory here :P 15:53:49 <andythenorth> this stuff is 11 years old https://wiki.openttd.org/en/Development/Design%20Drafts/NewGRF/Town%20Control 15:54:00 <andythenorth> the logs have so many conversations about this that are just air :) 15:55:14 <andythenorth> it would be nice to think that OpenTTD could actually provide this, but....evidence is otherwise so far :) 16:02:34 <andythenorth> ok first problem: is there actually a 'town' in grf? :P 16:02:55 <andythenorth> I think there was and it got deleted? 16:06:54 <andythenorth> maybe that was nml 16:07:18 <andythenorth> we changed feature 0x12 from towns to road types 16:09:02 <andythenorth> and used 0x14 for towns 16:11:31 <andythenorth> so town->callback_mask isn't a thing yet 16:16:06 <andythenorth> no action 0 for towns :) 16:16:09 <andythenorth> oofsie 16:19:18 <andythenorth> other features use e.g. EngineInfo or StationSpec 16:19:26 <andythenorth> seems to be where action 0 stuff goes? 16:19:48 <glx> towns used a fake feature in nml 16:20:15 <glx> it was only for scope IIRC 16:20:48 <andythenorth> oh lol GSF_FAKE_TOWNS 16:20:52 <andythenorth> just found that :) 16:20:54 <andythenorth> in openttd 16:21:09 <glx> same idea I guess 16:23:53 <andythenorth> oh frosch removed the feature 0x14 stuff from nml here https://github.com/OpenTTD/nml/commit/678a9453ead560a95e3fbea7f592bed1a3dccf1d#diff-23e315495dd26363695444fb44183da884c64781e40a21d410f3482d317df694L18 16:24:57 <andythenorth> ok action 0 towns is not a small thing :P 16:44:56 *** Progman has joined #openttd 16:46:48 *** tokai has joined #openttd 16:46:48 *** ChanServ sets mode: +v tokai 16:53:46 *** tokai|noir has quit IRC 17:11:14 *** sla_ro|master has joined #openttd 17:21:29 <peter1138> Why am I really tired? 17:30:56 <andythenorth> long covid? 17:47:48 <peter1138> Oh, hope not. 17:48:26 <peter1138> Oh dear, dog managed to catch a bird and brought it inside... 17:49:22 <andythenorth> alive or dead? 17:56:41 *** HerzogDeXtEr has joined #openttd 17:58:07 <peter1138> Dead now, but it was warm... 17:58:26 *** virtualrandomnumber has joined #openttd 18:00:25 <TrueBrain> So some veggies with it and you have your dinner! 18:03:03 <andythenorth> is it a pigeon? 18:04:38 <andythenorth> https://media.discordapp.net/attachments/337701432230805505/874352404181680148/unknown.png 18:04:50 <andythenorth> ^ TrueBrain too many words, but the mechanic is now just 'growth points' 18:04:53 <andythenorth> call the thing what it is 18:05:57 <TrueBrain> Nice :) 18:06:53 <andythenorth> next challenge: grf can't control whether towns grow :D 18:07:03 <andythenorth> 'such lol' 18:08:05 <TrueBrain> Town growth is weird anyway 18:08:18 <andythenorth> it is 18:08:21 <andythenorth> but...why? 18:08:22 <andythenorth> :P 18:08:29 <andythenorth> what would be less weird? 18:08:35 <TrueBrain> No towns 18:09:13 <andythenorth> 'interesting idea' 18:09:50 <TrueBrain> I wanted to add some non constructive suggestions 18:09:54 <TrueBrain> I succeeded 18:10:01 <andythenorth> pls continue 18:10:08 <andythenorth> it's enjoyable 18:10:13 <andythenorth> industry towns? 18:10:16 <TrueBrain> Nah, it is as much I could muster 18:10:22 <andythenorth> towns entirely composed of floating house boats? 18:10:30 <andythenorth> we can't have towns on water, that is an error 18:10:36 <TrueBrain> Sea town .. hmmm 18:10:46 <andythenorth> also unrealistic, assuming climate change isn't just a mind control plot by the global illumaniti 18:16:11 <andythenorth> so how can we connect GS and grf then? :P 18:21:33 *** Flygon has quit IRC 18:23:21 <andythenorth> how about AWS Lambdas parsing json from an AWS queue thing? 18:30:15 *** moll has joined #openttd 18:41:55 <TrueBrain> sounds like an excellent idea ;) 18:44:48 <andythenorth> can we afford it? 18:44:48 <andythenorth> :P 18:45:54 <TrueBrain> the latency? No :) 18:47:35 *** WormnestAndroid has quit IRC 18:52:25 *** WormnestAndroid has joined #openttd 18:57:02 <andythenorth> so one serious idea was a fake industry for GS to read 18:57:33 <andythenorth> the current recommended route is for GS to detect the grf by reading the accept / produced cargo at specific industries 18:57:42 <andythenorth> and having an internal table of which grfs do what 18:58:04 <andythenorth> the problem is that the GS might detect the wrong version of the grf 18:58:28 <andythenorth> or that the player might have a newer grf version the GS isn't aware of 18:59:05 <andythenorth> but I could create a hash using the accept/produce cargos at an industry in specific combination 18:59:15 <andythenorth> and the GS only works with specific hashes 18:59:27 <andythenorth> this is a serious suggestion 19:15:38 *** jottyfan has joined #openttd 19:16:48 *** jottyfan has quit IRC 19:20:55 *** WormnestAndroid has quit IRC 19:21:52 *** WormnestAndroid has joined #openttd 19:30:29 <andythenorth> hmm so GS has no callbacks? 19:37:02 <TrueBrain> :D You should write this part down ;) 19:37:06 <TrueBrain> GS -> event driven 19:37:08 <TrueBrain> GRF -> callback driven 19:39:08 <andythenorth> is there a monthly event? 19:39:18 * andythenorth looks 19:40:55 <andythenorth> seems not https://docs.openttd.org/gs-api/classGSEventCompanyTown.html 19:40:57 <TrueBrain> you are thinking too NewGRFy :P 19:41:03 <TrueBrain> GS is pumping his own loop 19:41:08 <andythenorth> hmm 19:41:18 <TrueBrain> NewGRF is a slave of OpenTTD, where GS is free to do when-ever what-ever it wants 19:41:32 <TrueBrain> GS is like a real application 19:41:47 <andythenorth> if I can make this work, it would be interesting to graphviz the calls :P 19:41:55 <andythenorth> it's going to be made of complete string 19:42:06 <andythenorth> so can I write my own loop in GS? 19:42:12 <andythenorth> to do a monthly town check? 19:42:56 <andythenorth> maybe the wiki has a GS guide 19:44:48 <andythenorth> maybe the NoAI stuff is what I need 19:45:56 <andythenorth> maybe it's easy 19:46:05 <andythenorth> just check the date, if it's 1st of month, update all towns? 19:48:53 <andythenorth> ha ha ha 19:49:03 <andythenorth> I just found a way to communicate grf -> GS 19:49:17 <andythenorth> I can change cargo acceptance, and GS can read that 19:49:18 <andythenorth> https://docs.openttd.org/gs-api/classGSIndustry.html#a51a771fdb27e742ae6d7814a38bbf6bc 19:49:25 <andythenorth> that gives 1 bit of information 19:51:36 <andythenorth> hmm 19:51:46 <andythenorth> why aren't industries reimplemented in GS? 19:51:59 <andythenorth> surely 'cargo arrives at industry' is just a GS event? 19:52:07 <andythenorth> then the production could be calculated in GS 19:52:58 <andythenorth> GS can do things like set industry text with SetText() 19:53:22 <andythenorth> ditch grf, move it all to GS 19:56:29 <TrueBrain> you keep falling for the same trap with the difference between GS and NewGRF :) 19:56:36 <TrueBrain> GS is async, it doesn't "react" to events 19:56:50 <TrueBrain> it can read them, and act on them 19:56:52 <andythenorth> I keep getting told to use GS though :| 19:56:54 <andythenorth> it's confusing 19:57:04 <TrueBrain> GS and NewGRF, if you draw them in 2 circles 19:57:08 <TrueBrain> their intersection is OpenTTD 19:57:16 <TrueBrain> so what-ever you think NewGRF does, GS is not doing that :P :P :P 19:57:21 <TrueBrain> okay, that was VERY unhelpful, I am sorry :) 19:57:33 <TrueBrain> GS has a mainloop, and you can do stuff in the mainloop 19:57:36 <TrueBrain> part of that is reading events 19:57:38 <TrueBrain> and you can react on them 19:57:42 <TrueBrain> or you can read tile-info 19:57:43 <TrueBrain> and react on that 19:57:46 <TrueBrain> but what-ever it is, you are reactive 19:58:01 <TrueBrain> NewGRFs are being called (via callbacks) when OpenTTD needs something from it 19:58:14 <TrueBrain> OpenTTD halts till NewGRF returns 19:58:30 <TrueBrain> OpenTTD never "halts" for GS (it gives it some cycles to do its thing, but cuts of GS if it is taking too long) 19:58:36 <andythenorth> hmm 19:58:45 <TrueBrain> something like "cargo is delivered to your industry" can be both a callback and an events 19:58:52 <TrueBrain> but for NewGRFs you are always called the moment it happens 19:59:09 <TrueBrain> for GS it becomes an event in the event-stack, which you might or might not react upon, which might or might not be within, say, 10 ticks 19:59:11 <TrueBrain> or 20 19:59:13 <TrueBrain> or 300 19:59:26 <andythenorth> ok so blocking vs. non blocking 19:59:37 <TrueBrain> you keep running circles on what domains GS and NewGRFs cover, for some reason it doesn't really want to stick :) 19:59:43 <TrueBrain> yeah, I didn't want to repeat wording I used last time explaining this :P 19:59:46 <andythenorth> it's because I keep getting told not to use grf 19:59:50 <andythenorth> but to use GS 19:59:55 <andythenorth> but I don't understand GS 20:00:14 <andythenorth> if GS is supposed to replace grf, but by design it can't...."does not compute" :( 20:00:28 <andythenorth> it's very puzzling 20:00:30 <TrueBrain> until you grasp the fundamental difference between the two, it is hard to reason about it .. so maybe just try creating a nice little GS? 20:00:46 <andythenorth> well I made BusyBee with Alberth 20:00:49 <andythenorth> but that's just goal stuff 20:00:50 <TrueBrain> I think you heavily confuse "you should use GS for that" with "GS is replacing GRF" 20:00:55 <TrueBrain> as I think absolutely nobody ever said the latter 20:01:24 <TrueBrain> (GS fundamentally cannot replace GRFs, in the general sense) 20:01:35 <TrueBrain> both have their place in this ecosystem, but both are completely different beasts 20:02:07 <andythenorth> there are a few curious things 20:03:49 <andythenorth> GS can set the industry text 20:03:55 <andythenorth> even though that's grf domain 20:04:25 <andythenorth> maybe that's irrelevant 20:04:39 <TrueBrain> that is not how those "domains" are defined 20:04:53 <TrueBrain> they can share the same functionality, that isn't a real issue 20:04:58 <TrueBrain> the way to go about it, that is the issue :) 20:05:00 <andythenorth> it isn't? 20:05:08 <andythenorth> ok 20:05:13 <TrueBrain> that said, it is a bit weird both can set text on the industry GUI .. what happens if both do? :P 20:05:42 <andythenorth> code will know 20:05:51 <andythenorth> probably industry_cmd.cpp 20:05:52 * andythenorth looks 20:06:33 <andythenorth> IndustryAction::SetText: looks like the command 20:08:05 <andythenorth> GS text won't be shown 20:08:10 <andythenorth> grf callback will replace it 20:08:29 <andythenorth> industry_gui.cpp DrawInfo() 20:09:04 <andythenorth> so similar might also apply if grf had control over some town features 20:09:40 <TrueBrain> basically a bit awkward :P 20:09:49 <andythenorth> stuff and things 20:09:50 <michi_cc> I might be doing heresy in a second here... 20:10:13 <DorpsGek> [OpenTTD/OpenTTD] michicc opened pull request #9464: Add: [Script] Basic information about loaded NewGRFs for scripts. https://git.io/JR2EH 20:10:33 <andythenorth> yes that's a much needed PR :) 20:10:50 <andythenorth> that would enable things like vehicle tech trees and unlocking levels and stuff 20:10:55 <andythenorth> which the rest of GS now has features for 20:10:58 <andythenorth> but is driving blind 20:11:21 <andythenorth> we can unlock a vehicle tech tree, but we have NFI what grfs are in the game :) 20:11:23 <TrueBrain> michi_cc: "Also, there is no way for a script to be informed about changes to loaded NewGRFs after game start." <- unsupported anyway :P 20:12:07 <andythenorth> maybe I should dig out this again https://github.com/andythenorth/town-experiments-GS 20:13:04 <DorpsGek> [OpenTTD/OpenTTD] TrueBrain approved pull request #9464: Add: [Script] Basic information about loaded NewGRFs for scripts. https://git.io/JR2ut 20:13:24 <TrueBrain> I assume you tested it :P 20:13:32 <andythenorth> it compiled, yes? 20:13:41 <andythenorth> "Some checks haven’t completed yet" :D 20:13:42 <TrueBrain> maybe it should be part of the regression ... 20:14:23 <michi_cc> Yes, I hacked some log calls into a GS and they produced something :) 20:14:27 * andythenorth hasn't rebased upstream for a while, time to do that 20:14:47 <andythenorth> 'satisfy this town and get awarded a new train' 20:14:51 <andythenorth> 'level up' 20:14:55 <michi_cc> Would mean OTTD has to ship a regression NewGRF, too. 20:15:21 <TrueBrain> yup. And a savegame update. Lot of work .. not sure it is worth it :) 20:15:27 <TrueBrain> it would be "the correct thing to do", but meh 20:16:17 <michi_cc> You can't get any more bare-bones than this PR anyway, not that much chance for world destruction :) 20:16:53 <TrueBrain> just that we don't validate it doesn't break :P 20:17:06 <andythenorth> tech tree time https://docs.openttd.org/gs-api/classGSEngine.html#a7cb222ce6deb5418ee527c9a378d71b0 20:17:07 <TrueBrain> not that we have maintained the regression set so far 20:17:33 <andythenorth> ha there's also DisableForCompany() for engines 20:17:44 <andythenorth> "you annoyed the town, you can no long build the best train" 20:18:22 *** gelignite has quit IRC 20:20:29 <andythenorth> so towns have persistent storage, segmented by grfid, could GS read that? (not write) 20:22:29 <TrueBrain> I would say that being able to generate an Event in a GS would be more generic, but that is just me 20:24:05 * andythenorth needs a diagram 20:24:51 * andythenorth has a miro account somewhere 20:27:24 <andythenorth> https://miro.com/app/board/o9J_l3bJgz0=/ 20:27:52 <TrueBrain> so you have to signup to view a board? Nice 20:28:12 <TrueBrain> a simple guarantee nobody is going to use your service for anything Open Source \o/ :D 20:28:54 <andythenorth> try this https://miro.com/welcomeonboard/dGRKbDlYY1d6RWU0OG1VQVRxMlRIbkk4MWJxbWVFWWVJOVRyQXZaekVEZzZoWW0yb3FPNU1DOFdCb2hGNEtlRHwzMDc0NDU3MzYyMzIwMzY3ODA5 20:28:56 <andythenorth> such hash 20:29:22 <TrueBrain> nein 20:29:25 <andythenorth> lol 20:29:43 <andythenorth> how silly 20:29:56 <TrueBrain> yes 20:30:10 <andythenorth> this is view only :( https://miro.com/app/board/o9J_l3bJgz0=/ 20:30:10 <andythenorth> lame 20:30:30 <TrueBrain> at least that works :P 20:30:42 <andythenorth> if I pick one thing open source does weirdly, it's using irc text for design not pictures 20:31:08 <andythenorth> is there a no-account drawing tool? 20:32:44 <andythenorth> nvm :) 20:35:55 <andythenorth> TrueBrain what would generate the event? 20:36:20 <TrueBrain> a NewGRF 20:37:04 <TrueBrain> I see my English sucked there: I would thinking giving the NewGRF the ability to create a generic NewGRF Event for a GS would be the more generic solution 20:39:06 <glx> I guess GS could read persistent storage using grfid 20:39:39 <TrueBrain> personally, I would avoid going that way 20:39:43 <TrueBrain> it would be a nightmare with versions etc etc 20:39:55 <glx> yeah of course 20:40:03 <TrueBrain> hence my suggestion for an event-route :) 20:40:15 <andythenorth> can events have a payload? or do they rely on classes of event or something? 20:40:17 * andythenorth looks in docs 20:40:45 <TrueBrain> events do have a payload, yes. 20:40:56 <andythenorth> seems they have specific methods? 20:41:05 <andythenorth> e.g. https://docs.openttd.org/gs-api/classGSEventIndustryClose.html#a9dfce43a751ba67e49a89b09481f9917 20:41:44 <TrueBrain> yup; so a GSEventNewGRFData or whatever, with a GetData() :P 20:41:58 <TrueBrain> I think an earlier suggestion was to do it in JSON 20:42:07 <TrueBrain> (which can be converted to a Squirrel table, I guess) 20:42:25 <andythenorth> the grf would provide the event how? 20:42:33 <andythenorth> yielded as a callback result in arbitrary callbacks? 20:43:01 * andythenorth thinks it would be weird if vehicles could issue events, but eh, who knows 20:43:16 <TrueBrain> generic solutions allow for people doing fun stuff 20:43:18 <andythenorth> GS has lots of stuff about individual vehicles and so on 20:43:23 <andythenorth> that I never explored 20:43:36 <andythenorth> 'your vehicle has caught fire' 20:44:26 *** Progman has quit IRC 20:44:28 <andythenorth> oh there's StartStopVehicle 20:44:38 * andythenorth reinvents breakdowns 20:44:57 <andythenorth> 'you have annoyed the town, all your vehicles have been stopped by police' 20:45:05 <TrueBrain> see, generic is good ;) 20:45:09 <andythenorth> isn't it 20:45:26 <andythenorth> "your train crew went on strike, all trains are stopped" 20:46:04 <andythenorth> I am puzzled where / how the event would be issued though :) 20:48:39 <glx> that's the main "issue" with events is where to fire them 20:49:09 <andythenorth> hmm 20:49:40 <andythenorth> what if there was just a new operator, that can store arbitrary json anywhere in a varact2 chain 20:49:55 <andythenorth> store / fire 20:50:15 <andythenorth> and that's yielded as an event when the varact2 resolves? 20:51:13 <TrueBrain> this is where you need frosch to either tell me it is a stupid idea, or to fill in the blanks :D 20:52:54 * andythenorth wonders what happens if 500 industries all yield an event in the monthly industry loop 20:53:00 <andythenorth> I guess they just get queued up? 20:53:06 <TrueBrain> yup 20:53:12 <andythenorth> and the GS gets through them in it's opcode window 20:53:15 <andythenorth> its * 20:53:39 <glx> exactly it's a stack 20:53:51 <andythenorth> stuff like town growth is probably a case where a bit of latency really doesn't matter 20:53:57 <andythenorth> it's all a dice roll anyway 20:55:44 <Timberwolf> Oh yeah, Villages Is Villages has massive latency on large maps and the only time anyone notices is when it's first setting up and hasn't put text in the town window yet. 20:57:00 <andythenorth> worth knowing :) 21:03:04 *** jottyfan has joined #openttd 21:03:40 <TrueBrain> honestly, GS for Town stuff is a bit stupid by design .. we have some designs to address that .. but .. difficult :) 21:04:03 <TrueBrain> so I want to add something to my suggestion: GSNewGRFTownEvent, GSNewGRFIndustryEvent, etc, so events are specific for a type 21:04:07 <TrueBrain> makes later changes easier :) 21:06:23 <andythenorth> ok so we need someone who can say 'quak' next :P 21:07:30 * andythenorth tries to imagine writing json from nml :) 21:07:48 <andythenorth> plain strings are probably fine, but it would be much more interesting if it could do the modern equivalent of %s on params 21:08:01 <andythenorth> e.g. grf puts values on a stack and the json string is templated 21:08:16 <TrueBrain> I would think you want to fill a table of sorts 21:08:43 <andythenorth> well we have the text stack 21:08:47 <andythenorth> it's ... clunky 21:08:52 <glx> it's small 21:09:05 <andythenorth> frosch said it would be extensible a bit further 21:10:10 <andythenorth> but it's fiddly to use because it requires pissing around with stuffing things into dwords as you write 21:10:12 <andythenorth> then unpacking them 21:10:26 <andythenorth> so that the string codes get the size of value they expect 21:12:37 <andythenorth> oh GS industry text control is recent :) https://github.com/OpenTTD/OpenTTD/commit/bab7de6cf23dce124ef8b1e284d0d1f3996dc8b8#diff-ce2189a945a85c2aec8e107e2845ab769d2f107f4a22287366a972caf7d796ae 21:12:46 * andythenorth exploring current state of the art 21:14:10 *** nielsm has quit IRC 21:14:28 <andythenorth> curious who wins between GS and grf here https://github.com/OpenTTD/OpenTTD/pull/7912 21:14:30 <TrueBrain> honestly, I think they simply forgot a NewGRF could do that too 21:14:35 <andythenorth> no it was intended 21:15:17 <andythenorth> it's the "I'd rather not use a grf" approach from dp 21:16:01 <TrueBrain> you would think it leaves a marker so one wins from the other explicit, but who am I to judge :) 21:16:27 <andythenorth> yolo 21:16:40 <andythenorth> ultimately it does a lot less harm than all the older non-generic stuff 21:16:51 <andythenorth> livery over-rides I am looking at you 21:16:59 <andythenorth> ChangeIndustryProduction is kind of interesting 21:17:08 <TrueBrain> it is really difficult in an Open Source game to think long-term .. we see that throughout OpenTTD 21:17:09 <TrueBrain> :) 21:17:21 <andythenorth> especially in a game 21:17:28 <andythenorth> platform product is easier 21:17:40 <TrueBrain> I was explicit about the "game" part ;) 21:17:46 <andythenorth> I enjoyed it 21:17:55 <andythenorth> it was a good point well made 21:18:05 <TrueBrain> :P 21:18:17 <andythenorth> most games evolve via major version changes also 21:18:19 <TrueBrain> but yeah, lot of "ooh, pretty flower" 21:19:49 <andythenorth> I am enjoying trying to understand this :P https://github.com/OpenTTD/OpenTTD/blob/master/src/industry_cmd.cpp#L2721 21:20:02 <andythenorth> requires careful parsing of parentheses 21:20:11 <andythenorth> also & vs && 21:21:22 *** WormnestAndroid has quit IRC 21:21:34 *** WormnestAndroid has joined #openttd 21:34:48 <andythenorth> ok this seems like progress anyway 21:34:54 <DorpsGek> [OpenTTD/OpenTTD] michicc merged pull request #9464: Add: [Script] Basic information about loaded NewGRFs for scripts. https://git.io/JR2EH 21:34:58 <andythenorth> :) 21:35:29 <andythenorth> I will test that tomorrow if I get chance :) 21:45:13 *** andythenorth has quit IRC 21:46:39 *** Samu has quit IRC 21:52:50 *** sla_ro|master has quit IRC 22:29:48 *** virtualrandomnumber has quit IRC 22:53:25 *** tokai|noir has joined #openttd 22:53:25 *** ChanServ sets mode: +v tokai|noir 23:00:06 *** tokai has quit IRC 23:05:26 *** tokai|noir has quit IRC 23:08:16 *** tokai has joined #openttd 23:08:16 *** ChanServ sets mode: +v tokai 23:22:27 *** m1cr0m4n has quit IRC 23:22:51 *** gnu_jj has quit IRC 23:29:09 *** m1cr0man has joined #openttd 23:38:18 *** HerzogDeXtEr has quit IRC