IRC logs for #openttd on OFTC at 2025-07-23
⏴ go to previous day
00:26:01 *** NGC3982 has joined #openttd
00:27:02 *** tokai|noir has quit IRC (Quit: c('~' )o)
00:27:18 *** ChanServ sets mode: +v tokai
01:31:53 <talltyler> Always fun when a comment starts `// HACK …` 😛
01:42:42 <_glx_> oh it's more fun when there's no comment mentioning it
02:02:37 *** herms has quit IRC (Quit: bye)
02:33:04 *** wormnest[m] has joined #openttd
02:38:11 *** Wormnest has quit IRC (Quit: Leaving)
02:53:54 *** gnu_jj_ has quit IRC (Ping timeout: 480 seconds)
03:00:04 *** herms has quit IRC (Quit: bye)
03:18:45 *** xava has quit IRC (Quit: Leaving)
04:48:26 <DorpsGek> - Update: Translations from eints (by translators)
04:54:40 *** WormnestAndroid has quit IRC (Remote host closed the connection)
04:54:43 *** WormnestAndroid has joined #openttd
06:02:58 *** dh1 has quit IRC (Quit: My Mac has gone to sleep. ZZZzzz…)
07:37:30 *** Smedles has joined #openttd
09:18:32 *** dh1 has quit IRC (Quit: My Mac has gone to sleep. ZZZzzz…)
09:18:43 *** alpapilus has joined #openttd
09:18:43 <alpapilus> _jgr_: I like those styles of stations, where you have to enter the street to switch platforms.
09:46:04 *** wm_ is now known as MinchinWeb
10:44:56 <talltyler> Vague == “I don’t understand it”
10:59:11 <peter1138[d]> How much performance would we get from replacing small vectors with arrays?
11:05:57 *** SigHunter has joined #openttd
11:59:38 *** MinchinWeb has quit IRC (Ping timeout: 480 seconds)
12:01:30 *** MinchinWeb has joined #openttd
12:04:49 *** michielbraas has joined #openttd
12:05:22 *** michielbraas is now known as lobster
12:09:56 <lobster> anyone in here still using Michael Blunck's NewStations newgrf?
12:11:35 <peter1138[d]> Still one of the best, IMHO.
12:14:29 <lobster> absolutely, all of his newgrfs are really
12:15:15 <lobster> but I installed them last night and am having some palette issues, so I wondered if this something that's a common issue
12:15:29 <lobster> already checked the tt-forums threads but nothing (recently) about it
12:15:51 <lobster> fairly sure I got the TTDptach Win / OpenTTD version too, from his ttdpatch.de site
12:17:49 <peter1138[d]> I use `newstats.grf` with palette set to Default (which means DOS).
12:18:26 <peter1138[d]> If you have `newstatsw.grf`, you'll need to use the "Toggle palette" button so the palette is "Legacy (W)"
12:18:49 <lobster> ah so that's it, thanks
12:19:16 <lobster> is it smarter to set the palette to legacy or to swap it for the DOS version?
12:19:40 <peter1138[d]> If a NewGRF has a choice of Windows or DOS versions, the DOS version should be preferred as there's more colours available in the DOS palette. Though whether the NewGRF uses them is another matter.
12:22:12 <lobster> intriguing, for some reason from back in the old TTDpatch days I always got the sense it was the other way round and the Win palette was the better one but I must've picked that up wrong
12:22:20 <lobster> not the first time that happens really
12:29:09 <peter1138[d]> In TTDPatch it really did depend on which version of the game you were running.
12:30:06 <peter1138[d]> So that kinda stuck with OpenTTD until at some point automatic palette conversion was implemented.
12:30:30 <peter1138[d]> Everyone just kinda assumed that Windows would be superior to DOS, as well 🙂
12:32:08 *** SigHunter has quit IRC (Ping timeout: 480 seconds)
12:52:31 <_glx_> windows palette is full of pink
13:02:31 <rito12_51026> peter1138[d]: I've made it, but probably it is inefficient. How do I run performance tests?
13:05:14 <peter1138> I think performance is the least of any issues here :-)
13:21:13 *** MinchinWeb has quit IRC (Ping timeout: 480 seconds)
13:21:17 <bigyihsuan> rito12_51026: looking at this image makes me feel itchy
13:54:59 * peter1138 attempts to remove legacy code.
13:57:55 <LordAro> *explosions heard in the distance*
14:03:37 <peter1138> You know what? "Maybe it'll be used later."
14:08:14 <kuhnovic> Addition a feature? Sure, no problem. Removing something? Not in a million years.
14:12:33 *** SigHunter has joined #openttd
14:18:56 *** SigHunter_ has joined #openttd
14:25:40 *** SigHunter has quit IRC (Ping timeout: 480 seconds)
14:28:34 <peter1138> When it's deeply embeded in a database schema as well, it gets a bit painful :(
14:30:29 *** Wormnest has joined #openttd
16:37:32 *** Smedles has joined #openttd
17:19:57 *** Flygon has quit IRC (Remote host closed the connection)
17:50:58 <Rubidium> peter1138: regarding the 'prevent access to baseset parameter' PR, to what extent can access be limited except when an actual sprite ID to be drawn is resolved? Would that make any sense?
18:08:25 <peter1138> Hmm, that might be possible. Sprites are drawn with "callback 0". If variable access is allowed for that case then graphical changes via action 3/2/1 chains might be feasible.
18:10:32 <michi_cc> Could you sneak a 'write permanent storage' (for the features that have it) into there? If yes, somebody will get ideas 🙂
18:12:36 <_jgr_> Writing permanent storage from graphics callbacks would create pretty immediate problems even without any kind of baseset reads
18:15:11 <peter1138> I must admit I was mostly thinking of act7/9 blocks, which would be harder to test for safety.
18:56:59 *** wm_ has quit IRC (Ping timeout: 480 seconds)
19:03:21 *** reldred has quit IRC (Quit: User went offline on Discord a while ago)
19:06:50 <ahyangyi> Then there are also act6 blocks...?
19:11:10 <peter1138> act6 can only apply local parameters, so isn't affected.
19:36:00 <_glx_> but act6 uses params set by actD, and actD can access params of other grf
19:37:58 <peter1138> Yes, the PR blocks Act7, 9 & D.
19:41:45 <rito12_51026> Why order in ParentSpriteToDraw struct has to be uint32_t, can't it be for example uint16_t or uint8_t?
19:42:23 <peter1138> Yeah, I don't think there is any access to another GRF's parameters via act2 variables.
19:42:27 <ahyangyi> peter1138: Makes sense in general, though I would also wish for station cb14
19:42:51 <peter1138> So Rubidium's comment about resolving sprites is not going to work.
19:45:24 <peter1138> Only Act D can access another GRFs parameters, so that sets local parameters. Act7/9 only test for GRF presence.
19:47:20 <peter1138> rito12_51026, because a `uint16_t` or `uint8_t` wouldn't fit world coordinates.
19:48:01 <ahyangyi> Not entirely, I guess? We can keep track whether each local parameter is "dependent on baseset parameters"
19:48:23 <Rubidium> peter1138: too bad, it was worth a ponder... so basically it's up to the NewGRF authors to not do stupid things
19:49:04 <ahyangyi> The only way for such a dependency to propagate in local parameters is via actionD, so it's possible to keep track of that
19:49:24 <peter1138> Querying parameters during "sprite drawing" time would be quite complex too, to do correctly.
19:49:40 <peter1138> e.g. which baseset is actually loaded, and what version of it...
19:51:02 <peter1138> ahyangyi, whatever you are saying doesn't seem to mean anything in the context of parameter access.
19:51:38 <peter1138> "propagate", "dependency" and "track" are not involved in parameter access.
19:52:29 <ahyangyi> peter1138: Was about this
19:53:06 <ahyangyi> You can allow Act D, but remember what parameters it touched
19:53:34 <ahyangyi> And only allow such touched parameters to be read in graphical act2s
19:55:50 <ahyangyi> Yeah, I'm not entirely convinced it's worth the effort, but I think it's a technical possibility
20:00:52 *** tokai|noir has joined #openttd
20:00:52 *** ChanServ sets mode: +v tokai|noir
20:02:29 <rito12_51026> peter1138: Does it also apply to PaletteID type?
20:06:22 <peter1138> Probably the z-coordinates don't need to be uint32_t, but I think for SSE, alignment is important in that struct.
20:07:34 *** tokai has quit IRC (Ping timeout: 480 seconds)
20:13:09 <rito12_51026> Thanks, min z-coordinate works fine as uint16_t
20:17:37 <peter1138> Now I need to find a NewGRF that does actually do this :p
20:19:19 *** wm_ has quit IRC (Ping timeout: 480 seconds)
20:23:38 <peter1138> Ah, it's not correct.
20:24:11 <peter1138> It's not unsafe to access parameters across other configured GRFs.
20:29:24 <brickblock19280> Is blocking for accessing if the grf exists also a part of the pr
20:29:57 <peter1138> Yes, testing for a particular baseset is unsafe.
20:33:04 <brickblock19280> Yeah I know but it wasn't in the title
20:36:36 <peter1138> That PR is, indeed, a dud :)
20:49:03 *** wm__ has quit IRC (Quit: Leaving)
20:56:51 <peter1138> Right, what was that callback?
20:57:29 <peter1138> /** Choose a tile layout to draw, instead of the standard range. */
21:29:38 *** Wolf01 has quit IRC (Quit: Once again the world is quick to bury me.)
21:32:41 *** Smedles has joined #openttd
21:33:41 *** lucas795643 has joined #openttd
21:33:41 <lucas795643> I’ll help 10 people to earn $100k within 72 hours but you will pay me 10% of your profit when you receive it. Note only interested people should apply, drop a message let’s get started by asking (HOW) via TG or WhatsApp
21:33:41 <lucas795643> +1 (618) 913-0036
21:36:18 <peter1138> Did I break JP+ bridges, or does it not work with vanilla rail types?
21:36:46 *** reldred has joined #openttd
21:36:46 <reldred> Doesn’t work with vanilla I believe
21:37:21 <peter1138> Well that's... special.
21:38:21 <reldred> Mmm, I can understand why, supporting running without a rail set means you have to prepare sprites for every default rail and then inevitably put up with people wanting support for three different base sets.
21:39:28 <reldred> So nine sets of graphics per tile if you’re covering the three default rails and three most common base sets (ttdlx, opengfx1, opengfx2). Or you just tell people to load a rail set.
22:30:42 <reldred> That would be nice to auto load those
continue to next day ⏵