IRC logs for #openttd on OFTC at 2023-12-27
โด go to previous day
00:26:10 <_glx_> reldred: my new AM5 board has RS-232 (I reused the bracket from my previous AM3+ board)
00:28:24 <reldred> _glx_: Huh thatโs neat
00:30:57 <_glx_> spent near 1000โฌ for MB, CPU, RAM, NVME, COOLER and case, and still using the old GTS450 so can't run many recent games, but openttd compiles fast ๐
00:33:24 <emperorjake> My motherboard is from 2018 and it came with USB-C on the back
00:33:41 <emperorjake> and thanks to AM4 I just upgraded my CPU so it''ll last many more years
00:34:34 <_glx_> had to upgrade from AM3+ after it decided to not boot at all after a freeze
00:39:00 <_glx_> MB are now expensive with almost no features
00:40:37 <reldred> Yeah, current gen AMD and Intel sucks for motherboards. AM4 is as far as I'm going for some time. 5800X3D is good enough for just about everything.
00:41:30 <_glx_> I had 6 sata ports on my AM3+, needed to buy an expansion card for the AM5 to be able to plug all the drives
00:41:59 <_glx_> but the new board has 3 M.2
00:42:03 <emperorjake> 5800X3D can run NetTrans at almost 2x speed so I'm happy
00:43:11 <_glx_> oh and the second X16 port is shared with an M.2
00:43:40 <peter1138[d]> Is this programming now?
00:44:08 <_glx_> you can do stuff manually in VS behind that
00:44:09 <reldred> reimplement openttd in UE5? ๐
00:47:53 <reldred> it is officially Big Boy time on my network. 1500tonne of nitrates in a 16tile long consist covering almost the entire length of the main island in meandering islands.
00:48:23 <reldred> proposal: disable TGP/original terrain gen by default and just do a preview screen and pre-bundle cpt-k's heightmaps.
00:51:26 <peter1138[d]> TGP is a bit smelly.
00:51:42 <peter1138[d]> Original is very smelly.
00:52:26 <peter1138[d]> This sort of follows on from my previous idea/suggestion, that I haven't done anything with.
00:58:43 <emperorjake> I liked the half-half aspect of the original terrain generator
00:59:22 <peter1138[d]> That was fine for 256x256 but not really for larger maps.
01:00:49 <peter1138[d]> I spent ages working on external generation stuff once and ended up with a few heightmaps and not much else.
01:01:12 <peter1138[d]> A few of them are on content download, but they're poor ๐
01:03:22 <peter1138[d]> rgb-cc (lol hsv-cc) now supports... black.
01:04:35 <emperorjake> Making NewCC obsolete one step at a time ๐
01:05:04 <peter1138[d]> Someone will complain that they can't change the interface colours...
01:08:32 <reldred> peter1138[d]: I see a steam train and I want to paint it black
01:10:46 <peter1138[d]> Hmm, I probably need to fix colour map generation / caching.
01:11:25 <peter1138[d]> I've been setting the default livery, and not fiddling with anything else.
01:16:01 <reldred> my sixteen tile long nitrates train doesn't make any profit ๐ฆ
01:16:07 <reldred> oh well, it looks cool.
01:28:42 <reldred> peter1138[d]: now you can
01:29:17 <peter1138[d]> Wow.. that's barren :p
01:29:32 <reldred> at least it isn't fluro orange
01:30:04 <reldred> Indeed it could, but it shall not, by the power vested in me by grfcodec and nmlc
01:30:18 <reldred> and pikka letting me pull his old shit apart
01:59:27 <peter1138[d]> Nice, mixed custom/preset recolours now working. Dunno why I didn't do that properly before.
02:29:03 *** Wormnest has quit IRC (Ping timeout: 480 seconds)
02:32:47 *** Wormnest has joined #openttd
03:14:19 <belajalilija> Would be cool if weโre able to have custom colours even on the group level
03:33:11 *** Wormnest has quit IRC (Quit: Leaving)
04:06:01 *** debdog has quit IRC (Ping timeout: 480 seconds)
04:30:01 <reldred> sigh, my metabase is fucked and needs to be rebuilt, BUT, I've moved grafana and influxdb over to my production swarm cluster so that's nice I suppose.
07:31:04 *** tokai|noir has joined #openttd
07:31:04 *** ChanServ sets mode: +v tokai|noir
07:38:00 *** tokai has quit IRC (Ping timeout: 480 seconds)
08:05:55 *** nanapipirara has joined #openttd
08:05:55 <nanapipirara> Has anyone ever attempted map generation that combines multiple climates? Iโm sure itโs not easy and has gameplay consequences, but itโs probably something lots of people would be interested in, right? ๐
08:06:47 <andythenorth> Canโt be done, map array has no space
08:07:16 <reldred> tropic and arctic overlap a bit yeah
08:07:27 <reldred> trees dont, funilly enough
08:07:28 <locosage> I did some climate mixing but within current openttd capabilities
08:07:35 <locosage> like using temperate trees in arctic
08:07:45 <andythenorth> -> could be done, but changes would be needed
08:08:33 <nanapipirara> Yeah, I guessed it was though, otherwise it would have existed by now ๐
08:09:38 <nanapipirara> Would make sense though, as maps can be huge compared to the original game.
08:11:58 <locosage> it's mostly ground tiles that are the problem, everything else can be moved between climates one way or another
08:12:28 <locosage> and it's not as much an issue of map array that figuring out all the transitions between different types
08:12:35 <reldred> should just extend the map array at this point. we use toss all disk space or ram.
08:13:28 <reldred> I want snowline in tropic ๐
08:14:05 <peter1138[d]> Goes it throw out the default sprite replacing system?
08:14:28 <reldred> goes it throw out limitation? those disturb me very sprites.
08:14:48 <reldred> I'm up for anything goes it throw out limitation.
08:20:34 <peter1138[d]> src/table/landscape_sprite,h
08:20:46 <peter1138[d]> Toyland replaces a lot ๐
08:21:15 <peter1138[d]> One you replace that you need 2 b
08:21:55 <locosage> toyland can be somewhat ignored as it's not fit to be a "biome" of the normal map
08:22:03 <peter1138[d]> (But that's the bare minimum, and doesn't get you climate smoothing.)
08:22:22 <peter1138[d]> It can't be ignored if you are replacing the system.
08:23:15 <peter1138[d]> Hmm, toyland replaces sprite 1... is that a cursor...
08:23:50 <locosage> yeah, but for other climates you need to mix them together when toyland can still be some separate mode without "biomes"
08:23:55 <peter1138[d]> Ah, the Zzzzz cursor.
08:24:19 <peter1138[d]> Sure, but then toyland needs special handling to NOT mix things together.
08:25:59 <locosage> depends on your implementation
08:26:22 <locosage> like I see it as some kind of "planets" each have as certain set of "biomes"
08:26:27 <locosage> toyland is a separate "planet"
08:26:45 *** mixu_78 has quit IRC (Quit: User went offline on Discord a while ago)
08:26:51 *** keikoz has quit IRC (Ping timeout: 480 seconds)
08:29:20 <andythenorth> Multiple toyland biomes
08:29:35 <andythenorth> Thatโs the missing innovation
08:31:16 <locosage> toyland could actually benefit from having a biome that is not an eyesore xD
08:32:04 <andythenorth> peter1138[d]: No smoothing. Solid fill colour for tiles between biomes. RGB configurable colour choice
08:32:58 <andythenorth> We could label the boundaries also โ< snow | desert >โ
08:33:27 <andythenorth> Do we have a way to render a font into dimetric and draw on map tile?
08:33:30 <peter1138[d]> > Bug: Snow touches desert
08:33:37 <locosage> snow is not even a groundtype logically, it's an overlay
08:34:02 <andythenorth> wellโฆ.is sand an overlay to rock?
08:34:32 <peter1138[d]> Are we mining again?
08:34:40 <locosage> send is mostly static
08:35:07 <andythenorth> Can we do everything like a projection from an OS map?
08:35:21 <andythenorth> (Or Open Street Map)
08:35:54 <andythenorth> โConiferous forestโ
08:36:12 <andythenorth> โBridleway (permissive)โ
08:36:28 <locosage> something like swamp is actually more tricky as it can appear in different biomes
08:36:31 <andythenorth> Hmmโฆ.bridleway label schema?
08:38:32 <peter1138[d]> Hmm, increase sprites to 64bpp to allow smooth CC (and 3CC?)
08:39:47 <andythenorth> I can remove Horse variants and go back to using company colour combos to select vehicle sprites
08:40:26 <andythenorth> 256 variants with 3cc (I always use white as one of the cc choices)
08:40:45 <peter1138[d]> Double it with ctrl-click.
08:43:24 <peter1138[d]> Minecraft grass... is a greyscale image that has colour applied to it.
08:43:37 <peter1138[d]> OpenTTD CC... could be a greyscale image that has colour applied to it?
08:44:21 <locosage> mask + recolour sprite
08:47:33 <peter1138[d]> CC1 = Blue channel, CC2 = Green channel, CC3 = Red channel. Each has 256 rgb values which reference a LUT, and then the 4 resultant rgba colours are mixed together.
08:47:52 <peter1138[d]> Hardware blitting needed ๐ฎ
08:48:20 <locosage> you can just do 24bpp (3d) lut with the same effect
08:49:45 <peter1138[d]> But `256*4+256*4+256*4` is a lot less than `256*256*256*4`
08:50:13 <locosage> you don't need whole 256, in practice luts like 31x31x31 are used
08:50:18 <locosage> and everything in between gets blended
08:50:45 <truebrain> another day, another attempt on getting MacOS running on my machine .... pam pam pammmm
08:52:07 <peter1138[d]> Dip into OpenTTD's vast funds...
08:52:25 <peter1138[d]> ยฃ300,000 initial loan.
08:52:27 <locosage> even 31**3 may be an overkill for the game
08:55:21 <peter1138[d]> So basically the 3D LUT is pre-calculated mixing of the 3 channels.
08:56:21 <locosage> it's not the same as 3 1d luts for each channel
08:57:45 <truebrain> eek .. downloading a recovery image from apple.com is going with .... 1MB per 2 minutes? That is going to take a while .. wth ..
08:57:48 <peter1138[d]> Extra channel for specularity.
08:58:04 <peter1138[d]> Shininess. Roughness.
08:58:11 <peter1138[d]> UV maps on a 2D sprite.
08:58:24 <peter1138[d]> Then we can "program" it all with the blueprint.
08:58:30 <locosage> peter1138[d]: that I've already done xD
08:58:41 <truebrain> lol, I retry the download a few times, and now it runs with 1gbps ... lovely ..
09:01:56 <locosage> though if you only have greyscale image it's one channel so 1d lut is enough for the full range of transformations
09:02:25 <peter1138[d]> 1 greyscale would only be 1cc.
09:02:53 <andythenorth> Someone send TB a mac ๐
09:03:00 <locosage> yeah, but for grass it's probably enough
09:03:03 <peter1138[d]> 3 greyscale can be done as red, green and blue channels, and give you 3cc.
09:03:20 <truebrain> andythenorth: I almost bought one yesterday .. peter told me off (rightfully)
09:03:23 <locosage> but 3d LUT is inf-cc ;)
09:04:42 <peter1138[d]> Then we make it work with 8bpp mode.
09:05:33 <locosage> that's actually pretty simple, 32-to-8bpp is a 3d lut too xD
09:07:05 <peter1138[d]> Hmm, palette management.
09:08:27 <andythenorth> Oof used m1 macbooks are quite expensive
09:08:44 <truebrain> Mac Mini M2 was the cheapest I could find in the Mac world
09:08:49 <peter1138[d]> And knowing Apple will be obsolete fairly soon.
09:08:54 <andythenorth> An air that sold for ยฃ999 3 years ago is ยฃ450 on ebay
09:09:30 <andythenorth> thatโs whatโฆยฃ160 / year to own it
09:10:53 <peter1138[d]> Is that why we never saw Bjarni again? TrueBrain took the letters...
09:11:43 <andythenorth> My mac is about ยฃ1.40 per day to own. Such maths
09:12:15 <andythenorth> โThatโs why millenials like me canโt afford a mortgageโ
09:12:23 <andythenorth> Lattes and macbooks
09:13:04 <peter1138[d]> If you see someone with the nick Ljgith, they did a straight swap
09:14:27 <peter1138[d]> We can't even afford cars these days, let alone houses.
09:14:46 <andythenorth> I am not a millenial ๐
09:15:07 <andythenorth> The main channel informs me I am strictly a boomer
09:15:45 <peter1138[d]> This is the main channel.
09:15:58 <andythenorth> No the other main channel ๐
09:16:46 <andythenorth> Is it coffee time?
09:17:34 <truebrain> I am following this OpenCore manual
09:17:39 <truebrain> it is not an easy manual to follow
09:17:46 <truebrain> lot of unrelated text, and side-comments
09:17:59 <truebrain> but they claim they create a MacOS boot image that works on AMD64 ..
09:18:33 <peter1138[d]> Hmm, my palette-creation code is a lot simpler now that recolour sprites are a struct instead of a byte array.
09:18:57 <peter1138[d]> Took me a while to realise I no longer need to copy r g and b parts separately :p
09:24:10 <andythenorth> Definitely coffee time
09:31:54 <truebrain> `So making a config.plist may seem hard, it's not`
09:31:54 <truebrain> What follows is a 20 page long document with screenshots with red squares that appear to mean something
09:35:57 <truebrain> okay, I could follow this guide, up till this point .. it becomes completely unreadable and makes no sense, the docs .. lovely
09:41:47 <peter1138[d]> Okay, I think I need palette reference counting.
09:50:12 <truebrain> hmm .. a nice black screen when I boot it with VMWare ... doesn't tell me anything ๐
09:51:21 <peter1138[d]> Or actually it doesn't matter I can just 'waste' IDs.
09:51:45 <peter1138[d]> Although given a custom colour remap is ~1280 bytes...
09:54:01 <truebrain> it seems I did "something" wrong with my EFI ... very helpful
09:55:06 <peter1138[d]> Ah yes, don't make 2CC & reverse 2CC remaps if 2CC isn't enabled. Why did I make a reversed 2CC remap anyway?
09:56:04 <truebrain> okay, I give up, this is not worth my time ..
09:56:53 <peter1138[d]> Huh, VS Code is doing this thing where searching by reference does not actually pick everything up... but it doesn't pickup nothing. So it looks like it's worked but it's missing results :/
09:57:49 <peter1138[d]> That makes sense. There's magic to handle NewGRF colour selection.
09:58:55 <peter1138[d]> Although, how does CBID_VEHICLE_COLOUR_MAPPING even handle 2CC remaps.
09:59:31 <peter1138[d]> Ah, variable 0x11 is SPR_2CCMAP_BASE. Weird ๐
10:10:48 <truebrain> owh, I lied, I tried one more thing, and now it does a tiny bit more .. but still not what I expect. At least it kinda starts now ...
10:15:14 <truebrain> okay, now the installer crashes somewhere .. whatever, this is just too complicated for the average joe ..
10:15:40 <truebrain> which leaves me with no way to develop for MacOS .. sad ..
10:16:30 <truebrain> well, in theory this should work on MacOS ..... so I guess we just fall back to the: ask someone on a Mac to test for you
10:18:04 <reldred> I've got a mac I can test with. No build env for OpenTTD though.
10:18:36 <reldred> It's ancient though, 2016mbp
10:22:16 <emperorjake> I've got a M2 Air and it does have a build env
10:24:35 <truebrain> if/when that PR no longer shows red for MacOS, I will give a poke for one of you to test it out, if you don't mind. It sucks in terms of debugging, but what can you do ...
10:28:17 <truebrain> hmm .. SteamWorks SDK cannot be downloaded without authentication .. hmm .. how to put it in the CI ...
10:36:01 <jfs> peter1138[d]: nah make the third channel be emmisivity in night mode
10:38:32 <jfs> or how about a snow overlay when the thing is above the snowline (and stationary for enough time)
10:38:58 <emperorjake> Not sure what that means (tried to compile 11628)
10:39:12 <truebrain> I told you to wait till the light was green! ๐
10:39:25 <truebrain> if you update to the latest, you will no longer get that error ๐
10:39:57 <reldred> I aint doing anything til someone throws me binaries ๐
10:40:09 <truebrain> so you won't do anything ๐
10:40:17 <reldred> Something along those lines ๐
10:42:36 <jfs> I wonder if the emscripten version of OTTD would be able to do OAuth with Discord and set presence status via the web api...
10:42:43 <jfs> probably best to save that for another time
10:42:55 <truebrain> or just, you know, don't ๐
10:46:28 <emperorjake> Do I need to compile the discord plugin thing as well?
10:46:35 <truebrain> yeah; working on that as we speak
10:46:56 <truebrain> it is a bit tricky to fix the brokeness of their SDK in a good way ๐
10:51:52 <emperorjake> It's saying to put stuff in folders that don't exist
10:52:06 <truebrain> still working on it; but the folder should be created on first start
10:52:55 <emperorjake> I'll wait a bit then ๐
10:53:33 <truebrain> I do appreciate your enthusiasm, but there is also a reason why I say what I say ๐ But almost there ๐
10:53:55 <jfs> truebrain: I'd still strongly suggest going with the old RPC one instead of the GameSDK
10:54:14 <jfs> since I strongly doubt the protocol itself has been deprecated, only the library implementation
10:54:41 <jfs> (and there are third-party library implementations of the same protocol)
10:55:02 <truebrain> That is an opinion without a reason .. doesn't influence my thought one way or the other, I have to admit ๐
10:56:41 <jfs> the library was deprecated for business reasons, not technical reasons. they wanted people to use that new GameSDK because they tried (at the time) to push Discord as a game distribution platform, which has now been abandoned and most of the features the GameSDK added are removed again
10:57:07 <jfs> or at least will just give you errors if you attempted to use them
10:57:12 <truebrain> still not a reason to use a 5-years-since-last-commit over an updated SDK?
10:58:01 <truebrain> I really do not see the point of using something that hasn't been updated for 5 years over something that is updated from time to time. That seems like asking for trouble? I was aiming for low-maintenance plugins.
10:59:14 <truebrain> emperorjake: okay, plugin repos updated; they should now explain how to build the plugins
10:59:18 <truebrain> and hopefully that also works on MacOS ๐
10:59:34 <truebrain> just totally done by looking at the code, as I cannot test it .. so .. let me know where you get stuck ๐
11:00:54 <jfs> maybe the reason it hasn't been updated for over 5 years is that it has not needed any updates...
11:01:11 <jfs> aka. "exceedingly stable"
11:02:38 <truebrain> yeah, sorry .. don't know how to react to that.
11:03:09 <truebrain> anyway, it feels there is a hidden agenda why you push the RPC variant over the SDK, which you aren't sharing ๐
11:04:25 <merni> jfs: Discord and stable going together?
11:05:27 <jfs> truebrain: the license. MIT versus closed
11:05:42 <truebrain> but the point of the plugin system is that the license is irrelevant, right? ๐
11:06:11 <truebrain> hmm .. somewhat-related: what license should I put down for these plugins .. especially the Steam one .. hmm
11:06:19 <truebrain> can I MIT license those plugins?
11:06:30 <truebrain> I think I can, not?
11:09:25 <truebrain> anyway, the reason I went with the GameSDK is that it is very low maintenance for us; Discord ensures it works with their network, for now and the next N years
11:09:37 <truebrain> with the RPC, you don't know what next month or next year holds
11:09:51 <jfs> the source is freely distributable, the binaries are not FSF "Free"
11:10:27 <truebrain> I know for Steam we can redistribute their binaries, but does Discord also allow that freely .. let's check ..
11:10:34 <jfs> and that's basically what MIT and BSD style licenses give you
11:13:26 <truebrain> lol, Discord's Game SDK doesn't actually mention what the license is in the download file ๐
11:15:00 <emperorjake> is this a big problem?
11:15:07 <truebrain> owh, an image was following
11:15:30 <truebrain> that is a weird error .. hmm
11:15:41 <truebrain> try to build it anyway; if it fails I know what you have to fix ๐
11:16:00 <emperorjake> I did the thing manually
11:17:09 <truebrain> possibly I fixed it; something to try after ๐
11:17:13 <truebrain> (just pushed a new version)
11:17:33 <peter1138[d]> Huh. I can do 150 miles over 4 days (not that much), yet I wander around town for an hour and I'm worn out. wtf ๐ฆ
11:18:49 <truebrain> seems `sed` on mac works slightly different than it does for me; lovely
11:18:56 <truebrain> peter1138[d]: which reminds me, I should buy lunch ๐
11:19:31 <truebrain> owh, the arch detection broke
11:19:44 <truebrain> `if (CMAKE_OSX_ARCHITECTURES STREQUAL "arm64")` clearly didn't do its job ๐
11:20:19 <emperorjake> specified arm64 in cmake
11:20:34 <truebrain> owh, `CMAKE_OSX_ARCHITECTURES` is something we add ourselves in OpenTTD ...
11:20:43 <truebrain> right .. I need to find a way to autodetect that ๐
11:21:42 <truebrain> ah, no, you kinda want to set that yourself before compiling .. I always forget how odd this all is ๐
11:22:30 <truebrain> also means I need to figure out how to do universal builds ... lovely
11:22:49 <andythenorth> hi is this the gaming PC support channel still? ๐
11:23:23 <merni> truebrain: I've always wondered... CI builds on every OS, right? Is there a way for it to spit out those compiled binaries into something we can download?
11:23:34 <xarick> noob question, is there a difference between` const Vehicle *v` and `Vehicle * const v`
11:23:37 <emperorjake> is this the file I put in the OpenTTD game files?
11:23:58 <truebrain> emperorjake: in `social_precense/discord/`, yes
11:24:24 <truebrain> merni: in theory; but you kinda don't want people to be able to download binaries from CI (the testing part of PRs)
11:24:37 <truebrain> they are only being build to validate the code is okay
11:24:55 <truebrain> we have a release pipeline to build binaries from a PR that you can download
11:25:08 <andythenorth> Windows 11 won't open Settings app, does that mean Windows needs reinstalled?
11:25:10 <merni> ist there some security hole with downloading PRs from CI or something?
11:25:15 <truebrain> different things different jobs. A CI is a CI; not a binary-publish-system ๐
11:25:22 <merni> andythenorth: Windows needs unin
11:25:39 <truebrain> for example, on Linux we build on the CI some crazy combinations
11:25:46 <truebrain> you don't want users to download those .. it doesn't add value
11:26:04 <merni> Sure, but for the more usual things it might save some effort locally compiling
11:26:25 <truebrain> yeah ... the CI is not your compile-farm ๐
11:26:58 <merni> No but it's already doing the work of compiling, I just thought why throw away all those results and make people do it again :p
11:27:05 <andythenorth> Also child #1 has a gaming headset, but it's a combined mic / audio out 3.5mm jack (or bluetooth). The PC has split mic in / audio out jacks, and no bluetooth, so I guess we have to buy a splitter cable?
11:27:08 <merni> I get the objection about that not being its purpose though
11:27:11 <truebrain> the result is to validate the PR; not to play the game with ๐
11:27:47 <xarick> Which one is better correct if I wanna use `auto`?
11:27:47 <xarick> `const auto v = Vehicle::Get(vehicle_id);` or
11:27:47 <xarick> `const auto *v = Vehicle::Get(vehicle_id);`
11:27:47 <xarick> `const Vehicle *v = Vehicle::Get(vehicle_id);`
11:27:57 <merni> andythenorth: Hm last time I had a desktop I was able to plug in my headphone into the "headphone" jack and still use the mic on it
11:28:23 <xarick> yes, they both work, but I wonder why
11:28:50 <andythenorth> merni: Yes, no worky ๐
11:29:15 <truebrain> jfs: Discord suggests in their documentation that they might already have an OpenTTD Application used for the auto-detection and stuff .. and they claim you can right click the application and copy the ID. I just can't find that anywhere in Discord. You happen to know?
11:29:44 <truebrain> (I am talking about their note `If you're integrating our SDK into an already-released game, there's a good chance that we may already have an application in our database for your game! Reach out to our Dev Support to learn more`)
11:30:04 <truebrain> emperorjake: btw, start OpenTTD with `-dmisc=1`, it will tell you if it found a social plugin
11:32:38 <emperorjake> It found something, but not quite
11:33:40 <truebrain> and here it is named without `lib` again? ugh
11:33:52 <truebrain> rename `libdiscord..` to `discord...` in the `social_presence` folder, and try again please
11:35:14 <xarick> Intellisense is giving me the creeps
11:35:23 <xarick> that's not a railtypelabel
11:35:34 <xarick> it was supposed to be a VehicleID
11:35:42 <merni> Not so intelligent or sensible then
11:37:25 <jfs> truebrain: interesting thing is the `#game-sdk` channel there is archived ๐
11:38:24 <peter1138[d]> xarick: you can ignore that.
11:38:49 <truebrain> ugh, I was going to get some lunch. Back later.
11:38:50 <locosage> _zephyris: oh, so apparently I did pretty much the same thing yesterday with my palette generation without even watching the video
11:38:59 <locosage> except oklab is apparently even better than cielab
11:39:18 <emperorjake> ayy it's working now
11:40:14 <truebrain> emperorjake: Owh, yes, we need to sign it..
11:40:28 <merni> I can see Jake playing openttd though :)
11:41:18 <truebrain> But nice, it works. That is great. Now we just need to clean up the small details .. I pushed a new version that should fix all the issues you mentioned
11:41:21 <merni> Hm, "Singleplayer - 64x64" - is the map size really that important?
11:41:33 <truebrain> Also, mind testing if the Steam plugin compiles?
11:41:42 <emperorjake> it's certainly doing something now ๐
11:42:30 <truebrain> merni: Yeah, it kinda looks nice. Going to add the climate too ๐
11:45:47 <emperorjake> Yep, I'll try the Steam one now
11:46:50 <emperorjake> Lots of things you could add, e.g. company name, current money/profits, even actions like "surveying map" or "laying rail"
11:48:55 <jfs> truebrain: well the protocol is not deprecated at least regardless of which library you use to to community with the discord client
11:49:32 <merni> emperorjake: I feel like the latter might slow things down on the game
11:49:42 <merni> company name might be nice thugh
11:52:59 <emperorjake> truebrain: Steam version compiled without issues ๐
11:53:28 <emperorjake> but I'm guessing it'll only work if I actually run the game through steam?
11:58:41 <truebrain> Kinda. It should load, but doesn't know what game, so it doesn't do anything
11:59:12 <truebrain> You need to create a magic file for that
11:59:51 <truebrain> in the same folder as OpenTTD binary is, make `steam_appid.txt` with `1536610` in it
12:01:05 <truebrain> emperorjake: Tnx a lot for testing; that is good news ๐
12:01:13 <truebrain> now I just need to automate the building, and the signing .. and that part is done ๐
12:01:23 <truebrain> happily surprised MacOS "just works" ๐
12:02:58 <emperorjake> truebrain: glad to help ๐
12:04:36 <truebrain> You saved me 700 euros ๐
12:06:23 <emperorjake> Great, I'll send you the bill then ๐
12:08:25 <locosage> peter1138[d]: can you somehow mark in sprite aligned zoom levels that were not provided and so are scaled automatically?
12:14:20 <peter1138[d]> Not easily, that information isn't readily available.
12:29:25 <peter1138[d]> Crap, I've broken it ๐ฆ
12:35:23 <peter1138[d]> Yay, I've fixed it.
12:35:34 <peter1138[d]> `*it++` is not `(*it)++`
12:35:46 <truebrain> no, they both look diferent
12:35:55 <truebrain> did you benchmark the difference?
12:36:02 <truebrain> ran a game for a few days to see if it is faster?
12:37:09 <peter1138[d]> It meant I assigning the same palette/sprite ID to every custom remap ๐
12:39:17 <peter1138[d]> Hmm, std::array for custom presets, or std::vector...
12:39:27 <peter1138[d]> (Not for performance reasons :p)
12:40:04 <peter1138[d]> UI is perhaps more awkward with vector.
12:41:32 <truebrain> `sed: 1: "src/discord_sdk/ffi.h": unterminated substitute in regular expression` .. still not sure what causes that
12:41:38 <truebrain> `sed -i 's/#include <stdint.h>/#include <cstdint>/' src/discord_sdk/ffi.h`
12:41:40 <truebrain> that seems fine, not?
12:42:03 <truebrain> not an issue on Linux or GNU Bash
12:42:10 <truebrain> only MacOS doesn't appreciate the statement ..
12:43:05 <truebrain> also fun, on CLang, it fails on `#include <chrono>` ... wuth?! ๐
12:44:38 <truebrain> sadly, adding "" doesn't work on Linux
12:45:14 <truebrain> so ... I guess an old-style `sed -i` ..
12:45:30 <truebrain> will test on Mac in a bit ๐
12:45:54 <truebrain> in C++20 you can do:
12:45:55 <peter1138[d]> But may end up evaluating to just `-i` on Mac.
12:45:56 <truebrain> static OpenTTD_SocialPlugin_v1_PluginApi api {
12:45:56 <truebrain> .name = "Discord Social Presence",
12:46:07 <truebrain> making it very explicit
12:46:08 <Rubidium> or might it be that mac doesn't have the -i extension of sed?
12:46:14 <truebrain> but clang and C++20 gives weird errors
12:46:24 <peter1138[d]> It does, but it's a different syntax.
12:46:43 <peter1138[d]> OpenTTD does not compile as C++20 ๐
12:46:53 <truebrain> well, `#include <chrono>` fails
12:46:59 <truebrain> so that is just terrible ๐
12:47:08 <truebrain> peter1138[d]: it does ๐ฆ
12:47:37 <truebrain> ```cat src/discord_sdk/ffi.h | sed 's/#include <stdint.h>/#include <cstdint>/' > src/discord_sdk/ffi.h.tmp
12:47:37 <truebrain> mv src/discord_sdk/ffi.h.tmp src/discord_sdk/ffi.h```
12:47:48 <peter1138[d]> Something non-empty? Seems to defeat the point of in-place if it needs an extension...
12:48:35 <Rubidium> seems the mac version wants the file extension after -i?
12:49:03 <truebrain> it can suck my balls ๐
12:49:17 <peter1138[d]> truebrain: `<` instead of cat?
12:50:10 <peter1138[d]> Someone is going to be pedantic about a useless `cat`, and it might as well be me ;D
12:51:09 <peter1138[d]> Hmm, deleting a group needs to delete its palettes.
12:51:34 <truebrain> hmm, clang is not wrong for the error it gives .. just not really a way around it for me ๐
12:55:02 <truebrain> ofc it does work locally, so .. how to debug .. ๐
12:58:35 <truebrain> if I use C++17, all targets except MSVC work
12:58:37 <truebrain> `error C7555: use of designated initializers requires at least '/std:c++20'`
12:58:44 <truebrain> if I use C++20, clang fails on GitHub Runner ..
12:59:42 *** gelignite has joined #openttd
13:02:09 <truebrain> using `clang-15` solves the issue .. fineeeeee
13:02:26 <truebrain> reported in October to GitHub .. still no fix ๐ฆ Sad
13:06:47 <LordAro> truebrain: sounds like you need a factory pattern rather than designated initialisers :p
13:06:48 <truebrain> some people are strange ๐
13:07:26 <truebrain> I don't even understand what you are saying
13:07:40 <truebrain> and I am guessing you say the 40% without knowing the context, so .. yeah ๐
13:08:11 <truebrain> so I don't understand the 60%, and the 40% most likely doesnt apply ๐ Sorry ๐
13:10:18 <LordAro> having read most of the last hour, you're trying to use designated initialisers to "make it very explicit". instead of c++20 things, how about some functions? NewSocialPlugin().setName("foo").setOtherThing(45); ...
13:12:53 <LordAro> i still feel like some information is missing then
13:13:02 <LordAro> that link doesn't give me any more context than i had already
13:13:15 <truebrain> we are filling a C-struct to hand over to OpenTTD
13:13:26 <truebrain> that is what those lines of code do
13:13:34 <truebrain> it is a struct; not a class ๐
13:13:43 <truebrain> a C-struct, I should say
13:13:47 <truebrain> not those pesky C++ structs ๐
13:14:06 <LordAro> so what does C++20 & designated initialisers have to do with anything?
13:14:12 <truebrain> those lines of code
13:14:16 <truebrain> those `.name = ..` you see
13:15:01 <xarick> "social steam", phrased like that sounds like it's some sort of sauna
13:15:49 <LordAro> truebrain: this is why i suggested a factory pattern
13:16:05 <truebrain> so you want to write a complete wrapper around a C-struct just .. for what? ๐
13:16:24 <LordAro> which you were running into issues with
13:16:25 <truebrain> because C++20 is scary? I am not sure I follow the argument ๐
13:16:45 <truebrain> no, I was running into issue with the GitHub Runner, where they managed to have a clang (14) with an incompatible libstdc++ for C++20
13:17:00 <truebrain> turns out, older libstdc++ have an invalid constexpr defined
13:17:04 <truebrain> which is hilarious on its own ๐
13:17:11 <truebrain> (and C++20 is more pedantic about this)
13:17:57 <LordAro> i didn't realise this was specific to an old version of clang
13:18:23 <truebrain> I did mention that in my rant, but that is okay ๐
13:18:35 <LordAro> i didn't connect them together
13:18:43 <truebrain> the alternative would have been to not name the fields in the struct initialization
13:18:48 <truebrain> old-style-C initializers
13:19:00 <truebrain> even that before adding C++ wrappers, sorry ๐
13:19:47 <LordAro> is there going to be problems if a plugin is linked against a newer (or just different) version of libstdc++ than OTTD
13:20:00 <LordAro> or rather, different C++ version
13:20:00 <truebrain> it shouldn't; as we exchange information with a C-struct
13:20:51 <truebrain> ofc the final release will be build with Linux-ancient, to make sure we use as little as we can from the libc
13:21:51 <LordAro> yeah, think it should be fine, having thought about it
13:21:59 <truebrain> it is how Linux works ๐
13:22:08 <truebrain> it is how Linux ticks!
13:22:34 <truebrain> even different mallocs should "just work"
13:23:00 <LordAro> i know dlopen caches dependences, so ottd would load libstdc++, then load the plugin which then wouldn't load any different libstdc++ because it's already initialised
13:23:03 <jfs> as long as the ownership of memory blocks is clearly defined it should be safe
13:23:27 <LordAro> but i guess the library is suitably designed such that there's no global state or anything daft in the library itself
13:23:37 <jfs> like like "this pointer is to memory allocated by the plugin, if OTTD wants to keep the data around it makes its own copy of it in its own memory"
13:23:42 <LordAro> (unlike many of the libraries i deal with normally)
13:23:42 <truebrain> LordAro: yup; and their functions are versionised. So it only breaks if you use a function that is newer than the installed library
13:24:19 <truebrain> this is why we compile linux-generic with a REALLY old crappy Linux libc ๐
13:24:30 <truebrain> so there is a high chance things work ๐
13:24:53 <LordAro> we made plans at work a few weeks ago to move off centos7 to almalinux8
13:25:29 <LordAro> gone are the dark days of having to find things compiled against RHEL5
13:35:44 <truebrain> why do I always forget how you upload stuff to a GitHub release ...
13:36:21 <_glx_> oh workflows were disabled (60 days thing)
13:37:07 <truebrain> hmm .. I figured this out a while ago, how to upload files from GitHub Actions to Releases
13:37:16 <truebrain> but I can't remember where I did that ..
13:37:47 <_glx_> nml uses that (and grfcodec too now)
13:38:51 <_glx_> `gh release upload ${{ github.event.release.tag_name }} $archive`
13:39:08 <_glx_> with $archive containing the filename
13:40:38 <_glx_> grfcodec does `gh release upload ${{ github.event.release.tag_name }} bundles/*`
13:42:29 <_glx_> annoying thing is `gh` needs to be in a git repo (I fake that for grfcodec as VCS info is removed from the source bundle)
13:44:56 <truebrain> I have to create a stripped-down version of OpenTTD's release flow .. so much joy .. /s
13:45:59 <peter1138[d]> I think it's time for a new battery. I really need to find my rechargeables ๐
13:50:35 <_glx_> BTW I don't know when it started, but WITH_ASSERT doesn't work on macos (something is including cassert/assert.h after stdafx.h) and that should explain the warnings for macos nightlies
13:52:05 <truebrain> maybe emperorjake can help you out there ๐
13:52:25 <truebrain> (sorry, showing here that you can compile on MacOS is a terrible choice ๐ ๐ No, it is appreciated, really ๐ )
14:00:15 <truebrain> do we also need to sign DLLs on Windows?
14:00:21 <truebrain> it didn't show me any popup .. so I guess not?
14:00:39 <peter1138[d]> Possibly for Windows Store installs?
14:27:18 <truebrain> tnx _glx_ , the grfcodec was of great help ๐
14:31:57 <truebrain> hmm .. one minor thing to solve with BaNaNaS integration .. you only want one discord plugin ..
14:32:04 <truebrain> normally we leave old versions on disk when you upgrade
14:32:08 <truebrain> but that can't be the case here
14:35:12 <truebrain> well, maybe not aim for that in OpenTTD 14.0 ๐
14:35:33 <andythenorth> "so a feature like never_expire_vehicles. but can be toggled in the buy menu"
14:36:22 <talltyler> Are you making a suggestion or quoting Reddit? ๐
14:36:40 <talltyler> It sounds almost like the hide button but it does the opposite
14:37:05 <talltyler> And does it change the setting for al vehicles, or mark on vehicle to stick around forever?
14:37:50 <andythenorth> it's just roleplay nonsense, not game progression
14:37:53 <belajalilija> I have a suggestion
14:38:19 <belajalilija> Allow hidden and remanded vehicles to be exported in a text file that can be imported
14:38:37 <talltyler> Changing the setting globally sounds less useful, especially because you might want to run `resetengines` as part of the process
14:38:47 <talltyler> Marking a favorite engine to never disappear sounds more useful
14:39:35 <Rubidium> truebrain: have you thought about sub folders for the different versions of the OpenTTD presence API? So the discord one could contain v1, v2 and v3. That way it would be possible to provide a Bananas download that works for a number of versions of OpenTTD, and remove some of the trouble when going from master to release and back regularly
14:39:35 <belajalilija> Favourites would be a cool feature too
14:40:00 <truebrain> the current idea is that plugins support all previous APIs
14:40:08 <talltyler> Essentially, what if you could set the `never expire` flag in-game and store that in the save instead of the GRF file?
14:40:30 <andythenorth> I could also just life-extend some vehicles in Horse
14:40:40 <andythenorth> hmm, how about a parameter for every vehicle?
14:40:44 <truebrain> Rubidium: more exact, how the current API is designed, a plugin can support multiple API versions with a single binary
14:40:45 <andythenorth> how many params do I get?
14:41:05 <talltyler> Nah, pick your favorites and hard-code them so they can be our favorites too ๐
14:41:37 <talltyler> Or just freeze time
14:42:02 <truebrain> and, just so it has been said: I hate MacOS universal binaries ๐ฆ
14:44:23 <andythenorth> talltyler: This is slightly inspired by trying to envisage time freezing ๐
14:45:15 <andythenorth> in role play, there are lots of `gen n - 1` express engines that can still be used for `gen n` freight and suburban
14:45:28 <andythenorth> but Horse removes them quite aggressively ๐
14:45:52 <andythenorth> maybe a parameter is needed
14:46:34 <emperorjake> Buy a bunch before they expire so that you have spares
14:47:34 <truebrain> _glx_: I now get `HTTP 403: Resource not accessible by integration` when uploading files ๐ฆ
14:47:55 <andythenorth> emperorjake: also very roleplay ๐
14:48:04 <andythenorth> there's already an extended_vehicle_life python attr
14:48:24 <andythenorth> might just extend model life if that's set
14:49:16 <truebrain> truebrain: nevermind, I forgot to flip the switch that Workflows can write ๐
14:51:06 <truebrain> emperorjake: can I ask you to try the binaries created by that tag; do they still work?
14:52:07 <talltyler> โVehicles never expireโ is currently a boolean on/off. We could extend it to โNone/All/Only ownedโ where the last option keeps any engine (locos, wagons, ships, planes, etc) that you already own in the buy menu. Once you sell or autoreplace all copies of it, itโs gone, but as long as you own at least one, you can continue to buy new copies of it.
14:52:07 <talltyler> The one sticking point is multiplayer. Do you keep them around as long as one player owns one? Or only your company?
14:53:50 <jfs> as long as anyone owns one would make the most sense, "the manufacturer keeps supporting vehicles that are still in active use"
14:54:02 <jfs> (which is of course not very realistic)
14:56:45 <emperorjake> truebrain: Seems like it's looking in the wrong place
14:57:04 <truebrain> emperorjake: k; let me try to fix that .. I know why it is doing that, so that helps ๐
14:57:25 <talltyler> Assuming non-expired vehicles donโt get the extreme reliability drop, thereโs some โrealismโ precedent to that where you can get your engines rebuilt every decade or so
14:58:32 <locosage> jfs: "someone plz keep one sh125 in the depot so new companies can actually make money"
14:58:51 <emperorjake> talltyler: I really like that idea, I would use it all the time instead of just turning expiry off
14:59:02 <talltyler> locosage: Yes, why not enable new ways to play the game?
14:59:16 <talltyler> It would be a server-wide setting so nobody is forced to use it ๐
15:00:44 <peter1138[d]> Heh, I was trying fix group liveries but they are already a bit broken.
15:00:46 <emperorjake> truebrain: Still not working
15:01:00 <xarick> `openttd.exe -snull -mnull -vnull:ticks=300 -d script=9 -G 1 -g -x -Q -QQ >> log.txt 2>&1`
15:01:00 <xarick> question! Can -Q and -QQ be used together?
15:01:06 <peter1138[d]> (Fix with custom-CC, but I see I need to fix in vanilla)
15:01:15 <truebrain> emperorjake: that is odd ... you sure you replaced the files? (sorry for the hopefully stupid question ๐ )
15:01:34 <emperorjake> Yes, the error is slightly different
15:01:41 <truebrain> `discord_game_sdk.dylib` is in the same folder?
15:02:04 <truebrain> so why can't it find it ... hmm
15:02:17 <jfs> talltyler: well, if you play with breakdowns, maybe it would be reasonable that the max reliability goes from initial to maximum, then when the regular end-of-availability approaches it starts dropping, but only to halfway between maximum and minimum as long as any are still in service, and when none are in service it begins dropping the final bit
15:02:19 <xarick> > -Q = Don't scan for/load NewGRF files on startup
15:02:19 <xarick> > -QQ = Disable NewGRF scanning/loading entirely
15:02:47 <truebrain> emperorjake: can you check for typos, that the filename is really correct? `$ORIGIN` means: same folder as the other dylib
15:02:54 <locosage> talltyler: idk where that original quote came from but IMO having a buy menu toggle to hide previous generations would be more useful
15:02:57 <jfs> xarick: the Q is for "quick"
15:05:10 <jfs> the idea of the -Q option is to allow you to have a faster game startup when you're debugging/testing something where you don't care about NewGRFs and don't want to manually clear out your folders
15:05:20 <emperorjake> truebrain: Looks right to me
15:05:56 <truebrain> so why is your custom build library working, and this isn't .. that is just annoying
15:05:59 <jfs> (psst, the discord-rpc library does not have a dynamic loaded component but just statically links)
15:06:08 <truebrain> yes, and that solves Steam, GOG, ....
15:06:21 <truebrain> please, if you want to be annoying, do it with the right parts ๐
15:06:58 <jfs> but yeah the library path in the executable header is really annoying in macos
15:07:21 <truebrain> hmm ... would it be the universal part, that is being a nag ..
15:08:10 <truebrain> emperorjake: What does `otool -l libdiscord-social.dylib | grep -A2 RPATH` show you?
15:09:35 <truebrain> owh, it should be `@loader_path` .. and earlier versions only worked because I made another fuckup .. nice
15:10:59 <truebrain> okay, so at least both are correct; tnx ๐
15:11:52 <_glx_> $ORIGIN is some macos magic ?
15:12:06 <Rubidium> xarick: -QQ is basically -Q but without limiting it to startup, so essentially -QQ is a stronger -Q and as such the -Q doesn't matter. Having said that, -Q -Q is equivalent to -QQ due to the way the parameter processing works
15:13:03 <jfs> yes it just counts the number of Q flags on the commandline, a single one activates the first mode, two or more activates the second mode
15:13:16 <talltyler> locosage: Itโs not a quote, just my idea. We donโt have โgenerationsโ in OpenTTD so that would be a spec extension similar to variants. I donโt want to do that. ๐
15:15:56 <locosage> well, it can be inferred with some heuristic. like same type/size but better stats except for cost
15:19:07 <emperorjake> truebrain: It found the file, but now it says incompatible architecture
15:19:30 <truebrain> let me fix that ๐
15:20:10 <truebrain> I made our library universal, but not Discord's
15:22:38 <truebrain> Hopefully that should be it ๐
15:23:06 <_glx_> and I though dll on windows was a pain ๐
15:23:11 <talltyler> As much as I love Iron Horse, I donโt think we should design the game around it ๐
15:23:18 <truebrain> universal binaries are the worst to get right .. but once they work, they work
15:24:36 <truebrain> and Discord shipped those libraries a bit awkward
15:24:43 <truebrain> (now is a good time to mention Discord RPC jfs ๐ )
15:25:24 <truebrain> okay, Linux works, Windows works .. if MacOS now works, I at least have a template for these plugins ๐
15:26:00 <emperorjake> Nope, same error as before
15:26:09 <truebrain> hmm .. wuth? That is .. hmm
15:27:06 <_glx_> I guess we are the rare people to provide universal builds ๐
15:27:23 <truebrain> what does `file libdiscord-social.dylib` tell you, and `file discord_game_sdk.dylib` ?
15:27:45 *** metwo26 has joined #openttd
15:27:45 <metwo26> what is new in open ttd
15:28:05 <truebrain> owh, no, I see what goes wrong ... hmmm
15:28:18 <_glx_> metwo26: depends on the reference point
15:28:20 <jfs> metwo26: since when? there's new things all the time
15:28:29 <emperorjake> truebrain: second one days x86_64 only
15:28:53 <jfs> all release versions of the game have a changelog text file included
15:28:55 <truebrain> yeah, okay .. it makes sense ... just how to fix it .. hmmm ...
15:29:39 <_glx_> most likely arm64 will never be able to load x86_64, unless macos has some internal magic for that
15:29:47 <metwo26> General sense, for 13.5 maybe something to look out for?or something in 13.4 that was made better
15:30:11 <emperorjake> There's not likely going to be a 13.5
15:30:17 <_glx_> 13.5 (if there's one) won't have new stuff anyway
15:30:21 <jfs> for release versions, just look at the changelog or the website
15:30:37 <andythenorth> talltyler: I think it's neat, but hard to explain, and prone to mistakes ("sold the last one") ๐
15:30:40 <emperorjake> 14.0 is the one to look out for, sometime next year, many new features coming
15:30:52 <jfs> yeah new features are only really in x.0 versions, while x.1, x.2 etc versions are bugfix releases
15:31:59 <metwo26> 14.0 ill look out for that
15:32:25 <truebrain> that moment you didn't change anything for some files, and now it fails in some weird way .... GitHub Actions .. why are you doing this to me ๐ฆ
15:32:51 <metwo26> any parity coming for openttd an openttd jgr at any point
15:33:45 <jfs> JGR's patchpatch is somewhat also like an experimental ground to see what things work and what might not be as great ideas in the long run
15:34:19 <truebrain> I remove the release and make it again in the GitHub Interface, and now it works .. pfew, it was not me ...
15:34:20 <jfs> and then when things become well enough understood someone might try to port or re-implement them in the official version
15:34:46 <truebrain> official -> finally
15:34:56 <truebrain> both are pretty official ๐
15:35:15 <metwo26> sounds well thoughout
15:35:16 <jfs> right that was the word I was looking for
15:36:23 <metwo26> I like what you guys have done with the jgr and hope to see more in the vanilla version
15:36:35 <jfs> one of those things you might not know about OpenTTD: You can load a saved game from any previous, released version, in any new version, and continue playing it. You can even load a saved game from the original Transport Tycoon Deluxe (1995) in OpenTTD!
15:37:20 <metwo26> Ohh i have and that is a really nifty little thing
15:37:30 <metwo26> but sometimes not praised enough
15:40:49 <peter1138[d]> (I guess nightlies are out of dates...)
15:41:30 *** Flygon has quit IRC (Quit: A toaster's basically a soldering iron designed to toast bread)
15:41:45 <emperorjake> truebrain: working now ๐
15:41:54 <truebrain> good ๐ So it is just my `file` that reports something weird
15:42:06 <truebrain> can you paste me what your `file` reports on `discord_game_sdk.dylib`?
15:43:30 <truebrain> so that works, nice ๐
15:43:36 <truebrain> another big hurdle, done
15:44:30 <truebrain> yeah .. need to sign those binaries
15:44:40 <truebrain> we have the code for it, but I can't do that from my fork
15:45:32 <truebrain> now to figure out how to download the SteamWorks SDK from GitHub Workflows ...
15:48:09 <truebrain> so the first thing you do is look how others do it
15:48:25 <truebrain> Godot uploads each SDK version into some repository, and use that ๐
15:48:27 <truebrain> that isn't promising ๐
15:50:21 <alfagamma7> discord integration
15:51:34 <truebrain> that really seems to be the common solution .. create a private repo, upload the SDK there .. lol
15:56:41 <truebrain> ha, but if you use the direct link, it is open to download without authentication
15:57:34 <peter1138[d]> Stupid previews ๐ฎ
15:58:07 <truebrain> that is .... well ... one way to do it
15:58:19 <locosage> that's a new meaning to double chin...
15:58:20 <alfagamma7> Hmm seems like that girl's stomach is gone
16:00:51 <truebrain> hmm ... okay, so I did a curl on the SDK, and I could download it, but when I do it again, I cannot ...
16:01:08 *** Wormnest has joined #openttd
16:03:11 <peter1138[d]> Ah yes, I need to rebase onto this PR.
16:03:22 <alfagamma7> Will this be added to 14.0?
16:22:51 <jfs> depends on if it can be finished to a good enough quality in time
16:23:03 <peter1138[d]> As if there's a schedule... ๐
16:23:27 <jfs> but yes "we want to have this in the next major release"
16:24:49 <truebrain> meh; all solutions around the Steamworks SDK require me to create a PAT .. and I was so happy we finally got ride of those ...
16:25:51 <truebrain> I even can't find a way to login to the website to download it via GitHub Workflows, despite me having valid credentials ... lol
16:26:35 <truebrain> such a stupid thing to get stuck on
16:26:52 <jfs> why do they treat a bunch of header files as a trade secret?
16:27:00 <truebrain> also binaries, but dunno
16:27:57 <truebrain> if only it was available on Steam itself, that would have worked out too
16:28:18 *** Hanicef has joined #openttd
16:29:03 <truebrain> I even tried if GitHub wouldn't be whitelisted or something .. but nope ๐
16:29:38 <peter1138[d]> Phew, liveries working properly again ๐
16:29:58 <truebrain> funny to see how others solved it .. gdrive .. dropbox ...
16:30:09 <truebrain> and I can use most of those URLs, but that seems bad, using untrusted sources
16:31:53 <xarick> yes! finally some automation!
16:32:14 <xarick> got the log of all 7 tests
16:32:59 <xarick> just need to organize the data somehow, not sure how to handle it
16:34:02 <xarick> btw, not sure if I found a bug, but...
16:34:09 <xarick> the vnull:ticks driver
16:34:21 <xarick> 300 ticks aren't exactly 300 ticks all the time
16:34:34 <xarick> what type of ticks is vnull counting?
16:34:56 <_glx_> oh the 8 first lines tell me you cannot run regression tests ๐
16:35:27 <xarick> I had to put a sufficiently big number in ticks for it to allow the gs to finish
16:35:58 <xarick> still, even with a fixed 300, the log had varied sizes each time
16:36:54 <LordAro> it's not because the game ran any longer
16:40:41 <xarick> 30000 ticks, like that of regression
16:41:36 <xarick> 30000/74 = 405, they're a different kind of tick than that of in-game
16:41:43 <xarick> didn't run for 405 days
16:42:28 <_glx_> just -vnull runs faster because it doesn't draw anything
16:43:09 <_glx_> and it's automatically in fast forward IIRC
16:44:00 <LordAro> xarick: start from the beginning - what, specifically, makes you think that the game did not run for exactly 300 ticks?
16:44:20 <xarick> it was the number of lines that resulted in the log file
16:44:28 <xarick> sometimes more, sometimes less lines
16:45:10 <LordAro> is there actually a different number of ticc/tocc lines?
16:45:24 *** androxarev has joined #openttd
16:45:56 <androxarev> How do you upload a map of heights to the game?
16:46:34 <xarick> by how much, can't specify, I deleted the logs, let me check recycle bin
16:46:45 <_glx_> different number of TICC/TOCC in source ?
16:46:55 <truebrain> ugh, solved the Steamworks SDK issue by creating an R2 bucket on Cloudflare, slap some access protection on it, and download it from there .. ideal? Nope. Does it work? Fuck yeah.
16:50:57 <peter1138[d]> Sounds tickety-boo
16:51:49 <peter1138[d]> Right, if I set all liveries schemes to the same set of colours, should I use the same palette. Hmm.
16:51:56 <peter1138[d]> eh, not palette, remap sprite.
16:55:12 <truebrain> Works on Linux and Windows at least ๐
16:56:52 *** virtualrandomnumber has joined #openttd
16:57:16 *** virtualrandomnumber has quit IRC ()
17:11:54 <xarick> okay, all tests result in 398 lines in the log
17:12:32 <xarick> one other got 384 lines
17:14:12 <xarick> those were when the test didn't finish in time
17:14:14 <peter1138[d]> preset_colours = 1862056440,1828392184,1541666418,116,1566935671,0,0,1452950007,1814702072,1790643448,116,116,1532136055,0,0,1535119487
17:14:19 <peter1138[d]> Not exactly readable.
17:14:34 <peter1138[d]> But I suppose it does not need to be.
17:19:28 <peter1138[d]> Not really, it's a packed format that wouldn't be readable anyway.
17:19:49 <peter1138[d]> And our ini file stuff always writes integers in decimal.
17:22:12 <LordAro> i thought there was some special casing for colours already?
17:22:19 <LordAro> or something in hex, anyway
17:25:52 <jfs> checksums of baseset files are written as hex strings...
17:25:59 <peter1138[d]> There's things like GRFIDs that are written as hex strings, yeah.
17:31:34 <locosage> some more rgb-cc experiments (first 5 are default cc)
17:32:09 <peter1138[d]> I got rid of hue shifts.
17:32:24 <locosage> I'm starting to like them xD
17:34:37 <locosage> too bad spectra module doesn't support oklab space out of the box
17:34:49 <locosage> rly want to try it now
17:41:19 <locosage> oh, god, python module that requires a license to use...
18:03:19 <peter1138[d]> Hmm, translatable list of thousands of colour names...?
18:36:17 <xarick> Notepad++ still has its uses
18:38:08 <DorpsGek> - Update: Translations from eints (by translators)
18:39:40 <xarick> vnull doesn't start 15 companies ๐ฆ
18:43:37 <xarick> there can be 64000 groups
18:44:35 <xarick> x * 14 = 64000; x = 64000 / 14 = 4571
18:45:40 <xarick> gonna extend my test to do more stuff
19:08:22 <locosage> apparently my old gradients were quite off from the target colors for some reason
19:13:24 *** Hanicef has quit IRC (Quit: leaving)
19:53:26 <peter1138[d]> Hmm, I broke this again ๐ฆ
20:05:43 *** virtualrandomnumber has joined #openttd
20:05:57 *** virtualrandomnumber has quit IRC ()
20:17:23 <peter1138[d]> Hmm, 11633 means other stuff is not needed.
21:02:20 *** gelignite has quit IRC (Quit: Stay safe!)
21:38:49 <jfs> a well tends to be deep, at least the useful ones
21:45:00 <truebrain> Personally I would just sqaush 11351 .. but that might be just me ๐
21:45:58 <jfs> talltyler: `timer_game_economy.h` line 51-52 comments read a bit odd to me, and line 51 has a typo ๐
21:46:25 <talltyler> Let me see what the diff looks like after the PR no longer includes #10700
21:47:17 <jfs> `Days in an econonoy year, when in wallclock units.`
21:47:17 <jfs> `Days in an economy year, when in wallclock timekeeping mode.`
21:47:24 <talltyler> jfs: Heheh, thanks. I blame find and replace ๐
21:47:27 <truebrain> Having the separate commits makes for easy review. And the PR will always have the history
21:49:07 <truebrain> For "git blame", a single commit would be better, I would argue. Also for 10700 I guess
21:50:13 <jfs> lol tbh this reads really funny
21:50:13 <jfs> `Traffic chaos in {TOWN}!{}{}Road rebuilding programme funded by {RAW_STRING} brings 6 {TKM months minutes} of misery to motorists!`
21:50:13 <jfs> SIX WHOLE MINUTES of delay on the road would be nothing in reality
21:50:31 <truebrain> So plan of attack, event to test the changes, see if we missed any timer change .. After that, final review, and merge ๐ (of all 3 PRs)
21:51:28 <talltyler> On to your comments on 11428 next ๐
21:54:09 <talltyler> What do we think about the 11428 โminutes per yearโ value string, where it shows the percentage of normal speed? โGamespeedโ has been suggestedโฆ just โspeedโ sounds fine to me but Iโve been looking at it for months
21:57:43 <jfs> I wonder how much backlash there will be when this gets merged... I suspect at least a few will suddenly be extremely loud about it being completely wrong and worse than useless
21:58:13 <jfs> (despite not having said anything during the many many months of completely open development this has been in until now)
21:58:20 <truebrain> So just a normal day in the forums, you say
21:58:59 <truebrain> As long as it is optional and not on by default, we will be fine
21:59:26 <jfs> "but this means that MY favorite way of changing the speed of the game will never make it in!"
21:59:35 <_jgr_> Open development makes sense to us but it doesn't to a large subset of users
22:02:36 <truebrain> The only important question here is: do we like this approach? Don't be scared to progress because others might dislike it
22:02:55 <truebrain> There will always be a few that complain
22:17:43 <Eddi|zuHause> this has happened so many times in the past that i wouldn't worry about it
22:21:33 <andythenorth> we can crowd fund therapy for the most traumatised
22:22:02 <andythenorth> as it's unlikely that progress in a game about tiny trains is the real reason for their psychological distress
22:25:05 <andythenorth> this dock doesn't even need to be flat
22:29:26 <peter1138[d]> It basically already is.
22:29:36 <peter1138[d]> Just not at sea-level.
22:43:13 <talltyler> Heh, whitespace ๐
22:43:22 <truebrain> talltyler: I still think just "100%" is sufficient
22:43:29 <truebrain> what ever you put after it, it just makes things less clear
22:43:34 <truebrain> "game speed" .. compared to what?
22:45:50 <talltyler> Oh, you mean ditch โspeedโ altogether! ๐
22:46:02 <talltyler> I like that even better!
22:46:02 <truebrain> just: 12 minutes (100%)
22:46:06 <truebrain> people will understand just fine
22:46:49 <talltyler> Oh, but itโs not a percent of the original number of minutes, it is a percent of the original speed
22:47:52 <talltyler> `Minutes per year: 6 (200%)` is bound to originate at least two bug reports ๐
22:48:13 <truebrain> when you write it like that, yes ๐
22:48:28 <truebrain> `Timescale: 6 minutes per year (200%)`
22:48:30 <reldred> closed: feature not a fault
22:48:33 <truebrain> might be a bit lengthy ...
22:48:45 <truebrain> but just `6` looks odd
22:48:54 <truebrain> on the other hand, just forget about minutes
22:49:06 <jfs> is it explained in the tooltip?
22:49:43 <Eddi|zuHause> the problem with 200% is that the thing people actually want (longer days) will need fractional values
22:49:44 <talltyler> `Minutes per year: 6 minutes (200%)`
22:50:04 <talltyler> ^^ is the actual string, it does say minutes in the value
22:50:12 <truebrain> ah, already better ๐
22:50:27 <truebrain> you can also invert it, under the assumption that people want to slow down more often than speed up
22:50:33 <truebrain> so 200% is 24 minutes per year
22:50:39 <truebrain> which kinda makes a bit more sense, when I think about it
22:50:41 <jfs> yeah, if possible I think it'd be better to indulge in some floating point here
22:50:51 <talltyler> I couldnโt figure out floating point ๐
22:51:17 <talltyler> So do we want the percent to be speed, or minutes?
22:51:24 <Eddi|zuHause> dunno, daylength was always used in the context of slowing down...
22:51:35 <truebrain> I think that `12 -> 6 == 200%` looks odd
22:51:56 <talltyler> Do we even need a percent, besides letting people find out that default = 12? They can do their own math
22:51:57 <truebrain> I would say it is more likely people say: the game runs twice as slow
22:52:01 <truebrain> than they would say it runs 0.5 as fast
22:52:13 <jfs> how about fractions then... that will also be fun
22:52:44 <truebrain> so I would argue that `12 -> 24 == 200%`; which is just a representation trick
22:52:57 <truebrain> I think percentages are nice, as it gives you a relative measure from "normal"
22:53:01 <jfs> but that's 200% what, 200% slowdown?
22:53:05 <truebrain> the actual amount of minutes feels much less relevant
22:53:26 <talltyler> I originally did the whole thing as a percent and nobody liked it ๐
22:53:38 <truebrain> `Time dilation: 200% slower`
22:53:56 <_glx_> but 100% slower is normal speed
22:54:12 <truebrain> true; so 0% slower is normal ๐
22:54:17 <jfs> in that case I think describing it as a factor is more intuitive, "2x slower"
22:54:25 <truebrain> so it would be: `50% faster` .. `normal` .. `100% slower` ๐
22:54:32 <talltyler> 0 is a special value for Frozen
22:54:41 <talltyler> I donโt want to add another toggle for that
22:54:48 <truebrain> talltyler: no no, we talk about the representation here; not the actual internal value
22:55:12 <jfs> the setting should still be given in minutes per year imo, and any % or speed factor is only an assistance to know how far you've gone
22:55:18 <talltyler> I know, but World Generation has so many buttons now, I donโt want to add more
22:55:33 <truebrain> jfs: I kinda disagree. The percentage is the important part, and the minutes is just the implementation of it
22:55:39 <truebrain> I cannot imagine someone says: I want 10 minutes per year
22:55:41 <_glx_> world generation needs tabs
22:55:46 <truebrain> it will more be like: I want the game to be twice as slow
22:55:57 <truebrain> talltyler: why add more?! We are talking about different things ..
22:56:04 <truebrain> all I am talking about is how the dropdown you have now is represented
22:56:15 <truebrain> so .. I am puzzled ๐
22:56:19 <talltyler> Someone previously suggested a Boolean โfrozenโ button in addition to the number input
22:57:05 <jfs> how about a slider like the volume control for music/sound, but with some snapping to common values, and a way to enter other values in an input box popup
22:57:41 <peter1138[d]> The interface-scale slider does snapping.
22:58:10 <truebrain> Fast forward calls it: `2500% normal game speed` .. so `2500% normal calendar speed` would be the similar text
22:58:42 <talltyler> Yes, the issue is that 1% of normal calendar speed is limiting, because we can go so much slower
22:59:03 <talltyler> And you would rarely want to go faster
22:59:07 <truebrain> is it important, when you go 1200 minutes per year? Is even slower useful?
22:59:18 <truebrain> but I agree that the inverse would be more practical
22:59:28 <jfs> one of my recent suggestions was to (somehow) format the percentage with two significant digits
22:59:55 <peter1138[d]> jfs: that worked "so well" for aircraft speed ๐
22:59:58 <jfs> and include a decimal point
23:00:22 <_glx_> `normal game speed` can be `normal game slowness`
23:00:40 <_glx_> so you can invert the % meaning
23:01:37 <jfs> "normal slowness", implying "the game has always been slow"
23:01:41 <peter1138[d]> People are going to be looking for "daylength"
23:01:41 <talltyler> โSlownessโ is a confusing way to word it ๐
23:02:05 <talltyler> I am not calling it daylength anywhere, because that implies slowing down the economy too
23:02:18 <talltyler> I donโt want anybody thinking itโs the same implementation
23:02:54 <reldred> peter1138[d]: I don't necesarily think so, people who know that term will be the jgrpp die hards, and I don't think they're going to be necesarily swapping back to regular openttd, and if they do, they'll be savvy enough to know the difference.
23:03:40 <reldred> And on merge back downstream to JGRPP the players will have to be savvy enough to know the difference as we could quite possibly still have one, the other, or both in JGRPP.
23:03:47 <talltyler> I do like โminutes per yearโ, but the percentage isnโt very useful except for telling people how to reset back to normal (although clicking the value opens an input dialog with a Default button)
23:03:57 <reldred> I think being clear exactly what each system is will probably be the way forward
23:04:05 *** keikoz has quit IRC (Ping timeout: 480 seconds)
23:05:19 <_jgr_> The OpenTTD devs shouldn't need to worry abut what it's called in my branch
23:05:38 <reldred> JGR players are already used to being in the deep end of the pool
23:06:00 <jfs> okay then, "200% length days"
23:06:15 <jfs> then it increases with minutes per year
23:08:46 <talltyler> jfs: I like this idea, but the max value is currently 10800, so the slider would have no precision at the normal end of the scale
23:08:57 <talltyler> Or be very very long lol
23:09:14 <jfs> a slider can also do tricks with logarithmic of pseudo-logarithmic scale
23:10:53 <talltyler> Yes, which would allow us to ditch percentages and use common-name values for the snap marks like Frozen, Double Speed, Default, Half Speed, Quarter Speed, 1 Hour, 2 Hours, 6 Hours, 1 Day, 1 Week
23:11:00 <talltyler> (One week being the max value)
23:11:19 <xarick> hey guys, give me more ideas for testing lists
23:11:44 <_glx_> oh you have enough ideas by yourself
23:11:46 <truebrain> talltyler: I think at least one thing is clear .. two ways to represent it, is not useful. So either go with percentage, with N minutes, or with something custom, but don't mix and match, I think ๐
23:12:20 <talltyler> Donโt mix and match minutes and % speed, you mean?
23:12:27 <truebrain> or any other combination ๐
23:13:09 <talltyler> Well, in that case Iโd ditch the percentage entirely and do minutes only. The only problem to solve there is how to communicate that default = 12
23:13:24 <talltyler> I do not like percentage very much, for some reason
23:13:31 <xarick> it's actually 75000 vehicles sold, not 5000, it's 5000 per company though
23:13:41 <truebrain> or put a button behind it with a reset icon on top of it
23:14:02 <talltyler> Whatโs a reset icon? Do we have one?
23:14:21 <talltyler> (I cannot picture what that pictogram looks like)
23:14:40 <talltyler> Oh, like a circular arrow?
23:14:44 <_glx_> an circle arrow going to the left
23:14:52 <truebrain> not sure if we have one; andythenorth can draw one ๐
23:15:43 <_glx_> I think we shoud put this button on all genworld buttons
23:16:06 <Rubidium> assuming you're a new player, is the percentage important? Why not let the user enter their wished for number of minutes per calendar year?
23:16:08 <xarick> should I try trains instead? with multiple attached wagons/engines?
23:16:25 <talltyler> _glx_: Are you volunteering to make the PR? ๐
23:16:33 <xarick> that should stress CountVehicle enough
23:16:41 <_glx_> nah this window is horrible
23:17:04 <talltyler> It does need tabs, like you said
23:18:03 <talltyler> Maybe I put the default in the tooltip, and Somebody rebuilds Genworld for 15.0?
23:18:06 <_glx_> yeah tabs would help, like game style (land type and speed), landscape (for the terrain generation itself)
23:20:39 <truebrain> tooltip it is! ๐
23:24:04 <_glx_> xarick: only leading engine is counted
23:26:25 *** Wolf01 has quit IRC (Quit: Once again the world is quick to bury me.)
23:26:28 *** soylent_cow[m] has quit IRC (Quit: Client limit exceeded: 20000)
23:38:58 <xarick> this doesn't tell the whole story...
23:39:07 <xarick> the microsecond paints a whole different picture
23:40:40 <xarick> GroupStatistics::CountVehicle is incredibly super fast on master, it reports 0 us average out of 700 instances
23:42:03 <xarick> how do I gather these results... ๐ฆ
23:46:29 <xarick> I wanted to present the results in an easy digestable way...
23:47:02 *** Extrems has joined #openttd
23:47:53 <jfs> then write a script to extract the data from the logs and save to a csv file or something
23:54:05 *** nielsm has quit IRC (Ping timeout: 480 seconds)
23:55:01 <xarick> std-unordered_set const Vehicle was bad... very strange
23:58:00 <xarick> the GroupStatistics::CountVehicle is the interesting one... the more vehicles, the longer it gets, ... I'll try to find a better way to show this one tomorrow
continue to next day โต