IRC logs for #openttd on OFTC at 2025-01-22
β΄ go to previous day
02:50:26 *** Yexo has quit IRC (Ping timeout: 480 seconds)
02:50:49 *** XeryusTC has quit IRC (Ping timeout: 480 seconds)
02:50:58 *** Osai has quit IRC (Ping timeout: 480 seconds)
02:50:58 *** Ammler has quit IRC (Ping timeout: 480 seconds)
02:51:39 *** Hirundo has quit IRC (Ping timeout: 480 seconds)
02:53:18 *** planetmaker has quit IRC (Ping timeout: 480 seconds)
02:53:21 *** tneo has quit IRC (Ping timeout: 480 seconds)
02:54:04 *** Hazzard has quit IRC (Ping timeout: 480 seconds)
02:54:04 *** V453000 has quit IRC (Ping timeout: 480 seconds)
02:54:14 *** Terkhen has quit IRC (Ping timeout: 480 seconds)
02:54:16 *** Guest8696 has quit IRC (Ping timeout: 480 seconds)
02:54:16 *** fonsinchen has quit IRC (Ping timeout: 480 seconds)
02:54:18 *** SmatZ has quit IRC (Ping timeout: 480 seconds)
02:56:11 *** Webster has quit IRC (Ping timeout: 480 seconds)
02:56:13 *** avdg has quit IRC (Ping timeout: 480 seconds)
03:01:35 *** fonsinchen has joined #openttd
03:02:35 *** planetmaker has joined #openttd
03:02:35 *** ChanServ sets mode: +o planetmaker
03:02:56 *** Hazzard has joined #openttd
03:03:35 *** Hirundo has joined #openttd
03:04:35 *** ^Spike^ has joined #openttd
03:05:05 *** Terkhen has joined #openttd
03:05:05 *** V453000 has joined #openttd
03:05:05 *** ChanServ sets mode: +o Terkhen
03:05:05 *** ^Spike^ is now known as Guest6616
03:05:35 *** XeryusTC has joined #openttd
03:15:16 <goddess_ishtar> hrm, trying to figure out the least jank way to implement a custom number of towns for the "many towns" button in the scenario editor that doesn't involve rewriting the entire `GenerateTowns()` function
03:16:53 <goddess_ishtar> hooking directly into `_settings_game.game_creation.custom_town_number` seems like a bad idea, so I'm thinking of changing that to point to some other variable which checks whether or not you're in the scenario editor and returns `_settings_game.game_creation.custom_town_number` if you're not, and the custom value otherwise
03:17:54 <goddess_ishtar> this is the first time I'm writing code that's not just for a personal thing so it actually matters how messy it is lmao
03:19:34 *** debdog has quit IRC (Ping timeout: 480 seconds)
03:30:52 *** Wormnest has quit IRC (Quit: Leaving)
03:49:13 *** gnu_jj_ has joined #openttd
03:52:35 <talltyler> Not sure if this will be relevant to you, but `_settings_game` in game mode is totally different from `_settings_newgame`, used in the main menu and stored in each playerβs config file. I didnβt realize these were two separate things until lots of debugging for a silly mistake. π
03:52:49 *** gnu_jj has quit IRC (Ping timeout: 480 seconds)
03:52:50 <goddess_ishtar> yeah, I figured that out
03:53:56 <goddess_ishtar> but I wasn't sure if it was assumed that the settings under `_settings_game` would stay static during town generation and/or reflect the total number of towns created at worldgen
03:54:03 <goddess_ishtar> so I figured it'd be best to just leave it
03:54:38 <goddess_ishtar> and thus sidestep the problem entirely
04:23:23 <goddess_ishtar> although it might be smarter to just bite the bullet and rewrite the function to take the number of towns to generate directly as a parameter
04:56:21 <peefox> before i embark on a potentially fruitless quest, is it possible to have an overlap texture that is drawn over the roads but not drawn over vehicles?
05:15:41 <emperorjake> peefox: Yes, ISR/DWE Objects has these
05:15:57 <emperorjake> they only work if the placed tile is above the road tile
05:16:30 <emperorjake> They can also be glitchy sometimes
06:49:15 <andythenorth> Sigh because we woke up too early?
06:57:24 <peter1138> Also github is being broken again.
07:08:02 <peter1138> 'count_has_badge' : {'var': 0x64, 'start': 0, 'size': 8, 'param_function':badge_parameter},
07:08:07 <peter1138> 'has_badge' : {'var': 0x7A, 'start': 0, 'size': 1, 'param_function':badge_parameter},
07:08:11 <peter1138> Is it just this...?
07:12:22 <peter1138> PPPPPPPPPOm te pom.
07:26:37 <peter1138> (I am pretty glad I got rid of that mess)
07:32:17 <peter1138> Those compat scripts get more and more painful to update :)
07:38:17 <andythenorth> Horse now uses a badge to find restaurant cars, instead of looking up lots of IDs
07:39:21 <peter1138> What does it do with that?
07:39:33 <reldred> Iβll eventually use something similar for finding buildings instead of using classes
07:40:48 <andythenorth> peter1138: adjusts running costs on pax cars
07:40:56 <andythenorth> if a restaurant car is present
07:42:29 <peter1138> I still need to write the extra variables for houses.
07:42:42 <andythenorth> I should benchmark my loop unroll
07:44:24 <peter1138> It could easily be slower than checking IDs as badges are stored as a list.
07:45:04 <peter1138> There's no bitmask or anything as that would severely limit the total number of badges.
07:45:19 <peter1138> (Hello cargo types)
07:49:42 <andythenorth> not sure why I'm benchmarking π
07:50:13 <andythenorth> nobody has complained so far about fps due to Horse
07:50:15 <peter1138> The lists are not sorted either, so no binary search.
07:50:46 <andythenorth> I was trying to think of a way to index badges in a consist (and their positions and counts)
07:50:57 <andythenorth> probably better that I draw pixels though π
07:51:13 <peter1138> (They are not sorted because ordering of badges within the same class matters for display.)
07:51:41 <andythenorth> ach frigging grf translations
07:51:58 <andythenorth> I can do this text on a badge
07:52:04 <andythenorth> simplifying the callback handler
07:52:17 <andythenorth> but it has been translated, as one string
07:52:38 <andythenorth> so now I have to learn what "Bonus" is in Indonesian
07:54:05 <andythenorth> maybe I'll sulk less if I have coffee
08:04:12 <peter1138> Have we all done our OSA risk assessments for our OpenTTD servers...
08:07:33 <peter1138> Referring to people running a game server here, not the infrastructure which is not user-to-user.
08:29:12 <peter1138> Hmm, is there some template-type magic I can use to add parameters to the NWidgetFunctionType definition...
08:30:42 <peter1138> Even `void *user_data` is not great as there can be multiple NWidgetFunction()s in a layout.
08:33:49 <andythenorth> ok so I just delete the strings
08:33:59 <andythenorth> from the translations
08:44:26 <peter1138> Hmm, maybe pass the Window *, but even then the type mightn't be known.
08:44:59 <peter1138> Dynamically add/remove widgets?
08:46:11 <andythenorth> how many badge classes per grf / map?
08:46:13 <peter1138> Or have one resizing empty widget and manually draw content?
08:46:56 <peter1138> The current absolute limit on classes is 65535, which of course requires every badge to be in its own class.
08:47:38 <andythenorth> ok, that's enough π
08:48:00 <peter1138> Switching away from 4-byte labels was the best decision.
08:48:04 <andythenorth> because classes create prefixes in extra text, I can forsee them escalating
08:48:20 <andythenorth> this is 2 classes
08:49:18 <andythenorth> I can delete some 'in theory simple' but actually hard-to-maintain text callback handling
08:49:30 <andythenorth> lots of stacked conditionals and counting substrings
08:49:59 <peter1138> How does that work if you want km/h?
08:50:17 <peter1138> Is it fixed in mph or use a string code?
08:50:47 <peter1138> Badges can't (yet?) use parameters so can't use {VELOCITY}.
08:52:40 <peter1138> Also, as speed is a regular property anyway which is already displayed, it might be better to just have something for a "Speed Boost".
08:52:54 <peter1138> "Speed Boost: +20mph on high speed rail"
08:55:59 <andythenorth> yes, that would be cleaner
08:56:23 <andythenorth> hmm current string does use `{VELOCITY}`
09:00:21 <andythenorth> I could just leave it in extra text callback, it's working code
09:20:02 <peter1138> If you want to act on the badge, you could have it but don't set the string.
09:33:22 <xarick> andythenorth: π my AI cries
09:33:34 <andythenorth> lol we could add a {BADGE} text string π
09:33:48 <andythenorth> xarick: AI is hard
10:18:53 <andythenorth> hmm doing the colour options as badges next, probably
10:19:12 <andythenorth> the Horse internal implementation of colour choices is.....string piled on string
10:19:43 <andythenorth> but changing everything in one commit is unwise, and the behaviour has random factors, so is hard to test
10:20:24 <peter1138> I would break it down, e.g. using restaurant_car is one commit.
10:20:58 <andythenorth> it was more of an example to some others in the channel π
10:21:20 <peter1138> BADGE_CLASS_IH_COLOUR = "iron-horse-colour"
10:21:20 <peter1138> b.add(BADGE_CLASS_IH_COLOUR + "/blue-darkblue", None, "STR_COLOUR_BLUE_DARKBLUE", flags=BadgeFlags.NAME_SUFFIX)
10:21:23 <peter1138> b.add(BADGE_CLASS_IH_COLOUR + "/variety", None, "STR_COLOUR_VARIETY", flags=BadgeFlags.NAME_SUFFIX)
10:21:42 <peter1138> This was based on something in IH, as an example :)
10:22:56 <peter1138> I went with an IH-specific space because I don't think other sets do this thing.
10:24:01 <peter1138> Filter by colour: Rust/Shale
10:24:24 <peter1138> Dynamically aAdding the dropdown filter
10:24:48 <peter1138> Dynamically adding the dropdown filters is what I was looking at earlier with passing a parameter to the widget function.
10:24:53 <peter1138> But I think it needs to be more dynamic anyway.
10:29:27 <andythenorth> oh so we could filter by colours?
10:29:56 <peter1138> If it's a badge with a name, yes.
10:30:10 <peter1138> They are already included in the free-text filter.
10:30:43 <peter1138> But my idea is to allow a dropdown like for cargo types.
10:31:15 <peter1138> To do this the widgets need to be dynamic, because we don't want to have filters enabled for all classes by default.
11:28:42 <xarick> I don't understand youtube
11:29:53 <xarick> "influencing" is indeed the appropriate word here
11:31:26 <xarick> in one video, sways of comments praising the bishop courage, and in another video, comments are just dismal...
11:31:50 <xarick> but the sheer contrast from one video to another is certainly impressive
11:32:39 <xarick> I'm getting too senile to understand this
11:32:47 <maxtaktik> xarick: Just business
11:33:35 <xarick> it certainly confuses the way I should think or feel about a subject
11:35:37 <xarick> it gives me the impression everything is fake, fabricated...
11:36:19 <LordAro> people are complicated
11:45:02 <peter1138> Also, swathes, not sways.
11:47:58 <maxtaktik> LordAro: But that what makes us unique
11:58:33 <xarick> I wanna do a 13351 but for tgp
11:58:54 <xarick> but after yesterday's blunder, I'm kinda scared
12:09:05 *** tokai has quit IRC (Quit: c('~' )o)
12:31:46 <xarick> think I found 2 more situations where static_cast isn't required
12:33:08 <peter1138> Yup, definitely don't do that commit.
12:33:11 <peter1138> Loads of errors in it.
12:57:47 <xarick> i've been confirming with no issues
13:44:46 *** kuka_lie has joined #openttd
14:40:48 <_glx_> mingw "error" is weird, it complains for `_WIN32_WINNT_WIN7` but not for `NTDDI_WIN7` but both are defined in the same header
15:38:23 <xarick> does RandomTileSeed have a bias for the lower bits?
15:39:49 <xarick> maybe not, I'm just dreaming
15:39:54 <peter1138> It only uses the bits necessary, but there's no bias because map sizes are always powers of 2, so there are no unused values.
15:40:45 <xarick> last tileindex possible is 24 bits
15:41:14 <xarick> seed is 32 bits, but yeah... I'm overthinking...
15:44:07 <peter1138> Random bias is when you want, say a value between 0 and 100, which requires 7 bits of random data, but that means 28 values are not used. The "lazy" way, with "Random() % 100", would then mean that values between 0-27 are more likely to appear than values between 28-100.
15:47:44 <peter1138> (This is why `ScaleToLimit()` is the way it is.)
15:49:05 <peter1138> And I can see that I managed to slip one in by mistake.
16:44:53 *** Wormnest has joined #openttd
17:05:13 *** HerzogDeXtEr has joined #openttd
17:34:17 <peter1138> Someone has been busy.
17:40:57 <Rubidium> well 1753 one to vet, and there's only 2 lines? :) Sounds like I didn't do such a bad job (or there must be many more)
17:47:13 <peter1138> #12039 seemed controversial. Config setting? :p
17:48:53 <_glx_> nice dependabot alerts recommendation `Upgrade to version 4.1.3 or higher. Alternatively use 'v4' tag which points to the latest and secure version.` (we already use `v4`)
18:01:33 <peter1138> Ah, it was frosch who commented on the disappearing spacers originally.
18:21:24 <_zephyris> Merge and ask for forgiveness later
18:23:14 <goddess_ishtar> move fast and break things
18:33:10 <peter1138> Fast? That PR was made a year ago ;)
18:44:57 *** kuka_lie has quit IRC (Remote host closed the connection)
18:47:06 <peter1138> IIRC it can't be a reference, sadly.
18:48:36 <peter1138> But I do have a secret patch for that.
19:00:35 <xarick> i tried to reinvent CircularTileSearch
19:00:46 <xarick> it's slower in C++ than in quirrel
19:00:54 <andythenorth> can we reimplement OpenTTD in roblox?
19:11:07 <talltyler> I started my wishlist for 15.0, feel free to add or remove as you like. π
19:14:50 <talltyler> Grey is a boring colour, I like it mauve π
19:14:54 <andythenorth> 15.0: "OpenTTD is now available in roblox"
19:17:19 <talltyler> Look at all these fun windows colours in Transport Tycoon!
19:17:19 <talltyler> Stations are blue, vehicles are green, toolbars are industry-window red...
19:17:54 <talltyler> Oh, but industry windows are lime green.
19:19:36 <andythenorth> what do others do with this?
19:23:20 <talltyler> Any volunteers to run the title game competition this year? π
19:23:39 <peter1138> Doesn't it tell you the locations that need fixing?
19:24:43 <andythenorth> what's the correct thing to do in a fork?
19:25:12 <andythenorth> do we all get this notification?
19:29:55 <LordAro> andythenorth: probably your copy of the master branch is really old
19:31:29 <peter1138> But also andythenorth is the one gets alerts about something in a release tag that is irrelevant.
19:31:47 <peter1138> So it's not impossible that he has some extra non-standard thing doing weird business.
19:32:38 <andythenorth> I just got opted into dependabot by github
19:33:20 <peter1138> Is your account also linked to a $work organisation?
19:33:27 <peter1138> (I don't know if that's even a thing)
19:33:48 <andythenorth> it wouldn't be permitted in this case, I'd have to file event paperwork if I'd done that
19:33:54 <andythenorth> this is my only rule
19:39:11 *** gelignite has joined #openttd
19:40:18 <andythenorth> maybe it's not very important, in the context of .... everything
19:57:55 <goddess_ishtar> talltyler: surprisingly, Zorg actually has an idea I agree with
19:58:39 <goddess_ishtar> I feel like "Advanced" is a poor word for the tab and it *should* probably be split into "Gameplay" and "Interface"
19:58:57 <andythenorth> shall we do a settings app π
19:59:03 <andythenorth> with ~~icons~~ badges
20:00:34 <andythenorth> oh perhaps that's not even a silly idea π
20:19:45 <_glx_> andythenorth: nothing, the workflow already use the non affected one (they use `v4` which is one of the suggested fixes)
20:20:19 <_glx_> we got this report for 17 openttd workflows
20:43:20 <_zephyris> goddess_ishtar: Probably not... Should _ultimately_ be split into settings which affect a new game, and settings which can be changed at any time - then we need to think of good names for that. But, one step at a time.
20:44:04 <andythenorth> should it be split into 'this setting is not available, please use JGRPP'? π
20:46:41 *** gelignite has quit IRC (Quit: Stay safe!)
20:48:12 <goddess_ishtar> _zephyris: honestly yeah that'd better
20:49:01 <goddess_ishtar> the only way you can really tell which settings are client settings, company settings, or game settings is to read the tooltip
20:50:30 <_zephyris> Huh, never even thought about company vs. game/save settings.
20:53:55 <peter1138> I guess we can't improve things unless we make it perfect at the same time?
20:56:34 <frosch123> The meta shifts over time
20:56:38 <goddess_ishtar> I just don't see the point of making extra work for yourself by not doing it right the first time
20:57:07 <goddess_ishtar> i guess it's out of scope for this PR, though Β―\_(γ)_/Β―
20:57:32 <frosch123> The original idea of the tree was to have all settings in a single place to allow easy searching, and display of non-defaulted settings
20:58:01 <frosch123> Now people want to scatter it into different places/tabs again π
21:01:09 <goddess_ishtar> I think that combining Game Options and Game Settings is great because the distinction between them feels arbitrary
21:01:28 <goddess_ishtar> but I also feel like the settings have gotten too bloated to display all in one big list
21:01:32 <ian01223> i think the tree might have gone a little too far
21:02:47 <goddess_ishtar> keep the search bar able to find all of them at once, but break up the list a bit
21:03:11 <_glx_> there's a reason why we often don't want to add new settings π
21:04:10 <_jgr_> goddess_ishtar: There genwrslly isn't a singular "right way" to do something
21:04:14 <ian01223> _zephyris: there's a filter at the top that lets you only see game, company or client settings
21:04:53 <ian01223> ~~information hierarchy~~ ~~game design~~ ~~design~~ life is hard, man!
21:05:22 <goddess_ishtar> ian01223: imo the issue with the tree is that there are just too many top-level items
21:06:51 <_zephyris> I think you guys are overthinking this, if there's a setting button in the worldgen/new game window it should probably just default to the savegame/game settings filter
21:07:35 <andythenorth> all UI design is wrong
21:07:36 <_zephyris> But, nothing will happen if all people do is debate things π
21:07:38 <andythenorth> pick the least wrong
21:07:40 <peter1138> Extend the filters in the tree view instead of splitting the tree view into different tree views that are hard to navigate.
21:08:13 <reldred> Piss it all off and make people edit OpenTTD.ini by hand again.
21:09:17 <ian01223> "..Starting with Windows 95 Microsoft favored the use of the Windows Registry and began to steer developers away from using INI files..."
21:11:16 <ian01223> there's too much stuff in there in general, but, well, not much to be done about that
21:12:31 <peter1138> Ditch openttd.cfg and use the registry.
21:12:44 <goddess_ishtar> because only three people use Linux anyway, fuck em
21:12:44 <peter1138> Added feature, spread it out over random various keys...
21:13:15 * peter1138 attempting to use std::unique_ptr instead of std::shared_ptr
21:13:35 <ian01223> have an outdated wiki tutorial on how to use the registry editor
21:13:50 <ian01223> with a disclaimer that we're not responsible if you happen to brick your computer
21:14:26 <ian01223> i do think that it's probably better to have client/company settings be in a separate tab rather than on a filter though
21:15:40 <goddess_ishtar> what's always struck me as weird is how settings *outside* of a save apply to new games, but changing the same setting in the same place *inside* of a save changes only that save
21:17:57 <ian01223> and I mean that while also rearranging the new menus to make more sense with the fewer options - just blindly moving everything to their new tabs would lead the top level "interface" to have nothing but a single sub tab with a single setting within that
21:19:55 <peter1138> Right, will it blend.
21:20:48 <peter1138> signal SIGSEGV: address not mapped to object (fault address: 0x30)
21:24:57 <peter1138> Hmm, seems to be working.
21:25:19 <peter1138> Only issue is that the a copy of the GRFConfig is needed for network advertising.
21:26:36 <peter1138> "Huh? Why are all these sprites missing?"
21:26:53 <peter1138> I had it set to 8bpp to test the 32bpp-to-8bpp auto sprites... oops.
21:27:26 <peter1138> (There are lots of 32bpp-only NewGRFs that have dummy 8bpp placeholder sprites)
21:28:04 <peter1138> Nearly all of that Auz* stuff.
21:30:10 <peter1138> Hmm, Esc is no longer cancelling multi-caret mode.
21:35:10 <LordAro> that looks like it's leading somewhere
21:35:41 <peter1138> It's leading to a PR that's been open for a while.
21:40:19 <ian01223> goddess_ishtar: for what it's worth, in factorio (which as we all know is the ultimate game whom we must all bow down to, all praise wube) settings *appear to the best of my knowledge and experimentation* work like this:
21:40:19 <ian01223> - non-mod settings are universal and synced across everything (mostly the usual suspects like graphics and autosave intervals, but also interface settings)
21:40:19 <ian01223> - mod map & per client settings changed outside of a game change settings inside the game, but not the other way around
21:40:19 <ian01223> - mod startup settings require a restart to take effect, and if try to enter a save with different startup settings you get a choice to either sync your settings to the save's (which restarts the game automatically) or proceed with the modified settings
21:41:22 <ian01223> none of this behaviour is written down anywhere as far as I know
21:41:34 <ian01223> (slash could find in 5 minutes of lazy searching)
21:44:10 <ian01223> now now, I think there are some valuable lessons to be learned here in how to frustrate your users
21:45:42 <peter1138> I've played Assetto Corsa too, where if you want to, say, try a different car, you basically have to restart the game.
21:46:05 <peter1138> Of course they eventually fleshed out the launcher to look like it wasn't actually a separate process, but we all know...
21:46:38 <ian01223> yeah factorio also requires a restart whenever you add or remove a mod from your modlist, or install one
21:46:49 <ian01223> and you can't see mod settings from the mod menu
21:47:03 <peter1138> We only go so far as recommending you don't change your modlist midgame... but you can anyway.
21:47:27 <ian01223> restarting the game process I mean, not your save
21:47:45 <ian01223> now that would be annoying
21:49:33 <xarick> I found a "maybe a bug"
21:50:04 <xarick> DistanceFromEdge doesn't consider freeform_edges, but DistanceFromEdgeDir does
22:17:18 *** Flygon has quit IRC (Read error: Connection reset by peer)
22:25:38 *** keikoz has quit IRC (Ping timeout: 480 seconds)
22:28:24 <andythenorth> "today/naptime" badge?
22:29:22 <_glx_> seems they have no clue about what they are doing when trying to build openttd
22:29:50 <LordAro> it's not unreasonable to attach those log files
22:29:56 <LordAro> not their fault they're useless
22:31:18 *** Extrems has joined #openttd
22:32:07 <andythenorth> no way to set the static prop to reflect the depot an engine was built in π
22:37:08 *** Wolf01 has quit IRC (Quit: Once again the world is quick to bury me.)
22:38:21 *** Wormnest has quit IRC (Ping timeout: 480 seconds)
22:44:03 <andythenorth> was it persistent vehicle storage? π
22:44:15 <andythenorth> store a badge index on start/stop π
22:44:32 <andythenorth> or do we have a construction cb?
22:50:26 *** nielsm has quit IRC (Ping timeout: 480 seconds)
23:08:36 *** Wormnest has joined #openttd
23:39:56 *** HerzogDeXtEr has quit IRC (Read error: Connection reset by peer)
23:48:19 <xarick> if all my current rivergen PRs are merged -> "rivergen combined"
23:50:38 <xarick> i should hide the turbo...
23:52:08 <xarick> I'm off to bed, cyas good night
continue to next day β΅