Config
Log for #openttd on 16th January 2023:
Times are UTC Toggle Colours
10:35:07  *** Samu has joined #openttd
10:43:23  <dP> on citymania you own funded industries
10:43:36  <dP> meaning others can't take production
10:44:09  <dP> also secondary industries lock on the company that delivers first
10:44:28  <andythenorth[d]> is it good?
10:44:50  <andythenorth[d]> I almost only entirely play single player
10:44:56  <dP> the best way I know
10:45:02  <andythenorth[d]> except for silly games with scrubbles
10:46:25  <DorpsGek> [OpenTTD/OpenTTD] 2TallTyler commented on issue #10362: [Bug]: Bridges cannot not have a speed limit https://github.com/OpenTTD/OpenTTD/issues/10362
10:47:09  <dP> allowing competition on anything but primary industries leads to silly gameplay
10:48:10  <dP> even on primaries it's kinda meh but usually tolerable with a few more rules
10:50:47  <andythenorth[d]> thanks
10:50:59  <dP> problem with openttd in general is that when competing companies actively interact it quickly goes to shit
10:51:34  <andythenorth[d]> FIRS GS constraints then
10:51:45  <andythenorth[d]> - tune for single player, not MP, and definitely not competitive MP
10:52:03  <andythenorth[d]> - disables or shows warning if there are more than n towns / industries on the map
10:52:30  <andythenorth[d]> - try to avoid keeping state wherever possible
10:55:18  <scrubbles> openttd challenge spinoff was amazing back in the day, I haven't yet played any of the equivalent city building type gamescripts though
10:56:48  <scrubbles> it was just all of the ttd vanilla climate vehicles and industries put on the same map, a custom map generator which was very mountanious and the whole city claiming and growing mechanics, but it was amazing
11:01:24  <DorpsGek> [OpenTTD/OpenTTD] PikkaBird commented on issue #10362: [Bug]: Bridges cannot not have a speed limit https://github.com/OpenTTD/OpenTTD/issues/10362
11:02:49  <petern> andythenorth[d]: players seem to think they do already
11:05:29  <petern> Can GS influence which companies and deliver/take cargo from industries and houses?
11:05:43  <andythenorth[d]> I don't know if it can manipulate station rating
11:05:45  <andythenorth[d]> I'll look
11:05:46  <petern> Beyond exclusive contracts in towns.
11:06:16  <petern> I mean directly, not via messing with station rating.
11:06:16  <andythenorth[d]> searchable doxygen anyone? ๐Ÿ™‚
11:06:26  <andythenorth[d]> you mean like an actual API?
11:06:34  <andythenorth[d]> and not just trying to plaster things over the past?
11:06:36  <petern> Yes.
11:06:41  <andythenorth[d]> like it was designed?
11:06:49  <andythenorth[d]> not just doing our best with old stuff?
11:06:53  <andythenorth[d]> No
11:06:55  <petern> Can GS say industries will only accept cargo from another specific industry?
11:07:03  <andythenorth[d]> no
11:07:06  <andythenorth[d]> that would contracts
11:07:10  <petern> Yes.
11:07:13  <andythenorth[d]> or we'd try and make cdist do it
11:08:29  <petern> At some point we need to add things that might be useful to GS, because we don't want to change base gameplay.
11:08:35  <andythenorth[d]> although, reverting to the old way of doing things, there's no SetRating
11:08:44  <andythenorth[d]> which I had an interest in
11:09:02  <petern> "Just write a GS" is not helpful if the GS can't actually do things.
11:09:08  <andythenorth[d]> yair
11:09:26  <andythenorth[d]> hmm...no SetRating, goes it build statue instead?
11:09:36  <andythenorth[d]> do I have to GS to the company to build statue, not deity?
11:09:39  <andythenorth[d]> change hat
11:10:45  <andythenorth[d]> do we know where cargo packets originate?
11:10:56  <Eddi|zuHause> petern: problem with that is that GS is not callback driven, so you can't just hook into gameplay routines to override what they do
11:11:54  <petern> Well it should be, tbh.
11:12:28  <Eddi|zuHause> that probably needs a completely different interperter design
11:12:37  <petern> Probably.
11:12:53  <andythenorth[d]> if only we had some programmers
11:14:31  <petern> But it's still possible to add rules to the standard gameplay that by default do nothing different, but can be controlled by GS.
11:15:16  <andythenorth[d]> and we have a long time to do it
11:15:20  <andythenorth[d]> because the deadline is ages away
11:15:22  <Eddi|zuHause> sounds like a nice project of about 3 months
11:16:05  <petern> Eddi|zuHause: Making GS event driven is not really feasible, it would need a massive structural change, and most likely require GS to run on all multiplayer clients too.
11:16:30  <andythenorth[d]> eh what, don't we have to explain to me every 3 months that GS *is* event driven?
11:16:35  <Eddi|zuHause> well "3 months" :p
11:17:30  <Eddi|zuHause> andythenorth[d]: i think that meant a different kind of event
11:17:43  <andythenorth[d]> well event-driven seems to have 2 meanings ๐Ÿ˜›
11:17:51  <Eddi|zuHause> more like 8 :p
11:17:59  <andythenorth[d]> ok
11:18:05  <Eddi|zuHause> like every buzzword
11:18:07  <petern> Well, notifying any event has happened is a bit different from asking the GS what should happen during an event.
11:18:11  <andythenorth[d]> I first encountered event-driven in UIs
11:18:21  <andythenorth[d]> where it's kind of part of the deal to handle it in near-real-time
11:18:31  <andythenorth[d]> onMouseUp() -> but only in some future opcode
11:18:32  <andythenorth[d]> nope
11:18:50  <andythenorth[d]> words are hard
11:19:05  <petern> event-driven UIs is more about replacing ancient VB-style code that does everything in a single thread, so pressing a button freezes the process...
11:19:49  <Eddi|zuHause> andythenorth[d]: basically what a GS currently does is repeatedly observe the game state, and on certain conditions ("events") change the game state via commands
11:21:11  <andythenorth[d]> well we should figure out how to do more amusing things with it
11:21:34  <Eddi|zuHause> but a "callback" (also some kind of "event") would mean during recalculation of the game state the gamescript is asked what the new state should be
11:22:32  <Eddi|zuHause> NewGRFs are kinda like that
11:23:32  <Eddi|zuHause> but newgrfs are very limited in terms of what they can do during that callback
11:24:14  <Eddi|zuHause> which has both good and hysteric reasons on why that is
11:24:53  <petern> So, new NewGRF feature to handle GS callbacks?
11:25:03  <Eddi|zuHause> sure :p
11:25:28  <petern> GS a command to set some kind of persistent state, and then a callback can check that state when things happen...
11:26:18  <Eddi|zuHause> ... which comes back to the problem that you can't enforce a NewGRF and a GS to be loaded at the same time. in the correct matching versions of each other
11:26:35  <petern> So add a mechanism to do that.
11:26:36  <andythenorth[d]> frosch and TB have some partial idea about this, GS raising events
11:26:53  <petern> This isn't raising events as such
11:27:03  <andythenorth[d]> events, loaded term, sorry ๐Ÿ™‚
11:27:08  <andythenorth[d]> 'ask the newgrf for an answer'
11:27:09  <petern> This is GS changing state so that predefined CB can evaluate it.
11:27:25  <petern> I'm sure it's totally illegal, and will kill performance ๐Ÿ™‚
11:27:52  <andythenorth[d]> TB's idea for enforcing grf + GS together is just to wrap a little preset bundle around them somehow
11:27:59  <andythenorth[d]> so they're just associated in the content service and when loading
11:28:08  <andythenorth[d]> we already have grf deps and GS lib deps
11:28:44  <Eddi|zuHause> towns have storage, GS could put arbitrary data in that storage via command, the NewGRF could read that storage. but if the versions don't match the data could be garbage
11:28:57  <andythenorth[d]> stuff breaks ๐Ÿ™‚
11:28:58  <andythenorth[d]> shared memory
11:29:02  <andythenorth[d]> it's only a train game though
11:29:18  <andythenorth[d]> we added the rudiments of GRF interoperability to GS https://docs.openttd.org/gs-api/classGSNewGRF.html
11:29:26  <andythenorth[d]> which I am using in my test FIRS GS
11:29:30  <andythenorth[d]> no kittens have yet died
11:29:40  <andythenorth[d]> https://docs.openttd.org/gs-api/classGSNewGRFList.html
11:30:06  <andythenorth[d]> I found a log from 2012 where it turns out the idiot arguing that GS and grf couldn't work together...was me ๐Ÿ˜›
11:30:17  <andythenorth[d]> context was important though ๐Ÿ˜›
11:31:49  <petern> Eddi|zuHause: If only there was some way for GS to ensure a specific NewGRF was present...
11:31:58  <andythenorth[d]> if only we'd added that and tested it
11:32:02  <andythenorth[d]> and are using it ๐Ÿ˜›
11:32:20  <andythenorth[d]> how the user is supposed to add the right GS and right grfs....is a thing though
11:32:30  <andythenorth[d]> also versioning and so on
11:32:32  <petern> They can read the documentation?
11:32:35  <petern> I dunno...
11:32:54  <petern> Yes, ideally the GS could specify it and have it happen, but that's not ultimately required.
11:33:04  <petern> And on multiplayer servers you don't need to worry.
11:33:08  <andythenorth[d]> the only weird thing so far....due to [the many things I do not understand], load order means the grf can't know if the GS is present or not at map gen
11:33:24  <andythenorth[d]> hmm GS to generate your entire game?
11:33:33  <andythenorth[d]> not even joking, we added some UI scripting?
11:33:44  <andythenorth[d]> for title game
11:33:55  <petern> I think there was some idea to have tutorials or something.
11:34:02  <andythenorth[d]> like original TTD ๐Ÿ™‚
11:34:30  <petern> Like, all widgets with IDs are set up as enums in the scripting side.
11:34:45  <andythenorth[d]> does that include the grf window? ๐Ÿ˜›
11:34:50  <andythenorth[d]> /me has horrific idea
11:34:56  <andythenorth[d]> "YOU WILL PLAY MY WAY"
11:35:06  <Samu> not sure if this is a problem: AIBase.Rand() returns negative and positive values
11:35:26  <andythenorth[d]> it's a signed uint32
11:35:30  <andythenorth[d]> seems correct?
11:35:47  <petern> It's a signed int32 then?
11:35:54  <petern> Cos the u means unsigned...
11:36:19  <andythenorth[d]> oh ๐Ÿ˜›
11:36:25  <andythenorth[d]> I just read from the GS docs
11:36:42  <andythenorth[d]> ok hedge-homer time
11:37:02  <andythenorth[d]> I wasn't here
11:37:18  <Samu> https://docs.openttd.org/ai-api/classAIBase.html
11:37:46  <Samu> strange, it's uint32, then how can it become negative when printing it?
11:38:23  <petern> Printing it as signed.
11:38:59  <LordAro> today, Samu will learn about twos-complement
11:39:38  <petern> Judging by how long it took us to work out the OWNER_DEITY stuff for industry prospecting was broken, I reckon we can have cooperating GS/NewGRF in about 25 years.
11:39:48  <Eddi|zuHause> andythenorth[d]: i'm pretty sure GS-based map generators were discussed before
11:40:49  <petern> Hmm, does jQuery bypass standard javascript events...
11:41:42  <andythenorth[d]> petern: I think that's pessimistic
11:41:57  <andythenorth[d]> it was only 3 or 4 years to do Variants
11:42:03  <petern> ๐Ÿ˜ฎ
11:42:23  <Eddi|zuHause> are you sure?
11:42:32  <Eddi|zuHause> probably more like 12
11:42:58  <andythenorth[d]> I had a log somewhere
11:43:17  <petern> How the heck did VS Code autocomplete the entire rest of the line I was writing...
11:43:24  <andythenorth[d]> it knows what you want
11:43:49  <petern> It completed addEventListener('click', <nameOfFunction>)
11:44:09  <TonyPixel> Well thatโ€™s easy
11:44:36  <TonyPixel> Thatโ€™s literally what you want from ide
11:45:41  <TonyPixel> Also, bananas newgrf page has its table out of bounds
11:47:00  <andythenorth[d]> yeah
11:47:04  <Samu> found something https://github.com/OpenTTD/OpenTTD/blob/master/src/script/squirrel_helper.hpp#L51
11:47:04  <andythenorth[d]> who wrote that html ๐Ÿ˜›
11:47:12  <Eddi|zuHause> andythenorth[d]: "[Dienstag, 20. April 2010] [21:00:16] <frosch123>       Terkhen: something about  "Refit options" on the left, and "Variants" on the right?" <-- earliest reference to "variant" in this context i could find within 5 minutes
11:47:21  <Samu> uint32 is converted to int32?
11:47:22  <andythenorth[d]> wow
11:47:38  <andythenorth[d]> yeah I remember forum discussions about actual variants with buttons etc
11:48:00  <andythenorth[d]> doing it by just using vehicle IDs was a later idea ๐Ÿ™‚
11:48:05  <LordAro> Samu: as far as the bits are concerned, uint32 & int32 are identical
11:49:08  <LordAro> TonyPixel: https://github.com/OpenTTD/bananas-frontend-web/issues ;)
11:50:30  <Eddi|zuHause> andythenorth[d]: i'm pretty sure there is a linear path between that discussion and the growth of the idea that it should be separate IDs
11:50:48  <andythenorth[d]> I can't find the screenshot in forums
11:52:24  <andythenorth[d]> it had a row of small sprites for livery variants
11:52:31  <andythenorth[d]> nvm
11:52:40  <andythenorth[d]> petern: I reckon 18 years
11:52:52  <andythenorth[d]> which will be nice, just in time for when I want to retire and have a hobby
11:53:12  <Samu> I wonder what RandRange will print if i put a high enough number
11:53:27  <petern> TonyPixel: Yeah but how would it know what function I wanted it to refer to?
11:54:03  <petern> Can VS Code code OpenTTD for me yet?
11:55:51  <LordAro> Samu: please save everyone some time and go read up on how computers represent numbers
11:56:02  <LordAro> https://en.wikipedia.org/wiki/Two%27s_complement
11:56:05  <LordAro> start here
12:00:30  <Samu> https://docs.openttd.org/ai-api/classAIBase.html#ab97cfd20a22e0f9d5718468b0d327eda - return a random value between 0 and max - 1. guess it won't work that well
12:01:08  <glx[d]> petern: GS can set exclusive supplier and consumer, but it's for companies, not other industries
12:01:48  <petern> Interesting
12:01:49  <Samu> well, the documentation says between 0 and max everywhere, but it's not true
12:02:03  <Samu> fix documentation or? fix code?
12:02:06  <glx[d]> It is true, it's just a display issue
12:02:12  <petern> So it's possible for servers to enforce their stupid "no stealing" rules if they expended a bit of effort on it.
12:02:55  <glx[d]> And probably squirrel only knowing int
12:06:13  <Eddi|zuHause> is that just me that gets weird certificate warnings on the forums occasionally about mismatched URL?
12:09:51  <petern> Yes.
12:10:28  <petern> If you check the network history in developer mode, maybe it shows it accessing a different url?
12:10:45  <Eddi|zuHause> that sounds too annyoing to check
12:11:06  <Eddi|zuHause> but it happened like 3 times in the last 2 days
12:11:13  <petern> More annoying that weird certificate warnings?
12:11:32  <Eddi|zuHause> at the current rate, yes
12:16:30  <petern> Could be spyware intercepting your traffic ๐Ÿ™‚
12:18:17  <Eddi|zuHause> as far as i can tell, it's happening when i click on the "new posts" icon
12:18:45  <DorpsGek> [OpenTTD/OpenTTD] PikkaBird opened issue #10363: [Bug]: Setting "Distribution mode for the ARMOURED cargo class" description gives bad advice https://github.com/OpenTTD/OpenTTD/issues/10363
12:20:58  <petern> Uh, where is the "new posts" icon?
12:21:19  <Eddi|zuHause> on a thread with new posts in it, left of the topic title
12:21:55  <petern> Ooh, tiny.
12:26:56  <TallTyler> Pruple: #10363 is probably a good first PR if youโ€™re interested ๐Ÿ™‚
12:27:15  <TallTyler> All that needs changing is `english.txt`
12:27:45  <Eddi|zuHause> TallTyler: eagerly trying to work in the "new guy"? :p
12:27:45  <TallTyler> Or if you suggest an alternative text someone else can copy and paste and make a PR
12:28:46  <FLHerne> TallTyler: Pruple *is* PikkaBird unless I'm seriously confused :p
12:29:02  <TallTyler> Yeah thatโ€™s what I mean
12:29:13  <Eddi|zuHause> i'm pretty sure everybody relevant knows that :p
12:29:22  <FLHerne> oh, I get what you're saying now
12:29:30  <Pruple> eh, my opinion is suggesting turning on cargodist at all is bad advice, so I'm probably not the one to rewrite it. ๐Ÿ˜›
12:29:54  <petern> Heresy!
12:30:01  <FLHerne> TallTyler: you commented on the bridge speed thing, are you doing that atm?
12:31:33  <TallTyler> โ€œPRs acceptedโ€ often isnโ€™t a useful thing to tell people who arenโ€™t programmers but are nice enough to report bugs, but changing an English string is super easy, and I think Pikka mentioned learning to contribute a few weeks ago. I wasnโ€™t trying to be passive-aggressive, just gently encourage. ๐Ÿ™‚
12:31:36  * petern considers changing the names of the font size settings, to reduce <https://www.tt-forums.net/viewtopic.php?p=1257582#p1257582>
12:32:27  <TallTyler> FLHerne: Not presently, but was thinking about it later today. If you want to do it, feel free.
12:32:51  <FLHerne> I'll see if it's as trivial as it feels like :p
12:34:07  <petern> insertAdjacentHTML() is a lot easier/lazier than fiddling with templates and DOM objects...
12:35:50  <TallTyler> Iโ€™ll tackle the Cdist help string then, because I do use the feature ๐Ÿ™‚
12:36:27  <Eddi|zuHause> i think i played more multiplayer games than games in subtropic
12:42:25  <andythenorth[d]> glx[d]: hmm if we had a graph of 'these are your industries'
12:42:32  <andythenorth[d]> tree / graph /s
12:43:13  <petern> "your"?
12:43:21  <petern> For players?
12:43:29  <andythenorth[d]> company
12:43:42  * andythenorth[d] half idea, still thinking
12:43:53  <andythenorth[d]> if your company has suppliers and sinks per cargo
12:44:00  <andythenorth[d]> you can't deliver to the sink unless there's a supplier
12:44:04  <petern> Of course, you don't own them... but you probably mean serviced by
12:44:16  <andythenorth[d]> exclusive use or something
12:44:45  <andythenorth[d]> my brain has left-turned into graphviz terms, because FIRS cargo flow charts
12:45:03  <andythenorth[d]> hmm your company could get exclusive rights to coal?
12:45:11  <andythenorth[d]> or something
12:45:39  <andythenorth[d]> you are The King Of Coal
12:46:23  <Eddi|zuHause> andythenorth[d]: how about hostile takeover of a company?
12:46:32  <Eddi|zuHause> err... industry
12:47:17  <andythenorth[d]> annual bidding
12:49:23  <andythenorth[d]> contract renegotiation
12:49:25  <andythenorth[d]> bribes
12:49:26  <andythenorth[d]> hmm
12:49:36  <andythenorth[d]> multiplayer, but one person is actually the game master?
12:49:45  <andythenorth[d]> and represents the industries?
12:50:03  <andythenorth[d]> /me never player dungeons and dragons, is game master a thing there?
12:50:41  <Eddi|zuHause> 8 players are honest company leaders and 2 are saboteurs, and each year one is voted out :p
12:50:58  <andythenorth[d]> you had Traitors too?
12:51:11  <Gwyd> Industries decide who they want goods from/to
12:51:31  <Gwyd> You merely negotiate transport terms/rates
12:51:47  <andythenorth[d]> we connect with chatGPT?
12:51:58  <Gwyd> If you don't move enough fast enough you don't get paid
12:51:59  <Eddi|zuHause> GSGPT?
12:53:15  <andythenorth[d]> hmm, like that, but you negotiate payment rates with one of the cats from the giant cats grf
12:53:31  <andythenorth[d]> grf objects, but with chat capability
12:53:41  <andythenorth[d]> NPCs?
13:01:11  <Eddi|zuHause> AIGPT? that sounds redundant
13:01:18  <CplBurdenR3294> Eddi|zuHause: Does that mean I am relevant? ๐Ÿ˜„ cool! ๐Ÿ˜›
13:01:42  <Eddi|zuHause> CplBurdenR3294: that's probably an invalid reversal
13:01:51  <CplBurdenR3294> Oh most definitely
13:10:20  *** WormnestAndroid has joined #openttd
13:16:03  <andythenorth[d]> lunch?
13:17:40  <petern> I had mine, but it wasn't a salad, as that had, er, gone runny. Oops.
13:18:04  <andythenorth[d]> happens
13:18:19  <andythenorth[d]> ok, it's like prospecting, or random industry placement, but it can be constrained to a sector of the map
13:18:34  <andythenorth[d]> implementation blah blah, but could be an x1, y1, x2, y2 box
13:18:35  <petern> Also it's going to rain, it's 3ยฐC and I don't feel like going for a lunch-time cycle like I was thinking about last night.
13:18:44  <andythenorth[d]> or it could be radius of an xy
13:19:12  <Eddi|zuHause> "radius" in manhattan distance?
13:19:12  <andythenorth[d]> GS can do it, but also grf can hint to game somehow in map gen
13:19:16  <petern> ๐Ÿ˜„
13:19:23  <CplBurdenR3294> Time is an illusion, lunch time doubly so - Douglas Adams
13:19:27  <andythenorth[d]> we agreed that implementation design is best not left to me ๐Ÿ˜›
13:20:04  <andythenorth[d]> I have 2 cases so far
13:20:09  <Eddi|zuHause> it's weird how openttd randomly decides which of the 3 major distances is used
13:20:16  <andythenorth[d]> 1) co-locating industries in a grf, which somewhat works, but can fail
13:20:45  <andythenorth[d]> because the target tile is entirely random, so distance constraints to another type can hit the cap on number of attempts
13:20:47  <petern> What was I working on before I got called...
13:21:06  <andythenorth[d]> 2) GS can build industries randomly, but in a specific region of the map
13:21:23  <andythenorth[d]> alternative ideas / parameters: constrain to a town
13:22:01  <andythenorth[d]> I could write my own GS version of 'place an industry randomly' but it seems quite unwise
13:23:00  <Samu> should I bother with this? https://github.com/SamuXarick/OpenTTD/commit/33d63d91107f17ced3650983863029c1b33e9003
13:24:23  <Samu> how many scripts am I gonna break if they expect the broken behaviour?
13:28:38  <TallTyler> Uh
13:29:06  <TallTyler> Thatโ€™s not really a โ€œfixโ€
13:30:00  <FLHerne> yeah
13:30:08  <LordAro> it's not broken behaviour
13:30:35  <petern> 17ยฐC indoors is not comfy. Maybe I should burn some money...
13:30:47  <andythenorth[d]> I am trading disposable income for warmth
13:30:48  <FLHerne> it's not even clear to me what it's supposed to do
13:31:00  <andythenorth[d]> and I've sold all my fossil fuel stocks and shares ๐Ÿ˜ฆ
13:31:08  <andythenorth[d]> why is negative random bad?
13:31:15  <FLHerne> doc says it returns "A random value between 0 and MAX(uint32)."
13:31:27  <LordAro> FLHerne: Samu has just discovered twos complement, but doesn't understand what that entails
13:31:29  <FLHerne> and before the change it returns a uint32
13:31:49  <LordAro> and as usual, the rest of us may as well be on mute
13:33:38  <andythenorth[d]> let's invent GS lolz instead
13:35:30  <Eddi|zuHause> is that where the GS puts bold letters on a map trying to be funny?
13:35:39  <andythenorth[d]> that ought to be supported
13:35:46  <andythenorth[d]> text to object-ascii-art
13:36:00  <andythenorth[d]> it can place objects
13:36:16  <andythenorth[d]> just needs a transform from glyphs to tiles
13:36:31  <andythenorth[d]> there's probably some library that can do that for e.g. segment displays or something
13:36:39  <FLHerne> is the problem that Squirrel only has signed ints and it gets blindly converted?
13:36:52  <andythenorth[d]> is the problem that nobody knows what the spec is? ๐Ÿ˜›
13:36:57  <andythenorth[d]> might not be
13:37:02  <FLHerne> no, the spec is pretty clear for once
13:37:03  <andythenorth[d]> is there no problem? ๐Ÿ˜ฎ
13:37:20  <andythenorth[d]> anyway
13:37:33  <LordAro> http://squirrel-lang.org/doc/squirrel2.html#d0e463
13:37:34  <andythenorth[d]> https://cdn.discordapp.com/attachments/1008473233844097104/1064538911201820712/image.png
13:37:34  <andythenorth[d]> my GS prospects for extra farms after game start
13:37:38  <Eddi|zuHause> i have no problem. well... not this problem :p
13:37:41  <andythenorth[d]> there are gameplay and eye candy reasons
13:37:54  <andythenorth[d]> I don't mind it clustering
13:38:11  <andythenorth[d]> but it would be nice to divide the map into quadrants, and force a farm into every quadrant
13:38:15  <andythenorth[d]> allowing for water
13:38:32  <andythenorth[d]> alternatively to force a farm within n tile distance of each town
13:38:38  <FLHerne> LordAro: ah
13:39:00  <andythenorth[d]> I can write an elaborate command-eating GS method to do the things above
13:39:10  <andythenorth[d]> but it will be slow and error prone because I wrote it
13:39:34  <Eddi|zuHause> andythenorth[d]: designate each town as "farming", "mining", "manufacturing" with different likelyhood of industries?
13:39:39  <andythenorth[d]> yes
13:39:55  <andythenorth[d]> or 'coal mining region' etc
13:40:05  <Eddi|zuHause> maybe not 0, but much lower
13:40:11  <andythenorth[d]> there's lots of unmeetable edge cases like 'farms, but above snowline'
13:40:12  <andythenorth[d]> but eh
13:40:14  <Samu> breaks regression
13:40:31  <andythenorth[d]> I can actually do regions in grf quite reasonably
13:40:40  <andythenorth[d]> it works, Tyler showed a way and I've copied it
13:41:06  <andythenorth[d]> but GS doesn't get the proposed xy location of a new industry before it's built, unlike grf
13:41:08  <Eddi|zuHause> but GS can look at the shape of the map, and determine whether the regioun around the town is flat, hilly, water, ...
13:41:19  <petern> 58 lines with jQuery, 83 lines with javascript. Improvement, right?
13:41:27  <andythenorth[d]> depends how much you hate jquery
13:41:54  <andythenorth[d]> most of the jquery lines I see are something like
13:41:54  <andythenorth[d]> `});`
13:42:11  <Eddi|zuHause> what's that smilie mean?
13:42:24  <andythenorth[d]> it means you accidentally made a career mistake and have to write jquery
13:42:43  <Eddi|zuHause> "winky double chin drooling, no combover"
13:43:11  <andythenorth[d]> It's bad form to go around hating on languages, but javascript burnt me early ๐Ÿ˜›
13:43:35  <andythenorth[d]> whereas disliking perl is just pure blind irrational prejudice
13:44:21  <Eddi|zuHause> perl is just fancy regex
13:44:56  <Eddi|zuHause> and regex is write-only
13:45:35  <petern> andythenorth[d]: Lots of my javascript is like that...
13:45:56  <Samu> https://github.com/OpenTTD/OpenTTD/compare/master...SamuXarick:OpenTTD:script-random-values?expand=1#diff-8648c291a66295a5733e63097d9ab4761676f87d5cdc956d546bc5c3ccef84ba
13:46:03  <Samu> all positive values!
13:46:40  <andythenorth[d]> I'm a positive value
13:46:45  <andythenorth[d]> no wait, I'm Spartacus
13:47:13  <Samu> and the already positive remained positive
13:47:17  <Samu> the same
13:47:33  <LordAro> hmm
13:47:38  <LordAro> Samu: have you tried it with in32 instead?
13:47:40  <LordAro> int32*
13:57:00  <glx[d]> IIRC squirrel integers are 64bit, so int32 should be fine
13:58:09  <Samu> let me try int32
14:00:46  <Samu> regression doesn't fail with int32, but that means it contains negative values
14:02:10  <Samu> gonna try something different
14:07:43  <Samu>   GetBridgeID():        -1
14:07:43  <Samu>   GetBridgeID():        4294967295
14:07:45  <Samu> i see
14:07:59  <Samu> the other way to fix this is a bit too drastic
14:10:44  <Samu> https://github.com/OpenTTD/OpenTTD/commit/c00e13a6da6fac2bb20b97efbeeb24bee6dac760
14:11:50  <glx[d]> Should be fixable somewhere in SQConvert area
14:13:43  <Samu> GetBridgeID() is relying on broken behaviour :)
14:14:16  <glx[d]> uint32 is directly casted to int32 there, and that could be changed to map uint32 to the positive side of int64
14:14:47  <glx[d]> But a lot of things will break
14:15:21  <glx[d]> As many -1 will become big positive values
14:16:32  <andythenorth[d]> GS option to shrink a town?
14:16:43  <andythenorth[d]> randomly removed building
14:17:02  <glx[d]> Remove town main tile
14:18:45  <pickpacket> Maybe add this to the game?  https://lounge.warmedal.se/uploads/90faee311b074c4f/65367E3C-8107-43F7-B46F-C7F9555EE40B.png
14:21:50  <Eddi|zuHause> are the doctors or the apples superconducting?
14:22:09  <LordAro> at what point does the cost of replacing the apples every day become prohibitive?
14:22:29  <Eddi|zuHause> sounds like a high maintenance task, so immediately
14:23:03  <andythenorth[d]> robot can do it
14:23:11  <andythenorth[d]> but does the robot run on apples or not?
14:24:49  <glx[d]> But that will only produce levitation not moving the train
14:24:59  <andythenorth[d]> angle the doctors
14:26:36  <andythenorth[d]> then cut the apples in half
14:26:43  <andythenorth[d]> and put them on rotating wheels
14:26:57  <andythenorth[d]> the repulsion will be greater for 50% of the cycle
14:27:23  <Eddi|zuHause> is the growth of enough apples sustainable to replace them every day?
14:27:32  <andythenorth[d]> vertical apple farms
14:27:34  *** WormnestAndroid has quit IRC
14:27:36  <andythenorth[d]> in space
14:27:42  *** WormnestAndroid has joined #openttd
14:27:53  <andythenorth[d]> it's amazing how much free energy you can get if you invest in it
14:27:57  <Eddi|zuHause> and should we try for larger or smaller apples?
14:27:59  <LordAro> what if we swapped it over - attach the apples to the trains instead
14:28:05  <Samu> i tried (int64)res, it still returns a big 4294967295
14:28:14  <Samu> for BridgeID
14:28:38  <andythenorth[d]> hmm so put the doctors in the trackbed?
14:28:42  <Eddi|zuHause> LordAro: means we need to invest in increasing the density of doctors in non-urban environments
14:31:35  <LordAro> andythenorth[d]: we could ensure they stay in the right position with some sort of metal poles
14:32:24  <andythenorth[d]> if the apples are rotating could they just engage with the train to move it forward?
14:32:31  <andythenorth[d]> or is that too much apple friction?
14:32:52  <andythenorth[d]> like a physical interface
14:33:34  <andythenorth[d]> hmm is electromagnetism a physical interface?
14:33:41  <andythenorth[d]> it's physics
14:33:46  <andythenorth[d]> but it doesn't touch
14:33:57  <Eddi|zuHause> it's not a mechanical interface
14:36:00  <andythenorth[d]> is it a simple machine?
14:36:36  <Eddi|zuHause> define "simple", or "machine"?
14:36:58  <andythenorth[d]> https://en.wikipedia.org/wiki/Simple_machine
14:37:08  <andythenorth[d]> mechanical
14:37:46  <Eddi|zuHause> then not
14:42:59  <andythenorth[d]> ok so
14:43:30  <andythenorth[d]> GS wouldn't be able to handle things like 'game wants to construct an industry of type n at location x, y'
14:43:40  <andythenorth[d]> because that needs effectively real time
14:43:59  <andythenorth[d]> but GS could pre-define a set of tile ranges in which industry type n is allowed, or not
14:44:04  <andythenorth[d]> and update that periodically
14:46:02  *** HerzogDeXtEr has joined #openttd
15:09:45  *** nielsm has joined #openttd
15:17:20  <petern> That's kinda where I was going with GS -> data -> NewGRF CB.
15:37:59  <andythenorth[d]> ok so some structures
15:38:05  <andythenorth[d]> in the savegame
15:39:17  <andythenorth[d]> hmm
15:39:28  <andythenorth[d]> petern: ever play Repton?
15:40:49  * andythenorth[d] trying to remember games that had a contagion type effect
15:40:55  <andythenorth[d]> where the map got filled in by BAD STUFF
15:42:04  <andythenorth[d]> we could call it neverending story
15:42:11  <andythenorth[d]> map is gradually removed ๐Ÿ˜›
15:43:05  <petern> Did I play Repton...
15:43:10  <petern> Did I play Repton...
15:43:17  <petern> Did I play Repton...
15:44:02  <petern> Repton (and the sequels) were my THE game.
15:44:18  <andythenorth[d]> there was a world editor in at least one of them
15:44:25  <andythenorth[d]> I spent more time building worlds than playing the game
15:44:33  <petern> Repton 3 had the editor.
15:44:36  <andythenorth[d]> one edition had some kind of spreading virus thing in it
15:44:48  <petern> Repton Infinity had the REPTOL scripting language.
15:44:53  <andythenorth[d]> oo
15:45:06  <andythenorth[d]> what was that other game with a virus?
15:45:08  <andythenorth[d]> Virus?
15:45:13  <andythenorth[d]> the Risc OS demo thing?
15:45:44  <petern> Lander/Zarch?
15:45:53  <petern> Dunno about that, never played that much.
15:46:13  <petern> <http://bbcmicro.co.uk/jsbeeb/play.php?autoboot&disc=http://bbcmicro.co.uk/gameimg/discs/3571/Disc999-ReptonInfinity.ssd&noseek>
15:46:23  <andythenorth[d]> https://www.google.com/search?q=risc+os+Lander+game&source=lnms&tbm=vid&sa=X&ved=2ahUKEwjswvnJt8z8AhWWh1wKHTNBBr8Q_AUoAnoECAEQBA&biw=1553&bih=968&dpr=2#fpstate=ive&vld=cid:efde4e38,vid:mFwpsb75omg
15:46:54  <DorpsGek> [OpenTTD/OpenTTD] 2TallTyler opened pull request #10364: Fix #10363: CargoDist setting helptext shouldn't suggest symmetric distribution for diamonds in subtropic https://github.com/OpenTTD/OpenTTD/pull/10364
15:47:20  <petern> I've no idea how to use the editors now though.
15:47:46  <andythenorth[d]> ok so some kind of structures that don't have to be tied to historical gameplay
15:47:50  <andythenorth[d]> or the map array?
15:49:20  <andythenorth[d]> /me wonders about a .... Tech Tree for vehicles ๐Ÿ˜ฎ
15:50:28  <Eddi|zuHause> "tech tree" is a flawed concept
15:50:38  <andythenorth[d]> possibly
15:50:39  <Eddi|zuHause> tech doesn't work that way
15:51:59  <TallTyler> In real life or in games?
15:53:30  <andythenorth[d]> I never played anything like civilisation
15:53:54  <andythenorth[d]> Railroad Tycoon series sometimes had engine unlock as a reward for completing micro-challenges I think
15:54:00  <Eddi|zuHause> TallTyler: Civ's "techtree" hasn't been a tree since like civ3 or so
15:54:09  <andythenorth[d]> tech tree in tank games are different, they're just tiers of play
15:54:11  <andythenorth[d]> and lots of grinding
15:54:25  <CplBurdenR3294> It's always struck me that tech trees in transport games are somewhat backwards to reality
15:54:51  <TallTyler> I guess it's more of an interconnected maze than a tree
15:54:52  <CplBurdenR3294> In reality, vehicles exist because of routes. Companies have specific routes they need vehicles for, and put out tenders for those designs (or design them themselves)
15:55:22  <Eddi|zuHause> actually, it has never been a tree, it was always "depends on A and B" even in civ1
15:55:25  <CplBurdenR3294> in games, invariably, your routes are defined by what the vehicles you have are capable of doing. You can't alter those vehicles, so, your routes have to change
15:56:09  <Samu> GetBridgeID seems to be the only case where -1 becomes big number
15:56:47  <LordAro> Samu: i am certain there are others, they're just not tested sufficiently
15:56:47  <Samu> might have missed a few return -1's
15:57:02  <dP> tech directed acyclic graph doesn't sound that well :P
15:57:56  <Samu> all the other return -1 i could find are returning either int, or int32 or int64 or Money
15:58:16  <Samu> need to do a better search though
15:58:42  <LordAro> Samu: they're likely INVALID* enum values
15:58:48  <CplBurdenR3294> A transport game with some sort of design dynamic, a bit Hearts of Iron esque? where you could put points into say tractive effort, or speed, or reliability, at the cost of something else (including, well, sheer cost) would be interesting
15:59:02  <TallTyler> Modular vehicles?
15:59:14  <CplBurdenR3294> "I need a heavy passenger engine at the moment for this particular route, so lets design one"
15:59:50  <Eddi|zuHause> inventory slots for your manager where you can put magical amulets and rings giving you + and - stats :p
16:00:20  <Eddi|zuHause> ... anyway, those are more like "policies" rather than "techs"
16:00:21  <TallTyler> At least in the US, smaller railroads did a lot of "bigger railroad is buying a bunch of these, let's get some too and save on design fees"
16:00:53  <TallTyler> And diesel freight locomotives are pretty off-the-shelf
16:01:18  <TallTyler> It was mostly steam engines and transit equipment that gets designed per-customer, I think
16:01:45  <CplBurdenR3294> I've actually thought that having Hearts of Iron type policies, ministers etc for a transport game would be interesting too. "Oh you're playing the Midland? Small Engine Policy, so, bonus to maintenance but debuff to engines over a certain wheel arrangement or tractive effort"
16:01:47  <Eddi|zuHause> TallTyler: european railways were mostly state-run by the time of diesel engines
16:02:07  <TallTyler> What's really backwards is technology being predetermined by real-world history, when the game takes place in an alternate history
16:02:23  <CplBurdenR3294> TallTyler: That's my point yes
16:02:43  <TallTyler> CplBurdenR3294: Iron Horse probably has enough engines where a GS could do this
16:02:45  <CplBurdenR3294> Real world routes determining what locos exist, when those routes may never exist and therefore those requirements not existing for those locos to appear
16:02:58  <TallTyler> Yeah, exactly
16:03:06  <Eddi|zuHause> TallTyler: real history has some annoying gameplay limiting factors like the "war gap"
16:04:19  <TallTyler> Maybe we need more granular control over production multipliers beyond "everything is half during Recessions" and allow GS to control it, so we can have a "Real-world events GS"
16:04:19  <Samu> how do i use reg ex
16:04:28  <CplBurdenR3294> You don't get any heavy freight engines for a bit because, historically that region/countries coal mines went into a massive decline. Of course, in game, not so much, but you're still buggered by that historical hiccup and forced to deal with a historical issue that is occurring to your ahistorical railway. Your heavy coal trains that shouldn't exist, do
16:04:49  <TallTyler> Railroad Tycoon 3 had real-world event-driven production changes built into its economy
16:04:58  <Samu> wanna search for anything containing 'return' and '-1' in the same line
16:05:03  <CplBurdenR3294> I did suggest a Railroad Tycoon "Real World Events" GS some years back and it got universally shunned
16:05:17  <Samu> because the Bridge one was not 'return -1', it was 'return (BridgeID)-1'
16:05:18  <CplBurdenR3294> "We have enough events going on that no-one wants this in their game"
16:05:33  <petern> regex search for "return.*-1"
16:06:27  <TallTyler> Interesting, Recessions use `MoveGoodsToStation()` to control production, so it works regardless of NewGRFs like FIRS that do entirely custom production mechanics
16:06:37  <Samu> thanks
16:06:41  <Brickblock1> CplBurdenR3294: you might be able to solve this by using multiple sets form different parts of the world
16:07:03  <CplBurdenR3294> I attempted to make it myself but frankly even getting one event to fire with Squirrel was confusing as buggery so I gave up. No-one was willing to assist because it wasn't something anyone was interested in, so, that was that
16:07:41  <CplBurdenR3294> Brickblock1: True, but, if I am trying to have a vaguely historical game, it presents issues beyond merely vehicle sets. But, thats a problem with trying to do historical stuff in a sandbox I guess
16:08:04  <TallTyler> I suspect slowing down time would alleviate a lot of the "time goes so fast historical events are meaningless and by the time you're done adapting, it's over" problem
16:08:15  <petern> NoDL++
16:09:06  <TallTyler> I should work on that today
16:09:24  <petern> Civilization time? Early game passes very quickly, later game slows down...
16:10:07  <TallTyler> Does Civ do that? It would make sense
16:10:13  <petern> Yup
16:10:21  <petern> 4000BC moves quickly...
16:14:35  <TallTyler> GS can change settings, so that should be possible to write
16:15:05  <Samu> aha, found a bug
16:16:39  <Samu> https://github.com/OpenTTD/OpenTTD/blob/750d89d37b372b808e616091913f7e48f6d4d0ea/src/script/api/script_group.cpp#L186-L188
16:16:50  <Samu> return -1, as uint32
16:18:56  <LordAro> well, the function never specifies the "invalid" return value
16:19:11  <LordAro> so 0xFFFFFFFF is just as good
16:19:48  <andythenorth[d]> Hmm
16:20:14  <andythenorth[d]> Whatโ€™s the engine ID limit now? 1m?
16:21:25  <petern> Probably 64000.
16:21:46  <LordAro> 1 million dollars โ˜
16:22:19  <andythenorth[d]> Could do a lot of engines in grf with minor stats differences
16:22:30  <andythenorth[d]> Let GS decide which you get
16:22:58  <TallTyler> "Western Region"
16:23:03  <andythenorth[d]> Basically, generative vehicles but precomputed
16:28:06  <DorpsGek> [OpenTTD/OpenTTD] 2TallTyler commented on pull request #8492: Fix: Don't allow towns to terraform certain floodable tiles https://github.com/OpenTTD/OpenTTD/pull/8492#pullrequestreview-1250394597
16:29:27  <DorpsGek> [OpenTTD/OpenTTD] 2TallTyler commented on issue #10275: [Crash]: crash closing dialogue box https://github.com/OpenTTD/OpenTTD/issues/10275
16:29:30  <DorpsGek> [OpenTTD/OpenTTD] 2TallTyler closed issue #10275: [Crash]: crash closing dialogue box https://github.com/OpenTTD/OpenTTD/issues/10275
16:33:23  *** keikoz has joined #openttd
16:42:47  *** gelignite has joined #openttd
16:48:23  <petern> andythenorth[d]: Let GS change engine stats? :p
16:51:06  <nielsm> player directed vehicle development and every company has unique engines
16:51:09  <Pruple> CplBurdenR3294: while that's kind of true, the biggest, fastest, and most powerful vehicles of any era (which is what tends to get included in OpenTTD sets) were always pushing the limits of what was technically possible at the time, and that *did* influence how infrastructure was built and how vehicles were used.
16:53:31  <DorpsGek> [OpenTTD/OpenTTD] glx22 approved pull request #10364: Fix #10363: CargoDist setting helptext shouldn't suggest symmetric distribution for diamonds in subtropic https://github.com/OpenTTD/OpenTTD/pull/10364#pullrequestreview-1250464771
16:54:35  <LordAro> can't backport that one
16:54:55  <andythenorth[d]> petern: why not just work around it using arcane solutions and lots of resources ๐Ÿ˜›
16:54:57  <dP> I had some ideas of introducing some research points that can be spent on, say, making engines 10% faster
16:55:49  <DorpsGek> [OpenTTD/OpenTTD] 2TallTyler merged pull request #10364: Fix #10363: CargoDist setting helptext shouldn't suggest symmetric distribution for diamonds in subtropic https://github.com/OpenTTD/OpenTTD/pull/10364
16:55:52  <DorpsGek> [OpenTTD/OpenTTD] 2TallTyler closed issue #10363: [Bug]: Setting "Distribution mode for the ARMOURED cargo class" description gives bad advice https://github.com/OpenTTD/OpenTTD/issues/10363
16:59:28  <Pruple> I know this is an outlying opinion, but I think the gameplay of OpenTTD is improved by longer gaps between vehicles / generations. You get to explore the capabilities of the vehicles more, and then when the next generation comes, it's more of a jump and opens up more possibilities. I find that much more interesting than constant replacements with nickle-and-dime stat increases every year.
17:00:03  <nielsm> I think many want to have more time to play with each individual vehicle model
17:00:34  <Eddi|zuHause> Pruple: that's why people want daylength
17:00:53  *** supermop_toil has joined #openttd
17:01:44  <nielsm> but yes, vehicle models that are super top of the line at introduction time should be excessively expensive to purchase and run, and later on models with comparable stats might get introduced that are much cheaper
17:02:35  <nielsm> but perhaps have the running costs of the early "tech demo" vehicles also drop over time so it also won't be sensible to replace them with the cheapified newer models
17:02:48  <dP> you're saying it like money meanss anything in openttd :p
17:02:59  <nielsm> well make it mean something!!!!!!
17:03:08  <dP> already did :P
17:03:12  <Pruple> good luck with that
17:03:41  <andythenorth[d]> money don't matter tonight
17:03:46  <Pruple> the correct answer to that balancing issue is "don't have the super-top-of-the-line 'tech demo' vehicle at all".
17:03:46  <andythenorth[d]> and it sure didn't matter yesterday
17:03:57  <andythenorth[d]> errr
17:04:15  <andythenorth[d]> https://cdn.discordapp.com/attachments/1008473233844097104/1064590922211405925/image.png
17:04:15  <andythenorth[d]> am I doing it wrong Pruple ?
17:04:39  <Pruple> snoughplows are never wrong. well, hardly ever.
17:05:15  <andythenorth[d]> they're never quite right either
17:05:30  <Eddi|zuHause> Pruple: that disturbs me about transport fever mods. they only ever make weird/experimental/fantasy engines, but never the "boring" generic common ones
17:05:31  <andythenorth[d]> https://cdn.discordapp.com/attachments/1008473233844097104/1064591242891116575/image.png
17:05:31  <andythenorth[d]> but this is some kind of apex / pinnacle vehicle ๐Ÿ˜›
17:05:40  <scrubbles> only because we don't have different tiers of snowploughs yet
17:07:02  <Samu> found something unrelated
17:07:04  <Samu> https://github.com/OpenTTD/OpenTTD/blob/750d89d37b372b808e616091913f7e48f6d4d0ea/src/settings.cpp#L172-L186
17:07:10  <Samu> size_t is unsigned
17:07:20  <Samu> but it has a return -1
17:07:41  <andythenorth[d]> Pruple: Progression is weird.  Without any, there's no...progression
17:08:14  <andythenorth[d]> I don't have a final opinion yet, but the obligation to provide progression is dull when it doesn't add anything
17:08:38  <andythenorth[d]> but I have deleted a lot of gen 6 Iron Horse
17:10:20  <andythenorth[d]> I think there was some place I had 6 mph speed bump or something between generations
17:10:21  <andythenorth[d]> big woo
17:11:19  <andythenorth[d]> hmm GS control of NoDL setting?
17:11:52  <Pruple> Sunshine is 25 locos over 100 years, "generations" 15-20 years apart, but the generations aren't straight 1-1 replacements or upgrades, which I find makes a big difference. And there's few enough locos that the choices aren't overwhelming. ๐Ÿ™‚
17:12:24  <andythenorth[d]> hmm did we discuss vehicle loot boxes already, via GS?
17:13:38  <dP> time only moves when your trains move
17:13:39  <Pruple> eg, the pompom and the greyhound get replaced by the 8k and mogul respectively, but while they're much more powerful, the replacements are both slightly slower. So you might keep using the older designs if you're not taking advantage of the opportunity to make bigger, heavier trains.
17:14:06  <andythenorth[d]> so add 2nd currency, gems or something
17:14:10  <andythenorth[d]> earn gems for arbitrary goals
17:14:20  <andythenorth[d]> spend gems on GS storybook loot boxes
17:14:25  <andythenorth[d]> x% drop chance of a new train
17:15:15  <andythenorth[d]> then we monetise that for real money, and relocate to a jurisdiction where encouraging children to gamble is ok
17:15:23  <andythenorth[d]> Brexit Britain or something
17:15:46  <Pruple> the more different in-game currencies, the better the game design, right?
17:16:03  <andythenorth[d]> probably
17:16:15  * andythenorth[d] is taking cold medicine, may not be 100% lucid
17:18:35  <andythenorth[d]> if the monetisation doesn't produce fast enough, we can add skins or player avatars or something
17:18:46  <andythenorth[d]> that's what Variants is for, purchaseable vehicle skins
17:20:04  <andythenorth[d]> we need to DRM grfs, and add some new props for 'unlocked'
17:20:27  <scrubbles> pay for train whack rolls
17:23:13  <andythenorth[d]> train whack in the game when?
17:25:01  <scrubbles> I thought the bug with open wagons and vans showing together was intended, makes for easy and lazy mixed wagon goods trains building
17:28:04  <DorpsGek> [OpenTTD/OpenTTD] SamuXarick commented on pull request #8492: Fix: Don't allow towns to terraform certain floodable tiles https://github.com/OpenTTD/OpenTTD/pull/8492#pullrequestreview-1250503029
17:28:10  <FLHerne> CplBurdenR3294 etc. : even a large map is pretty small compared to a country (that isn't Luxembourg or something)
17:28:35  <FLHerne> so I just assume that this is one part of a larger company that's designed whatever it has
17:28:45  <FLHerne> for its national requirements
17:34:14  <glx[d]> Samu: returning -1 for unsigned just means returning a value with all bits set, and size_t can be 32 or 64 bit depending on target CPU, so -1 will be 0xFFFFFFFF for 32 bit and 0xFFFFFFFFFFFFFFFF for 64 bit
17:42:32  <DorpsGek> [OpenTTD/OpenTTD] SamuXarick commented on pull request #8492: Fix: Don't allow towns to terraform certain floodable tiles https://github.com/OpenTTD/OpenTTD/pull/8492#pullrequestreview-1250515981
17:50:07  *** Flygon has quit IRC
18:03:28  <andythenorth[d]> hmm
18:03:32  <andythenorth[d]> GS flooding?
18:03:38  <andythenorth[d]> can we adjust sea level?
18:07:42  <DorpsGek> [OpenTTD/OpenTTD] FLHerne opened pull request #10365: Fix #10362: NewGRF bridges without speed limits. https://github.com/OpenTTD/OpenTTD/pull/10365
18:11:10  <Samu> question about include "xxx.h", is it better to have less includes or more includes?
18:11:24  <LordAro> fewer.
18:11:34  <LordAro> (to a point)
18:11:56  <Samu> if i move that townterraforming function from water_cmd.cpp to town_cmd.cpp, i will have to add some includes
18:12:47  <Samu> if i let it stay where it is, in water_cmd.cpp, no includes are necessary
18:13:40  <Eddi|zuHause> andythenorth[d]: i think we had a patch like 15 years ago
18:13:54  <DorpsGek> [OpenTTD/OpenTTD] quackersian opened issue #10366: [Bug]: Fast Forward stuck on at year end finance https://github.com/OpenTTD/OpenTTD/issues/10366
18:16:01  <DorpsGek> [OpenTTD/OpenTTD] LordAro commented on issue #10366: [Bug]: Fast Forward stuck on at year end finance https://github.com/OpenTTD/OpenTTD/issues/10366
18:16:04  <DorpsGek> [OpenTTD/OpenTTD] LordAro closed issue #10366: [Bug]: Fast Forward stuck on at year end finance https://github.com/OpenTTD/OpenTTD/issues/10366
18:16:09  <Samu> I almost disagreed with everything TallTyler suggested, maybe except the renaming of the function itself
18:16:21  <Samu> what do i do
18:16:30  <LordAro> justify your disagreements
18:16:33  <LordAro> in the PR
18:16:40  <LordAro> disagreeing is fine
18:16:46  <LordAro> "i disagree" is not
18:17:07  <Samu> not sure i wanna move the function to town_cmd.cpp, it would require extra includes
18:18:08  <Samu> the function requires GetFloodingBehaviour
18:18:33  <Samu> so i'd need to add include "water.h" in town_cmd.cpp
18:18:50  <LordAro> so ask that
18:18:53  <Samu> then i'm unsure where i but the declaration thing
18:18:54  <LordAro> say that
18:19:13  <Samu> oh :(
18:19:38  <LordAro> if TallTyler finds your justification acceptable, then the issue will be resolved
18:19:48  <LordAro> if he still thinks it should be moved, then you move it (or close the PR, i guess)
18:20:11  <LordAro> fewer includes is better, but if they're needed, you still add them
18:22:50  <DorpsGek> [OpenTTD/OpenTTD] SamuXarick commented on pull request #8492: Fix: Don't allow towns to terraform certain floodable tiles https://github.com/OpenTTD/OpenTTD/pull/8492#pullrequestreview-1250552834
18:31:00  <Samu> i could also argue that this function is excusively for terraform command
18:31:32  <Samu> would also make sense for it to go to terraform_cmd.cpp
18:34:56  <petern> Argue that then. In the PR.
18:35:16  <petern> The PR has discussion features for a reason.
18:35:51  <DorpsGek> [OpenTTD/OpenTTD] glx22 commented on pull request #10365: Fix #10362: NewGRF bridges without speed limits. https://github.com/OpenTTD/OpenTTD/pull/10365#pullrequestreview-1250560202
18:36:06  *** Wormnest has joined #openttd
18:40:26  <DorpsGek> [OpenTTD/OpenTTD] FLHerne updated pull request #10365: Fix #10362: NewGRF bridges without speed limits. https://github.com/OpenTTD/OpenTTD/pull/10365
18:43:29  <DorpsGek> [OpenTTD/OpenTTD] SamuXarick updated pull request #8492: Fix: Don't allow towns to terraform certain floodable tiles https://github.com/OpenTTD/OpenTTD/pull/8492
18:44:11  <DorpsGek> [OpenTTD/OpenTTD] DorpsGek pushed 1 commits to master https://github.com/OpenTTD/OpenTTD/commit/8a6f4c22c93d129e12ead1b2b92b4840ccc43d5c
18:44:12  <DorpsGek>   - Update: Translations from eints (by translators)
18:45:11  <Samu> isn't it BuildBridgeData &bridge_data
18:47:03  <FLHerne> seems to depend which file you look at :p
18:47:12  <FLHerne> that format does seem more common
18:51:17  <DorpsGek> [OpenTTD/OpenTTD] FLHerne updated pull request #10365: Fix #10362: NewGRF bridges without speed limits. https://github.com/OpenTTD/OpenTTD/pull/10365
18:52:09  <DorpsGek> [OpenTTD/OpenTTD] SamuXarick updated pull request #10330: Codechange: Rework 'start_date' parameter for AIs as a game setting https://github.com/OpenTTD/OpenTTD/pull/10330
18:52:28  <Samu> oops, i made a boo boo
18:54:13  <Samu> i clicked update with merge
18:54:16  <Samu> :(
18:54:45  <glx[d]> you can always rebase
18:56:45  <DorpsGek> [OpenTTD/OpenTTD] SamuXarick updated pull request #10330: Codechange: Rework 'start_date' parameter for AIs as a game setting https://github.com/OpenTTD/OpenTTD/pull/10330
19:06:50  <DorpsGek> [OpenTTD/OpenTTD] 2TallTyler commented on pull request #10365: Fix #10362: NewGRF bridges without speed limits. https://github.com/OpenTTD/OpenTTD/pull/10365#pullrequestreview-1250579886
19:15:40  <DorpsGek> [OpenTTD/OpenTTD] 2TallTyler commented on pull request #8492: Fix: Don't allow towns to terraform certain floodable tiles https://github.com/OpenTTD/OpenTTD/pull/8492#pullrequestreview-1250590996
19:16:01  <DorpsGek> [OpenTTD/OpenTTD] 2TallTyler commented on pull request #8492: Fix: Don't allow towns to terraform certain floodable tiles https://github.com/OpenTTD/OpenTTD/pull/8492#pullrequestreview-1250591245
19:17:05  <DorpsGek> [OpenTTD/OpenTTD] FLHerne updated pull request #10365: Fix #10362: NewGRF bridges without speed limits. https://github.com/OpenTTD/OpenTTD/pull/10365
19:18:02  <DorpsGek> [OpenTTD/OpenTTD] 2TallTyler approved pull request #8492: Fix: Don't allow towns to terraform certain floodable tiles https://github.com/OpenTTD/OpenTTD/pull/8492#pullrequestreview-1250592639
19:29:54  <andythenorth[d]> so cargo prices eh
19:30:04  <Pruple> $$
19:30:05  <andythenorth[d]> the grf spec is basically 'lol no'
19:30:25  <andythenorth[d]> but there is a profit cb
19:30:44  <andythenorth[d]> so what if GS could adjust a price factor, per cargo, per tile or something
19:30:51  <andythenorth[d]> but again, periodically
19:31:05  <andythenorth[d]> per tile is mad granular, per town would be quite enough?
19:34:10  <TallTyler> Per town seems plenty
19:34:29  <TallTyler> I assume you're thinking about supply and demand?
19:35:28  <andythenorth[d]> or anti-supply and demand ๐Ÿ˜›
19:35:31  <andythenorth[d]> whatever authors want
19:35:45  <TallTyler> Lumberjack Industries does grain production only during fall harvest time, and I tried using the profit callback to make grain not delivered then spoil, but it was finicky and stupid so I left profit alone
19:35:48  <andythenorth[d]> we could make Dope Wars
19:36:07  <andythenorth[d]> 'a Colombian freighter dusted the coastguard, weed prices have fallen through the floor'
19:36:28  <andythenorth[d]> 'hippies are going crazy for acid, prices are sky high'
19:36:44  <andythenorth[d]> also...really meaningful recessions ๐Ÿ˜›
19:36:44  <TallTyler> (seasonal production is also somewhat stupid at default game speed, but that's a separate issue)
19:37:16  <andythenorth[d]> could we give cargos a provenance?
19:37:26  <andythenorth[d]> so you can't earn money delivering white wine to france from the UK?
19:37:43  <TallTyler> CargoDest 2?
19:38:09  <TallTyler> Industries of the Caribbean has Domestic Oil and Imported Oil, for gameplay reasons
19:38:16  <andythenorth[d]> lol 'all cargo from industry A wants to go to industry P'
19:38:18  <andythenorth[d]> forever
19:38:22  <andythenorth[d]> you have one dest
19:38:26  <andythenorth[d]> no recalcs
19:38:34  <andythenorth[d]> CPU burden reduced
19:38:45  <andythenorth[d]> just store the origin, destinations are inferred
19:42:31  <DorpsGek> [OpenTTD/OpenTTD] quackersian commented on issue #10366: [Bug]: Fast Forward stuck on at year end finance https://github.com/OpenTTD/OpenTTD/issues/10366
19:51:37  <Samu> found another bug in script_airport
19:52:14  <Samu> https://github.com/OpenTTD/OpenTTD/blob/8a6f4c22c93d129e12ead1b2b92b4840ccc43d5c/src/script/api/script_airport.cpp#L164-L166
19:52:22  <Samu> that's a weird thing to return
19:53:43  <TallTyler> That truly does look like a bug
19:53:45  <andythenorth[d]> do you suspect copy-paste? ๐Ÿ˜›
19:54:08  <TallTyler> I certainly do, considering the method above
19:54:27  <Samu> even if it returns -1, it can't, it's uint
19:54:32  <Samu> must be changed to int
19:58:19  <Samu> let me check with the other cost factors
20:00:13  <Samu> they return 0
20:01:07  <Samu> they're all uint16
20:01:18  <Samu> and return 0, except airport version, which returns town
20:01:24  <Samu> what to do?
20:01:39  *** Wolf01 has joined #openttd
20:04:42  <CplBurdenR3294> TallTyler: CargoDest 2: Overhead Electric Boogaloo
20:05:35  <Samu> GetMaxSpeed for the road is also returning 0 if roadtype doesn't exist, but 0 is used for no speed limit, it should return -1
20:10:27  <Samu> GetMaxSpeed for rail actually returns -1
20:10:35  <Samu> for railtypes that don't exist
20:40:42  <Samu> https://github.com/OpenTTD/OpenTTD/blob/8a6f4c22c93d129e12ead1b2b92b4840ccc43d5c/src/script/api/script_story_page.cpp#L139-L151
20:40:58  *** gelignite has quit IRC
20:41:05  <Samu> the enforce preconditions are trying to return false, but it can only return as uint32
20:42:28  <Samu> im unfamiliar with Story Page stuff
20:42:52  <Samu> but that false is probably being returned as 0
20:49:14  <petern> false IS 0...
20:50:35  <Samu> there is a STORY_PAGE_INVALID
20:50:45  <Samu> and a STORY_PAGE_ELEMENT_INVALID
20:50:50  <Samu> which isn't 0
20:51:11  <Samu> I don't know how to fix this part
21:03:31  <andythenorth[d]> ok so to prospect / build an industry at random location
21:03:39  <andythenorth[d]> but with a constraint
21:03:44  <andythenorth[d]> what would we do?
21:03:49  <andythenorth[d]> partition some tiles?
21:04:03  <andythenorth[d]> do a quadrant with x,y corners?
21:04:13  <andythenorth[d]> do a list of eligible town(s)?
21:04:25  <andythenorth[d]> all of the above?
21:11:14  <andythenorth[d]> unrelated, so the opcode limit means I never have to worry about hanging openttd with a GS do...while?
21:11:21  <andythenorth[d]> I deliberately tried
21:12:02  <andythenorth[d]> obviously my GS might then be hung
21:12:46  <nielsm> correct
21:13:18  <nielsm> your script just gets suspended in the middle of whatever it was doing and the game continues simulation
21:13:27  <andythenorth[d]> so I'd still want some protec

Powered by YARRSTE version: svn-trunk