IRC logs for #openttd on OFTC at 2026-10-15
            
00:00:07 <_glx_> yeah inside `{}` it's usually `:` (assignment)
00:00:41 <tony_pixel> then let's do =
00:00:54 <_glx_> `=` is only used for param assignment and constants
00:01:25 <tony_pixel> should be extremely rare inside `{}`, especially without spaces (like that sprite declaration)
00:02:54 <_glx_> usually found at top level, maybe between `[` and `]` too, but could also be in `if` blocks
00:03:46 <_glx_> but in this case it's most likely never `{named_param=xxxx}`
00:04:17 <tony_pixel> my thoughts exactly
00:04:36 <tony_pixel> we *could* do double brackets...
00:04:41 <tony_pixel> but that's awful
00:05:19 <tony_pixel> let's just do `{param_name=default_value}` and if someone gets fails we'll just tell them to put spaces around it
00:06:41 <_glx_> nmlc ERROR: "016_basic_airporttiles.nml", line 5: Syntax error, unexpected token ":"
00:07:12 <_glx_> oh of course it replaced `sprite` with nothing
00:12:52 <_glx_> https://cdn.discordapp.com/attachments/1008473233844097104/1560082998379028530/image.png?ex=6ad16c03&is=6ad01a83&hm=82b0ad8d54bd610a78bc833ad5dbb408927f25baecd2eff9aaf7ee96a74d5d5f&
00:12:52 <_glx_> that's `m.groups("")` with `"{([a-zA-Z_][a-zA-Z0-9_]+)=?([^}]+)?}"`
00:13:54 <_glx_> oh I see
00:13:57 <tony_pixel> because = is a special character in regexes?
00:14:19 <tony_pixel> or not
00:14:26 <_glx_> no because `=` is optional and anything after is the second group
00:14:35 <tony_pixel> ooh
00:14:37 <tony_pixel> right
00:14:47 <_glx_> so with or without = the result is the same
00:15:01 <tony_pixel> let me build a better one
00:16:21 <tony_pixel> also replace `+ -> *` in first group, I forgot there's a submatch for first char so it's never 0-length
00:17:24 <tony_pixel> https://cdn.discordapp.com/attachments/1008473233844097104/1560084141725196328/image.png?ex=6ad16d14&is=6ad01b94&hm=81863863c021e69f831c0ef5bd6b22fec107b225292e6cdc401fc0f816c2861c&
00:17:24 <tony_pixel> this one should work
00:18:00 <tony_pixel> `{([a-zA-Z_][a-zA-Z\d_]*)(?:=([^}]+?))?}`
00:19:35 <_glx_> I have `"{([a-zA-Z_][a-zA-Z0-9_]+)(?:=([^}]+))?}"` but I guess I miss the `{id=}` case 😉
00:20:12 <tony_pixel> `[^}]+` -> `[^}]*?`
00:20:26 <tony_pixel> so that `{a=}` is covered
00:27:10 <_glx_> after some testing the correct one is `"{([a-zA-Z_][a-zA-Z0-9_]+)(?:=([^}]+)?)?}"`
00:28:35 <tony_pixel> ah yes, ? inside second group
00:28:46 <tony_pixel> tony_pixel: also do that one
00:28:57 <tony_pixel> after `[a-zA-Z0-9_]`
00:29:15 <tony_pixel> we'll allow 1-char identifiers just in case
00:32:16 <tony_pixel> final one should be
00:32:16 <tony_pixel> `{([a-zA-Z_][a-zA-Z0-9_]*)(?:=([^}]+?))?}`
00:32:39 <DorpsGek> [OpenTTD/nml] glx22 updated pull request #358: Add: "include" keyword, allowing to include files without external tools https://github.com/OpenTTD/nml/pull/358
00:33:38 <tony_pixel> nah, fails on empty default
00:33:40 <tony_pixel> `{([a-zA-Z_][a-zA-Z0-9_]*)(?:=([^}]*?))?} `
00:33:57 <_glx_> the group must be optional
00:33:57 <tony_pixel> `*?` instead of `+` and `?` outside
00:34:02 <tony_pixel> why?
00:34:10 <_glx_> for empty default
00:34:23 <tony_pixel> if you have `*?` inside it'll be empty if `{...=}`
00:34:45 <tony_pixel> https://cdn.discordapp.com/attachments/1008473233844097104/1560088505659424870/image.png?ex=6ad17124&is=6ad01fa4&hm=a10e862eb509f30b0d7df400088748541ea4a27ce4d92b6763e90dee407ebacf&
00:34:52 <_glx_> ah yes it works with *?
00:34:59 <tony_pixel> instead of +? yes
00:35:43 <_glx_> ah flake8 failed
00:36:12 <tony_pixel> also f-string
00:36:36 <tony_pixel> generic.py:627
00:37:06 <_glx_> yup found it 🙂
00:39:00 <DorpsGek> [OpenTTD/nml] glx22 updated pull request #358: Add: "include" keyword, allowing to include files without external tools https://github.com/OpenTTD/nml/pull/358
00:39:33 <tony_pixel> now for 3 years worth of wait until someone checks the PR
00:40:48 <_glx_> I included testcases for default value
00:41:48 <tony_pixel> nice
00:42:51 <_glx_> and I had trouble to find the "ready for review" button
00:46:52 <tony_pixel> that happens
00:47:02 <tony_pixel> I still can't believe github is so slow
00:51:51 <tony_pixel> should we add relative paths now?
00:52:11 <tony_pixel> I can add them right after this one gets merged
01:02:45 <_glx_> would make sense to have relative paths with include
01:02:47 <tony_pixel> hmm, what if I use two templates and want to pass a param to the inner one
01:03:15 <_glx_> you can set param at any level
01:03:18 <tony_pixel> like `coach_subtype.pnml` references `coach.pnml` references `base.pnml`
01:03:24 <_glx_> they are passed to next one
01:03:42 <_glx_> and overwritten if redefined
01:04:03 <tony_pixel> oh wait reall
01:04:21 <_glx_> param scope start at it's "include"
01:04:38 <tony_pixel> oh riight
01:04:45 <tony_pixel> I forgot about that little part
01:04:57 <tony_pixel> extra-awesome thanks
01:05:06 <tony_pixel> I somehow thought that they're for one level only
01:06:34 <tony_pixel> https://cdn.discordapp.com/attachments/1008473233844097104/1560096516138475571/image.png?ex=6ad1789a&is=6ad0271a&hm=5d7a47c7ac097d8aa3a2d6241177312047e7f730fe2cec10f10248737b1a1d06&
01:06:34 <tony_pixel> this idiom should work for only adding property when it's passed
01:07:03 <audigex> tony_pixel: What in the blue flying fuck is going on here?
01:07:09 <tony_pixel> ehehe
01:07:18 <_glx_> I guess it should work
01:07:24 <tony_pixel> check include patch PR
01:07:36 <audigex> Every time I feel like I kinda know NML, someone throws new syntax at me
01:07:38 <tony_pixel> you can `include("file.ext")`
01:07:58 <tony_pixel> you can also `include("file.ext", and_pass="params like this");`
01:08:02 <audigex> Yeah I knew that part, hadn't seen this `{variant_group=0}` stuff though
01:08:12 <_glx_> hmm but the resulting grf will be huge
01:08:38 <tony_pixel> _glx_: shouldn't it optimize-away the `if (0) {}`?
01:08:51 <tony_pixel> also I don't intend to use it for everything lol
01:08:57 <audigex> Is that just using the params?
01:08:57 <audigex> So you've done `include("file.ext", variant_group=1)` and are using the param as `{variant_group}` (but in this case you're actually evaluating whether it's 0, rather than using it directly?
01:09:07 <tony_pixel> `{and_then_reference_them_in_code} + {with_default_values=like this}`
01:09:17 <_glx_> maybe, didn't check `if` handling
01:09:19 <audigex> Ah okay default values not eval
01:09:43 <tony_pixel> and if something doesn't exist it's replaced with empty string in compile time
01:11:02 <audigex> Gotcha
01:11:02 <audigex> I don't really have much use for it now, but I like the fact it's happening - there are a lot of projects that will benefit IMO
01:11:02 <tony_pixel> damn this patch is awesome, I can refactor all of my code and compress it tenfold
01:11:14 <tony_pixel> you can save time on variants
01:11:19 <tony_pixel> you can reuse property blocks
01:11:43 <tony_pixel> simply having `include`s as a builtin feature is awesome
01:11:53 <tony_pixel> I can now add a workspace-mode for my language server
01:12:15 <tony_pixel> you specify the root file, it computes everything in the background and you have workspace-wide autocomplete
01:12:38 <tony_pixel> you will have color support and autocomplete for things defined in other files
01:13:10 *** MinchinWeb[m] has quit IRC (Remote host closed the connection)
01:13:27 *** MinchinWeb[m] has joined #openttd
01:13:29 <tony_pixel> This solves so many problems for me that you can't even imagine how happy I am that it's finally here
01:14:59 <_glx_> indeed it seems it just skips for `if(0)`
01:16:00 <tony_pixel> even better
01:17:20 <_glx_> and for `if(<any non 0 constant>)` it includes the block without extra action 7
01:17:27 <_glx_> nmlc is smart sometimes
01:18:14 <tony_pixel> well, reduce with pure constants has its perks
01:19:29 <_glx_> but you can use vehicle id 0 as variant 😉
01:19:55 <tony_pixel> I can use 1 instead, it gets optimized away anyway
01:20:47 <tony_pixel> ooh wait
01:20:53 <tony_pixel> nvm
01:22:27 <tony_pixel> `{a={b}}` won't work, should it be allowed to?
01:22:41 <tony_pixel> probably not
01:24:58 <_glx_> `if ({variant_group=-1} != -1)` should work for any variant
01:25:28 <tony_pixel> why would `if ({variant_group=0})` not work?
01:25:48 <tony_pixel> also, badges can't be passed for example, since they require literal strings too and you can't escape double quotes
01:25:51 <_glx_> it prevents you to use 0 as group
01:26:19 <tony_pixel> oh
01:26:26 <tony_pixel> ok then
01:26:35 <tony_pixel> tony_pixel: or can you?
01:27:11 <_glx_> I think literal string support escaped quote
01:27:23 <tony_pixel> `r'"([^"\\]|\\.)*"'`
01:28:00 <tony_pixel> nah
01:28:16 <_glx_> but it's hard to run this re in my head
01:28:42 <tony_pixel> oh wait it does
01:28:48 <tony_pixel> second alternative escapes any chat
01:29:30 <tony_pixel> my bad, should add that
01:52:26 <_glx_> hmm ok a full rebuild seem to have fix my blitter crash
01:59:39 <tony_pixel> also, subbing literal strings with escapes leaves escape dashes
02:00:26 <tony_pixel> We'll solve that tomorrow, goodnight
02:05:58 <tony_pixel> if only I've been this active on university projects goddamn
02:09:15 *** WormnestAndroid has quit IRC (Read error: Connection reset by peer)
02:09:16 *** WormnestAndroid has joined #openttd
02:09:18 *** WormnestAndroid has quit IRC (Read error: Connection reset by peer)
02:09:20 *** WormnestAndroid has joined #openttd
02:09:23 *** WormnestAndroid has quit IRC (Read error: Connection reset by peer)
02:09:34 *** WormnestAndroid has joined #openttd
03:57:45 <DorpsGek> [OpenTTD/OpenTTD] rubidium42 merged pull request #16082: Codechange: always initialise PoolIDs https://github.com/OpenTTD/OpenTTD/pull/16082
04:01:48 *** Philemon has joined #openttd
04:05:19 *** Phileman has quit IRC (Ping timeout: 480 seconds)
05:04:14 *** tokai|noir has joined #openttd
05:04:14 *** ChanServ sets mode: +v tokai|noir
05:10:58 *** tokai has quit IRC (Ping timeout: 480 seconds)
06:15:47 *** toktik has quit IRC (Remote host closed the connection)
06:16:13 *** toktik has joined #openttd
06:24:17 <LordAro> tony_pixel: i'd suggest if a regex is getting that complex/hard to read it needs to be replaced with a "proper" parser (and sufficiently unit tested, etc)
07:09:30 *** Flygon has quit IRC (Read error: Connection reset by peer)
07:10:00 <DorpsGek> [OpenTTD/OpenTTD] LordAro commented on issue #16081: [Bug]: bad FPS with 40bpp-anim (35 at the menu) https://github.com/OpenTTD/OpenTTD/issues/16081
07:10:53 <DorpsGek> [OpenTTD/OpenTTD] LordAro commented on issue #16081: [Bug]: bad FPS with 40bpp-anim (35 at the menu) https://github.com/OpenTTD/OpenTTD/issues/16081
07:36:43 <DorpsGek> [OpenTTD/OpenTTD] PeterN merged pull request #16080: Add: [Script] API for managing depots https://github.com/OpenTTD/OpenTTD/pull/16080
07:37:12 <DorpsGek> [OpenTTD/OpenTTD] PeterN closed pull request #15927: Feature: [Script] AI API's to allow getting and setting depot name https://github.com/OpenTTD/OpenTTD/pull/15927
07:37:15 <DorpsGek> [OpenTTD/OpenTTD] PeterN commented on pull request #15927: Feature: [Script] AI API's to allow getting and setting depot name https://github.com/OpenTTD/OpenTTD/pull/15927#issuecomment-6187014691
07:38:40 <DorpsGek> [OpenTTD/OpenTTD] PeterN commented on discussion #16078: I think we need an AIDepot class https://github.com/OpenTTD/OpenTTD/discussions/16078
10:08:22 <peter1138> Can't they vibe-code a complete NewGRF now? https://www.tt-forums.net/viewtopic.php?t=92933
10:18:21 <reldred> disgusting
10:32:01 <peter1138> _glx_, did that segfault repeat itself?
10:34:12 *** WormnestAndroid has quit IRC (Read error: Connection reset by peer)
10:34:24 *** WormnestAndroid has joined #openttd
10:37:58 *** toktik is now known as Guest2747
10:38:04 *** toktik has joined #openttd
10:42:59 *** Guest2747 has quit IRC (Ping timeout: 480 seconds)
10:48:51 <tony_pixel> LordAro: how is it hard?
10:49:51 <andythenorth> I haven’t tried vibe coding a grf, but the robot can accurately debug and edit my templated nml
10:50:20 <andythenorth> I don’t use claude or anything fancy, but it can probably grf
10:51:38 <andythenorth> “Most grfs are the same they just need templated action 0 and realsprite paths”
10:51:57 <_glx_> peter1138: No it's fine now, I think compiler miss a header change, so video driver object was not properly constructed
10:52:07 <peter1138> _glx_, huh, very weird.
10:56:20 <_glx_> Yeah it was weird, `anim_buffer` was not initialised with `nullptr`
11:19:55 <andythenorth> https://cdn.discordapp.com/attachments/1008473233844097104/1560250869088526376/image.png?ex=6ad2085b&is=6ad0b6db&hm=cce1fd49430c5fd21cfdb4791b08dce45761d14217066f3d76b30b4d7f6333b1&
11:19:55 <andythenorth> to be clear, I'm doing this for science not advocacy
11:19:55 <andythenorth> one-shot prompt from a spritesheet
11:20:25 <andythenorth> I have quite a lot of grf in my account context, not sure this would work without that
11:20:58 <andythenorth> https://cdn.discordapp.com/attachments/1008473233844097104/1560251133690388530/image.png?ex=6ad2089a&is=6ad0b71a&hm=df8f6f1658b1bb23fcebc55f82bc8d3a43f6deae18ddcb5e63f6a69d372271a3&
11:20:58 <andythenorth> it gave me a zip of this
11:21:36 <andythenorth> if AI wasn't a massive ethical problem, and a footgun in the hands of non-developers, then I'd say grf making was nearly solved
11:21:39 <andythenorth> but as it is...
11:23:25 <Izzybee> "if you put aside all the problems, it's great"
11:23:32 <andythenorth> it's not even great
11:23:37 <andythenorth> it just democratises programming
11:23:55 <Izzybee> if you put aside all the problems, it's statistically the most mid thing possible
11:24:06 * Izzybee taps forehead
11:24:07 <andythenorth> yeah that
11:24:25 <andythenorth> I don't use it to one-shot "make me programmer"
11:26:04 * andythenorth wondering if we should change Bananas ToS
11:26:10 <andythenorth> no one-shot content
11:26:17 <andythenorth> we're probably about to drown in shit
11:26:59 * andythenorth hyperbole andythenorth
11:28:30 <tony_pixel> https://cdn.discordapp.com/attachments/1008473233844097104/1560253030752976947/fix_escapes_leaking.diff?ex=6ad20a5e&is=6ad0b8de&hm=47557032257d7cbc7a126a824009b9c7b339ed8df911ad6c586415fd09c6fa8b&
11:28:30 <tony_pixel> tony_pixel: _glx_ this works
11:28:32 <reldred> eh, I suspect all of these llm trinkets are about to start fizzling out or become prohibitively expensive
11:29:07 <Izzybee> CharacterAI declared bankrupcy a few days ago. Not gonna say it's beginning, but a girl can hope.
11:29:25 <reldred> coreweave's bonds hit 15% yields yesterday
11:29:32 <reldred> softbank is struggling to raise money
11:29:45 <reldred> openai's revenue estimates were 20b out
11:29:55 <Izzybee> _softbank_ is struggling to raise money? wew
11:29:56 <reldred> firmus IPO failed
11:30:02 <peter1138> Won't matter as the company leaders are enthralled, especially when they can pretend the chatbot is a young female secretary. "It's worth every penny"
11:30:28 <reldred> anthropics ipo is probably going to get pushed back like openai's was
11:30:35 <peter1138> Too big to fail eh?
11:30:35 <Izzybee> ~~they should hire me as a young female secretary instead, I look better in a pencil skirt than a server rack~~
11:31:33 <reldred> peter1138: the only one thats probably too big to fail would be oracle because of how much usgov shit they run, i imagine they'll get carved up like a christmas ham.
11:31:39 <peter1138> Then they'd have to pay you, and everyone knows paying staff is merely a cost, but paying for AI is an investment...
11:31:51 <reldred> the rest of them will likely fizzle out
11:32:03 <reldred> google and meta likely wont go anywhere
11:32:31 <reldred> they're not positive cashflow anymore but they aren't quite as bad off
11:32:47 <reldred> anyways, beddie-by times
11:32:57 <peter1138> Have Microsoft renamed themselves to Copilot yet?
11:32:59 <emperorjake> Character.ai was always shit, I once tried talking to a Homer Simpson one and it couldn't understand basic simpsons references
11:33:09 <peter1138> Copilot Copilot with built-in Copilot.
11:33:16 <reldred> yo dawg
11:33:46 <peter1138> I remain disappointed at all you fuckers who keep using it anyway.
11:39:39 <andythenorth> there's no point in me pretending I'm not for moral points
11:39:49 <andythenorth> we tried to build one of these things in 2008, but it was too early
11:42:24 <peter1138> I'm not saying you should pretend not to use it.
11:42:30 <peter1138> I'm saying you not use it.
11:42:35 <peter1138> ... +should.
11:42:50 <peter1138> But whatever.
11:43:14 <peter1138> "you" in general here, not specific, but also specific I guess when it applies...
11:46:08 <mnhebi> reldred: Well, Gemini doesn't need to make money by itself as it practically feeds other things in Google's lineup that are profitable..
11:46:47 <mnhebi> Google is practically situated to just wait it out till Gemini does become profitable
11:46:50 <reldred> mnhebi: Yes but it’s costing more than all of those other things are profitable
11:47:10 <reldred> And none of this shite is getting cheaper
11:47:16 <peter1138> Eventually Google will just do what Google do, kill it off without ceremony and pretend it never existed.
11:47:27 <mnhebi> Well, they aren't bleeding nearly as much as the others
11:47:52 <mnhebi> Few years, everyone else but the Chinese go poof
11:48:11 <mnhebi> Then its monopoly time
11:50:05 <mnhebi> Atm what is "degrading" the AI market is too many providers all jockeying customers with unsustainable practices
12:09:26 <audigex> peter1138: I mean, I have a young child and minimal time - my options are to use it to help speed up progress, or just not make anything. I can just about squeeze in a small amount of time to draw a few sprites, but if I had to code them too then I'd halve my already meagre output lately... and some major coding projects just couldn't have happened, I wouldn't have had time. I literally don't have
12:09:26 <audigex> enough time at my desk to do it, but I can tell the robot what to do via Discord from my phone when I'm anywhere
12:09:26 <audigex> Realistically BRTrains3 would not exist without it and so BRTrains would effectively probably die because I'd have zero motivation to hand-fix 1600 trains sprites for lighting to work with the new reversing code
12:09:26 <audigex> The updated/expanded version of the Thomas The Tank Engine set would not exist, I wouldn't have even started Emerald Trains which is in an early stage but progressing
12:09:26 <audigex> As with Andy, I could just pretend I'm not using it ... but why? So I don't get judged? It seems silly, I'd rather be up front so that people can decide whether to borrow from my projects if they have a moral objection to AI assisted code. I try to use AI as an assistant not just pure vibe-coding for stuff that matters, and I guide it heavily, but it's a MASSIVE time saver
12:09:28 <audigex> If you'd prefer I just didn't use AI then sure, the several newGRF projects I maintain can just be archived in their worse state. Personally, though, I'd rather include AI in the loop and make progress
12:09:30 <DorpsGek> [OpenTTD/OpenTTD] metablaster commented on discussion #16078: I think we need an AIDepot class https://github.com/OpenTTD/OpenTTD/discussions/16078
12:12:27 <audigex> At the end of the day you can't un-invent something, it's here to stay in one form or another whether we like it or not. I'd love for it not to exist, it directly threatens my job and that matters far more to me than my newGRFs. But it exists, and so I may as well learn to live with it - at least if I'm familiar and experienced with it, I have a chance of converting that to something in my career
12:17:26 <peter1138> You keep using and we'll keep being disappointed. You don't even need to pretend to care that people are disappointed.
12:30:16 <audigex> I mean, I wouldn't say anything if the anti-AI crowd didn't insist on telling me how disappointed they are with me
12:30:42 <audigex> What happened to live and let live?
12:47:02 <tony_pixel> audigex: they have a right to tell that, you have a right to just ignore them
12:47:15 <tony_pixel> I don't care what people say on the internet
12:47:28 <tony_pixel> If I did care, I would've died arguing on twitter
12:49:11 <tony_pixel> the thing is, ideologically it's justified to hate it, but people can have their own reasons for using something; the same way people hate a person who drew for nazi regime (don't you Goodwin's law me), but in that person's mind that's the only way to make a living
12:49:40 <belajalilija> I hope you all maintain this level of civility, thanks
12:49:41 <tony_pixel> if it allows you to virtually be active at all, we can see the motivation, but that doesn't remove the opinion
12:50:21 <tony_pixel> I had uni for 2 years and couldn't find time to draw, but I didn't resort to using ai for coding out of principle; it depends on the person
12:51:28 <tony_pixel> "it depends" not in the sense some are better and some are worse, of course
12:53:05 <belajalilija> As for my own project, i don’t use AI for code or sprites
12:53:05 <belajalilija> However i do use AI as a search engine if Google doesn’t suffice, which for more niche information is annoyingly often
12:53:42 <belajalilija> And i ofc look at the actual sources of the information and never rely on what the slop machine says
12:55:28 <belajalilija> It feels dirty to use, but if i know the information exists and is online somewhere and Google just doesn’t provide it…
12:57:47 <peter1138> Kettle -> Tea.
12:58:43 <belajalilija> Oh also
12:59:00 <peter1138> belajalilija, just remember it's not a search engine, the algorithm is fabricating it out of something that seems plausable, and may use unreliable sources too.
13:04:29 <talltyler> And there's no shortage of unreliable sources for train information.
13:06:56 <talltyler> I tend to go directly to sources I trust (often whatever Wikipedia references), rather than try to find a new source with Google.
14:02:17 *** Rubidium has quit IRC (Quit: Opt out of daily meta-discussions about AI)
14:36:14 *** jfs_ has joined #openttd
14:40:50 <will_marshall_> Even the books have mistakes. Books!
14:44:12 <andythenorth> "what is even truth?"
14:44:16 <andythenorth> OMG
14:44:47 <peter1138> Truth Social?
14:45:09 <andythenorth> ah yes, one source of Truth
14:45:16 <will_marshall_> let's see Truth Social's @gork
14:45:18 <andythenorth> Superintelligent
14:49:47 <LordAro> tony_pixel: it's hard to read, and hard to get right without weird edgecases you might not have thought of
14:50:15 <tony_pixel> that one is easy to read, it has no interlacing structures
14:50:52 <LordAro> sure, i've seen worse
14:50:59 <LordAro> doesn't mean it's a good idea
14:51:00 <tony_pixel> it's literally `{<id>[=[some text without '}']]}`
14:51:51 <LordAro> 02:27:23 < tony_pixel> `r'"([^"\\]|\\.)*"'`
14:51:54 <LordAro> is the one i was referring to
14:52:18 <tony_pixel> this one is trivial too
14:52:25 <tony_pixel> I wouldn't consider that "hard to read"
14:52:40 <tony_pixel> that goes to at least one lookaround present, for example
14:52:41 <LordAro> if you think that's nice to read i think you've spent too long staring at regexes
14:53:05 <tony_pixel> it's two alternatives and a quantifier, what's there to read?
14:53:12 <LordAro> just because you can read it, or because i can read it, does not make it easy to read
14:53:46 <tony_pixel> regexes are made to be convenient, not pretty
14:54:08 <tony_pixel> it's always ugly, I am unsure what'd you expect for a one that parses a string
14:54:18 <tony_pixel> especially with escapes
14:54:27 <LordAro> for example, i'm very much guilty of using bash scripts far too deep than is convenient (loops, arrays, functions, etc)
14:54:44 <LordAro> none of these i consider "complicated", but to others it's easily very much not
14:56:26 <LordAro> all that perl was considered "readable" by the authors at one point or another
14:56:39 <tony_pixel> still, this example is trivial even for a person that is not that much familiar with regexes
14:57:11 <_glx_> Clearly not the worst in all lexer
14:57:53 <_glx_> Nml not all (for IRC)
14:59:07 <tony_pixel> ^^ this also
15:21:36 <belajalilija> belajalilija: If Google was able to provide the info i was looking for I’d have no use for AI anymore and would go back to google even if it took longer
15:23:27 <belajalilija> peter1138: Oh i agree 10000% i only use it for finding sources for the grf and never something more serious
15:23:54 <andythenorth> google was already massively "AI" and has been for years, it just wasn't making up hallucinated answers as the first SERPS
15:24:09 <andythenorth> it has had "AI" on query matching for a long time
15:25:01 <andythenorth> free Gemini is lolz bad most of the time
15:25:18 <belajalilija> talltyler: Unfortunately much of what I’m looking for doesn’t exist on wiki, it’s mostly to do with livery years
15:26:01 <belajalilija> I already use German and French wikis where i can as they’re usually great for this
15:28:32 <belajalilija> I have some great people who provided me with sources for stuff but often theres just stuff out of their area of knowledge
15:28:52 <belajalilija> I don’t think many people here would know about italian trains for example
15:29:23 <andythenorth> just make it up 🙂
15:38:37 <belajalilija> I wish i had the mental freedom to do so xd
15:38:56 <belajalilija> If i know the info exists i need it
15:39:13 <belajalilija> I only make stuff up like horsepower for steam engines that are niche
15:44:33 <belajalilija> andythenorth: Is this the thing that Google shows when you search stuff? I’ve found it to be kinda useless yeah
15:44:33 <belajalilija> I have a chatgpt account and the 5 or so free credits you get daily suffice
15:45:12 <belajalilija> Or whatever their system is
15:45:23 <andythenorth> yes free gemini (search) is what you get replacing actual search results now on google
15:45:27 <belajalilija> You can ask them 5-10 things before they try and extract cash from you
15:45:33 <andythenorth> the thing that you have to figure out how to bypass if you want actual...search
15:46:28 <belajalilija> Ah
15:46:28 <belajalilija> The enshitification of the internet
15:47:19 <belajalilija> I long maintain that the rise of Facebook, Twitter and the later covid pandemic have destroyed much of the internet
15:47:50 <belajalilija> Some things need to be gate kept
15:51:23 <belajalilija> I believe that the EU and friendly nations have a moral obligation to create an independent online library that can be accessed for free and maintained with the money that member states collect from the taxes of their citizens
15:51:40 <talltyler> If Wikipedia gets emshittified I'm becoming a hermit
15:52:06 <belajalilija> Yeah Wikipedia is great but it’s something I’m rightfully worried for
15:55:45 <andythenorth> I mean...the foamer sites I read think wikipedia was never anything but slop
15:55:53 <andythenorth> humans make slop too
16:00:39 <talltyler> Verify what you read for sure, but Wikipedia has multiple authors so it's subject to Cunningham's Law in a way that single-author foamer websites are not.
16:03:20 <belajalilija> ^^
16:05:16 <tony_pixel> so, I've finally set up a runner to build my drawing app
16:06:10 <tony_pixel> https://cdn.discordapp.com/attachments/1008473233844097104/1560322906519773375/veles-win-demo.exe?ex=6ad24b72&is=6ad0f9f2&hm=efa2f8a8e7e7a5ee038f0d45433c8098ccb1ae053af1bfc4b4afbc1bc6d51488&
16:06:10 <tony_pixel> https://cdn.discordapp.com/attachments/1008473233844097104/1560322907056635934/veles-macos?ex=6ad24b72&is=6ad0f9f2&hm=3e141009ab97d06d3834fbff820b46aa03cb58064002ea069034fa4d301fe336&
16:06:10 <tony_pixel> https://cdn.discordapp.com/attachments/1008473233844097104/1560322907425472633/veles-ubuntu?ex=6ad24b72&is=6ad0f9f2&hm=77a0636c94bf9fca3d43cb50ac376d01be4c4848536e4b4e1aac80449411fa74&
16:06:24 <tony_pixel> if anyone wants to try to launch it I'll be grateful for the feedback
16:06:37 <tony_pixel> because for now I don't even know if it's going to launch anywhere except linux
16:08:10 <tony_pixel> oh wait, I forgot about wine, I'll try that with windows one
16:08:40 <tony_pixel> dynamic build fml
16:08:53 <tony_pixel> :gui_score_leaderboards:: dumbass award 2026
16:10:43 <peter1138> Wikipedia was best avoided... for people doing research papers, it's not peer-reviewed and could be wrong etc...
16:11:11 <peter1138> But for general purpose use, it was never really bad.
16:11:43 <peter1138> Of course the company behind it are a kinda scummy.
16:12:18 <peter1138> Begging for money when they are sitting on piles of it, etc.
16:12:23 <peter1138> Sorry "non-profit" :)
16:14:55 <andythenorth> talltyler: but each single-author foamer website is the work of an Incontrovertible Expert 🙂
16:17:04 <andythenorth> my experience of foamer world is that it black swan theory applies often https://en.wikipedia.org/wiki/Black_swan_theory
16:17:50 <andythenorth> "all express trains were hauled by a pacific locomotive (or 4-6-0 on GWR), they always had a restaurant, there was always a parcels van behind the engine, or last in the train"
16:18:05 <andythenorth> "brake vans must go at the end, and only ever one"
16:18:06 <andythenorth> etc
16:18:55 <will_marshall_> The chances of me wanting to get up and go for a long walk go up a lot when I read reddit posts.
16:19:19 <andythenorth> we should start a distributed walking group
16:19:23 <peter1138> What now?
16:20:08 <andythenorth> I was serious about 'no slop' checkbox on bananas btw, not just speaking to see how it sounds
16:20:40 <andythenorth> if fricking LinkedIn can start sanctioning slop, anyone can
16:20:52 <will_marshall_> LinkedIn is taking action against slop? I do not believe it.
16:22:08 <andythenorth> hard to believe isn't it
16:23:07 <andythenorth> https://news.linkedin.com/2026/how-linkedin-is-tackling-ai-slop
16:23:22 <andythenorth> anecdotally it's working
16:23:30 <will_marshall_> that actually seems like a good first step not gonna lie
16:23:42 <andythenorth> my daily linkedin engagement has gone back up to nearly 1 minute, instead of instantly closing it
16:24:20 <andythenorth> it was so fucking meta a few months ago, every post was a GPT authored piece of crap about automating your linkedin posting using GPT
16:48:53 <peter1138> > I wish I'm not speaking to a bot because your post seem to be generated by AI
16:49:00 <peter1138> Oh dear.
16:55:16 *** Flygon has joined #openttd
17:04:44 <peter1138> Alright, generic tile-hash sprites.
17:05:02 <peter1138> May break existing sets :p
17:08:36 <peter1138> Hard part: making a NewGRF.
17:36:19 *** WormnestAndroid has quit IRC (Ping timeout: 480 seconds)
17:39:16 *** WormnestAndroid has joined #openttd
17:55:25 <belajalilija> andythenorth: Consist end parcels vans never made sense to me
17:55:31 <belajalilija> Surely the middle would be better
17:56:46 <talltyler> But then the passengers and crew can’t walk through the train to get to the restaurant car or collect tickets 🙂
17:56:58 <andythenorth> it's very much 'operational requirements'
17:57:05 <belajalilija> talltyler: Hmm true
17:57:06 <andythenorth> but foamers are very narrow minded generally
17:57:07 <audigex> They can probably walk through at least some vans for tickets, but yeah not for the restaurant
17:57:17 <talltyler> Yeah, and having at one end is much easier for shunting
17:57:19 <belajalilija> I’m sure it happened in some countries
17:57:47 <andythenorth> middle is easier for rapid mail load/unload at some stations
17:58:32 <andythenorth> and if it's a single van that's also the guard compartment or not
17:58:40 <talltyler> In the US, Railway Post Offices were locked and train crew generally weren’t allowed, only postal employees
17:59:05 <andythenorth> some UK TPOs had offset corridors, partly for security, partly due to internal arrangements
18:02:27 <belajalilija> Forgive me Peter for I have slopped
18:02:34 <belajalilija> https://cdn.discordapp.com/attachments/1008473233844097104/1560352196669997086/IMG_8235.png?ex=6ad266b9&is=6ad11539&hm=a85ddc41c755cd2201eee8bc676e606b265ed3ea1925cfd75cd815eaa81592f5&
18:02:38 <belajalilija> https://cdn.discordapp.com/attachments/1008473233844097104/1560352211362381864/IMG_8236.png?ex=6ad266bd&is=6ad1153d&hm=b546621c8dadf723bcc2a3b1b3fe4061897f7facc64f95d8beef540556ea0244&
18:02:51 <belajalilija> I recalled it being a French or Belgian thing
18:04:26 <belajalilija> Makes sense that I’d remember this
18:04:28 *** peter1138 has left #openttd
18:04:38 *** peter1138 has joined #openttd
18:04:38 *** ChanServ sets mode: +o peter1138
18:04:39 <belajalilija> Given I’m making French and Belgian stuff for grf
18:06:57 <belajalilija> I need to ask you all a question
18:07:13 <belajalilija> Given you’re different types of train nerds to me
18:10:37 <will_marshall_> Ask me your question.
18:12:01 *** wensimehrp has joined #openttd
18:12:01 <wensimehrp> will_marshall_: Ask me anything?
18:12:05 <wensimehrp> Hey it's me...
18:12:23 <will_marshall_> Answering questions is fun! It's good for humans!
18:12:28 <DorpsGek> [OpenTTD/OpenTTD] WizardlyBump17 commented on issue #16081: [Bug]: bad FPS with 40bpp-anim (35 at the menu) https://github.com/OpenTTD/OpenTTD/issues/16081
18:15:36 <belajalilija> Hahaha i got distracted
18:15:41 <belajalilija> And i forgot what it was
18:16:29 <belajalilija> Wait
18:16:32 <belajalilija> I remember
18:17:49 <belajalilija> Wait I’ve found info
18:18:10 <belajalilija> I’ll ask if my issue persists once I’ve read xd
18:19:47 <peter1138[d]> https://cdn.discordapp.com/attachments/1008473233844097104/1560356530409439334/image.png?ex=6ad26ac2&is=6ad11942&hm=0c3d46c95d116377e14ca663e4bb679c6c9e1b9469bac8ca92d18af47e937ad6&
18:20:26 <kuhnovic> Hashing shenanigans?
18:20:43 <peter1138[d]> Context is wrong, obviously as I didn't draw anything new. This is sprite variations, with the 6 overlay rocks replacing the plain overlay rocks.
18:21:00 <peter1138[d]> Using the hash algorithm in your PR.
18:22:17 <peter1138[d]> Using std::map (not std::set, lol)
18:22:34 <kuhnovic> I love how quickly this escalates
18:23:18 <peter1138[d]> Supports variations for sprite replacements (act 0x0A) new sprites (0x05) and sprites in act 0x01.
18:23:38 <peter1138[d]> Very hacky, and kinda verbose.
18:23:58 <peter1138[d]> I.e. if you replace 100 sprites, it requires listing how many variations there are for each.
18:25:55 <belajalilija> Okay so
18:26:01 <belajalilija> https://www.jernbanen.dk/dsb_pvogn.php?Aar=1941&litra=CLE&typenr=
18:27:05 <belajalilija> https://cdn.discordapp.com/attachments/1008473233844097104/1560358367526912040/IMG_8237.png?ex=6ad26c78&is=6ad11af8&hm=7b40b4604ac991d374690be3361210ba456ed79b9dfd49f5d187a53a335ec3c8&
18:27:05 <belajalilija> https://cdn.discordapp.com/attachments/1008473233844097104/1560358367921438771/IMG_8238.png?ex=6ad26c78&is=6ad11af8&hm=32fb33ce0eb16565f57e6272e7538c6a3474ad76b2109c1c5980b9a60f97ad0c&
18:27:31 <belajalilija> Why do these have door rubbers on one end but not on the other?
18:28:06 <belajalilija> It’s a passenger car with 4 tonne luggage compartment at one end
18:28:42 <belajalilija> It was meant to be placed at the end of consists but surely designing it in a way to allow people to enter from both ends would make more sense
18:29:03 <belajalilija> As then you don’t need to rotate the carriage
18:31:42 <will_marshall_> Cost/Maintenance/It's OK to turn the train around most of the time anyway. Might also be that the locomotives it worked with weren't very friendly in terms of clearance.
18:32:03 <will_marshall_> If they had, say, a high level brake pipe sticking out of the back of the tender that might damage the gangway.
18:32:15 <will_marshall_> Also not having the gangway gives the train guard a better view?
18:32:19 <belajalilija> It also says they were typically at the south end of the carriage, DSB still does this north south thing
18:33:07 <belajalilija> Of the consist *
18:33:13 <will_marshall_> Also by having the big external plate they can be very sure that the door won't open from the inside (stops people from walking clean out the back of the train)
18:33:30 <peter1138[d]> <https://github.com/OpenTTD/OpenTTD/compare/master...PeterN:OpenTTD:sprite-variations>
18:33:31 <will_marshall_> Used to be a big problem if someone forgot to lock the back gangway door...
18:33:52 <peter1138[d]> I'm not sure I dare open a PR.
18:34:19 <peter1138[d]> It's very rough and breaks the NewGRF spec.
18:34:37 <belajalilija> will_marshall_: The black thing? What’s it for?
18:35:21 <will_marshall_> belajalilija: If folded down, to step over the coupler. If folded up, stops the doors from swinging open.
18:36:06 <will_marshall_> This is conjecture, to be clear. I am surmising this from the photos.
18:37:03 <kuhnovic> peter1138[d]: I will try to take a look at it somewhere this weekend, would love to try it out
18:37:08 <belajalilija> will_marshall_: Ahh
18:37:25 <will_marshall_> I would guess you want the doors in the parcel compartment to slide or open outwards so that if the parcels fall over the door isn't stuck.
18:37:36 <will_marshall_> (typical in the UK too)
18:37:46 <belajalilija> These exist in the uk
18:37:51 <belajalilija> Well
18:37:55 <belajalilija> One does
18:38:02 <_zephyris> peter1138[d]: ooh, that's fun
18:38:49 <belajalilija> https://cdn.discordapp.com/attachments/1008473233844097104/1560361320497418311/IMG_8239.png?ex=6ad26f38&is=6ad11db8&hm=3ae3fbb1cff19d7e303a69df2fee018f1da2269b85cfd4bc4803a23e0ceae569&
18:39:09 *** Wolf01 has joined #openttd
18:39:16 <belajalilija> Nene valley railway has one
18:39:18 <will_marshall_> Theirs has a gangway lol
18:39:30 <belajalilija> Yeah
18:39:35 <belajalilija> Idk what up with that
18:40:03 <belajalilija> belajalilija: Along with some other CL carriage(s?)
18:40:13 <will_marshall_> yeah they have some danish loco too I think
18:40:21 <belajalilija> Yeah the F
18:40:44 <belajalilija> They have a Swedish loco and railcar too i think
18:41:10 <belajalilija> The F was just a shunting loco but they existed forever
18:41:23 <will_marshall_> In the valley, straight gronkin' it.
18:43:31 <DorpsGek> [OpenTTD/OpenTTD] LordAro commented on issue #16081: [Bug]: bad FPS with 40bpp-anim (35 at the menu) https://github.com/OpenTTD/OpenTTD/issues/16081
18:45:02 <belajalilija> belajalilija: They were built in the 1890s and remained in use with DSB until at least 1970
18:45:51 <belajalilija> I know vehicle types that have lasted longer
18:45:54 <belajalilija> But still
18:46:31 <belajalilija> Someone could be born, go to school, get a job and retire in the time these were in service
18:50:44 <peter1138[d]> _zephyris: Somewhat surprised it worked first time :p
18:50:50 *** WormnestAndroid has quit IRC (Read error: Connection reset by peer)
18:53:47 *** WormnestAndroid has joined #openttd
18:58:00 <peter1138[d]> Turns out all hash algorithms end up looking quite poor :)
18:58:11 <peter1138[d]> "It's not random enough" pattern biases...
19:06:14 <_zephyris> Or is it more that they are random, but eyes don't like true random, especially in 2D tile arrays?
19:07:07 <DorpsGek> [OpenTTD/OpenTTD] PeterN opened pull request #16084: Add: [NewGRF] Generic tile-based sprite variations. https://github.com/OpenTTD/OpenTTD/pull/16084
19:07:09 <peter1138[d]> Why not :D
19:08:13 <peter1138[d]> _zephyris: Yes, we prefer a distribution that has no patterns, but that's basically not possible, and wouldn't truly be random.
19:09:04 <peter1138[d]> Anyway, anyone fancies drawing water shimmer variations... or grass tile variations... or anything really, that might look nicer than using snowing rocks in deserts :D
19:11:04 <peter1138[d]> This method also allows any number of variations, it's not fixed and not limited to a power of two.
19:11:28 <peter1138[d]> (Although technically if it's not a power of 2 then the distribution is not fully equal)
19:13:58 <peter1138[d]> Hmm, water off the edge of the map might break things, or might just end up with thee same variation.
19:31:35 <DorpsGek> [OpenTTD/OpenTTD] PeterN merged pull request #16068: Change: Extend Guru X2 helicopter life https://github.com/OpenTTD/OpenTTD/pull/16068
19:33:05 <_zephyris> Doing some reading, looks like precomputed tileable blue noise is popular... But a bit meh imo https://momentsingraphics.de/BlueNoise.html
19:33:46 <_zephyris> Could possibly break it up by using bayer and hash?
19:34:05 <peter1138[d]> Just the hash is probably fine, TBH.
19:34:11 <_zephyris> Fair enough
19:37:27 <peter1138[d]> However I was wondering what other things variations might be useful for.
19:38:41 <peter1138[d]> Most NewGRF things can explicitly do them, I guess.
19:40:42 <_zephyris> Yeah
19:41:33 <_zephyris> Enhances base set
19:41:39 <DorpsGek> [OpenTTD/OpenTTD] PeterN merged pull request #16072: Codechange: Simplify _origin_industry_tile_specs https://github.com/OpenTTD/OpenTTD/pull/16072
19:41:41 <_zephyris> Enhances terrain tiles...
19:44:04 <peter1138[d]> Probably need to handle non-viewport sprite drawing too, it'll use the original sprite for that, but with act1 and act5 that won't exist any more.
19:45:32 <tony_pixel> PeterNviaGitHub: one for the books
19:49:56 <DorpsGek> [OpenTTD/OpenTTD] github-advanced-security[bot] commented on pull request #16084: Add: [NewGRF] Generic tile-based sprite variations. https://github.com/OpenTTD/OpenTTD/pull/16084#pullrequestreview-5539023852
20:26:01 <DorpsGek> [OpenTTD/OpenTTD] WizardlyBump17 closed issue #16081: [Bug]: bad FPS with 40bpp-anim (35 at the menu) https://github.com/OpenTTD/OpenTTD/issues/16081
20:26:04 <DorpsGek> [OpenTTD/OpenTTD] WizardlyBump17 commented on issue #16081: [Bug]: bad FPS with 40bpp-anim (35 at the menu) https://github.com/OpenTTD/OpenTTD/issues/16081
20:29:27 <LordAro> well ok
20:37:17 <peter1138> I *could* completely break my system by trying to switch to Nouveau.
20:53:32 <tony_pixel> dayim
20:53:47 <tony_pixel> I did the build
20:53:57 <peter1138> That what?
20:54:02 <peter1138> *The what?
20:54:59 <tony_pixel> the *build*
20:55:04 <belajalilija> He built
20:55:09 <tony_pixel> Rob
20:55:13 <tony_pixel> are you on windows
20:55:13 <peter1138[d]> Oh! cargodest?
20:55:21 <peter1138[d]> Infrastructure sharing?
20:55:23 <belajalilija> tony_pixel: Generally yes
20:55:32 <belajalilija> But not at the moment
20:55:35 <tony_pixel> would you like to test a build of my spriting tool?
20:55:37 <belajalilija> I’m on my phone
20:56:07 <peter1138[d]> Should I delete this "cargodest" directory... ? :D
20:56:26 <belajalilija> I could, not really sure what I’d do though since i typically use Photoshop
20:57:08 <tony_pixel> I know, I would like to test the general functionality
20:58:07 <peter1138[d]> Hmm, I have an old Symbian S60 patchset?
20:58:15 <peter1138[d]> I, uh, doubt that's useful.
20:58:28 <belajalilija> tony_pixel: Can do that
21:00:27 *** Wolf01 has quit IRC (Quit: Once again the world is quick to bury me.)
21:03:22 <tony_pixel> https://cdn.discordapp.com/attachments/1008473233844097104/1560397697091895387/veles-win64-1.zip?ex=6ad29119&is=6ad13f99&hm=e47afcfecaa253bf81182c9812ab0ce2dc42d0d524643cd3514a63782b6eafa4&
21:03:22 <tony_pixel> https://cdn.discordapp.com/attachments/1008473233844097104/1560397697599414292/opengl32sw.dll?ex=6ad29119&is=6ad13f99&hm=8561665384c114b6bad870ba43a58806b6be13ba4e4209615f5b5346752f9740&
21:03:50 <tony_pixel> unzip into a folder, optionally put opengl dll there too? Brick started without
21:05:55 <tony_pixel> Ctrl+N to create files, Ctrl+O to open
21:05:55 <tony_pixel> you can set up keybinds for tools in `File > Settings...`
21:06:29 <tony_pixel> when using the select tool, one can ctrl+click to select a rectangular sprite if it is surrounded by white
21:07:08 <tony_pixel> hold ctrl+mouse to select a a union rectangle between two sprites, convenient for moving stuff 4-8 sprites at a time
21:17:40 <_zephyris> https://cdn.discordapp.com/attachments/1008473233844097104/1560401296257847396/1r_3981_shuffled.png?ex=6ad29473&is=6ad142f3&hm=59c22e1ac2a70169e230fa4b5d0283c1cbd2b0336b2a028e0405e7d1908fa7d5&
21:17:40 <_zephyris> peter1138[d]: Like this?
21:23:10 <DorpsGek> [OpenTTD/OpenTTD] LordAro commented on pull request #16072: Codechange: Simplify _origin_industry_tile_specs https://github.com/OpenTTD/OpenTTD/pull/16072#pullrequestreview-5540108780
21:23:48 <DorpsGek> [OpenTTD/OpenTTD] LordAro commented on pull request #16072: Codechange: Simplify _origin_industry_tile_specs https://github.com/OpenTTD/OpenTTD/pull/16072#pullrequestreview-5540115836
21:25:03 <peter1138> Doesn't matter how long I wait... :p
21:28:00 <LordAro> soz :p
21:28:38 <peter1138> You do have rights to make a PR though.
21:29:01 <LordAro> i have all the rights
22:12:05 <peter1138[d]> https://cdn.discordapp.com/attachments/1008473233844097104/1560414989209309214/image.png?ex=6ad2a134&is=6ad14fb4&hm=db22dd0592a17d7f40ceac223cc444025e43c6d8ea296a3c025358177ec3c26b&
22:12:05 <peter1138[d]> _zephyris:
22:13:29 <peter1138[d]> https://cdn.discordapp.com/attachments/1008473233844097104/1560415344651407400/image.png?ex=6ad2a189&is=6ad15009&hm=8edd7c8dd3edf396f886221020a61376319506a0e9597b1babfaaea9d5a89a9e&
22:14:52 <kuhnovic> I looked at the first image and didn't really see the effect... until I looked at the second one
22:15:52 <kuhnovic> It's subtle but very effective
22:18:13 <peter1138[d]> -1 * 8 0A FF \wx8001 01 \w3981 04
22:18:13 <peter1138[d]> -1 sprites/1r_3981_shuffled.png 8bpp 1 1 64 31 -31 0 normal
22:18:13 <peter1138[d]> -1 sprites/1r_3981_shuffled.png 8bpp 67 1 64 31 -31 0 normal
22:18:13 <peter1138[d]> -1 sprites/1r_3981_shuffled.png 8bpp 133 1 64 31 -31 0 normal
22:18:13 <peter1138[d]> -1 sprites/1r_3981_shuffled.png 8bpp 199 1 64 31 -31 0 normal
22:32:48 *** jfs_ has quit IRC (Ping timeout: 480 seconds)
22:52:12 <audigex> tony_pixel: Is there a Mac build?
22:53:32 <peter1138[d]> andythenorth: I think I just found my half-tile rivers patch.
22:53:46 *** WormnestAndroid has quit IRC (Remote host closed the connection)
22:53:50 *** WormnestAndroid has joined #openttd
22:53:50 <audigex> https://cdn.discordapp.com/attachments/1008473233844097104/1560425498167873559/image.png?ex=6ad2aafe&is=6ad1597e&hm=2fc795fbabd69f3f1393fc57a352dc2b7b54c9325c24452612dc62211f99e7a1&
22:53:50 <audigex> Got this error on first launch, I feel like it should probably not show that unless I actually try to open an image
22:54:44 <tony_pixel> audigex: not right now, I didn't configure one yet
22:55:03 <audigex> Aight, I can have a little play on Windows but I spend more time on my MacBook
22:55:06 <tony_pixel> audigex: yes, that's a small mistake on my part
22:55:21 <peter1138[d]> (In a file called `huh.diff` of course)
22:55:32 <audigex> Is there a development forum thread or somewhere I can post about it rather than spamming this channel up?
22:55:42 <tony_pixel> about my thing?
22:55:47 <audigex> Yeah
22:55:50 <tony_pixel> oh not yet
22:56:19 <tony_pixel> I'll do one, will take a lot of back'n'forth messages while smoothing the bumps
23:00:25 <tony_pixel> Discord channel #Veles, a NewGRF-oriented graphics editor: tada
23:07:49 *** keoz has joined #openttd
23:08:16 *** keikoz1 has joined #openttd
23:09:31 *** keikoz has quit IRC (Ping timeout: 480 seconds)
23:15:56 *** keoz has quit IRC (Ping timeout: 480 seconds)
23:28:00 <belajalilija> https://cdn.discordapp.com/attachments/1008473233844097104/1560434094720950322/image.png?ex=6ad2b2ff&is=6ad1617f&hm=1b8debae7cef25bad1c1c4a4a7d7a5068c27e992bc466644c698b58ff639308a&
23:28:01 <belajalilija> pretty fucking metal
23:28:15 <tony_pixel> yeah
23:28:53 <tony_pixel> the art patron in slavic paganism
23:29:01 <tony_pixel> hence the name for the app