IRC logs for #openttd on OFTC at 2024-10-08
โด go to previous day
01:25:01 *** tokai|noir has joined #openttd
01:25:02 *** ChanServ sets mode: +v tokai|noir
01:28:23 *** tokai has quit IRC (Ping timeout: 480 seconds)
01:37:19 *** TinoDidriksen has quit IRC (Read error: Connection reset by peer)
01:38:20 *** TinoDidriksen has joined #openttd
01:38:53 *** TinoDidriksen is now known as Guest5729
02:15:31 *** godbed_ has joined #openttd
02:18:49 *** debdog has quit IRC (Ping timeout: 480 seconds)
02:18:54 *** D-HUND has quit IRC (Ping timeout: 480 seconds)
03:01:07 *** gnu_jj_ has joined #openttd
03:04:29 *** gnu_jj has quit IRC (Ping timeout: 480 seconds)
03:35:31 *** woobilicious has joined #openttd
03:35:31 <woobilicious> I just made a fresh train with two waypoints around a loop and the train switched to "running on time" with no touching of the timetabling, that is a bug right? I've been noticing weird behaviour with trains waiting on non-timetabled networks when I add destinations or new trains on a jgr save and I'm trying to find out what is causing that.
03:48:02 <woobilicious> `UpdateVehicleTimetable()` use of `just_started`, and setting the `VF_TIMETABLE_STARTED` bit seems very confusing. looks like autofill code, but definitely doesn't seem to care about autofill being enabled.
04:33:09 <woobilicious> I can confirm deleting the SetBit no longer turns on the timetable
05:11:58 *** keikoz has quit IRC (Ping timeout: 480 seconds)
05:32:59 *** Guest5729 is now known as TinoDidriksen
05:43:27 <andythenorth[d]> you having some weather?
05:44:03 <_pruple> (actually, right here we don't get it too bad when it's coming from the west, there's a mountain that splits it either side of us)
05:47:01 <_pruple> I'm about where the n in boondall is on that map. 11 o'clock on the inner circle.
05:48:44 <LordAro> woobilicious: does seem bug-like
05:49:46 <LordAro> _pruple: spicy weather
07:18:18 *** HerzogDeXtEr has joined #openttd
07:23:50 <peter1138> Shall we use bits 16 and 17?
07:25:52 <peter1138> Duplicate everything.
07:26:15 <peter1138> Bits 16-31 are the same as bits 0-15 but negated. CC_PASSENGERS โ CC_NOT_PASSENGERS
07:27:04 <peter1138> I should crack on with badges.
07:31:08 <andythenorth[d]> badge classes
07:31:30 <andythenorth[d]> how many bits do we have for classes?
07:34:33 *** gelignite has joined #openttd
07:36:43 <peter1138> Well, it's not a bit mask.
07:42:40 <andythenorth[d]> I tried out a few ideas for the "FIRS authors seem to keep adding new cargo labels, how can we help vehicle set authors?" faff
07:43:15 <andythenorth[d]> seems like classes TBH, having gone round it a bit
07:43:23 <andythenorth[d]> just seems like we maybe miss some
08:04:28 <peter1138> > Refittable cargo classes (all vehicle types)
08:04:28 <peter1138> > Non-refittable cargo classes (all vehicle types)
08:07:45 <Timberwolf> andythenorth[d]: wait for it to get bug reported on forums, go "'sake Andy", break recolours for a third of your cargo sprites because the code is very fragile to reordering, release emergency fix, still get a bug report from one of the 12 people who got the affected version...
08:07:51 <Timberwolf> ... what's to improve about that process?
08:09:11 <Timberwolf> It's generally been pretty stable, and all of your stuff is well-documented.
08:13:47 <johnfranklin> Is there a bijection between the cat appearance of IRC bot and the nickname of IRC client?
08:16:39 <ahyangyi> I guess it's a surjection, there are fewer cats than possible IRC names
08:19:09 <andythenorth[d]> I guess a vehicle "AND" prop for classes is out of the question?
08:33:40 <peter1138> Someone will want `(A && B) || (C && D)`
08:34:34 <andythenorth[d]> there's a countable number of cargo classes in real life
08:35:35 <peter1138> How do other set authors cope?
08:35:44 <peter1138> Or are you the only one?
08:35:49 <andythenorth[d]> I don't know ๐
08:35:54 <andythenorth[d]> I don't really use classes
08:36:24 <peter1138> It's difficult to know if it's working fine for them or they're just silent.
08:36:55 <andythenorth[d]> I know that it's highly unpopular when I add labels to FIRS
08:37:18 <andythenorth[d]> any covered hoppers, silo cars, food wagons, and some types of tanker will need maintained
08:37:57 <peter1138> Because you don't really use classes?
08:38:08 <andythenorth[d]> I don't use them as the spec intends
08:38:56 <andythenorth[d]> I conform to what the base game does
08:39:03 <andythenorth[d]> and the base game doesn't use classes as the spec intends
08:41:38 *** gelignite has quit IRC (Read error: Connection reset by peer)
08:41:56 *** gelignite has joined #openttd
09:14:12 <peter1138> On the cargo side or the vehicle side?
09:14:49 <peter1138> Vehicle-wise classes are used a bit differently.
09:15:43 <andythenorth[d]> on the cargo side
09:15:51 <andythenorth[d]> but probably for valid reasons
09:16:07 <andythenorth[d]> so e.g. Food is express, refrigerated, but not piece goods
09:16:15 <andythenorth[d]> grain, wheat, maize, don't set covered/sheltered
09:16:26 <andythenorth[d]> rubber sets liquid, but not piece
09:16:42 <andythenorth[d]> bubbles are piece goods, but not liquid
09:17:16 <andythenorth[d]> then, because historically, changing classes caused angry forums
09:17:21 <andythenorth[d]> even though it shouldn't
09:17:43 <andythenorth[d]> and there's a manually maintained wiki page mapping labels to classses, which gets unreadable if FIRS diverges the classes
09:18:09 <andythenorth[d]> so FIRS follows the same convention of not changing those classes on those cargos
09:20:22 <_pruple> a couple of people have played with PIRS, not many
09:20:38 <_pruple> PIRS sets covered/sheltered on grain
09:23:23 <_pruple> PIRS sets piece goods on food
09:23:49 <andythenorth[d]> yeah so counter evidence
09:23:58 <andythenorth[d]> FIRS 5 is not yet released
09:24:01 <peter1138> Why is rubber CC_LIQUID?
09:24:23 <andythenorth[d]> I don't mind some pitchforks if they are worth facing
09:24:36 <andythenorth[d]> so now would be the time to reset how FIRS deals with classes
09:24:54 <andythenorth[d]> peter1138: liquid latex IRL is a conventional form
09:25:03 <andythenorth[d]> but aren't the vehicles some kind of open wagon?
09:26:24 <andythenorth[d]> I think classes are the way
09:26:32 <peter1138> You can carry almost anything in anything really. It's just might not be optimal.
09:26:44 <andythenorth[d]> I just got bored of all the shit talk around them, and that the base game doesn't use classes consistently
09:26:53 <andythenorth[d]> so I think I sulked or something
09:26:57 <_pruple> peter1138: I think the explanation is "the base vehicles, industries, and cargos are silly"
09:27:07 <peter1138> My daylight trigger is not working ๐ฆ
09:28:03 <peter1138> Maybe it doesn't work because the output signal slowly rises.
09:28:07 <andythenorth[d]> but that's pushing water uphill ๐
09:28:11 <andythenorth[d]> liquid water, or solid?
09:28:48 <andythenorth[d]> that notes column though
09:28:50 <andythenorth[d]> all the crimes
09:29:34 <andythenorth[d]> I don't want to even know wtf OTIS is doing
09:29:47 <andythenorth[d]> why redefine nickel ore to nickel, when there's a nickel cargo?
09:33:56 <peter1138> Burn it all and start again?
09:34:33 <peter1138> Not sure where ttdpatch defined defaults, maybe it was in a newgrf.
09:45:34 <kuhnovic> I'm going to use that in production
09:47:13 <xarick> wow, kuhnovic left a little secret in that debug drawing stuff disabled
09:48:25 <kuhnovic> Don't publish my mom's phone number here please
09:50:14 *** gelignite has quit IRC (Quit: Stay safe!)
09:55:30 <kuhnovic> The black tracks are all the tracks that the LL PF has checked
09:56:23 <kuhnovic> And IIRC the red ones are where the LL PF made a correction for a more optimal path. That's just an A* thing. But I'm not entirely sure, you have to check the code.
09:56:50 *** gelignite has joined #openttd
09:57:32 <kuhnovic> Or wait.. maybe the red ones are still on the open list but not processed yet, the black ones are on the closed list. I think that's what you're seeing. But again, check the code to confirm.
09:57:57 <peter1138> Seems we do check a lot of unnecessary paths
09:59:02 <kuhnovic> Looks like it. Although there is a chance we're looking at something that was eh... "altered" by our friend Xarick ๐
09:59:22 <xarick> path cost limit is 2000, it's an automated service
10:05:24 <xarick> after ignoring the assert
10:07:38 <peter1138> Funny, for me asserts are fatal.
10:09:02 *** gelignite has quit IRC (Remote host closed the connection)
10:09:39 *** gelignite has joined #openttd
10:10:54 <xarick> this one is with TrackDir
10:11:04 <xarick> the black is much more dense
10:12:29 <peter1138> Hmm, playing MIDI files from System Shock. Some of the 'track's are basically sound effects...
10:21:21 <peter1138> Interesting choice of instruments though, I wonder what synth(s) were targetted.
10:22:41 <andythenorth[d]> peter1138: start again, but still classes and labels?
10:23:13 <andythenorth[d]> start again, but every cargo label must be submitted as an RFC to a committee? ๐
10:24:34 <peter1138> Cargo subtype callbacks somewhere...
10:25:42 <andythenorth[d]> maybe just more classes dunno
10:26:12 <peter1138> "I've been using bit 14 for CC_GAS for 12 years"
10:26:38 <andythenorth[d]> piece goods is really really easy
10:27:01 <andythenorth[d]> if it can go in a sack, barrel, crate, box, jar, bag, or on a palette, and it can go in vans, opens, or flats
10:27:36 <andythenorth[d]> bulk is mostly ok, although for some reason I insisted on adding that non-pourable modifier, maybe I was high
10:27:47 *** fairyflossy has joined #openttd
10:27:47 <fairyflossy> Jars of Oil on a flat wagon...
10:29:00 <andythenorth[d]> oh pickle cars ๐
10:36:22 <andythenorth[d]> ach, *if* we did an adjustment to classes, could we write legacy-class-mapping-pitchfork-hell.hpp
10:36:45 <andythenorth[d]> LVST should just be CC_LIVESTOCK, not CC_PIECE_GOODS, livestock is a unique type of cargo with unique requirements
10:37:14 <andythenorth[d]> [and other changes I would make]
10:40:58 <kuhnovic> xarick: You see why the tile+exitdir optimization makes sense
10:42:26 <peter1138> So you're saying remove the default classes, implement Cargo Class Labels, and let NewGRFs fight it out...
10:43:43 <andythenorth[d]> what's CC_EXPRESS for?
10:43:51 <andythenorth[d]> Iron Horse might be doing it wrong
10:44:42 <andythenorth[d]> CC_EXPRESS is just using a bit to get the same meaning as CC_MAIL
10:44:46 <andythenorth[d]> they're identical
10:46:02 <andythenorth[d]> I guess CC_MAIL is useful for adding more cargos that are mail, but don't use the MAIL label
10:46:13 <andythenorth[d]> and also aren't CC_EXPRESS
10:46:36 <peter1138> > CC_EXPRESS = 1 << 2, ///< Express cargo (Goods, Food, Candy, but also possible for passengers)
10:46:42 <peter1138> Seems to be more than mail.
10:47:58 <andythenorth[d]> "closed or mail wagon" for both
10:48:03 <andythenorth[d]> oh, 'suggestion'
10:48:29 <_pruple> it's also "things that get higher capacity refit in planes"
10:49:27 <_pruple> although in that respect, it's the same as cc_mail
10:50:37 <_pruple> the initial cargo labels are very much "cargos like <default cargo>", and thus suffer from the aforementioned issue that the default cargos are silly.
10:51:15 <andythenorth[d]> anyway, having gone all round the monopoly board, I'm arriving at Old Kent Road, and find I miss
10:51:15 <andythenorth[d]> - food/edible, in combination with piece / bulk / liquid
10:51:15 <andythenorth[d]> - inedible, in combination with piece / bulk / liquid
10:51:15 <andythenorth[d]> - flows under pressure, probably combined with bulk
10:51:15 <andythenorth[d]> - gas (as basic form, similar to piece, liquid etc)
10:51:45 <andythenorth[d]> and I'm still confused about clay
10:51:50 <andythenorth[d]> which can be sheltered or not
10:52:04 <andythenorth[d]> but if open hoppers exclude sheltered, no clay
10:52:13 <andythenorth[d]> and if clay doesn't set sheltered, no covered hoppers
10:52:22 <andythenorth[d]> (repeat for salt, soda ash, potash etc)
10:53:15 <andythenorth[d]> (and that I use labels anyway, and have a python lib to do that across all my grfs)
10:59:11 *** gelignite has quit IRC (Quit: Stay safe!)
11:28:55 <peter1138> How do you decide what can go where?
11:36:05 <peter1138> Stupid spreadsheets.
11:36:22 <peter1138> Update cell background colour.
11:36:30 <peter1138> Ctrl-Z to undo change.
11:36:36 <peter1138> Row height changes.
11:58:55 <andythenorth[d]> peter1138: In my current system?
12:07:50 <andythenorth[d]> python lists of labels
12:08:51 <xarick> TrackDir is triggering lots of "ship is lost" messages
12:09:05 <peter1138> So those are your "cargo classes"
12:11:05 <andythenorth[d]> I don't ignore class completely, notably piece goods is almost always fine
12:12:16 <andythenorth[d]> I should probably delete `non_flatbed_freight` it's a bit over-realistic, without actually being realistic
12:16:19 *** Flygon has quit IRC (Read error: Connection reset by peer)
12:34:19 <andythenorth[d]> tl;dr vehicle set authors can't trust industry set authors, so use labels
12:34:33 <andythenorth[d]> classes for fallback
12:35:01 <_glx_> Class for generic handling, label for specific
12:35:52 <andythenorth[d]> but then I need classes of labels
12:35:54 <andythenorth[d]> so I made some
12:41:01 <andythenorth[d]> hmm there **is ** no way to do covered hoppers with classes, right?
12:43:52 <andythenorth[d]> I can't see one
12:45:17 <_pruple> if a vehicle set has covered and uncovered hoppers, it can exclude cc_covered from the uncovered ones...
12:46:55 *** ChanServ sets mode: +v tokai
12:47:44 <andythenorth[d]> that leaves grain in your coal hoppers ๐
12:48:08 <peter1138> CC_CLEAN / CC_DIRTY eh?
12:48:31 <_pruple> indeed. plus explicitly excluding cargos you know/care about, like grain from coal hoppers.
12:48:38 <andythenorth[d]> back to labels ๐
12:48:53 <andythenorth[d]> looky-likey-labels then?
12:49:09 <_pruple> I don't know where you've gotten the idea that we're trying to get rid of labels, or that you can't/shouldn't be using both classes and labels.
12:49:38 <andythenorth[d]> I don't know where you've got the idea that's my idea ๐
12:49:58 <andythenorth[d]> FIRS 5 is going to impose a lot of change on train set authors
12:50:14 <andythenorth[d]> and I haven't released 5.0.0 yet, so if I can set classes to help them, I should
12:51:04 *** tokai|noir has quit IRC (Ping timeout: 480 seconds)
12:51:05 <_pruple> does every cargo in FIRS 5 set at least one of express, bulk, piece, liquid?
12:51:55 <_pruple> then it's fine, and existing vehicle sets will handle it fine.
12:53:19 <andythenorth[d]> what's hazardous for?
12:53:42 <andythenorth[d]> oh, CC_HAZARDOUS is CC_DIRTY?
12:54:41 <_pruple> no, it's nothing. It's a silly and too-specific class, like most of the extended ones.
12:56:05 <peter1138> > Hazardous cargo (Nuclear Fuel, Explosives, etc.)
12:56:40 <peter1138> Yes, over the top. Predates labels though, I suppose.
12:57:27 <andythenorth[d]> were classes before labels? ๐ฎ
12:58:01 <_pruple> If used for things like explosives, it *might* be useful for picking graphics, which is the other use for cargo classes besides refittability.
12:59:27 <andythenorth[d]> big hazchem label
13:02:04 <peter1138> Hmm, what other games from the 90s had good MIDI soundtracks...
13:02:11 <andythenorth[d]> mortal kombat?
13:02:15 <andythenorth[d]> enter the dragon?
13:02:30 <andythenorth[d]> what was the top-scrolling shooter? R-Type?
13:03:53 <andythenorth[d]> Lotus Turbo Esprit maybe?
13:14:22 <kuhnovic> xarick: Look at the node limit of the LL PF. It is set with the tile+exitdir setting in mind. For tile+trackdir you need to increase that limit
13:17:00 <_glx_> node count is exponential, 1 tile+trackdir adds 3 tile+trackdir
13:19:18 <kuhnovic> True. But the node expansion of the LL PF is restricted by the regions found by the HL PF. But there is also a general node limit, and that one has to be adjusted accordingly.
13:20:00 <kuhnovic> I don't think it's a good idea to go back to tile+trackdir. But it seems that Xarick is now going down that rabbit hole...
13:20:30 <xarick> I noticed it, already did something about it
13:20:54 <_glx_> in wide open water space the regions restriction can still cover a huge area
13:21:03 <xarick> so it's 3 times slower
13:21:31 <_glx_> but in a corridor shape
13:22:56 <_glx_> pf is run often, it needs to be as fast as possible
13:25:26 <kuhnovic> Well, we could change the size of the water regions to 8x8 or 4x4 (currently they are 16x16). That would significantly lighten the burden on the LL PF, but instead increase the workload for the HL PF. It's a balancing act.
13:26:44 <kuhnovic> One of the major benefits of 16x16 is that the HL PF is lightning fast at determining if a target is reachable or not. And even on 4K maps the number of HL PF nodes stays somewhat reasonable.
13:28:08 <peter1138> Your "revert" is wrong though.
13:30:09 <xarick> oh, it's applied onto my stuff, not master
13:30:45 <peter1138> You are reverting 11dece2, not 7ca1793.
13:37:16 <andythenorth[d]> CC_OVERSIZED?
13:37:29 <andythenorth[d]> should vans be exluding that?
13:38:33 <andythenorth[d]> hmm FIRS sets that class
13:39:07 <peter1138> Is it because FIRS is oversized?
13:39:11 <andythenorth[d]> vehicles, vehicle bodies, pipe, pipework
13:40:54 <peter1138> Why do water tiles need trackdirs anyway...
13:41:00 <andythenorth[d]> or I had covid
13:42:51 <peter1138> Documented reasoning now.
13:44:39 <peter1138> _pruple: maybe the tt-forumers will wade in on the cargo class stuff. (lol)
13:51:36 <peter1138> Devolves into `auto *` vs `auto*`
14:01:25 <xarick> the idea of 8x8 regions sounds more intresting by the day
14:04:08 <andythenorth[d]> peter1138: I found some links to old cargo class forum discussions earlier ๐
14:04:20 <andythenorth[d]> bad andythenorth[d]
14:06:08 <peter1138> So, er, how do you enable debug display of pathfinder stuff...
14:07:28 <andythenorth[d]> do you have 70k ships to test with? ๐
14:07:50 <peter1138> Although I do have that save, so I could.
14:08:21 <_pruple> andythenorth[d]: only if you have some vehicles that don't
14:08:46 <andythenorth[d]> why is pipe oversized?
14:11:37 <peter1138> Oh right so it's not enable a define and job done. Oh well.
14:17:17 *** gelignite has joined #openttd
14:17:54 *** Wormnest has joined #openttd
14:19:31 <xarick> i placed some % 16 cus I couldn't bother to include whatever sets WATER_REGION_EDGE_LENGTH = 16
14:31:04 <xarick> suddenly I feel compelled to do it
14:31:16 <xarick> because I wanna change it to 8
14:31:19 <peter1138> Do it properly and then you can easily tweak it
14:31:58 <andythenorth[d]> - drop the daft cargo classes for FIRS 5
14:32:28 <andythenorth[d]> - everything is CC_PASSENGERS, CC_EXPRESS, CC_PIECE_GOODS, CC_BULK or CC_LIQUID
14:33:02 <andythenorth[d]> * don't set any class for livestock
14:35:41 *** gelignite has quit IRC (Quit: Stay safe!)
14:36:23 <_pruple> good plan, if you don't want livestock to be transportable
14:37:01 <peter1138> So, "here's a proposal to help improve things" "nah"?
14:37:30 <andythenorth[d]> doesn't the default base game livestock van handle LVST?
14:37:54 <peter1138> Only if it's present ๐
14:38:10 <_pruple> it's (probable?) that most train sets have a vehicle that explicitly fits livestock
14:38:22 <_pruple> but do aircraft sets? or ship sets? probably not.
14:38:45 <andythenorth[d]> ok, so livestock stays as CC_PIECE_GOODS
14:38:56 <andythenorth[d]> but then vehicle authors have to set the label anyway
14:39:06 <andythenorth[d]> it's the same amount of entropy either way
14:39:13 <andythenorth[d]> but I don't get the blame ๐
14:40:03 <andythenorth[d]> I had to adjust my clothes
14:40:06 <andythenorth[d]> into different clothes
14:40:26 <andythenorth[d]> dare I grep further for `MCT_LIVESTOCK_FRUIT`
14:40:51 <andythenorth[d]> I wish I hadn't seen where that leads
14:46:58 <andythenorth[d]> hmm, dropping classes entirely from FIRS, might seem clever right now
14:47:09 <andythenorth[d]> but would be super pitchforks, I would regret
14:48:37 <andythenorth[d]> what about each cargo only setting one class?
14:48:41 <andythenorth[d]> that seems easier
14:52:39 <andythenorth[d]> oh FIRS doesn't build anyway ๐
14:52:55 <andythenorth[d]> ``170749: Using spritesets with different sizes in a single sprite group / layout is not possible`
14:52:59 <andythenorth[d]> that will learn me
14:56:21 <andythenorth[d]> nml PR 309 ๐
15:01:53 <xarick> CalculateWaterRegionPatchHash might need adjusting
15:02:03 <xarick> if the edge lenght is differnt than 16
15:03:31 <xarick> I wanna make it automagically hash itself correctly
15:27:22 <andythenorth[d]> is carbon black bulk or piece goods?
15:27:37 <andythenorth[d]> maybe I should move this Discord channel #add-on-development
16:00:07 <xarick> how do I extract the maximum possible size of a map that openttd can create, where is this definition located at
16:06:31 <xarick> dauym kuhnovic 8x8 regions is worth it!
16:06:45 <xarick> provided regions lookahead remains 4
16:06:57 <xarick> but if it scales, then there's no gains
16:08:08 <xarick> you teased the idea of 4x4 regions... let's try
16:19:03 <xarick> I found a leftover from NPF
16:22:06 *** godbed is now known as debdog
16:27:33 <andythenorth[d]> pff what's a diamond dependency? ๐
16:27:54 <andythenorth[d]> I've got a shared lib (polar fox) that FIRS depends on, but now polar fox needs to depend on FIRS ๐
16:32:04 <kuhnovic> xarick: You need to explain why it's better first ๐
16:34:01 <xarick> reduce num regions lookahead to 3
16:36:55 *** debdog has quit IRC (Quit: Initiating getting-the-hell-out-of-here maneuver!)
16:41:50 <xarick> might come up with suboptimal paths though, but the gains in performance are interesting
16:43:44 <kuhnovic> A single-region lookahead performs a lot better but leads to horrible paths. The current settings are what I ended up with after lots of testing and balancing. I'm only willing to change them if there are very good reasons for it.
16:44:47 <xarick> that's when the region is 16x16 8x8?
16:46:00 <xarick> I'm attempting some magic
16:46:49 <xarick> automatically on-the-fly Re AllocateWaterRegions when the edge size changes
16:48:08 <xarick> if Trackdir -> 8x8 or 4x4 haven't decided yet, if Exitdir -> 16x16
16:50:18 <xarick> the only times a reallocation would occur is when the user puts in the console ship45 penalties equal or different than 90 penalties
16:51:54 <xarick> but everything needs to scale correctly
17:19:03 <kuhnovic> I wouldn't go that route. Hard to tweak things, different PF behavior for different map sizes. Unnecessary headache.
17:19:04 *** gelignite has joined #openttd
17:23:22 <ahyangyi> andythenorth[d]: A 60-year-long dependency?
17:33:39 <xarick> if it's not std::array, what will it be
17:58:22 <_glx_> std::array size is compile time defined
18:54:14 <andythenorth[d]> so...the values of classes in cargo prop 16...they're just convention, right?
18:58:40 <andythenorth[d]> no...they're not ๐
19:00:25 <andythenorth[d]> they're in cargotype.h, and seems they're used for things like road stops
19:03:13 <xarick> std::unique_ptr has no member 'fill', 'begin', 'end'
19:11:21 <xarick> I tried this, courtesy of CoPilot:
19:11:21 <xarick> this->data.tile_patch_labels = std::make_unique<TWaterRegionPatchLabelArray>(WATER_REGION_NUMBER_OF_TILES, INVALID_WATER_REGION_PATCH);
19:13:53 <peter1138> Are you trying to make its size changable at runtime?
19:14:11 <peter1138> Sounds like a bad idea
19:20:19 <xarick> well.. CoPilot told me to:
19:20:19 <xarick> std::all_of(this->data.tile_patch_labels->get(), this->data.tile_patch_labels->get() + WATER_REGION_NUMBER_OF_TILES, [](TWaterRegionPatchLabel label) { return label == 1; }))) {
19:23:47 <johnfranklin> today is a lot of [word I cannot say] after eating a lot of meat, baked beans and hummins...
19:26:56 <talltyler> Wow, thank you for sharing that valuable information, I shall treasure the knowledge forever
19:27:50 <andythenorth[d]> if I have the biggest industry set and the biggest train set, is it a dick move to just redefine the current cargo classes to my own rules, and see who follows? ๐
19:27:58 *** mindlesstux is now known as Guest5794
19:27:59 *** mindlesstux has joined #openttd
19:28:46 <talltyler> Depends on what you mean by โredefineโ perhaps
19:29:35 *** Guest5794 has quit IRC (Remote host closed the connection)
19:29:58 <peter1138> I probably already broke evertying with my changes.
19:30:50 <johnfranklin> yes, the word "evertying" is broken
19:30:55 <andythenorth[d]> I did a bit of research into the cargo class forum thread of doom from 2011
19:31:19 <andythenorth[d]> seems the only thing me, george, snail, and MB have simultaneously agreed on is that cargo classes don't work for anyone
19:31:48 <andythenorth[d]> MB even quoted where Josef invented them, and subsequent doubt and regret
19:32:33 <andythenorth[d]> combinatorial additions to the 'base' classes are mad
19:32:47 <andythenorth[d]> CC_EXPRESS is mad, and was invented solely for some maglev train
19:33:18 <andythenorth[d]> we have 16 bits, and I think we could have 16 classes of cargo, which relate to their handling in vehicles
19:33:24 <andythenorth[d]> a cargo could be in more than one class
19:33:28 <andythenorth[d]> a vehicle could support more than one class
19:33:33 <andythenorth[d]> but it's OR, and no AND NOT
19:34:08 <peter1138> Are you still not getting it?
19:34:33 <andythenorth[d]> I didn't get it in 2011, when there were 8 pages of tt-forums thread about it
19:34:45 <andythenorth[d]> and neither do any of the other major authors except pikka
19:36:28 <ian01223> is this the discussion that wiki page about a never introduced replacement for cargo classes (which for some reason is the first response when you look up cargo classes) links to?
19:37:14 <andythenorth[d]> I don't think so
19:37:36 <ian01223> which is also 8 pages long and from 2011, but that might just be a coincidence
19:37:44 <andythenorth[d]> yeah, no maybe it is
19:38:08 <andythenorth[d]> yup, that's the one
19:38:14 <andythenorth[d]> I wanted to add 'clean'
19:38:19 <andythenorth[d]> but it was rejected as silly
19:38:55 <andythenorth[d]> but the prevailing view of authors who actually made grfs at the time (rather than talking about grfs) was that classes were not very useful
19:39:57 <andythenorth[d]> then we derailed ourselves beautifully into nonsense ๐
19:51:03 *** HerzogDeXtEr has quit IRC (Read error: Connection reset by peer)
19:51:07 <peter1138> Well, presumably Josef had an idea of what he was doing when designiing them.
19:52:31 <andythenorth[d]> he did, but the translation was quite fun to read ๐
19:52:47 <kuhnovic> xarick: I'm quite curious if you are able to break my fix
19:55:08 <kuhnovic> I'll admit, that one was a lot tougher than I thought
19:55:12 <peter1138> How do I run `nmlc -R`? It says it's not valid.
19:56:23 <_glx_> you need to do `-R` in a normal run
19:56:38 <_glx_> else it just prints the help and does nothing
19:56:43 <peter1138> What's a "normal run"?
19:57:02 <peter1138> ```petern@atropos:~/src/NML/regression$ nmlc -R 030_house.nml
19:57:02 <peter1138> nmlc ERROR: "030_house.nml", line 53: Syntax error, unexpected token "default_palette"```
19:57:26 <_glx_> so const was understood
19:57:47 <peter1138> If i remove `const` the file works.
19:58:52 <peter1138> That's my system nmlc not the correct one ๐
19:59:50 <andythenorth[d]> pff, I can't fit my classes in 16 bits
20:00:20 <_glx_> I think I'll just vendor the latest ply version (it removed the cached tables)
20:00:50 <_glx_> ply version in pip is quite old, and will never get an update
20:02:04 *** nielsm has quit IRC (Ping timeout: 480 seconds)
20:02:09 <peter1138> I've changed pr309 so that it only uses advanced action1 if it's needed. And rebased to master.
20:02:17 <peter1138> I'm not sure if that's reasonable or not.
20:02:52 <peter1138> Probably not a lot of point but at least it flexed my python skills a bit. But obviously not enough :p
20:03:36 <ahyangyi> _glx_: I guess you should.
20:03:40 <ahyangyi> Q: Why isn't PLY distributed as a package?
20:03:40 <ahyangyi> PLY is highly specialized software that is really only of interest to people creating parsers for programming languages. In such a project, I think you should take responsibility for library dependencies. PLY is very small and rarely changes--if it works for your project, there is no reason to ever update it. At the same time, as it's author, I reserve the creative right to make occasional updates
20:03:40 <ahyangyi> to the project, including those that might introduce breaking changes. The bottom line is that I'm not a link in your software supply chain. If you use PLY, you should copy it into your project.
20:06:45 <_glx_> I need to rebase my PR so I can compare your changes ๐
20:08:22 <peter1138> 6 bytes vs 12 bytes, not worth complexity ๐
20:15:09 *** gelignite has quit IRC (Quit: Stay safe!)
20:24:18 <_glx_> hmm why does 026_asl use advanced ?
20:26:39 <_glx_> maybe mixed_len detection
20:27:58 <_glx_> because clearly first is 0 and num < 256
20:31:32 <peter1138> Hmm, lengths are 2 and 3 respectively, somehow.
20:32:14 <peter1138> But it looks like it's 3 and 3?
20:32:40 <peter1138> Not sure, the palette maps being embedded there is new to me.
20:34:51 <peter1138> [<nml.actions.real_sprite.TemplateUsage object at 0x7fd3addbb390>, <nml.actions.real_sprite.RealSprite object at 0x7fd3addbb710>]
20:34:51 <peter1138> [<nml.actions.real_sprite.RecolourSprite object at 0x7fd3addbb510>, <nml.actions.real_sprite.RecolourSprite object at 0x7fd3addbbb10>, <nml.actions.real_sprite.RealSprite object at 0x7fd3addbbe50>]
20:35:21 <peter1138> I guess this wrong and just happened to work elsewhere.
20:35:24 <_glx_> template can be more than one
20:35:42 <peter1138> Yeah, it needs to expand these things out.
20:36:13 <peter1138> I just thought it would be nice to avoid changing the output of every NML file every made ๐
20:37:57 <_glx_> using len() is just optimistic ๐
20:38:15 <peter1138> I actually think I may be barking up completely the wrong treee.
20:41:40 <peter1138> I was. It's now simpler.
20:42:49 <peter1138> Each act1 still has to have the same number of sprites. The only difference is you don't have to start at 00.
20:43:19 <peter1138> So I was distracted by "variable length spritesets".
20:45:44 <peter1138> If only I knew what I was doing.
20:48:52 <_glx_> yeah the only change with extended act1 is you no longer on most recent act1 in act2, each spriteset has infinite lifetime
20:49:21 <_glx_> and can be overwritten later
20:51:39 *** aperezdc has quit IRC (Ping timeout: 480 seconds)
20:52:53 *** aperezdc has joined #openttd
21:00:17 <peter1138> Is 64 cargo types a lot or am I mad?
21:01:57 <_glx_> it's a lot, and not enough for some people ๐
21:04:21 <andythenorth[d]> it's about the right amount
21:05:18 <debdog> mayhap the ammount isn't that important but interesting cargo chains are?
21:18:02 *** Wolf01 has quit IRC (Quit: Once again the world is quick to bury me.)
21:20:48 *** keikoz has quit IRC (Ping timeout: 480 seconds)
21:22:10 <andythenorth[d]> cargos set as many as they want
21:22:19 <andythenorth[d]> vehicles OR as many as they want
21:25:19 <peter1138> You're definitely scared of that exclude mask.
21:26:52 <andythenorth[d]> it makes no sense
21:27:15 <andythenorth[d]> if we had metadata from bananas we'd find it's not used
21:27:16 <_glx_> it's include & ~exclude
21:27:38 <andythenorth[d]> why would I use the exclude mask?
21:27:45 <andythenorth[d]> I have labels
21:28:21 <_glx_> it's for vehicle set not using labels
21:28:52 <andythenorth[d]> yes, I wrote that rule in 2011
21:29:03 <andythenorth[d]> when all these stupid 'exclude' classes were being added
21:29:11 <andythenorth[d]> and it was obvious there was no way to use them
21:29:33 <andythenorth[d]> they were created by non-grf-authors who are good at winning arguments
21:29:45 <andythenorth[d]> I'm a grf author who's good at losing arguments ๐
21:31:29 <andythenorth[d]> pff I forgot about cc_armoured
21:31:34 <andythenorth[d]> there's always something
21:33:43 <andythenorth[d]> it's literally impossible to make a covered hopper wagon currently with classes ๐
21:33:48 <andythenorth[d]> cannot be done
21:37:55 <xarick> getting a crash from fmt
21:38:22 <xarick> I know I did something bad, but there's no call stack
21:40:16 <xarick> must be so critically bad
21:40:31 <_glx_> it's something wrong in a string
21:42:24 <xarick> `> openttd.exe!fmt::v10::detail::tm_writer<std::back_insert_iterator<fmt::v10::basic_memory_buffer<char,500,std::allocator<char>>>,char,std::chrono::duration<__int64,std::ratio<1,1>>>::on_second(fmt::v10::detail::numeric_system ns, fmt::v10::detail::pad_type pad) Line 1563 C++
21:43:12 <peter1138> Usually it's because you passed something as a parameter that isn't allowed.
21:46:58 <xarick> i'm on an infinite loop
21:47:55 <andythenorth[d]> naptime? ๐
21:48:15 <andythenorth[d]> when _pruple said we need dirty and clean as bits
21:48:19 <andythenorth[d]> same problem with bulk
21:48:34 <andythenorth[d]> covered hoppers are currently impossible, because there's no way to exclude flood-loaded bulk
21:49:02 <andythenorth[d]> it's not that the NOT AND is too hard as boolean logic
21:49:11 <andythenorth[d]> it's that there's nothing useful to boolean against
21:49:51 <andythenorth[d]> it really took 13 years to spot that eh? ๐
21:51:08 <andythenorth[d]> also CC_POWDERISED is stupid, somewhere in a long argument on irc and forums
21:51:08 <andythenorth[d]> it got converted from 'flows like a liquid under pressure, otherwise solid', which requires silo wagons / trucks
21:51:08 <andythenorth[d]> to 'needs protecting from moisture'
21:51:31 <andythenorth[d]> and that was put in the wiki, and it was specced as an extension to bulk to use as exclude
21:51:45 <andythenorth[d]> but it's not an exclude, it's a fundamental class, like liquid, piece, bulk
21:53:09 <andythenorth[d]> lol the process
21:53:34 <andythenorth[d]> industry author: "cement". ok, I need to set bulk, and powderised, per the wiki, because those are the rules
21:53:59 <andythenorth[d]> vehicle author: ok now I have cement in hopper cars, which is wrong, so I need to exclude powderised from my bulk wagons
21:54:23 <_pruple> And you want the cargo to go in the wagon
21:54:26 <_glx_> well CC for cargo and CC for vehicles are not handled in the same way
21:54:38 <_pruple> Or you want the cargo to not go in the wagon
21:54:56 <andythenorth[d]> ok so no classes
21:55:05 <andythenorth[d]> which is back to the commit I nearly did to FIRS this afternoon
21:55:06 <_glx_> labels need to be known
21:55:22 <andythenorth[d]> but `git reset --hard` removing all the FIRS classses
21:55:30 <andythenorth[d]> was scared of the pitchforks
21:55:31 <_glx_> vehicles may be older than a label
21:56:04 <_glx_> but can understand classes
21:56:20 <_glx_> and work as best as possible
21:57:24 <_pruple> Why do you need to "remove classes" from firs, to handle cargos by label in IH?
21:57:36 <_glx_> might not have the exact design, but something close enough
21:57:51 <andythenorth[d]> I don't, this is a non-problem for me between FIRS and the grfs I make
21:57:56 <andythenorth[d]> but the spec is clown shoes, and that bothers me
21:58:41 <_glx_> when you define a cargo you just set where you expect them to go, and where you don't want them
21:58:57 <andythenorth[d]> as industry set author?
21:59:01 <andythenorth[d]> that's not the rule
21:59:10 <andythenorth[d]> the rule is you define the intrinsic properties of the cargo
21:59:20 <andythenorth[d]> the industry set author should not be inferring the vehicles
21:59:39 <andythenorth[d]> it was stupid in 2011 and it's stupid now, but that's the rule
22:00:08 <_glx_> it doesn't infer, it just declares the (dis)allowed classes
22:00:18 <andythenorth[d]> the rule should be 'how is it commonly trasnported' not 'what are it's intrinsic properties'
22:00:50 <andythenorth[d]> interestingly, MB was the only one present afaik, in the original design with Josef
22:00:55 <andythenorth[d]> and MB thought the same as I put above
22:01:10 <andythenorth[d]> the intrinsic properties thing got added by a bunch of people who don't make grfs
22:04:41 <_glx_> for example when defining livestock you don't want it to be in refrigerated
22:07:10 <andythenorth[d]> dunno, at some point I'll find a way to articulate this ๐
22:07:32 <andythenorth[d]> or it's my 70k ship pathfinder ditch to die in ๐
22:12:38 <andythenorth[d]> where's that XKCD about standards? ๐
22:14:35 <andythenorth[d]> last time I proposed a changed to a standard in the wiki, it got reverted as 'vandalism'
22:14:53 <andythenorth[d]> and when FIRS cargos were first added, the same ๐
22:15:15 <andythenorth[d]> the only thing to fight pitchforks with is cleansing fire
22:17:06 <ian01223> it's funny because I've asked around a bit and I still don't know who's actually meant to be in charge of the wiki
22:17:30 <xarick> what's wrong here dang it
22:17:31 <xarick> std::all_of(*this->data.tile_patch_labels->begin(), *this->data.tile_patch_labels->end(), [](TWaterRegionPatchLabel label) { return label == 1; }))) {
22:18:34 <xarick> complains about the lambda
22:21:16 <andythenorth[d]> ian01223: it's the community
22:21:27 *** reldred has joined #openttd
22:21:52 <reldred> This is why I hide in the corner and just do my own thing
22:22:07 <ian01223> is this community in the room with us right now? ๐
22:22:11 <reldred> stations and building sets usually don't talk back or cause such evangelical standards debates
22:22:17 <xarick> you cannot dereference an operand of type '_InIt'
22:22:38 <ian01223> did the last guy who care just leave years ago and no one noticed
22:23:46 <reldred> There should be an elected GRF standards steering committee. You should be barred from entry if you haven't published anything substantial.
22:24:07 <reldred> grf wiki specs edits should be locked to said people.
22:24:13 <fairyflossy> reldred: Yeah, that's smart. If buildings start debating Standards for OpenTTD GRFs with you then you know you're either thoroughly gone or got your hands on some very funky stuff
22:24:32 <andythenorth[d]> I'm going to just redefine the meaning of current classes, about half are good, half are stupid
22:24:43 <andythenorth[d]> I'm going to ship it in FIRS 5, with alternate docs
22:24:46 <reldred> Been interesting seeing some of the politics in the wayland project lately.
22:24:47 <andythenorth[d]> and a parameter
22:24:53 <fairyflossy> reldred: Does the committee define "substantial"?
22:25:05 <andythenorth[d]> and I'm going to recommend that vehicle authors just use the OR in prop 28
22:26:13 <andythenorth[d]> I thought I could do it in 16 bits, but I forgot about Armoured, which is annoying ๐
22:27:50 <andythenorth[d]> also I need to see if CC_MAIL and CC_EXPRESS can be merged or not
22:27:52 <reldred> fairyflossy: I'd probably say the devs should determine that. Standards committee should be the trusted voice to the devs (devs often aren't grf authors), standards committee filters out stupid bullshit from authors who don't know what they're doing to begin with.
22:28:08 <andythenorth[d]> is there an election process?
22:28:25 <reldred> I was half taking the piss when I suggested it
22:29:06 <reldred> my main gripe is the idea that the specs side of the wiki can be edited by people who have no fucking idea what they're doing
22:29:14 <fairyflossy> Yeah but it's fun debating half-serious ideas when done in good silly faith
22:29:35 <fairyflossy> I can agree with that sentiment, even if I've never experienced it myself
22:30:10 <reldred> the only standard I would ever drag myself into is specifying what types of buildings should be in each town zone ๐
22:30:57 <fairyflossy> What about standards for hypothetical defining new town zones in GRFs
22:31:28 <andythenorth[d]> ha forgot about climate availability for base set wagons ๐
22:32:03 <reldred> fairyflossy: I mean, you can't. there's zones 0-4 and that's it.
22:32:24 <reldred> in jgrpp you can control sizing of those zones and even disable some zones
22:33:19 <reldred> anything else is layering on building restrictions to emulate behavior
22:33:47 <andythenorth[d]> does NARS still use CC_SPECIAL? ๐
22:34:50 <reldred> one of my favorite tricks is to have certain 'seed' buildings that can spawn a limited amount of times but have a really really high probability of spawning, and certain buildings with a similarly really high spawn chance are only allowed to spawn near that seed building. it's how re_fabs2 emulates industrial/warehouse zones and commercial zones.
22:35:29 <reldred> but the game itself doesn't have a concept of industrial or commercial zones.
22:35:48 <andythenorth[d]> oh there's even a water tanker in basic tropic ๐
22:40:02 <FLHerne> ian01223: no-one is in charge of the wiki, people just edit it when they get too fed up of it being wrong
22:40:57 <FLHerne> for grfspecs, there's an entry on the to-do checklist when making grf API changes for "add the new thing to the wiki"
22:42:47 <FLHerne> the vast majority of content on wiki.openttd.org is a write-off IMO, all but a handful of pages are either obsolete by a decade or full of cruft applicable to a very specific playing style
22:42:53 <ian01223> that's probably why it mostly hasn't been touched since 2012
22:43:19 <ian01223> i'm more talking about grfspecs wiki
22:43:33 <FLHerne> grfspecs wiki has always seemed fine to me
22:45:03 <ian01223> there isn't much *to* update, especially to the reference pages
22:45:10 <FLHerne> it's generally accurate and comprehensive; it can be awkward to use when most specs are written from the "what this bit does" direction rather than the "I want to do X, which bit do I use one?"
22:45:45 <FLHerne> but solving the latter would require it to be opinionated rather than factual
22:46:09 <FLHerne> because there are almost always multiple ways to do X, and the set of Xs that people might want to do is virtually infinite
22:46:46 <FLHerne> yeah, it only really gets changed when someone adds a new flag or callback or something which gets a corresponding paragraph
22:47:24 <peter1138> I just see a lot of volunteering going on.
22:48:20 <ian01223> well, that should be why the tutorials and such exist, but those are the ones that are updated even less, especially when they don't link to the reference pages
22:48:48 <andythenorth[d]> I volunteer to amend 'powderised'
22:50:06 <ian01223> peter1138: in a shocking turn of events, I am not entirely opposed to this
22:50:23 <ian01223> that's why I'm bringing it up
22:51:15 <FLHerne> peter1138: something something time something
22:51:57 <FLHerne> I will try to edit some wiki.openttd.org stuff
22:52:11 <peter1138> Is there a "wipe it all" button? ๐
22:52:36 <ian01223> I believe that one's labelled the "migrate to truewiki" button
22:54:15 <andythenorth[d]> unless anyone wants to make me read the 'standards' XKCD ๐
22:54:36 <andythenorth[d]> I have cargo classes 2.0, going to implement in FIRS and Horse, then see what I regret
22:55:09 <andythenorth[d]> or we could make the props dword sized? ๐
22:55:22 <andythenorth[d]> then I regret nothing ๐
22:55:22 <ian01223> at the very least can we move all the non spec newgrf or proposal stuff to a different namespace so I don't keep ending up at the cargo redefinitions page every time?
22:55:37 <andythenorth[d]> where do you end up?
22:56:45 <peter1138> andythenorth[d]: Don't forget that cargo classes affect gameplay rules and things.
22:56:47 <ian01223> well it's a minor complaint but one that only an actual pull request or admin would be able to fix
22:57:15 <peter1138> CC_PASSENGERS, CC_MAIL, CC_ARMOURED are all CargoDist dependencies.
22:57:17 <andythenorth[d]> peter1138: yes, truck vs bus stop
22:57:27 <peter1138> That's CC_PASSENGERS.
22:57:32 <andythenorth[d]> I need to figure out what constants to search src for
22:58:15 <peter1138> Fortunately I added TownProductionEffect, so that doesn't use classes.
22:58:19 <andythenorth[d]> I need reprogramming about `powderised` ๐
22:58:33 <peter1138> (I trialed it with cargo classes originally)
23:00:21 <andythenorth[d]> about this I am glad ๐
23:00:48 <ian01223> finding out someone is in the same timezone as you
23:01:51 <andythenorth[d]> really is naptime
23:01:59 <andythenorth[d]> but this is mad, in the spec
23:02:15 <andythenorth[d]> to imply a cargo should travel on flatbeds
23:02:20 <andythenorth[d]> set piece goods and oversized
23:02:36 <andythenorth[d]> then set the flat wagons to piece goods, but don't exclude oversized
23:02:46 <andythenorth[d]> now exclude oversized from other piece goods wagons
23:03:23 <andythenorth[d]> because modifying unrelated items always goes well in taxonomies
23:03:44 <andythenorth[d]> biography, "not dictators"
23:04:25 <andythenorth[d]> ha ha my alarm creeps closer though
23:10:58 <peter1138> You might as well stay up.
23:11:29 <andythenorth[d]> I'd ask if 32 bits in cargo prop 0x16 was possible
23:11:37 <andythenorth[d]> but there's all those fancy vars reading them
23:12:53 <andythenorth[d]> and something in var 0x42 that I never saw a use for ๐
23:45:51 <_pruple> in other news, and ignoring the one at the bottom right, the house picker seems to have sprite order issues. No bounding boxes when constructing the previews?
23:46:15 <_pruple> (note the back wall and the tree overlapping the house bottom left)
23:46:48 <_pruple> and the hedge over the houses in the middle
continue to next day โต