IRC logs for #openttd on OFTC at 2025-06-27
⏴ go to previous day
02:20:38 *** gnu_jj_ has joined #openttd
02:24:04 *** gnu_jj has quit IRC (Ping timeout: 480 seconds)
02:26:44 *** Wormnest has quit IRC (Quit: Leaving)
03:00:08 *** herms has quit IRC (Quit: bye)
04:22:15 *** WormnestAndroid has quit IRC (Read error: Connection reset by peer)
04:22:19 *** WormnestAndroid has joined #openttd
04:22:22 *** WormnestAndroid has quit IRC (Read error: Connection reset by peer)
04:22:22 *** WormnestAndroid has joined #openttd
04:22:26 *** WormnestAndroid has quit IRC (Read error: Connection reset by peer)
04:22:27 *** WormnestAndroid has joined #openttd
04:42:28 <DorpsGek> - Update: Translations from eints (by translators)
06:10:41 <_zephyris> I was assuming they had line breaks to make the line split between the ellipses
06:24:53 *** Flygon has quit IRC (Remote host closed the connection)
06:28:00 <peter1138[d]> No, it's two strings.
06:28:39 <peter1138[d]> First is the action being performed, second is the reason why it can't be done.
06:56:52 *** izhirahider has quit IRC (Read error: Connection reset by peer)
06:57:04 *** izhirahider has joined #openttd
07:08:37 <peter1138[d]> And while composing strings is generally awkward for translationed, if they were pre-combined there would be a combinatorial explosion.
07:09:07 <peter1138[d]> Which is where the ellipsis comes in.
07:11:41 *** michi_cc_ has quit IRC (Ping timeout: 480 seconds)
07:19:53 *** michi_cc_ has joined #openttd
07:23:38 *** dh1 has quit IRC (Quit: My Mac has gone to sleep. ZZZzzz…)
08:13:58 <peter1138[d]> Of course, you all know how I mocked that up.
08:15:05 <LordAro> by hand, pixel by pixel in MSPaint?
08:15:07 <peter1138[d]> Efficient use of space.
08:51:15 <_zephyris> peter1138[d]: This is fun, but doesn't look very OTTD to me... Needs some more retro jank.
08:51:44 <_zephyris> (imagine Flarfingburg is an error)
08:57:22 <locosage> just add a pulsating red border xD
09:24:07 <peter1138[d]> _zephyris: Yeah, I did try with the coloured rectangle, but it then looks entirely like a company sign...
09:25:08 <peter1138[d]> (It is the same drawing code, after all, hence the change to FS_SMALL when zoomed out...)
09:27:39 <peter1138[d]> He's testing something 😉
09:27:40 <_zephyris> Just floating stuff
09:28:50 <_zephyris> I'm not super worried about visual appearance, because the behaviour would be so unlike a sign.
09:29:07 <_zephyris> Is it useable if the error is animated, floating up like build costs?
09:29:25 <_zephyris> Text-background contrast would be enhanced by the movement
09:29:31 <peter1138[d]> There is another issue.
09:29:44 <peter1138[d]> When you build something, but the build tool stays in the same mode.
09:29:57 <peter1138[d]> It will build, and the immediately show an error, as you can no longer build it...
09:34:01 <_zephyris> No idea why the red flash border isn't working BTW.
09:36:08 <_zephyris> Would have helped if I checked the bug, it works for me! Which version/blitter are you using?
09:36:45 <peter1138[d]> 32bpp-anim probably?
09:49:05 *** dres_1025 has joined #openttd
09:49:05 <dres_1025> Theoretically could a blitter be made that takes 32bpp sprites and quantises them to the 8bpp palette?
09:51:11 <peter1138[d]> No need, that already happens.
09:52:01 <reldred> By the time you’ve got enough cpu and memory to play OpenTTD on a classic rig, you’re no longer constrained to 8bit colour.
09:53:12 <dres_1025> reldred: It'd mainly be a thing for if you're using NewGRFs. If everything's quantised to the 8bpp palette it could improve visual consistency between different NewGRFs
09:53:56 <dres_1025> Just using an 8bpp blitter doesn't allow for this as many newGRFs either only supply placeholder graphics for 8bpp or don't supply any at all
09:53:59 <peter1138[d]> It doesn't. The visual difference is due to the style of art, not because of the colours.
09:54:04 <reldred> Ehhhhh, it’s not really a problem now.
09:54:06 <kuhnovic> peter1138[d]: Would it make sense to remove all the ellipses from the strings and add them automatically. Makes the strings a bit more general purpose. It would also allow you to for example put a comma in between them instead of ellipses, which would look better in a small error label.
09:54:35 <reldred> As Peter said, the visual difference is artistic style, quantising down to 8bpp won’t fix that
09:54:53 <peter1138[d]> And NewGRFs that use 8bpp placeholder graphics should stop.
09:55:00 <peter1138[d]> Report it as a bug to the author.
09:55:46 <reldred> Yeah I’m guilty of that. I’ll be fixing that in a bunch of mine before long.
10:49:06 <peter1138[d]> Instantiating something that's meant to just be access as a static member?
10:50:07 <_glx_> It's "fixable" in compat layer
11:01:14 <peter1138[d]> s up side yer head?
12:03:23 <LordAro> i'm going on holiday for two weeks and i currently have a chain of 5 MRs that are all stacked on top of each other
12:03:29 <LordAro> really trying to get them all merged
12:57:39 *** gwyd4016 has joined #openttd
12:57:39 <gwyd4016> peter1138[d]: what do we mean by this? That we no longer should expect that supporting 8bpp only players is required?
12:57:51 <gwyd4016> This seems reasonable
12:58:37 <peter1138[d]> Some authors used dummy placeholder graphics for 8bpp sprites. They are no use for anybody.
13:06:55 <pickpacket> Aren't 8bpp graphics still what most NewGRFs use? 32bpp is only for higher zoom levels, right?
13:08:08 <_glx_> _glx_: it's actually a pain to fix (stupid squirrel copying parent members)
13:08:43 <peter1138[d]> 32bpp is for more colours, nothing to do with higher zoom levels.
13:10:53 <_glx_> EZ and 32bpp are completly unrelated
13:11:42 <peter1138[d]> And when I say "dummy placeholder graphics for 8bpp sprites", I don't mean "newgrfs that are 8bpp"
13:11:55 <_glx_> the main mistake was they were introduced at the same time
13:12:35 <_glx_> hey at least it's not an invisible dummy sprite
13:12:43 <LordAro> (unlike the old 32bpp-ez stuff, which wasn't unrelated)
13:14:08 <peter1138[d]> _glx_: You say that, but check the industry...
13:14:26 <peter1138[d]> (I wasn't actually aware it was there until the 32bpp shot)
13:14:48 <_glx_> yeah I was focuses on houses
13:15:23 <peter1138[d]> Btw, on the right is actually 8bpp, using the built-in conversion with dummy sprite detection (not merged)
13:16:29 <peter1138[d]> And as you can see, it does not improve visual consistency between "regular" NewGRFs and this 32bpp stuff.
13:17:49 <_glx_> as always they worked around issues instead asking for tool improvement
13:19:04 <_glx_> now 8bpp are no longer required by the tools
13:19:41 <peter1138[d]> I'm not bothered that they did it in the past, but it would be nice if they stopped now 🙂
13:20:03 <peter1138[d]> But 8bpp is niche, so not really noticed by anyone.
13:21:05 <_jgr_> People are not going to spend political capital asking for changes to tools for things that they can trivially work around themselves
13:21:44 <locosage> also it was probably brought up multiple times, just no one cared at a time
13:22:23 <peter1138[d]> Everything is brought up multiple times.
13:22:42 <peter1138[d]> Just never in a place that makes sense.
13:24:07 <_jgr_> Even if it was, there's no configuration where 8bpp blitters are used without going out of your way to manually configure it. And why would you do that and then use these sorts of 32bpp extra-zoom GRFs? *shrugs*
13:25:10 <peter1138[d]> Yes, I get it, suggesting to authors to not bothering adding 8bpp dummy sprites is not something I should do.
13:25:52 <_jgr_> I'm not saying that, I'm suggesting that it is unsurprising that they do not care about this problem at all
13:26:45 <peter1138[d]> Just the whole tone, frankly, fucks me off.
13:26:56 <peter1138[d]> "spend political capital"
13:27:15 <peter1138[d]> I guess proving your point in way. Oh well.
13:38:27 <_glx_> hmm fixing the "not instantiable" for older API would need `getroottable()` but we disabled it
13:59:32 <dres_1025> peter1138[d]: What's providing this conversion?
13:59:51 <peter1138[d]> Built-in conversion.
14:01:19 <peter1138[d]> But what's the purpose? It can't make pixel-art and rendered-art match in style.
14:03:08 <FLHerne> When has style consistency ever been a thing?
14:03:49 <dres_1025> There's plenty of 32bpp pixel art stuff that doesn't quite match the 8bpp stuff. Something like the Auz NewGRFs, which as a result of using a 32bpp palette looks quite different to stuff around it, even if they're also 1x zoom pixel art sprites.
14:03:58 <FLHerne> The TTD and OGFX art styles are quite different, with some grfs it's quite clear which baseset they 'belong' to
14:04:30 <FLHerne> (OGFX is 'fuzzier', and the rail vehicles are aligned differently)
14:05:07 <FLHerne> so 32bpp pixel art only stretches it a bit further
14:05:54 <dres_1025> Still, if you can have sprites that all look like they belong together the end result should be that the game as a whole looks nicer
14:06:33 <peter1138[d]> Yes. But converting 32bpp to 8bpp doesn't do that.
14:07:33 <peter1138[d]> Any particular Auz objects you had in mind?
14:08:25 <dres_1025> It can in the right circumstances. And even between rendered/hand drawn art there's not that much difference if you're only at 1x zoom -less than using two different palettes would.
14:12:10 <dres_1025> To be completely honest, I think partially why I'm so keen on this might not actually be down to how effective it would be at making different sprite sets more consistent, and more just having similar capability to limiting zoom levels -If you can set the maximum zoom level to 1x and have extrazoom sprites downscaled to fit, it just makes sense to me that you should be able to do the same thing
14:12:10 <dres_1025> with the colour palette, setting the palette to 8bpp should have 32bpp sprites converted to fit as well.
14:13:46 <dres_1025> I suspect that the real reason why limiting zoom like that exists because it also helps performance in a way that restricting the palette might not as much, but I didn't really take that into account when I first came up with this
14:14:01 <peter1138[d]> Well, step 1 is ask the author to remove the dummy 8bpp sprites.
14:14:25 <peter1138[d]> Step 2 is... already in the game, you just need to manually configure it to use 8bpp.
14:14:43 <dres_1025> Hold on you can actually do that?
14:15:26 <dres_1025> I know about setting the blitter to 8bpp but that's just resulted in sprites not being present at all for me for 32bpp-only NewGRFs
14:15:41 <locosage> you may need version 15 of the game
14:16:03 <dres_1025> Is the current JGRPP based on version 14 or 15?
14:16:21 *** brickblock19280 has joined #openttd
14:16:36 <brickblock19280> Fallback sprites will still break it
14:16:50 <locosage> jgrpp isn't quite "based" on vanilla versions so some stuff may be missing
14:24:17 <_jgr_> The 32bpp to 8bpp conversion stuff is in there, but as discussed above, this does not work for 32bpp with useless fallback sprites, which is most of them
14:26:38 <_jgr_> New GRFs will be more likely to work with it in future
14:38:35 <peter1138[d]> Probably not for Auz stuff though becuase upgrading NML is not something he will do.
15:04:47 *** Wormnest has joined #openttd
15:24:50 <gwyd4016> I used 32bpp once, because there was one colour missing from the palette, but I made fallback sprites that actually were the same train but with slightly wrong colours
15:43:17 <andythenorth> seriously considering if we should redefine 32bpp as EZ
15:43:29 <andythenorth> or whether Jake will spend the rest of his life explaining it
15:54:32 <peter1138[d]> Forget 32bpp exists. There is extra zoom and normal zoom.
15:56:28 <andythenorth> shall I just unpalette my grfs (so 32bpp) and move on?
15:56:31 <andythenorth> forget 8bpp exists?
15:56:38 <andythenorth> can still use a swatch
15:58:08 <peter1138[d]> andythenorth: You have a great capability for misunderstanding.
15:58:23 <peter1138[d]> When you do FIRS Extra Zoom, call it "FIRS Extra Zoom", not "FIRS 32
15:58:25 <andythenorth> I practice misunderstanding a lot
16:15:50 <belajalilija> 32bpp should be mandatory
16:23:06 <andythenorth> sunshine should be mandatory
16:24:00 <belajalilija> It’s going to be too hot tomorrow
16:37:31 *** Smedles has joined #openttd
17:33:21 <andythenorth> AGAI continues to be 1 year away
17:35:20 <andythenorth> now at my 5th attempt just to get the robot to read the src in the repo
17:35:24 <andythenorth> which it can do and has done before
17:36:35 <peter1138[d]> Have you tried just doing it yourself?
17:36:47 <andythenorth> none of this is true
17:36:58 <andythenorth> every sentence is a lie
17:37:11 <andythenorth> can a dice rolling algorithm lie?
17:37:22 <andythenorth> or just simulate lying by accidental probability?
17:46:41 <peter1138[d]> The software is not sentient.
17:50:50 <andythenorth> infinite magic 8 balls
17:55:53 <andythenorth> trying to find the source of a stat, that 30% of heavy GPT users believe it's more reliable and accurate than a search engine
17:56:26 <andythenorth> I have encountered these people, who believe that "quite soon" the database queries will be refined enough to remove the hallucinations
17:56:45 <_glx_> it's accurate for not recent stuff
17:57:00 <andythenorth> well, define accurate?
17:57:21 <andythenorth> it has a reasonable chance of collapsing a vector that will match to a source that is accepted as reliable
17:57:48 <_glx_> basically if you want to extra info from old articles
17:58:51 <andythenorth> 'approximates the accuracy of someone generating SEO-oriented content by reading wikipedia'
18:00:15 <peter1138[d]> Which side-quest am I on?
18:00:49 <_glx_> if you want more detailed answer don't ask the AI, do your own research
18:01:33 <_glx_> it's a tool with many limitations
18:01:54 <andythenorth> peter1138[d]: badges
18:02:12 <peter1138[d]> Industry accepted cargo graphs.
18:02:16 <peter1138[d]> Oh it was approved.
18:08:46 <peter1138[d]> Means that industries that are not supplied don't store/rotate accepted history.
18:12:49 <squirejames> andythenorth: I like that we've now reached the point where AI gets defensive and passive aggressive when accused (correctly) of lying
18:13:44 <squirejames> Maybe fears of SkyNet were unfounded, but instead we'll get GlaDOS
18:14:12 <peter1138[d]> Twitter's video volume slider is infuriating.
18:14:23 <peter1138[d]> Because it doesn't slide. You gotta click on the spot you want it to be.
18:14:41 <andythenorth> What even is a Twitter?
18:15:02 <andythenorth> all the big questions
18:15:23 <andythenorth> are we ever shipping 15.0?
18:15:31 <andythenorth> will Iron Horse ever stop adding new engines?
18:39:51 <locosage> andythenorth: had a similar conversation with chatgpt today xD
18:40:44 <locosage> Also, the more I remember openttd codebase the less useful AIs seem xD
18:41:53 <peter1138[d]> andythenorth: lunch?
19:05:23 <squirejames> andythenorth: Find out in the next exciting installment of The Hitchhikers Guide to the Galaxy
19:07:24 <andythenorth> also after a nap
19:07:40 <andythenorth> is reddit sentient?
19:09:59 <squirejames> Reddit yes, Redditors no
19:59:43 <peter1138[d]> andythenorth: So, tomorrow then.
20:45:01 <locosage> How do you know industry didn't produce anything when it didn't exist? Maybe you just weren't able to receive that production? 😜
21:03:21 <locosage> oh, newgrf actions got split into separate files
21:03:37 <locosage> wish it was there when I was writing grf-py 😅
21:10:19 <peter1138[d]> Have you finished it, then?
21:11:14 <locosage> what cursor is trully great at is finding mismatched brackets and stuff xD
21:11:22 <locosage> well, action encoding/decoding is mostly done
21:11:34 <locosage> though you keep changing it 🤣
21:13:37 <locosage> hm, I should probably add a few thread-local vars in grf-py for context
21:13:56 <locosage> before it all turns into argument nightmare
21:15:16 <peter1138[d]> Okay, how do I make a simple GameScript that puts some text somewhere? News Message perhaps, or Story Book / Goal... dunno.
21:15:27 <peter1138[d]> Doesn't need to do anything with game state.
21:15:48 <locosage> there are probably some simple gamescripts in my prs
21:18:42 <_glx_> GSTown.SetName(0, whatever)
21:18:54 <peter1138[d]> I think I need a bit more than that.
21:23:55 <peter1138[d]> Already fuond it 😉
21:32:39 *** wormnest[m] has joined #openttd
21:32:40 <wormnest[m]> <_glx_> "Ah yes of course it fails <https..." <- Looks like it was already there in NoCab. Someone opened a PR with fixes, but I've been too busy to take a look or upload a fixed version. Hopefully soon :)
21:33:55 <_glx_> well allowing it for older API should not hurt
21:34:45 <peter1138[d]> Hmm, company is blue.
21:35:39 <peter1138[d]> No AIs had started yet...
21:36:33 <peter1138[d]> I just stuffed random parameters in, didn't check if the ID is valid.
21:39:48 <peter1138[d]> So I guess my goal of embeddable icons from GS works...
21:59:30 *** Wolf01 has quit IRC (Quit: Once again the world is quick to bury me.)
22:18:06 <locosage> is there any particular reason so many commands can be cost-estimated?
22:18:11 <locosage> like changing orders
22:19:22 <peter1138[d]> All commands can be cost-estimated.
22:19:37 <locosage> not all, there are some with NoEst flag
22:19:50 <locosage> I just wonder why not more of them have it
22:26:23 <locosage> there is even a cost for changing company color and manager face 🤣
22:34:55 *** keikoz has quit IRC (Ping timeout: 480 seconds)
22:36:12 <peter1138[d]> Very random note.
22:36:43 *** WormnestAndroid has quit IRC (Remote host closed the connection)
22:36:48 *** WormnestAndroid has joined #openttd
22:38:36 <peter1138[d]> Well, ransom note.
23:21:26 *** WormnestAndroid has quit IRC (Remote host closed the connection)
23:21:32 *** WormnestAndroid has joined #openttd
continue to next day ⏵