IRC logs for #openttd on OFTC at 2023-10-15
β΄ go to previous day
00:02:56 *** HerzogDeXtEr has quit IRC (Read error: Connection reset by peer)
00:35:01 *** Wormnest has quit IRC (Ping timeout: 480 seconds)
00:39:38 *** breezebuilder has joined #openttd
00:39:38 <breezebuilder> Is there a reason why most of the functions in `tree_cmd.cpp` are static? Would it be crazy for me to create `tree_base.h` to provide access to the random tree placement functions instead of re-implementing duplicates of the functions?
00:40:44 <_glx_> the usual reason is they are only used there
00:43:03 <breezebuilder> Is it standard practice for openttd devs to provide their own access to functions when needed? I don't want to defy any conventions, just want to know what the expected change would be
00:43:57 <_glx_> if a static function needs to be used somewhere else we remove the static and add it to a header
00:44:30 <breezebuilder> Great, that's easy
00:56:39 *** Tirili has quit IRC (Quit: Leaving)
01:05:31 *** Wormnest has joined #openttd
01:59:46 *** Wormnest has quit IRC (Ping timeout: 480 seconds)
02:14:18 *** Wormnest has joined #openttd
02:17:19 *** debdog has quit IRC (Ping timeout: 480 seconds)
02:38:14 *** D-HUND has quit IRC (Remote host closed the connection)
02:58:08 <wallabra> those city growth scripts are a bit too Malthusian for my tastes
02:58:42 <wallabra> well not "my tastes", I love the scripts
03:03:05 <wallabra> but it is notable that they make population dynamics hinge on transport company services a bit too much
03:08:05 *** pm is now known as Guest3383
03:13:46 *** Guest3301 has quit IRC (Ping timeout: 480 seconds)
04:26:17 <merni> Well, as an openttd player that is what you can control :p
04:44:04 *** HerzogDeXtEr has joined #openttd
05:18:41 *** HerzogDeXtEr has quit IRC (Read error: Connection reset by peer)
08:23:22 <andythenorth> so...I need to test bits for raised corners
08:23:34 <andythenorth> bitmask(CORNER_E) gets me an integer I think, I want bools
08:30:27 <_pruple> do you need to check bits? can't you just use the SLOPE_NW etc constants and let nml do its thing, if you're looking for particular slopes?
08:31:55 <andythenorth> it's quite a lot of checks
08:32:04 <andythenorth> all the correct slopes have to be handled
08:32:23 <andythenorth> whereas afaict, the 6 foundation sprites map directly to the 5 corner bits (flat has 2 foundations)
08:32:40 <andythenorth> I can't pretend I know what I'm doing though
08:33:30 <_pruple> ultimately, however you do it you're going to end up differentiating all the different slopes though, right? because every different slope will require a different [combination of?] foundation sprite.
08:33:56 <andythenorth> each sprite is turned on or off in the spritelayout
08:34:20 <andythenorth> I still think this is all a terrible idea for the record
08:34:39 <andythenorth> 'replace base set foundations, but only next to water' is not going to go well
08:35:05 <brickblock19280> It can work and would be nice
08:37:02 <andythenorth> _pruple: ok yes, there are combinations where 'corner raised S' just doesn't check enough
08:37:40 <andythenorth> ok I might park all this in a branch
08:37:47 <andythenorth> it's a total waste of time
08:39:04 <brickblock19280> Why even deal with the constants?
08:40:04 <andythenorth> I might have done that
08:40:19 <_pruple> I think you might have
08:43:06 <andythenorth> ok objects as the spec intends
08:43:21 <andythenorth> fucking around with foundations is a waste of time
08:44:07 <andythenorth> if I move FIRS ports onto land, this issue disappears
08:48:07 <andythenorth> if I could figure out what expressions to write for this, it would be better
08:48:14 <andythenorth> I'm not writing switch chains, I hate writing nml
08:50:29 <andythenorth> ok I'm being an ass, I need to have coffee and breakfast and be a better person
08:51:39 *** HerzogDeXtEr has joined #openttd
08:55:42 <_pruple> coffee and breakfast sounds like a good plan, me too
08:55:53 <_pruple> (yes, it's breakfast at 7pm)
09:03:25 <andythenorth> ok, so instead of 6 sprites with 'hide_sprite', use 2
09:03:35 <andythenorth> store the spriteset indexes in 2 registers, not 6
09:03:45 <andythenorth> if there's no foundation just draw an empty sprite
09:04:04 <andythenorth> do all the defs in python, and make a code generator
09:04:30 <andythenorth> for each supported slope, list the correct foundations, and the offsets for water tiles to check
09:05:34 <andythenorth> I looked at how FIRS does this yesterday: 8 or so separate spritelayouts, handling 16 or so different slope cases
09:05:43 <andythenorth> looked stupid, but now I see why that's easier
09:46:14 <andythenorth> just need to do water checks now
09:46:33 <andythenorth> I can use the same structure to index into a list of base set sprites
09:59:23 *** Flygon_ has joined #openttd
10:04:46 *** Smedles_ has joined #openttd
10:06:31 *** Flygon has quit IRC (singleton.oftc.net coherence.oftc.net)
10:06:31 *** Smedles has quit IRC (singleton.oftc.net coherence.oftc.net)
10:06:31 *** APTX has quit IRC (singleton.oftc.net coherence.oftc.net)
10:06:51 <andythenorth> oof this so nearly worked π
10:07:44 <andythenorth> the red case I was expecting and know how to solve
10:08:01 <andythenorth> the blue case is a pisser, because it's a case where "coast is sea", except when it isn't
10:08:07 <andythenorth> in this case, coast is sea
10:08:40 <andythenorth> I can check tile elevation also, but that might cause other issues with lakes and rivers
10:09:16 <brickblock19280> Are you looking at sea or water in general?
10:09:27 <andythenorth> anything that isn't WATER_CLASS_NONE
10:13:44 <andythenorth> not actually sure why the blue one is doing what it's doing
10:14:07 <andythenorth> the checks are `[(0, 1), (0, -1), (1, 0), (-1, 0)]`
10:14:24 <andythenorth> the tile at (0, -1) is not reported as coast by the inspector tool in game
10:15:19 <andythenorth> it's a replicable effect though
10:15:53 <brickblock19280> Odd I don't think I had any issues with this but I am not sure I tested
10:16:36 <andythenorth> wonder why we report "Coast or riverbank"
10:16:40 <andythenorth> there is no concept of riverbank
10:17:06 <andythenorth> and river is river
10:30:33 <andythenorth> cases llike this are going to show two types of foundation on adjacent tiles
10:30:59 <_pruple> andythenorth: because "river" isn't a thing in TTD, and I imagine that description dates back that far π
10:31:08 <andythenorth> good reason π
10:32:26 <brickblock19280> Can ports be built on rivers?
10:32:57 <_pruple> river (and canal) tiles have their banks on their own tile, so I'd be inclined to only use special foundations if the neighbouring tile is sea
10:33:11 <alfagamma7> brickblock19280: Yes
10:41:29 <_pruple> objects, slopes and coasts... what a faff.
10:41:39 <_pruple> (I didn't avoid writing nfo π¦ )
10:42:36 <andythenorth> _pruple: it's an idea
10:43:29 *** Smedles_ has quit IRC (Ping timeout: 480 seconds)
10:44:37 <brickblock19280> Industries would have to work the same way tho imo
10:46:57 <andythenorth> brickblock19280: for FIRS, it's extremely difficult to build a port not on sea
10:47:17 <andythenorth> other industry sets may vary π
10:47:30 <brickblock19280> We don't care about those tho
10:47:33 *** Smedles has joined #openttd
10:47:51 <andythenorth> I assumed I could OR the results of nearby_tile_water_class() with `||`
10:47:55 <andythenorth> maybe I need bitwise OR?
10:49:11 <andythenorth> `1 || 2 || 0` evaluats to 1?
10:49:53 <andythenorth> ok bitwise OR seems to work
10:56:14 <_glx_> With || result is 1, with | it's 3
10:57:19 <_glx_> And || is expansive in nml
10:59:23 <andythenorth> I suspect my logic might have mistakes in that case π
11:08:39 *** Smedles has quit IRC (Ping timeout: 480 seconds)
11:11:03 <andythenorth> testing pathological cases
11:11:10 <andythenorth> flat land at height level 0 π
11:12:59 <andythenorth> another: object built on canal at sea level
11:13:01 <andythenorth> can fix that one
11:13:49 <andythenorth> means objects built on canal don't have foundations
11:13:56 <andythenorth> probably best TBH
11:16:56 <brickblock19280> would checking all 8 tiles around for water not be sufficient?
11:17:16 <brickblock19280> andythenorth: in order to solve this
11:18:21 <andythenorth> checking all 8 will cause cases like this to show water foundations
11:18:26 <andythenorth> it has to be slope-specific
11:18:36 <andythenorth> unless that's what you meant π
11:19:43 <brickblock19280> no but I guess it has to be
11:19:47 *** Smedles has joined #openttd
11:19:49 *** Xaroth92 has joined #openttd
11:21:08 <andythenorth> will need to fix purchase π
11:21:10 <andythenorth> looks nice though π
11:21:38 <andythenorth> somehow life would be much easier if I just did a class of 'dock objects' π
11:21:48 <andythenorth> less magical, but eh
11:22:26 *** jlx__ has quit IRC (Read error: Connection reset by peer)
11:22:26 *** michi_cc has quit IRC (Read error: Connection reset by peer)
11:22:26 *** michi_cc has joined #openttd
11:22:26 *** Wolf01 is now known as Guest3456
11:22:26 *** ChanServ sets mode: +v michi_cc
11:22:28 *** Wolf03 is now known as Wolf01
11:22:29 *** berndj-blackout has quit IRC (Read error: Connection reset by peer)
11:22:30 <andythenorth> for objects, I could have use the extra orientations
11:22:36 <andythenorth> but I need this to work for station tiles also
11:24:30 *** cjmonagle[m] has quit IRC (Ping timeout: 480 seconds)
11:24:45 <_glx_> For stations it's simpler, openttd handles the orientation and nearby tests use the same offsets
11:25:00 *** Guest3456 has quit IRC (Ping timeout: 480 seconds)
11:25:20 <andythenorth> I think magic is the only way to have a consistent building interface for players
11:25:30 *** Xaroth9 has quit IRC (Ping timeout: 480 seconds)
11:26:21 *** cjmonagle[m] has joined #openttd
11:26:59 <_glx_> It's not (x,y) but (along platform, between platform)
11:28:00 <_glx_> And you can only build parallel to the slope IIRC
11:29:55 *** Webster has quit IRC (Ping timeout: 480 seconds)
11:29:57 <andythenorth> ok this fails if water is cleared on a nearby tile
11:30:03 <andythenorth> because it's bare land
11:30:09 <andythenorth> so the foundations stop showing
11:30:16 <andythenorth> really, this is not going to be possible, I am sure
11:30:36 <_glx_> Once bare land is flooded
11:30:38 <andythenorth> that's not acceptable behaviour from the grf π
11:30:51 <andythenorth> might be ok once the base set foundations show?
11:30:55 <andythenorth> is that the thinking?
11:31:14 <andythenorth> ok so houses use base set
11:31:22 <andythenorth> so object use in towns is now weird
11:31:59 <brickblock19280> yes all other objects use baseset so its fine
11:32:24 <brickblock19280> and I wouldn't use just one chips object
11:32:26 <andythenorth> if only objects had some variant system
11:32:33 <andythenorth> like....up to 4 views or something
11:32:55 <_glx_> Different foundation on different tiles is quite realistic
11:35:10 <andythenorth> at least this way matches docks
11:35:24 <andythenorth> personally, I don't decorate towns with objects
11:35:59 <brickblock19280> I do but not with chips ones
11:36:03 <andythenorth> ok I wonder if nml has a convenient builtin to get the base set sprite numbers
11:36:05 <Wolf01> Towns are meant to be decorated with objects :P
11:44:44 <andythenorth> nml has a var specifically for the last computed result?
11:44:54 * andythenorth looking for it, want to pass it as a parameter to a procedure
11:58:15 <_glx_> `last_computed_result` (var1C)
12:28:26 <andythenorth> better implementation π
12:29:07 <andythenorth> now I just need 'initialise_baseset_foundation_sprites' I think π
12:35:37 *** APTX_ has quit IRC (Remote host closed the connection)
13:36:53 *** virtualrandomnumber has joined #openttd
13:37:01 *** virtualrandomnumber has quit IRC ()
13:45:59 <andythenorth> Soβ¦foundations callback for objects to supplement the action 0 flag bit? π
14:08:02 *** Guest3383 has quit IRC (Remote host closed the connection)
15:18:09 *** Wormnest has joined #openttd
15:41:38 <andythenorth> does nml have anything to flip a bool (NOT)?
15:41:51 <andythenorth> or I just write a procedure π
15:43:47 <alfagamma7> Does callback 37 work for custom cargoes as well?
15:44:15 <Eddi|zuHause> andythenorth: NML doesn't have a concept of "bool"
15:44:22 <peter1138> 37 ONLY works for custom cargoes...
15:44:28 <andythenorth> yes FIRS uses 37
15:44:39 <peter1138> Ignore, wrong feature :D
15:44:52 <peter1138> I dunno industries, they are all complex and stuff.
15:44:54 <andythenorth> `(LOAD_TEMP(${graphics_temp_storage.CABBAGE}) ? 0 : 1)`
15:45:02 <andythenorth> bool flip in evil ternary π
15:46:01 <Eddi|zuHause> just use ranges of "0" and "default" in your switch?
15:47:06 <Eddi|zuHause> anyway, there probably is a "!" operator, but results may be strange/undefined if other values than 0 and 1 are encountered
15:47:27 <andythenorth> I am avoiding switch ranges, this is all expression stuff
15:47:35 <andythenorth> as far as possible I try to avoid using switches as switches π
15:47:57 <alfagamma7> I was thinking of experimenting with a small industry chain of my own
15:51:50 <Eddi|zuHause> avoiding switches may be... inefficient...
15:54:26 <andythenorth> it's efficient for authoring
15:54:42 <andythenorth> hmm I was hoping I could use `slope_to_sprite_offset(slope)` to pick out the correct foundation
15:54:53 <andythenorth> but it appears to be for ground tiles only
15:56:41 <Eddi|zuHause> <andythenorth> it's efficient for authoring <-- but do the needs of one outweigh the needs of many?
15:58:10 <andythenorth> it's utilitarian: there can be a grf, or no grf
15:58:19 <andythenorth> an inefficient grf is better than no grf
15:58:26 <andythenorth> NoGRF, we should PR that
15:59:50 <andythenorth> is there a table of slopes in src?
16:01:35 <andythenorth> `SPR_SLOPES_VIRTUAL_BASE + SPR_SLOPES_INCLINED_OFFSET + sprite_block * SPR_TRKFOUND_BLOCK_SIZE;`
16:02:50 <andythenorth> SPR_FOUNDATION_BASE = 989
16:03:31 <andythenorth> it's complicated because of steep slopes, but I don't need to handle those for objects / stations
16:09:52 <andythenorth> well it's not 989 π
16:18:11 <andythenorth> looks like foundation sprites 5465 and 5473 are identical
16:18:22 <andythenorth> wonder if there's something I should look up about them π
16:25:40 <kamnet> andythenorth: New disaster scenario when? This look like an alien invasion.
16:28:52 <_pruple> there's already an alien invasion disaster...
16:31:39 *** virtualrandomnumber has joined #openttd
16:32:51 <andythenorth> or we can wait until it ships
16:35:23 <andythenorth> do we want objects that can build on sea?
16:35:37 <andythenorth> it looks good, but they can also be built on canals and block them
16:36:57 <brickblock19280> I think you should have them
16:37:13 <brickblock19280> Do you have a grf that we could test
16:39:25 <andythenorth> no water objects in that
16:39:40 <andythenorth> they're too weird on canals
16:39:49 <andythenorth> they're built over the canal, but they block it
16:40:02 <andythenorth> removing them leaves the canal in place
16:40:12 <andythenorth> visually it's weird AF
16:42:08 <andythenorth> that river is block for navigation, but river bank drawing isn't triggered
16:42:35 <brickblock19280> ok that ain't good
16:42:45 <andythenorth> there's no flag for 'allow ships to traverse'
16:42:56 <andythenorth> although there is a flag for 'draw water'
16:43:02 <brickblock19280> that would be even weirder
16:43:13 <andythenorth> traversing objects eh?
16:43:27 <alfagamma7> It would have been good to allow fish shoals to be created on rivers
16:43:53 <andythenorth> CHIPS objects on sea tiles looks good, if I add foundations
16:44:02 <andythenorth> but it's non-trivial to disallow rivers / canalas
16:44:18 <andythenorth> and then it's annoying to not be able to build them in large lakes of river tiles
16:45:35 <andythenorth> no need for a 1 tile ridge of land
16:46:51 *** virtualrandomnumber has quit IRC (Quit: virtualrandomnumber)
16:47:21 <brickblock19280> make it elevetad on rivers too?
16:47:56 <alfagamma7> Rivers need be wider for real
16:48:03 <FLHerne> andythenorth: presumably you've seen the 'FIRS and CHIPS style objects' grf made by someone else on BaNaNaS?
16:48:10 <alfagamma7> like 6 tiles wide for big rivers
16:48:19 <FLHerne> it has quite a few of the things you're playing with
16:48:54 <alfagamma7> Seems like Andy wants to replace that
16:48:58 <andythenorth> FLHerne: yes, FACSO is the inspiration for FIRS objects
16:49:17 <andythenorth> it's unrealistic for FACSO to keep up with FIRS or CHIPS dev
16:49:27 <andythenorth> whereas I can generate objects as a side effect of the compile
16:49:39 <alfagamma7> It hasn't been updated since 2020
16:50:03 <andythenorth> navigable objects would have been good π
16:50:10 <andythenorth> loading gantries etc
16:50:22 <andythenorth> I dislike the overlapping sprites trick
16:50:30 <FLHerne> Eddi|zuHause: NML certainly has a concept of Boolean internally
16:50:37 <FLHerne> andythenorth: !(value) should work
16:51:30 <andythenorth> thanks, appears to work
16:54:25 <FLHerne> Eddi|zuHause is right that it won't work for true values that aren't 1
16:54:40 <andythenorth> that's ok in this case
16:54:51 <andythenorth> it's all going to be bytes eh
16:55:01 <brickblock19280> this one also has to look at the diagonally adjacent tile
16:55:15 *** gelignite has joined #openttd
16:56:13 <FLHerne> it's implemented as XOR(value, 1), so e.g. Not(3) is still a non-zero value
16:56:36 <andythenorth> brickblock19280: thanks, there will be some errors in some of the offsets
16:56:50 <andythenorth> or I need to make the checks more generous
16:56:57 <brickblock19280> would be odd if there wasn't
16:57:33 <andythenorth> but some of them need to check another 2 or so tiles I think
16:57:51 <FLHerne> I think there might be an implicit conversion of the arguments to Boolean
16:58:20 <andythenorth> is it 0 and (any other value)?
16:58:23 <andythenorth> for false / true?
16:58:32 <andythenorth> in the implicit conversion?
16:58:44 <FLHerne> there is, in parser.py
16:59:13 <FLHerne> so yes, I think it ought to treat any non-zero value as true and work consistently
16:59:26 <FLHerne> the codebase is kind of a rats' nest though :-(
16:59:39 <andythenorth> nature of the beast π
16:59:54 <FLHerne> every action implements all the operators independently which makes picking through how each one works a bit of a pain
17:00:11 <FLHerne> it's all part of NML being implemented backwards from how any sane compiler backend works
17:01:10 <brickblock19280> slope NW should also check (1, 1) ans (-1, 1) in order to work correctly
17:01:27 <brickblock19280> same for all other similar slopes I believe
17:02:41 <andythenorth> working these out today has boggled my brain π
17:03:56 <andythenorth> SLOPE_SW should be (-1, 0), (-1, 1), (-1, -1)
17:06:59 <brickblock19280> NWS is fine currently
17:07:15 <brickblock19280> since you won't see the foundations anyway
17:09:30 <andythenorth> I have that as (0, 1) but I think it's wrong
17:15:25 *** Eddi|zuHause2 has joined #openttd
17:19:01 *** Eddi|zuHause has quit IRC (Ping timeout: 480 seconds)
17:22:57 <andythenorth> ok think I corrected them all
17:23:34 *** Eddi|zuHause2 is now known as Eddi|zuHause
17:52:38 <brickblock19280> yeah I was wrong
18:15:44 <brickblock19280> Seems to work but why do you have every colour instead of using the same as firs does
18:15:58 <brickblock19280> you have already written the code for it
18:20:44 <brickblock19280> your foundations are also one pixel to far up which means they don't match the firs industries
18:21:07 <andythenorth> how would CHIPS know what colour FIRS is using?
18:21:41 <alfagamma7> CHIPS uses Company colour right?
18:21:46 <brickblock19280> update them both at the same time
18:21:53 <_pruple> how do the FIRS objects know what colour the industries are using?
18:22:24 <brickblock19280> they use the same colour code as the industries which uses town zones
18:22:59 <andythenorth> but that relies on knowing the industry type....
18:23:18 <andythenorth> it's not that I don't want to, it's that it's impossible π
18:23:28 <brickblock19280> I have done it
18:23:39 <andythenorth> but generic objects don't have an industry type
18:23:56 <brickblock19280> make them industry specific
18:24:06 <andythenorth> but they're generic
18:24:21 <alfagamma7> I thought industry colours in FIRS and it's clones were merely randomised
18:24:44 <brickblock19280> they were but that was changed
18:25:00 <_pruple> or make the town have a favourite colour for all industries. but I think we had this discussion the other day. π
18:25:10 <brickblock19280> currently firs and chips style dock objects use the same colouring system
18:25:36 <andythenorth> they're randomised, using the town number as a random seed
18:25:45 <alfagamma7> I think at least the industries that players make should be company coloured
18:26:01 <alfagamma7> andythenorth: Nice way to do it
18:26:31 <andythenorth> reldred's idea π
18:30:38 <brickblock19280> I only noticed it because they were different from mine
18:31:12 <andythenorth> now trying to work out which one is wrong π
18:31:40 <alfagamma7> I wish there was a way to standardise ground sprites in OpenTTD ( different newgrfs have widely different ground sprites for the same thing)
18:32:21 <brickblock19280> there kinda is if you use the baseset sprites
18:32:27 <brickblock19280> or we just implement BGT
18:32:31 <alfagamma7> Might be an old idea
18:35:44 <truebrain> I think I am going to request a rename of this channel on Discord π
18:36:58 <DorpsGek> - Update: Translations from eints (by translators)
18:37:24 <peter1138> Can we unlink #openttd?
18:38:14 <andythenorth> is this not just irc Discord channel #openttd?
18:39:12 <truebrain> it is more that other people with this interest might not expect this chat to happen in this channel
18:39:37 <andythenorth> but if it's not here, some people on irc won't be in it π¦
18:40:18 <alfagamma7> How about openttd-on-irc?
18:40:51 <truebrain> I think that means those people on IRC should move to Discord to π
18:40:57 <andythenorth> ach I can just talk grf stuff in Discord channel #add-on-development
18:41:13 <andythenorth> but it's intertwined with nml stuff, and at least one nml dev isn't there afaik (flherne)
18:41:22 <alfagamma7> Or just openttd-irc
18:42:04 <truebrain> it is okay, really, but find a balance here please π
18:42:22 <truebrain> I am really not interested in seeing an endless amount of pictures with minor pixels being different π
18:42:48 <FLHerne> andythenorth: eh, I'm not really an NML dev
18:42:50 <FLHerne> I just poke at it when I get bored
18:44:36 <FLHerne> truebrain: then make a thing that bridges all the Discord channels to IRC ;-)
18:44:44 <truebrain> or, you know, install Discord! π
18:44:50 <FLHerne> Someoneβ’ has to do it and it's always you :p
18:45:33 <truebrain> just a thin line; before you know it, everyone wants to chat here, for those few of you π Anyway, again, just find a balance, all I wanted to say π
18:45:41 <FLHerne> (the bridge really is neat though)
18:45:54 <FLHerne> it's the only IRC-to-anything bridge that I really don't notice from the IRC side
18:46:06 <truebrain> tnx π I really tried π
18:46:09 <andythenorth> I don't mind a bit more channel discipline, I just go where I get useful feedback π
18:46:18 <andythenorth> and some of the useful people aren't in the other place
18:46:19 <truebrain> helps that I come from IRC π
18:48:14 <FLHerne> Would it be particularly hard to make dibridge bridge multiple channels? Naively it seems like a do-the-same-thing-in-parallel problem
18:48:37 <FLHerne> although literally parallel processes would end up with duplicate IRC users
18:48:50 <truebrain> there has to be an insentive to get on Discord π
18:49:29 <FLHerne> Why do we want an incentive to join a proprietary platform
18:50:07 <truebrain> anyway, main reason is that IRC has the whole community (that what is left π π ) in 1 channel
18:50:11 <truebrain> I didn't want to scatter that over more
18:52:21 <FLHerne> hm, dibridge is a lot more readable than I thought it would be
18:52:46 <FLHerne> it's such a seamless bridge that I don't think that's an issue
18:52:58 <FLHerne> (assuming that the multiple Discord channels have a viable number of users)
18:56:07 <FLHerne> testing any changes might be awkward because I don't have a public IPv6 block
18:56:18 <FLHerne> I suppose I could run an IRC server locally
18:56:25 <truebrain> that is how I test it π
18:56:51 <FLHerne> does it need any special permissions on the Discord side to function?
18:57:04 <truebrain> it needs a webhook on the channel
18:57:51 <truebrain> not an issue on your own server; but on a server like OpenTTD, requires permissions
19:06:34 <LordAro> we never had an issue with such things pre-discord
19:07:06 <peter1138> Testing with godbolt can be fun, when gcc decides "this array isn't touched, so it's all 0, and therefore I can optimize away all this code that you are trying to test..."
19:07:49 <truebrain> but that ruins other shit
19:07:53 <LordAro> peter1138: making it a function parameter usual helps
19:08:25 <peter1138> Praps but in this case to be equivalent the array needs to be local
19:08:35 *** Wormnest has quit IRC (Ping timeout: 480 seconds)
19:11:08 *** Wormnest has joined #openttd
19:41:35 <Eddi|zuHause> define the array as volatile?
19:48:15 <_glx_> andythenorth: Boolean conversion uses `expr = nmlop.MINU(expr.expr, 1)`
19:54:06 *** Smedles has quit IRC (Remote host closed the connection)
19:56:23 *** Smedles has joined #openttd
20:02:17 <andythenorth> I thought switch IDs could be duplicated across feature types in nml
20:06:20 *** Wormnest has quit IRC (Ping timeout: 480 seconds)
20:11:23 *** Wormnest has joined #openttd
20:12:02 <andythenorth> _jgr_: does roadstops have a foundations flag or callback?
20:15:56 <_jgr_> andythenorth: No, it's not necessary. Road stops are always level
20:17:29 <_jgr_> The foundation has been added for you, you don't need to try to add it manually
20:17:50 <andythenorth> sprite replacement
20:17:56 <andythenorth> wonder if I can just overlay them?
20:21:40 <_jgr_> Hmm, I suppose that something for could be added to the spec, rail stations seem to have a flag for it
20:22:06 <_jgr_> Though that seems to be tied in to the really awkward way that the station spec is implemented
20:22:20 <andythenorth> objects, industry tiles, airport tiles have a callback
20:28:25 <_jgr_> It seems that for objects that there isn't a callback, you just turn them off and draw one yourself
20:29:07 <_pruple> (or more typically, turn them off and draw a sloped groundtile)
20:31:11 <andythenorth> _jgr_: oops yes, mixed up houses and objects π
20:37:55 <andythenorth> possibly I can just overlay them
20:38:12 <andythenorth> although my varact 2 chain is failing on water class check I think, but that's a different issue
20:43:19 <andythenorth> any chance road stops always report TILE_FLAT
20:43:58 <andythenorth> I have no real way of debugging except changing things in the grf
20:44:40 <_jgr_> You can see the value of variables in the debug window
20:45:06 <andythenorth> no debug for road stops π
20:45:11 *** nielsm has quit IRC (Ping timeout: 480 seconds)
20:45:19 <andythenorth> oh it's via inspect
20:48:33 <andythenorth> values change with slope in same way as objects, so probably an issue local to me
21:06:05 *** Wormnest has quit IRC (Ping timeout: 480 seconds)
21:09:07 <andythenorth> _jgr_: if I switch from my var from `tile_slope` to `nearby_tile_slope(0, 0)` I get expected result
21:09:42 <andythenorth> at first glance, `tile_slope` looks correct in nml, at least seems same as object implementation afaict
21:10:04 <andythenorth> and object implementation works with object var 0x41
21:15:07 <_jgr_> Not sure why it's in NML at all, as there's nothing in those bits in the implementation or documentation
21:15:59 * andythenorth was trying to find `GetTerrainType`
21:16:14 <_jgr_> Probably less disruptive to just add it than to remove something from NML
21:16:21 <andythenorth> wonder why it works for objects
21:16:29 <andythenorth> oh, objects aren't using base station?
21:16:35 <_jgr_> It is implemented for objects
21:16:40 <_jgr_> An object isn't a station
21:17:23 *** keikoz has quit IRC (Ping timeout: 480 seconds)
21:18:11 *** gelignite has quit IRC (Quit: Stay safe!)
21:21:11 *** Wormnest has joined #openttd
21:32:27 *** Wolf01 has quit IRC (Quit: Once again the world is quick to bury me.)
22:07:11 <peter1138> (And thus, not in DuckDuckGo)
22:45:40 *** Webster has joined #openttd
22:56:04 *** Smedles has quit IRC (Remote host closed the connection)
23:01:08 *** Smedles has joined #openttd
23:07:02 <talltyler> Fixed up my JSON town importer to use nlohmann, and got it to build! It doesnβt workβ¦but it does build. π
23:07:37 <talltyler> Making it do something is a problem for another day
23:31:12 *** Flygon_ has quit IRC (Read error: Connection reset by peer)
continue to next day β΅