IRC logs for #openttd on OFTC at 2025-11-08
β΄ go to previous day
02:00:51 *** ChanServ sets mode: +v tokai
02:07:45 *** tokai|noir has quit IRC (Ping timeout: 480 seconds)
02:16:42 *** WormnestAndroid has quit IRC (Read error: Connection reset by peer)
02:16:45 *** WormnestAndroid has joined #openttd
02:42:43 *** Wormnest has quit IRC (Quit: Leaving)
03:00:05 *** herms2 has quit IRC (Quit: bye)
03:47:20 *** gnu_jj_ has joined #openttd
03:50:54 *** gnu_jj has quit IRC (Ping timeout: 480 seconds)
04:29:39 *** Zathras has joined #openttd
04:29:42 *** Zathras_4 has joined #openttd
04:33:01 *** Zathras_1 has quit IRC (Ping timeout: 480 seconds)
04:33:01 *** Zathras_11 has quit IRC (Ping timeout: 480 seconds)
06:22:45 *** locosage has joined #openttd
06:22:45 <locosage> how does 9832 handle weird partial acceptances?
06:22:51 <locosage> like, I agree that pp or refinery should accept coal/oil on all tiles
06:23:06 <locosage> but all industries suddenly starting accept passengers is probably not desirable
06:23:49 <locosage> because many vanilla industries have partial pax acceptance
06:25:19 <locosage> like farm has 2/8 pax acceptance, sawmill 5/8, etc.
07:18:10 *** SigHunter has joined #openttd
09:38:03 <xarick> with max opcodes 10000
11:00:10 <xarick> I accidentaly triggered a crash
11:03:28 <xarick> how do i translate this to GameScript code
12:00:33 <_glx_> I don't understand your tick and ops count
12:03:31 <_glx_> In master a Valuate call is always allowed 1M ops, ignoring the per tick limit
12:04:48 <_glx_> So with a very low max opcode limit the suspendable version should definitely show a bigger tick count
12:05:32 <xarick> How do I use the acall trick?
12:06:16 <_glx_> acall is a standard squirrel function
12:06:53 <xarick> while (this["Valuate"].acall(args)) ?
12:08:10 <andythenorth> "everything in squirrel is a table"
12:11:05 <andythenorth> ```The table is a fundamental Squirrel structure: the language uses tables as the basis for all of its objects. Every object method and property is a slot in a table. Squirrel also uses tables for storing environment data and... global variables.```
12:13:59 <LordAro> andythenorth: are you a table?
12:14:38 <andythenorth> too early to tell
12:29:07 <xarick> i dont understand why it fails
12:34:05 <peter1138> Little bobby tables
12:34:40 <andythenorth> although it was electrified
12:34:55 <andythenorth> wonder when they'll add an LLM to ebikes
12:35:39 <andythenorth> I cycled to the bouldering wall
12:40:36 <_glx_> xarick: Every call in squirrel must have a `this` as first argument
12:41:03 <_glx_> Even non member functions
12:45:02 <_glx_> So something like `local args= [this, item];`
12:51:54 <reldred> I need to try an ebike at some point, I have been quite enjoying my e-scooter adventures
13:03:15 <andythenorth> do you have hills in brisvegas?
13:41:30 <peter1138> Is it time to walk into town?
13:43:26 <andythenorth> I need to go to Coop
13:53:00 <xarick> aha, this works, but turns out ugly
14:01:28 <andythenorth> maybe I should do some FIRS
14:02:33 <peter1138> Make Animation Great Again.
14:21:22 <andythenorth> should ship it with OpenTTD 15.0
14:21:27 <andythenorth> call it a core FPS improvement
14:35:54 <xarick> `list.Valuate(function(item) { return 0; });` the least overhead possible
14:39:54 <xarick> i have one more Valuate option
15:08:15 <mmtunligit> aaaay the bot's back
15:42:18 <andythenorth> just include FIRS π
15:42:27 <andythenorth> oops speaking my brain again
15:59:21 *** lobster has quit IRC (Read error: Connection reset by peer)
15:59:57 *** lobster has joined #openttd
16:16:08 <xarick> what's the fastest "valuator function"-suitable function in the api?
16:18:19 <xarick> ah.... almost... needs 1 parameter though
16:21:29 <xarick> i need something like int Function(int-like param) { return int};
16:58:21 *** Wormnest has joined #openttd
17:09:01 *** Zathras_4 has joined #openttd
17:11:17 <locosage> New players get confused by block signals -> make newgrf to hide them π
17:13:02 <andythenorth> I should probably do FIRS
17:13:07 <andythenorth> but am playing Dice Wars
17:13:19 <andythenorth> maybe I should buy TimberBorn
17:13:44 <andythenorth> do we have 65k cargos yet?
17:16:36 <andythenorth> hmm not that many cargos in TimberBorn
17:26:31 <talltyler> Wording suggestions welcome π
17:28:19 <andythenorth> hmm think it will be FIRS 5.1.0
17:28:23 <andythenorth> breaks all the tiles
17:32:51 *** guru3 has quit IRC (Quit: leaving)
17:38:09 *** _zephyris has joined #openttd
17:38:09 <_zephyris> talltyler: Original?
17:38:45 <andythenorth> FIRS 5.1.0 released π
17:38:54 <andythenorth> next the 96 cargo version of FIRS?
17:41:11 <mmtunligit> yeah id agree with "original" it might run into the same issues as some of the other settings that have an "original" option where people just go through and turn them all to that for some reason but thats on them at that point
17:44:27 <andythenorth> are "ingredients" different to "food additives"
17:47:19 <xarick> that's a weird compatibility approach
17:49:27 <xarick> ScriptList::BeginCompat()
17:49:37 <xarick> SQInteger ScriptList::NextCompat()
17:49:55 <xarick> but that doesn't stop API version 15 from using these
17:50:43 <_zephyris> There's no NewGRF vehicle callback for crashed state, is there?
17:51:26 <andythenorth> I wonder if FIRS really needs `OBJ_FLAG_ANIMATED` set on 437 objects
17:51:49 <andythenorth> _zephyris: might be a var you can check in varact2, I'll look
17:54:39 <andythenorth> hmm I wonder if `OBJ_FLAG_ANIMATED` does any harm though
17:54:56 <andythenorth> the animation callback handling is already conditional, doesn't appear to be animating static tiles
18:01:34 <peter1138> NewGRFs don't have any control over crashes, and... it would be weird if they did.
18:02:03 <peter1138> Maybe a terminology thing, variables vs callbacks.
18:03:44 <andythenorth> wonder if I could fetch the company colour for `nearest industry of type x`
18:03:52 <andythenorth> (from an object)
18:04:03 <andythenorth> currently I'm using the town index to match industry and object colours
18:04:11 <andythenorth> but there are obviously edge cases to that
18:07:53 <peter1138> Well, industries don't have company colours...
18:09:40 <peter1138> "Nearest industry of type x" sounds expensive, but then again, industry colours and object colours are stored, so wouldn't need to be calculated every time.
18:10:12 <peter1138> But maybe you want objects to be owned by an industry anyway.
18:10:44 <peter1138> In which case you'd want the owner industry to be stored anyway.
18:13:12 <_jgr_> Industries sort of do have company colours, via variable 0x45
18:13:40 <_jgr_> Though this is admitedly a bit of an odd feature
18:17:37 <andythenorth> industries do have a company colour though?
18:18:05 <peter1138> Oh, I suppose authors can use that with a palette offset instead of letting the game use the industry's actual random colour.
18:18:35 <peter1138> 0xA8 is the industry's colour. It's not a company colour.
18:18:47 <andythenorth> spec says it is?
18:18:55 <andythenorth> dunno, not arguing, just reading
18:19:06 <peter1138> It's the same set of 16 colours.
18:19:07 <andythenorth> spec is not infallible
18:19:19 <peter1138> But it's an industry, not a company, therefore it's not a company colour, it's an industry colour.
18:19:38 <andythenorth> sometimes var numbers are more precise
18:20:28 <andythenorth> anyway if objects could get the same result as industry var 0xA8, for the nearest industry instance of type x
18:20:37 <andythenorth> or if objects could be industry owned
18:22:31 <peter1138> NFO spec is usually canon. Names in NML are liable to weird interpretations.
18:23:04 <andythenorth> from the NFO spec: `A8 B Random (company) colour, chosen during construction`
18:23:13 <peter1138> So objects already have an object colour, 0x47
18:23:38 <andythenorth> I am distracting myself from other things with colours π
18:23:48 <andythenorth> "would never happen to anyone else
18:23:57 <peter1138> For efficiency, it would be make sense to just make the object's colour match the industry's colour.
18:24:32 <andythenorth> how does the object know the industry?
18:24:48 <andythenorth> [can think of several ways]
18:26:22 <andythenorth> one way would be an action 0 prop, 'matching' the object to an industry type
18:26:40 <andythenorth> probably doesn't work right for 'nearest' maybe?
18:28:04 *** gelignite has joined #openttd
18:39:26 <peter1138> No idea, depends how far you want to go with whatever the idea is.
18:41:23 <rito12_51026> andythenorth: That's a wonderful game, I really recommend it for you. It has a lot more cargos than logs tbf.
18:45:17 <andythenorth> mostly the idea is to match the colours, which fails when there are two nearby towns
18:45:34 <andythenorth> the yellow industry is yellow
18:45:41 <andythenorth> some objects are yellow, some are pink
18:46:09 <andythenorth> I don't really mind it, and I understand the implementation, but players might be confused?
18:49:37 <peter1138> Players are easily confused, even if the thing they are confused about is directly on the screen when they're confused by it.
18:50:22 <andythenorth> in isolation it's not an interesting problem to solve
18:50:29 <andythenorth> maybe if industries could also plant their own tiles
18:50:34 <andythenorth> although I could do that with GS
18:50:53 <andythenorth> (plant their own object tiles)
19:40:20 *** Wormnest has quit IRC (Ping timeout: 480 seconds)
19:47:51 *** WormnestAndroid has quit IRC (Ping timeout: 480 seconds)
19:49:25 *** WormnestAndroid has joined #openttd
21:15:43 <audigex> locosage: This is whatβs confusing me about the reluctance to change this βfeatureβ
21:15:43 <audigex> Block signals have been hidden, to improve the user experience. Old pathfinders have been disabled and I believe now even removed, to improve the user experience
21:15:43 <audigex> Why the resistance to this improvement?
21:34:45 *** Wormnest has joined #openttd
21:34:47 *** WormnestAndroid has quit IRC (Read error: Connection reset by peer)
21:37:11 *** WormnestAndroid has joined #openttd
21:49:37 <rito12_51026> audigex: In my opinion current behavior is a fantastic feature, (if only FIRS used it) just because the user interface makes it more confusing than useful isn't a good reason to remove it.
21:50:59 <audigex> It wouldn't even be removed, though - it would just be disabled by default for vanilla industries. NewGRFs could still choose to use it, as could any player who knows the feature exists and wants to change the setting
21:51:20 <audigex> My point was more that we've made much more substantial changes to core parts of the game
21:56:03 <rito12_51026> The problem with your proposed change is that it does not improve the game by simplifying it, instead it removes (hides) a strange feature that confuses new players
21:57:18 <audigex> I'd argue it does simplify the game, and does improve the game
21:57:18 <audigex> Hiding a strange and confusing feature but making it optional for the 2 people who will ever choose to use it, is not a bad thing
21:57:18 <audigex> Seriously, does anyone ACTUALLY care about being able to place a station overlapping part of a vanilla industry like that? It just seems absurd
21:58:11 <audigex> How many people are actively using that "feature"? What does it really add?
21:58:11 <audigex> Sure, a newGRF implementing it in an interesting way might be fun, but it's literally just a few random tiles of a power station etc for no reason
22:03:03 <andythenorth> is hide_sprite something I shouldn't be using?
22:06:06 <andythenorth> making FIRS objects buildable on water
22:06:17 <andythenorth> deep mine is obviously the ideal test π
22:08:37 <_glx_> just needs an elevator to reach the bottom
22:18:40 <andythenorth> hmm still no grf var to detect coasts?
22:18:45 <andythenorth> unless I miss it
22:21:10 <andythenorth> I can do it in placement, but not in graphics chain
22:22:22 <andythenorth> wanted to unify this π
22:22:54 <andythenorth> but I only want to replace default foundations on coast, not other slopes
22:27:55 *** Flygon has quit IRC (Read error: Connection reset by peer)
22:49:04 <xarick> glx, can u expand it to filter lists?
22:51:47 <rito12_51026> audigex: Currently, NewGRF would have to describe limitations and differences between the UI and the mechanics of that feature e.g. in a README file or in the description.
22:51:47 <rito12_51026> But really, who reads NewGRFs' README files?
22:51:47 <rito12_51026> The NewGRF author would be exposed to comments like: "It isn't working", "Industry does not produce cargo" or "Cargo got stuck at a station".
22:51:47 <rito12_51026> Fixing the UI to work well with NewGRFs would also fix the vanilla. And it would match the 3 out of 4 project goals.
22:51:47 <rito12_51026> Also showcasing feature in the vanilla would motivate grf authors to use it. We would get more advanced and intresting NewGRFs.
22:54:17 <mmtunligit> i see no reason why we cant both make the default industries Just Make Sense *and* improve messaging around it
22:55:17 *** Wolf01 has quit IRC (Quit: Once again the world is quick to bury me.)
22:55:41 <mmtunligit> i also think any industry newgrf that makes use of it is probably gonna be relatively niche since it likely wouldnt be just another FIRS fork, and the people playing with it are much more likely to be the type to actually read
22:56:28 <mmtunligit> and if it did get big, well then you end up with people spontaneously making googleable documentation for it by asking questions in forums and whatnot
22:56:45 <mmtunligit> but i would like to see messaging improved
22:59:22 <rito12_51026> Why there in no `_alt_pressed` global variable?
23:01:28 <xarick> I don't have enough ram for my stoopid tests
23:02:10 <audigex> rito12_51026: Frankly, virtually nobody wants this feature, virtually no newGRF author wants to support it...
23:02:10 <audigex> For the very small handful of people who care about it, they're going to be advanced players who can go find newGRFs that support it
23:02:10 <audigex> To me it makes a LOT more sense to inconvenience a tiny number of advanced players, rather than a large number of new players
23:02:10 <audigex> And as I've stated a few times, I also support improving the UI and have suggested one myself (using red/green squares on the coverage indicator to indicate when it overlaps with an industry tile that does/does not accept cargo, blue like now when not on an industry square at all), along with supporting changing the text colour to red when nothing is accepted
23:09:20 <kaji_kaede> love how this now just tells you to go buy crypto
23:09:47 <audigex> kaji_kaede: It doesn't for me? Maybe an ad
23:12:02 <mmtunligit> no it does when its finished downloading, def not an ad, the formatting matches the rest of the site
23:13:41 *** keikoz has quit IRC (Ping timeout: 480 seconds)
23:14:10 <xarick> but it needs to deallocate all the memory for some reason
23:16:18 <_glx_> xarick: no, constructors work in a completely different way compared to function calls
23:16:53 *** belajalilija has joined #openttd
23:19:30 <xarick> ^_^still exiting openttd
23:19:31 <belajalilija> The way vanilla industries work is very counter intuitive
23:20:49 <audigex> Yeah that's my issue with it
23:20:49 <audigex> Defaults should be as intuitive as reasonably possible. They certainly shouldn't be actively unintuitive
23:23:26 <kaji_kaede> audigex: Not necessarily.
23:24:13 <audigex> "As reasonably possible". Reasonable would include the fact that sometimes there's a *good* reason for it to be less intuitive than it otherwise could be
23:25:31 <kaji_kaede> Got distracted for a sec. I was going to say that defaults should fit within the expectations of your userbase first, excluding cases of artistic vision.
23:26:28 <xarick> what's the factorial but for addition?
23:26:46 <rito12_51026> Is shift clicking to add/remove from favourite counterintuitive?
23:28:11 <xarick> 10000 * (10000 + 1) / 2
23:29:52 <xarick> items on those 10k lists
23:31:35 <xarick> how big is a squirrel GSList object, if empty
23:33:11 <audigex> kaji_kaede: Defaults should conform to your userbase, but they should still be as intuitive as you can make them within the bounds of your gameplay goals
23:33:11 <audigex> In this specific instance, there's no way in hell most of the playerbase consider this a positive feature
23:35:21 <_glx_> but then you have the actual space used by items and buckets (not visible here)
23:40:26 <talltyler> Shift+Click in OpenTTD is almost exclusively used for cost estimation
23:41:44 <rito12_51026> talltyler: yeah, but ctrl+click is already used for hiding and double click does not work in dropdown
23:42:38 <talltyler> So using it for something is probably not intuitive, to answer your question π
23:42:57 <xarick> okay im off to bed, take care
continue to next day β΅