IRC logs for #openttd on OFTC at 2022-01-22
            
02:41:29 *** Wormnest has quit IRC (Quit: Leaving)
03:23:45 *** innocenat_ has quit IRC (Server closed connection)
03:23:56 *** innocenat_ has joined #openttd
03:28:54 *** D-HUND has joined #openttd
03:31:01 *** glx has quit IRC ()
03:32:16 *** debdog has quit IRC (Ping timeout: 480 seconds)
03:49:55 *** Flygon has joined #openttd
04:04:08 *** D-HUND is now known as debdog
05:13:26 *** dale_ has quit IRC (Server closed connection)
05:13:27 *** dale has joined #openttd
05:15:50 *** LouWestin_ has quit IRC (Server closed connection)
05:16:01 *** LouWestin has joined #openttd
05:25:42 *** Gustavo6046 has joined #openttd
05:26:46 <Gustavo6046> wiscii, hii!
05:28:09 <wiscii> fucking stupid phone and stereo system plugged into the fuckin internet
05:28:38 <wiscii> i nearly broke a rib!
05:29:05 <Gustavo6046> :(
05:29:10 <wiscii> Gustavo6046: if i ever meet you in real life, expect pain!
05:29:19 <Gustavo6046> ...you mean back pain?
05:29:21 <wiscii> lol
05:29:26 <wiscii> relax
05:29:28 <Gustavo6046> I can expect that even without the part where we meet in real life
05:29:36 <Gustavo6046> I've been computerying ever since I was like 4 or 5
05:29:38 <Gustavo6046> and I was born in 2003
05:29:53 <wiscii> dang!
05:29:55 <Gustavo6046> and computerying wasn't exactly the most common thing in Brazil until relatively recently
05:30:10 <wiscii> i wuz born in the fkn dark ages
05:30:46 <Gustavo6046> ah yes, no one has ever heard of the 90s. dunno what that is! windows 98 special edition? DR-DOS? never heard of 'em! :p
05:30:50 <wiscii> all brazil has is nuts an bald pussies
05:30:54 <Gustavo6046> (not as in when you were born but still)
05:31:30 <wiscii> brazil is basically a new moon
05:31:32 <Gustavo6046> ah I wanna shave mine... but I feel like that's, not really the kind of thing we should be talking about here in #openttd – I'm not sure they'd really appreciate it
05:31:32 <Gustavo6046> maybe we should ask
05:31:32 <Gustavo6046> who should we ask?
05:31:34 <Gustavo6046> plus how do we put it in a way that doesn't sound like trolling?
05:31:43 <wiscii> it just didn't depart yet
05:31:47 <Gustavo6046> wiscii, Brazil is, like, a country, or something. Citation needed. :p
05:31:57 <Gustavo6046> I'm from the southern regions
05:32:14 <Gustavo6046> closer to the south pole so it's not as bad in the summer and pretty nice in the winter
05:32:18 <Gustavo6046> that said summer has been a cunt lately
05:32:26 <wiscii> Gustavo6046: brazil is more like a beard from antiquity
05:32:31 <Gustavo6046> nah
05:32:37 <Gustavo6046> it's pretty urbanized and industrialized
05:32:38 <wiscii> ;-)
05:32:41 <Gustavo6046> especially near the Atlantic
05:32:48 <wiscii> just messin bro ;-)
05:32:50 <Gustavo6046> although to be fair it has been a bit stagnant lately :p
05:33:44 <Gustavo6046> wiscii, still carrying out the top secret confidential plans to strap zillions of rocket engines under Brazil and eject it into space so it may outlive the upcoming downfall of humanity back on Earth?
05:33:47 <wiscii> you do know that in about a million years that brazil will be a new moon, right ;P
05:33:48 <Gustavo6046> :D
05:33:53 <Gustavo6046> ...hm? new moon?
05:34:00 <wiscii> rfl
05:34:03 <Gustavo6046> what do you mean by moon? elaborate
05:34:43 <wiscii> your continent is being slowly expunged by the planet
05:34:49 <wiscii> you are the desease
05:34:54 <wiscii> and we are the cure
05:35:53 <Gustavo6046> depends on whether you're the entity being cured or the entity being cured OF :D
05:36:02 <Gustavo6046> I mean
05:36:10 <Gustavo6046> we're pretty even, compared to the disparity between a huge human and a tiny virus
05:36:26 <Gustavo6046> plus virii probably don't feel pain and shit, humans do
05:36:34 <wiscii> i'm only being silly .. i mean you no harm in any way what-so-ever
05:36:39 <Gustavo6046> lol I know
05:36:41 <Gustavo6046> no hard feelings
05:36:47 <Gustavo6046> I'm being silly too
05:36:52 <wiscii> cool :)
05:36:55 <Gustavo6046> I actuallly am from Brazil, though.
05:37:11 <Gustavo6046> I don't know if it's true that everyone here shaves their scrotes. I know I don't like *my* bodyhair.
05:37:12 <wiscii> that is guud by me :)
05:37:36 <wiscii> i never shaved mine
05:37:39 <Gustavo6046> where are you from? Europe? I could also guess America, or Australia
05:38:01 <Gustavo6046> ah well I don't mind mine that much, I just find them a bit ugly for some reason, even though I'm a guy
05:38:10 <Gustavo6046> body hair in general, with the exception of like, hair, like head hair
05:38:11 <wiscii> <- european / UK / Scotland == FTW
05:38:15 <Gustavo6046> ah, neat
05:38:23 <wiscii> fk ye
05:38:27 <Gustavo6046> european? where's your EU citizenship? lol
05:38:32 <Gustavo6046> :D
05:38:48 <Gustavo6046> ....ah, sorry
05:38:56 <wiscii> my euro is up my fkn arse, right where it belongs!!!
05:39:21 <wiscii> but seriously ..
05:39:42 <wiscii> i was just having a moment of simple fun ;-)
05:39:45 <Gustavo6046> yeah them Londoners pushing Brexit to the rest of the UK is kind of a cunt move, I'd like if the other parts could have their own says
05:39:54 <Gustavo6046> maybe some would like to stay, maybe others would leave too
05:40:06 <Gustavo6046> that doesn't mean it wouldn't be *United* Kingdom anymore, it just means they would have.. a tiny bit of autonomy
05:40:06 <wiscii> ahhhhhh .. brexit
05:40:13 <Gustavo6046> yeah, that's what I mean
05:40:19 <wiscii> where would you like to begin ?
05:40:31 <wiscii> i am all ears for that!
05:40:33 <Gustavo6046> uh, I'd like to begin far away from Europe, in fact many hundreds of miles down south :D
05:40:37 <Gustavo6046> lol
05:40:44 <Gustavo6046> hundreds?... is that right?
05:40:52 <Gustavo6046> shit what's the distance between Glasgow and Porto Alegre now
05:40:54 <Gustavo6046> or London and Porto Alegre
05:41:02 <Gustavo6046> ah whatever either or others likewise works
05:41:36 <wiscii> they were fighting over a "Pond" .. i believe, something like that
05:41:45 <wiscii> and i fkn live here
05:43:27 <wiscii> Gustavo6046: they already did your country
05:43:47 <Gustavo6046> wiscii, who?! nobody shags MY country!
05:43:47 <Gustavo6046> lol
05:44:02 <wiscii> the banks did
05:45:13 <Gustavo6046> oh shit you're right
05:45:17 <Gustavo6046> the dum dum capitalists
05:45:19 <wiscii> south america has been broken by the banks my friend
05:45:30 <Gustavo6046> we have been broken by a rampage of capitalism
05:45:50 <wiscii> as have we
05:45:59 <Gustavo6046> it's pretty new here, but its roots lie in the United States, as up there it has become pretty filthy for some decades now
05:46:17 <Gustavo6046> Did you see how low corporate tax in the US was in like 1950, and how high it is today?
05:46:29 <wiscii> i try to look at it this way:
05:46:50 <wiscii> we do not live in a democracyy
05:46:57 <Gustavo6046> that is true anywhere in the world
05:47:06 <wiscii> we live in a capitalist state
05:47:10 <Gustavo6046> where there is an upper class, there will be means for it to protect its own interests
05:47:18 <wiscii> we live in a capitalist state
05:47:28 <Gustavo6046> and the political ramifications of that can be indirect (disinformation and manipulation) or direct (subversion of electoral results)
05:47:38 <wiscii> the problem with the capitalidst stsate is..
05:47:53 <Gustavo6046> and people will listen because people couldn't know better
05:48:10 <Gustavo6046> that's why the rich oppose equal access to education, because they don't want people to know better
05:48:23 <wiscii> properganda, yes
05:49:05 <wiscii> i love this subject, and i will tell anybody prepared to listen
05:49:07 <Gustavo6046> that's why the rich oppose measures to reduce economical equality; it's not just that they don't want to be poorer, it's that they don't want the common man to get richer and to get power that way (they want monopolies)
05:49:11 <wiscii> that includes you
05:49:24 <Gustavo6046> proper-ganda, me-ganda and u-ganda
05:49:31 <Gustavo6046> :p
05:49:50 <wiscii> lolita-ganda ! ;-)
05:50:02 <wiscii> you know
05:50:21 <wiscii> forget that shit
05:50:27 <wiscii> i'm no peado
05:50:55 <Gustavo6046> ?
05:50:56 <Gustavo6046> oh
05:51:00 <Gustavo6046> loli stuff
05:51:07 <wiscii> yeah .. head fuck
05:51:09 <Gustavo6046> yeah lol it's distasteful
05:51:32 <wiscii> distasteful .. exactly
05:51:34 <Gustavo6046> head fuck? that's a linux command i didn't know before :p
05:51:44 <wiscii> i find the system to be distasteful
05:51:46 <Gustavo6046> i know regular head, and its counterpart tail
05:51:54 <Gustavo6046> wiscii, I was talking about lolis, they're distasteful, but the system is too
05:52:08 <Gustavo6046> I don't think we need to go on for too long
05:52:27 <wiscii> <- done ;-)
05:53:39 <wiscii> Gustavo6046: do you believe that capitalism is successful ?
05:53:55 <wiscii> totally personal reason to ask
05:53:55 <Gustavo6046> or you're gonna start putting on some Rage Against The Machine music loool
05:54:19 <Gustavo6046> wiscii, I think it's a step up from feudalism and from monarchy, just a part of the progress towards wherever we are heading.
05:54:23 <wiscii> yeah, i could be rockin out as you say ! ;-)
05:55:10 <wiscii> Gustavo6046: the idea that we "step up" from a previous system
05:55:17 <Gustavo6046> Like all systems- ahem, economical models, before it, it has its upsides and downsides. And like any system with disparate classes (upper class, working class, etc), the ones that are benefited the most are also the ones who are most interested in keeping it in place. Inertia.
05:55:19 <wiscii> sounds like a good idea
05:55:30 <wiscii> what if that idea was a trick ?
05:55:32 <Gustavo6046> Capitalism is like, really, really old, though.
05:55:40 <Gustavo6046> And it's oddly difficult to get rid of, or revolute against.
05:55:48 <wiscii> wow
05:56:22 <wiscii> xcapitalism is about to rob you of even care to question it future and you don't e
05:56:37 <Gustavo6046> And with the global trades of today, revoluting can be quite costly. Look at the Cuban embargo, they have to split their economy, but because it can only get so big because of the embargo, people don't have much more than a decent life. I mean, at least *everyone* has a decent life, but no one has anything that stands out much.
05:56:58 <wiscii> capitalism only makes money for the already wealthy
05:57:17 <wiscii> it is a legalised form of slavery
05:58:12 <wiscii> it is fkn weird though
05:58:22 <Gustavo6046> kind of, although at least you can quit your job if you don't like it, and it's not quite indentured
05:58:31 <Gustavo6046> but if you quit it's hard to get a job again
05:58:32 <wiscii> there is a trick to capitalism ..
05:58:44 <wiscii> it's not a fair trick ..
05:58:54 <Gustavo6046> unfair trick?
05:58:58 <Gustavo6046> like a cheat code? :D
05:59:04 <wiscii> yup
05:59:30 <wiscii> it is exactly a cheat code
05:59:52 <wiscii> and it is going on right now and you ARE paying for it
06:00:27 <Gustavo6046> yes
06:00:46 <Gustavo6046> +§1,000,000 Simoleons
06:00:52 <Gustavo6046> oops!
06:01:44 <wiscii> as you are from south america and you are on the internet, i can only presume that you are most extrordinarily over priveledged
06:02:18 <Gustavo6046> not really
06:02:24 <wiscii> at least i am just some shit bag from the uk
06:02:26 <Gustavo6046> my dad is a systems analist
06:02:29 <Gustavo6046> analyst
06:02:44 <Gustavo6046> he's an autonomous worker, informal work
06:02:55 <Gustavo6046> has a relatively high position but doesn't earn a whole lot
06:03:08 <wiscii> but what are you ?
06:03:08 <Gustavo6046> it's not an outstanding pay, or it is and he's hiding something for his own affairs LOL
06:03:20 <Gustavo6046> I'm turning 19 this year, you? :p
06:03:22 <Gustavo6046> oh right
06:03:28 <Gustavo6046> I'm not yet employed
06:03:35 <Gustavo6046> but don't worry about that
06:03:35 <wiscii> i am 59 yo
06:03:39 <Gustavo6046> I can do programming
06:03:49 <Gustavo6046> I just have to start freelancing or something
06:04:48 <wiscii> go for it !
06:05:35 <Gustavo6046> alright!
06:05:38 <Gustavo6046> still not sure how
06:05:42 <Gustavo6046> I've thought about making some sort of online game maybe
06:05:43 <Gustavo6046> and monetizing it
06:05:49 <Gustavo6046> but I have difficulty organizing a lot of work
06:05:56 <Gustavo6046> after all I have ADHD, and on top of that I don't plan ahead like most people
06:06:18 <wiscii> you utter fucking waste of spacce
06:10:18 * wiscii cuts self
06:11:27 <Gustavo6046> lol
06:11:34 <Gustavo6046> wiscii, I'm not an astronaut
06:11:48 <Gustavo6046> by monetizing I mean like
06:11:50 <Gustavo6046> light stuff
06:11:53 <Gustavo6046> maybe even just as in donations
06:14:47 <wiscii> you just want to copy
06:14:53 <Gustavo6046> wiscii, ?
06:15:25 <wiscii> do what somebody else did and make money
06:15:36 <wiscii> pew-die-pie-2
06:16:09 <Gustavo6046> well... if nobody did then everything would be monopolies
06:16:13 <Gustavo6046> plus i don't really watch pewdiepie videos
06:16:14 <wiscii> the system don't put up with that shit no more
06:16:32 <wiscii> monopolies
06:16:35 <wiscii> yup
06:16:39 <wiscii> everywhere
06:16:48 <wiscii> tell yourself No ..
06:16:53 <wiscii> and then look again
06:23:55 <wiscii> who payes for the electricity ?
06:24:42 <wiscii> i assure you that google et al, do not pay consumer grade rates
06:25:20 <wiscii> i could not make it any simpler than that
06:25:54 <wiscii> except to say, the system *is* legalised robbery
06:27:26 <wiscii> the funny thing is, you live off that robbery, you are not subjected to it
06:36:24 <Gustavo6046> hmm
06:37:49 <wiscii> i have worked in brazil
06:37:58 <wiscii> i know
06:39:21 <wiscii> british embassy export
06:40:21 <wiscii> when "they" say "it is a competitive world"
06:46:02 <wiscii> what is it now, 200million living below the global poverty line ?
06:46:19 <wiscii> in brazil
06:47:03 <wiscii> that sounds like legalised slavery
06:48:29 <wiscii> new ottd mod => legalised slavery, fairly simple
06:50:16 <wiscii> i love it when the sjws get upset about colonisation
06:50:48 <wiscii> it is a fkn game, you retards
06:52:52 <wiscii> i love those old vector graphics
06:53:18 <wiscii> there was asteroids
06:53:25 <wiscii> and then
06:53:48 <wiscii> there was STARWARS
06:53:51 <Gustavo6046> ah
06:54:39 <wiscii> on max overkill
06:55:12 <wiscii> full volume
06:55:23 <wiscii> total immersion
06:55:56 <wiscii> .|^|.......|^|.......................
06:57:37 <wiscii> one in a million
07:00:11 <Gustavo6046> wat
07:01:17 <wiscii> it was a computer game in arcades
07:01:24 <wiscii> 10p a go
07:01:40 <wiscii> one of the best
07:02:38 <wiscii> same era as space invaders
07:03:04 <wiscii> only , way fkn better
07:03:15 <wiscii> at the time
07:03:18 *** LouWestin has quit IRC (Remote host closed the connection)
07:04:39 *** LouWestin has joined #openttd
07:05:39 <wiscii> wrong game, right channel
07:08:03 <wiscii> ever heard of Xenon ?
07:08:56 <wiscii> or Speedball II ;-)
07:09:49 <wiscii> we had joysticks and mad fun with SBII
07:10:40 <wiscii> with VR etc, I 'm not sure how that sort of violence will transfer
07:11:38 <wiscii> how high would you you have to be to play "sensible soccer£ now-a-days
07:11:40 <wiscii> ?
07:12:41 <wiscii> fk DOOM
07:36:03 <Gustavo6046> wiscii, I've heard of Breakout and Lunar Lander and Asteroids and Battlezone and Pitfall
07:36:15 <Gustavo6046> There was also one where you went up a river, and one where you were on a fake-3D racing track
07:37:02 <Gustavo6046> But nowadays I play a lot of oldschool Doom and Quake and UT99
07:37:11 <Gustavo6046> Not much into the older arcade games, though they're cool in their own right
07:37:23 <Gustavo6046> Some of them and their platforms are pretty interesting on the technical side of things
07:37:55 <Gustavo6046> Why are all the good games the fourth installments of their respective series? Like SimCity 4, Democracy 4, SWAT 4, Emergency 4...
07:52:18 *** andythenorth has joined #openttd
08:10:05 *** nielsm has joined #openttd
08:10:54 <andythenorth> moin
08:35:50 *** WormnestAndroid has quit IRC (Remote host closed the connection)
09:02:32 <Gustavo6046> mion
09:06:58 <DorpsGek> [OpenTTD/OpenTTD] andythenorth updated pull request #9795: Change: NewGRFResolveID method to resolve object id from grfid and gr… https://github.com/OpenTTD/OpenTTD/pull/9795
09:09:07 <DorpsGek> [OpenTTD/OpenTTD] andythenorth updated pull request #9795: Add: [Script] ObjectType::NewGRFResolveID to resolve object id from grfid and grf_local_id https://github.com/OpenTTD/OpenTTD/pull/9795
09:09:38 *** nielsm has quit IRC (Remote host closed the connection)
09:12:42 <DorpsGek> [OpenTTD/OpenTTD] andythenorth updated pull request #9795: Add: [Script] ObjectType::NewGRFResolveID to resolve object id from grfid and grf_local_id https://github.com/OpenTTD/OpenTTD/pull/9795
09:13:20 <LordAro> is andythenorth doing programming again?
09:13:33 <andythenorth> remains to be seen
09:13:47 <andythenorth> I'm putting symbols in specific order
09:13:52 <andythenorth> with the hope it's meaningful
09:13:59 <andythenorth> like when they do magic in Charmed
09:18:08 *** Wolf01 has joined #openttd
09:25:20 <andythenorth> is there a bit-shifting way to clamp uint32 to uint16 values?
09:25:38 <andythenorth> hmm nvm
09:25:44 <andythenorth> this is validation, not clamping
09:30:04 <andythenorth> seems the grf_local_id is uint8?
09:30:05 <andythenorth> https://github.com/OpenTTD/OpenTTD/blob/master/src/newgrf_commons.cpp#L102
09:33:58 <andythenorth> should the script method just use uint8 for that param? https://github.com/OpenTTD/OpenTTD/pull/9795/commits/e347a7971b326fe49ded380c7d901c7a35c1d368#diff-6016e278f3a3479a59921f4d814b67e2cf69ff40ce03c15330ae8b15cae34a9fR47
09:37:03 <andythenorth> uuf programming :|
09:41:58 <Wolf01> Monopolizing the conversation again? What are you doing now?
09:42:25 <LordAro> andythenorth: i don't know, should it?
09:42:38 <andythenorth> dunno :)
09:43:15 <LordAro> andythenorth: what makes you think it should be?
09:43:17 <andythenorth> it would seem normal to pass parameters consistently
09:43:43 <LordAro> if possible, yes
09:43:46 <andythenorth> if it's going to be passed on as uint8, and not used for anything else, why not pass it as uint8 in the first call?
09:44:03 <andythenorth> but eh I don't know about representing integers in Squirrel
09:44:16 <LordAro> is the missing context that the first param of _object_mngr.GetID a uint8?
09:44:25 <andythenorth> sorry yes
09:44:37 <LordAro> then i would say yes, should be a uint8
09:44:48 <LordAro> i don't think there's any such issues with integers in squirrel
09:44:59 <LordAro> if nothing else, uint8 is used in the previous function
09:45:25 <LordAro> actually, i think squirrel ints might all be int64
09:45:35 <LordAro> but there's no harm in being specific at the C++ level
09:46:29 <andythenorth> thanks
09:46:38 <andythenorth> let's see what happens if I pass something too big to it
09:46:51 <LordAro> silently truncated, probably
09:48:56 <andythenorth> seems so
09:49:09 <andythenorth> should probably validate that and return invalid
09:49:32 <LordAro> ¯\_(ツ)_/¯
09:49:40 * andythenorth reads what EnforcePrecondition does
09:50:06 <LordAro> not like you're going to be doing any sort of maths on this id, no? either it'll work or it won't
09:54:51 <_dp_> hm, but I think local id can be > 256, at least for some features
09:54:54 <_dp_> how does that even work
09:56:23 <andythenorth> not sure
09:56:33 <andythenorth> I looked at object ID in grf spec
09:56:36 <andythenorth> says max is 255
09:56:45 <andythenorth> frosch told me it's uint16 though
09:57:08 <andythenorth> objectmanager base GetID specifies byte, which is same size as uint8?
09:57:32 <Rubidium> might you be mixing up: "amount of IDs allowed per GRF per feature" vs "amount of IDs allowed in total per feature"?
09:58:18 <andythenorth> ¯\_(ツ)_/¯ :)
09:58:22 <_dp_> engine ids seem to be uint16
09:58:39 <andythenorth> is there an overide of GetID for that though?
09:58:45 <andythenorth> industry seems to have its own
09:59:23 <andythenorth> EngineOverrideManager?
09:59:47 <_dp_> yeah, that has uint16 override
10:00:57 <_dp_> well, that's not even an override technically since there is no inheritance, just another class
10:01:10 <andythenorth> anyway the docstring for EnforcePrecondition (script_error.cpp) suggest maybe I should use that for validation
10:01:32 <LordAro> likely
10:02:33 <andythenorth> can I just check grf_local_id < 256?
10:03:38 <andythenorth> also should this param actually be typed as byte, not uint8
10:03:53 <Rubidium> if you check, also check grf_local_id >= 0. Or maybe IsInsideBS(grf_local_id, 0, 256) (or something similar)
10:04:57 <andythenorth> because of overflow?
10:06:11 <Rubidium> if you accept a int64 from Squirrel, then saying you require < 256 still allows someone to enter slightly less than half the numbers (i.e. all the negative numbers and everything from 0 to 255)
10:06:25 *** dwfreed has quit IRC (Quit: ZNC - http://znc.in)
10:06:27 *** dwfreed has joined #openttd
10:06:59 <andythenorth> makes sense
10:12:45 *** Gustavo6046 has quit IRC (Quit: Leaving)
10:21:27 <DorpsGek> [OpenTTD/OpenTTD] andythenorth updated pull request #9795: Add: [Script] ObjectType::NewGRFResolveID to resolve object id from grfid and grf_local_id https://github.com/OpenTTD/OpenTTD/pull/9795
10:22:10 *** frosch123 has joined #openttd
10:22:54 <frosch123> andythenorth: https://github.com/OpenTTD/OpenTTD/blob/master/src/object_type.h#L22 <- there are constants for the grf-local limits as well
10:23:08 <andythenorth> super
10:23:21 <andythenorth> so I can use that as the range to IsInsideBS()?
10:23:47 <frosch123> i only read backlog, not PR :)
10:24:50 <DorpsGek> [OpenTTD/OpenTTD] andythenorth updated pull request #9795: Add: [Script] ObjectType::NewGRFResolveID to resolve object id from grfid and grf_local_id https://github.com/OpenTTD/OpenTTD/pull/9795
10:25:12 <frosch123> what does the "false" in EnforcePrecondition mean?
10:27:04 <andythenorth> I read that as value to return if condition not met
10:27:07 <andythenorth> am I wrong?
10:27:36 <frosch123> but the function returns an ObjectType?
10:29:28 <DorpsGek> [OpenTTD/OpenTTD] andythenorth updated pull request #9795: Add: [Script] ObjectType::NewGRFResolveID to resolve object id from grfid and grf_local_id https://github.com/OpenTTD/OpenTTD/pull/9795
10:29:55 <andythenorth> oh so it needs to return invalid object
10:30:25 <andythenorth> seems to be implemented as nullptr in IsValidObjectType
10:30:46 <andythenorth> nah that's bollocks I need new glasses
10:30:50 <andythenorth> maybe seriously actually
10:33:35 <andythenorth> hmm what value represents invalid object?
10:33:45 <andythenorth> most likely I can find is 0xFFFF from GetObjectIDAtOffset
10:34:59 <andythenorth> ok second coffee if working now :)
10:36:07 <andythenorth> trying to patch OpenTTD is similar to trying to do a hard crossword puzzle
10:36:24 <andythenorth> patching Horse or FIRS is more like playing Tetris
10:36:53 <DorpsGek> [OpenTTD/OpenTTD] andythenorth updated pull request #9795: Add: [Script] ObjectType::NewGRFResolveID to resolve object id from grfid and grf_local_id https://github.com/OpenTTD/OpenTTD/pull/9795
10:37:13 <frosch123> hmm, weird, there are ROADTYPE_INVALID, TILE_INVALID, GOAL_INVALID, GROUP_INVALID, DATE_INVALID
10:37:26 <frosch123> but no similar thing for objects/industries etc
10:37:32 <frosch123> i guess noone needed them yet
10:37:54 <andythenorth> INVALID_OBJECT_TYPE
10:38:07 <andythenorth> in the file you linked earlier?
10:38:16 <frosch123> INVALID seems to go to the end for scrip api
10:38:45 <andythenorth> 0xFFFF is what object manager gives me back for invalid ID
10:39:04 <andythenorth> so do changes to GS also syndicate to AI?
10:39:12 * andythenorth doing the funny changelog.hpp things
10:40:20 <frosch123> there are @ai and @gs annotations in the api. they affect the export to squirrel
10:40:45 <frosch123> * @api ai game
10:41:03 <frosch123> so it's both for ScriptObjectType
10:41:31 <andythenorth> found it thanks
10:43:11 <frosch123> https://github.com/DREAM-DK/MAKRO <- not quire sure what that is yet. i wonder whether we can generate a grf from it though
10:43:55 <andythenorth> plastic bricks cargo needed
10:44:00 <frosch123> but they also used python to template some weird proprietary language
10:44:14 <andythenorth> "The compatibility wrappers (compat_*.nut) need updating." my filesystem can't find these
10:44:55 <andythenorth> wait they're in bin?
10:45:33 <andythenorth> that's just old build artefacts surely
10:47:21 <andythenorth> compat_*.nuts are just for methods that changed etc?
10:47:23 <andythenorth> not new methods?
10:47:37 <frosch123> yes, when you add or change parameters
10:47:54 <frosch123> compat_*.nuts is sued to monkey-patch the api into the old behaviour
10:48:02 <andythenorth> ok
10:48:05 <andythenorth> 'does not apply'
10:50:55 <DorpsGek> [OpenTTD/OpenTTD] andythenorth updated pull request #9795: Add: [Script] ObjectType::NewGRFResolveID to resolve object id from grfid and grf_local_id https://github.com/OpenTTD/OpenTTD/pull/9795
10:51:45 <andythenorth> think I did everything :P
10:51:51 <andythenorth> admin ratio to actual code ratio: about 8:1
10:51:59 <andythenorth> not too bad
10:57:16 <andythenorth> if this is adequate, I'll do industry next
10:57:31 <andythenorth> which will remove the need for fingerprinting by cargo
10:58:08 <frosch123> does it? what about economy parameter?
11:00:32 <andythenorth> yes that will need to fingerprint by cargo
11:00:39 <andythenorth> but not to detect the industry
11:01:13 <andythenorth> reading grf parameters would be nice, but there's a limit to how much help I dare ask for :P
11:02:23 <andythenorth> it's funny, for the utopia of GS <-> grf working together
11:02:28 <andythenorth> I have to learn GS :P
11:02:32 <andythenorth> and TrueBrain has to learn grf
11:02:37 <andythenorth> the pain
11:08:53 *** J0anJosep has joined #openttd
11:09:45 <michi_cc> And if that merges into TrueNorthNewGS, the world will explode? :p
11:10:57 <frosch123> ah, that's where startrek's "TNG" comes from
11:11:05 <andythenorth> what do we call unified GS + grf?
11:11:15 <frosch123> add-on :p
11:11:38 <michi_cc> mod :p
11:11:58 <andythenorth> GG WP
11:12:14 <andythenorth> but we'll author them all in RPN? :P
11:12:22 <frosch123> right, that's the name i was looking for. newgrf has replaced "mod" in my mind
11:12:25 <michi_cc> PyRPN
11:12:46 <andythenorth> so python RPN generator, to a rust compiler :P
11:12:48 <andythenorth> oof
11:13:00 <andythenorth> anyone want to pass / reject my PR
11:13:13 <andythenorth> I didn't provide a test GS
11:15:34 <_dp_> world will be fine, even together gs+grf can't do much :p
11:17:06 <DorpsGek> [OpenTTD/OpenTTD] michicc commented on pull request #9795: Add: [Script] ObjectType::NewGRFResolveID to resolve object id from grfid and grf_local_id https://github.com/OpenTTD/OpenTTD/pull/9795#pullrequestreview-860196417
11:17:37 <frosch123> i only have bikeshed comments on the PR. add some \n, put verbs first "ResolveNewGRFID", choose between keeping the enforceprecondition or using byte (both together are meaningless)
11:18:37 <frosch123> bbl
11:22:08 <DorpsGek> [OpenTTD/OpenTTD] andythenorth updated pull request #9795: Add: [Script] ObjectType::NewGRFResolveID to resolve object id from grfid and grf_local_id https://github.com/OpenTTD/OpenTTD/pull/9795
11:23:19 <_dp_> someone already mentioned it somewhere but I also think grfid, grf_local_id would be a better order of arguments
11:23:31 <DorpsGek> [OpenTTD/OpenTTD] andythenorth updated pull request #9795: Add: [Script] ObjectType::NewGRFResolveID to resolve object id from grfid and grf_local_id https://github.com/OpenTTD/OpenTTD/pull/9795
11:23:55 <andythenorth> do we care about matching the object manager order of args?
11:24:32 <michi_cc> No
11:24:34 <_dp_> not rly imo, object manager order can be changed any time
11:25:33 <andythenorth> hmm
11:25:35 <andythenorth> "* @param grf_id The ID of the NewGRF, as int."
11:25:52 <andythenorth> that's incorrect, it's a 32 bit hex?
11:26:09 <michi_cc> hex or decimal, it's still an int.
11:26:16 <andythenorth> "4 bytes" might be easier as note?
11:26:29 <_dp_> @pre 0x00 <= grf_local_id <= 0xFF
11:26:31 <_dp_> < 0xff
11:26:56 <michi_cc> Computer doesn't care, you could write new ID in octal or binary or base26 or whatever :)
11:27:14 <_dp_> 0xff is reserved
11:27:15 <DorpsGek> [OpenTTD/OpenTTD] andythenorth updated pull request #9795: Add: [Script] ObjectType::ResolveNewGRFID to resolve object id from grfid and grf_local_id https://github.com/OpenTTD/OpenTTD/pull/9795
11:28:15 <michi_cc> And for grf_local_id, either make it an int or drop EnforcePrecondition (if any other local ID type can be > byte, I'd use int and the Enforce..., this way the code doesn't need change if NUM_OBJECTS_PER_GRF changes).
11:28:38 <DorpsGek> [OpenTTD/OpenTTD] andythenorth updated pull request #9795: Add: [Script] ObjectType::ResolveNewGRFID to resolve object id from grfid and grf_local_id https://github.com/OpenTTD/OpenTTD/pull/9795
11:28:44 <andythenorth> ok
11:28:56 <andythenorth> what size int?
11:29:02 <andythenorth> uint32?
11:30:29 <michi_cc> Yeah, no negative IDs anyway.
11:30:42 <_dp_> I think uint16 would be quite a safe bet atm
11:31:13 <_dp_> newgrf uses extended bytes for uint8->uint16 in some places but I don't think it ever got to uint32 yet anywhere xD
11:31:23 <michi_cc> _dp_: Squirrel is int64 always, so uint16 doesn't really saves anything.
11:32:06 <_dp_> well, yeah, I guesss
11:33:06 <michi_cc> But of course uint16 would work as well. More than one way to do it :)
11:33:25 <andythenorth> oof :)
11:33:35 * andythenorth must pick one :P
11:34:22 <andythenorth> uint16 then
11:34:52 <DorpsGek> [OpenTTD/OpenTTD] andythenorth updated pull request #9795: Add: [Script] ObjectType::ResolveNewGRFID to resolve object id from grfid and grf_local_id https://github.com/OpenTTD/OpenTTD/pull/9795
11:41:15 <_dp_> I guess this is debatable but I don't think it's a good idea to use constants in doc comments (NUM_OBJECTS_PER_GRF)
11:41:28 <_dp_> if I read GS api docs how would I know what's the value of that constant?
11:42:02 <DorpsGek> [OpenTTD/OpenTTD] michicc approved pull request #9795: Add: [Script] ObjectType::ResolveNewGRFID to resolve object id from grfid and grf_local_id https://github.com/OpenTTD/OpenTTD/pull/9795#pullrequestreview-860198180
12:11:35 <andythenorth> thanks michi_cc
12:11:45 <andythenorth> I'll do industry next
12:12:14 <DorpsGek> [OpenTTD/OpenTTD] michicc merged pull request #9795: Add: [Script] ObjectType::ResolveNewGRFID to resolve object id from grfid and grf_local_id https://github.com/OpenTTD/OpenTTD/pull/9795
12:12:32 <_dp_> the most reviewed pr ever xD
12:13:28 <andythenorth> probably more reviewed than NRT :P
12:18:02 <andythenorth> looks like IndustryType has a couple of special values in SpecialIndustryType
12:25:31 <andythenorth> probably fine, pre validation caps below those special values
12:43:47 <DorpsGek> [OpenTTD/OpenTTD] andythenorth opened pull request #9798: Add: [Script] IndustryType::ResolveNewGRFID to resolve industry id from grf_local_id and grfid https://github.com/OpenTTD/OpenTTD/pull/9798
13:01:25 <peter1138> How lo
13:01:33 <peter1138> How long can I drag out my lunch?
13:02:02 <andythenorth> yes
13:02:18 <andythenorth> on a Sunday, in a pub, in winter, I have managed 11am - 5pm
13:02:22 <andythenorth> then it was time for tea
13:02:32 <DorpsGek> [OpenTTD/OpenTTD] frosch123 commented on pull request #9798: Add: [Script] IndustryType::ResolveNewGRFID to resolve industry id from grf_local_id and grfid https://github.com/OpenTTD/OpenTTD/pull/9798#pullrequestreview-860204282
13:05:03 <frosch123> it's funny to compare all the warnings from the different compilers
13:05:13 * andythenorth considers grf ID resolver for vehicles
13:05:22 <andythenorth> not sure if that's a thing
13:05:47 * peter1138 considers watching Book of Boba Fett
13:05:51 <DorpsGek> [OpenTTD/OpenTTD] andythenorth updated pull request #9798: Add: [Script] IndustryType::ResolveNewGRFID to resolve industry id from grf_local_id and grfid https://github.com/OpenTTD/OpenTTD/pull/9798
13:05:53 <frosch123> would anyone use that?
13:06:01 <andythenorth> seems more brittle
13:06:02 <frosch123> no AI wants to encode 100k vehicle types
13:06:08 <andythenorth> player builds vehicle, yes / no, mostly
13:06:28 <andythenorth> only use I can think of is the tech tree progression API
13:06:29 * peter1138 considers eating something else before it would be classed as a snack.
13:06:34 * andythenorth considers lunch
13:06:40 <andythenorth> now you mentioned it
13:06:46 <peter1138> I was hungry due to cycle ride.
13:06:51 <andythenorth> I had snacks
13:07:04 <andythenorth> this delayed lunch
13:08:42 <_dp_> ai can use resolve for some exceptions
13:08:48 <_dp_> or some fun like adding snow ploughs
13:09:58 <andythenorth> I would like to try unlocking vehicles
13:10:19 <andythenorth> but I can't just generate the GS out of one grf compile for that :P
13:10:32 <andythenorth> eh, what about libs though?
13:10:38 <andythenorth> could ship Iron Horse GS lib?
13:12:12 <andythenorth> allow research
13:12:20 <andythenorth> either for new generation
13:12:27 <andythenorth> or for specific lines in the tech tree
13:12:50 <andythenorth> or for specific technologies, like electric trains
13:32:19 *** WormnestAndroid has joined #openttd
13:49:53 <andythenorth> or just for daylength
13:49:54 <andythenorth> :P
13:51:34 <andythenorth> AI libs and GS libs are separate on bananas yes?
14:05:12 *** glx has joined #openttd
14:05:12 *** ChanServ sets mode: +v glx
14:08:34 <glx> andythenorth: for engines tech progression https://docs.openttd.org/gs-api/classGSEngine.html#aa85d49559805571547e76d597f79ffe8 may work
14:12:56 <andythenorth> yes
14:15:38 <andythenorth> I think someone made a GS for time freeze already
14:16:08 <andythenorth> Technology Advancement
14:17:40 <andythenorth> oh I broke it https://www.tt-forums.net/viewtopic.php?t=87029
14:30:24 *** tokai has joined #openttd
14:30:24 *** ChanServ sets mode: +v tokai
14:33:40 *** WormnestAndroid has quit IRC (Ping timeout: 480 seconds)
14:37:01 *** tokai|noir has quit IRC (Ping timeout: 480 seconds)
14:38:48 *** Funke has quit IRC ()
14:39:45 *** Compu has joined #openttd
14:40:10 *** Compu has quit IRC ()
14:40:31 *** Strom has joined #openttd
15:12:15 *** sla_ro|master has joined #openttd
15:21:53 * andythenorth found BuildNewGRFRailStation()
15:22:26 <andythenorth> adding a newgrf ID resolver for stations looks non-trivial due to existing API
15:24:37 <peter1138> Weird, considering buying tech that is 2 years old...
15:24:44 <andythenorth> is it a GPU?
15:24:52 <peter1138> Almost, it's a (cycle) GPS.
15:25:08 <peter1138> Mine crapped out again and I'm fed up with that.
15:27:26 *** J0anJosep has quit IRC (Ping timeout: 480 seconds)
15:39:57 <supermop_Home> i just bought a 7 year old camera with an obsolete lens mount
15:43:55 <DorpsGek> [OpenTTD/OpenTTD] frosch123 approved pull request #9798: Add: [Script] IndustryType::ResolveNewGRFID to resolve industry id from grf_local_id and grfid https://github.com/OpenTTD/OpenTTD/pull/9798#pullrequestreview-860216806
15:45:36 *** andythenorth_ has joined #openttd
15:46:53 *** jinks has joined #openttd
15:52:31 *** andythenorth has quit IRC (Ping timeout: 480 seconds)
16:24:21 *** WormnestAndroid has joined #openttd
16:24:27 <andythenorth_> thanks frosch123
16:27:12 <andythenorth_> presumably GSEventIndustryOpen isn't bubbled for any of the industries built in map gen?
16:27:16 * andythenorth_ could just test
16:28:00 <frosch123> no, we do not welcome scripts with a flood of events on gamestart :)
16:28:41 <frosch123> pretty sure events are also not queued between save/load cycles
16:28:51 <frosch123> so on start/load you have to scan everything anyway
16:28:54 <andythenorth_> yup
16:28:57 <andythenorth_> makes sense
16:31:49 <andythenorth_> are we concerned about memory use in GS?
16:32:04 <andythenorth_> I am planning to keep moderately large lists of tiles, with metadata
16:32:18 <andythenorth_> 'could scale badly'
16:32:23 <frosch123> various AIs succeeded in OOM-ing openttd on 32bit sysems
16:32:40 <frosch123> it's not new, specifically on huge maps
16:33:10 <frosch123> i think it's accepted as "player's fault" :)
16:33:13 <andythenorth_> given that the use case is eye candy pylons, and there has to be a failure mode anyway for places they can't be built (sea, towns)
16:33:24 <andythenorth_> I could just limit how many get built
16:48:39 <andythenorth_> ok so now I need to build a linkgraph for power plants
16:48:59 <andythenorth_> I guess I just guess for a bit until something sticks :P
17:15:17 <DorpsGek> [OpenTTD/OpenTTD] michicc merged pull request #9798: Add: [Script] IndustryType::ResolveNewGRFID to resolve industry id from grf_local_id and grfid https://github.com/OpenTTD/OpenTTD/pull/9798
17:27:09 *** jottyfan has joined #openttd
17:30:36 <andythenorth_> so....unified power grid like advanced civilisations?
17:31:02 <andythenorth_> or fragmented regional power grid, like declining civilisations like the USA?
17:36:38 <frosch123> regions with overproduction, regions with unterproductio, and h2 tankers traveling between them
17:37:30 <frosch123> basically "fragmented" allow to fill the gaps with vehicles
17:38:52 <andythenorth_> hydrogen economy?
17:41:37 <frosch123> nah, just ttd economy. you supply all the coal to one side of the map, so you force a lot of h2 production, which you can transport back to the other side
17:41:53 <andythenorth_> doesn't need many pylon objects :D
17:41:55 <andythenorth_> ok so I need to find a free tile near an industry
17:42:58 <andythenorth_> spiral walker? https://github.com/MinchinWeb/openttd-minchinweb/blob/master/MetaLibrary-AI/Spiral.Walker.nut
17:52:15 *** jottyfan has quit IRC (Quit: jottyfan)
17:52:36 <DorpsGek> [OpenTTD/team] adamek0202 opened issue #289: [cs_CZ] Translator access request https://github.com/OpenTTD/team/issues/289
18:00:49 *** Wormnest has joined #openttd
18:04:09 *** nielsm has joined #openttd
18:06:20 *** WormnestAndroid has quit IRC (Ping timeout: 480 seconds)
18:07:11 *** WormnestAndroid has joined #openttd
18:36:52 *** Flygon has quit IRC (Quit: A toaster's basically a soldering iron designed to toast bread)
18:44:25 <TrueBrain> FIRS is funny ... everything follows the same rule EXCEPT one industry or what-ever :P
18:44:53 <DorpsGek> [OpenTTD/OpenTTD] DorpsGek pushed 1 commits to master https://github.com/OpenTTD/OpenTTD/commit/9e47df298faf6889c8be7dd0b0eeedeb65db1cdc
18:44:54 <DorpsGek> - Update: Translations from eints (by translators)
18:50:53 <TrueBrain> hmm .. some cargoes are shown as "0 tonnes waiting" on an industry when it is accepting that cargo
18:50:56 <TrueBrain> wth causes that :P
18:52:03 <frosch123> it's the default behavior when using production callback
18:52:11 <frosch123> there is some extra callback to disable that text
18:52:25 <frosch123> but by default ottd thinks every newgrf industry uses stockpiles
18:52:31 <TrueBrain> but it only shows on 3 of the 7 accepted cargoes in this case :P
18:53:08 <frosch123> hmm, maybe the gui was never extended for 16 in/out cargos
18:53:14 <TrueBrain> lolz
18:53:16 <frosch123> 3 is the old acceptance limit
18:54:48 <andythenorth_> https://media.discordapp.net/attachments/337701432230805505/934521461299879966/unknown.png?width=2242&height=1298
18:54:57 <andythenorth_> TrueBrain can't have a slavish consistency
18:55:02 <andythenorth_> have to leave 1% for god
18:55:05 <frosch123> TrueBrain: no the code is there, i blame your grf
18:55:25 <TrueBrain> frosch123: I do not think I do anything to influence this, one way or the other :) So that is curious
18:55:28 <andythenorth_> ^^^ I have power stations connecting for the transmission backbone
18:55:32 <andythenorth_> but I need an MST
18:55:37 <TrueBrain> something about the cargo or something?
18:55:40 <andythenorth_> or some other graph
18:56:22 <andythenorth_> currently this will scale horribly as log O(n) or some other computer science term
18:56:48 <_dp_> lol(n)
18:57:08 <andythenorth_> yes that
18:59:02 <andythenorth_> I just need all the power stations to be in a single graph, least possible number of connections
18:59:29 <andythenorth_> if some links aren't pathfindable, they can be inferred as underground cables
18:59:34 <andythenorth_> but otherwise build pylons
19:00:37 <frosch123> TrueBrain: do you set property 1A bit 18?
19:00:45 <TrueBrain> of? cargo? industry?
19:00:50 <frosch123> industry
19:01:23 <TrueBrain> @calc 1 << 18
19:01:23 <DorpsGek> TrueBrain: Error: Invalid syntax: illegal operator LShift
19:01:38 <frosch123> lol it even recognises it as lshift :p
19:02:12 <TrueBrain> I do not set bit 18
19:02:29 <frosch123> then you should :)
19:02:37 <frosch123> always
19:03:36 <TrueBrain> hidden gems :) Tnx!
19:04:29 <TrueBrain> now it shows on all 7 cargoes the stupid text \o/ :D
19:04:38 <TrueBrain> just not for all industries .. not sure what that is about
19:04:47 <andythenorth_> was that the undocumented prop frosch123 ?
19:04:57 <TrueBrain> owh, I don't have custom callbacks on those yet
19:05:02 <frosch123> did you restart the game? industries store the cargotypes on construction
19:05:04 * andythenorth_ hasn't looked it up, but we missed some subtype prop I think
19:05:07 <frosch123> so reloadnewgrf is not enough
19:05:34 <TrueBrain> a lovely "Test: new-game" fixes all that shit for me :P
19:05:46 <TrueBrain> but I remember I tried to convert FIRS' secondary industry callbacks
19:05:47 <TrueBrain> I gave up
19:06:45 *** toktik is now known as Guest183
19:06:50 *** toktik has joined #openttd
19:08:18 *** Guest183 has quit IRC ()
19:08:20 * andythenorth_ found the half-remembered thing https://github.com/andythenorth/firs/blob/master/src/templates/extra_text_tertiary.pynml#L1
19:08:30 <andythenorth_> callback 37 stuff
19:08:32 <andythenorth_> maybe that's done now
19:16:48 <TrueBrain> "OOF, this needs to both assign total_cargo_to_distribute_this_cycle if > 1, and clear total_produced_cargo_available if > 1"
19:16:53 <TrueBrain> the struggles of andy :)
19:27:06 <andythenorth_> can't even remember what that's for
19:27:14 <andythenorth_> probably some meaningless detail
19:27:32 <TrueBrain> The case is triggered by low amounts being moved to the produce cycle as a vehicle gradually unloads, and was noticeable with Road Hog trams.
19:27:59 <andythenorth_> lol
19:28:07 <andythenorth_> oh so Lomo builds pylons?
19:28:14 <andythenorth_> according to discord
19:28:23 * andythenorth_ has not innovated then
19:29:01 <TrueBrain> :(
19:29:44 <andythenorth_> not an original OTTD idea either https://www.tt-forums.net/viewtopic.php?p=785347
19:37:16 <andythenorth_> ok, there's an AI implementation of minimum spanning tree in Pathzilla AI, but I can't see an example of it being used
19:38:19 <andythenorth_> the forum thread contains a lot of bug reports
19:38:27 <andythenorth_> maybe that's not a win
19:39:36 <TrueBrain> RPN is funny .. "why doesn't this work?!" .. "a > 8" ..
19:39:43 <TrueBrain> took a while to realise ... "a 8 >" ofc
19:42:10 <TrueBrain> hmmm .... every secondary industry produce some cargo, that is .. not what I was hoping for :P
19:42:24 <andythenorth_> kind of the definition of secondary :P
19:42:40 <TrueBrain> I expected them to produce nothing :)
19:43:09 <TrueBrain> I set the outputs to 0 .. hmm
19:43:47 <andythenorth_> oh
19:43:57 <TrueBrain> FIRS has them at zero, so it is a bug on my end .. hmm
19:43:58 <andythenorth_> hmm Kruskal's algorithm or Prim's algorithm
19:49:37 <frosch123> prim's may be easier to implement
19:49:41 <frosch123> the result is the same :)
19:51:26 <TrueBrain> you guys mentioned you could inspect persistent register values in-game?
19:52:53 <TrueBrain> hmm, production callbacks are not mentioned in the debug-thingy :P But I guess that is working, otherwise it would have done weirder things :D
19:56:49 <TrueBrain> hmmm ... why does my industry produce any output ...
19:57:01 <TrueBrain> even if I make the callbacks explicitly return 0, it still produces some :D
19:57:56 <frosch123> there are also the production properties, i think their values are added to the cb result
20:00:51 <TrueBrain> and how to figure out what property etc :D
20:03:37 <TrueBrain> ha
20:03:38 <TrueBrain> found it
20:03:43 <TrueBrain> I had a fixed-value of 1 for multiplier
20:03:45 <TrueBrain> should be 0
20:04:02 <TrueBrain> right ... now I should have working industry
20:04:03 <TrueBrain> lets try it out
20:05:45 <TrueBrain> yippie
20:05:47 <TrueBrain> it actually works :D
20:05:52 <TrueBrain> FIRS economy online! \o/ :P
20:05:57 <TrueBrain> well, the pre-town-happiness variant
20:06:04 *** jottyfan has joined #openttd
20:08:05 *** andythenorth has joined #openttd
20:08:51 <_dp_> andythenorth_, both Kruskal and Prim are kinda slow for EMST as you have a complete graph
20:09:13 <_dp_> so it's O(n**2 log(n)) at best
20:11:32 <_dp_> well, I guess it's just n**2 with fib heap but you may as well do delaunay
20:13:50 *** andythenorth_ has quit IRC (Ping timeout: 480 seconds)
20:14:50 <TrueBrain> hmm ... delivering farm supplies doesn't boost production .. lol
20:14:59 <TrueBrain> it kinda .... does the opposite :P
20:17:57 <_dp_> oh, right, Kruskal can do nearly n**2 with dsu, that's relatively simple to implement
20:24:42 * andythenorth google
20:24:59 <andythenorth> so out of my depth here :P
20:25:40 <andythenorth> could just connect power stations in clusters of 3 :P
20:25:46 <andythenorth> then interconnect those
20:25:53 <_dp_> https://mayanknatani.wordpress.com/2013/05/31/euclidean-minimummaximum-spanning-tree-emst/
20:26:00 <_dp_> here, simple n**2 prim
20:27:06 <andythenorth> that assumes the graph is already connected?
20:27:16 <andythenorth> with edge weights known?
20:27:52 <_dp_> you have a complete graph
20:28:03 <_dp_> weigth is just a distance
20:31:48 <_dp_> you don't even need to store it
20:44:03 *** esselfe has quit IRC (Server closed connection)
20:44:44 <andythenorth> so the graph is just the list of nodes?
20:47:21 <_dp_> yep
20:48:08 <andythenorth> do I need to explicitly calculate the set of edges?
20:48:21 <andythenorth> or are they just implied by calculating the distance between any 2 nodes?
20:48:39 * andythenorth reading wikipedia
20:52:48 <_dp_> andythenorth, https://gist.github.com/ldpl/f2f2daab58958939a8733a8095f5e95e
20:53:28 <andythenorth> oo :)
20:56:28 <andythenorth> squirrel conversion time :)
20:57:33 <_dp_> though I guess it would be cleaner if I used a separate array for marking vertices
21:01:31 <_dp_> https://gist.github.com/ldpl/d1f2e4992dad380450b2b5c3784ed170
21:03:51 *** gelignite has joined #openttd
21:09:27 <TrueBrain> right .... how did I randomize .. I forgot ... :P
21:10:09 <TrueBrain> 5F >> 8, right?
21:10:28 <TrueBrain> no clue what "triggers in low byte" means
21:10:45 <_dp_> perfection xD https://gist.github.com/ldpl/69cc4c193768a8fa2b67167c9bf091ab
21:10:48 <TrueBrain> frosch123: you happen to know what that means in the specs of 5F?
21:11:28 <andythenorth> _dp_ perfection is squirrel :)
21:11:43 <andythenorth> I can barely write squirrel yet :P
21:13:12 <_dp_> andythenorth, I never bothered to learn it too :p
21:13:25 <frosch123> TrueBrain: random bits are not only set once in the beginning, but can be rerandomised on certain occassions. newgrf things can accumulate "random triggers" and decide when to reset the triggers to rerandomise some bits
21:13:35 <frosch123> in short: something for later :p
21:13:58 <TrueBrain> yeah, as I still don't understand :P
21:14:02 <TrueBrain> but 5F >> 8 is fine for now?
21:14:05 <frosch123> yes
21:14:11 <TrueBrain> tnx :D
21:14:36 <TrueBrain> too bad I didn't make code for creating a switch ... a loop over a dict it is!
21:15:00 <TrueBrain> is 5F an "industry:" or a "global:" .. hmm .. it is feature specific, but it is generic :D
21:15:22 <frosch123> it's feature specific
21:15:27 <glx> number of random bits is feature specific
21:15:40 <TrueBrain> that makes no sense :P
21:15:43 <TrueBrain> how can something random
21:15:45 <frosch123> industry tiles and industries have separate randmo bits
21:15:46 <TrueBrain> be specific to anything?
21:15:50 <TrueBrain> doesn't that defeat the purpose?
21:16:03 <frosch123> so industry tile callbacks can use either tile::Random or industry::Random
21:16:24 <frosch123> the former is different for every tile of the industry, the latter is the same for all tiles of the industry instance
21:16:28 <TrueBrain> okay, so it is pseudo-random
21:16:34 <glx> tile:Random is 8 bit, industry:Random is 16
21:16:48 <TrueBrain> glx: that would contradict what 5F says?
21:16:55 <frosch123> TrueBrain: ah, no random bits are persistent storage
21:17:02 <frosch123> they do not change every time you read them
21:17:09 <TrueBrain> frosch123: yeah, that piece of information is kinda left out ;)
21:17:17 <TrueBrain> kinda important :P
21:17:49 <frosch123> you can read the storage and you can "write" them, though writing means "rerandomise these bits"
21:18:06 <TrueBrain> okay; and what glx says, any truth to that?
21:18:40 <glx> https://newgrf-specs.tt-wiki.net/wiki/RandomAction2#Triggers
21:18:47 <TrueBrain> we are talking 5F glx
21:18:53 <TrueBrain> I am told never to toch RandomAction2
21:18:54 <glx> 5F uses that too
21:19:12 <frosch123> glx linked you the table that says how many random bits everything has
21:19:19 <frosch123> it's different for every feature
21:19:33 <TrueBrain> this is just ...... every time you think you have seen the bottom of the barrel
21:19:39 <TrueBrain> the description of 5F might need some attention ;)
21:19:54 <TrueBrain> there is no way anyone would figure this out on their own :D
21:19:55 <frosch123> 5F just assumes you already read the older page :)
21:20:01 <frosch123> it's a incremental spec :)
21:20:10 <TrueBrain> and that there is a link between the two ;)
21:20:17 <glx> finding vars in doc is a pain too
21:20:43 <TrueBrain> so this is just a bitch for RPN authors ... you need to know the size of random, to create a random range
21:20:43 <TrueBrain> hmm
21:21:40 <TrueBrain> guess I want to support functions on the industry: space too .. future work!
21:21:42 <frosch123> it's best to treat random bits like persistent storage
21:22:01 <frosch123> so you would declare variables in front
21:22:09 <TrueBrain> not sure we talk about the same issue
21:22:16 <TrueBrain> I want a random value between 0 and 13
21:22:31 <TrueBrain> but industry:random is 16bit, industrytile:random is 8bit
21:22:34 <frosch123> yeah, no :p that's the wrong route
21:22:37 <TrueBrain> so for the human writing RPN, that will be a bitch
21:22:39 <frosch123> you will make the same mistake as nml then
21:23:03 <frosch123> do you already have syntax to declare persistent variables?
21:23:13 <TrueBrain> so I think I want to support functions on indstry:, so you can do something like industry:random_range 14
21:23:48 <frosch123> you have very limited amount of random bits, so you cannot allocate them on-the-fly when needed
21:24:04 * andythenorth considers pushing some into actual storage :P
21:24:12 <andythenorth> "does not help here"
21:24:14 <frosch123> you have to declare them first. your industry could declare a "random_mood" variable and assign random bits 0-3 to it
21:24:27 <TrueBrain> frosch123: I don't see why that would be useful?
21:24:34 <frosch123> and a "random_stuff" variable and assign bits 4-10 to it
21:24:39 <TrueBrain> semi-random being semi-random anyway
21:24:49 <frosch123> it's not semi-random
21:25:02 <frosch123> somewhere you took a wrong turn :p
21:25:26 <TrueBrain> pretty sure that remark is not useful ;)
21:25:50 <frosch123> i guess i have to write some longer paste
21:26:17 <TrueBrain> nah, it is more that we have different goals here
21:26:25 <TrueBrain> I just want some semi-random value atm
21:26:37 <TrueBrain> I don't really care that 10 things use the same base-random-value to modulo it to get their value
21:26:43 <TrueBrain> that is a bit tomato tomato for me atm
21:26:55 <frosch123> just be aware that var 5F does not change everytime you read it
21:26:59 <frosch123> it is not /dev/random
21:27:04 <TrueBrain> that I understood now ;)
21:27:18 <andythenorth> oops https://media.discordapp.net/attachments/337701432230805505/934559842314637382/unknown.png?width=2000&height=1297
21:27:30 <TrueBrain> I am wondering how often you actually use random in callbacks .. that scope I do not know yet
21:27:32 <andythenorth> I left my GS running, and it doesn't stop trying to build pylon routes
21:27:44 <TrueBrain> and clearly you do, and come up with elaborate schemas to resolve a problem I didn't get to yet ;)
21:27:50 <glx> andythenorth: there's no space to build tracks around :)
21:27:54 <TrueBrain> but I appreciate the headsup .. needs a solution some day :)
21:28:12 <andythenorth> lol yes the GS needs to terminate trying to build after first success
21:30:49 <TrueBrain> frosch123: lol, I guess one could argue that as long as you do the random bits module a different prime every time, it feels random enough to the human :P
21:31:43 <frosch123> random_bits % current_date ?
21:31:57 <TrueBrain> only works once in a function :P
21:34:54 <TrueBrain> 5F is unique per industry, right?
21:36:10 <TrueBrain> debugging RPN is hard ... as you have very little information from OpenTTD what happened :D
21:37:57 <andythenorth> debugging grf is hard
21:38:27 <andythenorth> it's ok if you actually manage to get OpenTTD to throw an error, but that's not common
21:39:17 <glx> maybe it needs so internal debug tool to trigger a chain to test
21:39:21 <TrueBrain> Action2 chains of 576 .. yeah .. checking those is also not easy :P
21:40:07 <glx> with stepping
21:40:18 <TrueBrain> would help for sure
21:48:37 <TrueBrain> hmm .. primary industries with 0 production :D
21:48:39 <TrueBrain> doesn't sound good :P
21:50:33 <TrueBrain> pretty sure my if-statements are not working as expected :P
21:55:53 <frosch123> TrueBrain: https://gist.github.com/frosch123/0cbfb663d9045ac9f113113f291f812f <- maybe easier than reading the wiki, maybe not :p
21:56:42 <TrueBrain> "every industry has 16 bits of random storage." -> "each industry has its own 16 bits of random storage", right?
21:56:51 <frosch123> glx: https://gist.githubusercontent.com/frosch123/889b6478a6d5d7b10f89d9b014845331/raw/bf202561a30ab4e739d5c80e8fb0f2dff0182076/inspect_backtrace.png <- it's completely unusable for nml-generated stuff
21:56:51 <TrueBrain> (the first can be read in a different way, just double-checking)
21:57:47 <frosch123> industry instances have random bits, industrytypes have not
21:57:53 <frosch123> instance variables, not class variables
21:58:21 <TrueBrain> another dimension of ambiguity I didn't even consider yet :P
21:59:48 <TrueBrain> frosch123: my solution is simpler: do not allocate random bits! :D
22:00:04 <TrueBrain> and your gist is easier to read, but I still don't understand it :P
22:00:07 <TrueBrain> it is ... a lot :P
22:00:11 *** nielsm has quit IRC (Ping timeout: 480 seconds)
22:01:58 <TrueBrain> and if I read you right, I am unsure why you think I "went the NML" route :P Nothing in the RPN has any sense of a global space
22:03:00 *** supermop_work has quit IRC (Server closed connection)
22:03:02 <frosch123> my main point is: a compiler cannot allocate random bits automatically, like it can for temporary registers inside expressions
22:03:13 *** supermop_work has joined #openttd
22:03:29 <frosch123> there are just too few of them, so the grf author has to make a choice of how many bits to use for what
22:03:38 <TrueBrain> makes sense
22:04:15 <frosch123> similar how you have to allocate persistent storage, to ensure savegame compatibility
22:04:35 <frosch123> (technically the savegame compatibiltiy also applies to random-bits, but who cares when random bits change :p)
22:05:24 <TrueBrain> now to figure out why my compares don't work .. hmm
22:05:34 <wiscii> sorry for O.T again, has anybody here tried the factorio demo ?
22:05:49 <frosch123> half the channel has played the full game
22:05:57 <wiscii> lol :)
22:06:12 <frosch123> one of the factorio 3d artists was an active ottd community member
22:06:25 <wiscii> i can't get the demo to run .. some opengl error about framebuffer
22:06:45 <frosch123> this irc channel even pushed him to apply to the job originally :p
22:06:48 <wiscii> that's ^ why i'm asking ;-)
22:07:02 <wiscii> cool ottd ftw ;-)
22:07:17 <TrueBrain> hmmm ..... are rust HashMaps not ordered ... that would be hilarious ...
22:07:37 <TrueBrain> randomly seeded
22:07:44 <TrueBrain> yeah, that explains why this doesn't work :D
22:07:45 <frosch123> "hash"maps are rarely ordered
22:08:43 <TrueBrain> it is not like the docs say everywhere: arbitrary order
22:08:44 <TrueBrain> lol
22:08:50 <dwfreed> python dicts are ordered in recent versions, though
22:09:16 <frosch123> really?
22:09:20 <dwfreed> apparently the ordered dict implementation was faster than the previous dict implementation
22:09:26 <frosch123> there was OrderedDict before
22:09:32 <TrueBrain> frosch123: too many bugs :P
22:09:37 <TrueBrain> so now dict is ordered by default
22:10:40 <TrueBrain> ah, there is BTreeMap
22:10:42 <TrueBrain> that should work
22:11:37 <frosch123> "Changed in version 3.7: Dictionary order is guaranteed to be insertion order. "
22:11:52 <frosch123> that's not sorted
22:12:10 <frosch123> it's just not random
22:12:20 <TrueBrain> who was talking about sorted?
22:12:22 <TrueBrain> we talked about ordered ;)
22:12:54 <dwfreed> frosch123: https://docs.python.org/3/whatsnew/3.6.html#new-dict-implementation
22:12:55 <wiscii> meh .. turns out my GPU is too old
22:12:58 <TrueBrain> hmmm .. GitHub Codespaces sometimes act up ... it now refuses to port forward .. while it was working for the last 3 hours ..
22:14:16 <TrueBrain> okay, BTreeMap does what I need .. so that solves 1 issue :)
22:14:23 <TrueBrain> still doesn't work correctly :P
22:14:29 <frosch123> wiscii: yes, i also got a new gpu for factorio, but if you use an older beta version, something before 0.12 it has lower requirements
22:15:12 <frosch123> basically: after the steam beta release there was enough money to redo all graphics with 4 times the detail
22:15:39 <wiscii> frosch123: thanks, i'll try
22:17:14 <frosch123> wiscii: --help also shows a tons of graphics options, so you could experiment with them
22:17:17 <frosch123> no idea though
22:17:40 <wiscii> frosch123: lol, wish i hadn't deleted it now ;P
22:18:52 <TrueBrain> ah .. generated code keeps calling the procedure of the first iteration
22:19:02 <TrueBrain> that .. is not correct :D
22:28:23 <TrueBrain> that moment you fix a bug like that, and it still doesn't work :@
22:29:23 *** gelignite has quit IRC (Quit: Stay safe!)
22:34:57 *** twpol has quit IRC (Server closed connection)
22:35:08 *** twpol has joined #openttd
22:37:07 <TrueBrain> and now nothing works anymore, lolz
22:37:09 <TrueBrain> what did I break ....
22:37:27 <frosch123> hmm, for industries it may actually be easier to ignore the random storage and write random data in the regular persistent storage instead
22:37:40 <frosch123> that way you do not have that size limitation
22:39:45 *** Extrems has quit IRC (Server closed connection)
22:39:49 *** Extrems has joined #openttd
22:40:17 <TrueBrain> okay ... it now somewhat works ... still it sometimes returns 0 .. which should be impossible ... lol
22:41:15 <TrueBrain> @calc 56 / 16
22:41:18 <DorpsGek> TrueBrain: 3.5
22:41:44 <TrueBrain> @calc 56 / 14
22:41:44 <DorpsGek> TrueBrain: 4
22:42:14 <TrueBrain> @calc 80 / 14
22:42:14 <DorpsGek> TrueBrain: 5.714285714285714
22:42:18 <TrueBrain> wth is going on :P
22:43:43 <TrueBrain> @calc 80 / 12
22:43:43 <DorpsGek> TrueBrain: 6.666666666666667
22:43:48 <TrueBrain> this makes little sense :P
22:46:33 *** Wormnest has quit IRC (Quit: Leaving)
22:47:48 *** sla_ro|master has quit IRC ()
22:48:13 <TrueBrain> 0 >= 0 is false
22:48:13 <TrueBrain> lol
22:48:37 <TrueBrain> 0 == 0 too
22:51:40 <glx> broken cmp test ?
22:52:02 <TrueBrain> seems more like it jumps to the wrong cases
22:52:03 <frosch123> swapped if and else cases?
22:54:11 <TrueBrain> ha, yes, frosch123 goes home with the gold
22:54:17 <TrueBrain> stupid stack is in reverse order ofc
22:55:23 <frosch123> i had a coworker... when their code did not work, they checked with the debugger, which codepath was taken, and just inverted every if-condition until their test example gave the right result
22:55:39 <frosch123> luckily i got away for there :p
22:55:53 <TrueBrain> haha :D
22:55:59 *** esselfe has joined #openttd
22:56:55 <TrueBrain> hmm .. something is still kaduk
23:02:30 <TrueBrain> ah, and the next issue is that for "a b >" we wanted to keep it a > b
23:02:40 <TrueBrain> so I need to revert "a" and "b" from the stack :D
23:02:47 <TrueBrain> INCEPTION
23:02:58 <andythenorth> hmm if GS could plant river tiles....river course could change over time :P
23:03:03 <andythenorth> Oxbow lakes!
23:03:45 *** WormnestAndroid has quit IRC (Ping timeout: 480 seconds)
23:05:22 <TrueBrain> just for sanity check, if I want to do: a >= b
23:05:47 <TrueBrain> I do: 1A(a) \2cmp 1A(b), and check for result 1 or 2, right?
23:06:24 <glx> yes
23:06:36 <TrueBrain> so what is wrong .. hmm
23:06:40 <TrueBrain> tnx btw glx
23:06:50 <TrueBrain> rhs = stack.pop
23:06:52 <TrueBrain> lhs = stack.pop
23:06:55 <TrueBrain> else = stack.pop
23:06:57 <TrueBrain> if = stack.pop
23:07:07 <TrueBrain> that also matches my expectation ..
23:08:51 <TrueBrain> "<=" => Token::Operator(Operator::Compare(Compare::GreaterEqual)),
23:08:52 <TrueBrain> ......
23:09:20 <glx> GreaterEqual ?
23:09:20 <TrueBrain> tokenizer did a booboo
23:10:03 <glx> error is never where expected it seems
23:10:19 <frosch123> too much "reverse" :p
23:10:22 <TrueBrain> well, now it works correctly :D
23:10:38 <TrueBrain> so that were 3 errors stacked on top of each other ... which meant it worked in earlier examples just fine :P
23:10:58 <frosch123> https://gist.github.com/frosch123/0cbfb663d9045ac9f113113f291f812f#alternative-ignore-random-bits-and-just-use-regular-persistent-storage <- wrote down the new idea
23:11:19 <frosch123> it's amazing how much stuff in newgrf got deprecated by other sutff
23:11:28 <frosch123> it's almost like libc
23:11:47 <frosch123> or c++
23:12:14 <TrueBrain> ghehe
23:12:17 <TrueBrain> will read it in a sec :D
23:12:30 <TrueBrain> hmm ... when I change the NewGRF and load a savegame .. the callbacks are those of the new one, right?
23:12:31 <TrueBrain> hmm
23:13:27 <frosch123> yes
23:14:00 <TrueBrain> I think I totally broke something :D
23:15:09 <TrueBrain> frosch123: I still don't understand the rerandomize stuff, but it is also far too late to try to understand :D
23:16:08 <frosch123> triggers are callbacks, just with different syntax :p
23:16:57 <TrueBrain> so I return 0 on monthly and random change cb on industries
23:17:03 <TrueBrain> but I still see my production go up
23:17:13 <TrueBrain> how? :P
23:17:20 <TrueBrain> months where the 256 ticks hit more often?
23:17:33 <TrueBrain> it also drops back a bit later
23:17:50 <frosch123> TrueBrain: https://newgrf-specs.tt-wiki.net/wiki/Action0/Industries#Callback_flags_.2821.2C22.29
23:17:56 <frosch123> some callbacks need to be enabled
23:18:21 <TrueBrain> yeah, I did, ofc
23:18:25 <TrueBrain> otherwise they wouldn't work at all
23:19:09 <TrueBrain> but I have this industry, that is always 80
23:19:12 <TrueBrain> but sometimes goes to 90
23:19:15 <TrueBrain> and drops back to 80 later
23:19:17 <TrueBrain> and this repeats
23:19:27 <frosch123> what do you observe? does production go up significantly, or does it vary slightly?
23:19:40 <frosch123> there can be two causes for slight variations
23:19:40 *** andythenorth has quit IRC (Quit: andythenorth)
23:19:55 <frosch123> the 8 or 9 production cycles per month
23:20:07 <TrueBrain> yeah, okay, so it is expected that months fluctuate a bit
23:20:19 <frosch123> and second: industries have some kind of output buffer (property 14)
23:20:45 <frosch123> which i believe is meant to prevent the industry delivering a single unit every few ticks, so vehicles without full-load have a chance to leave
23:23:49 <TrueBrain> ah
23:23:50 <TrueBrain> tnx :D
23:23:56 <TrueBrain> grr, forgot refitting
23:23:58 <TrueBrain> that is so annoying :P
23:26:52 <TrueBrain> either I have a bug in the RPN, or FIRS industry is just slow :P
23:26:57 <TrueBrain> I need to play this with the original FIRS soon :)
23:29:04 <TrueBrain> can't get enough farm supplies in this farm to see a boost in production :P
23:31:31 <TrueBrain> I expected something like: if you deliver 2 cargoes to a secondary, you get a bonus, but I don't think that is a thing in FIRS :P
23:31:33 <TrueBrain> I might be wrong :)
23:33:38 <TrueBrain> @calc 8 * 16
23:33:38 <DorpsGek> TrueBrain: 128
23:34:17 <TrueBrain> for FIRS, "per month" info is rubbish :P
23:35:47 <frosch123> i think there is a bonus
23:36:12 <frosch123> if you deliver multiple cargos you get a better production ratio
23:36:24 <TrueBrain> didn't spot it in the pnml
23:36:28 <TrueBrain> but I might have misunderstood parts
23:37:28 <TrueBrain> ah, no, you are correct
23:37:46 *** Speedy` has quit IRC (Ping timeout: 480 seconds)
23:38:08 <TrueBrain> it is also in the RPN variant
23:38:11 <TrueBrain> still dreadfully slow :D
23:38:24 <frosch123> hmm, it's not like i remember either
23:38:31 <frosch123> firs changes more often than i play
23:40:05 <TrueBrain> hmm ... delivering stuff for a primary industry still not really working
23:40:16 <TrueBrain> the items end up in the station
23:40:43 <frosch123> the accepted items?
23:40:52 <TrueBrain> yeah
23:41:23 <frosch123> does the station window show changes in cargo acceptance?
23:41:44 <TrueBrain> no
23:42:04 <frosch123> transfer orders?
23:42:17 <TrueBrain> not even
23:42:22 <frosch123> if the station accepts it, it should not remain at the station
23:42:25 <TrueBrain> owh, I know why, it is in range of the industry producing
23:42:26 <TrueBrain> lol
23:42:34 <frosch123> haha :p
23:42:59 <TrueBrain> one of those weird quirks
23:43:30 <frosch123> yeah, if you do not set "no load", a random industry construction near your dropoff station can mess up your network
23:43:31 <TrueBrain> but, no change in production .. hmm
23:44:02 <frosch123> once your train loads the cargo from the destination station it is stuck with that cargo
23:44:11 <frosch123> it won't unload the same cargo at the origin station
23:44:17 <frosch123> you have to flush the system somehow
23:44:18 <TrueBrain> yup
23:44:23 <TrueBrain> always take a bit of time to spot that
23:44:27 <frosch123> like factorio pipes :p
23:44:31 <TrueBrain> but now why is my bonus cargo not working ..
23:45:36 <TrueBrain> I need to see a register value now :P
23:46:59 <frosch123> persistent register debugging :)
23:47:11 <TrueBrain> how do I see what is in a persistent register?
23:47:42 <frosch123> enable newgrf-debug-tool setting, open the industry window, click the bug icon in topright
23:47:51 <TrueBrain> ah, in the industry window
23:47:56 <TrueBrain> I was using the land info tool and go to parent
23:48:37 <frosch123> for 60+x vars you can click or double-click the row to set a parameter
23:48:44 <frosch123> (may not be obvious :p)
23:48:54 <TrueBrain> no, would not have guessed :D Tnx
23:49:29 <TrueBrain> hmm ... something is remaining empty, that should nto be empty ... why owh why
23:49:57 <TrueBrain> seems num_supplies_delivered i [] num_supplies_delivered i 1 + [] = is not really working
23:51:23 <frosch123> hmm, does it no longer show persistent storage?
23:51:34 <TrueBrain> it does for me now
23:54:04 <TrueBrain> okay, my range keyword didn't do what I was hoping .. now things do a bit more what they should :D
23:54:11 <TrueBrain> I love that the complexity of FIRS shows a lot of RPN bugs ;)
23:54:56 <TrueBrain> https://cdn.discordapp.com/attachments/337701432230805505/934596999234342962/unknown.png
23:54:57 <TrueBrain> https://cdn.discordapp.com/attachments/337701432230805505/934596999494373426/unknown.png
23:54:58 <TrueBrain> \o/
23:57:08 <TrueBrain> I think this new feature is kinda done ... guess tomorrow I give it another look ... slowly getting there :D
23:57:14 <frosch123> quick, save the game
23:57:15 <TrueBrain> for now: nn!
23:57:29 <frosch123> true, it's late
23:59:51 *** frosch123 has quit IRC (Quit: be yourself, except: if you have the opportunity to be a unicorn, then be a unicorn)