IRC logs for #openttd on OFTC at 2026-01-07
⏴ go to previous day
00:06:00 *** kaibaneddy has joined #openttd
00:06:00 <kaibaneddy> audigex: It was really just an experiment, to see what the engagement would be like. Also, such a weird art style. 🙂
00:07:29 <kaibaneddy> reldred: Pineapple was also the name for the 3d rendered 4x fictional stuff.
00:07:29 <kaibaneddy> I thought the ancient qr stuff went up to/past modern day?
00:07:48 <reldred> Ah I must have missed that
00:08:02 <reldred> I disappeared a few times for a few years each
00:08:24 *** MinchinWeb[m] has quit IRC (Read error: Connection reset by peer)
00:08:41 *** MinchinWeb[m] has joined #openttd
00:09:18 <kaibaneddy> _zephyris: So much is 90% done... rvs, aircraft, etc. "Done by Christmas" didn't happen (again), but hopefully I'll have *some* kind of release before uni goes back in Feb
00:21:10 <reldred> kaibaneddy: You need to stop renaming so often, confuses the hell out of me 😛
00:21:25 <reldred> I’ve only renamed my account like once in the last twenty years of this community
00:25:23 <emperorjake> Oh wait that's Pikkabird?
00:35:24 <kaibaneddy> reldred: Also, if you're in Brisbane now, we should catch up for coffee some time?
01:04:47 *** Flygon has quit IRC (Read error: Connection reset by peer)
01:20:40 <patrickvarela> locosage: It works great on 15.0, just so you know. I used one artifact created from github actions and everything went smoothly. Thanks, mate!
01:42:15 *** WormnestAndroid has quit IRC (Read error: Connection reset by peer)
01:47:18 *** MinchinWeb[m] has quit IRC (Ping timeout: 480 seconds)
01:47:40 *** WormnestAndroid has joined #openttd
01:48:16 *** MinchinWeb[m] has joined #openttd
02:32:00 *** MinchinWeb[m] has quit IRC (Ping timeout: 480 seconds)
02:32:53 *** MinchinWeb[m] has joined #openttd
02:57:41 *** Wormnest has quit IRC (Quit: Leaving)
03:58:18 <reldred> kaibaneddy: yeee, I do need to get out and be more social
04:48:52 <DorpsGek> - Update: Translations from eints (by translators)
06:30:39 <sittinbythefire> _zephyris: Haha, sorry I wasn't trying to call you out or anything, just noting that it was something to get around to fixing when I get a chance 🙂
06:31:53 <sittinbythefire> I'd love to help out with stuff like that but I'm still trying to catch up with what's changed in the last 18 months or so
06:32:15 <sittinbythefire> Everyone here has been busy, and I love it 🙂
06:43:17 <kaibaneddy> Btw _zephyris are opengfx2 tree sprites available anywhere in a similar format to the opengfx ones on github?
06:43:17 <kaibaneddy> My trees for sunshine are upscaled and processed from opengfx, I'd be interested in how an opengfx2 version would look.
06:56:49 *** tokai|noir has joined #openttd
06:56:49 *** ChanServ sets mode: +v tokai|noir
07:00:18 <reldred> those are the extrazoom ones
07:00:37 <reldred> lots of processing happens though in the build
07:01:25 <reldred> Looks like they're also all composited
07:03:46 *** tokai has quit IRC (Ping timeout: 480 seconds)
07:09:12 <reldred> _zephyris: speaking of trees, if doing the seperate dropdown selections for the three desert biomes trees there would be some interest in swapping the two cactus' for these two ferns/bushes 🙂
07:26:19 *** WormnestAndroid has quit IRC (Read error: Connection reset by peer)
07:26:20 *** WormnestAndroid has joined #openttd
07:26:25 *** WormnestAndroid has quit IRC (Read error: Connection reset by peer)
07:26:26 *** WormnestAndroid has joined #openttd
07:26:29 *** WormnestAndroid has quit IRC (Read error: Connection reset by peer)
07:26:40 *** WormnestAndroid has joined #openttd
07:58:59 <_zephyris> Yeah, there's lots of automagic. These are the processed/composite trees at 1x zoom.
08:21:01 *** Smedles has joined #openttd
09:56:07 *** bootmii has joined #openttd
09:56:07 <bootmii> jfs: renewed importance now that AI settings are no longer in the main menu
10:08:41 <_zephyris> bootmii: I like this idea...
10:10:10 <LordAro> i suspect some deep level thread resurrection
10:10:37 <reldred> from eighteen months ago
10:11:33 <reldred> yeah if it was an irc poster doing it I'd be really impressed with an 18mo old necropost but it's relatively easy to do on discord by comparison -_-
10:14:05 <LordAro> 2024-06-12.log:[11:30:59] <reldred> many of the folks here have been here many, many years
10:32:53 <_zephyris> It's related to the new menu making it difficult/counterintuitive to set AIs when loading a scenario
10:34:05 <_zephyris> Related problem is setting NewGRFs for a new scenario
10:34:46 <peter1138> Loading a scenario is the same as loading a game, the AI set up is built into it.
10:35:09 <peter1138> But yes, creating a scenaro needs to an cut down new-game window.
10:36:36 <LordAro> close enough, ship it
10:38:34 <emperorjake> That's what I just said in Discord channel #openttd-help
10:38:56 <emperorjake> would be nice if the scenario editor had a new game window
10:44:12 <_zephyris> Setting NewGRFs in the Scenario Editor is bonkers (Land Generation > Create new scenario > Random Land > NewGRF Settings)
10:47:44 <peter1138> It was always intended to put more into it, we just haven't yet.
11:05:42 <peter1138> Teaching Windows developers how to use git for rebases and merges is a pain when they have no clue about command lines :/
11:07:09 *** jfkuayue has joined #openttd
11:10:27 <talltyler> Here's the original message (can IRC people see forwarded messages?)
11:20:38 <_zephyris> I like it, but has so may corner cases that I can't se it working
11:20:53 <talltyler> how about instead of a heightmap and various attached data, instead add an alternate loading mode for regular OTTD scenario files: choose what parts of the scenario to keep, and what parts to clear out and generate anew when the game is started.
11:20:53 <talltyler> so you get a list of checkboxes like:
11:20:53 <talltyler> * Use scenario NewGRFs [followed by a Change button that is active when not selected]
11:20:55 <talltyler> * Use landscape items [keeps original tree and rock locations, maybe NewObjects too if NewGRF is unmodified]
11:20:55 <talltyler> * Use town names and locations [if disabled, towns are generated as in a new game]
11:20:56 <talltyler> * Use town sizes [keeps original town roads and buildings if NewGRF is unmodified, otherwise clears out all roads and town buildings and rebuilds them to approximately the same size]
11:20:56 <talltyler> * Use industry locations [keeps original industries if NewGRF is unmodified, otherwise uses the existing industry locations to spawn random new industries]
11:20:59 <talltyler> * Use scenario AI player settings [followed by a Change button]
11:20:59 <talltyler> * Use scenario difficulty settings [otherwise the new game difficulty settings are used]
11:21:26 * peter1138 mumbles about github discussions
11:22:34 <talltyler> I had the same thought 🙂
11:36:18 *** gelignite has joined #openttd
11:38:00 <reldred> surely the answer there is to render the shore properly :>
11:38:58 *** limyx826 has quit IRC (Quit: User went offline on Discord a while ago)
11:50:35 <bootmii> enhancement: get Tycoon DELUXE Theme to loop perfectly like in the original
11:59:43 <bootmii> It doesn't, OpenTTD doesn't use the loop points
12:01:28 <bootmii> also not getting the road toolbar as soon as I click on the road icon, and getting a dropdown with one option instead, is so annoying.
12:01:40 <LordAro> luckily there's a setting for that
12:02:14 <_glx_> Though I'm getting used to click move release
12:03:10 <bootmii> LordAro: How do I get the road and railroad icons to behave like they have since, what, TTO?
12:03:27 <ahyangyi> reldred: My bad idea: draw a set of "void shore"
12:03:39 <_glx_> Search for toolbar in settings
12:04:07 <ahyangyi> ahyangyi: ^ Luckily we are in 2026 now!
12:04:36 <bootmii> Why is it off by default when Chris Sawyer had it right all along?
12:05:30 <_glx_> Many people don't know about click and hold
12:06:00 <_glx_> It's not a normal thing for menus
12:06:21 <LordAro> (it might have been in 1995, but that was a long time ago now)
12:06:24 <peter1138> Click & hold is also annoying for touchpads.
12:06:41 <peter1138> (Though touchpads are annoying anyway...)
12:07:11 <bootmii> _glx_: Fortunately the option chosen by click-and-release was the one players usually wanted anyway
12:07:14 <emperorjake> Other games of the time use click and hold menus too, like SimCity 3000
12:11:29 <bootmii> Yeah this is a downgrade from 14.1 and it's insane that it's the new default: click-and-release picking the most frequent option from a click-and-hold menu is a convention of the genre
12:12:46 <bootmii> As well as two other things I disagree with: the new main menu (which removed some options!) and the company invite system (although I realize that last one is a plus in the eyes of many)
12:12:48 <peter1138> Oh my god we added an option :o
12:13:14 <bootmii> It would be one thing if it were a _non-default_ option
12:13:37 <peter1138> It's default because it has to be discoverable for new players.
12:14:18 <bootmii> Maybe the tabbed options UI has something to do with it
12:14:45 <peter1138> We all know you can click-and-hold, and the option is there so you can put it back to how you like it.
12:14:47 <tabytac> we have had **so** many complaints from new players abotu how unintuitive the click and hold system is for the toolbar menus
12:15:47 <peter1138> "How do I upgrade rail types, the upgrade button doesn't do anything"
12:15:52 <emperorjake> Yes, there are many cases of noobs not figuring out how to build maglev
12:16:11 <LordAro> "all the rail vehicles expired and now i can't build anything"
12:17:05 <peter1138> Anyway, it's all in the PR :)
12:17:09 <definitelynotcheese_> Hmmm ive never heard of these complaints
12:17:16 <definitelynotcheese_> Only the menu thingy
12:17:35 <cu-kai> interestingly, click-and-hold was how dropdown menus worked pre-OSX mac computers.
12:17:40 <peter1138> Not really complaints, more lack of understanding and confusion.
12:17:41 <cu-kai> and i think windows 3.1
12:17:56 <cu-kai> it might have been correct at the time, but nowadays people are not used to that
12:18:30 <peter1138> The thing is, these buttons are not obviously dropdown menus, and some of them aren't.
12:18:40 <bootmii> The idea is, once they get good enough to get annoyed, they'll look for the setting. I asked pretty combatively about it instead\
12:19:00 <LordAro> that's a pretty terrible user experience
12:19:02 <reldred> God this is some low effort trolling
12:19:17 <bootmii> peter1138: Yeah but they're still treated as dropdown menus sometimes (roads in a vanilla save)
12:19:34 <peter1138> "Here's an option designed for new users. Let's disable it by default though" is pretty dumb.
12:20:32 <peter1138> Also the Scotland scenario looks pretty good with infinite water, talltyler :)
12:21:00 <LordAro> the idea of some sort of setting presets would be a valid "solution" - on first start up it could display a dialogue, with the presets available in the settings window somewhere
12:21:30 <LordAro> (the latter of course locks you to 256 maps and 50(?) vehicles
12:21:39 <peter1138> Imagine when it first pops up and someone clicks the wrong thing and wipes out their age-old preferences and complains? :D
12:21:48 <tabytac> LordAro: yeah a minecraft mod that i use did exactly that like 2 weeks ago and its pretty well implemented
12:22:44 <peter1138> "These settings are new since your configuration was last saved" filter
12:23:47 <peter1138> Hmm, should we convert TTD non-shores to shores on load. Probably not worth the effort.
12:29:07 <peter1138> If a main toolbar button *can* be a dropdown, it's always button. Changing the behaviour depending on the current number of options is not good design.
12:29:24 <peter1138> It's always a dropdown button.
12:32:00 <rito12_51026> Wouldn't an ingame tutorial that describes how UI and game mechanics work solve that issue with new players?
12:33:29 <tabytac> it defineitly would help but thats alot of work and hard to get a gernal consensus of what stuff should be in a tutorial what stuff should you exclude should you bias for one playstyle vs another etc...
12:33:56 <talltyler> Tutorials shouldn’t have to teach you about weird UI behaviour. A lot of people skip tutorials to figure things out on their own.
13:02:51 <rito12_51026> I have a question, if I have a variable that is uint8_t (like RailType) and I expect it to underflow, should I test if it is equal to 0xFF or use int16_t instead and check if it is below 0?
13:06:27 <LordAro> sounds like an XY problem
13:15:43 <peter1138> rito12_51026, next/prev railtype probably wants to work via the sorted railtype list, rather than railtype index.
13:16:14 <peter1138> Therefore you want to decrease/increase an array index, rather than the railtype directly.
13:16:24 <peter1138> I'm assuming that is what you are asking about though :)
13:17:40 <rito12_51026> It works that way, but there can't be more entries in sorted railtype list than possible values of RailType, so thats where I got uint8_t from.
13:19:19 <rito12_51026> (#7851 didn't, it increased rail type directly)
13:22:07 <peter1138> Best not to use types like uint8_t unless necessary.
13:22:17 <peter1138> For instance, there's my patch to increase the railtype count.
13:22:30 <peter1138> If you add a uint8_t somewhere else, that'll get missed.
13:22:43 <peter1138> For something that's an array index, size_t is fine.
13:23:12 <rito12_51026> so I should check if it is equal to `std::numeric_limits<size_t>::max()`?
13:23:57 <peter1138> No, just test for greater than array size.
13:24:23 <rito12_51026> I do that already for overflow
13:25:17 <rito12_51026> I can base it on direction
13:30:22 <peter1138> You can do `x = (x + 1) % y.size()` for increment, and `x = (x + y.size() - 1) % y.size()` for decrement, if you want to avoid conditionals. I don't know whether that's good practice though :)
13:32:43 <rito12_51026> I'll benchmark that
13:33:25 <peter1138> Unless it's in a tight loop... uh...
13:36:09 <_jgr_> You're not going to get anything meaningful trying to benchmark something that trivial
13:37:06 <_jgr_> I'm still not sure what it is you're trying to actuslly do
13:37:34 <peter1138> IIRC it's hotkeys to switch between previous and next railtype.
13:37:43 <peter1138> i.e. not something that matters.
13:41:15 <_jgr_> At first glance this looks like a rather weird way to implement that
13:43:22 <peter1138> This is not clear code :)
14:11:48 <rito12_51026> I just wanted to have only one loop
14:11:55 <rito12_51026> peter1138: It tells me that conditionals are 2.19 ± 0.23 times faster than modulo
14:13:29 <audigex> Modulo is fun to use for some reason though
16:17:19 *** Wormnest has joined #openttd
16:41:05 <andythenorth> I missed all the fun
16:48:15 <andythenorth> on my computer, I can click, release, then select, or click-and-hold-and-release
16:51:07 <andythenorth> it's not a setting 😛
17:44:58 <xarick> they have the most impact
17:56:04 *** Borg has quit IRC (Quit: leaving)
17:56:04 <xarick> JGR's ScriptList went into a wild new direction :(
17:56:51 <xarick> some suspendable parts missing
17:59:04 *** MinchinWeb[m] has quit IRC (Read error: Connection reset by peer)
17:59:21 *** MinchinWeb[m] has joined #openttd
18:01:57 <andythenorth> peter1138: isn't there always fun?
18:02:30 <LordAro> you'd be surprised how often it's the opposite
18:03:16 <LordAro> (by which i mean not fun when you're away, rather than not fun when you're here)
18:03:29 <xarick> the news on the radio are so depressing...
18:03:36 <andythenorth> not fun when I'm here
18:03:40 <andythenorth> sounds about right
18:04:13 <dwfreed> xarick: for sanity reasons, I stopped paying attention to the news outside of my local area
18:06:00 <xarick> something about the end of nato due to greenland possible takeover. Europe is so screwed in the near future
18:20:45 <cu-kai> it's just trump sabre rattling
18:21:10 <andythenorth> it's low cost and makes headlines
18:23:43 <xarick> I don't know anymore, after what happened in venezuela
18:24:59 *** mrmox0456 has joined #openttd
18:24:59 <mrmox0456> You assume he’s rational
18:25:55 <andythenorth> "I have no valid evidence"
18:34:21 <LordAro> `directiveFileName.push_back('\0');`
18:38:19 <Rubidium> LordAro: looks like you made a typo there... `defectiveFileName.push_back('\0');`
18:40:43 <Rubidium> let me guess, `.data()` didn't do the right thing when passing it to some C-function
18:41:07 <LordAro> i've no idea, the line above constructs the std::string from a perfectly valid c-string
18:47:07 <Rubidium> oh noes... which standard library does something funky between them?
18:49:06 <LordAro> it's the standard itself really. std::string(char_ptr, num) is kinda-sorta equivalent to str.substr(0, num). std::string(str, num) is kinda-sorta equivalent to str.substr(num)
18:52:01 <Rubidium> oh... now I see. Yeah, that might trip you up.
19:08:42 <LordAro> Rubidium: thoughts on backporting #15044?
19:10:42 <Rubidium> I guess that ought to be fine
19:27:08 <rito12_51026> Can rail cursors be animated?
19:27:39 <brickblock19280> palette animations out to work
19:28:48 <rito12_51026> I mean do I need all of that:
19:28:48 <rito12_51026> if ((icon & ANIMCURSOR_FLAG) != 0) {
19:28:48 <rito12_51026> SetAnimatedMouseCursor(_animcursors[icon & ~ANIMCURSOR_FLAG]);
19:28:50 <rito12_51026> SetMouseCursor(icon, pal);
19:28:52 <rito12_51026> or only `SetMouseCursor(icon, pal);`?
19:33:26 <rito12_51026> I guess I need all of it
19:39:50 <peter1138> I would guess you make that a function and then call it where needed.
19:52:14 <rito12_51026> BTW I went for modulo, as it is only one line and then I can use while instead of do while...
20:15:07 <xarick> forgot how to ignore it cleanly
20:15:42 <_glx_> many options for that, the only bad one is .gitignore
20:17:50 <_glx_> I put it in .\.git\info\exclude
20:21:22 <_glx_> in .git it's only valid for this clone
20:26:55 <xarick> i just built openttd jgrpp-0.68.2-248-g691609180
20:27:27 <xarick> can't put it side by side with my other openttd.exe's, missing lang files?
20:30:01 <_glx_> like any other openttd build, it should be in its own dir with corresponding lang files
20:34:19 *** MinchinWeb[m] has quit IRC (Read error: Connection reset by peer)
20:36:45 *** MinchinWeb[m] has joined #openttd
20:50:26 *** Newbieee has joined #openttd
20:50:50 <xarick> _jgr_: dbg: [script:0] [squirrel] Your script made an error: Loading info.nut from (Regression.1): GetAPIVersion returned invalid version
20:50:50 <xarick> ` function GetAPIVersion() { return "16"; }`
20:54:57 <Rubidium> peter1138: might you also be able to have a quick look at 15054?
20:56:32 <xarick> jgr isn't using suspendable RemoveItems :(
21:17:46 <rito12_51026> peter1138: This solution only works for half of the size_t range. Picture this: if size_t was 4 bits, x == 8 and y.size() == 10 then (x + y.size() - 1) evaluates to 17, which overflows to 1 and (1 % 10) != (17 % 10)
21:27:48 <andythenorth> are we prepared to put multiplayer passwords back?
21:29:07 <ahyangyi> rito12_51026: You'll run out of addressable memory space way before you hit problems like this.
21:29:36 <ahyangyi> Picture this: if size_t was 4 bits, and each railtype takes more than 16 bytes to store. You can store at most 0 railtype in your process.
21:33:07 *** Borg has quit IRC (Quit: leaving)
21:33:55 <_jgr_> You don't need anything fancy to go next/previous in an extremely modestly sized list
21:35:07 <andythenorth> means this Horse bug is no longer a bug 😛
21:45:21 <peter1138> Vehicle flipping? How dare you?
21:55:40 <andythenorth> immortal words of shaggy: "it wasn't me"
21:55:58 <andythenorth> just random reverse on build, followed by autoreplaice
22:54:10 *** Wolf01 has quit IRC (Quit: Once again the world is quick to bury me.)
continue to next day ⏵