IRC logs for #openttd on OFTC at 2025-06-26
โด go to previous day
00:07:23 *** dh1 has quit IRC (Read error: Connection reset by peer)
02:25:16 *** gnu_jj_ has quit IRC (Ping timeout: 480 seconds)
03:25:26 *** dh1 has quit IRC (Ping timeout: 480 seconds)
03:46:56 *** WormnestAndroid has quit IRC (Remote host closed the connection)
03:46:58 *** WormnestAndroid has joined #openttd
04:10:46 *** Flygon has quit IRC (Remote host closed the connection)
04:20:23 *** WormnestAndroid has quit IRC (Read error: Connection reset by peer)
04:20:25 *** WormnestAndroid has joined #openttd
04:20:45 *** WormnestAndroid has quit IRC (Read error: Connection reset by peer)
04:20:46 *** WormnestAndroid has joined #openttd
04:21:01 *** WormnestAndroid has quit IRC (Read error: Connection reset by peer)
04:21:24 *** WormnestAndroid has joined #openttd
04:43:41 <DorpsGek> - Update: Translations from eints (by translators)
04:50:13 *** dh1 has quit IRC (Ping timeout: 480 seconds)
05:47:21 *** ArtUlvar has joined #openttd
07:14:52 *** dh1 has quit IRC (Quit: My Mac has gone to sleep. ZZZzzzโฆ)
08:13:00 <peter1138[d]> Eh, probably more than a Change :p
09:08:42 <locosage> the sheer volume of code duplication in that pr feels borderline criminal
09:11:44 <LordAro> that is not a helpful thing to say
09:19:20 <peter1138[d]> I'm going to jail.
09:21:20 <locosage> hey, I added a smiley face :p
09:21:38 <locosage> but your inferior communication method probably doesn't support edits ๐
09:31:47 <locosage> seriously though, would've likely been much cleaner pr before 9725 nuked CommandContainer
09:35:29 <locosage> dunno how to link a line in pr diff but it's where those if (test) do_test_command else do_same_command_for_real started appearing
09:36:31 <peter1138[d]> Yes, manually bitstuffing everything into p1 and p2, running out of space, and then manually decoding, possibly incorrectly, was definitely cleaner.
09:37:53 <locosage> it's contradictory, you can still have command containers and named arguments
09:39:07 <locosage> admittedly the way I achieved that in cmclient is disgusting but it's localized and mostly there because I had to built it on top of existing stuff and my template-fu isn't strong enough
09:39:50 <locosage> *it's not contradictory
09:40:35 <locosage> it's probably not the right way to say that in english anyway ๐
09:45:48 <kuhnovic> You're just hating on 9725 because it was a nightmare to merge into cmclient ๐
09:46:45 <peter1138[d]> kuhnovic: JGRPP didn't merge it at all.
09:47:11 <locosage> kuhnovic: oh, whatever, go write your if mess ๐
09:47:17 <peter1138[d]> Hmm, maybe it did.
09:47:26 <locosage> cmclient just had all those issues because it was ahead with ui stuff
09:48:20 <locosage> by now I'm starting to hijack ui stuff at the click level so I won't get affected by it that much anymore
09:49:11 <kuhnovic> Part of the joy of maintaining a patch pack I guess ๐
09:49:45 <kuhnovic> Most stuff probably merges fine but some of these fundamental changes must be hell
09:50:22 <locosage> and refactoring is annyoing as heck
09:51:07 <locosage> I think I managed to finally base cmclient on openttd repo though so I should be able to merge by individual commits in the future not the whole release at once
09:55:11 <_jgr_> The command layer in my branch doesn't match 9725 or the old p1/p2 stuff internally. Though admittedly I did hang on to vestiges of p1/p2 for quite a while.
09:55:48 <_jgr_> I do have command container types which are quite handy for some things but they don't match the old ones in vanilla.
10:10:00 *** dh1 has quit IRC (Quit: My Mac has gone to sleep. ZZZzzzโฆ)
10:11:58 <peter1138[d]> I'll add a PostOrQuery command helper, that'll reduce all of that duplication (except for station building)
11:24:00 <pickpacket> I'm experimenting with nerfing the cargo payments for tea leaves and tea in Tea Tea Deluxe. It's probably a good idea because it balances stuff out a bit, but it hurts a little to reduce the value of them โค๏ธ
11:51:31 *** f_ has quit IRC (Ping timeout: 480 seconds)
12:02:01 <kuhnovic> I really really like this new highlighting in red + error message Peter!
12:02:18 <kuhnovic> (I enabled the preview, so play around with it ๐ )
12:05:21 *** WormnestAndroid has quit IRC (Remote host closed the connection)
12:05:44 *** WormnestAndroid has joined #openttd
12:08:31 <peter1138[d]> Less prison time now.
12:14:26 <pickpacket> peter1138: it's a maximum of three turns anyway. And you can still collect rent from your properties while incarcerated.
12:19:39 <kuhnovic> Feel free to ignore my remarks, I just wrote everything down as general feedback ๐
12:21:18 <locosage> thing with error dialog is that things can change before preview and command execution
12:22:17 <locosage> so I decided for my preview that red popup can stay for now, as players are not supposed to click when there is the error anyway
12:23:35 <kuhnovic> True, but since we're now showing the error using a red label, maybe we can use something similar to prolong the display time of the message a bit. Similar to the text effects we have for cost / income.
12:24:19 <kuhnovic> Feels much more responsive and we wouldn't be limited by a single (lingering) dialog anymore
12:25:17 <locosage> idk, needs play testing
12:25:48 <peter1138[d]> Probably wants a dedicated "mini-error" window that follows the mouse around (instead of the tile)?
12:26:17 <peter1138[d]> It's also possible for the error tile to be off-screen.
12:27:38 <peter1138[d]> Something else that could be done is to show the cost if it would be successful, so shift to estimate the cost becomes redundant.
12:28:04 <locosage> wonder how other games do that
12:28:25 <locosage> yeah, I've put costs into overlay for that exact reason
12:28:46 <peter1138[d]> Hmm, yeah, auto-road issues a different command depending on drag or no-drag.
12:29:41 <locosage> though I've not played enough with that overlay to confidently say it's a great idea
12:29:48 <locosage> but it's the best I have so far
12:30:35 <locosage> another one would be to dedicate some place on screen for that info
12:30:39 <locosage> something like a side panel
12:31:05 <locosage> and I have other uses in mind for it too
12:31:45 <locosage> like tracking gameplay warnings like lost trains
12:37:16 <kuhnovic> peter1138[d]: Yes, then we can use shift to create even more ctrl+click-like magic
12:38:03 <locosage> I have remove mode on shift already in cmclient
12:40:11 <peter1138[d]> Ah, not a different command.
12:40:54 <peter1138[d]> I need whatever happens in OnPlaceDrag to happen in OnPlaceMouseUp too. It's not a drag operation until you hold the mouse button.
12:55:43 <peter1138[d]> Hmm, right, the chat box is not a real window either. Pom te pom.
13:10:10 *** keikoz has quit IRC (Ping timeout: 480 seconds)
13:17:29 *** keoz has quit IRC (Ping timeout: 480 seconds)
13:30:31 <peter1138[d]> > Due to the current COVID-19 situation we are unable to ship product internationally, so we temporarily closed the store. Hopefully things will be back up and running soon.
13:35:10 <_glx_> And the temporary became definitive
14:14:50 *** keikoz has quit IRC (Ping timeout: 480 seconds)
14:26:09 *** keoz has quit IRC (Ping timeout: 480 seconds)
14:26:32 <peter1138[d]> There is also the issue that it doesn't pulsate when the game is paused.
14:27:23 <peter1138[d]> And making it do so would also make other red-palette-animated things animate.
14:48:09 <LordAro> what would that effect?
14:52:49 <peter1138[d]> Level crossings for starters.
14:53:09 <peter1138[d]> Airports also use them.
15:20:15 *** WormnestAndroid has quit IRC (Remote host closed the connection)
15:20:17 *** WormnestAndroid has joined #openttd
15:31:16 *** TTPQueen has joined #openttd
15:31:18 *** Flygon has quit IRC (Read error: Connection reset by peer)
15:31:50 <TTPQueen> How do I add more currency
15:33:24 <talltyler> You can select a custom currency, thatโs the easiest way
15:35:29 <TTPQueen> How would one do that. New to this
15:37:14 <talltyler> Open the Options menu, in the General tab thereโs a dropdown for Currency units. Scroll to the button and select Customโฆ, itโll bring up a menu to set up the units however you like.
15:39:49 <TTPQueen> Thank you very much!
15:43:34 <talltyler> ...who else didn't know we had blue buttons? ๐
15:48:18 *** merni has quit IRC (Quit: User went offline on Discord a while ago)
15:49:44 <peter1138[d]> Yeah, that's a weird one ๐
15:55:47 *** TTPQueen has quit IRC (Quit: Page closed)
18:05:11 <peter1138[d]> I mean... what's the point in statues if they don't affect something?
18:10:09 <talltyler> Statues are arguably a bad feature ๐
18:11:05 <_jgr_> The whole concept of building statues to yourself is a bit weird. In that sense, them not having any in-game effect sounds like a good move to me.
18:12:35 <talltyler> Just look at the tagline ๐
18:13:30 <peter1138[d]> I don't like the idea of changing core game mechanics just because some people want to play the min-max game (or whatever the term is) and dislike doing things to achieve that.
18:17:22 <belajalilija> Fuckinh noob bridge choice
18:20:09 <talltyler> I get your point, but my two counterpoints:
18:20:09 <talltyler> 1. It's not changing core game mechanics, it's offering an alternative
18:20:09 <talltyler> 2. The current station rating system encourages min-maxing, the proposed alternative rewards "realism" patterns created by a group of active players who use JGRPP to alter or bypass core game mechanics, and adapted to OpenTTD by me ๐
18:21:55 <talltyler> I'm taking the same approach I did with NotDaylength and Depot Unbunching: JGRPP gives players lots of knobs, I see which ones they actually use, and find the cleanest, simplest solution to achieve the same results in vanilla ~~and give JGR the most merge conflicts~~ ๐
18:23:56 <_jgr_> On the issue of "core game mechanics", I'd argue that stuff like statues are not core at all. It's peripheral at best.
18:23:56 <peter1138[d]> I'm not against changing station rating mechanics. I just think it could still involve a statue at some point ๐
18:24:28 <peter1138[d]> In this case, core means "part of TTD from the beginning"
18:24:29 <talltyler> I'm not opposed to statues, but placing them in every town gets old fast ๐
18:24:56 <talltyler> Maybe they be used for tiebreaking if two companies have stations in the same town?
18:25:01 <talltyler> (covering the same tiles)
18:25:31 <peter1138[d]> And that boils down to "dislike doing things to achieve that"
18:26:24 <peter1138[d]> Like, just because you can...do you HAVE to?
18:26:46 <talltyler> Heheh, if we were open to actually changing existing things, we could tie the statue to exclusive transport rights. Only one company gets a statute, and when your rights expire, the statue goes poof
18:26:57 <peter1138[d]> Is it a chore that people feel that absolutely must do otherwise they are not going to, uh... have way too much sooner?
18:27:48 <peter1138[d]> Rioters appalled are your shoddy serving tear down your statues-disaster.
18:28:16 <talltyler> Maybe if you get Outstanding ratings with the local authority, the town builds the statue themselves ๐
18:32:29 <peter1138[d]> Maxing out the ratings seems like something that isn't necessary anyway.
18:32:43 <peter1138[d]> And also, we invented GameScripts to change how the game plays... kinda.
18:35:51 <talltyler> I don't use GameScripts often, but I hear "only one GS at a time is limiting" from a lot of the realism-focused players. They want a town growth GS and Peaks & Troughs (passenger demand by time of day) -- someone has made a combination of those two already but that leaves no room for a third. ๐
18:39:07 <_jgr_> Continuous command spam to update town growth and town window text is already not ideal. Doing the same for stations does not sound great to me.
18:39:21 <peter1138[d]> As I say, I'm not against changing the mechanics of it. But changing it because people get annoyed they can't get 100% is ... missing the point.
18:42:37 *** coobies has joined #openttd
18:42:37 <coobies> Rescale it so 67% is displayed as 100% and anything above that is shown like a bonus up to 150%. Then there is no obvious maximum and completionists will be happy with the rating they get from basic "very good" service
18:56:51 <locosage> and then I'll have to explain why 100% rating means 67% transported
18:57:51 <locosage> statues are just a basic competitive mechanic, company that can afford to spend some money gets some rating
18:58:13 <locosage> same with advertisement but it costs more and need to do it constantly
18:59:20 <locosage> costs more in a long run I mean
19:03:09 <locosage> _jgr_: yeah, game script sucks because it doesn't run on a client
19:03:17 <coobies> locosage: Scale all that too
19:04:04 <locosage> coobies: well, what's 150% transported supposed to mean? industry produced x and magically conjured another half?
19:04:21 <coobies> It produced 150% of some nominal amount
19:04:36 <coobies> It's pretty standard in games
19:04:52 <locosage> industries have a stated production rate
19:04:58 <coobies> But it's also not a totally serious suggestion, I should drop it
19:05:28 <peter1138[d]> coobies: Yeah, you can't make light-hearted throw away lines here, someone will take it all seriously.
19:06:01 <locosage> I use similar display for public transport quality where it goes 0-200% but anything beyond 100 is extra and don't affect anything
19:07:01 <coobies> That's probably the right place to be trying to steer how people play the game anyway
19:08:25 <locosage> this is dev chat, no one plays the game here ๐คญ
19:09:54 <coobies> I just agree that it would be silly to modify core game mechanics just because some people are playing wrong
19:10:45 <peter1138[d]> locosage: "The only way to win the game is to not play"
19:29:10 *** tokai has quit IRC (Ping timeout: 480 seconds)
19:29:51 <peter1138[d]> Though I've not seen many incidents of "lost the game" for a long time.
19:46:24 <peter1138[d]> Still... maybe not red anyway.
19:47:07 <peter1138[d]> Proposal, remove inconsistent prefix ellipsis?
20:04:42 <peter1138[d]> Without the ellipsis?
20:06:44 <peter1138[d]> Probably a core mechanic that I shouldn't touch.
20:10:21 *** Wormnest has joined #openttd
20:22:18 *** Wolf01 has quit IRC (Quit: Once again the world is quick to bury me.)
20:35:36 *** WormnestAndroid has quit IRC (Read error: Connection reset by peer)
20:35:37 *** WormnestAndroid has joined #openttd
20:40:26 <andythenorth> probably too late to talk about statues, eh?
20:40:52 <talltyler> I welcome your ideas ๐
20:43:46 <andythenorth> "ideas" is not what I have ๐
20:44:30 <andythenorth> is there an endpoint for GS to know if the town has a statue?
20:45:05 <peter1138[d]> Look, I think everyone agrees.
20:45:16 <peter1138[d]> Merging the town view window and the Local Authority window is...
20:45:18 <dh1> just replace with parking lot.
20:45:21 <peter1138[d]> Probably not a good idea ๐
20:47:14 <andythenorth> merging them to reduce yak-shaving clicks by 50%
20:47:26 <andythenorth> but still 1 click for every town on the map
20:47:39 <andythenorth> or GS can just build a statue in every town, probably optionally for free
20:49:35 <peter1138[d]> AI likes canals... and buoys.
20:49:59 <andythenorth> is Squirrel compiled / interpreted somehow when the map / savegame is loaded?
20:50:15 <andythenorth> or do we have an interpreter that we could pass arbitrary squirrel to during the game?
20:53:57 <peter1138[d]> Hmm, is there a diff tool that'll apply "similar" changes from on a different file.
20:54:16 <peter1138[d]> I should I just script my changes and apply to everything ๐ฎ
20:57:29 <andythenorth> do we not fancy a box for typing live squirrel into? ๐
21:23:03 <peter1138[d]> Zernebok, Zernebok, where art thou'?
21:23:35 <peter1138[d]> Bit on the sluggish side.
21:24:14 <andythenorth> _glx_: because a not insignificant number of player feature requests can be done in GS
21:24:47 <andythenorth> but GS is frequently refused, with the reason stated as 'you can only have one'
21:25:03 <_glx_> yes you can only have one
21:25:03 <andythenorth> "paste live scripting here"
21:25:20 <andythenorth> hmm does squirrel have eval?
21:25:28 <andythenorth> I could write a GS that parses GS
21:26:04 <_glx_> it's the same limitation as 1 script per AI
21:26:21 <andythenorth> I could write a keyboard in the storybook with buttons
21:26:30 <andythenorth> I bet squirrel doesn't have eval ๐
21:26:37 <_glx_> because you can't assume any script will cooperate with any other script
21:28:19 <_jgr_> From a player point of view, stuff implemented in the game itself (e.g. as settings) is vastly more reliable and easy to manage than stuff in scripts
21:28:47 <andythenorth> and yet we know that "content > settings" almost every time
21:28:49 <_glx_> and scripts may have unexpected delays
21:28:56 <andythenorth> well in theory content > settgins
21:29:06 <andythenorth> JGRPP users disagree ๐
21:29:14 <andythenorth> different folks, different strokes
21:29:54 <_jgr_> Content in the form of NewGRFs is mostly fine, scripts are a different matter
21:30:00 <reldred> Content > settings but sometimes we find after cludging the content together that it really is better as a setting.
21:30:01 <_glx_> you can easily see how long it is to react to pressed button when script asks something
21:30:22 <reldred> Like public roads. People used to do that with AI and GSโs but it was shit
21:30:29 <andythenorth> reldred: order is significant there
21:30:53 <_glx_> reldred: when GS didn't have fire and forget mode maybe
21:31:12 <_jgr_> Adding/removing/configuring GSs is subject to a lot of restrictions, as opposed to settings which just work
21:31:50 <reldred> Public roads has ended up infinitely superior implemented as a proper feature.
21:32:08 <reldred> But I think itโs useful sometimes to prototype things
21:32:23 <andythenorth> settings for statues just inherently strikes me as wrong
21:32:27 <_glx_> but yes GS has limited run time right after map gen
21:32:57 <andythenorth> why have a setting for statues, when the content can change that?
21:33:03 <_glx_> and in non async mode it's easy to exaust the gameloop runs
21:33:07 <_jgr_> Then after map gen, it's a lot of hoop jumping to rid of the GS if it's causing problems
21:33:20 <andythenorth> and having a player setting makes it harder to reason about content
21:33:28 <_jgr_> Likewise adding GSs to existing games are unreasonably difficult, compared to turning on a setting
21:33:30 <andythenorth> like economy setting and industry behaviour
21:33:45 <_glx_> removing GS is even worse
21:33:45 <andythenorth> 3 convos async ๐
21:34:30 *** keikoz has quit IRC (Ping timeout: 480 seconds)
21:34:37 <locosage> I'd say settings to adjust existing behaviour, mods to add new one/change it completely
21:35:07 <andythenorth> players will complain about or campaign for a setting for statues
21:35:16 <andythenorth> or take the time to add one to every time
21:35:26 <andythenorth> but they won't write the 100 lines or so of Squirrel to make a GS do it
21:35:32 <andythenorth> so they don't care that much
21:35:55 <locosage> in cmclient you can build statue by ctrl-clicking a town on the map xD
21:36:14 <_glx_> you don't need 100 lines to build a statue in every town
21:36:38 <andythenorth> I haven't counted
21:36:53 <_glx_> it's just some foreach loops
21:37:35 <peter1138[d]> I think I need to leave again.
21:37:47 <andythenorth> and you can't rely on it completing in map gen
21:38:13 <_glx_> it won't happen in map gen, there's no company yet
21:39:06 <locosage> yeah, need to manage companies, money, find town that have service in, etc
21:39:07 <_glx_> oh and it needs to impersonate company an use its money
21:39:17 <andythenorth> and possibly give money back
21:40:03 <andythenorth> oof such pixel train problems ๐
21:41:57 <locosage> oh, btw, if anything, having statues is way more sensible than 3 advertisement options ๐
21:52:08 <talltyler> peter1138[d]: Yes, protection in the house placer only prevents the town from removing the house (and I guess AI, there was a debate about that not too long ago). But definitely a different thing. ๐
21:53:27 <peter1138[d]> Well, player is prevented as well if the operation isn't actually removal.
21:53:42 <peter1138[d]> Hmm, so it needs to be building in the way.
21:58:20 <talltyler> Not sure what you mean ๐
21:58:36 <peter1138[d]> Actually... Hmm.
21:58:54 <talltyler> We canโt overbuild houses, unless itโs by an house-replacing industry (and I doubt that is blocked, havenโt checked though)
21:59:22 <peter1138[d]> And it is blocked, because it's protected.
21:59:29 <talltyler> I learn something every day ๐
21:59:55 <peter1138[d]> That's NewGRF-protected by way of the high LA rating decrease.
22:00:21 <peter1138[d]> But the other type of protection, that the player can toggle when placing houses, is also prevented.
22:00:43 <peter1138[d]> Which probably makes sense, it's meant to be protected.
22:00:58 <talltyler> My brain might be too mush to have an intelligent conversation about this right now ๐
22:01:14 <talltyler> Made my work deadline, but at what cost?
22:01:28 <peter1138[d]> Basically my actual question is, is "building is protected" a suitable error message for both cases?
22:01:43 <peter1138[d]> One is protected by the player, one is "protected" by the NewGRF.
22:02:05 <peter1138[d]> Technically it's the local-authority refusing to allow removal, BUT that's special cases so that it ignores the local authority permissiveness stuff.
22:02:19 <peter1138[d]> (Because 12989 said that it's special)
22:03:15 <peter1138[d]> "Can't construct this industry type here..." "NewGRF says it can't be removed" is probably not that good of an error ๐
22:04:41 <peter1138[d]> Anything thoughts on this one? I've removed the "..." from the beginning of the second line.
22:05:11 <cu-kai> random person chipping in here, i think that looks better
22:05:31 <peter1138[d]> Avoids double ... in the overlay error, and the error messages are all very inconsistent currently. Except in the branch I have now.
22:06:15 <peter1138[d]> Oh, message as it is in master, for comparison I guess.
22:07:39 <locosage> as someone who've ran into those extra ... myself I definitely support removing them xD
22:07:53 <locosage> and possibly forced {WHITE} as well xD
22:08:03 <peter1138[d]> Funnily enough...
22:16:47 <_glx_> we started to remove forced colours, but many are still there ๐
22:40:29 *** firepup650 has quit IRC (Ping timeout: 480 seconds)
23:04:41 <_zephyris> peter1138[d]: Removing double ellipses is fine, but a little worried about removing line breaks - long translation languages and all that.
23:05:00 <peter1138[d]> Who's removing a line break?
23:06:28 <peter1138[d]> (These strings don't have line breaks)
23:16:26 <peter1138[d]> Hmm, bulk updating other language is always... interesting.
continue to next day โต