IRC logs for #openttd on OFTC at 2023-12-20
⏴ go to previous day
00:56:28 *** m1cr0man has quit IRC (Quit: G'luck)
00:56:47 *** m1cr0man has joined #openttd
02:17:45 *** reldred has joined #openttd
02:17:45 <reldred> I swear to dog, if y’all get pr8480 merged I promise to buy all related parties a BeverageOfChoice and stop picking fights/being a snarky twat over OpenTTD being where PR’s go to die.
02:18:09 <reldred> Just, in January or something. Christmas is flatlining my wallet at the moment
03:25:09 *** Wormnest has quit IRC (Quit: Leaving)
03:51:56 *** D-HUND has quit IRC (Ping timeout: 480 seconds)
05:06:37 *** Smedles_ has joined #openttd
05:09:32 *** Smedles has quit IRC (Ping timeout: 480 seconds)
06:32:36 *** keikoz has quit IRC (Ping timeout: 480 seconds)
07:30:27 *** ChanServ sets mode: +v tokai
07:37:15 *** tokai|noir has quit IRC (Ping timeout: 480 seconds)
08:32:00 <peter1138> Lol, already applied. I had the tab open from last night which hadn't updated. :)
09:32:42 <kamnet> SOS! Is anyone in here a Windows Hyper V 2012 server expert?
09:34:10 <DorpsGek> LordAro: Don't ask to ask, just ask
09:34:31 <LordAro> oh wait, discord doesn't get DorpsGek output, does it?
10:46:30 <peter1138[d]> Extra height given to station type name (orange text) to allow it to wrap...
10:52:09 <rau117> reldred: For the regular openttd is too much in my opinion. Too large gap between «regular» and «realistic» things. JGRpp have much more things that can help handle it.
10:52:09 <rau117> _If you want to suffer... to challenge, try to control it with openttdcoop logic._
10:52:09 <rau117> Although I can help with testing.
10:59:20 <peter1138> Not sure about the class name. I've made it cropped with a tooltip showing the full name.
11:06:39 <merni> I wanted to work on it in the weekend but now I don't have to :)
11:07:40 <merni> Maybe the class name could be in the window title?
11:07:52 <merni> The way it is for the vehicle list
11:09:33 <peter1138> Horizontal scrollbar on the list... (nope)
11:10:06 <merni> almost the only thing worse than scrolling text
11:11:47 <peter1138> So for some reason with FreeType/ICU, the font "Iosevka" is very slow during layouting. Enough that calculating the width/height of the station type name strings incurs a delay of a few seconds.
11:12:48 <peter1138> (It's also slow in plenty of other places, so I'm not specifically going to look at it here.)
11:13:08 <merni> > Iosevka is a monospace programming typeface, built declaratively using custom typeface generation software, and with an emphasis on compatibility with CJK characters.
11:13:08 <merni> Maybe the "custome typeface generation" is the issue?
11:14:44 <peter1138> No, that's a build time :)
11:15:55 <merni> Yeah but perhaps the build process generates font files that are full of some inefficiencies as compared to normally created ones?
11:16:51 <peter1138> Maybe I should try the non-super-ttc version.
11:17:07 <peter1138> The font file itself is 294MiB!
11:17:23 <andythenorth> I didn't read the diff for 8480 but does it include related grf spec extension?
11:17:44 <peter1138> Flat depot variants?
11:17:53 <andythenorth> that's an elaborate fake-question based way of saying "8480 doesn't address the grf spec"
11:18:29 <andythenorth> touches a lot eh
11:18:34 <andythenorth> 121 files changed
11:18:36 <peter1138> Doesn't address NewGRF is a good thing.
11:18:41 <merni> > Consider which new graphics are needed and possible NewGRF support.
11:18:50 <peter1138> Because that's sort of a separate feature.
11:18:51 <merni> *possible* NewGRF support probably means no :p
11:19:07 <peter1138> Also depots are per-railtype currently.
11:19:29 <andythenorth> it's going to be weird without grf support, because depots aren't usually full tile
11:19:35 <andythenorth> so that seems like a basic hurdle to success
11:20:09 <peter1138> Hmm, I suppose some bare level of GRF support...
11:20:22 <andythenorth> I'm not trying to gatekeep the feature 🙂
11:20:41 <andythenorth> just can envisage a flurry of grf chat
11:21:01 <merni> andythenorth: yes, that's how it's shown in the screenshot
11:23:53 <peter1138> I guess the sprite layout for depots is fixed, and railtype grfs just provide a set of sprites that match the layout.
11:24:15 <merni> but I have seen full-length depots in grfs
11:24:20 <peter1138> Silly me not thinking about using the tile layout action 2.
11:27:14 <merni> hm, why does Land Area Information show the NewGRF name for stations but not railtypes?
11:27:47 <locosage> peter1138, action0 layout property
11:27:50 <emperorjake> Couldn't we have full tile length depots in OpenGFX2?
11:29:23 <peter1138> emperorjake, that doesn't address the grf specs.
11:30:34 <emperorjake> so a GRF spec for depots would allow depots to change graphics if other depots are adjacent?
11:37:37 <rau117> Maybe then increase max speed in such depots? 61 kmh in regular depot can be justified as «train running through tight hidden turns», but for super-massive station-like depot complex such speed limit acts like bad joke
11:38:00 <merni> trains don't travel very fast in railway yards either
11:38:14 <merni> there are generally a lot of points and turnouts with speed restrictions
11:38:27 <locosage> with grf support max speed can be a property
11:38:31 <merni> but if there's a setting for speed limit in depots, I don't see why that should be limited
11:38:39 <merni> if you want to be unrealistic that should be possible
11:50:18 <_zephyris> emperorjake: Yup. They're not right now, but I'd be happy to add. Pop a bug report on Github to remind me...
11:55:23 <rau117> By the way, what about interaction with breakdowns? Using “realistic depots” and breakdowns will be... not very simple. Especially considering how often trains need to be serviced (let's say every 40 days) and how large “stoopid depot arrays” have to be even in current form (let's say at least x6 1-tile depots).
11:55:23 <rau117> It might be worth making the breakdowns mutually exclusive with a realistic depot.
11:58:42 <peter1138> Perhaps "if engine is on depot tile don't break down" helps
11:59:47 <peter1138> But I'm not sure how entering depots works with this, so it might be there's no negative impact anyway.
12:13:00 <talltyler> I’m pretty sure I’ve seen screenshots from people whose trains have broken down halfway into a depot
12:15:52 <_jgr_> There is a reason why most players just turn it off
12:23:14 <rau117> About breakdowns… 90-degree turns were disabled for new cfg, maybe it's time to disable breakdowns as well? All the same, breakdowns only cause problems, especially for beginners.
12:23:14 <rau117> *Although breakdowns can be “fixed” by increasing the “breakdowns-protected time” by, say, 12 times. Maintenance once a year sounds a lot more interesting (or way less annoying) than once a month.*
12:23:43 <talltyler> And even 8480 includes the fact existing “pocket dimension” depot in addition to the new tile-based depots, so nobody need worry about being restricted or forced into gameplay they don’t want.
12:25:02 <andythenorth> Standardise Depot Schema 2
12:26:18 <peter1138> If your vehicles are breaking down all the time they are past their service life.
12:27:02 <andythenorth> Breakdown Type Labels?
12:27:10 <peter1138> "I don't want to update my vehicles" shouldn't lead to "disable game features by default"
12:29:00 <rau117> peter1138: What I mean is that in order to be completely sure that the train will not break down, even if it is 100% reliable, you need to service it once a month. Once every 2 months – and the train can break down at the most inopportune moment.
12:29:40 *** nielsm has quit IRC (Ping timeout: 480 seconds)
12:29:51 <andythenorth> Flat Breakdown Airports
12:30:03 <andythenorth> has anyone asked GPT what we should do?
12:34:19 <talltyler> No, we just wait for you to tell us 😛
12:36:08 <andythenorth> that always goes so well 🙂
12:40:56 <Eddi|zuHause> i've never interacted with chatgpt directly. in every channel there's always been someone else who did it
12:41:44 <peter1138> ~ 250 breakdowns across 5 AI companies over 2 years.
12:42:51 <peter1138> (include wagons and shadows I suppose)
12:43:24 <peter1138> But one AI is either not servicing or is buying bad engines.
12:43:35 <peter1138> 21 breakdowns on a vehicle is 0% reliability.
12:44:44 <Eddi|zuHause> i always play without breakdowns, because there's no game mechanics to mitigate them
12:45:31 <Eddi|zuHause> i mean things like overtaking a broken down train
12:46:39 <Eddi|zuHause> because pathfinder cannot distinguish between a train that's moving and a train that's broken down
12:49:05 <peter1138> I bet it can if someone decided that needs to be a thing.
12:49:47 <rau117> Eddi|zuHause: *As some guy from openttdcoop said, “you need to strive not for breakdown-resistant networks, but for jam-resistant. It's much more interesting”*
12:51:19 <Eddi|zuHause> rau117: well... coop usually has diametrically opposite views :p
12:51:37 <rau117> rau117: like this, 66 days and broken down right before depot, max reliability is 100%
12:53:37 <rau117> Eddi|zuHause: In dislike of (current form of) breakdowns - something in which “coop” and “realism” are similar
12:54:36 <peter1138> Showing the timetable instead of the details window which shows reliability, age, service interval and number of breakdowns is a stroke of ... genius?
12:59:11 <rau117> timetable to show how many days pass between services
13:00:04 <Eddi|zuHause> the last time i played with breakdowns trains broke dwon on the way out of the depot...
13:01:13 <Eddi|zuHause> (this may very well have been 20 years ago)
13:01:59 <rau117> rau117: Breakdowns here are not frequent, but in they exist. They don’t affect this testing track, but more or less long trains (even the same 1 loco x 7 tiles, vanilla default) may well get into an endless traffic jam because of one unsuccessfully broken train.
13:05:54 <peter1138> Well 92% reliability is not 100%.
13:06:12 <peter1138> And that's at least 3 months since the last service.
13:06:43 <peter1138> Plus an obsolete engine running in 3277.
13:08:24 *** Flygon has quit IRC (Quit: A toaster's basically a soldering iron designed to toast bread)
13:10:34 <rau117> peter1138: «vehicles never exist» is enabled, and so, train's max reability is 100%.
13:10:34 <rau117> It is just impossible to achieve 100% reliability on 100% of track without building shttons of depots every X tiles. Therefore, a breakdown is possible at any time... except for some time immediately after servicing. I don’t remember exactly which, something like 30 days.
13:10:51 <peter1138> Never exist is nice ;)
13:14:37 <Eddi|zuHause> is this a "there is no spoon" variant? :p
13:19:45 <locosage> there is no practical way to avoid breakdows, no way to build functional bypasses, no way to tell if depot is eligible for automatic servicing, no way to stop trains from off-route for depot.
13:19:53 <locosage> well-designed "feature" :p
13:20:52 <_jgr_> It's there because that's how it was in the original TTD
13:21:00 <_jgr_> In that respect it doesn't have to make sense
13:34:01 <rau117> _jgr_: Reduced breakdowns give you at least a little room to play. It was even worse in the original
13:36:58 <rau117> locosage: Imagine playing with breakdowns (=
13:48:29 <Eddi|zuHause> "reduced breakdowns" is also an original feature
13:50:17 <rau117> Ah… right, there are no «original» breakdowns, they are called “normal”
14:13:40 *** keikoz has quit IRC (Ping timeout: 480 seconds)
14:15:12 <belajalilija> i think breakdowns would be more fun if grf authors could control reliability
14:20:54 <peter1138> That wouldn't help rau117 using a 1300 year old base steam engine :p
14:22:27 <talltyler> Improved Breakdowns from JGRPP could be an improvement, but might be best to implement from scratch instead of simply upstreaming 🙂
14:23:05 <talltyler> Breakdown code could really benefit from some refactoring too, I suspect
14:24:19 <peter1138> But surely you know what 0x6666 means?!
14:24:41 <LordAro> number of the hexagonal beast
14:24:45 <peter1138> 0x7AE0 and 0xBFFF and 0x3FFF are self-explanitory...
14:32:42 <rau117> talltyler: Some time ago I was checked breakdowns code and found that on reduced breakdowns trains (probably trucks and planes) have 40 days protection… So, simply by increasing theese 40 days to for example 1 year, breakdowns can be made «better for a little bit».
14:32:42 <rau117> Although... given the calendar changes, in order to maintain the need for servicing, 12 real minutes, regardless of the calendar speed will be a better option.
14:33:30 <rau117> It will do just fine as a temporary measure until “good” code for breakdowns is written... *or invented*
14:34:26 <locosage> imo even having guaranteed period doesn't improve it much
14:34:34 <locosage> it's just something that can work until it doesn't
14:35:05 <_jgr_> talltyler: It's one of those areas which is highly prone to death by bikeshedding
14:35:16 <locosage> and when it works it's no different from having no breakdowns
14:35:39 <_jgr_> Such a PR is unlikely to progress smoothly
14:41:05 <rau117> locosage: 1 depot complex, instead of ~~365/50~~ 8 is playable to some extent.
14:41:05 <rau117> This doesn't force you to copy a ton of "stoopid depot arrays", but still leaves a small need to create at least one of them.
14:41:05 <rau117> Increase max. the speed at the depot on the monorail and maglev is 1.5 and 2 times (just like on curves) – and breakdowns will no longer be **so **terrible.
15:11:17 <talltyler> _jgr_: Yes, and I don’t use breakdowns and don’t really care about improving them. 😉
15:12:23 <talltyler> But somebody who does care might want to take a similar approach
15:44:33 *** Wormnest has joined #openttd
15:55:45 <peter1138> Hmm, not very many road stops sets.
15:56:32 <peter1138> One, as far I can tell. (And one more which is JGRPP-only.)
15:57:10 <lamarr> are custom road stops in vanilla now?
15:58:49 <_jgr_> I'd expect that there will probably be more interest once 14.0 is out
16:07:59 *** Smedles has joined #openttd
16:11:20 *** Smedles_ has quit IRC (Ping timeout: 480 seconds)
16:34:05 <peter1138> Wondering if I should make it resize to fit the text or keep it max required size.
16:39:08 *** Smedles_ has joined #openttd
16:41:38 *** Smedles has quit IRC (Ping timeout: 480 seconds)
17:03:06 <xarick> reduce font size if exceeds x lines with the normal size
17:09:43 *** Hanicef has joined #openttd
17:23:08 <xarick> who was the guy with the TTD original? can you check aircraft mail capacity when refitted to mail for me plz
17:23:43 <xarick> also, where is this cargo refit multiplier in openttd code 😦
17:32:10 <peter1138> It's not refittable to mail.
17:32:52 <peter1138> "65 passengers, 8 bags of mail" can be refitted to 16 bags of valuables, though.
17:33:56 <peter1138> 16 tons of bulk cargo, or 32 crates of goods.
17:34:23 <peter1138> Hmm, refittable to livestock, but not wheat.
17:35:53 <peter1138> That's based on the passenger quantity, it's just a coincidence that 8 is a multiple of 16 and 32.
17:36:27 <peter1138> 25 passengers can be refit to 12 crates or 6 tons.
17:37:27 <peter1138> AI has decided to use "CHIPS Cobblestone Ground" as a railtype.
17:37:31 <peter1138> There's no visible rails.
17:39:00 <peter1138> OpenTTD seems to tweak the aircraft refits by taking the mail capacity into account as well.
17:44:15 <xarick> isn't there any vehicle in there that could refit from pass to mail or goods to mail? I don't remember, but i think there is something
17:44:43 *** greeter has quit IRC (Ping timeout: 480 seconds)
17:44:51 <_glx_> no there were dedicated mail vehicles
17:44:56 *** greeter has joined #openttd
17:45:07 <_glx_> oh maybe ships were refittable
17:45:11 *** gelignite has joined #openttd
17:45:37 <xarick> CargoSpec::Get(default_cargo)->multiplier ah, found something
17:46:24 <peter1138> Cargo ship is refittable but its capacity does not change.
17:46:40 <peter1138> 160 goods, 160 mail, 160 livestock.
17:46:42 <_glx_> multiplier is most likely not what you think
17:47:19 <peter1138> Same behaviour in OpenTTD for ships.
17:55:27 <xarick> i think the airplanes there can refit to everything? or was that only in openttd?
17:57:29 <andythenorth> The refitting diagram on grf spec explains all 😛
17:58:34 <xarick> 1 coal -> 4 passengers
17:59:56 <xarick> dang, I really need to try ttd
18:15:18 <xarick> ah, dosbox works wonders still
18:19:17 *** Hanicef has quit IRC (Quit: leaving)
18:22:49 <xarick> refits to everything except mail, which is what I wanted to know
18:53:30 <_glx_> limiting width to preview width ?
19:01:23 <toast_not_found> _glx_: And how would one do this?
19:04:57 <peter1138> Multiplayer -> Add Server -> Enter server's hostname.
19:05:45 *** deerecom has quit IRC (Quit: User went offline on Discord a while ago)
19:09:08 *** Hanicef has joined #openttd
20:15:40 <xarick> `local min_diff = min(diff_Nx, min(diff_Ny, min(diff_Wx, min(diff_Wy, min(diff_Sx, min(diff_Sy, min(diff_Ex, diff_Ey)))))));` could squirrel get access to std_min?
20:46:14 *** gelignite has quit IRC (Quit: Stay safe!)
20:46:39 <andythenorth> hmm goes it I just cheat money in my game?
21:08:14 <peter1138> Yeah, there is a visual change :o
21:15:12 <peter1138[d]> Also it goes quite weird when the widget is narrow.
21:19:27 <peter1138[d]> I suppose technically that's a bug with this window.
21:20:22 <peter1138[d]> (The widget was sized for a different AI name)
21:20:49 <_glx_> yeah this window is "weird"
21:21:27 <andythenorth> now I am eating a orange
21:21:39 <peter1138> I am eating a orange... flavoured chocolate.
21:27:22 <peter1138[d]> _zephyris: Not bad, positioning needs adjustment.
21:27:52 <peter1138[d]> Sprite font at 4x.
21:28:44 <peter1138[d]> OpenTTD Sans at 4x
21:29:26 <andythenorth> it's never going to quite be as good....but the flexibility wins 😄
21:29:48 <andythenorth> kerning on the t 😛
21:29:58 <peter1138[d]> Yes, that's slightly off too.
21:34:35 <_zephyris> Oof. Time to fix the t kern, pretty sure t t is a specific pair.
21:34:57 <_zephyris> Looks pretty good though.
21:35:38 <peter1138[d]> Yeah, Ship down one "pixel", aircraft up one "pixel"
21:46:00 <talltyler> I seem to remember a TT-Forums post complaining about truncated signs, that may have never been solved. Wonder if this is it.
21:46:48 <talltyler> Town names don’t have bordered signs, right? Just the plain text?
21:47:45 <talltyler> (I am not at a computer)
21:50:07 <peter1138> talltyler, yeah, that was something else, I'm pretty sure it was found though.
21:50:32 <talltyler> It would be nice to have a screenshot showing the problem, or maybe I’m just slow to understand what a “viewport sign” refers to
21:50:49 <talltyler> Or a sign in a window viewport?
21:50:58 <peter1138> Hmm, or maybe it does apply to towns. Lemme check.
21:50:59 <_glx_> sign, station names, ...
21:51:25 <talltyler> Waypoints (which are of course special stations)
21:51:32 <peter1138> Yes, it does affect town signs.
21:52:05 <peter1138> And this doesn't fix that. Huh. Hmm.
21:52:19 <peter1138> I should compile it :)
21:52:29 <peter1138> I rebased from an older commit.
21:53:09 <peter1138> Yes, it does fix this.
21:53:18 <andythenorth> sometimes I dream of providing a hint to autoreplace
21:53:28 <andythenorth> where it's just a linear upgrade to the same model tree
21:53:36 <peter1138> I'm not sure that was the old issue though, as this requires changing interface scale, and that was either not mentioned, or not even a thing back then :)
21:54:53 <andythenorth> autoreplace by GS? 😛
21:55:26 <peter1138> Screenshot attached :D
22:00:17 <xarick> I got a problem in calculating map area again
22:06:22 <talltyler> andythenorth: Bad idea: Eliminate wagon speed limit and (in order to avoid incorrect-roleplay high speed freight trains) replace it with a callback that limits engine speed when any freight wagons are attached. Add flavour text about vacuum brakes to confuse filthy casuals who don’t know how to roleplay properly. Problem solved (and other problems created :P)
22:06:51 <andythenorth> I have thought of it before 😛
22:07:04 <andythenorth> would need to auto-upgrade the sprites over time also
22:07:09 <andythenorth> can't be arsed with the latter part 😛
22:07:58 <peter1138> Isn't there a callback to "Hint" at autoreplace though?
22:09:19 <Eddi|zuHause> talltyler: that's a proper BAD FEATURE :)
22:09:50 <andythenorth> is cb 34 autoreplace or autorenew?
22:10:10 <talltyler> I’ve designed a few BAD FEATURES in my time 😉
22:10:18 <Eddi|zuHause> do we implement cb34? or is that a TTDP leftover?
22:10:19 <_glx_> renew doesnt change types
22:10:47 <xarick> The rectangle area I want to remove is virtual sized 32x32, but I need to count the number of tiles that are real, that's 32x31. The outer rectangle is 62x62. I need to subtract 62x62 - 32x31. I somehow am counting an extra 'y' row of tiles by mistake.
22:10:49 <talltyler> Industries of the Caribbean was designed on the premise. I don’t remember if I ever released Lumberjack Industries but it was even worse
22:14:20 *** nielsm has quit IRC (Ping timeout: 480 seconds)
22:15:46 <peter1138> Clamp all coordinates to map bounds, then subtract one from the other.
22:21:56 <xarick> `local area_inner = (((min(tile_Sx_inner - 1, _max_x)) - (max(tile_Nx_inner + 1, _min_x)) + 1) * ((min(tile_Sy_inner - 1, _max_y)) - (max(tile_Ny_inner + 1, _min_y)) + 1));`
22:21:56 <xarick> Probably this will work
22:22:33 <peter1138> Yeah, if you open that window with the long-named script open, it makes the widget correct :)
22:22:54 <peter1138> So it's "does this change break it" or "is this already broken so it doesn't matter"
22:22:59 <peter1138> But there may be other things.
22:27:46 <xarick> the number im looking for is 2852, I got 2790 😦
22:30:46 <peter1138> Yikes, these "real 32bpp" sprites are chopped up really badly.
22:30:55 <Eddi|zuHause> and how exactly did you arrive at either of those numbers?
22:32:47 <xarick> actually the number I need is neither... it's 2756
22:32:55 <Eddi|zuHause> or: different question: if you change the proportions of the cutout area, how much more wrong do your different calculation methods get?
22:33:52 <_glx_> can't you do it in multiple steps instead a big unreadable operation ?
22:35:10 *** keikoz has quit IRC (Ping timeout: 480 seconds)
22:35:56 <peter1138[d]> The different offsets cause issues.
22:42:08 <peter1138[d]> Yeti does strange things too, but not quite like that.
22:43:17 <xarick> according to the tile numerator, the final area size should be 2756, that's the number of tiles from the outer rectangle - inner rectangle.
22:44:45 <xarick> the "jump to the next loop inside" should stop once tile numerator matches this calculated tile area that I'm currently failing to calculate
22:45:01 <peter1138[d]> High detail sprite here.
22:45:04 <xarick> but it doesn't match, so it continues looping inside
22:46:07 <xarick> it enters an infinite state
22:47:22 <_glx_> why not just test x and y to be in the area ?
22:48:03 <xarick> I was trying to make it interruptible
22:49:02 <xarick> it does one loop at a time, updates the variables, then returns false, I can continue doing something else in the script, and be back to it to resume
22:49:26 <xarick> which is when the numerator matches calculated area
22:53:50 <xarick> "resumable" maybe the correct word
22:54:15 <Eddi|zuHause> that doesn't explain the need for the complicated calculation
22:54:34 <Eddi|zuHause> that is so convoluted that you can't decipher where the error is
22:55:16 <peter1138[d]> Nor explain it. Nor try to simplify the problem to work out where it's going wrong.
22:56:00 <xarick> i'd post the code but it's so bad ;o
22:58:44 <Eddi|zuHause> everybody here writes bad code every now and then. the important skill is to dissect it,
23:00:54 <peter1138[d]> Double the number of corners needed...
23:01:33 *** Hanicef has quit IRC (Quit: leaving)
23:11:36 <Eddi|zuHause> now, back to my question: if you change the dimensions of the rectangles, does the error get bigger? smaller? stay the same?
23:26:31 *** Wolf01 has quit IRC (Quit: Once again the world is quick to bury me.)
23:57:05 <andythenorth> was it bed time?
23:58:03 <andythenorth> you are less responsive than GPT 😛
23:58:09 <andythenorth> goes it replace?
23:58:21 <Eddi|zuHause> i don't understand the concept of "bed time"
23:58:32 <andythenorth> as an AI, you don't need to sleep
23:59:49 <Eddi|zuHause> sure, but the whole concept is backwards. i need to go to bed because i need to sleep. not i need to sleep because i go to bed.
continue to next day ⏵