IRC logs for #openttd on OFTC at 2024-04-04
            
00:39:04 *** dsadada has joined #openttd
00:39:26 *** dsadada has left #openttd
01:22:04 *** Flygon has quit IRC (Quit: A toaster's basically a soldering iron designed to toast bread)
02:06:05 *** gnu_jj_ has joined #openttd
02:09:36 *** gnu_jj has quit IRC (Ping timeout: 480 seconds)
02:11:42 *** Wormnest has quit IRC (Quit: Leaving)
02:57:16 *** D-HUND has joined #openttd
03:00:50 *** debdog has quit IRC (Ping timeout: 480 seconds)
03:03:47 *** gnu_jj has joined #openttd
03:06:56 *** gnu_jj_ has quit IRC (Ping timeout: 480 seconds)
03:28:17 <DorpsGek> [OpenTTD/OpenTTD] CI - Nightly workflow was not successful https://github.com/OpenTTD/OpenTTD/actions/runs/8548670911
04:07:33 *** keikoz has joined #openttd
04:41:36 <DorpsGek> [OpenTTD/OpenTTD] eints-sync[bot] pushed 1 commits to master https://github.com/OpenTTD/OpenTTD/commit/08cf106fc613c56ff8628046440e243b5dcd58c7
04:41:37 <DorpsGek> - Update: Translations from eints (by translators)
05:21:36 *** keikoz has quit IRC (Ping timeout: 480 seconds)
05:24:08 *** pzz_ has quit IRC ()
05:25:36 <DorpsGek> [OpenTTD/OpenTTD] Release workflow was not successful https://github.com/OpenTTD/OpenTTD/actions/runs/8549573223
05:44:25 <LordAro> truebrain: iirc systemd recently (unrelatedly) switched to libarchive, so dedinitely something we could be looking into doing generally... if it's good enough for them, it's probably good enough for us
06:06:22 <truebrain> I do agree, but it would have a different motivation ๐Ÿ™‚
06:21:06 <dwfreed> libarchive is only used in systemd-dissect
06:21:43 <dwfreed> the change you may be thinking of is that systemd moved to using dlopen to use compression libraries, so they're not directly linked to libsystemd
06:51:40 <peter1138> Whatever happened to bz2...
06:53:17 <DorpsGek> [OpenTTD/OpenTTD] PeterN merged pull request #12338: Codechange: Use std::list for News Items. https://github.com/OpenTTD/OpenTTD/pull/12338
07:01:55 <LordAro> dwfreed: ah yes
07:06:06 *** Smedles has quit IRC (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.)
07:06:17 *** Smedles has joined #openttd
07:17:52 <peter1138> Oof, motherboards are so expensive these days.
07:18:04 <peter1138> Used to be able to get a whole computer for that!
07:18:28 <andythenorth> gaming PC ยฃ700
07:18:36 <peter1138> "gaming" PC
07:19:38 <andythenorth> this one is discounted https://www.awd-it.co.uk/awd-flash-ryzen-5-3500x-six-core-4.1ghz-palit-nvidia-geforce-rtx-3060-dual-desktop-pc-for-gaming.html
07:21:55 <LordAro> that CPU's a bit on the low side
07:22:12 <LordAro> otherwise seems reasoonable
07:22:33 <LordAro> probably want to upgrade to NVMe primary storage too
07:25:37 <peter1138> Gets a bit pricier when you change it from base-spec to something more capable.
07:25:46 <peter1138> Like a power supply that isn't going to blow up.
07:25:55 <peter1138> And an SSD that wasn't designed 5 years ago.
07:26:14 <peter1138> And adding an OS.
07:26:36 <peter1138> By that point you might as well start with decent components.
07:28:45 <LordAro> tis always the way
07:35:01 <peter1138> Maybe it needs a FuryGPU.
07:35:23 <andythenorth> and wifi that actually works, and actual USB-C ports with actual USB 3.2 speeds, and a bluetooth dongle that actually works
07:35:35 <andythenorth> it was the small things that pissed me off about those gaming PCs
07:36:04 <andythenorth> fancy cables, LEDs, and cooled RAM, but can't actually get on the network, connect a BT keyboard, or backup to external SSD
07:37:06 <kuhnovic> Just add more RGB, it will make it go faster
07:39:40 <reldred> yeah but you got the cheapest nastiest piece of crap gaming PC that used a cheap ass industrial budget mobo
07:40:30 <andythenorth> well I let children do the procurement ๐Ÿ˜›
07:40:35 <andythenorth> they should have done a 3 way tender
07:40:43 <reldred> That's the mistake, the children are fucking retarded.
07:40:49 <reldred> Why are your children so dumb andy?
07:41:15 <peter1138> Hmm, making this code modular has bloated it somewhat :S
07:41:16 <andythenorth> parenting
07:42:01 <peter1138> 10 lines of special casing becomes 35 lines of boiler plate and 10 lines of special casing... :S
07:42:31 <LordAro> gotta love that Aussie humour
07:43:22 <reldred> God as a kid I had to make do with 10-15 year old second hand laptops
07:45:23 <kamnet> reldred: Spoiled brat. I had to go work for a living for my first computer, walking up hill both ways lugging it like a suitcase! An it was only 8 bit!
07:46:03 <kamnet> But I feel you. My current laptop is a 15 year old hand me down.
07:46:18 <peter1138> How have I ended up with a 14 line function to do reinterpret_cast? :S
07:46:53 <reldred> The newest full sized laptop that I own is about 10-15 years old
07:46:54 <peter1138> Most of that is comment.
07:47:02 <reldred> however old the X230 is
07:47:13 <reldred> bought it for AUD$200 on ebay
07:47:20 <reldred> specifically to play openttd in bed
07:47:50 <reldred> I think it only got used for that a total of once
07:48:30 <peter1138> Is that andy's childrens' fault too?
07:48:42 <reldred> Oh absolutely
07:49:03 <LordAro> peter1138: the best sort of function
07:49:08 <LordAro> and also the worst
07:50:13 <peter1138> Do we run on any big endian CPUs these days?
07:51:07 <LordAro> arm?
07:52:36 <peter1138> Apparently they are bi-endian, but little is default.
07:56:55 <peter1138> So the calling function is also 11 lines, half of that is comment.
07:57:08 <peter1138> And all that is only needed for BE. Oh dear.
07:57:45 <LordAro> i dread to think what this is
07:58:04 <peter1138> An OpenTTD patch I'm working on, and re-evaluating.
08:08:47 <peter1138> Maybe I should undo the modular approach.
08:09:43 <peter1138> Although it's nice to not need #ifdef
08:31:00 <peter1138> Thinking about it, the modular approach works for blitters, so...
08:43:38 <xarick> oh I like to build PCs
08:43:55 <xarick> that means slapping components together
08:44:02 <xarick> hand choice
08:47:21 <LordAro> slapping components together sounds like a good way of having bits fall off
08:47:22 <LordAro> :p
08:48:23 <xarick> a gaming PC for ยฃ700, that's a bit on the low side, but let's see
08:56:10 <xarick> I can't possibly recommend an A520 based motherboard ๐Ÿ˜ฆ
08:58:04 <xarick> how many USB ports do you need?
09:03:02 <xarick> dang, i really wanted to try a B550 but that's possibly impossible with a budget as low as 700
09:03:09 <xarick> ๐Ÿ™‚
09:04:01 <peter1138> Fortunately my budget is not ยฃ700 ๐Ÿ™‚
09:04:25 <reldred> Pretty sure andy's kid already has the bad PC
09:05:12 <reldred> had some poxy micro-atx industrial board in it
09:05:24 <reldred> with no bluetooth or wifi or anything
09:06:06 <xarick> I would also try to stay away from ASRock, their BIOS are very... icky
09:18:14 <peter1138> 7950X3D am i rite?
09:31:08 <xarick> no, i was thinking Core i5 12400F or Ryzen 5 5600
09:31:18 <xarick> still checking
09:31:45 <LordAro> reldred: part of me considers no bluetooth or wifi to be a feature
09:34:46 <reldred> LordAro: not andy ๐Ÿ˜›
09:35:20 <LordAro> of course, my new computer has both
09:35:28 <LordAro> no good X670 options without them
09:37:36 <reldred> I'm still sticking with AM4 for a bit. It's a nice price point and the 5800x3d is still more than fast enough
09:37:52 <reldred> although apparently there's a new line of faster clocked XT's coming. 5800xt3d?
09:39:50 <LordAro> that's the rumour
09:41:08 <reldred> I'm not in any hurry, I got a b550 pro-art mobo, I'll buy a Fractal North XL at some point soon, and then I've already got a 5800x3d in my current rig so I'll reuse that and put my old 3600 back in this rig to keep as a spare.
09:41:28 <LordAro> sensible
09:41:31 *** shackamaxon has quit IRC (Quit: User went offline on Discord a while ago)
09:41:31 <reldred> but I'm also building a matching hifi system to go with it out of early 2000's Sony QS gear.
09:41:53 <LordAro> my old machine was dying (suspect CPU/MB intermittent fault), so figured I might as well go for something nice
09:42:04 <reldred> so a lot is going to be based on timing of finding the minidisc deck for that hifi setup that I'm after.
09:42:22 <reldred> Say, anyone in sweden/denmark/norway who can do me a favor? there's money in it for you ๐Ÿ™‚
09:42:56 <reldred> (I don't expect so but hey worth a shot)
09:43:04 <andythenorth> I am so glad I don't understand most of this
09:43:10 <andythenorth> I used to have to know about computers
09:44:23 <reldred> computers are a mistake
09:44:39 <reldred> that said if I'm going to get involved with said mistakes I want them to be nice
09:45:50 <reldred> https://cdn.discordapp.com/attachments/1008473233844097104/1225380802888466443/North_XL_Charcoal_Mesh_1-Left-Front-540x540.webp?ex=6620ebcd&is=660e76cd&hm=fbd5dbec4b5e84c8821a09eae2246e8e2b6e1a075faa2694a8c898761c133bfb&
09:45:50 <reldred> and the north is quite pleasing to look at
09:46:14 <reldred> that with a bunch of sony QS line hifi gear in black with bronze accents will look quite sharp
09:46:18 <LordAro> both of my cases are fractals
09:46:24 <LordAro> they're very nice
09:49:25 <LordAro> Define 5(?) & Node 304
09:49:56 <xarick> https://uk.pcpartpicker.com/list/GD6CPF got this
09:50:32 <reldred> that's actually not too bad
09:50:51 <reldred> Surprised you got a GPU in that budget
09:51:14 <reldred> andythenorth: if you haven't already dealt with the kidlets PC, I'd give that parts list a look
09:51:38 <andythenorth> they are happy with what they got
09:51:45 <andythenorth> or at least, they're done with talking to me about it
09:51:49 <reldred> hahahahah
09:51:49 <andythenorth> I had opinions
09:51:57 <reldred> Yes I suspected you'd already dealt with it
09:52:13 <reldred> but xarick was determined
09:52:15 <reldred> lmaop
09:52:47 <xarick> i was trying to put a 7600 in there, but...
09:52:57 <xarick> lower vram
09:53:48 <peter1138> LordAro: Yeah, for me WiFi is not really a desktop PC thing. But there's enough of it about that apparently it is.
09:54:34 <xarick> but again, 16 GB RAM is kind of a minimum for today's standard
09:54:35 <peter1138> And bluetooth isn't needed because peripherals are usually wired...
09:54:51 <xarick> pretty tight bugget
09:55:02 <reldred> Andy was very upset about the lack of BT and Wifi I remember
09:55:08 <xarick> games are starting to eat ram nowadays
09:55:25 <peter1138> They're normal on a laptop. Maybe he only uses laptops...
09:55:42 <reldred> xarick: I wouldn't know, I'm still playing Skyrim...
09:56:02 <reldred> That said, my mod load order on a 3440x1440 monitor really wants something faster than a 3070
09:56:41 <peter1138> I was thinking 4070 or even 4070ti
09:57:16 <pickpacket> is it lunch soon?
09:57:50 <reldred> see a 4070ti would be nice but for that sorta money I could buy my grail minidisc deck I'm after
10:00:38 <LordAro> alternatively you could use some audio device from this century
10:00:39 <LordAro> :p
10:01:21 <reldred> yeah they're from this century, my MZ-RH1 is from this century ๐Ÿ˜›
10:01:43 <reldred> and the MDS-JB980 that I'm after is 2002! that's from this century!
10:07:20 *** matusguy has joined #openttd
10:07:55 <xarick> https://uk.pcpartpicker.com/list/p3fq89 - better gpu, albeit with less vram
10:09:50 <xarick> now for that GPU, you are really better with a B550 chipset, and 5600 cpu minimum, for full speed pcie
10:10:17 <xarick> if you go ryzen 5 5500 then you're at pcie 3 ๐Ÿ˜ฆ
10:10:36 <xarick> if you go A520, then you're at pcie3
10:10:51 <xarick> and that crap uses only 8 lanes ๐Ÿ˜ฆ
10:11:15 <xarick> the rtx 4060 and rx 7600 both use only 8 pcie lanes ๐Ÿ˜ฆ
10:11:47 <xarick> for optimum speeds then pci-e 4x 8 lanes
10:13:46 <xarick> I think intel might be better at this low budget
10:14:00 <xarick> haven't checked
10:14:44 <Eddi|zuHause> "intel is better at low budget" is a sentence i've not heard in the last 20 years
10:15:09 <reldred> it's OK xarick we don't need to build a 700 quid gaming PC anymore
10:15:29 <reldred> unless you're having fun that is
10:15:32 <xarick> well, intel has the core i3 at very tempting prices
10:15:40 <xarick> and still retaining pcie 4
10:16:22 <xarick> but a quad core is starting to be... outdated
10:17:38 <xarick> they have the 12400f, a 6 core, very much equivalent to the 5600
10:17:44 <xarick> performance wise
10:18:25 <peter1138> core i3 is never tempting.
10:20:11 *** keikoz has joined #openttd
10:20:26 <xarick> 12100f at ยฃ85, 12400f at ยฃ124
10:22:21 <xarick> well, ยฃ40 is not sufficient for the next gpu tier ๐Ÿ˜ฆ
10:22:41 <xarick> so there you have it, Ryzen 5 5600 with a RTX 4060
10:22:57 <xarick> fits the ยฃ700, motherboard has wifi/bluetooth
10:23:25 <xarick> case has 6 fans
10:23:31 <xarick> psu 650 watts
10:23:34 <peter1138> He's in write-only mode again ๐Ÿ™‚
10:23:39 <xarick> I ๐Ÿ™‚
10:24:13 <reldred> task must run until execution has completed
10:25:38 <andythenorth> My child just bought one based on price and the GPU label
10:26:29 <andythenorth> He doesnโ€™t like spending money and looked up which GPU was enough for Fortnite and Minecraft
10:33:40 <johnfranklin> #1?
10:38:47 *** keoz has joined #openttd
10:40:41 *** keikoz has quit IRC (Ping timeout: 480 seconds)
10:49:35 *** bertvvvs has joined #openttd
10:59:57 *** Flygon has joined #openttd
11:08:29 <peter1138> <https://www.tt-forums.net/viewtopic.php?t=91542> such cheating
11:29:30 *** gelignite has joined #openttd
11:34:49 <locosage> just remove highscores :p
11:34:54 <DorpsGek> [OpenTTD/OpenTTD] PeterN opened pull request #12418: Fix: Segfault when using -q without providing a . character. https://github.com/OpenTTD/OpenTTD/pull/12418
11:35:13 <peter1138> I was amused by "I want to cheat without be called a cheater"
11:35:35 <andythenorth> thread is going well
11:39:40 <locosage> tbf there is a bit of contradiction in the game design here
11:39:51 <locosage> if "cheats" are just settings why are they separate
11:39:57 <locosage> if there is no goal why are there highscores
11:40:34 <peter1138> Well someone had plans to sort out the cheats stuff be we only got as far as renaming it so far.
11:40:49 <andythenorth> why is there a web of skin between human thumb and first finger
11:40:59 <peter1138> I'm now in favour of just making things settings and letting the players decide.
11:41:03 <andythenorth> other primates mostly don't have the web
11:41:15 <peter1138> Which is why we put infinite money as a setting instead of a cheat.
11:42:00 <peter1138> Do you have webbed hands andy? Are you inbred?
11:42:32 <_jgr_> Actions like the date cheat and the money cheat aren't really settings, but still need to live somewhere
11:43:44 <peter1138> Can anyone explain the point of `static Blitters &s_blitters = *new Blitters()` and later `delete &GetBlitters()` ?
11:44:02 <peter1138> `static Blitters s_blitters` would work fine.
11:44:17 <peter1138> I'm wondering if it's a left-over from non-C++ containers or something.
11:45:23 <peter1138> Hmm, no, it's always been a std::map.
11:46:26 <peter1138> Same is done for s_drivers too.
11:46:39 <_glx_> Factory stuff
11:47:01 <peter1138> It would be required if s_blitters was file-scope, as it might not be initialised yet.
11:47:10 <locosage> _jgr_: they can still stay as cheats, it's not that the concept of cheats/dev tools is wrong
11:47:18 <locosage> they just shouldn't be treated as intended gameplay
11:47:21 <peter1138> But because it's inside a function, it will be initialised on first use automatically.
11:48:20 <peter1138> drivers was apparently done by me, but I even commented that I copied the blitters model ๐Ÿ™‚
11:49:11 <peter1138> 2007, so many centuries ago.
11:54:02 <_glx_> TB did the driver stuff IIRC
11:54:28 <andythenorth> peter1138: you don't? ๐Ÿ˜ฎ
11:54:43 <andythenorth> peter1138: you don't? ๐Ÿ˜ฎ
11:54:59 <andythenorth> why is discord so unreliable for 'reply' sometimes? ๐Ÿ˜›
11:55:04 <andythenorth> PEBKAC?
11:57:09 *** SigHunter has quit IRC ()
12:00:14 *** SigHunter has joined #openttd
12:03:15 <DorpsGek> [OpenTTD/OpenTTD] glx22 approved pull request #12418: Fix: Segfault when using -q without providing a . character. https://github.com/OpenTTD/OpenTTD/pull/12418#pullrequestreview-1979668654
12:13:33 <DorpsGek> [OpenTTD/OpenTTD] PeterN commented on pull request #12413: Codechange: Remove per font AA settings. https://github.com/OpenTTD/OpenTTD/pull/12413#issuecomment-2037015142
12:40:46 <xarick> i wish there was a setting to forbid an AI to respawn after bankrupting
12:41:12 <truebrain> _glx_: Blitters, yes, but the factory was already there I think ๐Ÿ˜›
12:41:17 *** gelignite has quit IRC (Quit: Stay safe!)
12:50:56 <peter1138> Apparently we had blitter and renderer originally.
12:51:04 <xarick> https://cdn.discordapp.com/attachments/1008473233844097104/1225427420430209124/2024-04-04_13-49-09.mp4?ex=66211738&is=660ea238&hm=e27918c646da40b5269eaaa8e444a9a06cc7ab719a5b2a1625bdc70afee93969&
12:51:13 <xarick> variable opcodes in action
12:51:56 <peter1138> But there was no factory before that, afaik.
12:52:24 *** ialokin has joined #openttd
12:53:25 <peter1138> Anyway, I can easily remove the weirdness, unless there's a particular reason it was done ๐Ÿ™‚
12:57:34 <peter1138> And also fix the WindowDescs one, which is a memory leak at the moment as that doesn't follow the same pattern, and there's no delete.
13:00:51 <peter1138> Hmm, is there's a generic "command was completed" callback, with the command type...
13:01:25 <peter1138> Although I'm being silly ๐Ÿ˜„
13:11:52 <xarick> https://cdn.discordapp.com/attachments/1008473233844097104/1225432656162979880/Unnamed_1947-08-18.png?ex=66211c18&is=660ea718&hm=190e2cab90c7c9900e3bdf00535cd5f80a798064bd18787f221e551e5d2bf362&
13:11:52 <xarick> AI can survive infrastructure maintenance costs now
13:12:37 <xarick> no other AI dares to build aircraft with such low capacity
13:13:13 <xarick> my AI already had 1 aircraft crash, it's still alive
13:14:15 *** Leopold_ has joined #openttd
13:17:09 <xarick> I had hopes AAAHogEx would build something, guess he's not risking it
13:21:14 <xarick> https://cdn.discordapp.com/attachments/1008473233844097104/1225435011604549753/Unnamed_1948-05-07.png?ex=66211e4a&is=660ea94a&hm=5b1dd75901d564cbe1cca2be08f87991e409e51621986927087807992c5449e3&
13:21:14 <xarick> Coleman Count is out! will that make him build?
13:25:54 *** Leopold_ has quit IRC ()
13:39:20 <DorpsGek> [OpenTTD/OpenTTD] PeterN merged pull request #12418: Fix: Segfault when using -q without providing a . character. https://github.com/OpenTTD/OpenTTD/pull/12418
13:40:52 <truebrain> peter1138: As long as a blitter can be changed runtime, any solution works ๐Ÿ™‚
13:45:54 <peter1138> We give them day length, now they want anti-day length
13:46:36 *** haydern has joined #openttd
13:46:36 <haydern> peter1138: hey
13:46:48 <haydern> can ou help me litte bit ?
13:57:06 <LordAro> @topic get 3
13:57:06 <DorpsGek> LordAro: Don't ask to ask, just ask
13:58:53 <locosage> lordaro4353: that doesn't work in the discord :p
13:59:02 <LordAro> i thought not
13:59:04 <LordAro> but eh.
14:12:47 <xarick> https://cdn.discordapp.com/attachments/1008473233844097104/1225447982950912122/Unnamed_1952-01-28.png?ex=66212a5e&is=660eb55e&hm=78979f9d1693740aac27cf724b9ebf47ed151d710b3a807561e50810dedd6189&
14:12:47 <xarick> Terron played the long game...
14:13:04 <xarick> waited long enough for the release of a better airplane
14:13:37 <xarick> and now it's beating me
14:14:16 <xarick> and I'm struggling to upgrade my planes
14:15:22 <xarick> darn openttd economics
14:15:55 <xarick> meanwhile clueless bankrupted ๐Ÿ˜ฆ
14:17:14 *** merni has quit IRC (Quit: User went offline on Discord a while ago)
14:17:40 <xarick> NoCAB must have tried the coleman count but bankrupted too, I totally missed it
14:19:20 <xarick> AAAHogEx is still not attempting aircraft :=)
14:36:49 *** nielsm has joined #openttd
14:39:01 <xarick> crap, my ai is building trains, that's cheating...
14:51:47 *** bertvvvs has quit IRC (Quit: You have a nice day.)
14:54:26 <xarick> https://poe.ninja/builds/necropolishcssfr/ should I go back to playing poe?
15:05:18 *** Wormnest has joined #openttd
15:08:50 <peter1138> Sales Total ยฃ1138... coincidence?
15:09:14 <peter1138> (Yes, yes it is)
15:11:08 *** eushwa has joined #openttd
15:11:08 <eushwa> Gift 50$ - [steamcommunity.com/gift/50](https://u.to/v7KRIA )
15:11:08 <eushwa> all all
15:12:04 <xarick> what?
15:16:26 <LordAro> ignore the bot
15:31:54 *** Smedles has quit IRC (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.)
15:31:59 *** Smedles has joined #openttd
16:08:27 <DorpsGek> [OpenTTD/OpenTTD] PeterN opened pull request #12419: Fix #12395: Ensure president name widget is tall enough. https://github.com/OpenTTD/OpenTTD/pull/12419
16:51:28 <DorpsGek> [OpenTTD/OpenTTD] rubidium42 approved pull request #12419: Fix #12395: Ensure president name widget is tall enough. https://github.com/OpenTTD/OpenTTD/pull/12419#pullrequestreview-1980568147
16:53:42 <DorpsGek> [OpenTTD/OpenTTD] PeterN commented on issue #12149: [Bug]: Incorrect tile redraw area on 2x and 4x zoom https://github.com/OpenTTD/OpenTTD/issues/12149
16:55:34 <peter1138> So, anyone object to me fixing r23316?
16:55:45 <LordAro> nope
16:56:20 <DorpsGek> [OpenTTD/OpenTTD] PeterN merged pull request #12419: Fix #12395: Ensure president name widget is tall enough. https://github.com/OpenTTD/OpenTTD/pull/12419
16:56:24 <DorpsGek> [OpenTTD/OpenTTD] PeterN closed issue #12395: [Bug]: Manager name can be cut off in company window https://github.com/OpenTTD/OpenTTD/issues/12395
16:57:39 <Rubidium> wait, what? r23316 isn't fixed yet?!?
16:58:07 <Rubidium> there's like seven fixes already
17:59:27 <peter1138> Only 7, or only 7 blaming it ๐Ÿ˜„
18:00:09 <Rubidium> seven mentioning it in the commit message
18:07:58 <peter1138> After fixing it, this is a few lines of code. Not that it's advisable, but...
18:08:00 <peter1138> https://cdn.discordapp.com/attachments/1008473233844097104/1225507177360392203/image.png?ex=6621617f&is=660eec7f&hm=90fdd0f1e3c91dd17bf362992bd868c83bf3673f1b9ec4d6fe978ac0c39c40a2&
18:09:31 <truebrain> nice photoshop
18:16:40 <peter1138> Certainly... and I had to increase my sprite cache size a bit ๐Ÿ™‚
18:19:27 <truebrain> still no liblzma fix? Awh
18:22:30 <frosch123> no fix found on 404 day?
18:38:42 <Rubidium> would likely be less bad than "no fix found on day 404"
19:01:37 <truebrain> hmm .. I did read the other day some of you gave some thought to how language packs could be replaced by something not binary?
19:01:49 <truebrain> did anyone gave that some actual thought / wrote something down about it?
19:03:20 <peter1138> I don't remember anything other than a translator wanting to try their changes in RC3.
19:04:38 <_glx_> Only thing I can imagine is keeping compiled language as they are, but also support txt as overload
19:04:40 <silent_tempest> Why are the language packs binary? Intertia?
19:05:25 <Rubidium> I gave it some actual thought but abandoned it as ensuring there is also an english.txt available that matches with the actually running executable is a bear trap I do not want to step into
19:05:45 <truebrain> Rubidium: ghehe; I can imagine ๐Ÿ™‚
19:05:49 <_glx_> English.txt should always be compiled
19:06:09 <Rubidium> _glx_: but.... I want to change some strings in english.txt... why can't I?!? ;)
19:06:39 <frosch123> strgen is already part of ottd for gs. so it's possible to skip the binary format for the translations. but i have not read any suggestion for replacing stringids or the control-code signature of the base language
19:06:42 <Rubidium> as practically there is no reason why it can't be changed, as long as the strings and parameters match with what's compiled
19:07:36 <frosch123> maybe the parameters can be added to the string id
19:07:52 <truebrain> frosch123: my question wasn't specific to the base language, so to delve into the other part of your answer, in what format would the translation be? Current txt file?
19:08:19 <frosch123> (STR_MEASURE_AREA, NUM, NUM)
19:08:24 <michi_cc> Store StringID as the actual string identifier in the exe, you say? ๐Ÿ˜›
19:08:28 <frosch123> truebrain: yes, same as GS
19:08:34 <michi_cc> Even Windows DLL lookup is mostly by string and not by index.
19:09:04 <truebrain> frosch123: k, tnx ๐Ÿ™‚
19:09:09 <frosch123> though there are some ##pragmas which are only in the ottd lang files, and in no gs
19:22:11 *** michi_cc has quit IRC (Ping timeout: 480 seconds)
19:22:12 *** peter1138 has quit IRC (Ping timeout: 480 seconds)
19:22:15 *** locosage has quit IRC (Ping timeout: 480 seconds)
19:22:15 *** johnfranklin has quit IRC (Ping timeout: 480 seconds)
19:22:17 *** yaemiko_500 has quit IRC (Ping timeout: 480 seconds)
19:22:17 *** _zephyris has quit IRC (Ping timeout: 480 seconds)
19:22:20 *** audigex has quit IRC (Ping timeout: 480 seconds)
19:22:22 *** _jgr_ has quit IRC (Ping timeout: 480 seconds)
19:22:25 *** kamnet has quit IRC (Ping timeout: 480 seconds)
19:22:25 *** DorpsGek_vi has quit IRC (Ping timeout: 480 seconds)
19:22:26 *** emperorjake has quit IRC (Ping timeout: 480 seconds)
19:22:26 *** truebrain has quit IRC (Ping timeout: 480 seconds)
19:22:30 *** silent_tempest has quit IRC (Ping timeout: 480 seconds)
19:22:31 *** nanapipirara has quit IRC (Ping timeout: 480 seconds)
19:22:31 *** __karma has quit IRC (Ping timeout: 480 seconds)
19:22:31 *** kuhnovic has quit IRC (Ping timeout: 480 seconds)
19:23:01 *** xarick has quit IRC (Ping timeout: 480 seconds)
19:23:05 *** andythenorth has quit IRC (Ping timeout: 480 seconds)
19:23:06 *** _glx_ has quit IRC (Ping timeout: 480 seconds)
19:23:06 *** jfs has quit IRC (Ping timeout: 480 seconds)
19:23:06 *** patryk0747953 has quit IRC (Ping timeout: 480 seconds)
19:23:10 *** belajalilija has quit IRC (Ping timeout: 480 seconds)
19:23:11 *** klote has quit IRC (Ping timeout: 480 seconds)
19:23:11 *** lucafiorini has quit IRC (Ping timeout: 480 seconds)
19:23:11 *** rubberduckyistheone has quit IRC (Read error: Connection reset by peer)
19:23:11 *** quantom2 has quit IRC (Read error: Connection reset by peer)
19:23:11 *** trey032040 has quit IRC (Read error: Connection reset by peer)
19:23:11 *** digitalfox has quit IRC (Read error: Connection reset by peer)
19:23:11 *** georgevb has quit IRC (Read error: Connection reset by peer)
19:23:11 *** masteroktagon has quit IRC (Read error: Connection reset by peer)
19:23:11 *** wensimehrp has quit IRC (Read error: Connection reset by peer)
19:23:11 *** drludde has quit IRC (Read error: Connection reset by peer)
19:23:11 *** sparknf has quit IRC (Read error: Connection reset by peer)
19:23:11 *** jeevadotnet has quit IRC (Read error: Connection reset by peer)
19:23:11 *** notluke2578 has quit IRC (Read error: Connection reset by peer)
19:23:11 *** lemuria0685 has quit IRC (Read error: Connection reset by peer)
19:23:11 *** alfagamma7 has quit IRC (Read error: Connection reset by peer)
19:23:11 *** muxydugoulp has quit IRC (Read error: Connection reset by peer)
19:23:11 *** lapingvino has quit IRC (Read error: Connection reset by peer)
19:23:11 *** airdroplivelinkinbi0 has quit IRC (Read error: Connection reset by peer)
19:23:11 *** rutoks has quit IRC (Read error: Connection reset by peer)
19:23:11 *** tateisukannanirase has quit IRC (Remote host closed the connection)
19:23:11 *** eushwa has quit IRC (Write error: connection closed)
19:23:11 *** frosch123 has quit IRC (Write error: connection closed)
19:23:11 *** brickblock19280 has quit IRC (Write error: connection closed)
19:23:11 *** reldred has quit IRC (Write error: connection closed)
19:23:11 *** talltyler has quit IRC (Write error: connection closed)
19:23:11 *** charlieatlas_ff03k64 has quit IRC (Write error: connection closed)
19:23:11 *** siciuvatiresubumbras has quit IRC (Write error: connection closed)
19:23:11 *** isosys has quit IRC (Remote host closed the connection)
19:23:11 *** xertov has quit IRC (Remote host closed the connection)
19:23:11 *** gebik4544 has quit IRC (Remote host closed the connection)
19:23:11 *** haydern has quit IRC (Remote host closed the connection)
19:23:11 *** ahyangyi has quit IRC (Remote host closed the connection)
19:23:31 *** DorpsGek_vi has joined #openttd
19:23:32 *** truebrain has joined #openttd
19:23:32 <truebrain> CMake hook during build-process? ๐Ÿ˜›
19:25:47 *** frosch123 has joined #openttd
19:25:47 <frosch123> hmm, i guess it would end with something like one strings.h per gui, similar to the widget enum headers
19:26:34 <frosch123> multiple header which define string-names and parameter types
19:27:39 <truebrain> you could invert the english.txt. Where we define the english strings in a header file, which is converted into a .txt file for strgen on compile
19:27:40 <frosch123> maybe a runtime check of english.txt is not that bad after all, it's kind of a unittest
19:27:56 <truebrain> makes a "strings.h per GUI" a bit easier
19:28:23 *** peter1138 has joined #openttd
19:28:23 <peter1138> I did wonder how to split strings.h up. But didn't think too much ๐Ÿ™‚
19:28:39 <frosch123> well, the ideally the header would only contain the STR_xxx and the parameter types, but not the actual text
19:29:04 <frosch123> currently you can't split strings.h, because it is a consecutive index into the lang files
19:29:16 <frosch123> but that issue vanishes, if the keys are no longer integers
19:29:32 <frosch123> but str_xxx-param-type tuples
19:29:39 <truebrain> frosch123: why is that ideally? Sounds horrible, to have two places we need to define str ๐Ÿ˜›
19:30:33 <frosch123> hmm, also true
19:30:46 <frosch123> there is no advantage in keeping a separate file for the texts
19:31:11 <frosch123> i thought there would be an advantage of handling english.txt the same as the translations, for the text part
19:31:20 <frosch123> but i guess there is none
19:31:35 <truebrain> it is often more confusing / annoying than anything else, tbh
19:31:41 <truebrain> mostly the ones which have to match some enum list
19:31:49 *** michi_cc has joined #openttd
19:31:49 <michi_cc> Hmm, remove the header as well, and you can use gettext ๐Ÿ˜›
19:32:17 <frosch123> teach gettext our string commands :p
19:32:18 <Rubidium> good luck transforming NewGRF texts into gettext
19:33:02 <frosch123> there is value in having all strings in one header file, instead of scattered over a cpp file
19:33:15 *** nielsm has quit IRC (Ping timeout: 480 seconds)
19:33:25 <frosch123> you can reference the same string from different places, and it's easier to compare texts and keep them consistent
19:33:31 <truebrain> yup
19:34:38 <frosch123> an my previous job we used gettext, and there were usually 20 misspellings of the same text, and translators charged per text
19:36:43 <frosch123> oh, another silly though i had at some point. if stringid were no integers, but structs/tuples, we could remove setdparam and have type-safe setters for each parameter
19:37:07 <truebrain> also remove copydparam? ๐Ÿ˜›
19:37:35 <frosch123> your rabbithole may lead to australia, greet pikka if you meet him
19:37:51 <truebrain> I made a PR to remove most of copydparam .. it was horrible
19:38:40 *** _glx_ has joined #openttd
19:38:40 <_glx_> construct strings like GSText ?
19:39:22 <_glx_> params are local to the string itself
19:39:23 <frosch123> kind of, but without scattering them throughout the code
19:39:49 *** D-HUND is now known as debdog
19:40:02 <truebrain> you would get something like `GetString(STR_NNN, 12, "my new text")`, in the code, not?
19:40:07 <truebrain> as you can validate the parameters ๐Ÿ˜›
19:40:32 <frosch123> ``class STR_MEASURE_AREA : public String { STR_MEASURE_AREA(int w, int h); }``
19:40:49 <_glx_> that looks painful
19:40:57 <frosch123> the thing between the { } is the constructor, it looks weird in uppercase
19:41:12 <truebrain> so much like `GSText`? ๐Ÿ™‚
19:41:24 <frosch123> on usage you would do ``STR_MEASURE_AREA(w, h).GetString`` etc
19:41:38 <truebrain> `local text = GSText(GSText.STR_NEWS, 1);`, for comparison
19:42:15 <frosch123> yes, except they are separate classes in a header, and not anonymous instances in the cpp at every usage
19:42:36 <truebrain> `STR_NEWS` is not really anonymous, but I have the feeling you are talking about something different ๐Ÿ™‚
19:43:00 <DorpsGek> [OpenTTD/OpenTTD] rubidium42 updated pull request #12337: Change: replace company passwords with allowlist https://github.com/OpenTTD/OpenTTD/pull/12337
19:43:38 <frosch123> maybe it's not like GSText. GSText does a runtime check. i mean a compile time check
19:43:55 <_glx_> using GSText like you remove the need to CopyDParam
19:44:00 <DorpsGek> [OpenTTD/OpenTTD] rubidium42 opened pull request #12420: Add: support for admin to change company allow lists https://github.com/OpenTTD/OpenTTD/pull/12420
19:44:24 <truebrain> frosch123: lol, you are now comparing a dynamic language with a compiled language; feels like you are trying to find a difference now ๐Ÿ˜„
19:44:34 <truebrain> but I think we all mean the same here, tbh
19:45:11 <truebrain> whether it is `GSText(GSText.STR_NEWS, 1)` or `GetString(STR_MEASURE_AREA, w, h)` or `STR_MEASURE_AREA(w, h).GetString()` .. those all feel like alternatives of each other ๐Ÿ™‚
19:45:42 <truebrain> `fmt` shows nicely that the first two forms ofc also work
19:45:49 <truebrain> (in regards to compile-time validation)
19:46:19 <frosch123> ok, different analogy: i mean it like the squirrel wrapper. you declare a string class, and the compiler detects the parameter types and generates a type-safe translation-reader from it
19:47:14 <truebrain> as I said, we all mean the same thing here ๐Ÿ˜‰
19:47:29 <truebrain> either way, it would make reading our code easier, if it is more clear what the ffffff those parameters of those strings are ๐Ÿ˜›
19:48:12 <truebrain> but it would make our parameters tightly coupled to the strings
19:48:19 <truebrain> and some places do nasty tricks atm
19:48:37 <truebrain> none I found that couldn't be resolved; just some more painful than others ๐Ÿ˜„
19:48:58 <_glx_> would also remove global param array, and probably STRING1 and friends too
19:49:49 <_glx_> except for GS I guess
19:51:02 <_glx_> though the encoded string format is basically a conversion from GS to the global param array
19:51:04 <Rubidium> a squirrel-like generator would allow making xyz_strings.h generated files for each of the cpp files that have strings, containing only those string classes with the parameter information extracted from english.txt. Then it's up to the linker to remove the duplicates; yay ODR.
19:51:42 <Rubidium> if that generator is reasonably smart (only replace file when changed), it would even prevent massive recompiles when changing a few strings
19:52:18 <_glx_> cmake is smart when you generate files
19:52:27 <_glx_> it compares before write
19:52:29 <DorpsGek> [OpenTTD/OpenTTD] PeterN opened pull request #12421: Codechange: Make ZOOM_LVL_NORMAL be 1x zoom. https://github.com/OpenTTD/OpenTTD/pull/12421
19:53:08 <truebrain> lol @ 12421 .. are we again going to change what that enum means? That enum has been changed so often ๐Ÿ˜›
19:53:15 <truebrain> (not saying it is a bad thing!)
19:53:18 <peter1138> "Fix r23316"
19:53:36 <peter1138> Well I checked, and it did originally mean the current values. So I was confused.
19:53:43 <peter1138> Did we change it at some point, and then change it back?
19:54:03 <peter1138> But yes, I thought we had them too.
19:54:25 <truebrain> the ZOOM_LVL definition has caused more than one conversation over the years ๐Ÿ˜„
19:54:42 <truebrain> your new suggestion is what I always assumed, but currently wasn't true ๐Ÿ˜„
19:55:28 <truebrain> `ZOOM_LVL_MIN` is also smart ๐Ÿ™‚
19:55:34 <truebrain> we didn't use that often enough ๐Ÿ˜›
19:56:07 <peter1138> The first three commits are fairly uncontroversial and useful anyway, I think.
19:56:19 <peter1138> And probably the last commit is "yeah, why wasn't it like that anyway?"
19:57:31 <peter1138> Okay we had a zoom.hpp at one point.
19:58:24 <peter1138> But before r23316 there was no extra zoom, at least the commit suggests that.
19:58:58 <_glx_> last commit is how everyone suppose it actually is
19:59:09 <peter1138> ^ See
19:59:22 <truebrain> nobody dared to fix it over the years, as you wrote it
19:59:26 <truebrain> and we are secretly scared of you
19:59:27 <truebrain> ๐Ÿ˜›
19:59:59 <peter1138> https://github.com/OpenTTD/OpenTTD/commit/9bf21279f839d2452b99b4eb3324617439c18a4c
20:00:06 <peter1138> Seems related too...
20:00:35 <peter1138> So why DO I remember there being negative zoom levels and ZOOM_LVL_NORMAL being 1x zoom at some point?
20:00:39 <peter1138> Because it seems it wasn't ever that way.
20:01:04 <peter1138> And your comment suggests you thought the same, Truebrain ๐Ÿ™‚
20:01:13 <truebrain> before zoom-in, `ZOOM_LVL_NORMAL` was 1x, not?
20:01:19 <_glx_> indeed
20:01:27 <peter1138> Yes.
20:01:43 <_glx_> and everything was shifted without renaming ZOOM_LVL_NORMAL
20:01:56 <truebrain> and somewhere along the lines it got redefined as zoom-in-4x
20:02:08 <truebrain> or something
20:02:11 <truebrain> I can never remember honestly
20:02:23 <peter1138> <https://github.com/OpenTTD/OpenTTD/commit/81598273e9b6bb2ee20ebdd82f3d4646a02999ba>
20:02:29 <truebrain> yeah, looking at your PR, it does mean in-4x atm
20:03:09 <peter1138> So the initial commit that added 2x and 4x in did the bad deed.
20:03:10 <_glx_> added OUT_16X and OUT_32X
20:03:14 <frosch123> i think the negative zoom levels were from scaling in both directions: world-to-screen, and screen-to-world
20:03:31 <_glx_> for the 2 zoom in
20:03:51 <peter1138> Anyway, any objects to this PR? I'll undraft if we think it's worth doing and less confusing...
20:04:25 <DorpsGek> [OpenTTD/OpenTTD] TrueBrain approved pull request #12421: Codechange: Make ZOOM_LVL_NORMAL be 1x zoom. https://github.com/OpenTTD/OpenTTD/pull/12421#pullrequestreview-1981030730
20:04:26 <truebrain> is this also an answer?
20:04:31 <peter1138> Hehe
20:04:41 <DorpsGek> [OpenTTD/OpenTTD] TrueBrain commented on pull request #12421: Codechange: Make ZOOM_LVL_NORMAL be 1x zoom. https://github.com/OpenTTD/OpenTTD/pull/12421#issuecomment-2038111038
20:04:41 <_glx_> for me it looks how it should have been when adding the 2 zoom in
20:04:50 <peter1138> Yes, same.
20:05:16 <peter1138> Fortunately the NewGRF api only deals with numbers, so nothing changes there.
20:05:47 <peter1138> (Although those numbers are arbitrary, based on an array...)
20:06:08 <peter1138> I think NML and maybe grf-py have some comment about not matching OpenTTD's ZOOM_LVL_ stuff...
20:07:14 <frosch123> https://newgrf-specs.tt-wiki.net/wiki/NML:Alternative_sprites
20:07:35 <frosch123> they match
20:07:50 <frosch123> i was worried they swapped IN and OUT :p
20:08:10 <peter1138> Yeah, sorted oddly.
20:08:42 <peter1138> I'm pretty sure nobody ever has provided ZOOM_LEVEL_OUT_2X to ZOOM_LEVEL_OUT_8X sprites...
20:09:00 <frosch123> https://newgrf-specs.tt-wiki.net/wiki/RealSprites#zoom_level <- also matches
20:09:36 <peter1138> I am glad we have PRs and reviews these days...
20:09:39 <frosch123> peter1138: i am pretty sure some vapour grf considered them important
20:09:53 <peter1138> I'm ashamed of my past mistakes :p
20:10:29 <peter1138> Thing is, it doesn't even work properlky.
20:11:01 <peter1138> IIRC, if you provide zoomed out sprites, you end up with quite odd padding going on.
20:14:00 <DorpsGek> [OpenTTD/OpenTTD] michicc commented on pull request #12421: Codechange: Make ZOOM_LVL_NORMAL be 1x zoom. https://github.com/OpenTTD/OpenTTD/pull/12421#pullrequestreview-1981049869
20:14:15 <truebrain> nice nitpick ๐Ÿ˜„
20:15:16 <DorpsGek> [OpenTTD/OpenTTD] PeterN commented on pull request #12421: Codechange: Make ZOOM_LVL_NORMAL be 1x zoom. https://github.com/OpenTTD/OpenTTD/pull/12421#pullrequestreview-1981052642
20:15:53 <DorpsGek> [OpenTTD/OpenTTD] PeterN dismissed a review for pull request #12421: Codechange: Make ZOOM_LVL_NORMAL be 1x zoom. https://github.com/OpenTTD/OpenTTD/pull/12421#pullrequestreview-1981030730
20:15:56 <DorpsGek> [OpenTTD/OpenTTD] PeterN updated pull request #12421: Codechange: Make ZOOM_LVL_NORMAL be 1x zoom. https://github.com/OpenTTD/OpenTTD/pull/12421
20:16:32 <DorpsGek> [OpenTTD/OpenTTD] michicc approved pull request #12421: Codechange: Make ZOOM_LVL_NORMAL be 1x zoom. https://github.com/OpenTTD/OpenTTD/pull/12421#pullrequestreview-1981054949
20:16:51 <peter1138> That was me renaming ZOOM_SHIFT (which was aligned) to ZOOM_BASE_SHIFT. Because otherwise, "what does ZOOM_SHIFT even mean"
20:17:14 <truebrain> frosch123: I had a crazy idea ... https://gist.github.com/TrueBrain/83dd9e6b35f6a6b15dd7ea6dd6b6c2c8 am I missing any features or things to think about while at it?
20:17:34 <peter1138> And strictly speaking the static_cast isn't necessary, but it makes it clear that it is a value derived from rather than being a ZOOM_LVL_...
20:18:57 <DorpsGek> [OpenTTD/OpenTTD] github-advanced-security[bot] commented on pull request #12420: Add: support for admin to change company allow lists https://github.com/OpenTTD/OpenTTD/pull/12420#pullrequestreview-1981060389
20:20:04 <frosch123> truebrain: iirc cases were a major headache
20:20:21 <frosch123> they magically create or delete strings
20:20:33 <truebrain> owh, I forgot those `.acc` strings ๐Ÿ˜„
20:20:51 <truebrain> and yeah, that will be a bit painful
20:23:52 <frosch123> they also turn string-edit pages into huge monsters
20:24:15 <truebrain> yeah .. but I have some ideas. At least, what I wrote down now, means it will be a javascript enabled website
20:24:22 <truebrain> which means you can make things a bit easier on the eye
20:24:54 <truebrain> so possibly something we can tackle while at it; and if not, it would remain huge monsters ๐Ÿ˜„
20:25:38 <frosch123> please use the same code for string validation on client and server side ๐Ÿ™‚ every time a new string code is added to ottd, someone has to update all the tools
20:25:49 <truebrain> will do
20:25:55 <frosch123> also https://translator.openttd.org/language-list is used by some tools, but sadly not all
20:26:10 <frosch123> duplicating language definition is also ridiculous
20:26:38 <truebrain> wrote down to retain that page as it is
20:27:19 <truebrain> possibly I just make a JSON in this new GitHub repo that defines these language properties, and no longer make OpenTTD be the boss of them ๐Ÿ™‚
20:27:28 <DorpsGek> [OpenTTD/OpenTTD] rubidium42 updated pull request #12420: Add: support for admin to change company allow lists https://github.com/OpenTTD/OpenTTD/pull/12420
20:27:37 <truebrain> (like OpenTTD already isn't the boss of individual translations)
20:28:41 <frosch123> yeah, this stuff predates github, now tools could also fetch the data from some repo
20:28:53 <frosch123> though i read submodules are unpopular
20:28:57 <truebrain> I really like this solution for wiki and bananas; so I was like, why not do it here too
20:29:34 <truebrain> but okay, anything I am missing in this list, some feature that is in eints that I am not aware of (that you know)?
20:32:34 <frosch123> there is some special magic: if parameters change, the strings become invalid. they are still shown in the translator, but they are removed from the .txt for the nightly
20:32:53 <frosch123> and then there is this stupid cannot-revert-translation bug
20:33:20 <truebrain> frosch123: was already on the list, but made it more explicit. Tnx ๐Ÿ™‚
20:33:29 <frosch123> which originates from trying to support changing translations via the source repo, so eints tries to detect the newest string by comparing them with older ones
20:33:48 <frosch123> so, if there is a hard oneway road from translations->ottd, that can be solved
20:34:03 <truebrain> I would think: english.txt is ottd->translations
20:34:09 <truebrain> everything else is translations->ottd
20:34:41 <frosch123> ah, the problem was the language meta data
20:34:51 <frosch123> ##pragmas were always ottd->translator
20:35:05 <frosch123> but you said you want to change that ๐Ÿ™‚
20:35:15 <truebrain> very much so ๐Ÿ™‚
20:35:31 <truebrain> can all metas just be added to OpenSFX etc too?
20:35:45 <frosch123> for steam-data there is also extra magic: we only offer a subset of the languages
20:35:57 <truebrain> yeah, there too, a JSON file in this new GitHub repo ๐Ÿ™‚
20:36:16 <truebrain> means anyone can change it when needed
20:36:23 <truebrain> also means OpenTTD is no longer in control what translations exist ๐Ÿ˜›
20:36:31 <frosch123> there are differences in the string commands for ottd/gs/newgrf
20:36:49 <frosch123> so you need different string-validation and .txt converters anyway
20:36:52 <truebrain> good point; will use what-ever eints does there now ๐Ÿ™‚
20:36:57 <frosch123> those can filter the extra ##pragma
20:37:22 <truebrain> and hmm, indeed, this would also allow us to (finally?) offer gs/newgrf translations ๐Ÿ™‚
20:37:41 <frosch123> i would recommend you to ignore gs/newgrf
20:37:48 <truebrain> I need to do OpenSFX ๐Ÿ™‚
20:38:19 <DorpsGek> [OpenTTD/OpenTTD] rubidium42 updated pull request #12420: Add: support for admin to change company allow lists https://github.com/OpenTTD/OpenTTD/pull/12420
20:38:29 <frosch123> barely any gs/newgrf is on github, and all their authors have strong opinions about what goes into their content, and would never accept a translation->content oneway road
20:38:47 <truebrain> fair enough
20:38:56 <frosch123> even andy rejected both ideas of a tool force-pushing and auto-creating PRs
20:39:11 <truebrain> Their choice ๐Ÿ™‚
20:39:40 <frosch123> and even worse: we had like 50 projects on devzone translator, and 48 were dead/unmaintained, so translations were never released
20:39:58 <frosch123> this ties into your other old idea, of uploading translations to bananans independent of the content
20:40:13 <truebrain> we never lack ideas ๐Ÿ˜„
20:40:26 <truebrain> but okay .. so mainly my idea for translator is to move a lot of the logic to the frontend, instead of having it on the backend
20:40:44 <truebrain> that should both make it easier for people to help out with changes etc, and not have a backend that consumes 500MB of RAM ๐Ÿ˜›
20:41:04 <truebrain> although .. people helping out ... so far the group of non-devs that helped out with any such tooling is VERY small ๐Ÿ˜›
20:41:27 <frosch123> well, i have basic knowledge of rust now ๐Ÿ™‚
20:41:39 <truebrain> backend in Rust you say .... ๐Ÿ˜„
20:41:41 <frosch123> i need more training
20:42:07 <frosch123> if the string validation is in rust, it may work as wasm in the frontend
20:42:29 <truebrain> ideally I would like to run the backend on Cloudflare Workers, so we have zero cost for all this
20:42:35 <truebrain> (like zero, not "almost zero", no: zero)
20:42:43 <truebrain> but that can also run WASM ๐Ÿ˜›
20:42:51 <truebrain> so it will be either Javascript (well, TypeScript) or Rust, yeah
20:43:13 <truebrain> mostly where I make this balance is on: is it slow to do in TypeScript?
20:43:17 <truebrain> if so, offload to Rust ๐Ÿ™‚
20:43:24 <peter1138> Hmm.
20:43:48 <frosch123> you have already seen my motivation to do stuff in js :p
20:44:01 <truebrain> yeah ... well, this is TypeScript, it is a lot better to do stuff in there ๐Ÿ™‚
20:44:16 <truebrain> but I need to look into the complexity of case/gender/plural again
20:44:20 <truebrain> I totally surprised any memory of that ๐Ÿ˜›
20:44:33 <truebrain> surprised? suppressed ....
20:44:37 <truebrain> that is a weird typo
20:44:46 <frosch123> that stuff is in two files in eints
20:45:06 <truebrain> one of them is most likely `config.py`
20:45:10 <truebrain> as the whole of eints is in `config.py`
20:45:11 <truebrain> ๐Ÿ˜›
20:45:51 <frosch123> https://github.com/OpenTTD/eints/blob/main/webtranslate/parameter_info_table.py <- newgrf vs gs vs ottd
20:46:13 <frosch123> https://github.com/OpenTTD/eints/blob/main/webtranslate/newgrf/language_file.py <- string validation
20:46:29 <frosch123> it's called "newgrf", but applies to all lang files :p
20:47:21 <frosch123> glx used to promote usage of strgen for validation, but i considered the eints error messages more helpful
20:47:39 <frosch123> but if you want to include rust sources into ottd :p
20:47:46 <truebrain> owh, I guess we can also address things like not showing `{STRING1}` to translators
20:48:04 <frosch123> yes, eints does hide RAW_STRING and STRINGn
20:48:14 <truebrain> well, the next thing we could talk about, is whether we should just use the JSON files as our translation source, or that converting them to .txt is actually useful ๐Ÿ˜›
20:48:16 <frosch123> that's part of the parameter_info_table
20:49:21 <frosch123> the translator json contains more data: history, author, timestamp...
20:49:33 <truebrain> okay, a stripped down version then ๐Ÿ˜›
20:49:46 <truebrain> anyway, seems that using Rust for string validation is the better route here ๐Ÿ™‚
20:51:09 <truebrain> first need to put down some basic infrastructure, without any validation any synchrozation. And we can take it from there. Will take a while ๐Ÿ™‚
20:51:51 <frosch123> webtranslator5 or 6?
20:51:56 <truebrain> something like that
20:52:15 <DorpsGek> [OpenTTD/OpenTTD] PeterN updated pull request #12421: Codechange: Make ZOOM_LVL_NORMAL be 1x zoom. https://github.com/OpenTTD/OpenTTD/pull/12421
20:52:19 <truebrain> also, when OpenTTD 14 shows that HTTPS connections work, next-up is bananas-server ๐Ÿ˜›
20:52:28 <truebrain> but as I can't start with that till 14 is released for a few weeks ..... ๐Ÿ˜„
20:54:07 <truebrain> either way, making eints run on Cloudflare will most likely save us around 40 euros a month of AWS costs ๐Ÿ˜›
20:54:14 <truebrain> which is like 20%
20:54:17 <truebrain> just saying ๐Ÿ˜‰
20:54:49 <truebrain> and hopefully HTTPS for BaNaNaS is 14 is a much bigger saving ... ๐Ÿ˜„
20:55:37 <frosch123> ah, so aws is delaying liblzma, so we have to keep paying?
20:55:50 <truebrain> yes
20:58:12 <peter1138> Cunning.
20:59:31 <frosch123> let's hope noone is quoting me again on some "official" statement
20:59:39 <truebrain> haha ๐Ÿ˜„
21:01:39 <frosch123> oh, another eints speciality: there is a difference between not changing a string, and marking an outdated string as up-to-date without changing it
21:02:34 <truebrain> is that wanted?
21:02:46 <truebrain> (I don't really care how eints does it, I have to admit; just want to make something that works ๐Ÿ˜„ )
21:03:24 <frosch123> yes, if we reword english or fix spellings, translators have nothing to do, but mark their string as "not outdated"
21:03:52 <truebrain> yes, the outdated part I got, but as there is a difference, why is there a difference?
21:04:48 <frosch123> it's like author date and committer date
21:05:02 <frosch123> it leaves the author date unchanged, but touches the committer date?
21:05:15 <frosch123> it kind of depends on how the backend stores the data
21:05:27 <truebrain> I was even wondering if keeping a history is actually useful ๐Ÿ˜›
21:05:28 <frosch123> and detects whether strings are edited or outdated
21:05:37 <truebrain> but I guess we could keep a "reflog", a short one
21:06:46 <frosch123> eints used history for two things: merging changes from the repo and from translators. and coordinating concurrent edits
21:07:49 <frosch123> originally there as also the idea, that translators could download the lang file, translate it offline, and upload it again. requiering eints to detect which translation is newer. but we disabled that, and never allowed translators to do so
21:08:10 <truebrain> yeah, that is not going to happen in this version ๐Ÿ˜„
21:08:21 <truebrain> the other things you mention sounds more like tracking state
21:08:28 <truebrain> should be fine
21:08:51 <truebrain> I do worry a bit about the git repository size, now I think about it .. each JSON will be 1MB, and any mutation would create a new 1MB file .. could grow big fast
21:08:53 <frosch123> yeah, basically all eints issues originate from trying to decide between two translations without any further timestamp information
21:09:23 *** andythenorth has joined #openttd
21:09:23 <andythenorth> is it naptime?
21:09:34 <truebrain> I could do the wiki trick, and store each string in their own file .. free history based on git information
21:09:48 <frosch123> why would the json be stored as blobs?
21:09:51 <truebrain> just loading 5000 files is meh
21:09:55 <frosch123> git should be able to track textual changes
21:10:09 <frosch123> if the json is prettified, you can even read the diff
21:10:13 <truebrain> git stores files as files; it doesn't story diffs or chunks
21:10:25 <truebrain> packing would do tricks to reduce the size, but still
21:11:02 <truebrain> (the irony in your sentence is, git calls "blobs" what we call files ๐Ÿ˜› )
21:11:48 <frosch123> one file per string is kind of extreme, you hit certain limits of number of files per folder :p
21:11:58 <truebrain> we don't have that many strings
21:11:59 <frosch123> so you need an additional weird folder structure
21:12:11 <truebrain> but I was more thinking about the free history ๐Ÿ˜›
21:12:16 <truebrain> no need to track that in the JSON
21:12:35 <truebrain> but we are back to categorizing strings, so when were you going to make your idea of earlier? ๐Ÿ˜›
21:12:57 <frosch123> which one?
21:13:12 <truebrain> the one about moving STR to hpp files ๐Ÿ˜›
21:13:44 <peter1138> No more .hpp files :S
21:13:54 <peter1138> (Change for change sake..)
21:13:57 <truebrain> peter1138: did you rename them? /me runs
21:14:01 <frosch123> ah, you want to use the same grouping in the translator for related strings?
21:14:08 <truebrain> no, for the JSON files! ๐Ÿ˜›
21:14:13 <frosch123> translators always had problems locating string usage
21:14:20 <truebrain> that too
21:14:34 <truebrain> anyway, mostly I don't really fancy storing history in the JSON
21:14:38 <truebrain> and I wonder if users actually use it
21:15:14 <frosch123> eints only offered a single history item
21:15:47 <peter1138> truebrain: No, someone else did, but someone else objected, so it got closed.
21:15:57 <frosch123> how can translators track changes of other translators? should we encourage or hide edit wars? :p
21:15:59 <truebrain> peter1138: the sarcasm of my comment was missed ๐Ÿ˜›
21:16:18 <peter1138> It's late.
21:16:22 <truebrain> frosch123: and does one line of history actually prevent that?
21:17:11 <peter1138> https://cdn.discordapp.com/attachments/1008473233844097104/1225554787517464626/image.png?ex=66218dd7&is=660f18d7&hm=da7e81420941e2f8f6b49526eaeadeadb1de687ce23d311bbf23a02de45e5d7f&
21:17:11 <peter1138> Such terrain.
21:17:29 <truebrain> see, if we would store each string in their own file, keeping a history would just be using the git log, and we could show it "on demand" (like the wiki). But if everything is in a single blob, that already becomes a bit more tricky (although you could use "git blame")
21:17:43 <andythenorth> peter1138: ideal
21:17:44 <truebrain> but every byte I don't have to store, means a byte less send to/from the client when loading the page
21:18:04 <truebrain> hmm, git blame is not the worst idea .. hmm
21:18:07 *** keoz has quit IRC (Ping timeout: 480 seconds)
21:18:07 <peter1138> File per string? Sounds... a lot.
21:18:21 <truebrain> yeah, it is. Also not going to work. But going through the motions ๐Ÿ˜›
21:18:51 <frosch123> how many commits do you want? single string per commit, then the commit message can attribute author and mention the text, so the file log gives a translation history directly in gh, without having to look at single diffs
21:19:12 <truebrain> yeah, but now the inverse: show the history per string
21:19:19 <truebrain> and I want to batch per author
21:19:35 <truebrain> as not to make a single commit per translation, but batch them together per 5 minutes or what-ever
21:20:08 *** xarick has joined #openttd
21:20:08 <xarick> who's a math/time/fps expert around here?
21:20:08 <xarick> Need to fine tune this formula https://gist.github.com/SamuXarick/8a5e021a423c763fdba04af6521f232b
21:21:15 <frosch123> ok, so either one file for the entire translation, or one file per string. intermediate solutions of N strings per file raise a new issue of moving strings between files
21:21:40 <truebrain> yup
21:21:52 <truebrain> the wiki is also one file per page ๐Ÿ˜›
21:23:16 <truebrain> okay, one-file can work with "git blame", as that would show the author and date of the last change
21:23:22 <truebrain> not what that change was, but that might be far less relevant
21:23:32 <truebrain> and you can look that up by looking at the specific commit
21:23:44 <peter1138> One file per pages makes more sense than one file per string ๐Ÿ™‚
21:24:01 <truebrain> just ~5000 files per translation; it is not that wild ๐Ÿ™‚
21:25:06 <frosch123> well, before i go to sleep: what made you switch from yaml to json? did i link enough yaml-is-bad blogs? :p
21:25:27 <truebrain> no, I was considering YAML, but loading YAML in Javascript is very slow
21:25:31 <truebrain> JSON is faster, but also slow
21:25:34 <truebrain> Protobuf would be better
21:25:37 <truebrain> but .. hard to see the diff ๐Ÿ˜›
21:26:01 <frosch123> would the frontend directly read the repo?
21:26:15 <truebrain> dunno yet; but the file would be read as-is
21:26:19 <truebrain> whether we proxy it or not, not sure
21:26:32 <frosch123> so you have one request per string?
21:26:46 <truebrain> well, if it is one file per string, the backend would collect them ๐Ÿ˜›
21:26:53 <truebrain> but again, with git blame, we can just do one file per language
21:27:07 <DorpsGek> [OpenTTD/OpenTTD] PeterN merged pull request #12421: Codechange: Make ZOOM_LVL_NORMAL be 1x zoom. https://github.com/OpenTTD/OpenTTD/pull/12421
21:27:45 <truebrain> and no history in the JSON
21:27:59 <truebrain> just translations, and possibly a state (invalidated yes/no, etc)
21:28:08 <truebrain> hmm, no, I had a better idea for that
21:28:21 <truebrain> it should just point to what english version it translated
21:28:25 <truebrain> the rest can be worked out by the frontend
21:28:57 <truebrain> (so `STR_XXXX, "2024-04-04"-english.txt-version, "translation"`)
21:29:22 <truebrain> and the english.txt-version is the git blame version of the OpenTTD .txt file ๐Ÿ˜›
21:29:25 <frosch123> oh, using a date instead of the english text?
21:29:27 <truebrain> (per STR_)
21:29:36 <frosch123> that affects reverting again
21:29:48 <truebrain> in a positive way, I would say ๐Ÿ˜›
21:29:48 <frosch123> not sure which is better
21:30:12 <truebrain> when an english text is changed from A to B to A again
21:30:16 <truebrain> there isn't really a good solution
21:30:20 <frosch123> truebrain: + case
21:30:24 <truebrain> as it could be A -> B -> C -> D -> A ๐Ÿ˜›
21:30:32 <truebrain> yeah, cases, you are right ๐Ÿ™‚
21:30:52 <truebrain> `{"str": "STR_XXX", "version": "2024-04-04", "cases": { ... }}` ๐Ÿ˜›
21:31:23 <truebrain> anyway, reverts of english text are very rare events
21:31:35 <truebrain> I am okay if that means the translators see outdated for those
21:32:00 <truebrain> (mind you, when you go from A -> B, they might become invalidated, but when it goes from B -> A again, it could become outdated)
21:32:24 <truebrain> so on day 1 someone changes it into B, and all translations remove the string. But on day 2 someone changes it back to A again, and the translations will readd them on export
21:32:30 <frosch123> well, final thought. if ottd repo is no longer ruler over ##pragma, this makes PRs like #12153 and predecessors harder
21:32:37 <_glx_> outdated only if translation was touched between A->B->A
21:32:53 <truebrain> frosch123: yes
21:33:07 <truebrain> that would make those very rare PRs a tiny bit harder ๐Ÿ™‚
21:33:24 <truebrain> _glx_: no, as the "version" changed
21:33:30 <truebrain> so all translations will show the string as outdated
21:33:54 <truebrain> anyway, indeed, sleepy time. Some things to think over some more
21:34:39 <truebrain> frosch123: final remark about this: the current state is just weird, where eints is in control of the translations, but not the metadata ๐Ÿ˜› I rather have an "all-or-nothing" system ๐Ÿ™‚ But that is my taste ๐Ÿ˜„
21:34:58 <truebrain> (not final as "this is final", but as: sleepy time! ๐Ÿ˜„ )
21:36:16 <peter1138> Heh, the `font` console command is now quite spammy...
21:36:52 <peter1138> https://cdn.discordapp.com/attachments/1008473233844097104/1225559742349443192/image.png?ex=66219274&is=660f1d74&hm=ebc1880421ee9c0bf20ac76d7a04a5a3c004be62f47471bc0a9b01496b7f67a0&
21:36:52 <peter1138> Well...
21:37:12 <truebrain> a bit of visual indentation would go a long way ๐Ÿ˜›
21:37:28 <peter1138> Mustn't grumble, I could've reviewed it...
21:37:40 <_glx_> there's a PR to remove per font AA
21:38:29 <xarick> https://cdn.discordapp.com/attachments/1008473233844097104/1225560149217771561/2024-04-04_22-33-43.mp4?ex=662192d5&is=660f1dd5&hm=daa10d81c35d6b4c09f81f4a267151d00403dfbe1a035d8563f2f92beec31022&
21:38:29 <xarick> I'm missing something here... the incremental/decremental steps seems to be doing fine, but there's still the matter of equalizing the level of opcodes in relation to the time scripts require during use. One has 250k while another has 7k and yet their time is so similar, I don't know how to make this fairer.
21:38:44 <_glx_> I can agree "current [requested]" was not super clear though
21:54:38 <peter1138> Default opcode limit is 10k.
22:00:33 <DorpsGek> [OpenTTD/OpenTTD] PeterN opened pull request #12422: Fix: Viewport signs assume small font is smaller than normal font. https://github.com/OpenTTD/OpenTTD/pull/12422
22:03:54 <peter1138> Sensible assumption, to be fair...
22:25:05 <DorpsGek> [OpenTTD/OpenTTD] PeterN opened pull request #12423: Fix #12233: Mini order list overlaps vehicle group name. https://github.com/OpenTTD/OpenTTD/pull/12423
22:36:06 *** matusguy has quit IRC (Remote host closed the connection)
22:47:40 *** bertvvvs has joined #openttd
22:58:01 <DorpsGek> [OpenTTD/OpenTTD] PeterN opened pull request #12424: Fix #12114: Viewport coords of crashed aircraft not updated when falling. https://github.com/OpenTTD/OpenTTD/pull/12424
23:03:17 <DorpsGek> [OpenTTD/OpenTTD] PeterN opened pull request #12425: Fix: Aircraft crash counter was too low to reach ground. https://github.com/OpenTTD/OpenTTD/pull/12425
23:05:28 <peter1138> So much spam.
23:26:41 <DorpsGek> [OpenTTD/OpenTTD] PeterN commented on issue #12100: [Bug]: grf vehicle without random reverse CB inherits flip when autoreplacing a vehicle that has random reverse CB and is flipped https://github.com/OpenTTD/OpenTTD/issues/12100