IRC logs for #openttd on OFTC at 2024-06-01
⏴ go to previous day
00:03:29 *** jinks has quit IRC (Ping timeout: 480 seconds)
00:17:21 *** Artea has quit IRC (Ping timeout: 480 seconds)
01:08:31 *** jinks has quit IRC (Ping timeout: 480 seconds)
02:09:20 *** ChanServ sets mode: +v tokai
02:15:51 *** tokai|noir has quit IRC (Ping timeout: 480 seconds)
02:26:26 *** Wormnest has quit IRC (Quit: Leaving)
02:30:26 *** debdog has quit IRC (Ping timeout: 480 seconds)
02:55:59 *** gnu_jj_ has quit IRC (Ping timeout: 480 seconds)
04:41:24 <DorpsGek> - Update: Translations from eints (by translators)
05:10:45 <andythenorth> but GS tends to "long"
05:10:52 <andythenorth> - have to handle saveload explicitly
05:11:54 <andythenorth> - can't store any classes in savegame, so either write serialise/deserialise methods for every class, or use a root table to simulate the class. As a Squirrel class is just a table anyway, it's easier to do the latter
05:12:41 <andythenorth> - can't use Squirrel random in GS for good reasons, have to use the provided GSBase methods for random
05:13:13 <andythenorth> - have to log a lot, to get any ability to understand what's going on
05:14:49 <andythenorth> - there's no default repr of any tables or arrays or objects when logging, they have to be explicitly given a tostring method, or write your own repr function, both of these can fail if the issue is that the data or structure of the object is incorrect
06:57:03 <peter1138> You removed NPF already 😉
07:19:22 <truebrain> I see Marvin entered the chat again (HHGTTG reference)
07:25:19 <andythenorth> merni: replace it with XML
07:42:10 <andythenorth> maybe they've licensed the character 😛
08:28:34 <peter1138> 30 files changed, 643 insertions(+), 359 deletions(-)
08:28:38 <peter1138> Well, this is somewhat bigger :S
08:31:06 <peter1138> There seems to be quite a lot of duplication in how the text layouters work.
08:51:24 <peter1138> I think once upon a time we used FreeType on Windows and Mac OS instead of the native font handling.
08:52:17 <peter1138> I guess the benefit of that is being able to use the native layouters instead ICU/Harfbuzz.
08:52:27 <peter1138> But it sure adds a lot of cruft.
09:01:25 *** mindlesstux has joined #openttd
09:22:41 <pickpacket> what's "unofficial-breakpad" and where do I find it?
09:24:44 <peter1138> Failed attempt to prevent resizing 😮
09:28:55 <pickpacket> for real, though. "unofficial-breakpad" isn't mentioned in the compile instructions but cmake complains that it's highly encouraged not to compile without it. And I can't find it in the debian repos
09:29:13 <peter1138> You can completely ignore it.
09:29:29 <pickpacket> oh! It is actually mentioned
09:29:50 <LordAro> breakpad is mentioned
09:29:54 <LordAro> though not in any detail
09:30:00 <LordAro> and yeah, "encouraged" is misleading
09:30:26 <pickpacket> it does say that it's for crash dumps. That tells me it doesn't matter to me :D
09:31:05 <pickpacket> I'm compiling while watching Master Hellish's charity livestream :)
09:32:25 <peter1138> Okay, implementing resize freezing is probably more hassle than its worth 😦
09:54:27 <peter1138> It's nothing like the "encouraged" for liblzma and zlib. Without those the game is quite nerfed.
10:12:52 <peter1138> One less "I have a patch for that"...
10:23:03 <sherlockholmes1904> _glx_: Vanilla industry, vehicle amount are little. And I want to ask will you add more vehicle and industries in vanilla game?
10:23:03 <sherlockholmes1904> P. S. Yes, i played with industry mods: XIS, FIRST and ECS
10:24:44 <andythenorth> sherlockholmes1904: no there will be no additions to the vanilla game
10:24:54 <sherlockholmes1904> May you plan to add new game mechanics?
10:25:03 <andythenorth> no there will be no new game mechanics in the vanilla game
10:27:14 <peter1138> Yeah, the point of NewGRFs (mods if you like) is they add things like vehicles and industries to the game.
10:30:07 *** mindlesstux has quit IRC (Ping timeout: 480 seconds)
10:34:31 *** mindlesstux has joined #openttd
11:08:14 <peter1138> Something went horribly wrong.
11:29:27 <andythenorth> peter1138: looks ideal TBH
11:29:35 <andythenorth> makes selecting a station tile much easier
11:58:09 <peter1138> All these calendar classes :p
13:07:03 <peter1138> Nothing says side-tracked like half a doxygen comment.
13:30:54 *** freu[m] has quit IRC (Write error: connection closed)
13:30:54 *** paulus[m] has quit IRC (Write error: connection closed)
13:30:54 *** kstar892[m] has quit IRC (Read error: Connection reset by peer)
13:30:54 *** karl[m]123 has quit IRC (Remote host closed the connection)
13:30:54 *** royills[m] has quit IRC (Write error: connection closed)
13:30:54 *** jeeg[m] has quit IRC (Write error: connection closed)
13:30:54 *** nolep[m] has quit IRC (Write error: connection closed)
13:30:54 *** Gadg8eer[m] has quit IRC (Write error: connection closed)
13:30:54 *** hamstonkid[m] has quit IRC (Write error: connection closed)
13:30:54 *** CornsMcGowan[m] has quit IRC (Write error: connection closed)
13:30:54 *** Bilb[m] has quit IRC (Write error: connection closed)
13:30:54 *** menelaos[m] has quit IRC (Write error: connection closed)
13:30:54 *** Elysianthekitsunesheher[m] has quit IRC (Write error: connection closed)
13:30:54 *** magdalena[m] has quit IRC (Write error: connection closed)
13:30:54 *** karoline[m] has quit IRC (Write error: connection closed)
13:30:54 *** playback2396[m] has quit IRC (Remote host closed the connection)
13:30:54 *** patricia[m]12 has quit IRC (Remote host closed the connection)
13:30:54 *** tuxayo has quit IRC (Remote host closed the connection)
13:30:54 *** pikaHeiki has quit IRC (Write error: connection closed)
13:30:54 *** Guest6982 has quit IRC (Write error: connection closed)
13:30:54 *** soylent_cow[m] has quit IRC (Write error: connection closed)
13:30:54 *** luffy[m] has quit IRC (Write error: connection closed)
13:30:54 *** jact[m] has quit IRC (Write error: connection closed)
13:30:54 *** elliot[m] has quit IRC (Write error: connection closed)
13:30:54 *** igor[m] has quit IRC (Write error: connection closed)
13:30:54 *** Rdolfs[m] has quit IRC (Write error: connection closed)
13:30:54 *** patrick[m]1 has quit IRC (Write error: connection closed)
13:30:54 *** leward[m] has quit IRC (Write error: connection closed)
13:30:54 *** Heiki[m] has quit IRC (Write error: connection closed)
13:30:54 *** giords[m] has quit IRC (Write error: connection closed)
13:30:54 *** gdown has quit IRC (Write error: connection closed)
13:30:54 *** emilyd[m] has quit IRC (Write error: connection closed)
13:30:54 *** cjmonagle[m] has quit IRC (Write error: connection closed)
13:30:54 *** blikjeham[m] has quit IRC (Write error: connection closed)
13:30:54 *** audunm[m] has quit IRC (Write error: connection closed)
13:30:56 *** andythenorth[m] has quit IRC (Write error: connection closed)
13:30:56 *** zzy2357[m] has quit IRC (Write error: connection closed)
13:30:56 *** tonyfinn has quit IRC (Write error: connection closed)
13:30:56 *** thelonelyellipsis[m] has quit IRC (Write error: connection closed)
13:30:56 *** temeo[m] has quit IRC (Write error: connection closed)
13:30:56 *** luk3Z[m] has quit IRC (Write error: connection closed)
13:30:56 *** joey[m] has quit IRC (Write error: connection closed)
13:30:56 *** gretel[m] has quit IRC (Write error: connection closed)
13:30:56 *** FelixActually[m] has quit IRC (Write error: connection closed)
13:30:56 *** einar[m] has quit IRC (Write error: connection closed)
13:30:56 *** citronbleuv[m] has quit IRC (Write error: connection closed)
13:30:56 *** JamesRoss[m] has quit IRC (Write error: connection closed)
13:30:56 *** grag[m] has quit IRC (Write error: connection closed)
13:30:56 *** yubvin[m] has quit IRC (Write error: connection closed)
13:30:56 *** calbasi[m]1 has quit IRC (Write error: connection closed)
13:30:56 *** imlostlmao[m] has quit IRC (Write error: connection closed)
13:30:56 *** thomas[m]12345678 has quit IRC (Write error: connection closed)
13:30:56 *** throwawayaccount[m] has quit IRC (Write error: connection closed)
13:30:56 *** fiddeldibu[m] has quit IRC (Write error: connection closed)
13:30:56 *** xyii[m] has quit IRC (Write error: connection closed)
13:30:56 *** VincentKadar[m]1 has quit IRC (Write error: connection closed)
13:30:56 *** Farrokh[m] has quit IRC (Write error: connection closed)
13:30:56 *** shedidthedog[m] has quit IRC (Write error: connection closed)
13:30:56 *** philip[m] has quit IRC (Write error: connection closed)
13:30:56 *** phil[m]123 has quit IRC (Write error: connection closed)
13:30:56 *** osvaldo[m] has quit IRC (Write error: connection closed)
13:30:56 *** jeremy[m] has quit IRC (Write error: connection closed)
14:16:32 <andythenorth> my GS wants to assign different production chains to different 'manufacturers' (like a steel company, a chemicals company etc)
14:17:12 <andythenorth> the manufacturer has a location preference (a specific town or towns)
14:17:40 <andythenorth> not sure how to meet that constraint, as the industries are placed by OpenTTD before GS initialises
14:21:09 <andythenorth> [design question, not API question] 🙂
14:25:24 <andythenorth> I could assign the town based on where the main industries are for that chain
14:25:55 <andythenorth> but sometimes the industries are in the "wrong" places
14:33:44 *** gelignite has joined #openttd
14:49:36 <alfagamma7> peter1138: Badger badger badger
14:50:09 <alfagamma7> andythenorth: The idea seems very unique
14:54:46 <andythenorth> ok, so the problem is easier if the grf does more to place industries in "not wrong" places
14:59:05 <andythenorth> do we think the grf could specify an arbitrary number of waves to try and locate industries?
14:59:26 <andythenorth> currently there's a single pass that I believe runs through industry IDs sequentially, lowest first
15:10:30 <andythenorth> I could have the GS delete most of the industries on the map, then place them eh
15:10:39 <andythenorth> but it seems daft 🙂
15:11:14 <andythenorth> grf can almost pretty much place things
15:27:02 <talltyler> I don't quite get what you're asking for. Why not let the GRF place industries properly, and then the GS just reads that?
15:28:42 <andythenorth> grf struggles with location constraints based on distance to other industries
15:28:59 <andythenorth> due to the current placement algorithm
15:29:58 <andythenorth> it's industry-id sensitive, and when industry chains have multi-level dependency, it's a bit of a fool's errand trying to organise the IDs to be in the right order
15:30:09 <andythenorth> and it's quite limiting to break savegames constantly by changing IDs
15:31:09 <talltyler> I have very robust location checks in my industry GRFs, but of course my industry IDs do not change
15:31:10 <andythenorth> specifying multiple rounds of placement would eliminate that issue
15:31:28 <talltyler> Would it not be easier to stop changing industry IDs?
15:31:54 <andythenorth> the only way to control location is to change the IDs
15:33:18 <talltyler> We are talking about the ID of the industry spec, right? Not the ID of the industry placed in the world?
15:33:59 <andythenorth> in the industry spec yes
15:36:00 <andythenorth> trying to figure out if I've understood that
15:38:16 <talltyler> I'm still confused by what you're looking for
15:38:26 <andythenorth> force_at_least_one one is sequential, the rest are random?
15:39:00 <andythenorth> TL;DR there's no reliable way to co-locate industry chains in grf
15:39:09 <andythenorth> or force them to be co-distant
15:39:35 <andythenorth> there is a way that more or less works quite often, which FIRS uses
15:40:32 <_glx_> well just implement a function call into GS at the right point
15:40:41 <talltyler> Looks like you could reliably co-locate if you checked for their required partner in the correct order
15:40:47 <andythenorth> I am trying to avoid doing it in GS 😛
15:40:59 <talltyler> So A can spawn anywhere, B must be near A, C must be near B
15:41:08 <andythenorth> yes, which means organising spec IDs
15:41:13 <andythenorth> in sequential order
15:41:18 <andythenorth> across multiple economies
15:41:23 <talltyler> Co-distant is much easier, the order doesn't matter
15:41:31 <_glx_> so GS could handle map generation, then town placement, then industry placement, ...
15:41:35 <talltyler> I see the problem now 🙂
15:41:50 <andythenorth> _glx_: yes, but I'm concerned about deadlocking and performance, GS is slow
15:42:22 <andythenorth> but I have seriously considered clearing the map of industries at GS init, then placing them all via GS
15:42:51 <_glx_> we have ways to detect locked script
15:42:57 <andythenorth> also I think GRF can already do most of what I want
15:43:02 <andythenorth> it's just unreliable currently
15:43:16 <talltyler> Okay, could your industry definitions be a template that gets instantiated into a set of industries for each economy? I.e. industry definitions are a class and an economy is a list of objects?
15:43:49 <talltyler> Instead of having each industry definition appear in multiple economies
15:43:55 <talltyler> (I have not read any of your code)
15:43:56 <andythenorth> yes, cargos already do that
15:44:41 <talltyler> That would make it easier to define IDs, I think 🙂
15:45:11 <andythenorth> I suspect that one for loop around a large part of GenerateIndustries would provide placement passes 🙂
15:45:23 <andythenorth> and grf just defines which placement pass in an action 0
15:46:00 <andythenorth> there might be some interesting 'effects' with probability though, which could be good...or bad
15:46:27 <andythenorth> imagine the case where we want a shop industry in most of the towns
15:46:52 <andythenorth> currently due to industry probability scaling, making them very high probability just reduces the count of other industry types
15:47:18 <andythenorth> possibly we could specify total number of industries to place in each pass, somehow
15:48:17 <peter1138> andythenorth: I think they're all sequential.
15:49:24 <andythenorth> I can't tell what `it++` does here 🙂
15:50:06 <andythenorth> does it just look for the _next_ type that needs placing ?
15:50:14 <andythenorth> according to probability?
15:51:36 <peter1138> It switches industry type depending on the random value.
15:52:20 <andythenorth> ach, if an industry could appear in more than one wave, and if the wave number was a var in the callback, I could provide failsafes
15:52:27 <andythenorth> e.g. industry A shouldn't locate near industry B
15:52:52 <andythenorth> so in wave 1, be strict, in wave 2 be more relaxed IFF the industry target count isn't met
15:52:52 <peter1138> There is the forced placement where one industry of each type is made.
15:52:54 *** gelignite has quit IRC (Quit: Stay safe!)
15:53:05 <peter1138> Then after that it's random.
15:53:19 <peter1138> So no need for waves when it's random.
15:53:37 <andythenorth> if industry C needs to locate near industry D
15:53:43 <andythenorth> and there are 3 of industry D on the map
15:53:53 <_glx_> random type, then random layout, try to place in random location, if it fails go back to random type
15:54:02 <andythenorth> it's quite common to get 3 of industry C around one instance of industry D
15:54:17 <andythenorth> because of forced first instance, then random
15:55:15 <peter1138> What does locating industries near each other achieve?
15:55:52 <_glx_> "new game" generator and roleplay don't work well usually
15:56:01 <_glx_> that's scenario editor task
15:56:09 <andythenorth> it's kind of fine
15:56:16 <andythenorth> once we learnt not to set the constraints too hard
15:56:16 <talltyler> You could have the initial wave of one each place anywhere, and then the random ones must co-locate. Not perfect but still provides mostly co-located industries.
15:56:34 <andythenorth> it mostly works already, this would just be more reliable
16:02:18 <andythenorth> hmm, now got more ideas of ways to do it in GS also
16:02:20 *** Wormnest has joined #openttd
16:02:42 <merni> andy are you eventually going to make the whole game a GS
16:03:23 <merni> openttd will just be a gs parser
16:04:47 <alfagamma7> Yet another Emacs then
16:04:59 <alfagamma7> Not an editor but just about everything
17:33:13 <andythenorth> I don't think ChangeIndustryProduction is called after map gen?
17:33:21 <andythenorth> I assume it's not, and my reading of the code is that it isn't
17:33:47 <andythenorth> (usually it's the monthly production cb, I assume it first runs at end of month 1)
17:34:25 <andriydohniak> How can I change openttd debug level?
17:35:11 *** amal[m] has joined #openttd
17:37:15 <_glx_> `debug_level` in console, and there's also `-d` command line flag
17:48:54 <andythenorth> had an idea to modify primary production (e.g. coal mine) if it's a long way from consumer (e.g. power station)
17:49:07 <andythenorth> can do it at the end of month 1, or in GS at game start
17:49:27 <andythenorth> or on the first 256 tick callback
17:49:50 <andythenorth> can't do it in the industry post-construction callback as map is probably incomplete for industries
17:51:59 <ahyangyi> How do you want to modify it?
17:52:10 <ahyangyi> More production or less production if it's far from consumer?
17:57:34 <andythenorth> if the production callback ran after map gen completed, it seemed like a convenient hack 😛
17:58:11 <andythenorth> there's something that runs to populate production stats for the industry window?
18:28:49 <andriydohniak> Whan SlSomething is called, SLA_Load is from "savefile" to memory, right?
18:29:06 <andriydohniak> so to in memory repr
18:39:53 <jlx__> Hi. I have a problem with a savegame which does not load anymore. It uses the "generic european train set", and that seems to be unavailable. If I search the forums for the GES set, they say "---This set is deprecated. Please get the 2CC Trains In NML instead, it contains many vehicles from this set, but with better graphics. And freight wagons.---" . What is 2CC and NML?
18:48:41 <peter1138> It's just the name of the set, For some reason some people feel the need to put the tooling (NML) of feature (2-company-colours) used to make their set into the name of it.
19:03:05 <jlx__> How can I now load the savegame? I tried to download that set, but how do I tell openTTD to now use the new set where it complains about the old one?
19:03:41 *** SigHunter_ has joined #openttd
19:04:28 <_glx_> if it used to load then you probably have the files somewhere
19:05:48 <peter1138> I have some old pre-NewGRF-config savegames, they're interesting to get going.
19:05:57 <peter1138> Trying to guess which NewGRFs I used at the time 😄
19:06:22 <_glx_> I have a fuzzle.org grf folder 🙂
19:06:48 *** SigHunter has quit IRC (Ping timeout: 480 seconds)
19:07:33 <_glx_> and 3 different ottdc_xxx
19:07:56 <_glx_> (yes the scan takes some time)
19:09:20 <jlx__> so remove the old set and create a symlink instead which links to the new set?
19:09:41 <peter1138> If you have the old set still then it should be able to load?
19:09:49 <peter1138> And no, symlinks won't do anything 🙂
19:11:42 <jlx__> it says "NewGRF: Missing Files". It seems gone from my folder, indeed :(
19:25:34 <_glx_> even if it's deprecated there's a file attached to the post
19:30:29 <jlx__> I only have a content_download/newgrf folder, but it only contains tar files. If I put just the ges_pa2.1.grf there, nothing changes.
19:30:57 <jlx__> Putting a tar file there with just that grf as content does not change anything, either, but I may just need to use the correct name for the tar file?
19:31:50 <_glx_> the name doesn't matter for the savegame
19:33:18 <jlx__> Which one is needed? It just says "Missing Files", but not which ones...
19:33:46 <_glx_> there should be a button
19:36:43 <_glx_> "newgrf settings" button on bottom of the info panel should tell you which file is missing
19:52:51 <jlx__> oh maybe I need to put it into a subfolder...
19:56:08 <_glx_> you closed and restart openttd ?
19:56:42 <jlx__> Yes, I did. I used the same name now, as in the image
19:57:53 *** Flygon has quit IRC (Quit: A toaster's basically a soldering iron designed to toast bread)
19:58:23 <_glx_> name doesn't matter, openttd just checks grfid and md5
20:01:23 <_glx_> that might be the issue
20:03:42 <peter1138> Ah, the GRF is there, but it's disabled itself.
20:03:48 <jlx__> Good point. How can this be solved?
20:04:31 <_glx_> should be available in "find missing content" I think
20:08:03 <jlx__> Downloaded it, but it did not help. Shall I fix the md5sum inside the savegame?
20:08:04 <_glx_> but you'll have to manually delete the old one, else openttd will always try it because md5
20:09:48 <_glx_> hmm I guess find missing content got the 2.1 too (as it's the version in the savegame)
20:11:23 <jlx__> Deleted it, but it did not help
20:15:38 <_glx_> I have this, 2.1 is the one I downloaded from the forum and it's partially available on bananas (via find missing content when loading a save), 2.2 is the current version from bananas
20:16:15 <_glx_> check you don't have any trace of 2.1 in newgrf settings
20:17:32 <_glx_> as 2.1 and 2.2 have the same grfid it should use 2.2 if it's present and 2.1 is not available at all
20:19:04 <_glx_> anyway I can understand why a grf requires a minimal version of openttd, but why would it disable on higher versions ???
20:21:18 <_glx_> could be an incorrect version detection implementation not supporting the 1.11 -> 12.0 move
20:22:38 <jlx__> _glx_: They have different GRF IDs, right? Only the first 4 digits are equal.
20:23:05 <_glx_> 444A0201 is the grfid, it's the same for both
20:24:33 <jlx__> My 2.2 has 444A4330 . OK then my 2.2 is just messed up :)
20:26:35 *** SigHunter has joined #openttd
20:28:33 <jlx__> A button which downloads the set with the same GRF ID might be a cool extension :D
20:29:11 <_glx_> well sometimes updating even with the same grfid is not compatible
20:29:37 <_glx_> that's why the download for missing content uses grfid and md5
21:57:22 *** gelignite has joined #openttd
22:14:48 *** gelignite has quit IRC (Read error: Connection reset by peer)
22:15:18 *** gelignite has joined #openttd
22:20:26 <truebrain> _glx_: seems they finally upgraded 😛
22:25:32 <_glx_> hmm of course a PR build might not test the updated workflow
22:28:11 <_glx_> oh v3 was 3 weeks ago actually 🙂
22:47:01 *** Wolf01 has quit IRC (Quit: Once again the world is quick to bury me.)
continue to next day ⏵