IRC logs for #openttd on OFTC at 2023-09-16
            
00:53:20 *** Flygon has joined #openttd
01:51:50 *** Beer has quit IRC (Quit: Leaving)
02:00:04 *** Wormnest has quit IRC (Quit: Leaving)
02:46:16 *** D-HUND has joined #openttd
02:49:36 *** debdog has quit IRC (Ping timeout: 480 seconds)
03:30:17 *** keikoz has joined #openttd
04:19:32 <tehboss> WHY IS NETWORKING LITTLE ENDIAN AND SAVE FILES BIG ENDIAN
04:20:14 <_pruple> hysterical raisins strike again!
04:21:38 *** ketsuban has joined #openttd
04:21:38 <ketsuban> At this point there's no real reason for *networking* to be bigendian. That war ended years ago, and bBigendian lost.
04:22:16 *** ketsuban is now known as Guest293
04:22:17 *** Guest293 is now known as ketsuban[d]
04:22:48 <tehboss> ketsuban[d]: consistency is a good reason
04:25:13 <ketsuban[d]> Consistency with what, though? The way we did things back when the 68040 was relevant? Every processor manufactured this side of the year 2000 has been littleendian. People born when bigendian processors stopped being commercially relevant are old enough to drink, vote and have ill-advised sexual relationships.
04:25:43 <tehboss> ketsuban[d]: consistency with all bits of the code?
04:25:43 <tehboss> why would you use little endian for some bits and big endian for other bits
04:26:48 <ketsuban[d]> I'm evidently not sure what you're referring to.
04:28:32 <tehboss> networkign transmits ints with little endian, but savefiles are stored using big endian
04:30:15 <ketsuban[d]> As Pruple said, that's for historical reasons relating to OpenTTD itself. In an ideal world I'd assume them to both be littleendian, because that's what every processor that anyone but maniacs like me who like the Sega Megadrive cares about uses natively.
04:34:41 <tehboss> oh ok, i didn't know what "hysterical raisins" meant
04:38:54 *** keikoz has quit IRC ()
04:55:00 *** keikoz has joined #openttd
05:19:45 *** HerzogDeXtEr has joined #openttd
05:29:07 *** Wolf01 has joined #openttd
07:02:29 *** D-HUND is now known as debdog
07:05:17 <_jgr_> ketsuban[d]: Traditionally, networking protocols use big endian. It'd make more sense to use big endian there for a green field protocol, but there's no benefit to breaking compatibility now
07:05:51 <_jgr_> The native processor ordering doesn't matter that much
07:33:51 <andythenorth> another Saturday, another set of newgrf docs to update πŸ™‚
07:34:12 <andythenorth> didn't there used to be someone here complaining newgrf spec never advances?
07:35:59 <alfagamma7> Hmm
07:35:59 <alfagamma7> I should add some more documentation
07:51:06 <truebrain> and I am having a battle between Javascript async and Rust async .. and I am losing the battle 😦
07:54:08 <truebrain> and then poof, from an unexpected corner, I manage to resolve the issue ...
07:54:09 <truebrain> haha
07:54:36 <truebrain> right, now for CORS headers .. will be "fun", as the symbol server from Mozilla also doesn't appear to set them .. still not 100% sure if CORS is actually helpful on the Internet πŸ˜›
08:04:34 <andythenorth> _jgr_: I'm proposing copying each relevant section here to the relevant action page on newgrf wiki.... https://jgrennison.github.io/OpenTTD-patches/newgrf-roadstops.html
08:05:17 <andythenorth> I see the note at the top `This feature does not match OpenTTD PR #7955 in a number of key areas`
08:06:15 <_jgr_> That PR was never merged
08:09:09 <andythenorth> eh thanks πŸ™‚
08:09:11 <andythenorth> found it https://github.com/OpenTTD/OpenTTD/pull/10144
08:09:43 <andythenorth> ok, so is there anything I need to amend / remove from your docs?
08:10:18 <andythenorth> hmm list on the PR might cover it?
08:10:28 * andythenorth still on first coffee here, sorry
08:11:11 <_jgr_> I haven't had my first coffee yet πŸ˜›
08:12:55 <andythenorth> I'm going to borrow the comments on PR 10144 to explain my plan
08:14:08 <_jgr_> There have been a few things since added to my docs which aren't specifically mentioned as not included in the PR
08:16:06 <andythenorth> I'll make a plan based on existing comments, then we can see?
08:31:52 <DorpsGek> [OpenTTD/OpenTTD] andythenorth commented on pull request #10144: Add: NewGRF road stops https://github.com/OpenTTD/OpenTTD/pull/10144#issuecomment-1722176718
08:34:04 <andythenorth> _jgr_: inevitably I'll have made a mistake, but eh πŸ™‚ ^
09:10:08 <truebrain> ```"file": "\\\\?\\D:\\a\\OpenTTD\\OpenTTD\\src\\saveload\\afterload.cpp", "frame": 9,```
09:10:17 <truebrain> look at that, I can analyze crashdumps via a webpage now πŸ˜„
09:12:03 <truebrain> now to present that in a way that is readable ... challenging πŸ˜„
09:14:04 <alfagamma7> Hmm
09:14:23 <alfagamma7> Should I create a website on my own or steal a template?
09:14:36 <alfagamma7> *Chooses second option anyway*
09:27:14 <andythenorth> ha
09:27:22 * andythenorth uses cursors in the newgrf list
09:27:26 <andythenorth> which also moves the map
09:39:44 <DorpsGek> [OpenTTD/OpenTTD] JGRennison commented on pull request #10144: Add: NewGRF road stops https://github.com/OpenTTD/OpenTTD/pull/10144#issuecomment-1722190009
09:41:40 <andythenorth> thanks
09:46:53 <truebrain> https://cdn.discordapp.com/attachments/1008473233844097104/1152541108115607623/image.png
09:46:53 <truebrain> styling sucks, but ... getting shit done πŸ™‚
09:47:43 <andythenorth> made my first nml roadstop πŸ˜„ v
09:47:49 <andythenorth> https://cdn.discordapp.com/attachments/1008473233844097104/1152541341046296680/image.png
10:00:31 <andythenorth> ok so train stations and road stops are different things?
10:00:41 <andythenorth> /me planning grf
10:03:17 <andythenorth> `station` or `rail_station`?
10:03:47 <_glx_> Of course they are, nobody would base a new feature on existing station spec
10:04:21 <truebrain> ```openttd.exe!GetSlopePixelZ(int, int, bool) \\?\D:\a\OpenTTD\OpenTTD\src\landscape.cpp:302
10:04:21 <truebrain> openttd.exe!Station::UpdateVirtCoord() \\?\D:\a\OpenTTD\OpenTTD\src\station_cmd.cpp:423
10:04:21 <truebrain> openttd.exe!UpdateAllStationVirtCoords() \\?\D:\a\OpenTTD\OpenTTD\src\station_cmd.cpp:458
10:04:21 <truebrain> openttd.exe!UpdateAllVirtCoords() \\?\D:\a\OpenTTD\OpenTTD\src\saveload\afterload.cpp:222```
10:04:25 <_glx_> When you have objects and industries
10:04:34 <truebrain> okay, that copy/paste was a bit shit .. lol .. anyway, it works πŸ˜„
10:04:58 <andythenorth> _glx_: sorry I was ambiguous, I'm planning out python classes πŸ™‚
10:05:18 <andythenorth> also the grf design
10:05:22 <truebrain> owh, it is just Discord being shit .. lol
10:05:38 <andythenorth> should every rail platform type get an equivalent road stop type for consistency? Probably not
10:06:10 <andythenorth> hmm
10:06:11 <andythenorth> also objects
10:06:25 <andythenorth> should every non-track station tile also get an object?
10:07:27 <andythenorth> https://cdn.discordapp.com/attachments/1008473233844097104/1152546282863337492/image.png
10:07:27 <andythenorth> object classes list might get long when I also add them to CHIPS
10:07:37 <andythenorth> currently there's a class for each FIRS industry
10:09:15 <andythenorth> wonder if I should do a python class for `dock`
10:11:08 <andythenorth> maybe a bit premature πŸ™‚
10:11:14 <andythenorth> one day....FancyDocks
10:12:24 <truebrain> andythenorth: do you still have that `crashme.sav` I sent you a while ago? Mind downloading the latest nightly, loading that savegame, and sending me your crash.json.log and crash.dmp? πŸ™‚
10:12:39 <andythenorth> ok 2 mins
10:14:36 <andythenorth> https://cdn.discordapp.com/attachments/1008473233844097104/1152548081871626290/Archive_2.zip
10:15:41 <truebrain> hmm ... that is not outputing anything .. lol .. Windows + Linux works, MacOS is like: nah, I'm good.
10:15:53 <truebrain> Tnx andythenorth , time to fiddle with this, trying to figure out why it doesn't work πŸ™‚
10:16:48 <truebrain> ah, it didn't record properly what thread crashed, lovely πŸ™‚
10:21:51 <andythenorth> hmm maybe objects aren't an entity
10:22:00 <andythenorth> just a different representation of non-track tile
10:22:03 <_glx_> Because the crashing crash window ?
10:22:23 <andythenorth> https://cdn.discordapp.com/attachments/1008473233844097104/1152550041022636162/image.png
10:22:23 <andythenorth> objects are only needed for this case
10:22:41 <andythenorth> https://cdn.discordapp.com/attachments/1008473233844097104/1152550114032893982/image.png
10:22:41 <andythenorth> station tiles can't be built on
10:23:08 <truebrain> _glx_: possibly .. hard to tell with MacOS πŸ˜„
10:24:04 <alfagamma7> andythenorth: CABBAGE CABBAGE CABBAGE
11:00:09 <_pruple> default cabbage
11:14:29 <andythenorth> the main thing is what categories eh?
11:14:42 <andythenorth> standardised station schema?
11:18:08 <andythenorth> I guess a station category for every FIRS industry?
11:18:42 <andythenorth> https://cdn.discordapp.com/attachments/1008473233844097104/1152564214859300864/image.png
11:18:42 * andythenorth considering making industry buildings that trains can drive into
11:18:58 <andythenorth> based on existing object sprites
11:19:18 <_pruple> hmmm
11:19:59 <_pruple> well, maybe deprecate non-track stations that aren't strictly train-related, ie these things are just objects and removed from stations?
11:20:21 <_pruple> https://cdn.discordapp.com/attachments/1008473233844097104/1152564627809505280/Tronness_Ridge_Transport_1965-03-26.png
11:20:21 <_pruple> the dreaded drive-in vs drive-through road stops πŸ˜„
11:20:22 <andythenorth> can't we wait until I've finished CHIPS 3, and then do that? πŸ™‚
11:20:30 <_pruple> maybe
11:20:31 <andythenorth> /me bad andythenorth
11:21:03 <andythenorth> _pruple: cheating, you have an articulated vehicle in a drive-in stop
11:21:42 <_pruple> πŸ‘
11:22:44 <andythenorth> _pruple: could do this
11:23:09 <andythenorth> _pruple: could do this....objects don't collect cargo though πŸ˜›
11:23:14 <andythenorth> ruins station walking πŸ˜›
11:24:41 <_pruple> maybe that's what drive-in road vehicle stops are for πŸ˜›
11:24:58 <andythenorth> maybe
11:25:04 <andythenorth> categories are tricky eh
11:25:13 <andythenorth> I could do "passenger" and "freight"
11:25:19 <andythenorth> or "town" and "industry"
11:25:47 <andythenorth> dunno
11:26:12 <andythenorth> /me must to lunch
11:26:19 <_pruple> yes
11:38:03 <peter1139> I had a cheese, lettuce & tomato panini. It was okay.
11:52:18 <talltyler> andythenorth: That’s why we have a search bar πŸ˜‰
11:52:41 <talltyler> andythenorth: YES PLEASE
11:53:11 <talltyler> Sorry for the double ping, it’s just that I am very interested in your new stations πŸ˜„
11:54:37 <andythenorth> They are only ideas right now πŸ˜›
11:55:04 <andythenorth> talltyler: Does that still only search categories? πŸ˜€
11:55:20 <truebrain> https://truebrain.github.io/OpenTTD-crash-analyzer/ <- w00p, seems to work! Does fetch a lot of data (like ~100MB to analyze an OpenTTD crash), but it does work πŸ˜„ Information is rather simplistic currently, but .. it works πŸ˜„
11:56:19 <_glx_> lol default page title
11:57:11 <truebrain> ah, yes, keep forgetting that .. new deployment is running πŸ˜›
11:58:11 <truebrain> also made it a bit more clear it only works for nightlies (and from 14.0)
11:58:19 <truebrain> as well .. we do need access to the symbol files πŸ˜„
11:58:43 <truebrain> anyway, given that this works, it means I can work on automatically uploading crashes .. as I can actually analyze them πŸ˜›
11:59:08 <truebrain> although the Linux / MacOS analysis are a bit worse for situations where loading fails .. the double abort() really screws up the stack-walking
11:59:52 <truebrain> meh, ran out of ideas for sentences to start with an "a" .. 5 in a row is enough? πŸ˜›
11:59:54 <_glx_> json.log is a hint πŸ˜‰
12:01:33 <talltyler> andythenorth: Yes, but we could change that πŸ™‚
12:30:51 <talltyler> Right, time to cherry-pick Real-Time Mode πŸ™‚
12:45:34 <andythenorth> Magic station tile that detects nearby industry and shows appropriate building sprites?
12:58:40 <talltyler> That would be nifty but you'd need to design the UI so players know what to expect, and can still make design choices
13:12:38 <andythenorth> Trying to figure out different tile types
13:13:25 <andythenorth> The current CHIPS tiles magically show cargo
13:13:57 <andythenorth> But not always the cargo you want πŸ˜›
13:53:09 <frosch123> ottd code is so weird, some methods use [[maybe_unused]] for used parameters, while the same method has unused parameters without the attribute
14:30:16 <talltyler> Okay, math help: Given a date as the number of days since 0, we can calculate the year with `date / DAYS_PER_YEAR`. My code calculates the month with `date / DAYS_PER_YEAR % MONTHS_IN_YEAR`, but that fails in year 0...
14:30:16 <talltyler> Day of the month I have no idea. Is it `date / DAYS_PER_YEAR % DAYS_IN_MONTH`, with the same year 0 problem? Or is there a better way?
14:38:09 <frosch123> not sure whether you typed what you meant, but "date / DAYS_PER_YEAR" is a "number of years". taking "number_of_years % MONTHS_IN_YEAR" gives you a 12 year cacle
14:38:10 <Rubidium> why would `date / DAYS_PER_YEAR % MONTHS_IN_YEAR` not work for year 0, but work for later years? How would a date in say year MONTHS_IN_YEAR behave differently?
14:42:24 <frosch123> assuming all months have same length, and all years have same length, you would get "date / DAYS_PER_YEAR" for year, "date % DAYS_PER_YEAR" for day-in-year, "date % DAYS_PER_YEAR / DAYS_PER_MONTH" for month-in-year, "date % DAYS_PER_MONTH" for day-in-month
14:44:40 <locosage> and none of that really works for real days and months
14:51:01 <talltyler> Rubidium: If I had day 65, for example, dividing by DAYS_PER_YEAR would get 0, and then the month would always be 0...right?
14:51:18 <talltyler> locosage: This is for economy time: 30 days per month, 360 days per year πŸ™‚
15:00:23 <truebrain> frosch123: Over using 'maybe_unused', does that give a warning? πŸ˜„
15:01:24 <frosch123> no πŸ™‚
15:01:43 <frosch123> anyhow, that case was more complicated
15:02:12 <frosch123> the parameter itself was unused, but it was needed to access subsequent vaarg parameters
15:02:20 *** Flygon has quit IRC (Quit: A toaster's basically a soldering iron designed to toast bread)
15:03:29 <Rubidium> talltyler: the code you gave will give month 0 for year 0, month 1 for year 2, month 2 for year 3, month 0 for year 12.
15:05:57 <Rubidium> I see no difference in the behaviour for year 0, or any multiple of MONTHS_IN_YEAR
15:13:28 <talltyler> frosch123: Aha, that's what I was looking for. Thanks! πŸ™‚
15:24:40 <andythenorth> so....when station tiles show cargo sprites...what should trigger that?
15:24:58 <andythenorth> currently they usually only show for failure condition (too much cargo waiting)
15:45:45 *** Smedles has quit IRC (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.)
15:46:03 *** Smedles has joined #openttd
15:54:07 *** Wormnest has joined #openttd
16:13:31 <_pruple> there's the historical "little/lots threshold"
16:13:56 <_pruple> but you could do cleverer stuff with the basestation variables
16:19:31 <andythenorth> I might do a more gamey thing
16:20:21 <andythenorth> if there's too much cargo waiting....goes it some overlay or red sprites or something?
16:22:50 <andythenorth> animated angry face emojis?
16:29:04 <_glx_> ah yes the little/lots copied from vehicles loaded/loading
16:40:31 <andythenorth> I mean....every station grf used it πŸ™‚
16:40:36 <andythenorth> even though it makes no sense
16:47:33 <peter1139> It's not really copied, the implementation is entirely different, it just uses the same structure for definition.
16:54:39 <andythenorth> show cargo sprites for good rating?
16:54:42 <andythenorth> recent pickup?
16:54:48 <andythenorth> train loading?
17:45:06 *** Wormnest has quit IRC (Ping timeout: 480 seconds)
17:53:18 <Eddi|zuHause> the problem is, a well-running loading station has 0 cargo waiting, and an unloading station has never cargo waiting, so all the fancy cargo sprites have no use
17:53:46 <Eddi|zuHause> the second problem is, in a mixed cargo station, only one cargo type wins out
17:54:02 <Eddi|zuHause> e.g. cannot show half ore, half coal.
17:54:35 <peter1139> The algorithm could be changed.
17:54:44 <andythenorth> the second problem will have to be solved by providing a station tile for every cargo type, currently
17:54:54 <andythenorth> the first tile, we have lots of grf vars....?
17:55:05 <andythenorth> tile / problem /s
17:56:19 <andythenorth> I can autogenerate a tile for every cargo in the game (that has sprite support)
17:57:19 <peter1139> 1) Record some cargo history for stations, 2) Use that instead of current waiting cargo 3) attempt to stably assign different cargo to different tiles.
17:57:45 <Eddi|zuHause> for cargos, i always wanted a "monthly thoughput" counter
17:58:18 <andythenorth> do we have no vars that can do that yet?
17:58:33 <andythenorth> item 3) goes it tile refit? )
17:58:38 <andythenorth> (with subtypes)
17:58:40 <andythenorth> πŸ˜›
17:58:45 <peter1139> variants
17:58:55 <andythenorth> ButVariants
17:59:55 <peter1139> (and then maybe have a flag that selects between different algorithms)
18:00:03 *** HerzogDeXtEr has quit IRC (Read error: Connection reset by peer)
18:00:13 <peter1139> So that NewGRFs don't have to juggle variables.
18:00:46 <Eddi|zuHause> assign "cargo seats" by d'hont method :p
18:02:20 <frosch123> one could add the load of waiting trains to the station display
18:02:35 <frosch123> something like "cargo in vehicle"/"vehicle loading time"
18:02:41 <frosch123> would be platform specific
18:02:54 <frosch123> not sure whether stations can handle different cargo amounts per platform
18:03:04 <andythenorth> I could just repeat all the tiles in different classes, each class has a different loading algorithm πŸ˜›
18:03:06 <andythenorth> let the player choose
18:03:17 <Eddi|zuHause> there's platform animation and stuff
18:04:52 <peter1139> Of course if we add history someone will complain about savegame size ;)
18:05:02 <andythenorth> make it statistical
18:05:05 <andythenorth> i.e. just guess
18:05:13 <andythenorth> send the savegame to GPT in real time, let GPT decide
18:16:57 <_pruple> Eddi|zuHause: I mean, it *could* if you really wanted it to
18:18:06 *** Wormnest has joined #openttd
18:25:53 <andythenorth> oh https://newgrf-specs.tt-wiki.net/wiki/VariationalAction2/Stations
18:26:10 <andythenorth> stations are not over-provided with vars eh πŸ™‚
18:26:37 <andythenorth> literally nothing for cargo or rating or throughput
18:27:38 <andythenorth> 80+ maybe? πŸ˜›
18:28:23 <andythenorth> 80+ 1C?
18:28:29 <andythenorth> http://www.ttdpatch.de/grfspecs/Transport_Tycoon_Deluxe_savegame_internals.html
18:28:41 <andythenorth> looks like it might not be valid in OpenTTD
18:28:43 <andythenorth> 12 cargos πŸ˜›
18:34:15 *** NGC3982_ has quit IRC (Ping timeout: 480 seconds)
18:35:27 <_pruple> https://newgrf-specs.tt-wiki.net/wiki/VariationalAction2/BaseStation+
18:35:32 <_pruple> https://newgrf-specs.tt-wiki.net/wiki/VariationalAction2/BaseStation
18:37:43 <DorpsGek> [OpenTTD/OpenTTD] eints-sync[bot] pushed 1 commits to master https://github.com/OpenTTD/OpenTTD/commit/30eba33f1eee65115279fd658f60e17f49cfcbf4
18:37:44 <DorpsGek> - Update: Translations from eints (by translators)
18:42:17 <andythenorth> we what now? πŸ™‚
18:42:26 <andythenorth> do roadstops also use?
18:44:40 <_pruple> allegedly
18:44:45 <_pruple> https://jgrennison.github.io/OpenTTD-patches/newgrf-roadstops.html#varaction2roadstops
18:47:25 *** NGC3982 has joined #openttd
18:47:43 <peter1139> I need to finish off my cargo slot fixing patches.
18:48:01 <truebrain> you need to finish [___] patches
18:48:01 <truebrain> πŸ˜„
18:48:49 <peter1139> All of them :D
19:01:54 <andythenorth> I have same issue with grfs
19:02:37 <andythenorth> currently 7 unfinished πŸ˜›
19:07:29 <peter1139> Hmm, shall I ride tomorrow...
19:08:52 <pickpacket> I still need to upload latest version of Tea Tea Deluxe to bananas. And fix that ordering bug in Asiastar Redux. I want to make an industry NewGRF that replaces the original set without adding anything new, too. That’d create a towns-, passengers-, and mail-only game
19:10:32 <pickpacket> I also want to make a NewGRF for a different HQ look
19:10:43 <peter1139> LordAro, oof, that's a climb, and after 160km...
19:20:45 <LordAro> peter1139: and a headwind
19:29:40 <FLHerne> wrt tehboss' complaint, are both the sav files and networking evolved from whatever original TTD used?
19:29:59 <FLHerne> or did one get fully rewritten at some point?
19:33:06 <frosch123> both are completely different
19:33:14 <FLHerne> my totally uninformed guess is that the LE networking has continued from TTD days, whereas someone wrote a new save format which is BE because everything is now
19:33:32 <frosch123> there is a specific oldloader.cpp for loading TTO/TTD/TTDP savegames
19:34:55 <FLHerne> well, I know both have been thoroughly rewritten, including networking recently, but changing LE->BE would have to be a flag-day "totally new everything" event
19:34:57 <peter1139> Network protocol and savegame format are not really related either.
19:35:23 <peter1139> Changing networking is probably possible as we don't allow different versions to connect anyway.
19:35:30 <FLHerne> well, not *have* to be, but no-one would change it on a whim
19:35:42 <peter1139> But why bother, when 1 person has brought it up as a minor niggle over 20 years...
19:36:02 <FLHerne> I don't think it's worth changing
19:36:20 <FLHerne> just wondered about the exact nature of the hysterical raisins :p
19:40:11 <FLHerne> also, if the difference existed in original TTD then it's not OpenTTD's fault :D
19:41:33 <_glx_> we have wrappers to do the right thing
19:42:45 <_glx_> it's just save/send u8/u16/u32/... and it is "magically" split in the correct order
19:44:18 <_glx_> and the reader on the other side do the opposite
19:45:17 <_glx_> I don't really care about how it is at low level as long as it works
19:46:39 <_glx_> IIRC we had some issues in the PowerPC time
19:59:26 <peter1139> It's only an issue when someone else wants to reimplement it all.
19:59:29 <truebrain> FLHerne: What also plays a part, that 16-year olds don't actually know how the world works πŸ™‚
20:00:14 <truebrain> when we rewrote the network, in 2006? 2005? Somewhere there, things like endianness were far less .. "on the mind", and it is was much more about: how to get this working properly πŸ˜›
20:05:29 <DorpsGek> [OpenTTD/OpenTTD] rubidium42 opened pull request #11305: Remove: stdarg.h/cstdarg dependency https://github.com/OpenTTD/OpenTTD/pull/11305
20:06:33 <_glx_> network could use mixed endian too, it doesn't really matter as long as sender and receiver do the same thing
20:06:55 <truebrain> btw, the oldest revision we have on record already used LE πŸ™‚ Back when it was fully UDP πŸ˜›
20:07:39 <Rubidium> I doubt you'll get to the bottom of the hysterical raisins as a lot of that is from before the svn/git repositories, so it just "came into being" instead of being able to determine the why.
20:07:44 <truebrain> holy crap, it was 2004 when we rewrote the network to be TCP .. damn ...
20:07:56 <_glx_> first network implementation was from before mac port anyway
20:08:16 <_glx_> so most likely LE like any pc
20:08:24 <truebrain> so yeah, the reason it is LE, is because someone, most likely a 16-year old, was like: THIS IS FINE! πŸ˜›
20:08:32 <truebrain> then someone rewrote it, another 16-year old, and was like: THIS IS FINE!
20:08:33 <truebrain> πŸ˜„
20:08:57 <LordAro> did 0.1 have any networking?
20:09:26 <truebrain> I always stop looking at r1 (or revision 975) πŸ˜›
20:09:37 <Rubidium> r1 did, and that has savegame BE and network LE
20:09:42 <frosch123> iirc TTD hat 2-player multiplayer via serial port
20:10:00 <_glx_> good old null-modem
20:10:21 <truebrain> not IPX/SPX? Sounds like the time to have that kind of fancy support in your game πŸ™‚
20:10:28 <peter1139> 11305 is definitely magic ;)
20:11:04 <Rubidium> 0.1.0 has networking and it is (implicitly) LE, and savegame is BE
20:11:15 <truebrain> `Network play, allowing multiplayer games.`, is in TTD
20:11:18 <truebrain> but no mention how
20:12:26 <DorpsGek> [OpenTTD/OpenTTD] michicc commented on pull request #11305: Remove: stdarg.h/cstdarg dependency https://github.com/OpenTTD/OpenTTD/pull/11305#pullrequestreview-1630009193
20:12:44 <frosch123> https://cdn.discordapp.com/attachments/1008473233844097104/1152698609746321418/image.png
20:12:52 <truebrain> ha, IPX/SPX πŸ˜„
20:12:52 <frosch123> so many options ...
20:13:07 <truebrain> that was "the thing" back in those years ::)
20:13:42 <truebrain> so I wouldn't be surprised that it was already LE there .. and CS just didn't know any better πŸ˜›
20:13:51 <DorpsGek> [OpenTTD/OpenTTD] glx22 commented on pull request #11305: Remove: stdarg.h/cstdarg dependency https://github.com/OpenTTD/OpenTTD/pull/11305#pullrequestreview-1630009289
20:14:45 <truebrain> `(SetWidgetDisabledState(widgets, disab_stat), ...);` .. lol, I always forget that syntax is a thing
20:14:51 <truebrain> C++ can have the weirdest constructs sometimes πŸ˜›
20:15:18 <peter1139> I never forget it... because I've never seen or heard of it before.
20:15:54 <Rubidium> the fun thing is that the TT savegames are little endian, so the "odd one out" is actually the OpenTTD savegame
20:15:58 <michi_cc[d]> It's only proper C++ if you have operators (inclduing the command operator) in your expression: `((*this << std::get<Tindices>(values)), ...);` 😁
20:16:17 <truebrain> michi_cc[d]: go wash your mouth now
20:16:38 <DorpsGek> [OpenTTD/OpenTTD] glx22 commented on pull request #11305: Remove: stdarg.h/cstdarg dependency https://github.com/OpenTTD/OpenTTD/pull/11305#pullrequestreview-1630009512
20:16:46 <michi_cc[d]> Don't look at endian_buffer or network_command.cpp then πŸ™‚
20:16:57 <truebrain> I am trying very hard not to πŸ˜›
20:17:01 <truebrain> sadly, I had to touch both in the last year
20:17:05 <FLHerne> frosch123: wow
20:17:14 <_glx_> the `s` in the middle of the function name is important
20:17:17 <truebrain> it is not the code itself btw; just the syntax
20:17:40 <FLHerne> multiplayer over serial is...something
20:17:45 <truebrain> _glx_: well, that does bring up a good question .. can we murder the singular version now?
20:17:49 <truebrain> as how many times that tripped me up
20:17:57 <truebrain> I just want to take a torch, and burn it down πŸ˜›
20:18:00 <peter1139> I was about to suggest the same.
20:18:09 <truebrain> (even more as the parameters are swapped)
20:18:36 <DorpsGek> [OpenTTD/OpenTTD] rubidium42 commented on pull request #11305: Remove: stdarg.h/cstdarg dependency https://github.com/OpenTTD/OpenTTD/pull/11305#pullrequestreview-1630009673
20:18:39 <truebrain> not for this PR btw πŸ˜›
20:18:51 <peter1139> Although the plural version needs the singular version.
20:19:02 <truebrain> keep it hidden or something πŸ˜›
20:19:18 <truebrain> void SetWidgetDisabledState(byte widget_index, bool disab_stat)
20:19:18 <truebrain> void SetWidgetsDisabledState(bool disab_stat, Args... widgets)
20:19:21 <truebrain> I mean .. who does that? πŸ˜›
20:19:33 <truebrain> I really had more than one run-in with that ... difference, over the years
20:20:00 <truebrain> I bet we can even collapse the two functions, and just have a single one πŸ˜›
20:20:07 <truebrain> with templating, the end-result will be the same anyway πŸ™‚
20:20:19 <DorpsGek> [OpenTTD/OpenTTD] PeterN updated pull request #10861: Codechange: Use correct invalid cargo constants. https://github.com/OpenTTD/OpenTTD/pull/10861
20:20:41 <peter1139> It's fun when the argument types are compatible too.
20:21:35 <_glx_> like bool and int ?
20:21:39 <truebrain> Rubidium: few more instances and you can also remove `WIDGET_LIST_END`! πŸ˜›
20:22:01 <Rubidium> yup... but not this PR...
20:22:07 <truebrain> mostly one more `static const int raise_widgets[]` which can be a std::array πŸ˜„
20:22:12 <truebrain> Rubidium: indeed πŸ™‚
20:22:31 <DorpsGek> [OpenTTD/OpenTTD] TrueBrain approved pull request #11305: Remove: stdarg.h/cstdarg dependency https://github.com/OpenTTD/OpenTTD/pull/11305#pullrequestreview-1630009932
20:22:57 <DorpsGek> [OpenTTD/OpenTTD] TrueBrain commented on pull request #11305: Remove: stdarg.h/cstdarg dependency https://github.com/OpenTTD/OpenTTD/pull/11305#pullrequestreview-1630009967
20:23:58 <truebrain> what trips me up most about this C++ construct, is that you use the variable-name in the "foreach" part
20:24:09 <truebrain> here too, you get `widgets`, which is just annoying to read, as you are like: plural?
20:24:13 <truebrain> but it is a single item from that plural
20:24:16 <truebrain> C++ could have done better πŸ˜›
20:24:26 <truebrain> enough ranting? I guess ...
20:29:25 <frosch123> meh, the first 12300 warnings were easy. now there are about 30 left, which i have to actually fix since they are kind of valid
20:31:26 <truebrain> ... you added 12300 maybe-unused?!
20:32:24 <frosch123> well, those from header files were duplicated N items
20:33:40 <truebrain> I don't understand what you mean there 😦
20:33:55 <michi_cc[d]> Compilers report by cpp, not by h
20:35:01 <frosch123> if you have "virtual foo(int bar) {}" in window_gui.h, a warning is printed for every cpp file including window_gui.h, which is about 60
20:35:37 <truebrain> Ah, the warning was duplicated .. I was thinking, how did you fix them by duplicating πŸ˜„
20:35:45 <frosch123> window_gui.h itself had about 30 unused vars, so that already makes 1800 warnings
20:36:22 <frosch123> many others i could fix by search replace, mostly in overridden virtual functions
20:36:24 *** Extrems` has joined #openttd
20:36:53 <frosch123> then there are many which you can fix manually by just glancing over them
20:37:04 <frosch123> now 30 are left, which require actually understanding the code
20:38:08 <truebrain> Well, 99% done πŸ˜›
20:38:22 <frosch123> now i get things like https://github.com/OpenTTD/OpenTTD/blob/master/src/gfx_layout_fallback.cpp#L99
20:38:31 <frosch123> is it ok, that buffer_last is unused?
20:39:06 *** Extrems has quit IRC (Ping timeout: 480 seconds)
20:40:55 <truebrain> Lol, yeah, non trivial answer .. Well, just 30 to go!
20:41:23 *** Extrems` is now known as Extrems
20:41:23 *** Extrems has quit IRC (Remote host closed the connection)
20:41:38 *** Extrems has joined #openttd
20:45:07 <Rubidium> well, technically... wouldn't that function write beyond the bounds?
20:46:41 <peter1139> Why is a Factory appending to buffers?
20:47:55 <DorpsGek> [OpenTTD/OpenTTD] PeterN updated pull request #10861: Codechange: Use correct invalid cargo constants. https://github.com/OpenTTD/OpenTTD/pull/10861
20:52:02 <andythenorth> newgrf stations eh
20:52:04 * andythenorth learning
20:59:19 <peter1139> "Invalud"?
20:59:20 <DorpsGek> [OpenTTD/OpenTTD] PeterN updated pull request #10861: Codechange: Use correct invalid cargo constants. https://github.com/OpenTTD/OpenTTD/pull/10861
21:05:52 <andythenorth> errr
21:05:58 <andythenorth> help me out with stations ?
21:06:18 <andythenorth> when I create a station (FEAT_STATION), is that a station, or a station tile?
21:06:22 <andythenorth> and is it an action 0?
21:06:41 <_pruple> andythenorth: yes
21:06:53 <andythenorth> XOR
21:07:12 <_pruple> station spec is old and messy
21:07:15 <andythenorth> I have to name them in python πŸ˜›
21:07:28 <andythenorth> so it's either `class Station` or `class StationTile`
21:07:31 <_pruple> it's basically a tile, except when it isn't
21:07:33 <andythenorth> pls send gifs
21:07:55 <andythenorth> what about those ones that are multiple tiles and fixed size and stuff?
21:08:04 <_pruple> exactly
21:08:11 <andythenorth> but the build menu shows just one tile
21:08:15 *** Wolf01 has quit IRC (Quit: Once again the world is quick to bury me.)
21:08:32 <andythenorth> I never understood the CHIPS nfo, so I've never had a good chance to whine about stations πŸ™‚
21:08:56 <andythenorth> I wonder if trying to write a clean python class for them is going to be lol πŸ™‚
21:09:13 <peter1139> It's a station. There's no separate feature for station tiles.
21:09:33 <_pruple> that one
21:09:42 *** Extrems has quit IRC (Remote host closed the connection)
21:09:58 <DorpsGek> [OpenTTD/OpenTTD] rubidium42 merged pull request #11305: Remove: stdarg.h/cstdarg dependency https://github.com/OpenTTD/OpenTTD/pull/11305
21:10:04 *** Extrems has joined #openttd
21:10:57 <andythenorth> ok good, no need to rename my Station class πŸ™‚
21:12:09 <peter1139> Although adding a separate feature for StationTile using the modern approach might be "fun"...
21:17:29 <_glx_> you can check nml example, it's a conversion of one CHIPS station
21:18:54 <FLHerne> StationLayout? :p
21:19:10 <FLHerne> probably not tbh
21:19:17 <_glx_> and <https://gist.github.com/glx22/301ac434df8bfd41e137bc219a5bf465> for a overly complex conversion of CHIPS magic tile (only supporting coal)
21:20:16 <_glx_> was mainly to test all possibilities of the nml implementation
21:21:47 <_glx_> I used one layout for all with optional hide, while original NFO version just used different layouts (which is also possible in nml)
21:24:29 <_glx_> original NFO uses `select_sprite_layout` callback, a lot simpler than all the hide magic with temp storage I did in my test version
21:24:48 *** Extrems has quit IRC (Quit: ZNC 1.7.5 - https://znc.in)
21:25:59 *** Extrems has joined #openttd
21:27:45 <andythenorth> think I'm going to do one python base class and generate rail stations / roadstops / objects from it
21:27:48 <andythenorth> BaseStation? πŸ˜›
21:29:15 <_glx_> will be a pain as stations are very different compared to roadstops and objects
21:29:48 <andythenorth> I'm *hoping* nml hides enough of that, and python can hide the rest
21:30:26 <andythenorth> everything has an ID and a station class?
21:30:30 <andythenorth> then n views
21:30:33 <_glx_> sprite layouts syntax is the same, but with some limitations
21:31:00 <andythenorth> it's ok, they can have entirely different templates to generate the actual nml
21:31:44 <andythenorth> I'll have to test this πŸ™‚
21:32:06 <andythenorth> https://cdn.discordapp.com/attachments/1008473233844097104/1152718578823471194/image.png
21:32:06 <andythenorth> I'm hoping that, e.g. if trains can drive in a shed, I can use the same sprite for RVs to drive in the shed
21:32:30 <andythenorth> they will all just need very large doors πŸ˜›
21:34:07 <andythenorth> will docks also be BaseStation? πŸ˜›
21:34:22 <andythenorth> sheds that ships drive through? πŸ˜›
21:35:24 <_glx_> you can use <https://github.com/OpenTTD/nml/blob/master/examples/station/example_station.nml> as a base (it's the cow pen station tile)
21:35:46 <_glx_> starting from a working nml implementation should help
21:35:56 <andythenorth> I've got that already πŸ™‚
21:36:00 <andythenorth> (thanks though)
21:36:48 <andythenorth> used it as the basis here https://github.com/andythenorth/chips/blob/nml-port/src/templates/test.pynml
21:38:53 *** keikoz has quit IRC (Ping timeout: 480 seconds)
21:39:49 *** Extrems has quit IRC (Remote host closed the connection)
21:41:00 *** Extrems has joined #openttd
21:44:25 <peter1139> 1/114. Getting there.
21:44:43 *** HerzogDeXtEr has joined #openttd
21:48:30 <_glx_> hmm roadstop version uses a weird ground I think
21:53:04 <_glx_> yeah sprite 2032 is most likely not a ground sprite
21:56:34 <andythenorth> https://cdn.discordapp.com/attachments/1008473233844097104/1152724739614314517/image.png
21:56:34 <andythenorth> it's not πŸ™‚
21:57:00 <peter1139> https://musicforprogramming.net/ Nice UI.
21:57:05 <peter1139> No Boostrap 5 there :D
22:04:04 <andythenorth> mode 2
22:04:06 <andythenorth> looks nice
22:04:45 <peter1139> Colours are not TTL enough.
22:13:04 <peter1139> Hmm, I think I can't use a StrongType inside a union.
22:18:08 *** tokai has joined #openttd
22:18:12 *** ChanServ sets mode: +v tokai
22:19:29 <andythenorth> time for zzzz?
22:24:52 *** tokai|noir has quit IRC (Ping timeout: 480 seconds)
22:27:48 <peter1139> Not yet.
22:31:23 <truebrain> peter1139: Sure you can use a StrongType in a union .. but should you want to? πŸ˜„
22:31:42 <peter1139> Yup :)
22:31:59 <peter1139> Maybe it's because it's an array of them.
22:32:47 <peter1139> Or it's an array of them, in a struct.
22:32:53 <peter1139> (in a union)
22:33:16 <truebrain> Such words πŸ˜„
22:33:51 <peter1139> All words you don't want to hear together :D
22:34:13 <truebrain> (No clue what you are up to, so it's fun reading just words πŸ˜„ )
22:39:52 *** SpComb has quit IRC (Remote host closed the connection)
22:49:06 *** SpComb has joined #openttd
23:13:24 <peter1139> https://fedimon.uk/system/media_attachments/files/111/077/302/408/681/176/original/8d47405eb28eee16.jpg
23:16:44 *** Wormnest_ has joined #openttd
23:16:44 *** Wormnest has quit IRC (Read error: Connection reset by peer)