IRC logs for #openttd on OFTC at 2024-11-16
โด go to previous day
00:12:08 <peter1138> Yeah, I guess that was it.
02:10:36 <peter1138> And then bringing them together...
02:31:46 *** tokai|noir has joined #openttd
02:31:46 *** ChanServ sets mode: +v tokai|noir
02:38:43 *** tokai has quit IRC (Ping timeout: 480 seconds)
03:20:56 *** debdog has quit IRC (Ping timeout: 480 seconds)
03:32:11 *** D-HUND is now known as debdog
04:48:21 <DorpsGek> - Update: Translations from eints (by translators)
07:22:28 <andythenorth> pff more coffee needed
07:22:33 <andythenorth> currently coffee zero
09:24:17 <andythenorth> just in time for lunch?
09:52:52 *** reldred has quit IRC (Quit: User went offline on Discord a while ago)
09:54:06 <andythenorth> there must be some basic grf parser already for the classifier
09:57:46 <andythenorth> I found reclassify
10:34:00 <andythenorth> Ok so one piece at a time, can we find all grfs with action 0 cargos?
10:34:09 <andythenorth> Sounds plausible?
10:52:04 *** HerzogDeXtEr has joined #openttd
10:53:08 <andythenorth> Maybe I need to run bananas API locally
11:06:19 <peter1138> Rescan everything again...
11:17:56 <peter1138> Oops, I appear to be rebuilding OpenGFX2's build system ๐
11:19:16 <peter1138> (They're a bit messy)
11:25:03 <peter1138> So my approach actually performs better than kdtree in some cases. I did not expect that.
11:25:23 <peter1138> Eh, I'm assuming TypeList is my code.
11:25:43 <xarick> it is, with minor tweaks
11:26:26 <andythenorth> would we be against having `Cargo` listed here?
11:26:38 <andythenorth> confusing to players maybe, as cargo without industries is not a thing?
11:26:44 <andythenorth> or would it be fine to list?
11:28:26 <peter1138> What's wrong with just Industry?
11:28:52 <xarick> im a bit suspicious of a result, I may be doing it wrong...
11:29:07 <xarick> CountIndustryMatchingTypeAndLayoutTypeList
11:30:10 <peter1138> Where does that live?
11:30:54 <peter1138> Hmm, this build script gets stuck on some images.
11:31:04 <andythenorth> I am hoping to somehow expose a list of all cargos known by bananas, re-using existing classifier as API source, and without adding weird special cases to it
11:31:30 <peter1138> Does the classifier look for cargo at all, or does industry only include industries?
11:31:41 <andythenorth> it looks for cargo, but files it under 'economy'
11:31:44 <andythenorth> along with base cost mods
11:32:33 <andythenorth> I don't really do much API design, but I'm trying to figure out how to get an endpoint that lists all known cargo grfs, and their bananas ID
11:32:45 <andythenorth> then maybe have a script that goes and reads them all again, and parses out the cargos
11:33:01 <andythenorth> although that's double-handling the parsing, it keeps the bananas API cleaner?
11:34:11 <andythenorth> hmm I did a software course once, as part of my degree
11:34:19 <andythenorth> I got about 2/10 on the assessment though
11:34:38 <andythenorth> something about bottom up vs top down design, the lecturer believed only one of those approaches was valid
11:34:50 <andythenorth> I still don't understand the difference, but the river comes before the tree
11:35:58 <peter1138> Hmm, I guess this python dithering algorithm is just slow.
11:36:52 *** locosage has joined #openttd
11:36:52 <locosage> happens with python algorithms xD
11:40:13 <xarick> going to tweak some stuff again ๐
11:41:23 <xarick> I realise the originals could also be tweaked like for example, when a given type is invalid, it is still iterating all industries finding for a match that is 100% sure to not exist
11:44:58 <andythenorth> maybe xarick could write a cargo classifier
11:45:36 <andythenorth> peter1138: is it single-thread, single-worker? ๐ Could it be parallelised?
11:46:10 <peter1138> The build script is bash files.
11:50:39 <peter1138> Not gonna lie... who is that? ๐ฎ
11:50:56 <truebrain> we once, a while ago, gave some contributors additional permissions on the website repo
11:51:30 <truebrain> even I forgot we did ๐
12:02:10 *** virtualrandomnumber has joined #openttd
12:04:12 <andythenorth> peter1138: python multiprocessing pool is quite good at parellelising image jobs
12:07:49 <andythenorth> pff why am I looking at classifier, I forget
12:09:22 <andythenorth> | style="background: #1AD74C; color: white" | [[ttwiki:FIRS|FIRS]]
12:09:26 <andythenorth> | style="background: #80A0D0; color: white" | [[ttwiki:XIS|XIS]]
12:09:28 <andythenorth> | style="background: #FF0000; color: white" | CZIS
12:09:28 <andythenorth> | CZIS renamed to Potatoes
12:09:33 <andythenorth> just one row ๐
12:09:36 <LordAro> truebrain: i had the same thought
12:10:18 <andythenorth> table is 1958 lines of code
12:10:37 <andythenorth> and now I need to add and remove columns
12:14:23 <andythenorth> but that's considered weird, true software craft people hand write their wiki tables
12:18:01 <andythenorth> I should write an output module to wiki format? ๐
12:18:38 <peter1138> (Although that's out of date, I was still using 4-byte labels there)
12:18:49 <andythenorth> you're mad, generating docs will never catch on
12:19:39 <andythenorth> how else will people fill their time, if they're not either
12:19:39 <andythenorth> A) hand maintaining wikis about data that's all actually in code, but a human reads it and manually transcribes it, with errors, to a shit format
12:19:39 <andythenorth> B) complaining that the wiki is wrong and outdated
12:19:48 <peter1138> Of course, if I want HTML I have to compose it a bit differently, and then deploy it somewhere.
12:19:58 <peter1138> But having the docs in the same repo is a bit meh anyway.
12:20:05 <andythenorth> seems you've magically deployed it to github
12:20:08 <andythenorth> which seems fine for now
12:20:31 <peter1138> It 'duplicates' everything, as the source images and doc images are not the same.
12:20:34 <andythenorth> but now you've ruined all the fun
12:20:44 <andythenorth> somebody could have spent literally weeks copying all that to the wiki
12:21:14 <andythenorth> ``
12:21:33 <andythenorth> caution over northern irish flags eh
12:21:40 <peter1138> I will likely fix that.
12:22:00 <andythenorth> I think the grf wiki should have a page listing all the known railtypes
12:22:17 <peter1138> It probably does somewhere
12:22:49 <peter1138> I guess I could remvoe the non-iso flags.
12:24:17 <andythenorth> anyway, all this talking is just to cover up that I don't understand the classifier
12:24:26 <andythenorth> nor how to run the bananas API locally ๐
12:24:55 <andythenorth> I have a simple brain, that mostly works by up-enter in console ๐
12:35:04 <peter1138> Non-ISO means no EU flag. Not a huge issue mind you.
12:36:31 <peter1138> So, separate repository for github pages?
12:36:56 <peter1138> Or same repository with a dedicated branch... hmm.
12:37:09 <truebrain> the latter is surprisingly common
12:38:57 <andythenorth> can we pipe it to true wiki?
12:39:15 <andythenorth> dunno, we never concluded much on developer docs that I can remember
12:42:49 <truebrain> I hate mixing repositories with different content depending on the branch
12:42:53 <truebrain> it can be very confusing
12:52:18 <johnfranklin> I am Julius Caesar I haven't died in fact. Give me ยฃ500, I can let you control 100 km^2 of land in Britain. Don't disturb me if you think I am scam. Bank account: XXXXXXXX
12:52:18 <johnfranklin> [user banned from the server]
12:56:58 <peter1138> Doesn't like that empty table though ๐
12:57:21 <peter1138> I didn't even have to rewrite it to HTML, that's nice.
12:58:56 <andythenorth> I concluded that for docs it was easier to have a separate repo
12:59:05 <andythenorth> it's just too easy to commit to the wrong branch and make a mess
12:59:06 <peter1138> This is what I have done.
12:59:37 <andythenorth> so now you have a docs site ๐
12:59:39 <andythenorth> and I have a docs site ๐
12:59:43 <andythenorth> who else has one?
13:00:31 <peter1138> So if the flag has an uppercase two letter code, it's an ISO country flag.
13:00:48 <peter1138> Anything else is historical or fictional.
13:01:08 <andythenorth> I like that you've namespaced them so neatly
13:01:17 <andythenorth> [genuine, not snark]
13:01:26 <peter1138> That's the huge win for string labels.
13:01:42 <andythenorth> I wonder if we now have any regrets about railtype labels ๐
13:02:33 <brickblock19280> andythenorth: I have one for SETS
13:04:15 <peter1138> Not documented, but if you have a badge called "newgrf/43411222" it will automatically be applied to all things in the appropriate file.
13:04:21 <brickblock19280> Not auto generated but eh
13:05:23 <peter1138> So you can 1) have an icon for it 2) test if a something comes from a particular NewGRF
13:05:34 <peter1138> Probably already possible in other ways but ...
13:07:02 <peter1138> Because varact chains can test for badges, it means you can't add custom badges via newgrf-static, but who uses that any way.
13:10:33 *** virtualrandomnumber has quit IRC (Quit: virtualrandomnumber)
13:21:21 <andythenorth> peter1138: this is excellent
13:21:26 <andythenorth> why isn't all of the grf spec this good ๐
13:23:23 <xarick> New results, after some tweaks
13:24:47 <peter1138> andythenorth: "strings are dangerous"
13:25:05 <peter1138> Remember when there was that suggestion that cargo labels are not necessary, just use the name?
13:25:46 <peter1138> Imagine if railtypes were combinatorial?
13:27:06 <peter1138> "gauge/standard", "power/catenary", "power/catenary/ac/22kv"
13:27:12 <andythenorth> peter1138: I re-read that thread recently ๐
13:27:21 <andythenorth> yes, the librarian / taxonomy problem occurs ๐
13:27:22 <peter1138> Yes, that's why I remembered it ๐
13:27:56 <andythenorth> imagine if power type and ground tile were composed, not inherent to the type ๐
13:28:08 <peter1138> That's not where I was going.
13:28:33 <peter1138> Well, kinda isn't useful.
13:29:21 <peter1138> With composition you'd need to be able to ensure that some combinations aren't possible.
13:29:46 <andythenorth> I have all the railtypes I need, and have had my annual dose of 'trying to make things work better for other newgrfs' ๐
13:30:02 <peter1138> high-speed dirt ground narrow guage 600V DC
13:30:28 <andythenorth> with third rail and catenary
13:30:33 <andythenorth> but axle load 200t
13:31:32 <andythenorth> shall I badger Horse yet?
13:31:59 <peter1138> First, decide what you think you need.
13:32:01 <andythenorth> how many times do you need to reinvent the spec? Have you reached the correct number yet?
13:32:08 <andythenorth> 3 or 4 is usually enough
13:32:28 <peter1138> Then if it's something that could be generic and common, get it added to my repo.
13:32:57 <peter1138> I can't do it it in the middle of the sprite though ๐
13:32:59 <andythenorth> I'll have to rethink the compositing approach
13:33:20 <peter1138> Badges do not get composited, they are always drawn in separate columns.
13:33:37 <andythenorth> then I'll remember that this bit of the compositor has many "#JFDI" and "#don't look too closely, it works for this case" comments
13:33:46 <andythenorth> then I'll refactor the whole grf ๐
13:34:01 <peter1138> If it was possible to do that, then everyone would do that, and you end up with different things all over the place again.
13:34:15 <andythenorth> I can probably draw the vehicles differently
13:34:38 *** virtualrandomnumber has joined #openttd
13:42:07 <peter1138> Also badges-as-metadata
13:42:38 <andythenorth> oh yeah I'll have to refactor all the restaurant car detection ๐
13:42:40 <peter1138> Can be included in docs if it's fairly generic rather than oddly-specific.
13:42:43 <andythenorth> it will be great fun
13:42:53 <andythenorth> burning down some terrible loops
13:43:47 <andythenorth> yair all this cargo class stuff is so boring
13:44:19 <andythenorth> fighting alligators, I just wanted to get rid of the swamp
13:44:27 <johnfranklin> Please remain the cargo label page.
13:46:52 <andythenorth> johnfranklin: rename it to what? ๐ Alligators?
13:48:22 <johnfranklin> And also, xussr set developers insist only using cargo labels.
13:48:38 <peter1138> Ah the old cargo-type switch.
13:48:38 <andythenorth> wow did someone write all that nml for that one wagon? ๐ฎ
13:49:00 <peter1138> Because action3's built in cargo-type selection is... apparently never used now.
13:49:22 <johnfranklin> He is not on discord though
13:49:28 <andythenorth> johnfranklin: that's mad, why would anyone write that much nml ๐ฎ
13:49:58 <andythenorth> looks like china set has a compile, there's a python file and stuff
13:50:11 <andythenorth> .pnml was actually pretty much the worst thing that happened to grf community
13:50:22 <andythenorth> it's totally awful
13:50:25 *** virtualrandomnumber has quit IRC (Quit: virtualrandomnumber)
13:50:32 <andythenorth> it encourages the worst kind of project structure
13:52:45 <johnfranklin> Or we donโt want the gondola shows coal sprites when it holds sand
13:53:02 <andythenorth> yes but why write all that?
13:53:46 <andythenorth> 1183 lines of hand written code
13:54:04 <andythenorth> in this awful pseudo programming language
13:56:38 <johnfranklin> Sometimes it is copy and paste
13:56:54 <johnfranklin> Only changing cargo label
13:57:27 <andythenorth> sounds awful ๐
13:57:32 <peter1138> num_loading/num_loaded, eh?
13:58:14 <peter1138> Varactions to test type and amount of cargo... when those things are automatically built into the spec.
13:58:18 <andythenorth> peter1138: regarding action 3, I am probably not on your christmas card list ๐ ๐
14:00:44 <andythenorth> hmm did I make Bananas print out all the known cargo labels and classes yet?
14:00:53 <andythenorth> sometimes I envy the fight club main character
14:00:59 <andythenorth> I could wake up and I'd have done the thing
14:09:37 <andythenorth> ok, I'll just use GPT to edit that table
14:09:44 <andythenorth> delete FIRS from grf wiki
14:10:07 <brickblock19280> I'll do it for you if it's that important
14:11:51 <xarick> I'm bored so I did this
14:12:15 <andythenorth> brickblock19280: it's 2000 lines
14:12:22 <andythenorth> GPT is writing me a script to do it
14:12:40 <andythenorth> the information there is junk, so we should delete it
14:12:45 <brickblock19280> Ok I just didn't trust it to write the table but that seems fine
14:13:35 <andythenorth> it fails repeatedly at editing the wiki table
14:13:48 <andythenorth> it will have very limited training data about wiki tables
14:14:00 <andythenorth> because the format is mind-bendingly awful
14:14:22 <andythenorth> "people are too stupid to write html" -> give them a worse format, with less documentation or help
14:22:28 <peter1138> Damn, and it got all the this-> treatment for no reason ๐
14:25:39 <peter1138> > Failed saving image for livery/2cc: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
14:26:10 <andythenorth> ach GPT and scripts
14:26:42 <andythenorth> they either work...or they really don't
14:26:47 <andythenorth> again, it hates wiki format
14:26:59 <andythenorth> so it's writing stupid, unreliable regexes to try and remove | chars
14:27:32 <andythenorth> but when I wanted my git repo cleaned up of thousands of images, it wrote me a good set of scripts to do that, because other people have that problem
14:28:24 <andythenorth> can't even round-trip this through excel and the online wiki table editor
14:28:31 <andythenorth> because there's a bunch of hard-coded inline formatting
14:29:46 <andythenorth> the robot is unable to work with this format
14:33:09 <peter1138> Are you writing code to analyse it or not?
14:33:23 <peter1138> And I don't mean writing an LLM prompt.
14:34:59 <peter1138> File "/home/petern/src/grfbadges/generate.py", line 124, in write_badge
14:34:59 <peter1138> image = b.doc_sprite.make_rgba_image()
14:34:59 <peter1138> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
14:34:59 <peter1138> File "/usr/local/lib/python3.11/dist-packages/grf-0.3.1-py3.11.egg/grf/sprites.py", line 595, in make_rgba_image
14:34:59 <peter1138> img[not has_mask, :3] = rgb
14:35:00 <peter1138> ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
14:35:02 <peter1138> My python is rusty...
14:35:47 <peter1138> Actually that line isn't my code. Hmm.
14:36:08 <locosage> yeah, now I'm wondering what are you passing it
14:37:54 <andythenorth> peter1138: the LLM will be better at regex than me
14:39:23 <locosage> peter1138: can you share your code somewhere I'll take a look
14:39:41 <andythenorth> maybe I should just write some .split() .join() code
14:40:28 <andythenorth> there are lines in that table with merged cells
14:41:13 <andythenorth> `| align="center" colspan="2" | '''Deprecated Cargos'''`
14:41:22 <andythenorth> a wiki table, but with html attributes
14:41:31 <andythenorth> but you can't use libxml or anything
14:44:50 <xarick> There are the results for FIRS
14:45:44 <peter1138> Hmm, okay, it doesn't like my CC images.
14:47:21 <locosage> mask needs to be 2d array iirc
14:53:04 <peter1138> `img[not has_mask, :3] = rgb`
14:53:16 <peter1138> Is not valid there? It's not used anywhere else I can see.
14:56:13 <locosage> need to look at code
14:57:59 <peter1138> I replaced it with not_mask = (mask == 0) and now I get `ValueError: shape mismatch: value array of shape (20,20,3) could not be broadcast to indexing result of shape (0,3)`
14:59:32 <johnfranklin> I will place all these potable things with Mr Muscle (non-potable) in the same bag. Is this legal?
15:00:29 <locosage> peter1138: try ~mask instead of not mask
15:01:05 <locosage> though I guess == 0 would work the same..
15:01:12 <peter1138> Yeah that works (well, does the same as my tweak)
15:01:34 <peter1138> Maybe the `not mask` doesn't work if my shape is wrong...
15:01:43 <peter1138> Though I don't know what's wrong about it.
15:02:07 <locosage> nah, not mask is probably just wrong
15:02:21 <peter1138> This broadcasting magic is, well, magic to me
15:02:28 <peter1138> Which shape is which?
15:02:52 <locosage> that kinda looks like a code that was never tested ๐
15:03:10 <locosage> peter1138: what line is it even erroring on? the same?
15:03:50 <locosage> oh, rgb also needs [~mask]
15:04:46 <locosage> so like `img[~has_mask, :3] = rgb[~has_mask]`
15:05:40 <peter1138> Ah ha. That gets further, but not much.
15:05:56 <peter1138> File "/usr/local/lib/python3.11/dist-packages/grf-0.3.1-py3.11.egg/grf/sprites.py", line 597, in make_rgba_image
15:05:56 <peter1138> img[has_mask] = (openttd_adjust_brightness(grf.PALETTE[m], max(c)) for c, m in zip(rgb[has_mask], mask[has_mask]))
15:05:56 <peter1138> TypeError: int() argument must be a string, a bytes-like object or a real number, not 'generator'
15:06:11 <peter1138> I think this is... not me at this point ๐
15:07:19 <locosage> hm, where the heck is int() there xD
15:09:53 <locosage> ok, I think I got myself a test case
15:10:02 <brickblock19280> andythenorth: Sure, do you have a link that redirects to the latest firs docs code reference so I could direct people there?
15:11:38 <andythenorth> Iโll make one when I get home
15:11:52 <andythenorth> Cargos vary between versions
15:12:02 <peter1138> (dice branch, not merged into main yet because it's not compiling)
15:12:13 <brickblock19280> andythenorth: Thanks
15:14:32 <locosage> peter1138: pushed a fix, try now
15:22:13 <peter1138> Uhm. Now it fails is build/install. Hmm.
15:23:23 <xarick> any other industry sets I can test?
15:24:11 <peter1138> Ah, update nml version makes things break.
15:25:04 <peter1138> So then... nml 0.7.5 doesn't build/install?
15:26:04 <locosage> oh, right, I updated nml version
15:26:40 <peter1138> But other than that, yes it works now.
15:30:00 <peter1138> andythenorth: what exactly are these random dice. the stuff I have here is under "livery" because it's some kind of colour selector. But I know what's not how you use them.
15:45:04 <andythenorth> they do select vehicle appearance
15:48:05 <andythenorth> brickblock19280: this is generated based on redirecting to newest tag
15:48:10 <andythenorth> but that goes to a 5.0.0 beta
15:48:15 <andythenorth> dunno what the right thing to do is
15:48:48 <andythenorth> well I do, generate a list of all cargos seen by bananas
15:49:02 <andythenorth> but that's beyond my inclination to learn
15:55:55 <peter1138> So many sets use a icon to indicate that it is a "metro" or "underground" type vehicle.
15:56:16 <peter1138> They tend to use that instead of the steam/diesel/electric icons.
15:56:23 <peter1138> Because... metro is only metro?
15:57:08 <andythenorth> what do they look like? ๐
15:58:32 <xarick> results for default vanilla, temperate tileset
16:00:37 <peter1138> Love the high quality operator logos ๐
16:02:00 <peter1138> The 4 propulsion types, steam, diesel, electric and london underground.
16:02:07 <andythenorth> so is the question 'Is metro a power type"? ๐
16:03:58 <peter1138> Auz Trains NSW uses cargo icons on its wagons.
16:08:01 <peter1138> These icons would need a bit more work to get them into shape. Well, especially NS
16:08:48 <peter1138> And also there's the whole trademark thing.
16:10:23 <andythenorth> I'd leave those to individual grfs
16:11:33 <peter1138> I prefer to have some to establish a naming scheme, like how I used here (though that may not be final)
16:11:46 <andythenorth> I wonder if any are out of trademark
16:11:49 <xarick> can you increase size of attached files in the forums?
16:13:20 <peter1138> Perhaps historical logos of companies that went bust, but who knows.
16:13:33 <kuhnovic> Lessons learned today:
16:13:33 <kuhnovic> 1. Nanobench is awesome
16:13:33 <kuhnovic> 2. Don't forget to turn off CPU frequency scaling when you do benchmarks ๐
16:13:41 <peter1138> They often linger around and get revived later...
16:13:57 <peter1138> Dunno about 1, but 2, yes.
16:14:16 <peter1138> When your benchmarking says the more complex code is faster.
16:14:35 <peter1138> Becuase the simpler code didn't cause the CPU speed to jump.
16:15:14 <kuhnovic> Or when you compare the exact same implementation and one is reported as being faster...
16:15:22 <andythenorth> whether DfT would actually pursue removal by any other means than cease and desist is doubtful
16:15:28 <andythenorth> the double arrow is so widely reproduced
16:18:13 <peter1138> That is "different" because it was asking to use the logo as the main logo.
16:18:17 <xarick> my benchmarks are "real usage"
16:19:51 <peter1138> So is nanobench something that could replace our TicToc?
16:21:38 <kuhnovic> I think they both have their use cases. TicToc is more like "how long does this one thing take?". Nanobench automatically benchmarks a certain function by running it n times, and n is determined using some smart timing trickery.
16:22:22 *** ahyangyi has joined #openttd
16:22:22 <ahyangyi> Rail Symbol 2 is a registered trademark of the Department for Transport.
16:22:22 <ahyangyi> I'm mildly confused. I thought copyright and trademarks were two different kinds of intellectual properties?
16:22:52 <andythenorth> only the copyright holder can register a trademark afaik
16:23:32 <johnfranklin> We will be sued for drawing that double arrow?
16:26:45 <andythenorth> extremely unlikely
16:26:53 <peter1138> "Optional badges.grf"
16:26:56 <andythenorth> cease and desist is the most common route in these cases
16:29:38 <ahyangyi> Hmm, I think trademarks only applies to "goods of the same category"?
16:29:53 <ahyangyi> "Are we in the same cargo class?"
16:30:17 <andythenorth> copyright would also apply
16:30:40 <ahyangyi> Well, then don't copy the arrows and just draw them ourselves?
16:30:52 <ahyangyi> Nobody copies their arrows anyway
16:35:44 <peter1138> I guess I could make an index page for the docs.
16:37:27 <andythenorth> shall we invent train companies?
16:38:26 <andythenorth> are emoji safe to reproduce? I imagine they're font licensed
16:39:30 <andythenorth> operator/GB/corn
16:39:36 <andythenorth> operator/GB/unicorn
16:40:53 <andythenorth> that is very much appreciated
16:41:49 <peter1138> Someone will revert it right?
16:42:47 <peter1138> ahyangyi: Not really, at least not for logos.
16:43:03 <andythenorth> peter1138: Probably
16:43:14 <andythenorth> back to the old outdated, unmaintained but 'essential' information
16:43:29 <andythenorth> I love that people prefer whether something _seems_ heplful ๐
16:43:34 <andythenorth> even if it's actually just wrong
16:43:46 <peter1138> The problem with using trademarked stuff is the trademark owner HAS to enforce it.
16:43:51 <brickblock19280> I might add missing labels since they are useful if they have been used
16:44:05 <brickblock19280> but I won't add firs to them
16:44:29 <andythenorth> ideally we'd just keep deleting that page until some people collaborate to parse bananas
16:44:31 <peter1138> The page should just be a link to andy's autogenerated documentation.
16:46:01 <ahyangyi> andythenorth: There is at least one open source emoji font available
16:47:10 <peter1138> Nobody is actually going to use fantasy operator logos, so...
16:48:09 <ahyangyi> ๐๐ก๐๐๐๐๐ป
16:50:20 <andythenorth> hmm how to pull a grf from the API
16:53:03 <andythenorth> how will we keep track of grf-defined badges? ๐
16:56:09 *** gelignite has joined #openttd
16:57:13 <peter1138> Where shall we place the icons today?
16:58:23 <andythenorth> goes it throw out?
16:58:40 <andythenorth> you missed Horse dice
17:04:46 *** Wormnest has joined #openttd
17:08:58 <peter1138> AC 15kV, 20kV, 25kV
17:09:12 <peter1138> All sorts of distinctions that are fairly irrelevant.
17:09:15 <andythenorth> where is third rail?
17:09:31 <andythenorth> does anyone do brake type (vacuum, air, unbraked)
17:12:07 <peter1138> Something different
17:14:30 <peter1138> SVG is prefered for badges, yes.
17:16:31 <peter1138> Huh, I had forgotten about that feature.
17:16:50 <peter1138> It was quick test and it worked fine, but then I dropped it.
17:18:50 <peter1138> b.add(BADGE_CLASS_POWER + "/electric", "electric.svg", "STR_PROPULSION_ELECTRIC")
17:18:50 <peter1138> b.add(BADGE_CLASS_POWER + "/electric/ac", "electric_ac.svg", "STR_PROPULSION_ELECTRIC_AC")
17:18:50 <peter1138> b.add(BADGE_CLASS_POWER + "/electric/ac/15", "electric_ac_15.svg", "STR_PROPULSION_ELECTRIC_AC_15")
17:18:50 <peter1138> b.add(BADGE_CLASS_POWER + "/electric/ac/25", "electric_ac_25.svg", "STR_PROPULSION_ELECTRIC_AC_25")
17:18:57 <peter1138> Anyway, something like that is possible.
17:20:14 <michi_cc[d]> peter1138: You really have to ask that? ๐คฃ
17:20:36 <michi_cc[d]> In German that is called Nietenzรคhler ๐
17:27:53 *** andythenorth has quit IRC (autokilled: Possible spambot. Mail support@oftc.net if you think this is in error. (2024-11-16 17:27:53))
17:29:49 <peter1138> Bottom contact hurr hurr hurr
17:43:30 <peter1138> Any real operator 'logos' which are just simple letters?
17:43:45 <peter1138> More simple than the classic DB.
18:03:23 *** Flygon has quit IRC (Quit: A toaster's basically a soldering iron designed to toast bread)
18:20:46 <johnfranklin> TBH it seems fine
18:21:21 <johnfranklin> at least bit 7 fridge, bit 5 piece goods, bit 2 express, bit 3 armoured
18:21:26 <johnfranklin> ...wrong channel
18:53:29 <FLHerne> peter1138: greateranglia
18:54:10 <FLHerne> also GWR, although the W is bigger than the others
18:58:58 <FLHerne> I wonder if the Discord bridge does IRC colours :p
19:06:34 <peter1138> Do we need to define namespaces for badges-as-custom-metadat?
19:10:14 <squirejames> Well, "LNER" in text was used on locomotive tenders, but (as with the other railways of the big four) they had their own crest
19:12:59 <peter1138> Not really. If your GRFID is part of the string then it's pretty safe to say that it's "owned" by your set, and anyone else using it is doing so at their own risk.
19:13:07 <peter1138> But also, some thing might deserve some standardisation.
19:26:23 *** Tirili has quit IRC (Quit: Leaving)
19:48:09 <xarick> strange, I'm getting 94 seconds
19:48:42 <xarick> maybe industry town pairs was fast at something
20:08:32 <peter1138> Ah yes, steam heating or something.
20:15:18 <michi_cc[d]> In at least 9 different incompatible variations ๐
20:17:21 <johnfranklin> Is the plural form of โcabooseโ really โcabeeseโ?
20:17:48 <michi_cc[d]> Also, apparently typing 16 and some Unicode characters gets you spam-botted on the IRC side.
20:32:56 <johnfranklin> british school math teachers say "formulas" or "formulae"?
20:34:00 *** gelignite has quit IRC (Remote host closed the connection)
20:35:09 <squirejames> My maths teacher always said Formulae
20:36:32 <xarick> yay, new record 75317305
20:39:40 *** gelignite has joined #openttd
20:46:44 <xarick> 75 with my industry town messy structure
20:46:59 <xarick> or 94 with peter's tidy structure?
20:47:26 <peter1138> What is it with vanilla?
20:47:38 <xarick> if i recall 932 seconds
20:48:52 <peter1138> Will the new buyers keep it running?
20:50:15 <xarick> I have a funny overridden or whatever functions
20:51:21 <xarick> `static inline uint16_t GetIndustryTypeCount(IndustryType type, const Town *town = nullptr, Func func = [](const Industry *) { return true; })`
20:51:21 <xarick> `static inline uint16_t GetIndustryTypeCount(IndustryType type)`
20:51:21 <xarick> How will OpenTTD decide which one to call if there's only one argument?
20:52:07 <xarick> both can accept 1 argument
20:53:31 <_jgr_> There's an easy way to find out...
20:56:53 <_glx_> compiler might complain
20:58:12 <xarick> TryBuildNewIndustry wow this thing has TryBuildNewIndustry 5 times
21:06:27 <xarick> oh, it's not used during map gen
21:08:12 <xarick> gonna try where I think it can still have some wins
21:15:31 *** NGC3982 has quit IRC (Quit: leaving)
21:42:50 <peter1138> Urgh, so tired suddenly
21:56:51 *** nielsm has quit IRC (Ping timeout: 480 seconds)
21:59:58 <xarick> could TicToc be misreporting ?
22:01:45 *** Wormnest has quit IRC (Ping timeout: 480 seconds)
22:03:31 <xarick> some oddities happening
22:27:55 *** Wormnest has joined #openttd
22:28:47 *** Wolf01 has quit IRC (Quit: Once again the world is quick to bury me.)
22:33:52 <xarick> omg TicToc has been giving me wrong results
22:35:01 <xarick> could the so called optimizations influence ...
22:44:38 <peter1138> As we keep saying, it's not accurate when the thing you're measuring is tiny.
22:49:13 <peter1138> So I have two checkouts of OpenTTD.
22:49:22 <peter1138> I have VS Code opened on one of them.
22:49:35 <peter1138> I've also had VS Code opened on the other one at some point.
22:49:53 <peter1138> When I search inside my normal checkout, VS Code is returning results from both.
22:54:00 *** virtualrandomnumber has joined #openttd
22:56:38 *** keikoz has quit IRC (Ping timeout: 480 seconds)
22:59:49 *** virtualrandomnumber has quit IRC (Quit: virtualrandomnumber)
23:02:14 <xarick> question, how do I get the return values from a tuple applied to each variable in the caller
23:04:18 <xarick> [closest_dist, count] = CountIndustryMatchingTypeAndLayout(ind_index, layout_filter, town_filter, current); doesn't work
23:28:40 <xarick> either I copied the wrong values, or TicToc misassigns
23:29:03 <xarick> or there's some optimizations getting in the way
23:41:39 *** gelignite has quit IRC (Quit: Stay safe!)
continue to next day โต