IRC logs for #openttd on OFTC at 2022-12-20
โด go to previous day
00:00:10 <dP> hmm, can I somehow sneak `_callback_tuple` out of `network_commands.cpp` without duplicating it?
00:01:32 <JGR> You'd still get stuck on the type filtering which seems to be happening in MakeUnpackNetworkCommandCallback, etc
00:02:15 <dP> I can deal with types myself, I need it a bit different anyway
00:02:25 <dP> just need to somehow sneak out that constexpr
00:03:27 <JGR> I mean that `NetworkGameSocketHandler::ReceiveCommand` on the server will filter it
00:03:50 <JGR> If I understand right what it is doing
00:04:56 <dP> you mean callback? yeah, I was talking about that above
00:05:06 <dP> I need callback table for a slightly different issue
00:05:19 <dP> I want to store vanilla callback in a struct
00:05:24 <dP> but they come in different types
00:07:02 <JGR> You can probably delete the static from FindCallbackIndex and just store the index
00:07:43 <dP> yeah but then I still need that constexpr to restore the type
00:08:19 <petern> Random flipping magic ๐
00:08:26 <JGR> You could move the whole table into a header file
00:08:27 <dP> I don't want to write my own Post that skips un-indexing them
00:08:35 <JGR> Assuming the linker doesn't get upset
00:09:46 <dP> if I move it it will be a pain to track when merging
00:10:04 <JGR> Callbacks aren't added very often
00:10:21 <dP> anyway, I already have a code generator that parses _cmd.h files, might as well make my own table
00:10:39 <JGR> Merge conflicts are an everyday thing for me ๐
00:11:12 <dP> aint much different here either :p
00:11:36 <dP> just want to have as few places where things can go wrong as possible
00:19:10 <petern> Thanks for not embedding :/
00:24:36 <petern> Hmm, can I set an offset for the mouse-cursor-is-a-vehicle mode...
00:39:59 *** arikover` has joined #openttd
00:42:56 *** Tirili has quit IRC (Ping timeout: 480 seconds)
00:47:08 *** arikover has quit IRC (Ping timeout: 480 seconds)
00:57:20 *** Wormnest has quit IRC (Ping timeout: 480 seconds)
01:27:26 <petern> andy needs to wake up and finish IH ๐
01:27:42 <reldred> America horse America horse
01:28:51 <petern> TBH, I'm surprised and totally unsurprised that the main part of the fix is to... you know... reverse the direction before setting up the offsets.
01:30:14 <petern> Also it's 1:30, I should at least not eat anything
01:33:11 *** Wormnest has joined #openttd
01:51:20 *** Tirili has quit IRC (Quit: Leaving)
01:52:53 *** wallabra has joined #openttd
02:08:58 *** wallabra has quit IRC (Ping timeout: 480 seconds)
02:53:53 *** Wormnest has quit IRC (Ping timeout: 480 seconds)
03:05:19 *** Wormnest has joined #openttd
03:05:23 *** Wormnest has quit IRC (Read error: Connection reset by peer)
03:12:29 <Pruple> #10233 working as advertised ๐
03:49:54 *** debdog has quit IRC (Ping timeout: 480 seconds)
04:55:56 *** D-HUND is now known as debdog
07:13:11 *** sla_ro|master has joined #openttd
07:53:35 <andythenorth> What needs finished?
08:33:16 <andythenorth> shall we water up petern ?
08:43:55 <petern> (you actually did, thanks)
08:45:42 <petern> Larks, Windows updates
08:46:27 <andythenorth> discord has notifications? ๐ฎ
08:53:38 <petern> My linter is in US English ๐ฆ
08:54:24 <andythenorth> why am I drawing so many mail vans
08:55:11 <petern> You should drop half your action 1s
08:55:30 <andythenorth> might compile as much as 4 seconds faster
08:55:59 <andythenorth> have they merged it yet?
09:03:55 <petern> Reduce act1s, increase act3s ๐
09:05:16 * andythenorth making things up
09:05:43 <petern> It basically is. Unless you use wagon overrides.
09:07:24 <petern> Each engine has a vector of overrides, and each override has a vector of Engine IDs.
09:07:52 <petern> At least it's vectors now instead of manual memory allocation.
09:14:32 <petern> That's not something I want to go through...
09:15:15 <JustANortherner> These are the best sort of messages to get
09:15:41 <JustANortherner> Had to go through a Fire Safety thing the other week which was just a load of bullshit...
09:16:35 <JustANortherner> Effectively "don't set shit on fire, if you do, raise the alarm, fight it if you're trained on how to use an extinguisher, if not, get out"...
09:27:58 <andythenorth> petern: Christmassy
09:34:08 <petern> Please find bugs in #10262. Or rather don't ๐
09:41:43 <LordAro> petern: did you try timberwolf's trains? they're the strangest ones i'm aware of
09:43:12 <petern> I realised afterwards that it wouldn't come through on IRC ๐
09:45:18 <petern> Timberwolf's are all articulated so can't be flipped.
10:11:43 <TallTyler> andythenorth: Looking at this, I really wonder if itโs possible to add vanilla support for โbuy a random variant from this stackโ
10:12:17 <TallTyler> It seems possible and logical to the player, the question is exactly how
10:12:37 <TallTyler> Ctrl-click is already used to hide vehicles
10:13:02 <TallTyler> Would people be confused if buying a vehicle with the list collapsed chooses a random variant?
10:13:36 <TallTyler> Also that might not work well if people use variants for changes other than liveries, for example different size vehicles
10:14:05 <nielsm> that sounds like a bad idea
10:14:21 <nielsm> if you want random liveries just use the existing mechanisms for that
10:14:23 <TallTyler> Ctrl-click on Buy button with the parent variant selected?
10:14:36 <TallTyler> Existing mechanisms = Andy magic though
10:14:56 <petern> The 'issue' with that is you then have 2 ways to do something, extra work on the author and the player.
10:15:15 <nielsm> is it? getting random bits on the vehicle and using those to select the graphics is one of the original intentions of the newgrf vehicles spec
10:17:31 <petern> Yes but if the author wants to allow both explicit upfront selection, and also randomisation, then they have to add both ways.
10:18:50 <petern> I like randomisation as I don't have to make a choice (it's bad enough choosing dinner), but I do understand the need to choose with real-world liveries.
10:20:11 <TallTyler> My motivation is the same ๐
10:21:54 <dP> hm, so with variants you can't just repaint the livery and have to sell and buy a new vehicle?
10:22:56 <petern> You can autoreplace I guess.
10:23:06 <andythenorth> autorepaint ๐
10:23:11 <petern> There's no instrinc notion that variants are "the same" engine.
10:23:51 <TallTyler> Autoreplace seems much better to me than manually repainting (since you canโt autorefit with orders to replace)
10:23:54 <dP> I kinda feel like having a separate id is a wrong approach to liveries
10:23:59 <dP> it follows different logic
10:24:49 <TallTyler> This feature isnโt explicitly for liveries through, it could be abused by grf authors in different ways too ๐
10:24:49 <andythenorth> well...in 14 years of grf....I've not seen a viable alternative
10:25:00 <andythenorth> not even seen a viable suggestion, nvm a PR
10:26:02 <dP> in theory you could generate a tree from cargo subtypes
10:26:53 <andythenorth> in theory...many things
10:27:22 <dP> if we follow real world logic variants would be like different models of similar wagon grouped to simplify the ui
10:27:24 <andythenorth> IDs are cheap, worse is better
10:29:43 <TallTyler> dP: That also works though?
10:30:11 <TallTyler> Actually, you could put whatever you want as variants, they donโt technically need to be similar ๐
10:30:22 <dP> yeah, probably, but sounds awful lot like what cargo subtypes were supposed to be
10:30:53 <andythenorth> cargo subtypes were just Yet Another Workaround to TTDP limitations
10:31:07 <andythenorth> ran out of IDs -> fragment what the vehicles can be
10:31:13 <petern> We've had 15(?) years of cargo subtypes causing issues ๐
10:31:14 <andythenorth> add a junk UI -> profit
10:31:56 <dP> it's not like cargo subtypes are going anywhere ;)
10:32:17 <andythenorth> petern: do we need more IDs?
10:32:18 <petern> Yes, they haven't gone anywhere.
10:32:24 <dP> you just add like a second way to do them :p
10:32:34 <andythenorth> feel like we might run out of IDs
10:32:36 <petern> andythenorth: There's a patch for that.
10:33:08 *** nielsm has quit IRC (Ping timeout: 480 seconds)
10:33:21 <andythenorth> I am worried we'll run out
10:33:59 <petern> (If you missed the meaning of not gone anywhere -- haven't progressed)
10:34:21 <dP> TallTyler: it's kind of the same problem with cargo subtypes, you can put whatever you want but without a sound logic behind it all ends up being counter-intuitive and abandoned
10:34:51 <andythenorth> cargo subtypes are shit
10:34:59 <andythenorth> that's why it's abandoned ๐
10:35:48 <andythenorth> presenting UI choices for individual vehicles as a union of the available subtypes in the consist...is fucking stupid ๐
10:36:07 <andythenorth> it makes sense...not even for cargos
10:36:21 <dP> again, it's all in the ui, technically subtypes are just another way to add variants
10:36:43 <andythenorth> no, because there's no way to autoreplace to a different subtype
10:36:48 <andythenorth> and frosch believes there never can be
10:37:54 <dP> hm, so the goal is to autoreplace liveries?
10:38:15 <TallTyler> And allow choosing them before purchasing
10:38:17 <dP> also, sounds like a technical issue with subtypes or autoreplace implementation
10:38:19 <andythenorth> the capability to do UI design in the game is nearly non-existent
10:38:25 <andythenorth> so we need to work with the existing UIs
10:39:00 <petern> andythenorth: thanks I like your confidence in our design ๐ฆ
10:39:38 <petern> Subtypes are not available until an engine has been purchase and exists as vehicle. This is a huge barrier.
10:40:29 <petern> What subtypes that are available can change based on callbacks, so (and do) can change at any time.
10:40:37 <dP> changing newgrf spec instead of ui sounds very wrong :p
10:40:51 <dP> ui changes come and go, spec changes are to stay there forever
10:41:14 <andythenorth> petern: sorry, I'll put it better: we're a bit hit and miss on UI design, historically
10:41:34 <petern> andythenorth: Btw, did the orange tabs look better? :p
10:42:28 <TallTyler> Also good luck changing UI design and not getting enormous pushback from players (unless youโre simply adding things, and then they complain about the new window being too big), so itโs not like UI is a sandbox either
10:42:56 <petern> petern: ^ This one ๐
10:43:02 <dP> TallTyler: you say it like variants don't change ui :p
10:43:42 <TallTyler> No, I know itโs a big change but I was referring to `ui changes come and go, spec changes are to stay there forever`
10:44:00 <TallTyler> Iโm still not a fan of orange buttons
10:44:19 <petern> I had grey buttons, they're almost invisible.
10:44:59 <petern> I even had fake-tabs (which could look nicer with a bit of over-painting) but they're not really in the style of OpenTTD.
10:45:03 <TallTyler> I havenโt seen the grey button mock-up, but I wonder if a different button background (darker grey?) would make them look more like tabs
10:45:44 <TallTyler> We have tabs in vehicle details but those are smaller and at the bottom
10:46:57 <TallTyler> I like the design of those but I see how theyโd be invisible without the green background
10:47:08 <TallTyler> I donโt hate orange, just slightly dislike it ๐
10:47:29 <TallTyler> I think youโve shown me TTD windows that had mixed colour buttons?
10:48:13 <petern> ai/gamescript/newgrf have both yellow and mauve buttons
10:48:45 <TallTyler> I should boot up OpenTTD
10:48:49 <petern> (Not sure why game script settings needs a Close button)
10:49:28 <petern> Scrollbars are kinda buttons
10:50:28 <petern> afaik it's only worldgen that has 2 buttons colours both different from the background
10:50:45 <petern> And that case is to highlight the important button
10:51:48 <dP> petern: hm, yeah, that sounds like a showstopper
10:52:31 <dP> I guess my main issue with variants is that they seem to follow the logic of what can be done simply rather than what is actually needed.
10:56:46 <dP> am I reading it right that two totally unrelated engines can be declared variants?
10:56:51 <TallTyler> Sometimes that's how it has to work? ๐ค
10:57:23 <TallTyler> dP: Sometimes that's how it has to work? ๐ค
11:01:20 <andythenorth> the main criteria is: does X increase lolz?
11:01:25 <andythenorth> variants increases lolz, at low cost
11:01:29 <andythenorth> therefore it's good
11:02:40 <JGR> dP: It requires that NewGRF authors use it in a reasonable way
11:02:41 <dP> lolz in spec are only good until you need to use them :p
11:03:07 <JGR> Which is true for large chunks of the specification
11:04:37 <JGR> In general making is easier for NewGRF authors to express reasonable things is positive
11:06:38 <dP> yeah, newgrf authors are known for their reasonableness :p
11:07:12 <reldred> HEY I haven't thrown a public tantrum lately
11:07:12 <JGR> The spec is just a means to an end
11:07:13 <TallTyler> I feel targeted ๐
11:08:27 <andythenorth> variants just creates a virtual group, it has no other effect
11:08:46 <andythenorth> any patchpack that really hates it could just drop the action 0 prop
11:08:50 <andythenorth> and it will stop
11:08:51 <dP> yeah, but if you read the pr they claim to do liveries
11:09:06 <dP> and my first question to that if it's livery why can't I repaint the engine?
11:09:20 <andythenorth> because nobody made a painting tool
11:09:29 <andythenorth> every idea I proposed was shot down
11:09:59 <andythenorth> every idea anybody else proposed was shot down
11:12:13 <JGR> I'm not sure that's the right thing for a mostly sandbox game ๐
11:14:06 <JGR> Maybe we should take a leaf from the world of work, steering groups to steer the other steering groups
11:14:45 <dP> andythenorth: well, adding another sub-optimal way to do it will make implementing any sane idea even harder
11:15:31 <JGR> Not really in this case, you can just not use the feature if something amazing is invented in the far future
11:16:09 <andythenorth> the constraints for liveries
11:16:22 <andythenorth> 1. must be settable per vehicle
11:16:31 <andythenorth> 2. must be settable without a trip to another menu / UI window
11:16:41 <andythenorth> 3. must be settable for a whole train
11:16:58 <andythenorth> 5. must be settable per group
11:17:04 <andythenorth> 5. must be settable for all trains of type X
11:17:20 <andythenorth> 6. cannot use a livery painter tool in depot
11:17:29 <dP> JGR: no, imagine a perfect way to do liveries is added and you need to show them in buy ui. but you can't do tree because tree is already taken by variants
11:17:31 <andythenorth> if you can meet that, GG
11:19:42 <dP> i'd expect the opposite, if I have veh in depot sounds logical to be able to repaint it to whatever
11:20:17 <Brickblock1> dP: this could be fixed with a button to change between variants and liveries but I agree that it makes it harder to make a new system fit in.
11:23:33 <andythenorth> 6. I never understood why
11:23:37 <andythenorth> but we don't have a livery painter
11:23:55 <andythenorth> Iron Horse current release has a hidden livery painter
11:25:38 <petern> dP: No reason another tree from the variant wouldn't work.
11:25:41 <andythenorth> hmm what was I doing?
11:25:53 <andythenorth> did I need to test action 1 removal?
11:26:01 <petern> Nobody ever said 6 did they?
11:26:31 <andythenorth> I suspect they did not
11:26:37 <petern> Unless "livery painter" was about choosing a CC per vehicle part.
11:26:40 <andythenorth> 6 might be a porky pie
11:26:50 <petern> Which is doable but not really related to liveries
11:26:53 <dP> petern: in this example maybe, but you still need to figure out the interaction between two features that way
11:26:58 <petern> (Unless you hide liveries behind CC)
11:27:03 <andythenorth> who would do that?
11:27:11 <andythenorth> or behind ctrl-click?
11:27:21 <andythenorth> or behind magically-adapting-to-the-engine
11:27:31 <andythenorth> I did make a version with combinatorial logic once
11:27:37 <petern> That's a well-known concept dating back to the early days ๐
11:27:45 <andythenorth> which read the flip state of nearby vehicles
11:27:55 <andythenorth> then set consist livery appropriately
11:28:11 <andythenorth> 'number of liveries increases with train length'
11:28:36 <andythenorth> I think I concluded there could only be 4, and it would have to rely on flip state of first and last vehicles
11:28:59 <petern> Someone could perhaps allow "individual autoreplace" inside a depot to allow "repainting" a variant to another variant.
11:29:01 <andythenorth> wonder if I videoed those
11:29:13 <petern> It's effectively a short-cut for sell & buy.
11:29:41 <petern> (But why bother when autoreplace can already do it?)
11:29:42 <andythenorth> oh I animated Horse steam engine wheels once
11:30:00 <petern> Cool, you can reduce your action 1s and then add more action 1s.
11:32:24 <dP> petern: and that what makes it divert from livery logic. for example, what if you want to repaint but don't have the money to buy a new vehile?
11:32:45 <dP> surely, repaint should cost less that buying a new one, right?
11:33:08 <andythenorth> subtype refitting sets are available
11:33:16 <pickpacket> So... I'm back on Debian Stable... testing kept breaking things. I guess the way to run the latest OpenTTD now is to either compile myself or get a static compile for i386 somewhere. What's the compile time like?
11:33:17 <andythenorth> pls choose an alternative grf
11:33:57 <petern> Should we add a flag to variants to say "this variant is just a livery"
11:34:02 <petern> Even if we don't use it yet.
11:34:07 <dP> dP: on a plus side though red trains can finally go faster xD
11:34:45 <petern> Then it would be possible to implement logic that allows switching same-variant-liveries without the normal sell & buy process.
11:35:16 <petern> Adding a flag for a "potential future use" is maybe not a good idea though.
11:35:51 <dP> yeah, if it's potential use make a potential flag xD
11:36:14 <petern> You have the issue then that you can autoreplace to change, and "potential future use" to change
11:36:27 <petern> "why does one cost more?"
11:37:02 <andythenorth> when selling a vehicle, there's no income?
11:37:06 <petern> Although you could make autoreplace understand "potential future use" and rely on autorenew to do its thing.
11:37:28 <andythenorth> colour me surprised
11:37:30 <dP> but it drops quickly with age
11:37:35 <andythenorth> so what's the net cost of changing paint scheme?
11:37:55 <dP> and you need some money in reserve for autoreplace to work
11:37:55 <petern> Depends how old the vehicle is ๐
11:38:14 <Brickblock1> one hundredth of purchase cost?
11:38:17 <andythenorth> no money -> no new paint
11:38:21 <andythenorth> money -> new paint
11:38:28 <petern> You need money to paint, tbh ๐
11:38:37 <petern> Just not the same amount as a new engine.
11:41:25 <petern> Man came around "can I take your scrap metal?"
11:42:21 <dP> petern: just tell him to grow his own town
11:42:28 <petern> I said no because they need licenses and stuff to that commercially, and I'm not risking it with a random guy with a thick accent I can barely understand.
11:43:25 <petern> My scrap metal is an old metal washing line that's bent, a broken lawnmower, and I really should have taken it to the tip last time I went ๐
11:45:07 <andythenorth> how much would it cost you to repaint it?
11:46:03 <dP> petern: somehow I'm already thinking how to abuse that xD
11:46:20 <petern> It's not abuse if the author intended it.
11:47:03 <dP> wouldn't work with my racing train upgrades though unless it's a separate network command for livery change
11:47:09 <petern> andythenorth: half the file size with fixed reversing logic?
11:47:28 <petern> I don't know what that is.
11:47:47 <andythenorth> I didn't patch out all the action 1s yet ๐
11:48:12 <andythenorth> that branch will have a bad time with my variants branch ๐
11:48:21 <petern> They are at least automatically created though, rather than actual duplicate sprites?
11:51:33 <petern> > note 443MB (381,248 recs)
11:51:33 <petern> > drive_file 273MB (172,657 recs)
11:51:33 <petern> > user 99MB (73,890 recs)
11:51:48 <petern> Single-user fediverse instance gobbling space
11:57:19 <dP> right, so what was I doing before I went to read chat while it compiles and got distracted by variants....
11:59:01 <dP> I miss my desktop compile times xD
11:59:20 <pickpacket> I'm trying to compile (for the first time) but cmake can't find SDL2Config.cmake :( Is that a file that can be found in my system somewhere or a file I need to write myself?
11:59:35 <dP> 20 seconds wasn't that much time to completely forget what I was doing
11:59:45 <petern> pickpacket: You can download a prebuilt Debian package if you want.
12:00:11 <pickpacket> petern: only for x86_64, right? I'm running 32bit
12:01:13 <petern> Can we start a fundraiser to get pickpocket a 64bit computer?
12:01:29 <pickpacket> If I wanted a new computer I'd buy one.
12:01:56 <pickpacket> I'm happy with this one and I'm not about to throw away a perfectly functioning computer :)
12:02:50 <petern> Anyway, if you are missing dependencies then COMPILING.md
12:03:05 <petern> On Debian you want to install the related -dev packages.
12:04:56 <pickpacket> I did read. And I installed the dependencies :) Just not the dev packages
12:05:19 <petern> I added that because I missed it out originally. Not to be mean.
12:06:42 <petern> I accidentally the whole verb.
12:09:35 <andythenorth> I should test #10262
12:15:26 <petern> Try not to hit the 4GB limit ๐
12:15:38 <petern> I remember when that seemed massive.
12:15:41 <pickpacket> but where'd the executable or deb package go?
12:15:51 <pickpacket> yeah, I remember too
12:16:10 <pickpacket> wasn't even that long ago. Just 20 years or so
12:16:26 <petern> Probably in the bin directory under your build directory.
12:16:36 <pickpacket> I thought so too :(
12:18:29 <petern> Did you build it your just complete cmake config?
12:18:37 <pickpacket> the build log doesn't report any errors, though there were some things that couldn't be found (grfcodec, for example)
12:18:46 <TallTyler> My default build is in out/build/x64-Debug default)
12:19:24 <petern> I'm too used to Discord edits now, it's andy's fault.
12:19:24 <LordAro> sounds like you haven't actually built it yet
12:19:55 <pickpacket> petern: ~/Code/official-openttd/OpenTTD/build $ cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo ..
12:20:08 <LordAro> (a maximum of) 10 minutes seems very fast for a 32bit computer
12:20:11 <petern> You then need to run make.
12:20:40 <pickpacket> I also need to download the grfcodec, of course
12:21:04 <LordAro> unless you actually want to modify the base extra grf
12:22:00 <dP> petern: `make -j` if you want it to finish in this century xD
12:22:20 <petern> It's 32 bit, likely is single core.
12:22:43 <LordAro> it could just be a 32bit install
12:23:24 <petern> They just reinstalled, so unlikely ๐
12:24:02 <LordAro> that's no guarantee of anything :p
12:24:16 <pickpacket> 32bit Atom processor. It was a budget computer back in 2015 when I bought it
12:24:52 <LordAro> i suppose it might have more than one core
12:24:53 <pickpacket> the build is already 44% complete according to the output :)
12:25:11 <LordAro> `nproc` would tell you
12:25:36 <LordAro> dP: -j without any numbers can be dangerous, as it'll just queue as many jobs as it can
12:25:43 <LordAro> which can very easily overwhelm computers
12:25:58 <petern> N550 / N570 are dual-core
12:26:02 <petern> Oh, they're also 64 bit.
12:26:52 <petern> Maybe wikipedia is wrong, I'm sure these were not 64 bit.
12:26:55 <dP> LordAro: oh, so that's a feature, I thought it did nproc
12:27:04 <dP> that explains why it kills my laptop xD
12:27:23 <andythenorth> petern: 10262 builds, that's enough, right? ๐
12:27:40 <pickpacket> LordAro: it claims 4 cores, but I call bullshit...
12:27:43 <LordAro> i once managed to run -j1200 by accident (nested make processes..)
12:27:54 <LordAro> pickpacket: well, -j4 is an option then
12:28:10 <LordAro> you probably won't be able to do much else while running, mind
12:28:27 <pickpacket> kinnda used to that, tbh
12:28:47 <pickpacket> can't leave a youtube tab open for too long in any web browser
12:29:19 <petern> Ah Z25xx an Z2760 are 32 bit with 2 cores and hyper-threading, from 2013.
12:29:48 <glx[d]> Well 2GB is what a single tab will eat ๐
12:30:22 <petern> My VS Code is currently at 3.6GB. Somehow that's the largest process today.
12:31:00 <petern> Only using 20GB out of 64GB. Mind you it did restart this morning.
12:31:45 <petern> At least, the chip does. Maybe the system nerfed it.
12:32:10 <petern> 64 bit with only 2GB RAM might be wasteful anyway ๐
12:32:39 <pickpacket> I've accidentally put a Ubuntu 86_64 live USB stick in it, and that wouldn't boot at all
12:33:04 <glx[d]> Shared with "GPU" I guess
12:33:32 <petern> Remember the original netbooks...?
12:34:02 <pickpacket> the second gen, with the Intel Celeron M processor and the 9" screen
12:34:15 <pickpacket> the one with the Atom processor was released pretty soon after
12:34:29 <pickpacket> loved that little thing
12:34:59 <andythenorth> petern: 10262 works for me ๐
12:35:31 <LordAro> length of vararg template parameters
12:36:06 <dP> that freaking thing breaks even links xD
12:36:17 <dP> tried to google it also before asking xD
12:37:25 <petern> Doesn't really seem related to sizeof() tbh. Silly cpp specs.
12:38:33 <dP> I wrote some templates, now I dread hitting compile...
12:39:08 <petern> Hmm, definitely still feeling a bit off. Maybe menopause.
12:40:36 <andythenorth> I am still covid +ve
12:40:48 <andythenorth> right what shall we do today?
12:40:56 <dP> at least my laptop doesn't go to 100 degrees on compile after I cleaned it
12:41:25 <petern> Should I install Debian on my "new" Laptop?
12:41:35 <andythenorth> who can merge 10262? ๐
12:41:57 <petern> It's got Windows on it atm and it's a bit slow.
12:42:44 <LordAro> andythenorth: i am covid -ve, yet still ill
12:46:28 <petern> Hmm, my Christmas tree is dropping needles.
12:47:18 <petern> Which is a feat, as it's not real
12:47:38 <TallTyler> Have you been watering it with sufficient fake water?
12:47:56 <petern> Oh, this is the wrong laptop.
12:49:28 <dP> oh dear, compile errors overflowed the console buffer
12:54:06 <andythenorth> can 10262 yolo? or is it some kind of community management needed?
12:54:45 <LordAro> i'd like someone with knowledge of grf to review it
12:54:48 <andythenorth> existing grfs ...are probably less broken....in most cases?
13:07:29 <TallTyler> Okay, need some help here because I'm stuck stuck. I'm adding a scrollbar to the company infrastructure GUI but the `DrawPixelInfo` clipping region isn't sized properly, either vertically or horizontally (see the clipped text in the screenshot, and of course the completely missing total widget). When I comment out that code, it works fine.
13:09:33 <TallTyler> Big differences between my commit and JGRs are all the chunky bevel changes, as well as continuing to use `Rect r` instead of `int width` in `DrawCountLine()` - changing that draws part of the count widget but does not fix it entirely.
13:40:55 *** Markk has quit IRC (Ping timeout: 480 seconds)
13:40:55 *** Markk_ is now known as Markk
13:50:04 <LordAro> oh hey, that was definitely me
13:51:09 <LordAro> sure? i did both max -> std::max, and made dropdown heights(?) unsigned
13:53:03 <petern> Nope, the std::max was still int until UI scaling, as the WD...Verticaul() returns uint.
13:53:20 <andythenorth> ok more variants?
13:53:30 * andythenorth forgot what was supposed to be getting done
13:53:39 <andythenorth> wasn't there NRT Road Hog to do?
13:53:49 <andythenorth> hmm variants for road vehicles
13:54:19 <petern> Hmm, potentially the earlier one should be handled too, oops
13:55:08 <petern> I don't think that one can underflow though.
13:57:34 <petern> What was that shortening? 3/7ths
14:19:49 <andythenorth> wrong branch ๐
14:29:25 <andythenorth> tried loading variants grf in action-1-removal openttd ๐
14:32:04 *** WormnestAndroid has quit IRC (Remote host closed the connection)
15:01:50 <andythenorth> hmm white pixels
15:01:54 <andythenorth> who added those to Horse?
15:02:27 <andythenorth> such narrow liveries meanwhile
15:03:32 <andythenorth> hmm this red isn't consistent
15:03:46 <andythenorth> the vans look different to the railcar
15:19:13 *** WormnestAndroid has joined #openttd
15:32:46 <andythenorth> OpenTTD looks like it will be done soon?
15:35:11 <Pruple> still need to add smoke deflectors to the bevels
15:46:02 <Pruple> maybe I should learn to do the OpenTTD
15:46:25 <Pruple> try and implement some trivial stuff ๐
15:49:46 <dP> and that's a somewhat optimized version already xD
15:49:50 * andythenorth implements 'tidying the house'
15:54:59 <Pruple> or I could just keep doing "it's a bug that this feature is missing" bug reports, seems to be working so far this week ๐
15:55:18 <TallTyler> I can recommend "learning to do the OpenTTD"
15:58:09 <LordAro> dP: what exactly am i looking at?
15:58:52 <TallTyler> Hmm, police chased someone down the street in front of my apartment with guns drawn a few minutes ago, now they have bigger guns and dogs. Maybe I don't want to be here for a while.
16:01:20 <dP> LordAro: well, I needed a command container so I decided to auto-generate some polymorphic classes since I'm too lazy to figure out how to do that with templates, but then I noticed that callback is templated and all hell broke lose xD
16:07:20 <andythenorth> ok this fancy livery then?
16:10:20 <petern> Why the brake van there?
16:11:35 <petern> LordAro, in terms of what he is trying to achieve, rather than what he's done... he needs custom command callbacks, and the new template command system cut that off from working, I think.
16:11:56 <petern> At least, that's one part of it.
16:12:32 <dP> That's not the part I did there though xD
16:13:40 <dP> there I was making code like this possible:
16:14:36 <andythenorth> petern: chlorine tankers, you wouldn't want your pixel driver to risk death now
16:14:45 <andythenorth> that brake van makes all the difference in a crash
16:14:59 <dP> admittedly that could've been done with lambdas but i also need ability to store commands for other stuff
16:20:37 <andythenorth> maybe later ๐
16:20:58 <andythenorth> 30% discount on replacing within variant group? ๐
16:21:01 <andythenorth> then base cost for that
16:22:33 <petern> Without knowing what a flag might do it's tricky
16:28:11 <andythenorth> did Aro approve the variants patch yet? ๐
16:28:30 <LordAro> i am not someone who knows grf well enough to go near that
16:30:00 <petern> I should rebase and squash some of the commits.
16:34:21 <andythenorth> CC for the flashes, or realistic blue?
16:36:01 <andythenorth> can always use group colour for realisticism
16:40:40 <petern> Group colour is useless remember
16:42:21 <andythenorth> something something disagree
16:43:07 <petern> It was the best thing since sliced bread, but also the worst thing.
16:43:33 <andythenorth> hmm sliced bread
16:43:56 <andythenorth> if we buy loaves for a bit, my kids think they're the best thing ever, much better than sliced bread
16:44:07 <andythenorth> then if we switch back to sliced bread, it's the best thing ever again
16:46:24 <andythenorth> oof Horse was supposed to not have asymmetrical liveries on symmetrical vehicles
16:47:24 <andythenorth> requires greater drawing skill ๐
16:47:58 <andythenorth> well this seems to work
16:50:39 <petern> Or you just drew it wrong?
16:52:56 <andythenorth> new Horse: 1:1 accuracy
16:53:06 <andythenorth> total fidelity to RL
16:53:42 <andythenorth> all your vans of mail
16:54:16 <andythenorth> looks like metro eh
16:54:20 <petern> They're all the same. Random may be nice after all ๐
16:54:44 <andythenorth> I'll do a random mail thing
16:54:56 <petern> Is this variants or flipping?
16:55:00 <andythenorth> this is variants
16:57:38 <andythenorth> 6 more mail vans to add liveries to
16:57:41 <andythenorth> and some railcars
16:58:04 <andythenorth> if this PR goes off to die, I'll be doing my own patchpack ๐
17:10:49 *** wallabra has joined #openttd
17:13:13 <petern> Problem with allowing separate font size in game is it makes the UI go all wonky again.
17:16:22 *** wallabra has joined #openttd
17:22:15 *** Flygon has quit IRC (Quit: A toaster's basically a soldering iron designed to toast bread)
17:35:00 <petern> Of course you can do this with the config anyway. Hm.
17:54:13 <TallTyler> andythenorth: Thereโs a couple bugs reported in the PR, including cargo filter not working for non-train vehicle types
18:23:53 <glx[d]> hmm so it's an AI building a vehicle, and tile is {value=0xffffffff }
18:24:22 <petern> AI sent an incorrect command?
18:26:07 <glx[d]> there should be validation
18:26:28 <glx[d]> seems we don't have map size in the log
18:34:23 <glx[d]> hmm but the tile is not validated it seems
18:39:13 <glx[d]> doc says "The tile at depot has a depot that can build the engine and is owned by you. " as precondition but I don't see any check
18:41:08 *** gelignite has joined #openttd
18:42:07 <DorpsGek> - Update: Translations from eints (by translators)
18:45:33 *** wallabra has quit IRC (Ping timeout: 480 seconds)
18:48:40 <petern> Missing check with the new command system?
18:48:50 *** wallabra has joined #openttd
18:49:29 <petern> TileIndex is implicitly checked somewhere apparently, but perhaps not for AI commands?
18:51:33 *** ag has quit IRC (Quit: User went offline on Discord a while ago)
18:59:10 <TallTyler> Hmm, commands can't call other commands? I got a `IsTopLevel()` assert trying to change all timetable waiting times at once
18:59:54 <TallTyler> Any way to avoid it? Just use a regular function to call the command?
19:00:40 <glx[d]> multiple commands in a loop (not efficient) or a new command for all at once
19:02:48 <TallTyler> JGRPP seems to let you nest commands ๐
19:03:11 <TallTyler> Upstreaming is getting more and more different from the original implementation as vanilla and JGRPP diverge
19:03:21 <TallTyler> Not really a complaint, just an observation ๐
19:03:51 <FLHerne> so long as it doesn't end up with the full cirdan experience
19:22:37 <dP> petern: yeah, check seems to be in CommandHelper::Do but scripts use ScriptDoCommandHelper that has its own Do
19:23:23 <JGR> TallTyler: No, it's not allowed there either
19:24:10 <JGR> But there is a helper for queuing a DoCommandP if already executing a command, only needed in some special cases
19:24:23 <petern> Hmm, I can make this changeset smaller actually.
19:25:00 <petern> And I should test non-train variants properly.
19:27:51 <dP> first tile already seems to be extracted into location there
19:29:20 <dP> or is it just sent twice...
19:29:24 <TallTyler> JGR: `CmdBulkChangeTimetable` calls `CMD_CHANGE_TIMETABLE`, no? I never learned the types of DoCommands - it uses `DoCommandEx`, but I don't know what that means ๐
19:31:46 <petern> Basically the difference is one is top level and the other is a "child" call. I believe.
19:32:09 <TallTyler> Does the new command system have an equivalent?
19:33:18 <petern> There's ::Post and ::Do
19:33:45 <TallTyler> I'm using ::Post right now and it doesn't like it
19:34:21 <petern> ::Post for your top level call that needs to be Postedf
19:35:04 <TallTyler> Inner ::Do doesn't want an error message?
19:35:32 <TallTyler> No squiggly red line, let's try it ๐
19:44:58 <petern> I suspect that's enough forum reading for me.
19:52:15 <TallTyler> Time for Andy to merge it? ๐
19:56:17 <petern> Maybe reddit is a better read
19:56:28 *** supermop_toil has joined #openttd
19:57:02 <andythenorth> I don't have merge rights
19:57:04 <andythenorth> not even for nml
19:57:07 <andythenorth> I rescinded them
19:58:24 <glx[d]> Yeah we gave the rights, and Andy used them to remove them by himself
19:58:44 <TallTyler> If it weren't GRF spec I'd suggest we follow the chunky bevels example and merge it for faster testing, but I imagine we wouldn't want GRF authors wasting their time making stuff which might change
20:00:00 <glx[d]> Not merged it's not tested, but once merge it's hard to touch the spec
20:00:39 <TallTyler> Especially those close to a release
20:02:07 <glx[d]> IIRC there's a way to build "releases" of PRs
20:04:12 <andythenorth> NRT had preview releases
20:04:21 <andythenorth> WASM is a thing, but it's a pain with grfs
20:04:48 <TallTyler> Especially GRFs not in Bananas
20:05:11 <andythenorth> like test grfs that get deactivated in vanilla ๐
20:05:19 <andythenorth> bananas has no facility for test content ๐
20:12:16 *** Wormnest has joined #openttd
20:28:30 <petern> Release early, release often?
20:28:59 <petern> I did that at work last week.
20:29:21 <petern> I only wanted to test a CI to see about creating proper builds instead of compiling everything on my desktop.
20:29:52 <petern> Turns out when you've done that it's not much further to deploying to test, and deploying to production on a release tag...
20:30:14 <petern> I guess this is devops now :p
20:33:46 <andythenorth> yeah, time for medicine
20:34:37 <LordAro> medicine medicine, or medicinal medicine?
20:36:13 <andythenorth> covid has not left me yet
20:37:20 <petern> Can we split catenary poles into lower and upper parts?
20:37:57 <supermop_toil> i was begging for that like 2ish years ago
20:38:08 <andythenorth> aren't they poles for overhead monorail?
20:38:17 <andythenorth> which certainly doesn't clip bridges or anything
20:43:21 <petern> I waste a while trying to get them to sort properly until I realised ๐
20:43:41 <petern> Overall I think I got them better, just those 1 or 2 cases when it'll bug out.
20:43:50 <petern> (And not possible to solved without splitting them)
20:58:39 <LordAro> we do need an RC1 though
20:59:01 <LordAro> not sure we can feasibly do a 25/12 release at this point regardless
21:00:15 <TallTyler> RC1 is feature freeze if Iโm not mistaken, and there are still several things in the 13.0 milestone
21:00:20 <TallTyler> Including variants ๐
21:00:36 <LordAro> RC1 is the *beginning* of feature freeze
21:00:47 <TallTyler> I agree though that the full release will need to be New Years ish
21:01:01 <DorpsGek> LordAro: frosch was last seen in #openttd 1 week, 3 days, 4 hours, 7 minutes, and 50 seconds ago: <frosch> actually weird. the ttd engines were so maxed to exactly 255, and then it's actually an uint16?
21:16:52 <glx[d]> dP: check used to be in DoCommandPInternal() which was called from ScriptObject::DoCommand() it seems
21:32:19 *** m1cr0man has quit IRC (Quit: G'luck)
21:32:42 *** m1cr0man has joined #openttd
21:48:51 <TallTyler> Did you see frosch?
21:49:23 <andythenorth> frosch seems to be having a break
21:50:59 <TallTyler> Would frosch be upset if we merged variants without his input?
21:51:55 <TallTyler> I wasnโt in IRC for that ๐
21:58:57 <TallTyler> andythenorth: was variants frosch's idea originally?
21:59:38 <reldred> I think itโs a dangerous idea for any one single person to โownโ the GRF spec
21:59:41 <TallTyler> I really want to play with variants ๐
21:59:44 <andythenorth> I was there and definitely partly to blame for variants
21:59:52 <andythenorth> someone said 'IDs are cheap'
22:00:49 <LordAro> reldred: it's more that someone like frosch often has insights that the rest of us miss
22:01:38 <LordAro> and by "insight", i mean "points out potential issues"
22:06:16 <JGR> On the other hand, it's unrealistic to expect new concepts to be absolutely perfect first time
22:07:02 <LordAro> i'm not suggesting delaying anything
22:07:10 <LordAro> just waiting if at all possible
22:07:18 <LordAro> the tricky bit is knowing whether waiting is a good idea
22:07:44 <JGR> Waiting by itself doesn't make anything happen
22:08:33 <reldred> Can't let 'perfect' be the enemy of progress.
22:09:06 <reldred> A good plan executed violently is better than a perfect plan executed never, and so on and so forth.
22:09:41 <TallTyler> I suppose we could release variants with an explicit warning to NewGRF developers that the spec could change and break their NewGRFs within some agreed-upon period of time, maybe a year
22:10:10 <TallTyler> "probationary period" for grf spec ๐
22:10:14 <andythenorth> frosch isn't 100% wanting to be the guardian of the grf spec
22:10:34 <andythenorth> it's more a case of 'but who else?' I think ๐
22:10:49 <andythenorth> we did try to trick TrueBrain into learning grf
22:12:32 <petern> How is Iron Horse variants looking?
22:13:03 <petern> I think the basic functionally of variants is quite simple
22:13:03 <andythenorth> I can zip that for the issue if we want
22:13:28 <petern> It doesn't add any new callbacks or varactions (beyond 0xc6 which should exist already)
22:13:40 <petern> It's a property and some extra flags.
22:14:16 <petern> The parent/child tree stuff was stolen from Groups
22:14:42 <petern> The extra flags do affect vehicle things, but not really in a newgrf way
22:15:08 <JGR> TallTyler: The lack of any proper feature detection mechanism in the spec is part of the problem here
22:15:41 <petern> The only feature detection is based on follow TTDPatch ๐
22:16:56 <JGR> In branch, if I add something as a spec extension which turns out to be crap, I can just delete it, and GRFs won't break
22:17:35 <JGR> They'll do nothing or report an error just like when loaded in vanilla, it makes adding stuff much less of a huge commitment hurdle
22:18:30 <TallTyler> Is that specific to your branch?
22:18:49 <TallTyler> How hard would it be to upstream that?
22:18:59 <dP> hm, do variants also sync intro dates?
22:20:05 <JGR> TallTyler: I do not think that my mechanism/implementation would be accepted
22:20:43 <JGR> As it is designed around the restriction that i don't have control of the spec or what vanilla may add in future
22:22:22 <andythenorth> dP: they should be compatible with the existing intro date sync
22:22:23 <JGR> For vanilla, you control the spec, so you can design it however you want without any such restrictions
22:22:41 <dP> also, I personally hate that same properties have different numbers for different vehicle types, butt that seems to be the norm in spec sadly
22:38:03 *** nielsm has quit IRC (Ping timeout: 480 seconds)
22:46:51 <dP> dP: actually, is there any specific reason why nothing is being added to common vehicle properties anymore?
22:47:06 <petern> There are no common vehicle properties
22:47:23 <petern> It's not a separate namespace.
22:47:56 <andythenorth> ^ I went on this journey a few weeks ago ๐
22:48:11 <andythenorth> when I did the nml patch, and the different prop numbers stuck out as weird
22:48:24 <andythenorth> 'we are where we are'
22:48:58 *** gelignite has quit IRC (Quit: Stay safe!)
22:49:15 <petern> There is no "05" in common properties because it's rail vehicle track type
22:49:53 <dP> so what? they don't have to be consequent
22:50:39 <dP> it just seems like it's a choice between consequent numbering per type or consistent numbering across types
22:50:45 <dP> i'd rather chose the later
22:51:43 <petern> At least it's consistent that it's not consistent.
22:52:35 <dP> there are 6 common properties so it failed even that :p
22:53:08 <petern> Yeah, we didn't create though.
22:53:38 <petern> Let's face it, if you were to come up with a new spec now... you wouldn't choose NFO.
22:54:05 <andythenorth> discord isn't so kickable eh
22:54:12 <andythenorth> I miss that about irc
22:54:31 <JGR> We could design a Glorious Second System as GRFv9 ๐
22:54:44 <petern> Back in the day people wanted ini files.
22:54:54 <andythenorth> how's the ini file system working out?
22:55:05 <petern> NML hides these numbers anyway.
22:55:09 <petern> NML is basically DNS for NFO.
22:56:01 <JGR> It does quite a bit more than just that
22:56:06 <andythenorth> can I be arsed to draw more mail vehicles tonight?
22:56:17 <petern> Goes it throw out variants?
22:56:24 <andythenorth> I would play OpenTTD, but I don't know which branch ๐
22:56:26 <petern> Can't agree on what numbers to use
22:56:33 <andythenorth> so many branches
22:57:24 <andythenorth> meanwhile, anyone know why `/src/3rdparty/fmt/format.h` is patched locally (by me)?
22:57:31 <andythenorth> I keep having to stash and unstash it
22:57:56 <andythenorth> diff is stuff like
22:57:56 <andythenorth> `- if (std::signbit(value)) { // value < 0 is false for NaN so use signbit.
22:57:56 <andythenorth> + if (false) { // value < 0 is false for NaN so use signbit.`
22:58:19 <andythenorth> I am so far away from even beginning to understand why I patched that
22:58:55 <andythenorth> I understand the comment a bit ๐
22:59:11 <LordAro> something to do with signbit not existing for the version of xcode, iirc?
23:11:59 <petern> I started a 512x1024 world gen
23:12:14 <petern> In a full debug build.
23:12:41 <TallTyler> Real question,should I add a setting to toggle wide rivers?
23:25:06 *** keikoz has quit IRC (Ping timeout: 480 seconds)
23:25:32 <petern> tt-forums needs chunky bevels
23:26:46 <JGR> That reminds me, usually tt-forums has a garish Christmas theme this time of year
23:42:44 *** Wolf01 has quit IRC (Quit: Once again the world is quick to bury me.)
23:56:53 <LordAro> zorg's on a roll today
23:59:10 <petern> "Removing the scrollbar" yea... cos that was definitely a deliberate action.
23:59:40 <LordAro> no real reason to suppose it wasn't
continue to next day โต