IRC logs for #openttd on OFTC at 2026-03-10
            
00:57:09 *** andythenorth has quit IRC (Quit: Connection closed for inactivity)
01:36:43 *** Wormnest has quit IRC (Quit: Leaving)
01:41:27 *** WormnestAndroid has quit IRC (Read error: Connection reset by peer)
01:41:28 *** WormnestAndroid has joined #openttd
02:59:49 *** Tirili has quit IRC (Quit: Leaving)
04:54:31 *** Zathras_1 has joined #openttd
04:55:19 *** Zathras_11 has joined #openttd
04:57:54 *** Zathras_4 has quit IRC (Ping timeout: 480 seconds)
04:58:04 *** Zathras_7 has quit IRC (Ping timeout: 480 seconds)
05:00:40 <DorpsGek> [OpenTTD/OpenTTD] eints-sync[bot] pushed 1 commits to master https://github.com/OpenTTD/OpenTTD/commit/a1cf40448ea17913c42d1445336f32ad77dc647e
05:00:41 <DorpsGek> - Update: Translations from eints (by translators)
07:31:27 *** andythenorth has joined #openttd
07:31:33 <andythenorth> wonder if I'm capable of importing nml as a python lib and selectively using it
07:31:40 <andythenorth> let's assume "not easily" :P
07:31:46 <andythenorth> Eddi did it though a long time ago
07:42:28 *** Flygon has quit IRC (Read error: Connection reset by peer)
07:54:51 <locosage> I'm doing that in grf-py for string management and sprite encoding
07:55:22 <locosage> though I'd prefer not to
08:47:42 *** tokai has joined #openttd
08:47:42 *** ChanServ sets mode: +v tokai
08:54:46 *** tokai|noir has quit IRC (Ping timeout: 480 seconds)
09:07:56 <peter1138> Split into separate python packages. Oddly specific libs that nobody else has a use for.
09:18:17 <fairyflossy> I have a FIRS code question, regarding 'near_at_least_one_of_these_keystone_industries'. If I look at the Coke Oven, it lists two industries, as well as a number (72). Does the 72 mean that it must be within 72 tiles of one of the 'keystone' industries?
09:27:40 <emperorjake> Yes I'm pretty sure that's what it means
09:40:21 <peter1138> > Are you serious?
09:47:21 <reldred> no, you're peter
09:48:18 <fairyflossy> Hmmm, near_at_least_one_of_these_keystone_industries does not actually prevent you from *funding* it anywhere, only from it generating wherever. That's a little annoying.
09:48:52 <reldred> yeah its just autogen params
09:49:10 <reldred> I kinda dislike that such units aren't scaled by the map size
09:49:48 <reldred> but lately i just use jgrpp'isms to only spawn primaries and I fund everything else by myself
09:51:05 <fairyflossy> What I'm trying to do is introduce 'extension' industries for mines. Funding a mine is expensive, but the desire is to let you build somewhat-less-expensive expansions of mines near existing mines for extra production
09:51:21 <reldred> that could be fun
09:52:02 <fairyflossy> So if you want to fund a whole new mine, that costs like, 7 mil, but if you want to just upgrade your mine, that costs less but can only be done relatively close to an existing mine
09:52:10 <reldred> shoehorning it ontop of firs might be interesting though
09:52:22 <fairyflossy> But the fact that near_at_least_one doesn't prevent funding is... problematic
09:54:27 <fairyflossy> Building on top of FIRS both gives a lot of options and makes a lot of things easy while also making other things more difficult
09:56:27 <reldred> normal
10:11:25 <peter1138> It also means you're stuck with FIRS bad decisions (*if it has them)
11:23:34 <ahyangyi> Everything can be changed, at a cost
12:27:09 <peter1138> https://www.reddit.com/r/Unexpected/comments/1rptj38/milk_tanker/ Someone set the cargo classes incorrectly.
13:07:01 <LordAro> peter1138: :D
13:13:26 *** Wormnest has joined #openttd
13:33:08 <andythenorth> Such FIRS
13:39:32 <rito12_51026> andythenorth: `nml.main.main(NMLC_FLAGS)` works
13:48:30 <andythenorth> such entry point :)
13:49:33 <LordAro> saves the cost of spawning subprocesses, at least
13:49:48 <LordAro> probably not much on macOS though
15:15:43 *** onlypeace21 has joined #openttd
15:15:43 <onlypeace21> iask devlopers to please add oil that company have a storage of oil with out oil things not run please add oil mod i very i love openttd
15:29:25 <mmtunligit> thats something for GRFs, behavior of default industries will not be changed
15:30:03 <mmtunligit> wait hold on you want a fuel system?
15:30:18 * LordAro wonders if '21' refers to DoB
15:30:41 <mmtunligit> PRs welcome but I cant imagine there is much enthusiasm amongst the devs for that sort of thing. If you want it in the game youre gonna have to make it yourself
15:38:31 <rito12_51026> I can change username on discord
16:22:40 *** Borg has joined #openttd
17:19:28 *** Flygon has joined #openttd
17:35:51 *** Wolf01 has joined #openttd
18:09:56 <peter1138> Urgh
18:10:00 <andythenorth> well
18:25:08 <LordAro> mm
18:39:53 <Borg> satan! ;) unusually quiet channel today..
18:39:58 <Borg> so. Ill post sth ;)
18:40:17 <Borg> I added extra feature to Routing Restriction.. new command: Wait <N> days :D
18:46:02 <kuhnovic> That's mostly because our most chatty person received a permaban
18:46:27 <andythenorth> least said, soonest mended
18:46:54 <talltyler> I've rebased frosch's old "Trains can drive backwards" patch, and it compiles, but the title game immediately crashes with "Disconnecting train". :/
18:47:23 <talltyler> I am shocked
18:48:59 <talltyler> Any tips on diagnosing what I've done wrong?
18:49:11 <talltyler> Besides "scrap it all and start from scratch" 🙂
18:55:08 <peter1138> Well.
18:55:25 <peter1138> Tearing it apart to understand it is not the worst thing to do.
18:55:54 <talltyler> You speak the truth I do not want to hear 🙂
18:56:20 <Borg> uhh what hapened kuhnovic ?
18:57:52 <_glx_> an option would be to start digging from the "disconnecting train" message to see what can cause it
18:59:37 <kuhnovic> I didn't follow the entire thing but he said something offensive about LHBT, got a warning and a temp ban. And then started complaining on IRC and earned himself a permaban.
19:00:18 <kuhnovic> But yeah, no need to dwell on it
19:02:35 <Borg> huh ;)
19:13:10 <talltyler> Ah, there's a line in the stacktrace that has a Warning C28182 in MSVC
19:13:10 <talltyler> https://learn.microsoft.com/en-us/cpp/code-quality/c28182?view=msvc-170
19:15:46 <peter1138> What about my patch lying around somewhere that allows non-leading engine.
19:15:57 <peter1138> Probably much ancienter :D
19:16:13 <talltyler> I've pushed my fork, the specific error is `Dereferencing NULL pointer. 'v' contains the same NULL value as 'v=v->Next()' did.`
19:16:13 <talltyler> https://github.com/2TallTyler/OpenTTD/blob/backwards/src/rail_cmd.cpp#L2999
19:16:43 <talltyler> What...does this mean?
19:18:36 <_jgr_> The indentation looks wrong/misleading there, might be some problem when rebasing?
19:18:52 <talltyler> Quite possible 🙂
19:19:14 <talltyler> The rebase went a bit sideways but I thought I fixed it all in order to make it compile.
19:20:54 <_jgr_> The warning is becuase you've got an if block with some pointer != nullptr, then you're doing something with that pointer after if block anyway
19:22:16 <_jgr_> So the compiler could potentially use that UB to delete the nullptr check
19:23:50 <goddess_ishtar> hey andythenorth, what's `pollution_and_squalor_factor` actually used for?
19:23:50 <goddess_ishtar> (I think that typing in the IRC username will ping someone on the other side of the bridge?)
19:28:06 <LordAro> yup
19:29:48 <goddess_ishtar> is it for the benefit of the FIRS gamescript?
19:46:22 <DorpsGek> [OpenTTD/grfcodec] PeterN opened pull request #63: Codechange: replace auto_array with std::vector https://github.com/OpenTTD/grfcodec/pull/63
19:54:47 <peter1138> Oh, need to keep that const in;.
19:55:24 <DorpsGek> [OpenTTD/grfcodec] PeterN updated pull request #63: Codechange: replace auto_array with std::vector https://github.com/OpenTTD/grfcodec/pull/63
20:00:46 <andythenorth> `pollution_and_squalor_factor` is an abortive attempt to do GS-like behaviour via town storage
20:00:56 <andythenorth> it fails, because grf doesn't have enough view on the map
20:01:23 <andythenorth> grf would still be preferable to GS, because callbacks, state, far less yak-shaving etc
20:01:32 <andythenorth> everything in GS is awful, but it gets things done
20:01:43 <andythenorth> so GS it is :P
20:02:24 <talltyler> It was indeed a bad rebase, now fixed 🙂
20:02:51 <goddess_ishtar> andythenorth: It seems like it'd be interesting to affect town building growth near the industry
20:02:59 <goddess_ishtar> but I think that'd need a compatable building set
20:03:04 <andythenorth> or GS
20:03:22 <talltyler> On to trains crashing immediately and asserting 😄
20:03:26 <andythenorth> Tyler and I talked about how ITI Houses could use town storage etc to collaborate
20:03:39 <talltyler> Oops, I forgot to do my part of that 🙂
20:03:53 <andythenorth> I didn't do mine either
20:03:59 <andythenorth> so nobody wasted any time :)
20:04:02 <talltyler> Or maybe we never figured out the specifics
20:04:11 <andythenorth> all roads lead to GS
20:04:16 <goddess_ishtar> I wanted to do at least some control with badges
20:04:17 <andythenorth> but GS is fricking awful to develop
20:04:23 <andythenorth> but GS is what we have
20:04:44 <goddess_ishtar> andythenorth: due to Squirrel being an awful language, or due to the API being awful?
20:05:05 <_jgr_> "Yes"
20:05:12 <Borg> I still see Squirrel batter than LUA
20:05:27 <Borg> I recently spent dozen of time hacking around Supreme Commander...
20:05:37 <Borg> even tho they added some goodies like '!=' and continue
20:05:52 <Borg> still lack of proper arrays pissing me off every time
20:08:55 <andythenorth> Squirrel is not a great language, but no worse than JS
20:09:02 <andythenorth> we're stuck on 2, which has piss poor docs
20:09:10 <goddess_ishtar> JS is a horrible language
20:09:18 <andythenorth> yes, but it's wildly successful
20:09:24 <andythenorth> and the robots can write it for us
20:09:32 <andythenorth> the robots *cannot* write Squirrel, at all
20:09:38 <andythenorth> laughably bad, of course
20:09:47 <andythenorth> the GS API is "OK"
20:10:01 <andythenorth> but it's weirdly not quite high level scripting OO
20:10:13 <andythenorth> because many things produce an integer reference, such as an industry ID
20:10:17 <andythenorth> not an object reference
20:10:21 <andythenorth> then that has to be unpacked
20:10:40 <andythenorth> so things like getting an industry name are just 'unpack.unpack.unpack'
20:11:14 <andythenorth> and everything useful involves a Valuate, but then mostly involves throwing away the actual valuated side, and just using the index side
20:11:16 <talltyler> https://cdn.discordapp.com/attachments/1008473233844097104/1481021642816880650/backwards.png?ex=69b1cc63&is=69b07ae3&hm=f89855ef552e59ecb6eee6a02d0fc3a65cb12fe5662d1f8b8a593f48b09626ff&
20:11:16 <talltyler> Intro game train goes backwards, but bounces off tunnels and asserts when entering a depot 😛
20:11:34 <andythenorth> and managing state is .... not something average script developers think about
20:11:39 <andythenorth> but saveload has to be considered
20:11:40 <andythenorth> and async
20:11:45 <andythenorth> and suspend
20:11:57 <andythenorth> and GS scales horribly by map size
20:12:25 <andythenorth> basically it's quite like writing multiplayer Flash games with a Perl cgi_bin backend in 2004
20:12:28 <goddess_ishtar> goddess_ishtar: the default `zone/` hierarchy is somewhat limited, though
20:12:31 <andythenorth> except 10% worse in every way
20:12:54 <goddess_ishtar> think I'm going to introduce my own `sector/` badge hierarchy
20:12:56 <andythenorth> and there's no debugger, unless you patch in gbd (I didn't)
20:13:08 <goddess_ishtar> andythenorth: >patch in gdb
20:13:08 <goddess_ishtar> horrifying
20:13:16 <andythenorth> or print to console
20:13:21 <andythenorth> there are breakpoints
20:13:43 <andythenorth> restarting the script and testing the script involves curating carefully a savegame, or writing your own tools via story book
20:13:56 <andythenorth> it's very fun, but progress is achingly slow
20:14:06 <andythenorth> FIRS GS is probably 3 or 4 years old, and unreleasable
20:14:12 <andythenorth> grf is 100x better
20:14:38 <andythenorth> is that enough info? :P
20:15:02 <goddess_ishtar> I think I get the idea :p
20:15:14 <andythenorth> "custom debugger"
20:15:24 <andythenorth> https://usercontent.irccloud-cdn.com/file/jTsoVFcO/image.png
20:15:50 <andythenorth> custom logging configuration https://usercontent.irccloud-cdn.com/file/cOcnHsMX/image.png
20:16:01 <andythenorth> it's a nice hobby though
20:28:55 <talltyler> https://cdn.discordapp.com/attachments/1008473233844097104/1481026086291636424/backwards.png?ex=69b1d087&is=69b07f07&hm=6399b39c0fa4d1c46a5b4244a55a6c4e569654b2886055f2ac82ff93f16b209a&
20:28:55 <talltyler> We're going backwards now, baby!*
20:28:55 <talltyler> *as long as you don't do anything which makes the game crash
20:33:31 <goddess_ishtar> what's this, proper push-pull support>
20:33:42 <talltyler> Yes
20:33:51 <talltyler> Except very broken 😄
20:34:19 <talltyler> I had to disable train crashes just to get past the first frame of the title game
20:34:27 <goddess_ishtar> is it a global option, or is it per-consist?
20:34:33 <talltyler> And neither depots nor tunnels work with backwards trains
20:34:51 <talltyler> Currently global, I have a ton of work to make it actually work before I start adding functionality. It will be per-order.
20:35:03 <goddess_ishtar> oh nice
20:36:26 <DorpsGek> [OpenTTD/grfcodec] rubidium42 commented on pull request #63: Codechange: replace auto_array with std::vector https://github.com/OpenTTD/grfcodec/pull/63#issuecomment-4034309774
20:36:29 <belajalilija> talltyler: 👀
20:41:45 <rito12_51026> talltyler: Do trams go backward as well?
20:42:14 <talltyler> Nope, just trains
20:42:21 <rito12_51026> Cool
20:46:54 <DorpsGek> [OpenTTD/grfcodec] PeterN updated pull request #63: Codechange: replace auto_array with std::vector https://github.com/OpenTTD/grfcodec/pull/63
20:51:48 <DorpsGek> [OpenTTD/grfcodec] PeterN commented on pull request #63: Codechange: replace auto_array with std::vector https://github.com/OpenTTD/grfcodec/pull/63#issuecomment-4034396148
20:52:13 *** Wolf01 has quit IRC (Read error: No route to host)
20:54:28 <mmtunligit> trams dont really make sense to go backward with everything there being a closed loop
20:55:09 <goddess_ishtar> honestly I wish grfs had better ways to communicate with each other
21:00:45 <peter1138> One day I'll actually start working on my vehicle movement ideas.
21:04:11 <DorpsGek> [OpenTTD/grfcodec] rubidium42 approved pull request #63: Codechange: replace auto_array with std::vector https://github.com/OpenTTD/grfcodec/pull/63#pullrequestreview-3925420878
21:14:50 <goddess_ishtar> is there a way to randomize a switch per-game?
21:16:03 <goddess_ishtar> I guess I could randomly generate something on load, and check to see if it exists in permanent storage for the save and use that value if it does
21:16:14 <DorpsGek> [OpenTTD/grfcodec] PeterN merged pull request #63: Codechange: replace auto_array with std::vector https://github.com/OpenTTD/grfcodec/pull/63
21:17:21 <goddess_ishtar> oh wait, yeah, you can read the map seed
21:22:13 <DorpsGek> [OpenTTD/grfcodec] PeterN opened pull request #64: Codechange: replace SINGLETON macros with template classes https://github.com/OpenTTD/grfcodec/pull/64
21:35:02 *** Borg has quit IRC (Quit: leaving)
21:35:04 <LordAro> what exactly is a 'non-instantiable static class' ?
21:35:32 <peter1138> Something specific to Dalestan's coding style.
21:35:51 <peter1138> So just a class with the constructor deleted.
21:36:38 <LordAro> feels excessive to use inheritance to achieve such a thing
21:37:12 <peter1138> It's only used once, so yeah.
21:37:26 <LordAro> that too
21:37:42 *** Tirili has joined #openttd
21:38:40 <DorpsGek> [OpenTTD/grfcodec] PeterN updated pull request #64: Codechange: replace SINGLETON macros with template classes https://github.com/OpenTTD/grfcodec/pull/64
21:40:20 <peter1138> (And yes, singletons are also bad, but.)
21:44:58 <LordAro> i'd be tempted to say you should rework that class to be an actualy class
21:44:58 <LordAro> but
21:45:01 <LordAro> -y
21:45:39 <peter1138> I also going for small steps, de-macroing, etc.
21:45:47 <LordAro> ;)(
21:45:53 * LordAro cannot type this evening
21:49:15 <peter1138> Let's see.
21:51:02 <peter1138> Yeah, not hard. But feels separate from just removing the macro.
22:12:16 <goddess_ishtar> oh, the Full English recolour system uses both company colours
22:13:07 <goddess_ishtar> not turnkey for industries
22:20:19 *** WormnestAndroid has quit IRC (Read error: Connection reset by peer)
22:20:21 *** WormnestAndroid has joined #openttd
22:20:32 *** WormnestAndroid has quit IRC (Read error: Connection reset by peer)
22:20:32 *** WormnestAndroid has joined #openttd
22:20:36 *** WormnestAndroid has quit IRC (Read error: Connection reset by peer)
22:20:47 *** WormnestAndroid has joined #openttd
22:21:00 <goddess_ishtar> this is one of the reasons I wish inter-grf communication was more complete
22:26:52 <DorpsGek> [OpenTTD/grfcodec] LordAro commented on pull request #58: Remove boost dependency https://github.com/OpenTTD/grfcodec/pull/58#pullrequestreview-3925811247
22:27:08 <DorpsGek> [OpenTTD/grfcodec] LordAro updated pull request #58: Remove boost dependency https://github.com/OpenTTD/grfcodec/pull/58
22:30:37 *** andythenorth has quit IRC (Quit: Connection closed for inactivity)
22:39:28 <jfkuayue> ;)(
22:39:31 <jfkuayue> :3c
23:03:47 *** Flygon has quit IRC (Read error: Connection reset by peer)
23:03:49 *** Tirili has quit IRC (Quit: Leaving)
23:07:52 <will_marshall_> > ishtar: honestly I wish grfs had better ways to communicate with each other
23:07:52 <will_marshall_> I wish there was a general-purpose way to reference a vehicle ID from a foreign GRF - even if it'd be a bit fragile.
23:08:02 <will_marshall_> for the attach_wagon callback etc
23:08:29 <reldred> badges will save us
23:14:16 <goddess_ishtar> badges *will* save us
23:17:47 <_glx_> badges should help, but grfid and vehicle_type_id is the only solution without badges