00:18 <+bridge_> ur awesome btw thank u both @essigautomat for bringing this to the game 00:18 <+bridge_> much needed after so many years 00:26 <+bridge_> cool player 00:26 <+bridge_> Theres grey bars above my video on mobile though 00:26 <+bridge_> cool player 00:26 <+bridge_> Theres grey space above my video on mobile though 02:23 <+bridge_> @ryozuki https://github.com/lambdaclass/ethrex/pull/6327 02:23 <+bridge_> 02:23 <+bridge_> whaaat is thiiiis :kekw: 02:23 <+bridge_> 02:23 <+bridge_> insane AI 03:21 <+bridge_> nolem stalker 03:48 <+bridge_> <12944qwerty> The bucket fill or tune colors lol 04:12 <+bridge_> tune colors! 04:12 <+bridge_> xdd 04:53 <+bridge_> is this true? if I open a youtube link in a new tab it doesn't play until I click start 04:53 <+bridge_> I think if you've interacted at some point you can use that to play audio 08:48 <+bridge_> chromium has a whitelist for some websites 11:03 <+bridge_> should the "solid stopper" also stop ninja dash? 11:03 <+bridge_> or let ninja dash pass through like old stopper 11:18 <+bridge_> imo we also should have a one way variant if we do this ... 😮 11:18 <+bridge_> anybody having experience with playing ddnet on cachyOS? 11:18 <+bridge_> why one way 11:19 <+bridge_> we already have one way stoppers, and having some with a proper hitbox would be cool 11:20 <+bridge_> maybe can do 11:20 <+bridge_> but i think point of solid stopper is that its solid 11:28 <+bridge_> tbh with how new tiles prs look like i dont think its ever getting merged with directional 11:29 <+bridge_> its small pr with just 1 solid for now, directional adds too much code 13:29 <+bridge_> fair ig 👍 13:29 <+bridge_> new tiles have it hard in general 13:56 <+bridge_> I have CacheOS installed on one of my devices. 13:56 <+bridge_> 13:56 <+bridge_> Overall, DDnet plays great, considering the device's hardware is weak. 13:56 <+bridge_> any other experience with the os, playing steam games, working and stuff? 13:56 <+bridge_> compiling, programming 😄 13:58 <+bridge_> My main system on Arch, and overall, 90% of games work perfectly. 13:58 <+bridge_> Programming and compiling are also fine, both on regular Arch and CachyOS. 13:59 <+bridge_> My main system on EndeavourOS, and overall, 90% of games work perfectly. 13:59 <+bridge_> Programming and compiling are also fine, both on regular EndeavourOS and CachyOS. 13:59 <+bridge_> My main system on EndeavourOS(Arch), and overall, 90% of games work perfectly. 13:59 <+bridge_> Programming and compiling are also fine, both on regular EndeavourOS and CachyOS. 14:11 <+bridge_> Thank you :heartw: I might give it a try 14:22 <+bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1482006055662653561/image.png?ex=69b56132&is=69b40fb2&hm=a51d5709fd88333fe18f221579b968cf3ba29b89b3a9d1798569484413a46942& 14:23 <+bridge_> llm rules the world 🥺 14:25 <+bridge_> If anything happens, see how other people tried to play a game that isn't supported on Linux. [protondb](https://www.protondb.com/) ^^ 14:25 <+bridge_> I am aware about proton and wine and protondb and steam os ^^ but thank you 14:26 <+bridge_> Everything that requires a kernel level anticheat is out ofc 14:26 <+bridge_> glad I don#t play cs anymore 14:26 <+bridge_> well cs has no kernel level anticheat .. xD 14:27 <+bridge_> does anybody know how I set a time on a local server? Or do I need to manipulate the sqlite directly? 14:32 <+bridge_> Someday I'll update the packages... 14:32 <+bridge_> ``` 14:32 <+bridge_> :: 860 packages to upgrade/install. 14:32 <+bridge_> 860 endeavouros/downgrade 11.5.5-1 -> 12.0.1-1 14:32 <+bridge_> 859 endeavouros/endeavouros-branding 25.11.1.1-1 -> 26.03.1.1-1 14:32 <+bridge_> 858 endeavouros/endeavouros-mirrorlist 25.11.1-1 -> 26.3-1 14:32 <+bridge_> 857 endeavouros/eos-bash-shared 25.12.3-1 -> 26.2.1-1 14:32 <+bridge_> ``` 14:33 <+bridge_> crontab every night :p 15:11 <+bridge_> codex gets it running on my ipad 15:16 <+bridge_> encountering issues like not able to close consoles because ios doesn't have a "back" button 15:21 <+bridge_> please, for the new hook coll tip make a cl_hook_coll_tip 0/1 15:21 <+bridge_> f.e. for kog its a bit weird to have a larger hook coll than what u can actually hook 15:22 <+bridge_> there is, you can set alpha to 0 15:22 <+bridge_> also you are the first person complaining about the opposite 15:23 <+bridge_> I like you 🙂 15:23 <+bridge_> its unintuitive and its not consistent with the actual options 15:23 <+bridge_> at least put the option to put the color alpha 0 but have the option pls lol 15:25 <+bridge_> I agree, but other maintainers wanted less options, so life with it 15:26 <+bridge_> If its annoying to have more options, its because the option system is not good. U should have all the options you can need at some point while manteining the option pages readable and user friendly 15:27 <+bridge_> i wanted to start coding for ddnet so how hard would it be 15:27 <+bridge_> :P 15:28 <+bridge_> so you want to break old configs, noted 15:28 <+bridge_> nono 15:28 <+bridge_> xd 15:29 <+bridge_> @ninja25226 https://discord.com/channels/252358080522747904/295908390956433410/1482022188767776768 so I remind everyone who complained 15:29 <+bridge_> i mean adding a "advanced settings" button would be enough and have the missing options there 15:30 <+bridge_> but i dont think a "enable hook tip" button is a problem idk 15:31 <+bridge_> the good thing about the new way is, that you can set the hook collision line to 128 i.e. 50% alpha 15:31 <+bridge_> and this is the default value, so we can teach players, that they can change it :justatest: 15:38 <+bridge_> Please comment your progress and open problems on the GitHub issue. Do iPhones only have one button? We currently assume that at least an Escape/Back key is available for a lot of things. This can be fixed for the console for example by adding a dragging gesture to close it or simply a close button, but it likely requires an individual solution for every case were a feature depends on Escape/Back (e.g. binding a key in the settings would lock up th 15:44 <+bridge_> luckily it's always easy to design option sets that are readable, maintainable, and flexible enough to satisfy everyone 15:59 <+bridge_> the only comment on the pr is mine 15:59 <+bridge_> :tear: 16:00 <+bridge_> 🤡 16:00 <+bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1482030590759796919/image.png?ex=69b5780b&is=69b4268b&hm=bdc9461c8cd52ab28aaca3441e3a7df22dc372d3a192f7a6d870bc6780a101d5& 16:00 <+bridge_> i thought it's merged... 16:00 <+bridge_> so i deleted my branch as cleanup 16:00 <+bridge_> there are too many, and I am not proficient with everything going on in the codebase 16:01 <+bridge_> it's an accident :) 16:02 <+bridge_> Nooo, can't code anymore, need to wait a week 16:02 <+bridge_> haha 16:03 <+bridge_> at least till tomorrow, im about to sleep 16:03 <+bridge_> but it truly is way better than copilot 16:05 <+bridge_> yea idk why copilot is so ass 16:05 <+bridge_> claude/codex so much better than it 16:18 <+bridge_> the timing is really unfortunate now lerato is forever ragebaited 16:18 <+bridge_> i just ragebaited him with AI like two hours ago 16:19 <+bridge_> ragebait bad 16:19 <+bridge_> now he probably sees AI and just wanna die 16:19 <+bridge_> I have many more things to be pissed about than programmers and the world in general committing intellectual suicide 16:20 <+bridge_> :pokesnarf: my bad, here I thought I would care about my wellbeing. bummer. 16:20 <+bridge_> :pokesnarf: my bad, here I thought you would care about my wellbeing. bummer. 16:21 <+bridge_> I can't save you from yourself 16:21 <+bridge_> /s btw. I should shut up 16:21 <+bridge_> the movie is really triggering me, now i just have a ton of anxiety with nowhere to dump to 16:38 <+bridge_> which movie 16:39 <+bridge_> marty supreme 16:39 <+bridge_> oh lol 16:39 <+bridge_> fun movie 17:17 <+bridge_> lmao I love you lerato 18:06 <+bridge_> hello i require context! I'm sure you favourited it 18:06 <+bridge_> It wasn't that good, I was just doing a bit 18:07 <+bridge_> :( 18:24 <+bridge_> Ok 18:24 <+bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1482066803009130707/image.png?ex=69b599c5&is=69b44845&hm=81fba77ba5f387bd59396917f228373c713200b383e8c7096cb76a4c96b043cb& 18:24 <+bridge_> xd 18:24 <+bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1482066803009130707/image.png?ex=69b599c5&is=69b44845&hm=81fba77ba5f387bd59396917f228373c713200b383e8c7096cb76a4c96b043cb& 18:32 <+bridge_> @learath2 do you have database read access? 18:32 <+bridge_> wait, I can download the database from the website : 18:37 <+bridge_> I have pretty much everything access 18:37 <+bridge_> dev role when? 👉🏻 👈🏻 18:39 <+bridge_> enjoy 18:39 <+bridge_> :poggers2: 19:04 <+bridge_> This is likely UB too, no? 1 fits in an `int`, `<<` takes the type of the LHS, you are shifting into the sign bit of a signed integer, UB 19:05 <+bridge_> do i have to commit again to get dev role mr. learath 19:06 <+bridge_> I don't think so, though did you end up committing to the client? 19:06 <+bridge_> I don't think so, though did you end up committing to the client/server? 19:06 <+bridge_> I remember you doing something on the website maybe, but the main repo I don't really remember 19:06 <+bridge_> i did work on the website + my only real fix to the client was a typo 19:07 <+bridge_> that's a merged PR, enough for dev role :poggers2: 19:07 <+bridge_> maybe eventually i fix the other website changes 19:07 <+bridge_> its so weird that i have like a massively better looking website than anyone else 19:07 <+bridge_> cus its local css 19:07 <+bridge_> :nouis: 19:08 <+bridge_> i just didnt merge cus louis wants light theme support 19:08 <+bridge_> tbh we should have a proper non-halloween dark theme maybe 19:08 <+bridge_> gtg out, hopefully nothing breaks the second I leave 19:09 <+bridge_> I would like this, the orangish dark mode always bugged me a little 19:11 <+bridge_> @byfox: could you open an issue with that flag? If lerato says it’s UB we should investigate that 19:13 <+bridge_> I understand why this is a ddnet problem and I intend to open an issue about it. 19:23 <+bridge_> added image 19:23 <+bridge_> done :) 19:24 <+bridge_> Thanks 19:24 <+bridge_> I suggested how to fix it, so even a newbie can do it. I'll wait for someone to write something or add Labels, and only then will I submit a PR if it's accepted as a bug. 19:30 <+bridge_> This is at the boundary of my knowledge, so maybe somehow enum magic makes it not UB? 19:30 <+bridge_> Idk, either way we should definitely look into it 19:32 <+bridge_> just send fix pls :heartw: 19:32 <+bridge_> 1U<< :) 19:33 <+bridge_> `1U<<` :) 19:33 <+bridge_> With the 1u it definitely is safe, what I don't know is whether by some enum initialization rule the original is also safe 19:33 <+bridge_> or 19:33 <+bridge_> 19:33 <+bridge_> ``` 19:33 <+bridge_> enum : unsigned int 19:33 <+bridge_> ``` 19:34 <+bridge_> E.g. idk how the underlying type of an enum is decided exactly in C++. Maybe somehow that 1<<31 coerces it into a long 19:35 <+bridge_> @essigautomat Which option looks better to you? 19:35 <+bridge_> I wouldn't think so 19:36 <+bridge_> Thanks for the idea, I'll do that! 19:37 <+bridge_> I assume it works because it's evaluated at compile-time. Otherwise it would be caught by UBSAN. 19:38 <+bridge_> I'm thinking maybe I should make it `1ULL`... 19:39 <+bridge_> Those flags are used as `int`s, they shouldn't be longs 19:40 <+bridge_> I don't think this makes a difference. Wouldn't the shift still be performed with the integer literals and the value only later cast to the underlying type of the enum? 19:41 <+bridge_> It probably can't be. Idk exactly, but iirc even operations that happen within initializers have to be evaluated w.r.t. the rules of the abstract machine 19:41 <+bridge_> Ubsan is iirc fully runtime 19:41 <+bridge_> https://godbolt.org/z/brdqrEEx3 19:42 <+bridge_> the compile error shows that the type is still int 19:42 <+bridge_> Does he see what's in the "generated" folder? 19:42 <+bridge_> UBSAN works at runtime. The constant is already evaluated at compile-time. 19:44 <+bridge_> I don't actually know if it makes it any less UB tbf 19:45 <+bridge_> LHS is definitely int, and the operation is still definitely shifting into the sign bit 19:45 <+bridge_> I also found this a while ago using cppcheck: 19:45 <+bridge_> ``` 19:45 <+bridge_> src\game\generated\protocol.h:217:30: portability: Shifting signed 32-bit value by 31 bits is implementation-defined behaviour [shiftTooManyBitsSigned] 19:45 <+bridge_> GAMEINFOFLAG_ENTITIES_BW = 1<<31, 19:45 <+bridge_> ^ 19:45 <+bridge_> src\game\generated\protocol.h:217:30: error: Signed integer overflow for expression '1<<31'. [integerOverflow] 19:45 <+bridge_> GAMEINFOFLAG_ENTITIES_BW = 1<<31, 19:45 <+bridge_> ^ 19:45 <+bridge_> ``` 19:47 <+bridge_> > compile-time. 19:47 <+bridge_> 19:47 <+bridge_> If I'm not mistaken, this is the problem. This number has already been calculated and it went beyond int, so it won't complain. 19:48 <+bridge_> @robyt3 As I understand it, you don't want it to exceed int, but at the same time we need to do something about it. What are your suggestions? 19:52 <+bridge_> Using `1u << {int(i)}` should avoid the undefined behavior of the shift. Casting the `unsigned` back to `int` is well-defined. We also do that to undiff snapshots: 19:52 <+bridge_> ```cpp 19:52 <+bridge_> // addition with wrapping by casting to unsigned 19:52 <+bridge_> *pOut = (unsigned)*pPast + (unsigned)*pDiff; 19:52 <+bridge_> ``` 19:52 <+bridge_> Actually, that's what I originally wanted^^ 19:53 <+bridge_> ~~the only legitimate usage of unsigned arithmetic~~ 19:54 <+bridge_> asking out of curiosity, how do ddracenetwork handles the movements / inputs between clients and server ? not even talking about prediction but purely inputs. im trying to learn how to do that in general? client send packet to move and host handles all that. prediction is a plus but im not there yet. would appreciate any help :Smile: 19:57 <+bridge_> <12944qwerty> https://chillerdragon.github.io/teeworlds-protocol/06.html 20:14 <+bridge_> We will still have problems, we will need to add new flags? We won't be able to add them in this case... 20:14 <+bridge_> ```cpp 20:14 <+bridge_> /mnt/hdd500/code/CLionProjects/ddnet/cmake-build-debug/src/generated/protocol.h:244:31: error: right operand of shift expression ‘(1 << 32)’ is greater than or equal to the precision 32 of the left operand [-fpermissive] 20:14 <+bridge_> /mnt/hdd500/code/CLionProjects/ddnet/cmake-build-debug/src/generated/protocol.h:244:33: error: enumerator value for ‘GAMEINFOFLAG_TEST’ is not an integer constant 20:14 <+bridge_> 244 | GAMEINFOFLAG_TEST = 1U<<32, 20:14 <+bridge_> | ^~ 20:14 <+bridge_> cc1plus: note: unrecognized command-line option ‘-Wno-nullability-completeness’ may have been intended to silence earlier diagnostics 20:14 <+bridge_> ``` 20:15 <+bridge_> `GAMEINFOFLAG` are packed into one `int`. Flags after that are `GAMEINFOFLAG2` 20:16 <+bridge_> Apparently we want more and more flags... The sad thing is that we can't change them because it's too ingrained. 20:16 <+bridge_> Apparently we want more and more variables... The sad thing is that we can't change them because it's too ingrained. 20:19 <+bridge_> WDYM? We can always add more flags/ints 20:20 <+bridge_> ```cpp 20:20 <+bridge_> unsigned int Flags = 0; 20:20 <+bridge_> Flags |= GAMEINFOFLAG_ENTITIES_BW; 20:20 <+bridge_> Flags |= GAMEINFOFLAG_ENTITIES_FNG; 20:20 <+bridge_> log_info("TEST", "%d", Flags); 20:20 <+bridge_> ``` 20:20 <+bridge_> `2026-03-14 00:18:50 I TEST: -1879048192` 20:20 <+bridge_> Well... Actually, I suggest moving `GAMEINFOFLAG_ENTITIES_BW` to flags2 20:22 <+bridge_> What's the issue? 20:22 <+bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1482096518356930590/image.png?ex=69b5b571&is=69b463f1&hm=46dc9fbdc1dc4974d47ed30a171387ef02db8b88567dc02b4238c248a15074d4& 20:22 <+bridge_> If you look at the variables in `GAMEINFOFLAG`, then most of them are `GAMETYPE`, `PREDICT` and `ENTITIES`, we would like to create separate variables for them, but due to the fact that most of the variables have been there for a very long time, we simply cannot remove them.... Only if we create these variables for future 20:23 <+bridge_> ``` 20:23 <+bridge_> log_info("TEST", "%d", GAMEINFOFLAG_ENTITIES_BW); 20:23 <+bridge_> log_info("TEST", "%d", GAMEINFOFLAG_ENTITIES_FNG); 20:23 <+bridge_> log_info("TEST", "%d", Flags); 20:23 <+bridge_> ``` 20:23 <+bridge_> 20:23 <+bridge_> ``` 20:23 <+bridge_> 2026-03-14 00:22:56 I TEST: -2147483648 20:23 <+bridge_> 2026-03-14 00:22:56 I TEST: 268435456 20:23 <+bridge_> 2026-03-14 00:22:56 I TEST: -1879048192 20:23 <+bridge_> ``` 20:24 <+bridge_> I don't think it will count properly... 20:24 <+bridge_> Looks correct, that's how two's complement works 20:24 <+bridge_> Look at the binary representation 20:30 <+bridge_> After testing a bit, we don't need `1U<<`, it works fine, we just can't add anything else to `GAMEINFOFLAG` 20:31 <+bridge_> If it's undefined behavior then we should fix it. And cppcheck also complains about it. 20:31 <+bridge_> uh.. 20:32 <+bridge_> I forgot to take it into account 20:50 <+bridge_> On this, I'm going to bed because I'm making too many hasty decisions. 22:03 <+bridge_> bro 22:03 <+bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1482121957385306339/1.jpg?ex=69b5cd23&is=69b47ba3&hm=d3c276d88e9d952a7ebe6cfe00c12e7bd44a0ccbfaa74bb0936b183a973c8760& 22:03 <+bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1482121958429823066/2.jpg?ex=69b5cd23&is=69b47ba3&hm=d397a59ca6bd4fd0eccbd1692cbdcfd71888725e8f5c06832ed64bc819626e8a& 22:03 <+bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1482121959020953777/3.jpg?ex=69b5cd23&is=69b47ba3&hm=e28cc07f46ba1c1d5bb5589723bdecf29536f373593d4aa7d46070748b68f961& 22:03 <+bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1482121959562285187/4.jpg?ex=69b5cd23&is=69b47ba3&hm=3c0931d84c1b5c9b27cf2777f85a36da6227e73a0b1d07d26f52ff7b29a8d7c5&