IRC logs for #openttd on OFTC at 2022-01-22
⏴ go to previous day
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:32:16 *** debdog has quit IRC (Ping timeout: 480 seconds)
04:04:08 *** D-HUND is now known as debdog
05:13:26 *** dale_ has quit IRC (Server closed connection)
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:28:09 <wiscii> fucking stupid phone and stereo system plugged into the fuckin internet
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: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: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:37 <Gustavo6046> it's pretty urbanized and industrialized
05:32:41 <Gustavo6046> especially near the Atlantic
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:34:03 <Gustavo6046> what do you mean by moon? elaborate
05:34:43 <wiscii> your continent is being slowly expunged by the planet
05:35:53 <Gustavo6046> depends on whether you're the entity being cured or the entity being cured OF :D
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:47 <Gustavo6046> I'm being silly too
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: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:27 <Gustavo6046> european? where's your EU citizenship? lol
05:38:56 <wiscii> my euro is up my fkn arse, right where it belongs!!!
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: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: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:43:27 <wiscii> Gustavo6046: they already did your country
05:43:47 <Gustavo6046> wiscii, who?! nobody shags MY country!
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: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: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:24 <Gustavo6046> proper-ganda, me-ganda and u-ganda
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: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: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:58 <Gustavo6046> like a cheat code? :D
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:46 <Gustavo6046> +§1,000,000 Simoleons
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: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: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 <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:28 <Gustavo6046> I'm not yet employed
06:03:35 <Gustavo6046> but don't worry about that
06:03:39 <Gustavo6046> I can do programming
06:03:49 <Gustavo6046> I just have to start freelancing or something
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:11:34 <Gustavo6046> wiscii, I'm not an astronaut
06:11:48 <Gustavo6046> by monetizing I mean like
06:11:53 <Gustavo6046> maybe even just as in donations
06:15:25 <wiscii> do what somebody else did and make money
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: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:37:49 <wiscii> i have worked in brazil
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: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:55:56 <wiscii> .|^|.......|^|.......................
07:01:17 <wiscii> it was a computer game in arcades
07:02:38 <wiscii> same era as space invaders
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: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: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:35:50 *** WormnestAndroid has quit IRC (Remote host closed the connection)
09:09:38 *** nielsm has quit IRC (Remote host closed the connection)
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:25:20 <andythenorth> is there a bit-shifting way to clamp uint32 to uint16 values?
09:25:44 <andythenorth> this is validation, not clamping
09:30:04 <andythenorth> seems the grf_local_id is uint8?
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: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: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: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:38 <andythenorth> let's see what happens if I pass something too big to it
09:46:51 <LordAro> silently truncated, probably
09:49:09 <andythenorth> should probably validate that and return invalid
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:56:33 <andythenorth> I looked at object ID in grf spec
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: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: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:27 *** dwfreed has joined #openttd
10:12:45 *** Gustavo6046 has quit IRC (Quit: Leaving)
10:22:10 *** frosch123 has joined #openttd
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: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:36 <frosch123> but the function returns an ObjectType?
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: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:41:03 <frosch123> so it's both for ScriptObjectType
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:05 <andythenorth> 'does not apply'
10:51:45 <andythenorth> think I did everything :P
10:51:51 <andythenorth> admin ratio to actual code ratio: about 8:1
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: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: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:46 <andythenorth> so python RPN generator, to a rust compiler :P
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: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: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:55 <andythenorth> do we care about matching the object manager order of args?
11:24:34 <_dp_> not rly imo, object manager order can be changed any time
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:56 <michi_cc> Computer doesn't care, you could write new ID in octal or binary or base26 or whatever :)
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: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:33:06 <michi_cc> But of course uint16 would work as well. More than one way to do it :)
11:33:35 * andythenorth must pick one :P
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?
12:11:45 <andythenorth> I'll do industry next
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
13:01:33 <peter1138> How long can I drag out my lunch?
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: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: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:40 <andythenorth> now you mentioned it
13:06:46 <peter1138> I was hungry due to cycle ride.
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: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:51:34 <andythenorth> AI libs and GS libs are separate on bananas yes?
14:15:38 <andythenorth> I think someone made a GS for time freeze already
14:16:08 <andythenorth> Technology Advancement
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)
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: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:45:36 *** andythenorth_ 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: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: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:52:15 *** jottyfan has quit IRC (Quit: jottyfan)
18:00:49 *** Wormnest 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: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: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:16 <frosch123> 3 is the old acceptance limit
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: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: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: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:06:45 *** toktik is now known as Guest183
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:28:07 <andythenorth_> oh so Lomo builds pylons?
19:28:14 <andythenorth_> according to discord
19:28:23 * andythenorth_ has not innovated then
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: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:43 <TrueBrain> I had a fixed-value of 1 for multiplier
20:04:02 <TrueBrain> right ... now I should have working industry
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: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: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: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: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:03:51 *** gelignite has joined #openttd
21:09:27 <TrueBrain> right .... how did I randomize .. I forgot ... :P
21:10:28 <TrueBrain> no clue what "triggers in low byte" means
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: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: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:47 <TrueBrain> we are talking 5F glx
21:18:53 <TrueBrain> I am told never to toch RandomAction2
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: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: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: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: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 <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: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: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: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:17 <TrueBrain> hmmm ..... are rust HashMaps not ordered ... that would be hilarious ...
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:50 <dwfreed> python dicts are ordered in recent versions, though
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:11:37 <frosch123> "Changed in version 3.7: Dictionary order is guaranteed to be insertion order. "
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: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: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: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:42:14 <DorpsGek> TrueBrain: 5.714285714285714
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: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: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:58 <andythenorth> hmm if GS could plant river tiles....river course could change over time :P
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:36 <TrueBrain> so what is wrong .. hmm
23:07:07 <TrueBrain> that also matches my expectation ..
23:08:51 <TrueBrain> "<=" => Token::Operator(Operator::Compare(Compare::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: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: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: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:20 <TrueBrain> months where the 256 ticks hit more often?
23:17:33 <TrueBrain> it also drops back a bit later
23:17:56 <frosch123> some callbacks need to be enabled
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: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: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: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:41:23 <frosch123> does the station window show changes in cargo acceptance?
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: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: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: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: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:59:51 *** frosch123 has quit IRC (Quit: be yourself, except: if you have the opportunity to be a unicorn, then be a unicorn)
continue to next day ⏵