IRC logs for #openttd on OFTC at 2022-12-11
⏴ go to previous day
00:21:13 *** sla_ro|master has quit IRC ()
00:27:47 *** nielsm has quit IRC (Ping timeout: 480 seconds)
00:47:40 *** HerzogDeXtEr has quit IRC (Read error: Connection reset by peer)
02:59:23 *** supermop_Home has quit IRC (Ping timeout: 480 seconds)
03:59:30 *** debdog has quit IRC (Ping timeout: 480 seconds)
04:24:06 *** Wuzzy has quit IRC (Remote host closed the connection)
08:08:46 *** HerzogDeXtEr has joined #openttd
08:46:21 *** sla_ro|master has joined #openttd
09:08:19 <andythenorth> petern: so patch done then? 😛
09:09:20 <andythenorth> I didn't test flags
09:09:26 <andythenorth> I'll put a Horse on the PR though
09:12:09 <andythenorth> meh github is fussy
09:13:54 <andythenorth> petern: oh you got zorged I see
09:18:04 <petern> Hmm, not using any flags?
09:18:19 <andythenorth> going to try now
09:18:30 <andythenorth> I didn't look at the implementation, is there a new prop to add to nml
09:20:16 <LordAro> barely even a frost this morning
09:20:55 <petern> I need to work on the reliability then, as nearly everything has the same value
09:27:57 <petern> > I think plays should be able to change liveries on exisiting vehicles
09:28:27 <andythenorth> if I ask enough silly questions, will someone else patch nml 😛
09:28:34 <andythenorth> oh I'd better pull the PR again first
09:30:59 <petern> No snow here, just heavy frost, and a heavy fog.
09:32:01 <andythenorth> seems nml has special_flags and extra_flags so far
09:32:22 <andythenorth> and general_flags
09:32:40 <andythenorth> and object_flags
09:32:47 <andythenorth> and railtype_flags
09:33:06 <andythenorth> well, flags are nice
09:33:21 <andythenorth> I was hoping for a clue on what to call these props
09:33:27 <andythenorth> but based on the above, I should invent a new term
09:35:15 <petern> I did wonder about just extending the original misc_flags, but that might complicate things.
09:37:01 <petern> Hmm, yeah, old random = lots of variation in reliability.
09:37:07 <andythenorth> if it was my own project, I'd call it misc_flags_2
09:37:10 <petern> new random = lots the same, even if not synced.
09:37:14 <andythenorth> but I doubt that will pass review
09:38:49 * andythenorth runs the game for a bit
09:38:56 <andythenorth> curious what exclusive preview does
09:40:46 <andythenorth> ok I call it extra_flags
09:42:12 <andythenorth> hmm nml needs some magic constants assigned
09:54:13 <petern> Hmm, I guess there is not much variance (hah) in the seed going by just engine index :/
09:57:18 *** birdjj has quit IRC (Ping timeout: 480 seconds)
09:59:54 <andythenorth> I swore I'd pulled
10:00:54 <andythenorth> not sure the pull worked, but eh
10:01:15 <andythenorth> git pull -f upstream pull/10220/head
10:01:18 <andythenorth> should have worked
10:01:22 <andythenorth> but that's new to me 😛
10:01:34 <andythenorth> I have rmed the branch and fetched the PR again
10:01:46 *** sla_ro|master has quit IRC ()
10:03:12 <andythenorth> well I have nerfed all 'new train messages'
10:03:35 <andythenorth> I applied the flag to all vehicles blanket
10:03:44 <andythenorth> just to see if nml compiled
10:03:51 <petern> Ah, yes, that would do it.
10:03:57 <andythenorth> hmm I think there's an issue requesting 'new vehicle' option for wagons
10:04:12 <andythenorth> maybe we need another bit to force it 😛
10:06:33 <petern> wagons are just engines with no power.
10:07:16 <andythenorth> what if engines were wagons with power?
10:08:14 <petern> We'd have to change EngineID to WagonID, and EnginePool to WagonPool... _dynamic_wagons...
10:08:30 <petern> Sounds like a useful bit of bikeshedding
10:09:03 <andythenorth> ok I am running ffwd for news
10:09:19 <andythenorth> I can do variants for HSTs with and without mail?
10:09:24 <andythenorth> or is that subtypes? 😛
10:10:02 <andythenorth> why is ffwd stopping when openttd loses focus?
10:10:11 <andythenorth> I'm using the UI button
10:11:02 <andythenorth> ok news suppression works
10:14:01 <andythenorth> I didn't overthink the constant names
10:14:03 <petern> Yeah, why are the flags duplicated for all the types? hehe
10:14:16 <andythenorth> yeah, I wondered, there is precedent below for VEHICLE_
10:14:33 <andythenorth> but might extra_flags go out of sync across types in future?
10:15:37 <andythenorth> happy to consolidate them to one set of constants 😛
10:15:49 <andythenorth> someone else can fix the future in future
10:17:39 <andythenorth> constant names are much longer than normal, and still not obvious
10:18:04 *** D-HUND is now known as debdog
10:32:36 <andythenorth> VEHICLE_FLAG_SYNCHRONISE_VARIANT_EXCLUSIVE_PREVIEW
10:32:41 <andythenorth> there must be a better way 😛
10:33:12 <petern> There's a reddit post about NABS "not working anymore" huh
10:33:13 <andythenorth> VEHICLE_FLAG_PREVIEW_WITH_GROUP?
10:34:37 <andythenorth> I guess the grf spec tracker will need updated soon 😛
10:34:50 <andythenorth> I wonder who will shotgun merging 10220 😛
10:35:25 <reldred> petern: says who? lol
10:35:42 <reldred> the current re_nabs version at least
10:37:34 <reldred> oh its just a user being dumb
10:37:58 <andythenorth> is it time to go to Tesco?
10:38:34 <andythenorth> I'll bring it over
10:39:09 <reldred> actually just get me a choccy milk
10:45:06 <andythenorth> still not doom guy face
10:54:38 <mlt> i'd love factorio style curcuit logic for openttd
10:57:32 <andythenorth> ok Horse railcars need variants 😛
10:57:42 <andythenorth> currently they have alternative livery via ctrl-click
11:01:06 <andythenorth> hmm those constant names
11:01:37 <andythenorth> ` "VEHICLE_FLAG_DISABLE_NEW_VEHICLE_MESSAGE" : 0,
11:01:37 <andythenorth> "VEHICLE_FLAG_DISABLE_EXCLUSIVE_PREVIEW" : 1,
11:01:37 <andythenorth> "VEHICLE_FLAG_SYNCHRONISE_VARIANT_EXCLUSIVE_PREVIEW" : 2,
11:01:37 <andythenorth> "VEHICLE_FLAG_SYNCHRONISE_VARIANT_RELIABILITY" : 3,
11:02:26 <andythenorth> can we TLD variants somehow?
11:03:26 <EmperorJake> VEH_FLAG_SYNC_VAR_REL
11:04:40 <andythenorth> VEH would be shorter, precedent is VEHICLE
11:04:51 <petern> Does it need to be short?
11:05:20 <andythenorth> I like long constant names, they're obvious and don't collide
11:05:26 <andythenorth> I just suspect it won't pass review
11:06:00 <andythenorth> ok I've pushed SYNC
11:06:04 <andythenorth> think the rest are fine?
11:39:00 <andythenorth> hmm Horse docs improved
11:40:48 <andythenorth> PR will be merged by time I get back? 😛
12:18:59 <andythenorth> Template Attribute Language?
12:36:21 <petern> You could search the class by name (but not search the vehicles in it)
12:36:29 <andythenorth> ctrl-click in depot increments a vehicle counter?
12:37:28 <petern> Remove variants, replace with ctrl-click
12:37:43 <petern> Add a property to expose how many variants there are.
12:37:53 <petern> Then you can display them in the purchase list.
12:41:31 *** gelignite has joined #openttd
12:46:04 <andythenorth> can we support mouse gestures?
12:46:30 <andythenorth> swipe to paint the train?
12:53:40 <Wolf01> Mouse wheel tilt, or second mouse wheel?
12:53:55 <andythenorth> what about side buttons?
12:54:12 <andythenorth> on the mac you can shift-scroll which re-orients to horizontal
12:55:25 <Wolf01> I think that is universal
12:55:59 <andythenorth> train designer UI?
12:56:16 <andythenorth> petern: flat docks?
13:02:35 <petern> Hmm, still not very random.
13:04:34 <andythenorth> no steamer variants yet
13:04:43 <andythenorth> I can look at that
13:08:57 <andythenorth> shall I just do liveries?
13:09:09 <andythenorth> or the tender-first reversed train thing?
13:10:58 <andythenorth> meh, the most direct way to do that would be duplicating action 1s
13:11:13 <andythenorth> in fact, that might be the only way to do it
13:12:35 <andythenorth> how bad are action 1s?
13:13:52 <andythenorth> Pruple: reversed garratt?
13:17:18 <andythenorth> looks like it's pushing?
13:21:45 <Wolf01> Would it be possible to add more climates with grfs? Not replace, add
13:26:29 <petern> Climate is basically different ground sprites, and different vehicle/house/industry availability.
13:26:59 <petern> More interesting would be map biomes.
13:28:13 <Wolf01> A north american landscape based on temperate with deserts biomes could be fine
13:29:36 <andythenorth> "map array rewrite"
13:29:39 <andythenorth> just getting it in early
13:29:55 <petern> Landscape generator rewrite
13:31:15 <andythenorth> ^ this is done by cheating currently, is it a good idea?
13:31:32 <andythenorth> (it doesn't know the correct vehicle lengths currently)
13:32:50 <andythenorth> I have some horrific ideas for reversing the vehicle units in the compile 😄
13:32:59 <andythenorth> ok why am I asking, I think we know I'm going to do this 😛
13:33:37 <andythenorth> will need to move the smoke also
13:34:40 <andythenorth> tank engines are randomly built reversed
13:34:45 <andythenorth> but it has been reported as a bug a few times
13:34:53 <andythenorth> should that not be random, but variants instead?
13:35:43 <andythenorth> new button on buy list? "Buy (random variant)"
13:35:51 <andythenorth> I could provide dice icons 😛
13:54:14 <andythenorth> what if we could ctrl-click for articulated vehicles? 😛
13:54:21 <andythenorth> I am aware this cannot be done 😛
14:22:55 <TallTyler> I do like the option to buy a random variant
14:23:15 <TallTyler> Not sure where in the UI it would go
14:23:33 <TallTyler> Ctrl-click the Buy button? 😛 (only half joking)
14:24:13 <TallTyler> Then similar Horse wagons could be variants of some base class like boxcar
14:55:58 *** WormnestAndroid has quit IRC (Ping timeout: 480 seconds)
15:25:19 *** WormnestAndroid has joined #openttd
15:50:05 <andythenorth> was it nap time?
15:56:19 <andythenorth> I may need to admit a mistake in that case
16:13:27 <petern> Meh saveload conversion failing, poot.
16:17:56 *** sla_ro|master has joined #openttd
16:30:26 <andythenorth> why am I making steam engines that drive backwards?
16:31:26 <Eddi|zuHause> because REALISM!!!
16:35:07 <andythenorth> this is sort of supported now
16:35:14 <andythenorth> although the smoke is still wrong when running
16:36:03 <andythenorth> did I miss the merge of 10220? I was napping 😛
16:53:28 <andythenorth> reliability sync works so far across variants
16:54:13 <petern> Yes it is, the issue was it was very similar for non-synced engines too.
17:00:34 <petern> Maybe we should have apply an extra random seed when executing StartupEngines()
17:19:07 <andythenorth> I should move variant creation to post_init_actions
17:21:57 <petern> Simpler ctrl-click variants?
17:22:33 <andythenorth> I like 10220 though
17:22:55 <andythenorth> ctrl-click sucks for auto-replace 😛
17:25:12 <andythenorth> I think I'm going to remove all ctrl-click Horse liveries, except where it flips 1CC and 2CC for wagons
17:29:50 *** HerzogDeXtEr1 has joined #openttd
17:31:27 <petern> Does the paint job change when the wagon reverses?
17:33:22 <petern> That's what ctrl-click does, right? It calls CMD_REVERSE_TRAIN_DIRECTION
17:34:00 <petern> Which then does ToggleBit(v->flags, VRF_REVERSE_DIRECTION);
17:34:21 <andythenorth> then I read the bit and flip company colour
17:34:25 <andythenorth> or other stupid tricks
17:34:30 <andythenorth> but the stupid tricks can be deleted
17:35:25 <petern> Ah, that's different from VRF_REVERSING 🙂
17:35:32 *** HerzogDeXtEr has quit IRC (Ping timeout: 480 seconds)
17:35:46 <andythenorth> oh wait, which one is the one that counts reversing of whole consist?
17:35:49 * andythenorth has to look now :P
17:36:01 <petern> Okay so why can one not toggle VRF_REVERSE_DIRECTION on an articulated engine...
17:36:31 <petern> VRF_REVERSING is the whole consist, yes.
17:36:36 *** Wormnest has joined #openttd
17:36:43 <andythenorth> I think it's 0xC8 I'm reading probably
17:37:01 <petern> Same variable, different bit.
17:37:23 <andythenorth> the train reversed one is 0xFE
17:38:55 <andythenorth> Eddi has explained to me at least twice why we can't reverse articulated engines
17:40:08 <petern> Oh right, 48 is sprite num, which is... absolutely silly.
17:40:22 <petern> But it is FE for reversed, and FD for not.
17:41:23 <petern> which is modflags, which has VRF_TOGGLE_REVERSE. Huh.
17:42:24 <petern> This is all smelly historical reasons
17:42:31 *** Flygon has quit IRC (Quit: A toaster's basically a soldering iron designed to toast bread)
17:51:07 <andythenorth> most beautiful thing I've seen this year
18:01:28 <andythenorth> hmm shall I drop the commit for stupid reversing variant hack? 😛
18:44:41 <DorpsGek> - Update: Translations from eints (by translators)
18:44:59 *** wallabra_ has joined #openttd
18:50:23 *** wallabra has quit IRC (Ping timeout: 480 seconds)
18:50:23 *** wallabra_ is now known as wallabra
19:27:20 <petern> More thinking with portals.
19:35:00 <andythenorth> maybe I should do the coaches next
19:35:08 <andythenorth> 2 liveries, ctrl-click magic
19:39:03 *** Wormnest has quit IRC (Ping timeout: 480 seconds)
19:43:08 *** WormnestAndroid has quit IRC (Ping timeout: 480 seconds)
19:43:38 *** WormnestAndroid has joined #openttd
19:51:43 *** WormnestAndroid has quit IRC (Ping timeout: 480 seconds)
19:51:43 *** WormnestAndroid has joined #openttd
20:00:36 <petern> It would un-hide them.
20:03:37 <petern> nVidia Remix is quite impressive.
20:05:08 <andythenorth> what does it do?
20:08:09 *** Wormnest has joined #openttd
20:23:18 <petern> It's like RTX ON for specific DX8/9 games, it can intercept textures and assets and replace them with updated versions, along with adding raytracing.
20:23:33 <petern> It's how they did Portal RTX.
20:23:41 <petern> That is a coach with variants.
20:23:58 <andythenorth> however only the buy menu works 😛
20:24:45 <petern> When do we implement an in-game voxel renderer?
20:25:14 <petern> Actually why bother. 3D model renderer.
20:25:47 <petern> Step 1: automatically render model into 8 directional sprites.
20:26:48 <andythenorth> sprites have funny lengths 😛
20:26:58 <andythenorth> in different angles
20:29:05 <andythenorth> I could do a coach that magically adapts to certain engines
20:29:16 <andythenorth> but also you can choose specific variants
20:29:21 <andythenorth> but that will waste action 1s
20:29:36 <andythenorth> I can't be arsed to refactor the compile to group all the action 1s
20:36:13 *** WormnestAndroid has quit IRC (Ping timeout: 480 seconds)
20:37:00 *** WormnestAndroid has joined #openttd
20:39:43 <petern> An in-game renderer could know all that, heh.
20:40:08 <petern> What is a wasted action 1?
20:40:33 <andythenorth> /me wonders why the author has to manage this crap
20:40:38 <petern> You can link to the same action 1s
20:40:48 <andythenorth> I can yes, the compile isn't constructed that way currently 😛
20:41:40 <petern> Problem is you've built a huge automated work flow which wasn't designed for this 🙂
20:41:43 <andythenorth> there are some global action 1s, but most are defined per-vehicle
20:41:50 <petern> Imagine if you had a separate artist and coder like the big NewGRFs 😉
20:42:00 <andythenorth> when is TrueGRF done?
20:42:35 <andythenorth> I mean....there are 93000 duplicate action 1s already
20:42:38 <andythenorth> what's a few more? 😛
20:44:27 <petern> NFO would be easier right?
20:45:01 <andythenorth> it would limit the scope to about 10% 😛
20:45:12 <andythenorth> NML encourages...ideas
20:46:03 <FLHerne> action1 is basically spriteset {}, right?
20:46:33 <FLHerne> I wonder if NML can deduplicate those
20:46:50 <andythenorth> nearly all of the duplicates would be gone if OpenTTD handled vehicles that are less than 8/8
20:47:34 <FLHerne> do I misunderstand what you mean by "duplicate"?
20:47:34 <andythenorth> for e.g. a 6/8 vehicle there is no real choice excepting duplicating the action 1
20:47:41 <andythenorth> sprites come in blocks of 8
20:48:01 <andythenorth> and to handle non 8/8 vehicles, two blocks are needed
20:48:10 <andythenorth> but it's the same realsprites, different sequence
20:48:17 <petern> What's the issue with shorter vehicles?
20:48:26 <andythenorth> they don't adjust the offsets
20:48:54 <andythenorth> there's some reason they can't currently
20:49:04 <andythenorth> usually it's grfs
20:49:05 <petern> Is this one of those things where instead of actually reporting a bug, people developed silly workarounds?
20:49:23 *** gelignite has quit IRC (Quit: Stay safe!)
20:49:29 <glx[d]> you know how grf authors are
20:49:30 <petern> And by reporting I mean filing it, not just saying "it doesn't work"
20:49:35 <andythenorth> I think that dice comes up 6
20:49:57 <andythenorth> well...the old way was to ask in irc, and get told it can't be fixed and needs a state machine
20:50:09 <andythenorth> but I am looking if there's an issue, and will make one if not
20:51:26 <glx[d]> at least we stopped them abusing temp storage for inter grf communication 🙂
20:52:29 <andythenorth> we could do what now?
20:52:33 <andythenorth> this sounds interesting
20:52:39 <glx[d]> temp storage used to be not reset before each varact2 resolution
20:53:34 <glx[d]> so of course it was abused
20:54:42 <glx[d]> but I think it was only abused inside grf, not between them
20:55:03 <petern> Probably thought it was intentional.
20:59:58 <andythenorth> I don't see an issue for < 8/8 vehicles
21:07:07 <andythenorth> /me gets a twitch from grf authors requesting spec features 😛
21:11:22 <andythenorth> oof I should make a test case shouldn't I 😦
21:13:11 <andythenorth> oh that's a one line change in Horse 😛
21:20:22 <andythenorth> meh I can't repro the exact issue
21:20:41 <andythenorth> without the special handling, I get blank sprites when flipping some 6/8 vehicles
21:43:45 <dP> can reversed offsets even be determined automatically in general case?
21:44:00 <dP> though I guess having sensible defaults won't hurt anyway
21:44:15 <andythenorth> dunno, every time this was discussed someone said it can't be fixed 🙂
21:45:16 *** nielsm has quit IRC (Ping timeout: 480 seconds)
21:46:39 <dP> `flipped_offsets = base_offsets[4:8] + base_offsets[0:4]`
21:47:26 <andythenorth> that would definitely improve the main issue 😛
21:49:27 *** keikoz has quit IRC (Ping timeout: 480 seconds)
21:53:37 <dP> another way to fix it is to allow reusing the same sprite with different offsets
21:56:06 <JGR> The GRF file format does allow re-using real sprite data with multiple action 1s
21:56:24 <dP> but only with same offsets afaict
21:57:01 <dP> though I guess in this case they're just shifted around so that will work
21:59:51 <dP> I need to add sprite de-duplicator to grf-py
22:00:14 <dP> So I can advertise it every time andy mentions dupes 😆
22:00:56 <JGR> Yes, it seems offsets are loaded from the same place as data in LoadSpriteV2
22:02:08 <andythenorth> can we post-process the grf on load?
22:02:29 <dP> oh, actually, no, it won't work in this case as if I'm reading it right horse only switches offsets but sprites stay the same
22:02:29 <andythenorth> not really wanting to fix all the toolchains to teach them about a new way to action 1 😛
22:04:10 <JGR> It'd probably be easier to add some flag to do the swap at runtime which you could set via temp store variable 0x100 or whatever
22:06:00 <dP> it may require some awkward code to take offset from another sprite
22:07:54 <JGR> Or just put the offset to add in the register
22:08:30 <dP> yep, third way to do sprite layouts 🤣
22:08:47 <andythenorth> we can't fix it in the client because it will break existing grfs?
22:09:11 <JGR> You'd have to add a flag to enable the new mode, there are plenty of flags like that
22:11:39 <andythenorth> I could show the bounding boxes in screenshot, but doesn't add much
22:12:36 <petern> 4.2MB is a bit big for a test-case
22:14:29 <andythenorth> someone could make a smaller one 🙂
22:15:17 <andythenorth> ^ Eddi's comment is why I never filed a bug
22:15:25 <andythenorth> it's the intended spec, not a bug
22:18:24 <Eddi|zuHause> there's probably some clever trick for making it work without special sprites, but a) is probably more involved, and b) probably breaks other existing things
22:22:27 <dwfreed> I mean, it seems like it's padding the sprite to 8 and then mirroring it, instead of mirroring it on its original size?
22:29:58 <Eddi|zuHause> as far as i remember (without looking things up) is that the issue is that the anchor point of the sprite is not the center of the bounding box, but the backside of the bounding box (the hidden corner)
22:30:12 <Eddi|zuHause> and that was originally the unshortened bounding box
22:30:17 *** sla_ro|master has quit IRC ()
22:30:34 <Eddi|zuHause> so the bounding box was asymmetric
22:31:12 <Eddi|zuHause> at some point the bounding boxes got fixed, but the offsets had to stay the same
22:33:13 <Eddi|zuHause> thus the flipping works on the original 8/8 bounding box, even if the real bounding box is now shortened
22:47:11 <petern> andythenorth: your offsets are all over the place, even for non-short wagons.
22:48:38 <andythenorth> I never tried them with original vehicles, wonder how that looks
22:50:28 <andythenorth> it must be at least a year since I last reset them all, probably time again? 😛
22:51:43 *** WormnestAndroid has quit IRC (Ping timeout: 480 seconds)
22:52:28 *** WormnestAndroid has joined #openttd
22:52:42 <andythenorth> I should release new ones annually, collectables
22:53:30 <andythenorth> ok they definitely don't match OGFX+ trains, for whatever that's worth
22:54:23 <andythenorth> oh, I think that's because I draw \ / views taller than default sprites maybe
22:54:47 <andythenorth> yeah 6 pixel coach sides not 5 pixel
22:55:52 <petern> Step 1: Fix the sprite aligner...
22:56:55 <glx[d]> sprite aligner, the thing that always moves ?
22:57:14 <andythenorth> I never filed a bug against it 😛
22:57:20 <andythenorth> because I never worked out what's broken
22:57:33 <andythenorth> it's great for finding sprite numbers though 😛
22:57:56 <petern> Main issue is it cancels out the offsets to the sprite is always centred.
22:57:58 <glx[d]> I never understood how to use it
22:58:03 <petern> So it's kinda useless.
22:58:56 <andythenorth> it's good for moving sprites around by relative amounts, and counting
22:59:03 <andythenorth> then adding the delta to the values in nml 😛
22:59:10 <andythenorth> I use my fingers 😛
22:59:25 <andythenorth> if the delta is > 10 I have to do it twice
22:59:33 <petern> The number it displays is the sprite offset... what's tricky about that?
23:00:37 <andythenorth> it's better now it's chunky
23:05:18 *** Wolf01 has quit IRC (Quit: Once again the world is quick to bury me.)
23:06:55 <reldred> I am looking forward to JGRPP 0.50 now that it has the chunk
23:07:46 <petern> Eddi for / and \ views, yeah.
23:07:55 <petern> For horizontal or vertical, it's the centre.
23:16:00 * andythenorth must to sleeping
23:31:42 <petern> Somebody changed english.txt
continue to next day ⏵