IRC logs for #openttd on OFTC at 2024-03-19
โด go to previous day
00:57:44 *** HerzogDeXtEr has quit IRC (Read error: Connection reset by peer)
01:47:16 *** Wormnest has quit IRC (Quit: Leaving)
01:48:14 *** ChanServ sets mode: +v tokai
01:55:11 *** tokai|noir has quit IRC (Ping timeout: 480 seconds)
03:32:01 *** D-HUND has quit IRC (Ping timeout: 480 seconds)
04:41:18 <DorpsGek> - Update: Translations from eints (by translators)
07:48:57 <_zephyris> peter1138: Is that why it locks on screenshots?
07:49:41 <_zephyris> The waiting cursor would be nice there too...
07:55:59 *** Flygon has quit IRC (Read error: Connection reset by peer)
10:18:46 *** Ox7C5 has quit IRC (Ping timeout: 480 seconds)
10:19:01 *** SigHunter has quit IRC (Ping timeout: 480 seconds)
10:23:52 *** SigHunter has joined #openttd
10:33:33 <truebrain> I think the screenshot is not threaded, so it just locks the game-thread, so no drawing can be done ๐
10:33:42 <truebrain> at least ... it wouldn't surprise me ๐ (did not check code ๐ )
11:25:12 <peter1138> I can't believe it's not lunch time yet.
11:25:48 <peter1138> > 58 files changed, 430 insertions(+), 1193 deletions(-)
11:32:15 <andythenorth> peter1138: I can't believe it's not Butter...
12:01:52 <merni> peter1138: Oops, it is a setting in jgrpp and I thought it was in vanilla as well :p
12:08:07 <peter1138> ^ I'm thinking that change to content paths validation...
12:08:47 <peter1138> "Is my code wrong, or is it clang"
12:09:33 <peter1138> `auto rnews = _news | std::views::reverse;`
12:13:20 <peter1138> Well, as it's a std::list I guess I could make it insert at the front.
12:23:30 <peter1138> Manual installation instructions might need updating, but...
12:24:07 <peter1138> 0.4.0 on steam and bananas, but 0.4.2 is on github. Hmm.
12:25:38 <peter1138> A few translation updates since then too.
12:36:47 <LordAro> website is automated, others are not
12:48:01 <truebrain> also, pretty sure #34 forgot to extract the tarball ๐
12:48:35 <truebrain> for some reason OpenMSX zips a tarball, which you both need to extract, as ... music basesets needs to be flat files, and can't be in tarballs ๐ฆ
12:48:51 <truebrain> In-game content does that for you
12:49:00 <truebrain> but I have no clue why OpenMSX doesn't extract the tarball in the zip for the website ๐
12:50:13 <truebrain> and I will update Open**X on Steam before the 14.0 release ๐
13:02:49 <peter1138> I noticed those build systems are very generic, presumably to avoid having as little custom parts as possible.
13:03:05 <peter1138> But for instance the OpenSFX build system has lots of GRF and NML stuff in it.
13:03:35 <LordAro> mm, OTTDC "generic" makefile
13:03:43 <LordAro> i tried to strip bits out of it once
13:05:54 <peter1138> It's not even correct ๐
13:06:24 <peter1138> It talks about a list of sound files, but the list is always blank ๐
13:06:50 <peter1138> using `ls` in a makefile is an indication all is not well.
13:07:38 <peter1138> I thought about CMake but I'm not sure how that fits in with non-code projects. Maybe it's fine.
13:17:20 <peter1138> Hmm, is that annotation failure because of the node-16 warning...
13:19:09 <peter1138> Does not get triggered with the eints pushes, but it seems it skips a test there.
13:31:33 <truebrain> you can spend a few weeks cleaning up those repos ๐
13:35:44 <peter1138> If I rebuild the Makefile... Hmm.
13:36:19 <peter1138> Ah. And then the follow on question... does it matter? ๐
13:36:23 <merni> > The remaining features are inventions new in GNU make:
13:36:23 <merni> > Manipulate text by calling functions. See Functions for Transforming Text.
13:36:43 <merni> peter1138: Probably not :p
13:36:53 <merni> Can just require GNU make as we require specific compilers
13:37:05 <peter1138> The alternative way is "shell ls" instead of just "ls"
13:38:07 <peter1138> > 7 files changed, 161 insertions(+), 220 deletions(-)
14:01:46 <_glx_> switch Open[GMS]FX repos to cmake, but probably not that easy because it's not a typical language
14:04:27 <_glx_> oh the workflows are outdated
14:04:54 <_glx_> they need the dependabot treatment
14:06:16 <_glx_> and reuse of existing actions too
14:07:54 <peter1138> `LANGUAGES NONE` should do it. Trying it ๐
14:08:16 <peter1138> Yeah, that stops it looking for a C/C++ compiler.
15:45:45 <orudge> So I don't know that I'm allowed to share the figures (so I won't), but it appears that the MS code signing solution should, for us, be considerably cheaper than even our current code signing certificate per year
15:56:21 <truebrain> orudge: Monthly or yearly fee?
15:57:33 <orudge> truebrain: Monthly. Two tiers, allowing x,000 signatures then additional signatures are extra.
15:57:44 <orudge> But for the amount of files we sign, the lower tier should be more than enough
15:58:08 <truebrain> Good; as we also have plugins to sign ๐
15:59:32 <truebrain> But good, solves that issue for good too ๐
15:59:46 <truebrain> Now finish up your PR ๐
16:00:02 <truebrain> Guess I should backport it to the plugin repo too
16:00:17 <truebrain> And tnx for tackling this ๐
16:03:34 <orudge> Yes, was waiting to hear this before updating it :)
16:56:15 *** HerzogDeXtEr has joined #openttd
17:51:58 <Rubidium> ugh... so many choices that can be made with respect to how authorized keys for companies ought to work... it looks simple at first glance but then. Do we still want to support completely unprotected companies, i.e. everyone can join without asking? Do we still want to keep passwords around for easier joining with larger groups of people? And if we remove passwords and require authorized keys, would
17:52:04 <Rubidium> prospective new clients then send join requests (but what about griefers relentlessly sending requests) or would players of companies ask others to join their company (but what about griefers relentlessly sending those requests), etc. Now these last problems do not (really) exist, as there's no way to trigger popups to the users... at most they could spam the chat. Did I already say ugh?!?
17:55:14 <jfs> an invite too a company would make most sense as a thing you don't get told about, but just silently appears as an "accept invite" somewhere on the company
17:55:31 <jfs> so sending multiple invites does nothing additional, just keeps the "accept" button up
17:57:41 <peter1138> How do you leave and rejoin?
18:04:54 <peter1138> Hmm, locked cursor scrolling is really quite awkward... doesn't work well if the cursor is already starting near the edge of the window.
18:07:02 <peter1138> Ah yes... how to date when you were playing a game...
18:11:37 <peter1138> Hmm, is baseset information missing from the surveys?
18:15:41 <locosage> what does that setting say if custom ttf is configured?
18:16:47 <michi_cc> Still the same thing, it is just ignored.
18:16:47 <kale91> hey fellas, do you guys have any info on how the nodaylength feature will work in 14?
18:17:13 <locosage> so, basically, it can be true but still not use sprite font
18:17:17 <michi_cc> I think thereโs a blog coming up on the weekend ๐
18:17:41 <kale91> michi_cc: but I'm special! (okay nevermind I will wait)
18:17:59 <michi_cc> The website repo is public
18:18:46 <peter1138> You could just be playing with it already.
18:19:13 <talltyler> I canโt wait to read the blog post, I have no idea how it works either ๐
18:19:36 <kale91> peter1138: that is what Im currently attempting, but I do not know where to look
18:20:37 <talltyler> Why is the blog post deployment not showing the post? Do I need to change the date or something?
18:21:42 <kale91> yeah I don't see any infos
18:21:51 <kale91> unless I'm missing something
18:23:59 <locosage> @Rubidium, Not sure the exact context here but.
18:23:59 <locosage> 1. Having unprotected companies is pretty much never a good idea.
18:23:59 <locosage> 2. Max people I ever saw in a company is like 6 or 7, and even that's extremely rare, join requests should be enough.
18:23:59 <locosage> 3. I doubt griefers will be a problem even if there is a popup. Worst case popup can just have "ignore forever" button.
18:23:59 <locosage> 4. Having some way to join the company without invite after disconnection would be nice though. I guess same goes for when everyone gets disconnected, so people who were in the company should just be able to join it without any invite.
18:25:35 *** SigHunter has joined #openttd
18:26:12 <kale91> are we looking at... this menu?
18:26:20 <locosage> join request can also be in a form when someone from the company pulls you in, so you have to ask in chat making it no different than how it currently is wrt griefint
18:30:46 <peter1138> For uniformity in approach, unprotected is basically "protected but auto accept"
18:31:29 <locosage> as long as it's not unprotected by default...
18:31:30 <peter1138> And also "auto accept social friends" might be a thing.
18:32:52 <peter1138> But maybe not... friends are often the worst trolls ๐
18:38:36 <truebrain> Rubidium: Lot of good questions ๐ my only request would be to see if we can do without passwords ๐ as that would mean we also don't have to store them in savegames ๐
18:38:54 <truebrain> Might also help to look around how other games do things; still not easy ๐
18:42:44 <peter1138> Badly, usually. "Create an account... select region... blah"
18:44:18 <talltyler> kale91: Yes, the only two settings added are Timekeeping and Minutes per year
18:44:44 <talltyler> I also added town and industry cargo scale settings but Iโm not sure if those made it into JGRPP
18:47:38 <peter1138> Don't think that's relevant for 14.0 ๐
18:48:17 <peter1138> Hmm, right, should window invalidation events be processed before the input loop...
19:11:13 <kale91> talltyler: so would the static era setting be the wallclock setting? or is that just gonna be a JGR thing
19:11:29 <kale91> or am I just misunderstanding the whole conept
19:12:01 <peter1138> Static era is changing "minutes per year" to 0.
19:13:31 <peter1138> (Slightly awkward that you have to speed it up to normal speed to then be able to stop it, but less awkward than having to set it all the way to max and beyond...)
19:16:26 <frosch123> multiple settings have that awkwardness
19:16:54 <frosch123> setting tooltip delay to zero turns it into "use RMB"
19:17:10 <peter1138> To be clear I consider that an "us" issue, not a wallclock issue ๐
19:24:17 <peter1138> Oof, build system's SDL2 is too old?
19:27:32 <frosch123> probably because of manylinux
19:27:48 <frosch123> we want to stay compatible with enterprise-scam-linux
19:28:08 <frosch123> it's a define, so i can ifdef
19:28:53 <truebrain> michi_cc: did talltyler forget about this again? ๐
19:32:02 <truebrain> wow, GitHub is acting up ๐
19:32:29 <frosch123> truebrain: in this case the post is dated 2024-02-24, quite some time in the past
19:32:50 <frosch123> maybe other things changed, and it needs a rebase
19:33:12 <michi_cc> Didn't even look ๐ Maybe it is just bumped from the front page then ๐
19:35:05 <frosch123> oh, windows disease, hiding file extensions
19:35:16 <truebrain> then how do you edit the file?! ๐
19:37:15 <truebrain> too bad this wasn't done before RC2, but I still think we should backport #12292 for 14.0 .. or otherwise directly after ๐
19:38:58 <Rubidium> just make a RC3 with anything else that should be backported and then backport nothing between RC3 and 14.0, I'd say
19:39:00 *** silent_tempest has joined #openttd
19:39:00 <silent_tempest> truebrain: With butterflies of course. ๐
19:39:10 <peter1138> Yeah, easy enough to do RC3.
19:39:25 <truebrain> I see two volunteers ๐
19:39:31 <peter1138> (Or at least, easy enough for someone else to do RC3, because I've no idea...)
19:40:07 <truebrain> shitty excuse; even kuhnovic managed to do an RC, so I am sure you can too ๐
19:40:35 <kuhnovic> Not sure if that's a compliment or an insult ๐
19:40:44 <frosch123> he, "even Kuhnovic", he's not that bad ๐
19:41:09 <truebrain> "even someone as inexperienced in OpenTTD development workflows as kuhnovic " ... I hate typing out these sentences fully ๐
19:41:32 <kuhnovic> Now that's better ๐
19:43:05 <talltyler> Now with a file extension ๐
20:01:58 <peter1138> la la la la la fingers in ears
20:11:41 <truebrain> I was looking into some alternatives to BaNaNaS TCP protocol, and gRPC got suggested. But Cloudflare doesn't seem to be able to handle gRPC requests to Cloudflare Workers .. bah ๐ Otherwise looked like a nice solution ๐
20:21:57 *** nielsm has quit IRC (Ping timeout: 480 seconds)
20:26:45 <frosch123> i would go for https+json, just because we already have those dependencies
20:27:01 <frosch123> i think fewer dependencies is a goal in itself
20:30:36 <_glx_> I still need to think about how to warn users an AI or GS may not work as expected in wallclock mode
20:32:18 <frosch123> how about a generic hint in the ai/gs config window, if api-version is < 14 and wallclock is enabled
20:32:35 <_glx_> I have the compat script option, or an optional info function
20:32:35 <frosch123> random-ai could bias towards ais with verions >= 14
20:32:54 <frosch123> users won't see the compat script
20:33:05 <frosch123> do you want to warn players or script-developers?
20:34:08 <_glx_> anyway the optional function might be a better choice, as even 14+ script might not support wallclock
20:35:11 <frosch123> i would expect wallclock to become so popular, that any script not supporting it is automatically unpopular
20:35:23 <frosch123> i don't think we should encourage scripts not supporting wallclock
20:38:47 <frosch123> scripts can check settings themself, why does it need an extra check on ottd's side?
20:39:11 <frosch123> it does not apply for old/unmainainted scripts
20:39:16 <_glx_> to warn user, else we will get bug reports
20:39:30 <frosch123> it does not apply for maintained scripts, which will actually support wallclock
20:39:53 <frosch123> it only applies to maintained script, whose authors hate wallclock
20:39:58 <andythenorth> Itโs completely opaque to the player that existing GS are broken
20:40:12 <andythenorth> (Last time I checked)
20:41:09 <frosch123> for warning users ScriptInfo::GetAPIVersion is enough
20:41:24 <frosch123> it will warn about all old unmaintained scripts
20:41:59 <frosch123> i just don't see why any script would ever want to supply a new optional method
20:42:11 <_glx_> I know some 14 AI not supporting wallclock because it means full rewrite
20:42:12 <frosch123> either they are old, and don't have it. or they are new and should support it
20:43:20 <frosch123> can you name an AI?
20:43:41 <frosch123> i want to understand the problem, because i can't imagine why an AI would rely so heavily on dates
20:44:33 <_glx_> they compare current date with engine release date to determine if the engine is not too recent
20:46:11 <frosch123> and that means a full rewrite?
20:47:22 <andythenorth> for FIRS GS it was a one line change so far
20:48:04 <frosch123> i did not check SV completely, but a quick testrun looked like "reword texts" only
20:48:25 <frosch123> let's try lduaiafterfixfix
20:51:58 <frosch123> LudiAIAfterFix does not use GetDesignDate
20:52:34 <frosch123> the only "*Date" method it uses, is "GetCurrentDate"
20:53:40 <frosch123> i would claim LudAI_AfterFix-v20 just works
20:54:27 <frosch123> it seems to use dates mostly for delaying and timing thinhgs
20:54:37 <frosch123> which should use economy-date, which is the default
20:55:49 <frosch123> there is some commented-out code, checking for 1955, assuming aircraft are available then, but that would be broken anyway, if it was commented-in
20:58:37 <frosch123> so, i still see no usecase for maintained scripts denying wallclock time
21:02:58 <kale91> peter1138: Ah okay cool, I'll mess around with this
21:12:14 <truebrain> frosch123: Issue is overhead here .. JSON would make the payloads huge!
21:13:29 <truebrain> And gRPC is basically HTTPS with Protobuf (and some extra clever things), which would fit the requirements nicely
21:13:44 <truebrain> But .. yeah, Cloudflare Workers support is important ๐
21:14:05 <frosch123> _glx_: i will now compose a list of all API methods returning a calendar date, then TB can likely scan bananas, which AIs are affected in theory
21:14:32 <frosch123> then we can get some numbers to this problem, instead of speculating about mythical broken AIs, which require full rewrites
21:15:49 <truebrain> Pfff, all this factual approach ..
21:16:13 <frosch123> i should track the time spent on this :p
21:16:39 <truebrain> Nobody is going to pay you
21:17:02 <frosch123> you just don't know yet :p
21:17:51 <_glx_> in very old AIs I know Mungo will crash because it uses in all its debug messages ```
21:17:51 <_glx_> local date = AIDate.GetCurrentDate();
21:17:51 <_glx_> tmp = AIDate.GetDayOfMonth(date).tostring();
21:17:53 <_glx_> local day = tmp.len() < 2 ? "0" + tmp : tmp;
21:17:53 <_glx_> tmp = AIDate.GetMonth(date).tostring();
21:17:55 <_glx_> local month = tmp.len() < 2 ? "0" + tmp : tmp;
21:17:55 <_glx_> tmp = AIDate.GetYear(date).tostring();
21:17:57 <_glx_> local year = tmp.slice(2);
21:17:57 <_glx_> return "[" + day +"/" + month + "/" + year + "]";
21:20:24 <frosch123> so old apis should return "economy_date + 1000"?
21:20:50 <frosch123> i mean that script is even broken for > 10000
21:21:09 <truebrain> They already crashed if you set the year to before 1000 in 13.4 ๐
21:21:33 <frosch123> personally i think it's fine to just let that script crash
21:21:40 <_glx_> scripts assuming weird stuff for date are common yes
21:21:41 <frosch123> if someone cares, it's easy enough to fix the script
21:37:25 <frosch123> looks like there is no timetable api
21:38:41 *** Wormnest has joined #openttd
21:39:48 <_glx_> we could at least improve API doc to mention if the returned ScriptDate::Date is calendar or economy
21:40:15 <frosch123> yes, that's part of my list
21:40:40 <frosch123> sometimes its obvious, but sometimes i have no idea, e.g. ScriptStoryPage.SetDate and ScriptClient.GetJoinDate
21:41:06 <_glx_> I use VS intelisense and mouse over
21:43:49 <xarick> BaseStation::build_date is that 1950-01-01 based or 1-1-1
21:44:18 <xarick> calendar, lel it's right there
21:44:57 <xarick> I have an idea, but possibly a bad one
21:45:39 <LordAro> yes, that's a bad idea
21:46:07 <LordAro> not least because there's no such thing as "2 dates"
21:46:20 <_glx_> some stuff are always calendar, some are always economy
21:46:54 <frosch123> most calendar functions are rather pointless, we should ban scripts using them
21:47:34 <_glx_> drop all calendar functions and TimeMode ?
21:47:47 <_glx_> so script can only use economy ?
21:47:55 <xarick> hmm, interesting solution
21:48:03 <frosch123> ok, ScriptSubsidy::GetExpireDate is actually broken :p
21:48:32 <frosch123> i think it mixes calendar and economy date
21:49:42 <_glx_> it uses current TimeMode
21:50:22 <_glx_> it's just a conversion of month numbers into current TimeMode
21:51:11 <frosch123> if TimeMode is calendar, the result is wrong
21:51:30 <frosch123> it adds economy-months to calandar-date
21:51:45 <frosch123> but depending on year-length that is no 1:1 conversion
21:52:35 <_glx_> easiest solution might be forcing scripts to economy and drop calendar only functions
21:52:59 <frosch123> that does not work for GS
21:53:15 <frosch123> they have to know calendar, so they can show proper text messages
22:00:53 *** Leopold_ has joined #openttd
22:02:46 <_glx_> main issue is we can't prevent mixing modes on script side
22:03:00 <peter1138> Oof, well, that required a hard reboot.
22:03:02 *** Leopold has quit IRC (Ping timeout: 480 seconds)
22:03:40 <_glx_> internally they are not mixable, but in squirrel they are both SQInteger
22:03:52 <andythenorth> _glx_: I found with FIRS GS that only Calendar mode worked I think
22:04:04 <andythenorth> dates are completely odd otherwise
22:04:11 <andythenorth> industries built in the future
22:04:12 <_glx_> depends on what you want to do
22:04:50 <_glx_> yes industry construction date is calendar
22:07:48 <peter1138> I guess once the script has them they are SQIntegers?
22:08:27 <_glx_> yes API returns .base()
22:08:32 <frosch123> ScriptTimeMode is weird, it only affect ScriptDate
22:09:01 <frosch123> we could remove ScriptTimeMode, and split ScriptDate into ScriptEconomyDate and ScriptCalendarDate
22:09:33 <_glx_> yeah it affects only ScriptDate because all other functions use fixed mode
22:10:23 <peter1138> You should've been here when this was all discussed ๐
22:12:00 <peter1138> Not too late to change things, but I think that was a proposal originally.
22:14:12 <_glx_> and complains appeared after the first RC ๐
22:14:18 <peter1138> ScriptTimeMode was the proposal to avoid duplicating the API, or somesuch.
22:16:01 *** keikoz has quit IRC (Ping timeout: 480 seconds)
22:20:18 <frosch123> truebrain: when you have some time, can you please grep bananas, which AI and GS use the methods listed in #12339 ๐ฎ โค๏ธ ๐ฎ
22:21:37 <xarick> i can't add smiles anymore
22:52:55 *** HerzogDeXtEr has quit IRC (Read error: Connection reset by peer)
22:53:56 *** salut3585 has quit IRC (Quit: User went offline on Discord a while ago)
22:54:16 <truebrain> okay, was easier than I expected, so you have it today
22:55:47 <truebrain> tldr, there are no users of API methods that return economy date atm
22:58:08 <truebrain> as I cannot really know when a `GetDate` on a `StoryPage` is called, the results are just a simple "grep"
22:59:16 <truebrain> I used to have code that detected comments in scripts, but it seems I threw that away ๐
23:00:07 <truebrain> frosch123: I am missing `GSDate.GetDate` in your list. Not sure that is intentional. Didn't check if there were any others
23:05:30 <truebrain> okay, updated the queries with a bit better values; still many invalid hits. But it gives you an idea ๐ Let me know if more grepping is required
23:15:44 *** Wolf01 has quit IRC (Quit: Once again the world is quick to bury me.)
23:52:49 <xarick> nice that you're taking a good look at scripts with dates
23:55:24 <xarick> how many AIs, and GSs are there in those greps?
continue to next day โต