Back to Home / #openttd / 2020 / 08 / Prev Day | Next Day
#openttd IRC Logs for 2020-08-01

---Logopened Sat Aug 01 00:00:56 2020
02:31-!-Wolf01 [~wolf01@0001288e.user.oftc.net] has joined #openttd
02:31-!-Wolf01 is "Wolf01" on #openttd
02:42<Wolf01>Wtf, my pc case fans are raising the temperature instead of dropping it
02:53-!-nielsm [~nielsm@188-181-82-243-cable.dk.customer.tdc.net] has joined #openttd
02:53-!-nielsm is "Niels Martin Hansen" on #openttd
03:02<Wolf01>Case is perfectly stable at 53°C, with the GPU at 83°C
03:07-!-WormnestAndroid [~WormnestA@097-106-006-046.res.spectrum.com] has quit [Remote host closed the connection]
03:07-!-WormnestAndroid [~WormnestA@097-106-006-046.res.spectrum.com] has joined #openttd
03:07-!-WormnestAndroid is "WormnestAndroid" on #openttd
03:14<TrueBrain>53 degrees? What the hell are you doing to it?
03:14<Wolf01>Turned it on
03:14<TrueBrain>you can bake an egg on that case
03:15<Wolf01>Yes
03:15<TrueBrain>that is not normal you know :P
03:15<Wolf01>Yes
03:15<TrueBrain>Man of few words I see :D
03:15<Wolf01>I think the sensor is a bit off, the other one shows 38°C
03:16<TrueBrain>well, touch your case and you will know :P
03:16<TrueBrain>you either burn your finger or not :D
03:16-!-iSoSyS [~iSoSyS@2001:818:e851:d900:7285:c2ff:fedd:1e5b] has joined #openttd
03:16-!-iSoSyS is "realname" on #/r/openttd #openttd
03:17<Wolf01>It's not hot
03:17<Wolf01>Maybe there's a point near the chipset sensor where the air flow can't get well
03:18<TrueBrain>not simply your CPU temp? :)
03:18<Wolf01>No, that's at 38-42°C
03:18<Wolf01>Even on load it reaches at most 50°C
03:21<Wolf01>The problem is that the GPU cooling system is blowing like a hairdrier inside the case instead of use that nice big hole that there's on the rear end
03:26-!-andythenorth [~andytheno@cpc87141-aztw31-2-0-cust239.18-1.cable.virginm.net] has joined #openttd
03:26-!-andythenorth is "andythenorth" on #openttd
03:27<TrueBrain>welcome andythenorth
03:29<Wolf01>https://images.hothardware.com/contentimages/newsitem/47099/content/ASUS_TUF_GeForce_RTX_2060_Back.jpg see, the grill on the support is decorative, the heat is blown out from the top, where you can see the copper pipes
03:34<Wolf01>andythenorth: https://www.ironhorsebrickco.com/
03:35<Wolf01>Just found it this morning
03:35<andythenorth>Wolf01 I read about them when they announced they quit :)
03:36<Wolf01>Yep, I read about that too
03:38<Wolf01>Would be possible on train whack to generate realistic consists? Like something based on engine power, so you won't see a shunting engine with 15 hoppers
03:39<Wolf01>Or 3 extremely overpowered heavy freight engines and 4 flat wagons
03:41<Wolf01>And a bit of love for MUs :P
03:58<andythenorth>I think you have to upgrade to OpenTTD for that
03:58<andythenorth>or fork
03:58<Wolf01>:D
03:58<andythenorth>I did consider doing it, but I pretty much had my fun with TW
04:10<nielsm>https://www.youtube.com/watch?v=NxV2zyJTR2g very good video about the first electric loco in dk (and history of electrification here: too little and too late)
04:14<andythenorth>danish Horse :P
04:18<nielsm>around 21 minutes is also shows one of the antique "broom closet" shunters in use, pushing one of the EA locs into the railway museum
04:20-!-Progman [~progman@p4fd66741.dip0.t-ipconnect.de] has joined #openttd
04:20-!-Progman is "Peter Henschel" on #openttdcoop.dev #openttd
04:34<andythenorth>lol cdist
04:34<andythenorth>pax networks
04:34<andythenorth>I clear out one station, and create problems at the next
04:35<andythenorth>:D
04:50-!-sla_ro|master [~sla.ro@89.136.179.137] has joined #openttd
04:50-!-sla_ro|master is "slamaster" on @#sla #openttd
04:54-!-iSoSyS [~iSoSyS@2001:818:e851:d900:7285:c2ff:fedd:1e5b] has quit []
05:10-!-frosch123 [~frosch@00013ce7.user.oftc.net] has joined #openttd
05:10-!-frosch123 is "frosch" on #openttd
05:30-!-HerzogDeXtEr [~farci@ip92340e5b.dynamic.kabel-deutschland.de] has joined #openttd
05:30-!-HerzogDeXtEr is "purple" on #openttd
05:36<frosch123>foobar invented phpnml :p
05:36<nielsm>wow
05:39<frosch123>so, what to do: there is an old phpnml set on devzone. the coder is no longer around and other people want to continue. they do not know the technicallities of vcs or code generation, so just post modified versions of the originally generated nml. now they ask for access to bananas to upload updates
05:39<frosch123>i am not sure how hard they tried to contact foobar
05:40<frosch123>but i can ask that
05:42<frosch123>i guess the easiest solution is: they shall contact foobar, if foobar is fine then it's okay. otherwise they should just make a new grfid like first234
05:59<andythenorth>thanks :)
06:01<andythenorth>nobody invented perl-nml yet?
06:01<_dp_>lisp-nml :p
06:02<andythenorth>goloang-nml?
06:02<andythenorth>node-nml oof
06:02<_dp_>jinja-nml would probably even make some sense
06:03<andythenorth>what I'm doing is only one step away from jinja-nml
06:03<andythenorth>some of the syntax is similar
06:03<_dp_>i just generate it with python
06:04<andythenorth>%s for everything? :P
06:04<_dp_>f
06:05<andythenorth>I considered just using the Template builtin for everything
06:05<andythenorth>it's quite god
06:05<andythenorth>good *
06:18<andythenorth>so can a GS disable if specific version of specific grf isn't present?
06:18<andythenorth>I think I asked this before
06:18<andythenorth>the solution was a fake industry using 16-in / 16-out cargos as a unique hash
06:20<frosch123>you can read cargo labels
06:21<frosch123>i consider this idea "check for specific grf" really stupid. firs versions are very different
06:21<frosch123>how could a gs work for firs from today and 2 years ago, but not for some other industry grf
06:21<frosch123>ENoSense to me
06:22<_dp_>my first thought was to do some fake object but can GS even interact with object?
06:23<_dp_>not all gs can reasonably work with unknown newgrfs
06:24<andythenorth>some of the things the FIRS GS seems to need to do
06:24<andythenorth>I don't really want to have to test with other industry grfs :)
06:24<andythenorth>I barely have time to test the grfs I make
06:25<andythenorth>I'm not sure there should even be a FIRS GS tbh
06:26<andythenorth>I don't know how I'd ever test it, FIRS changes during every savegame as I find things to fix, and that will constantly break the GS
06:26<frosch123>why would you try to test a gs with all industry sets? you can't test it with next-years firs anyway
06:27<andythenorth>well I guess....since I stopped reading forums, reddit, and GH
06:27<andythenorth>I wouldn't get bug reports?
06:27<frosch123>isn't that a good thing?
06:27<andythenorth>it is for me :)
06:27<andythenorth>not sure about the people with broken games :)
06:27<andythenorth>but eh, I can't go round fixing the world, I go mad
06:28<frosch123>is it signficiant compared to breaking games by adding 50 random newgrfs?
06:28<andythenorth>unlikely
06:28<_dp_>don't worry, 90% of people with broken games don't even seem to ever realize it's broken :p
06:28<andythenorth>ok, Schrodinger's GS, maybe I make one, maybe I don't
06:28<andythenorth>all I want (right now) is a cargo goal for town cargos
06:28<andythenorth>that actually knows which cargos make sense :P
06:29<frosch123>fill this box with 100m³ of alcohol to ensure the cat is dead?
06:29<andythenorth>ha
06:29<andythenorth>Silicon Cargo Bee
06:29<andythenorth>is what I need
06:29<frosch123>andythenorth: you can scan town areas and detect cargo acceptance
06:30<andythenorth>separately for industries and houses? :)
06:30<frosch123>i think so
06:30<andythenorth>hmm, I need to try forking something :P
06:30<_dp_>funnily enough broken simple cb requires alcohol as one of first cargos...
06:30<andythenorth>_dp_ also house acceptance :( :P :X :D
06:31<andythenorth>anyway time for some actual outside :)
06:34-!-andythenorth [~andytheno@cpc87141-aztw31-2-0-cust239.18-1.cable.virginm.net] has quit [Quit: andythenorth]
07:41<_dp_>this doesn't look right: https://github.com/OpenTTD/OpenTTD/blob/master/src/engine.cpp#L682
07:41<_dp_>shouldn't it be &= ~ENGINE_AVAILABLE ?
07:42<_dp_>I may even know how this bug manifests
07:44<nielsm>hm that does look a bit weird
07:44<frosch123>_dp_: it'S the value for engine expired
07:45<frosch123>ENGINE_AVAILABLE means it has been introduced
07:45<frosch123>company_avail=0 means its no longer available
07:45<frosch123>ENGINE_AVAILABLE is more like ENGINE_NO_LONGER_NEEDS_TO_BE_CHECKED_FOR_INTRODUCTION
07:46<_dp_>frosch123, well, I wouldn't engine from other climate as ever being introduced :p
07:46<_dp_>though it doesn't need to be checked indeed
07:48<frosch123>there are multiple methods to achieve something :) this one is probably copied from line 585/603
07:50<frosch123>also, it's CS code again
07:52<_dp_>ok, another interesting question is then does this line work? https://github.com/OpenTTD/OpenTTD/blob/master/src/engine.cpp#L1132
07:53<_dp_>it probably does by the virtue of company mask being 16 bit with only 15 playable companies, but...
07:56<frosch123>i think company_avail was pretty stupid. it's either 0 (not available to anyone), 1 bit set (preview), or all bits set
07:56<frosch123>it does not set/clear bits when companies start or bankrupt
07:57<frosch123>so you may be able to replace that line with e->company_available == -1 or similar
08:01-!-glx [kvirc@000128ec.user.oftc.net] has joined #openttd
08:01-!-glx is "Loïc GUILLOUX" on #openttd
08:02-!-mode/#openttd [+v glx] by ChanServ
08:02<_dp_>yeah, I was actually trying to reset it at company start but couldn't figure out what to put there xD
08:03<_dp_>first logical thing would be check ENGINE_AVAILABLE but nope :p
08:15-!-iSoSyS [~iSoSyS@2001:818:e851:d900:7285:c2ff:fedd:1e5b] has joined #openttd
08:15-!-iSoSyS is "realname" on #/r/openttd #openttd
08:18-!-Progman [~progman@p4fd66741.dip0.t-ipconnect.de] has quit [Remote host closed the connection]
08:22-!-iSoSyS [~iSoSyS@2001:818:e851:d900:7285:c2ff:fedd:1e5b] has quit []
08:46<_dp_>lol https://i.imgur.com/rbdAAXQ.png
08:48-!-jottyfan [~Thunderbi@x4dbfd96b.dyn.telefonica.de] has joined #openttd
08:48-!-jottyfan is "jottyfan" on #openttd
08:48<Eddi|zuHause>why would those bits need to be reset for company start/bankrupt?
08:55<b_jonas>Eddi|zuHause: because a company can get an engine one year early for "exclusive testing". it's a weird TTD mechanic.
08:56<b_jonas>the annoying part is only the popup you get for it.
08:56<Eddi|zuHause>yes, i know that. doesn't answer the question
08:57-!-jottyfan [~Thunderbi@x4dbfd96b.dyn.telefonica.de] has quit [Quit: jottyfan]
08:58<_dp_>Eddi|zuHause, it reuses company id in multiplayer so even ignoring GS stuff company getting a preview it was never offered isn't quite right
09:00<Eddi|zuHause>so.. if a company with a preview goes bankrupt, you could move the preview bit from <company> to bit 15
09:01<Eddi|zuHause>then game mechanics wise, it'll still meet the invariant of "exactly 1 bit set", but that bit will not match any company
09:01-!-andythenorth [~andytheno@cpc87141-aztw31-2-0-cust239.18-1.cable.virginm.net] has joined #openttd
09:01-!-andythenorth is "andythenorth" on #openttd
09:01<_dp_>you mean from bit 15? that's a solution, yes, though a bit hacky
09:02<_dp_>there is no invariant of 1 bit set
09:03<andythenorth>can't see a method for GS to read town registers
09:03<andythenorth>do I just overlook it?
09:03<andythenorth>https://docs.openttd.org/gs-api/classGSTown.html
09:04<_dp_>what are town registers? xD
09:05<Eddi|zuHause>andythenorth: who said there was such a thing available?
09:05<andythenorth>things are usually found in the last place we look
09:06<andythenorth>_dp_ https://newgrf-specs.tt-wiki.net/wiki/Storages#Persistent_storage
09:06<andythenorth>"Persistent storage accessed by GRFID"
09:06<andythenorth>oh, the GS won't know the GRFID
09:06<andythenorth>nvm
09:06<_dp_>oh, yeah, I'd be very surprised if GS had access to that.
09:06<andythenorth>every story about GS seems to go that way
09:07<andythenorth>if we took these diagrams, and modified them https://newgrf-specs.tt-wiki.net/wiki/VehicleRefitting
09:07<andythenorth>so that all arrows pointed to 'NOPE'
09:07<andythenorth>that's GS
09:08<_dp_>andythenorth, there are few arrows that point to CB and such :p
09:08<frosch123>andythenorth: all the early gs were about adding metrics and scoring, not about changing the game
09:09<andythenorth>I know, and I shouldn't complain so much :P
09:09<_dp_>but tbh everything about openttd modding feels like it was never meant to allow any modding :P
09:09<frosch123>i think the expectations on gs shifted
09:09<andythenorth>because the spec war was lost
09:09<andythenorth>a bunch of people who no longer contribute declared GS had won and newgrf evolution would stop
09:09<andythenorth>(specific to towns and economy)
09:10<andythenorth>it's one reason pikka took a long break, he lost that war
09:10<_dp_>hm, where do I fit in that statement I wonder xD
09:10<andythenorth>dunno :)
09:10<andythenorth>stuff and things
09:10<andythenorth>game's gonna game
09:11*andythenorth looks what houses can do in newgrf
09:11<frosch123>they look nice
09:12<andythenorth>all I want to do initially is adjust town growth to fit common misconception about how it works
09:12<frosch123>blame the city builders
09:12<frosch123>i have no idea where to obsession of growing towns comes from
09:12<andythenorth>well
09:13<andythenorth>recently I have turned town growth to minimal
09:13<andythenorth>notably my 10 year old is obsessed with how big a town can grow though
09:13<andythenorth>I use him as a benchmark for the typical player
09:13<frosch123>the typical teenage player :p
09:13<andythenorth>he's very reddit
09:14<andythenorth>overly articulate for his age, very well informed about some topics, quite naive about RL
09:14<frosch123>i think as a teenager i was annoyed that the concorde with capacity 110 performed worse than than some slow plane with 350 pax
09:14<frosch123>i didn't understand that the bottleneck was the airport
09:14<andythenorth>I was just annoyed that signals didn't work in any way I could understand :)
09:14<andythenorth>and the steel mill always closed just as I finished the line to it :)
09:14<Eddi|zuHause>i was annoyed that there were no one way signals
09:15<frosch123>it was only "it is faster, how could it possibly transport less"
09:15<andythenorth>I was playing in 1995 or so, I don't know even if it was TTD or TTO
09:15<Eddi|zuHause>... and then i figured out a way to make it one-way anyway
09:15<andythenorth>there *must* be a town growth cb in newgrf, right?
09:15<_dp_>there is a gap in functionality that neither newgrf nor gs can ever close as newgrfs suck for logic and don't know anything about the game goals and gs is server-side and slow
09:15-!-Samu [~Ricardo@po1-84-91-251-215.netvisao.pt] has joined #openttd
09:15-!-Samu is "realname" on #openttd
09:16<andythenorth>hmm seems no town growth cb
09:16<_dp_>basically gs only knows what to do and newgrf only knows how :p
09:17<andythenorth>maybe cb 17 can be abused for town growth
09:17<andythenorth>https://newgrf-specs.tt-wiki.net/wiki/Callbacks#House_construction_check_.2817.29
09:17<andythenorth>_dp_ it's worse than that
09:17<andythenorth>only GS knows what to do, but it doesn't know when or why
09:18<andythenorth>it's blind to things like cargos afaict
09:18<frosch123>it isn't
09:18<frosch123>gs know more about cargos than vehicle grfs
09:19<_dp_>well, I'm not even considering universal GS whatever, in my mind GS always knows what newgrfs it has
09:19<_dp_>if it broke it broke, don't play that
09:19<andythenorth>but newgrfs change
09:19<andythenorth>and newgrfs have parameters
09:19<andythenorth>hey I should draw a design of my problem :)
09:19<andythenorth>that might help
09:19<frosch123>surprise, gs also have parameters
09:19<_dp_>good cb can never work with universal cargo
09:20<andythenorth>I am stuck currently :)
09:20<_dp_>and that probably works for any game mode, either it's specialized or junk
09:20<andythenorth>if I try to start from the design, the implementation fights it :)
09:20<andythenorth>and if I try to start from the implementation, I have no idea of the design :)
09:20<andythenorth>neither makes for good work
09:24<_dp_>IMO simple CB is a very good example of how that current design of universal gs doesn't work at all
09:24<_dp_>like, sure, it works with never firs, but town requirements are all messed up and if you want to fix it settings are all wrong as well
09:24<_dp_>don't think anyone ever got through that mess to configure it properlyl
09:26<_dp_>it takes a lot of trial and error to balance cb well, no way that can ever be done automatically for unknown game configuration
09:29<_dp_>there are just so many settings that turn the whole gameplay upside down or kill it straight away
09:29<_dp_>like, good luck citybuilding when exclusive rights are enabled on the server :p
09:30<andythenorth>https://grf.farm/images/046FBD71-5795-4271-8AB7-5BA6D90D84A1_1_105_c.jpeg
09:31<andythenorth>^ I don't know if that can be implemented currently
09:32<Eddi|zuHause>that's not a well-defined requirement :)
09:32<andythenorth>that it can be implemented?
09:33<_dp_>andythenorth, that looks like your typical cb :p
09:33<andythenorth>how?
09:33<andythenorth>there's no property for 'industry accepted cargo' afaict https://docs.openttd.org/gs-api/classGSIndustry.html
09:33<_dp_>there is cargo monitor
09:33<andythenorth>oh it's in cargomonitor :)
09:34<_dp_>though I'm not sure how much exactly it can do as I'm not really using it myself
09:34<andythenorth>it's used in Busy Bee I think
09:34<andythenorth>TBH I don't really understand busy bee
09:34<andythenorth>most of my commits are followed by 'Fix: andy broke stuff' by albert
09:34<_dp_>typically gs counts everything for a town that's linked to a station it was delivered to
09:35<Eddi|zuHause>andythenorth: i mean, it's not clear what's even demanded... "for {any|all} town[s], for any/all industr{y|ies} [in this town], for {any|all} {input|output} cargo[s]"...
09:35<_dp_>* cb gs
09:36<andythenorth>Eddi|zuHause specifying any detailed design is going to fail on the spec not permitting it
09:36<andythenorth>given that outline, I want to figure out what's possible
09:36<_dp_>yeah, it usually comes to "what I can even do that's close enough" :p
09:38<frosch123>andythenorth: https://docs.openttd.org/gs-api/classGSTown.html#afb641936e800cc5c4a876738aa57f3d1 <- that considers all cargo delivered to stations of the town
09:38<frosch123>so your gs should be about 20 lines
09:39<andythenorth>I am favouring a short GS :)
09:39<andythenorth>less to go wrong
09:39<andythenorth>do I read that correctly, it needs to know town effects on the cargo?
09:40<frosch123>looks like there is a differene for cargo delivered and cargo produced
09:41<frosch123>for stuff produced at the town you can read per cargo
09:41<frosch123>for stuff delivered only per towneffect
09:41<frosch123>so, if you define service as "output cargo is transported" you are fine
09:42<frosch123>powerplants lose
09:42<andythenorth>yeah, so the industries are all black holes :)
09:42<andythenorth>that's not on the diagram
09:42<andythenorth>diagrams are mutable :P
09:43<_dp_>I was wondering what's the difference between GetLastMonthProduction and GetLastMonthSupplied
09:43<_dp_>apparently none xD
09:44<_dp_>oh, nvm, there is...
09:45<andythenorth>updated :) https://grf.farm/images/046FBD71-5795-4271-8AB7-5BA6D90D84A1_1_105_c.jpeg
09:45<andythenorth>my failed idea was to have the industry write to a town register if it's happy or not
09:46<andythenorth>and then GS just checks town register(s)
09:46<andythenorth>probably 5 lines :P
09:46<andythenorth>and works with any FIRS economy after version X
09:46<andythenorth>doesn't need to know anything about cargos or industries
09:47<frosch123>_dp_: docs are easier if they group functions, instead of documenting each function on their own
09:49<andythenorth>probably a few more lines to remove the town requirements in arctic and desert eh :)
09:49-!-sla_ro|master [~sla.ro@89.136.179.137] has quit []
09:50<frosch123>andythenorth: maybe you should add a cargo "happyness certificate"
09:51<frosch123>industries produce it when happy, and you can transport it to towns
09:51<frosch123>it's the only cargo with a town effect
09:51<andythenorth>is the label LOLZ?
09:52<andythenorth>the most plausible suggestion right now is putting a house set inside FIRS, or doing a separate house grf
09:52<frosch123>or YAYZ
09:52<andythenorth>just use a GS to turn off town cargo requirements
09:52<andythenorth>do everything else in newgrf
09:52<frosch123>andythenorth: whatever you do with houses, it breaks when you add multiple house grfs
09:52<frosch123>houses are not suitable for economy stuff
09:53<frosch123>andythenorth: isn't there a grf that alows usnig any climate landscape in any climate? maybe ogfx+industries
09:53<andythenorth>town newgrf stuff was backed out solely because of GS?
09:53<andythenorth>or it was flawed?
09:53<andythenorth>https://wiki.openttd.org/Frosch/Town_Control
09:54<frosch123>andythenorth: newgrf stuff is always local
09:54<frosch123>people wanted stuff that acted global
09:54<frosch123>though not sure whether anybody succeeded with that
09:55<frosch123>people complain that industries close all the time on huge maps, because they scale with map size
09:55<frosch123>gs do not scale with mapsize
09:55<frosch123>andythenorth: also https://wiki.openttd.org/Frosch/GS-NewGRF_Communication_via_JSON
09:56<andythenorth>oh yes :)
09:56<andythenorth>I assumed you were trolling about that for some reason, but the spec is too detailed for a troll :)
09:57<andythenorth>it would absolutely solve the design I drew
09:57<frosch123>andythenorth: is there anything on that town_control page, that cannot be done with gs?
09:58<frosch123>or is it only about being able to define the rules within the industry set?
09:58<andythenorth>2 answers (1) I can't see a method for GS to read town registers (2) yes
09:59<andythenorth>I think it's much simpler to keep all the logic about cargos, happiness, blah blah inside the industry newgrf
09:59<frosch123>ah, i forgot the communication via side effects :)
09:59<andythenorth>and just emit a single 1 or 0 for happiness
09:59<andythenorth>I don't really want to have to generate a GS from inside the FIRS compile, to get the cargos and industries
09:59<andythenorth>I guess I could add the FIRS repo as a remote
10:02<andythenorth>I should probably learn how town effect cargos work
10:03<frosch123>oh my, the scam that is sent to ottd.org... sometimes i do not know whether it is actually a scam, or just a stupid person
10:03<andythenorth>pls share :P
10:04<andythenorth>is the wiki wrong btw?
10:04<andythenorth>"Town growth can be accelerated by loading or unloading at least one item of cargo at up to five stations within town influence within a 50 day period. It does not matter which cargos are loaded/unloaded."
10:04<andythenorth>is that actually how it works?
10:04-!-jottyfan [~Thunderbi@x4dbfd96b.dyn.telefonica.de] has joined #openttd
10:04-!-jottyfan is "jottyfan" on #openttd
10:05<frosch123>https://dpaste.org/EKR7 <- it has no dodgy links to be a scam
10:05<andythenorth>just optimism :)
10:05<frosch123>andythenorth: wiki is correct
10:06<andythenorth>how does that relate to prop 18? https://newgrf-specs.tt-wiki.net/wiki/Action0/Cargos#Substitute_type_and_multiplier_for_town_growth_.2818.2C_19.29
10:06<frosch123>there is a difference between "towns can grow" (defined by climate/towneffect) and "speed of town growth" (defined by that 1..5 serviced stations rule)
10:07<andythenorth>and TOWNGROWTH_PASSENGERS?
10:07<andythenorth>just seems to be a reporting flag?
10:09<andythenorth>oh my savegame is locked into ffwd mode
10:09<andythenorth>and won't come out of it
10:09<andythenorth>that's a new bug
10:10<frosch123>broken shift/tab key?
10:10<andythenorth>client had crashed in an odd way
10:11<andythenorth>restarted it, fine
10:11<andythenorth>TOWNGROWTH_GOODS is for Toyland or something?
10:12<frosch123>it's for ttdp
10:12<andythenorth>trying to figure out if town effects are the safest way to communicate FIRS -> GS
10:12<frosch123>ttdp has a built-in gs that has parameters for required amounts of pax/mail/goods/food/water
10:12<andythenorth>I don't really want to generate a GS from the FIRS compile
10:12<frosch123>it predates newcargos
10:14<andythenorth>I think what I want to do is a trivial use of https://docs.openttd.org/gs-api/classGSCargoMonitor.html#afd23dc4fd1e2eda15086124a9e4c6184
10:14<andythenorth>as long as I have a pre-baked list of cargos, and can find which FIRS economy it is
10:14<andythenorth>I think that has the unwanted requirement of versioning GS against FIRS version
10:14<Eddi|zuHause>there's a fundamental design flaw of ttdp where it pretends all those "patches" are orthogonal on/off switches, yet some of them aren't as orthogonal as they seem
10:15<andythenorth>such is the life of a designer :)
10:15<Eddi|zuHause>andy's problem is the opposite of that, GS and NewGRF are specifically designed to be orthogonal, but he wants to correlate them somehow
10:17<andythenorth>there's a fundamental design flaw of GS where it's pretends to be able to control the economy, yet it's specifically designed to be orthogonal to newgrf
10:17<andythenorth>BUT
10:18<andythenorth>TOWNGROWTH_GOODS is fair game, it will have no effect in OpenTTD unless a GS is specifically looking for it?
10:18<andythenorth>so we have a single bit signalling channel from newgrf -> GS?
10:19<andythenorth>but I have to be careful that only setting TOWNGROWTH_GOODS will break arctic and tropic?
10:19<Eddi|zuHause>i think we've been at this point multiple times in the past 5 years
10:20<_dp_>andythenorth, why do you want to signal anything from newgrf? cb gamescripts count coal just fine as long as they can figure out what is coal :p
10:20<andythenorth>how do they know what is coal?
10:21<_dp_>by cargo label?
10:21<andythenorth>but how do they know what coal means?
10:21*andythenorth wonders why FIRS 4 doesn't break tropic
10:21<andythenorth>oh I set vehicles to be water
10:21<andythenorth>ok
10:21<_dp_>they just assume
10:21<andythenorth>seems ass backwards to me, I just don't get it
10:22<andythenorth>I literally have no idea how that's supposed to work :)
10:22<andythenorth>is there a picture? :)
10:22<andythenorth>ok so I can't just use TOWNGROWTH_GOODS
10:22<andythenorth>because in some cases that needs to be TOWNGROWTH_WATER
10:22<andythenorth>but the GS might be able to handle both cases
10:23<andythenorth>it's quite complex to design for the GS and non-GS case both
10:24<andythenorth>oh lol, the FIRS cargos don't have any economy support
10:24<andythenorth>I deliberately kept them simple
10:24<andythenorth>so I can't set a town effect per economy without patching FIRS
10:25<Eddi|zuHause>andythenorth: i don't see what the problem is... you define FOOD and WATER for things that a town could "need", and GOODS for things that a town could "want"
10:25<Eddi|zuHause>and things that you think the town shouldn't care about get neither...
10:25<andythenorth>I have to define WATER for vanilla compatibility reasons
10:26<andythenorth>and the cargos defining WATER overlap with those that would define GOODS
10:26<Eddi|zuHause>yes, there needs to be at least one FOOD and WATER
10:26<andythenorth>the GS would have to handle it
10:26<andythenorth>I don't think that's unresolvable
10:26<Eddi|zuHause>FOOD and WATER are stronger than (and override) GOODS
10:26<andythenorth>I think that's fine
10:27<andythenorth>ok so this helps refine the design
10:27<andythenorth>so now I need to change the town effect depending which industry type a cargo is delivered to
10:27<andythenorth>is there a cb that can do that?
10:27*andythenorth looks
10:28<_dp_>you can probably reset all default cargo requirements with ScriptTown::SetCargoGoal if that's the issue
10:28<andythenorth>supplying some industries cause towns to grow, supplying the same cargo to others should not
10:28<Eddi|zuHause>that sounds like an action6/7/9/D thing, not a callback
10:28<andythenorth>_dp_ I have to handle the non-GS case
10:28<andythenorth>most people don't know what GS is or use them
10:28<_dp_>andythenorth, for non-gs you set cargo effects
10:28<Eddi|zuHause>town effect isn't context sensitive like that
10:29<Eddi|zuHause>cargo gets delivered to stations, not industries
10:29<andythenorth>that's interesting
10:29<andythenorth>ok maybe town effects isn't the solution then
10:29<andythenorth>maybe cargo monitor on specific industries
10:30<andythenorth>which means I need to generate a versioned GS from FIRS
10:30<Eddi|zuHause>if two industries are near a station, town effect gets added up no matter which of these industries happen to get the stockpile
10:30<Eddi|zuHause>and tile acceptance doesn't work for distinguishing this either, as each industry might contribute 4/8 of the acceptance
10:30<andythenorth>yeah I'm going to ignore town effect
10:31<andythenorth> GetIndustryDeliveryAmount() will do what I need
10:31<andythenorth>I just need to generate squirrel from python
10:31<andythenorth>can't be hard
10:31<andythenorth>there's no GS method to check the newgrfs in the game?
10:32<andythenorth>seems odd but eh
10:32<andythenorth>oh can the admin port read the newgrfs?
10:33<andythenorth>nvm, GSAdmin only has send()
10:33<_dp_>probably but it doesn't need to
10:34<andythenorth>I think I can just use GSCargoList
10:34<andythenorth>and if the cargos don't match specific FIRS version, pause the game
10:34<Eddi|zuHause>andythenorth: even if it could, there wouldn't be a point to that, as it can't derive any useful information from just a GRFID
10:35<andythenorth>I would have expected the action 14 version also
10:35<Eddi|zuHause>that still means nothing
10:36<b_jonas>I think I just made this station worse
10:36<Eddi|zuHause>all your thoughts in that direction immediately fall apart at the point where you can't "bundle" a GS with the matching NewGRF version.
10:37<andythenorth>why?
10:37<_dp_>well, you can if you just run a server :p
10:38<andythenorth>I'm not seeing the issue :)
10:38<Eddi|zuHause>if every update of FIRS requires an update of the GS, you within months have 20 versions of each and no clue which one belongs to which
10:38<andythenorth>but that's just how deps work?
10:38<Eddi|zuHause>and that's ignoring any person other than you who might want to use it
10:38<andythenorth>surely that's part of the design?
10:39<Eddi|zuHause>that's the point: there's no "dep"
10:39<andythenorth>but GS is intended to provide the global economy?
10:39<andythenorth>this seems to be trying to have cake and eat it both :)
10:40<andythenorth>it's moderately frustrating, that I want to do something simple :P
10:40<andythenorth>and I'm told GS is the solution
10:40<andythenorth>but then I'm told not to try it in GS
10:40<andythenorth>what am I missing?
10:40<Eddi|zuHause>no. what we're telling you is that the GS can't depend on the NewGRF.
10:40<andythenorth>but it can
10:40<andythenorth>I just upload both
10:41<_dp_>it can but not officially :P
10:41<Eddi|zuHause>it can, but it won't work, and become a maintenance nightmare
10:41<andythenorth>I can even have 2 browser tabs open and press 'submit' on both at once
10:41<andythenorth>do we know that it will?
10:41<andythenorth>has anyone tried?
10:41<_dp_>I actually wonder if there is a single cb gs that works reasonably with all industry sets
10:42<Eddi|zuHause>you can set a dependency on bananas so each one gets downloaded with the other one. but you can't have a dependency on game setup
10:42<andythenorth>newgrf can check for GS?
10:42<andythenorth>does GS have action 14?
10:42<Eddi|zuHause>no
10:42<Eddi|zuHause>no
10:42<andythenorth>hmm
10:42<Eddi|zuHause>on clients, there is no GS. only the server has a GS
10:42<andythenorth>this all seems a bit underwhelming given that it's the recommended solution for last ~many years
10:42<Eddi|zuHause>but both server and client must do the same things
10:43<andythenorth>I thought the GS<->Newgrf problem was a different one to this, about who controls which domain
10:43<andythenorth>but this just seems fundamentally broken TBH :)
10:43<_dp_>andythenorth, lol, that's how I feel about newgrfs now that I got into making them :p
10:43<andythenorth>I mean, having cargos affect towns is such a trivial idea
10:43<_dp_>andythenorth, bloody things can't even do trees, power lines and ground properly and you want to control towns :p
10:43<andythenorth>and it seems to be totally baroque to achieve it
10:44<andythenorth>and then when I come up with a solution that is simple in code, it turns out to not be usable?
10:44<Eddi|zuHause>that's how life works... things that seem simple, usually aren't.
10:44<andythenorth>this GS would be about 5 methods and not many lines
10:44<andythenorth>but there is absolutely no way it can work orthogonal to the FIRS version, it will just be absolutely broken
10:45<andythenorth>I assume a town control CB in newgrf is just not technically feasible?
10:45<andythenorth>the problem would be the 'required for growth' cargos in the town window?
10:46<andythenorth>well like FIRS disables itself if conflicting newgrfs are found
10:47<andythenorth>I guess the GS just calls Game.Pause() if it doesn't find a valid FIRS
10:47<Eddi|zuHause>andythenorth: that works, if you can ensure 3 conditions: 1) the GS "works" if the NewGRF isn't loaded. (might just do nothing at all), 2) the NewGRF "works" without the GS (it has 95% of the features, and those work the same way without the GS), and 3) the GS doesn't need to be modified with each NewGRF release
10:47<_dp_>andythenorth, even in gs decent cb is barely feasible
10:47<andythenorth>1) Game.Pause() 2) yes, the GS must be progressive enhancement for the newgrf, not a dep for the newgrf (3) no, that requirement can't be satisfied, the GS will need modified
10:47<_dp_>though I guess we use CB for different things xD
10:48<Eddi|zuHause>andythenorth: "just call Game.Pause()" is the equivalent of a kid stomping on the ground saying "i want a pony"
10:48<andythenorth>I don't even see how (3) could be modified, it seems to suggest that one side of the API can be changed without changing the other
10:48<Eddi|zuHause>andythenorth: when has that ever solved any problem?
10:48<andythenorth>eh?
10:48<andythenorth>that's the conventional solution in newgrf
10:48<andythenorth>just disable if conditions x / y / z are found
10:48<andythenorth>has been for years
10:49<Eddi|zuHause>no. that's disable the newgrf. not disable the game.
10:49<andythenorth>Game.Pause() is service to the player, no point playing a broken game
10:49<andythenorth>very disappointing
10:51<andythenorth>frosch123 how many other spec drafts did you write? :)
10:51<andythenorth>I remember we talked about something else recently that you already had a spec for :P
10:51<andythenorth>can't remember what it was, but it was 2 cbs or so
10:52<andythenorth>Eddi|zuHause alternative proposal to Game.Pause(), many GS popup a message at game start
10:52<andythenorth>popup a message saying 'This GS is broken, do you want to continue Y | N?'
10:52<_dp_>andythenorth, just do it, universal gamescripts is a myth :p
10:53<andythenorth>do _dp_ :)
10:53<andythenorth>fake news!
10:53<andythenorth>Silicon Valley, NoCarGoal and Busy Bee are pretty universal
10:53<andythenorth>BB will struggle with PBI stockpile limits
10:53<andythenorth>it has no clue about those
10:53<Eddi|zuHause>andythenorth: like i said. if you have a way to detect the brokennes, just disable the GS (= do nothing)
10:54<andythenorth>and configuring SV or NCG with appropriate values is a nightmare
10:54<Eddi|zuHause>andythenorth: the game is perfectly playable without any GS
10:54<andythenorth>you have to play a game through to know what values are realistic
10:54<_dp_>well, idk about first 2 but rewriting bb so I can actually use it has been on my todo list for years :p
10:55<andythenorth>problems are? o_O
10:55<_dp_>also bb doesn't actually do anything but makingn some suggestions to player
10:55<andythenorth>yes
10:56<andythenorth>it's very hard to 'do anything'
10:56<andythenorth>as the GS has no clue about the newgrf industries, cargos, the vehicles, the map
10:56<_dp_>well, last time I checked it didn't go well with competitive mp sending everyone to one industry
10:56<andythenorth>so setting arbitrary numbers based goals is kind of tricky
10:56<_dp_>also is too random for my liking
10:57<andythenorth>it was built as an antidote to NCG
10:57<andythenorth>NCG has a single focussed goal, BB has many completely arbitrary goals
10:57<andythenorth>I played both about same amount
10:57<andythenorth>Eddi|zuHause what are the actual costs of a newgrf - GS dependency?
10:58<andythenorth>do the costs only show up on reddit and in forums?
10:58<Eddi|zuHause>that depends how much of an asshole you are to people who can't follow instructions
10:59<Eddi|zuHause>which, btw. will be 99% of the users
11:00<_dp_>you can judge by simple cb, once every few months there is a poor soul that actually notices he's been playing some nonsense
11:01<andythenorth>well it seems I can't disable FIRS if wrong GS is found
11:01<andythenorth>which is a shame
11:01<b_jonas>oh heck they built this 4 tile dairy farm with its tiles on different heights
11:01<b_jonas>no it's more than 4 squares, sorry, it's like 9 squares
11:01<b_jonas>1
11:01<b_jonas>10
11:02<Timberwolf>GS requiring a particular (or one of n) GRFs is fine, imo. GRF requiring a GS would be annoying.
11:02<andythenorth>hmm TTDPatchFlags are all just bool
11:02<andythenorth>so they couldn't supply the GS I assume
11:02<andythenorth>https://newgrf-specs.tt-wiki.net/wiki/TTDPatchFlags
11:02<Eddi|zuHause>that's the meaning of "Flag"...
11:03<andythenorth>oh maybe https://newgrf-specs.tt-wiki.net/wiki/ReadingPatchVariables
11:03<nielsm>GRF defines the objects the game is played with and their relationships, GS defines how the game progresses
11:03*andythenorth looks what ID GS uses
11:03<andythenorth>seems to be a dword?
11:04<Eddi|zuHause>there's only misery down this road.
11:04<Eddi|zuHause>don't go there.
11:05<andythenorth>that means I'll have to maintain a backwards compatibility in FIRS with older GS
11:05<andythenorth>that's going to be a total headache
11:05<andythenorth>newer FIRS with older GS, and for some edge-case reason the GS doesn't disable
11:06<Eddi|zuHause>FIRS without GS should work just as before.
11:06<andythenorth>I'm not sure that holds
11:06<andythenorth>the gameplay will be designed around the GS
11:06<Eddi|zuHause>that's the only way this will ever work.
11:06<andythenorth>if it's missing, then the FIRS gameplay might be junk
11:06<andythenorth>it's kind of the point
11:07<andythenorth>is the intent to move newgrf industry spec to GS also at some point?
11:07<Eddi|zuHause>nobody has that intent
11:07<andythenorth>cargos would be easiest to start with, they don't need cbs
11:09<Eddi|zuHause>FIRS needs to "work" [for some meaning of that word] with 1) no GS, 2) the correct GS version, 3) an incorrect GS version, 4) a GS derived from the correct GS version, 5) a GS completely independent from your GS
11:10<andythenorth>1, 3, 4, 5 just make no sense
11:10<andythenorth>if GS is the replacement for newgrf
11:10<Eddi|zuHause>GS is never going to be a replacement for newgrf
11:10*andythenorth is quite confused about the intent
11:10<andythenorth>but explicitly newgrf development was stopped on some features in favour of GS
11:11<_dp_>andythenorth, gameplay will always go to "junk" as your requirements increase
11:11<Eddi|zuHause>social media is never going to be a replacement for people meeting in a bar
11:11<andythenorth>I interpreted that as GS replacing newgrf?
11:11<_dp_>even a patched server where I control everything I possibly could still leaves some stuff to be desired
11:12*andythenorth remains confused :)
11:12<andythenorth>I mean, that's no unusual
11:12<andythenorth>but usually talking to Eddi|zuHause unconfuses me
11:13<andythenorth>but now I am just more confused
11:13<Eddi|zuHause>maybe we're thinking about completely different things
11:13<andythenorth>I don't see how partially replacing newgrf with GS was ever going to work
11:13<_dp_>imo newgrf "development" should've stopped much earlier in favour of some sensible way to control gameplay :p
11:13<andythenorth>the logic seems to be that 'orthogonal' is a mandatory requirement
11:13<andythenorth>so I should also split the cargos out from FIRS?
11:14<andythenorth>because then it's orthogonal?
11:14<andythenorth>users can choose their own cargo grf?
11:14<Eddi|zuHause>imagine a piece of paper, with 2 rectangular lines. one of the lines represents all the features achieavable by NewGRFs, and the other all features achievable by GS alone
11:14<frosch123>maybe split the andy from the north?
11:15<Eddi|zuHause>any feature that is not on either of those lines is unachievable
11:15<andythenorth>yes
11:15<andythenorth>the confusing part is why that was done
11:15<Eddi|zuHause>unless you figure out a way for both to cooperate
11:15<Eddi|zuHause>which is near impossible to get right
11:15<andythenorth>but we've established they can't co-operate
11:15<andythenorth>as we can't maintain both sides of an API
11:15<Eddi|zuHause>so people decided it's better to explicitly forbid it
11:15<andythenorth>so why was newgrf shelved in favour of GS?
11:16<andythenorth>is this just another case of 'mistakes were made' like lots of the spec?
11:16<andythenorth>or was this the intended outcome?
11:16<+glx>GS were never meant to replace newgrf
11:16<Eddi|zuHause>those newgrf features might have violated the orthogonality
11:17<andythenorth>glx no they were for some functions, there was a long long discussion about it
11:17<andythenorth>which caused pikka to rage quit
11:17<andythenorth>it destroyed the TAI project he was working on, and had planned around newgrf town spec
11:17<frosch123>andythenorth: newgrf are for stuff that run in-sync with the game. gs are for other things that run independent of the core gameloop
11:18<Eddi|zuHause>if you implement features that violate the orthogonality, without also adding methods for cooperation (which we deem impossible), you arrive in hell.
11:18<+glx>GS is only for town growth control, and industry creation, and of course goals/score
11:18<andythenorth>but we've also established it's impossible for me to solve a trivial gameplay problem with a trivial GS
11:18<andythenorth>so GS is junk?
11:18<Eddi|zuHause>no. the problem is not trivial.
11:18<frosch123>andythenorth: maybe you are just too used to newgrf issues :p
11:19<andythenorth>GS *cannot* be for town growth control or industry creation
11:19<andythenorth>as it has no idea what the newgrf intends to happen
11:19<+glx>GS can decide to build an industry
11:19<andythenorth>but what industry, why?
11:19<andythenorth>where?
11:19<andythenorth>for what reason?
11:19<+glx>like a player would do
11:19<andythenorth>but the newgrf can prevent that anyway
11:19<frosch123>andythenorth: just try to be less of a control freak. newgrf and gs were designed to let stuff from independent people work together
11:19<_dp_>andythenorth, newgrf can't be for those as well as it has no idea what game is user playing :p
11:20<frosch123>its not meant for a single guy doing industries, vehicles and game mechanics
11:20<andythenorth>hmm
11:20<andythenorth>I was quite seriously going to write a GS
11:20<andythenorth>but it seems pointless
11:20<frosch123>newgrf communication is intentionally vague
11:20<frosch123>with stuff like cargo classes instead of actual cargos
11:21<frosch123>same for newgrf and gs with town effects instead of explicit cargos
11:21<andythenorth>well there's always Iron Horse
11:21<Eddi|zuHause>that's what my point "4)" and "5)" above were about
11:21<andythenorth>I think FIRS might be dead
11:22<frosch123>the goal was to make vague communicaton that works somewhat in all cases, not explicit communication that works in a single hard to configure case, and completely breaks otherwise
11:22<andythenorth>every time I try to motivate myself to do anything with FIRS, I draw trains instead
11:22<andythenorth>my intent was that I could solve the broken things in current FIRS dev with GS
11:22<andythenorth>but that's not possible
11:23<_dp_>andythenorth, you sure you don't want to make servers? ;)
11:23<andythenorth>I did wonder about using the admin port
11:23<andythenorth>but GS can only write to it, not read
11:23<andythenorth>I can't patch a client as I can no longer compile OpenTTD :)
11:24<andythenorth>I guess I could compile on some cloud server
11:24<frosch123>so firs is no longer about making pretty cargo graphs?
11:24<Eddi|zuHause>i think andythenorth is drifting too far into the "thing is too complex, lets solve it with more complexity" corner
11:25<_dp_>I can easily make you a server on citymania though I can't promise I'll be able to do server-side stuff you may need quickly
11:25<_dp_>like town control and mapgen
11:25<_dp_>but at least that's possible
11:25<andythenorth>frosch123 you know the unfinished thing on the charts with town cargos? :P https://grf.farm/firs/4.0.0-alpha-3/html/economies.html#steeltown
11:25<andythenorth>that's the thing
11:26<frosch123>andythenorth: surprise, gs can read from admin port
11:26<andythenorth>ooo :)
11:26<andythenorth>FIRS economies are all designed around cargo -> towns, but cargo -> towns is dull as fuck for various reasons
11:26<andythenorth>we've been habitually blaming cdist, but it's not cdist's fault
11:27<andythenorth>also, should I add random liveries to TW? :P https://www.grf.farm/iron-horse/dev/html/train_whack.html
11:27<frosch123>what makes towns worse than power plants?
11:27<andythenorth>same in both cases
11:28<frosch123>well, maybe play yeti then
11:28<andythenorth>1. all chains are working together
11:28<andythenorth>- no BAD FEATURE like cargoes nobody has a reason to transport because they are not useful
11:28<andythenorth>from Yeti first post
11:29<frosch123>ah, "BAD FEATURE" was the term
11:29<andythenorth>has anyone archived yeti anywhere?
11:29<frosch123>i was struggling earlier to remember it
11:29*andythenorth wonders if wayback machine has it
11:29<andythenorth>all the docs are dead
11:30<frosch123>i have all the devzone repos, not the wikis
11:30<andythenorth>wayback machine doesn't have it
11:31<frosch123>andythenorth: can some tw drive to the right?
11:32<andythenorth>I could patch that
11:32<andythenorth>it would double the upload size to s3 :P
11:32<frosch123>so, no :)
11:32<andythenorth>diesel engines could do it
11:32<frosch123>can there be a vehicle that multiplies the score with -1 ?
11:32-!-Samu [~Ricardo@po1-84-91-251-215.netvisao.pt] has quit [Quit: Leaving]
11:32<andythenorth>like a penalty?
11:33<frosch123>just 1/N chance to get -2M instead of 2M score. and a 1/N^2 chance to get 2M again
11:33<frosch123>just to troll people
11:33<andythenorth>would the vehicle change on every re-roll? :P
11:33<andythenorth>I could just have an 'unlucky' roll
11:34<andythenorth>like those 1980s games where 'sorry you died' was a random chance
11:34<frosch123>maybe you have some shunter engine, it could reverse stuff :p
11:34<andythenorth>I might try to patch random reverse
11:34<andythenorth>also does anyone remember how V solved 'pointless cargos'?
11:34<andythenorth>specifically in FIRS v4 Steeltown vehicles is completely pointless
11:34<frosch123>no idea about uk trains, but here there are always announcements "today the train is driving in reverse wagon order"
11:34<andythenorth>and Rebar
11:35<frosch123>and then everyone with a seat reservation tries to find the opposite place on the platform
11:35<andythenorth>oof :)
11:35<frosch123>andythenorth: iirc V ignored towns, and had the yeti camp, which was an industry
11:35<frosch123>supply stuff to yeti camp, get workers in return
11:36<michi_cc_>The best fun with that is if then the train in fact arrives in the correct orientation.
11:36<frosch123>all the cargo flows in a circle
11:36<Timberwolf>Yeti Dudes and Tired Yeti Dudes.
11:37<Eddi|zuHause>frosch123: that's usually a sign of too few drivers to do the shunting runs to turn the train around
11:37<frosch123>Eddi|zuHause: i thought it was to average wearing
11:37<andythenorth>currently I have scrap production increasing on town popn.
11:37<michi_cc_>Eddi|zuHause: A quite common reason is also "something" is not working on one of the head ends.
11:37<andythenorth>I thought that was half of the solution
11:38<andythenorth>the other half being to control town growth with delivered cargo
11:38<Eddi|zuHause>or sometimes maintenance work taking too long
11:38<andythenorth>I could ignore the town entirely
11:38<andythenorth>delivering vehicles -> more scrap
11:38<andythenorth>via town registers
11:38<andythenorth>same for delivering building supplies
11:38<Eddi|zuHause>there's probably a dozen more reasons, that would all be avoidable if there was enough staff
11:38<frosch123>Eddi|zuHause: the train is delayed because of delays in the train operation
11:40<Eddi|zuHause>but hiring staff doesn't look good on quarterly performance paper
11:40<andythenorth>frosch123 50:50 reverse https://grf.farm/images/random_reversed.png
11:40<Eddi|zuHause>particularly if hiring more staff would mean increasing wages to increase the number of applicants
11:40<andythenorth>it would need implementing a bit differently I think
11:41<andythenorth>also my brain is hard-wired on left->right
11:42<frosch123>andythenorth: for the symmetric engines that works :p
11:43<andythenorth>the compile does know about symmetric vs asymmetric
11:43<andythenorth>so it could be passed in the json
11:44<andythenorth>it's 'realistic' for steam engines also https://www.warwickshirerailways.com/lms/lnwr/canleyhalt/lnwrchg2807.jpg
11:44<andythenorth>plenty of pictures, not just 'omg this happened once'
11:45-!-Flygon [~Flygon@2001:44b8:411e:4e00:740b:7d96:6b18:689b] has quit [Quit: A toaster's basically a soldering iron designed to toast bread]
11:45<andythenorth>my brain is saying 'those trains can't leave the depot without an engine at the front' :P
11:45<andythenorth>oof
11:46<Eddi|zuHause>well, certain steam engines were designed to go backwards
11:46-!-gelignite [~gelignite@55d4ee71.access.ecotel.net] has joined #openttd
11:46-!-gelignite is "realname" on #openttd
11:46<Eddi|zuHause>especially the later ones
11:46<andythenorth>I should write down this 'FIRS can never have a GS' conclusion
11:46<andythenorth>otherwise it just repeats again in 3 months
11:48<andythenorth>I think V arrived at the correct conclusion long before me, towns can have nothing to do with newgrf industries / cargos
11:53<Timberwolf>I used to live about 5 minutes walk from where that picture was taken.
11:53<Timberwolf>At least, from the description I think it's running down the rear side of the old Triumph motor works.
11:54<andythenorth>so car plant in the background?
11:54<andythenorth>looks a bit like the FIRS one :P
11:55<Timberwolf>Mostly, yeah. By the 2000s it was generic light industrial and the TA had taken some of it over.
11:55<Timberwolf>Still some remnants, like the local pub is called "The Herald" and they don't mean it in the medieval sense. :)
11:56<Timberwolf>s/is/was/, looks like they've built a care home there now.
12:00<LordAro>so anyone interested in merging #8287 ? I did set the release date as today...
12:02<andythenorth>frosch123 for https://wiki.openttd.org/Frosch/GS-NewGRF_Communication_via_JSON ...does Eddi's point about GS-NewGRF compatibility being impossible also apply there? :)
12:02*andythenorth assumes so as it's two sides of the same API
12:02<Timberwolf>Never quite sure how "typical" you can class a car plant that was part of the BMC/BL empire, Longbridge was obviously massive and had interesting stuff like the body conveyor over the road, but MG at Abingdon is probably a better model for a "garden shed" industry than a "car plant" one.
12:03*andythenorth looks for a picture
12:08<Timberwolf>Not quite that bad, but one of the (possibly apocryphal) stories of MG was that BL sent them some sort of part that had to be cured at quite precise temperature, then realised a couple of years later realised they had no record of the factory having the kind of ovens that could do this.
12:08<Timberwolf>"Oh yeah, we just spit on 'em and when they start sizzling, there's 5 minutes to go" was the answer they got upon inquiring.
12:10<andythenorth>top notch
12:15<andythenorth>so I put a crappy 'similar vehicles' thing into Horse docs :)
12:15<andythenorth>it mostly works, but as it compares on power, it can have odd results https://www.grf.farm/iron-horse/dev/html/firebird.html
12:16<andythenorth>high-speed pax 'similar' to low speed freight engine
12:19<Timberwolf>I ended up accidentally having one of my passenger lines hauled by Class 59s doing a similar thing with autoreplacing. "Oh yes, that's a similar MT engine, oh yes, that has similar speed but a bit more power, that seems reasonable, it's only a little slower and a big TE upgrade..." etc.
12:22<andythenorth>Train Whack Special Event! https://www.grf.farm/iron-horse/dev/html/train_whack.html
12:22<andythenorth>limited-time special feature with random right->left consists
12:22<andythenorth>only available until I next push
12:22<andythenorth>as I reverted the changes locally
12:23<andythenorth>hmm these docs aren't very TTD graphical style eh :D https://www.grf.farm/iron-horse/dev/html/fury.html
12:23<andythenorth>maybe I should find a 1990s pixel game font
12:24<andythenorth>https://www.dafont.com/pixel-operator.font might be close enough
12:25<frosch123>DorpsGek_III: stop being so lazy
12:26<frosch123>what is that quote on the train page?
12:31<andythenorth>I made up stupid quotes
12:31<andythenorth>I was going to do realistic back stories
12:31<andythenorth>but I wrote one and it was dull
12:31<andythenorth>pixel font? :P https://grf.farm/images/pixel_operator_font.png
12:31<andythenorth>we should pixel font the website + bananas :D
12:38<frosch123>"Arrows to replacement engine are missing in some cases, unwanted in others - maybe an off-by-one in a calculation?"
12:39<andythenorth>in a big red reminder?
12:39<frosch123>yes, as the dominant headline
12:39<andythenorth>I wanted to not miss it :D
12:39<frosch123>i had to look very hard to even find the arrows
12:39<andythenorth>the contrast is quite low
12:39<frosch123>exactly
12:40<b_jonas>when I control-leftclick on an engine in a depot window, what does that do?
12:40<frosch123>there is control+drag
12:40<frosch123>and control+rightclick
12:41<frosch123>i think control+leftclick is unused, though it will conflict with control+drag possibly
12:41<b_jonas>hmm let me try again, it did something strange to me that I couldn't interpret
12:41<frosch123>oh, wait, ctrl+click is reverse engine, right?
12:42<frosch123>or andy-livery-swap
12:42<b_jonas>but what does reverse engine mean?
12:42<frosch123>usually it's just visual
12:42<frosch123>often it looks bad
12:42<b_jonas>it shows a reverse icon on the engine
12:42<andythenorth>hmm I'm trying to fix those arrows :)
12:43<andythenorth>they are made with mad css
12:43<frosch123>b_jonas: then read the readme of the grf
12:43<frosch123>that is grf specific
12:43<b_jonas>ok
12:43<+glx>it shows the vehicle reversed, easier to see if the vehicle is not symetric
12:44<frosch123>glx: what, does ottd draw arrows?
12:45<+glx>no I was just talking about ctrl+click effect
12:46<+glx>of course newgrf can use this status to determine what to display
12:47<andythenorth>it would be helpful if it cycled a byte, not just a bit :P
12:48<andythenorth>but nvm, that pony is flogged to death
12:48<andythenorth>frosch123 improved? https://www.grf.farm/iron-horse/dev/html/tech_tree_table_red.html
12:48<andythenorth>arrows are 50% black not 10%
12:49<frosch123>tech_tree_table_yellow does not exist
12:50<andythenorth>it could, but it would increase upload size :P
12:50<frosch123>red background seems to mean electric
12:50<andythenorth>probably
12:51<andythenorth>it's not really finished, I was amazed it works at all
12:52<frosch123>it contains a lot of info
12:52<andythenorth>there's a graphviz version somewhere, it didn't really work
13:03<andythenorth>it would be simpler if there only 4 generations :P
13:12-!-Wormnest [~Wormnest@097-106-006-046.res.spectrum.com] has joined #openttd
13:12-!-Wormnest is "Wormnest" on #openttd
13:20<andythenorth>hmm I guess declaring a GS as a dep for a newgrf is out of scope?
13:24<andythenorth>hmm, but we already have newgrf control over town growth :D
13:24<andythenorth>it's long established :D
13:24<andythenorth>I just need FIRS to disable if climate isn't arctic, and snowline isn't lowest possible value :D
13:25<b_jonas>the lowest possible value? is that like the Antarctic?
13:26<andythenorth>seems that 2 is the lowest value
13:26<andythenorth>then I patch houses so they don't build below snowline
13:26<andythenorth>that gives 2 cargos for controlling town growth with
13:26<andythenorth>another elegant solution :)
13:28<b_jonas>with the ocean frozen during winter so you can quickly build a train line that only lasts for a few months
13:49-!-jottyfan [~Thunderbi@x4dbfd96b.dyn.telefonica.de] has quit [Quit: jottyfan]
13:59<TrueBrain>hmm, why did DorpsGek_III talking in this channel?
13:59<TrueBrain>that is not what we asked him to do
14:09-!-DorpsGek_III [~DorpsGek_@ec2-52-59-253-211.eu-central-1.compute.amazonaws.com] has quit [Remote host closed the connection]
14:09<TrueBrain>that is what you get for not working DorpsGek_III
14:15-!-frosch123 [~frosch@00013ce7.user.oftc.net] has quit [Quit: be yourself, except: if you have the opportunity to be a unicorn, then be a unicorn]
14:18-!-ericnoan [~en@0002590d.user.oftc.net] has quit [Quit: ZNC - http://znc.in]
14:27<andythenorth>funny when you closed dorpsgek we lost frosch too
14:28<andythenorth>are they the same codebase?
14:31<Eddi|zuHause>sounds plausible
14:33<andythenorth>I bet they're running on the same ultimate hardware
14:40<Eddi|zuHause>nothing runs on "harware" anymore, it's all "in the cloud"
14:46<andythenorth>is the underlying information universe hardware or software?
14:47<andythenorth>oof unknowable :P
14:53<Eddi|zuHause>it's kubernetes all the way down
14:56<andythenorth>terrifying thought
15:06-!-Progman [~progman@p4fd66741.dip0.t-ipconnect.de] has joined #openttd
15:06-!-Progman is "Peter Henschel" on #openttdcoop.dev #openttd
15:15-!-tokai [~tokai@00012860.user.oftc.net] has joined #openttd
15:15-!-tokai is "Christian Rosentreter" on #openttd
15:15-!-mode/#openttd [+v tokai] by ChanServ
15:21-!-tokai|noir [~tokai@00012860.user.oftc.net] has quit [Ping timeout: 480 seconds]
15:29-!-Wormnest [~Wormnest@097-106-006-046.res.spectrum.com] has quit [Ping timeout: 480 seconds]
15:42-!-WormnestAndroid [~WormnestA@097-106-006-046.res.spectrum.com] has quit [Ping timeout: 480 seconds]
15:42-!-WormnestAndroid [~WormnestA@2607:fb90:42f5:1fb5:0:1b:3306:d701] has joined #openttd
15:42-!-WormnestAndroid is "WormnestAndroid" on #openttd
15:45-!-jottyfan [~Thunderbi@x4dbfd96b.dyn.telefonica.de] has joined #openttd
15:45-!-jottyfan is "jottyfan" on #openttd
16:18-!-Wormnest [~Wormnest@097-106-006-046.res.spectrum.com] has joined #openttd
16:18-!-Wormnest is "Wormnest" on #openttd
16:40<andythenorth>hmm
16:42<andythenorth>I swear a GS could be maintained against a grf reliably
16:42<andythenorth>unfortunately it's predicated on writing bug free code
16:42<nielsm>GS also still has the big issue of saving and restoring state in savegames
16:43<nielsm>it's really difficult to get right (apparently)
16:43<andythenorth>well only I said that
16:43<andythenorth>and only after I broke it once
16:44<Timberwolf>Heh, yes.
16:44<andythenorth>once is a single data point :P
16:44<Timberwolf>I've just been fixing a problem with persisting the maximum town growth array in Villages Is Villages.
16:45<andythenorth>so it wasn't just me? :P
16:45<Timberwolf>The opcode limit is too small to iterate the town array on maps with ~2000-6000 (or more) towns, depending on factors I don't understand.
16:45<andythenorth>oof :)
16:46<andythenorth>GS seems an order of magnitude harder than newgrf :)
16:46<nielsm>I wonder if it would be better to offer a new/different save state system for GS, where every (or at least most) game objects have a GS storage (and AI storage) attached
16:46<Timberwolf>I brute forced it by caching the value I need to save whenever all the towns get iterated, if I run out of opcodes saving I give up and use that (potentially quite out of date) value instead.
16:47<andythenorth>borrowing inappropriately, I use multiple web frameworks where the objects serialise / deserialise on demand
16:47<andythenorth>on the other hand, maybe that's what GS does, and I just did it wrong :)
16:48<andythenorth>I think I assumed the savegame would just persist the objects
16:54*andythenorth tries to rationalise the compatibility challenge :P
16:55<andythenorth>for convenience, let's say Foo.GS was introduced alongside FIRS 4.0.0
16:55<andythenorth>Foo.GS has the list of all cargos and required behaviours against FIRS 4.0.0
16:55<andythenorth>let's say this is Foo.GS 1.0.0
16:56<andythenorth>now I introduce FIRS 4.1.0, changing the cargos (and ignoring semver rules about API breakage apparently)
16:57<andythenorth>Foo.GS 1.0.0 doesn't know about FIRS 4.1.0 so it simply turns itself off if used in a game with FIRS 4.1.0
16:57<andythenorth>I ship Foo.GS 1.1.0 with support for FIRS 4.1.0
16:57<andythenorth>if the player doesn't upgrade FIRS to 4.1.0, but keeps 4.0.0
16:58<andythenorth>Foo.GS 1.1.0 knows about tagged versions of FIRS, including FIRS 4.0.0
16:58<andythenorth>so it works fine
16:58<andythenorth>this assumes (1) I can keep backwards compatibility forever, which I don't believe (2) I never include any bugs that require a compatibility-breaking release
16:59<andythenorth>this seems to mean e.g. Foo.GS 1.5.0 has all the codepaths and behaviours required to work with FIRS 4.0.0
16:59<andythenorth>but Foo.GS may advertise itself as doing things that FIRS 4.0.0 can't support
16:59<andythenorth>which is confusing
17:00-!-jottyfan [~Thunderbi@x4dbfd96b.dyn.telefonica.de] has quit [Quit: jottyfan]
17:10-!-Wormnest [~Wormnest@097-106-006-046.res.spectrum.com] has quit [Ping timeout: 480 seconds]
17:26-!-nielsm [~nielsm@188-181-82-243-cable.dk.customer.tdc.net] has quit [Ping timeout: 480 seconds]
17:29*andythenorth bed
17:29-!-andythenorth [~andytheno@cpc87141-aztw31-2-0-cust239.18-1.cable.virginm.net] has quit [Quit: andythenorth]
17:43-!-Wormnest [~Wormnest@097-106-006-046.res.spectrum.com] has joined #openttd
17:43-!-Wormnest is "Wormnest" on #openttd
18:19-!-Wolf01 [~wolf01@0001288e.user.oftc.net] has quit [Quit: Once again the world is quick to bury me.]
18:36-!-Wormnest [~Wormnest@097-106-006-046.res.spectrum.com] has quit [Ping timeout: 480 seconds]
18:36-!-GT [~GT@j26231.upc-j.chello.nl] has joined #openttd
18:36-!-GT is "GT" on #openttd
18:45-!-GT [~GT@j26231.upc-j.chello.nl] has quit [Remote host closed the connection]
18:58-!-Progman [~progman@p4fd66741.dip0.t-ipconnect.de] has quit [Remote host closed the connection]
19:20-!-WormnestAndroid [~WormnestA@2607:fb90:42f5:1fb5:0:1b:3306:d701] has quit [Ping timeout: 480 seconds]
19:20-!-WormnestAndroid [~WormnestA@097-106-006-046.res.spectrum.com] has joined #openttd
19:20-!-WormnestAndroid is "WormnestAndroid" on #openttd
19:24-!-Wormnest [~Wormnest@097-106-006-046.res.spectrum.com] has joined #openttd
19:24-!-Wormnest is "Wormnest" on #openttd
19:29-!-HerzogDeXtEr [~farci@ip92340e5b.dynamic.kabel-deutschland.de] has quit [Read error: Connection reset by peer]
19:53-!-gelignite [~gelignite@55d4ee71.access.ecotel.net] has quit [Quit: Stay safe! Stay at home! Stop the chain reaction!]
19:58-!-Flygon [~Flygon@2001:44b8:411e:4e00:e498:2111:eec3:fbb7] has joined #openttd
19:58-!-Flygon is "Flygon" on #openttd
22:30-!-D-HUND [~debdog@2a00:79c0:64c:6f00:7a24:afff:fe8a:d04d] has joined #openttd
22:30-!-D-HUND is "Wowbagger" on #openttd
22:34-!-debdog [~debdog@2a00:79c0:65b:cc00:7a24:afff:fe8a:d04d] has quit [Ping timeout: 480 seconds]
23:01-!-Wormnest [~Wormnest@097-106-006-046.res.spectrum.com] has quit [Quit: Leaving]
23:03-!-glx [kvirc@000128ec.user.oftc.net] has quit []
---Logclosed Sun Aug 02 00:00:57 2020