00:50 < bridge> you will get a reply from two of them after you already work at the new job. 00:50 < bridge> frame this message if it becomes reality. 02:53 < bridge> @ryozuki i think teesmash is bugged xD 02:53 < bridge> i don't remember playing it for 3705 hours in 1 session 02:53 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1396656261235212298/image.png?ex=687ee101&is=687d8f81&hm=63dc1323d19eae926bf8c4794482c082ad5021cb22ab3736a0d7477c04f2a14b& 02:56 < bridge> interesting that the client will make that demo 07:25 < bridge> Yea it’s a client issue not a teesmash issue 07:58 < bridge> why dont i have demos like that from other gamemodes then? i have maybe 10hrs on teesmash vs. multiple thousands on other gamemodes 07:59 < bridge> sounds like teesmash is sending data the recorder cant handle. server and clientside issue 08:39 < ws-client> **** sure maybe 08:40 < ws-client> **** i somehow doubt that tho teemash doesn't send anything custom does it? 08:44 < bridge> Idk its a very old mod it might send some fucked up time data and round starts or smth 08:45 < bridge> Sometimes you even just get stuck on the map in spec without being able to move your cursor 08:46 < bridge> u should add prediction 09:00 < bridge> gumo :owo: 09:04 < bridge> client is obviously missing a sanity check, I wonder what size this files have, or if this is just a wrong displayed time or there are a bunch of compressed zeros 09:05 < bridge> client is obviously missing a sanity check, I wonder what size this files have, or if this is just a wrong displayed time or there are a bunch of compressed zeros, or the server sends you everything that happened since last boot :thonk: 10:12 < bridge> idkman its pretty addicting 10:16 < bridge> @louis.place do flying projectiles, like this freeze shotgun bullets, also hit the targets? 10:18 < bridge> @louis.place do flying projectiles, like this freeze shotgun bullets, also hit the targets? I guess the alternating targets do what I have in mind with this 🤔 11:05 < ws-client> **** 104 pending prs ._. 11:06 < ws-client> **** @teero777 is your physics code open src? 11:06 < bridge> Not right now 11:06 < bridge> It's not done and has some breaking bugs 11:14 < ws-client> **** i dont see the problem, fix bugs in the open 11:16 < bridge> Teero is hiding the bitcoin miner in the physics first 11:16 < bridge> A small price for O(n) physics imo 11:17 < bridge> The demo length is simply calculated based on the first tick and last tick, so the game mode probably skipped a lot of ticks at some point 11:17 < bridge> Bitcoin mining is only O(n^256) 11:18 < bridge> O(n^256!) 11:18 < ws-client> **** O^(w)^O 11:21 < bridge> Actually probably not. I'm sleepy 11:36 < ws-client> **** i think someone hacked heinrichs github, gg 11:36 < ws-client> **** https://zillyhuhn.com/cs/heinokidnapped.png 11:42 < bridge> seems to be photoshopped 12:12 < bridge> hilarious filename, btw. 12:22 < bridge> PR Monday :poggers2: 12:58 < bridge> Any CMake experts? How to specify that I want a system library called `uuid` with `list(APPEND PLATFORM_LIBS uuid)` and not the separate executable target `uuid` for the tool of the same name? Renaming the tool would fix it. I otherwise get error 12:58 < bridge> ``` 12:59 < bridge> CMake Error at CMakeLists.txt:3064 (target_link_libraries): 12:59 < bridge> Target "uuid" of type EXECUTABLE may not be linked into another target. 12:59 < bridge> One may link only to INTERFACE, OBJECT, STATIC or SHARED libraries, or to 12:59 < bridge> executables with the ENABLE_EXPORTS property set. 12:59 < bridge> ``` 13:03 < bridge> you could try "-luuid" or "uuid.lib" for target_link_library, but I can't confirm without testing 13:03 < bridge> you could try "-luuid" or "uuid.lib" for target_link_library, but I can't confirm without testing and I don't know how os-independend this is 13:07 < bridge> Thanks, using `uuid.lib` works (locally). Should probably do that for all libraries on Windows to distinguish them from other targets. 13:19 < ws-client> **** !ping 13:19 < chillerbot> pong 13:19 < chillerbot> ! is deprecated moved to $ 13:46 < bridge> nice photoshop nobo 13:57 < bridge> oh lol, github ate a review, I never got notified D: and I was sitting here patiently for robyt while he did it last week 13:59 < bridge> ~~oh lol, github ate a review, I never got notified D: and I was sitting here patiently for robyt while he did it last week~~ no I even answered wtf 14:00 < ws-client> **** yo solly how good are you block skills? Imo using rcon to moderate is pussy style 14:00 < ws-client> **** i propose a ban hammer for #9934 14:00 < chillerbot> https://github.com/ddnet/ddnet/issues/9934 14:00 < bridge> The Almighty GitHub on phone at 2am answer ? :kek: 14:00 < bridge> Why 14:00 < bridge> friday/saturday night, 1 in the morning, right after band evening, so yes 14:00 < bridge> Bind mouse1 +fire; rcon ban all 0 14:01 < ws-client> **** nah bro u gotta land the hit 14:06 < ws-client> **** @melon dont let your moderators find out about ``echo kill_plx{0..63} | tr ' ' ';' | tr 'x' ' '`` 14:07 < bridge> 14:30 < bridge> glowing ban hammers 14:30 < bridge> that sounds like fun 14:30 < bridge> make it a game mode 14:30 < bridge> probably already exists 14:32 < bridge> already had the idea of a party server a few years ago, and now I am imagining a game "sacrifice a person" where the group has to select a person to be banhammered 14:35 < bridge> cult of the lamb style 14:36 < bridge> "Culteest" mod when? 14:48 < ws-client> **** @jxsl13 https://github.com/BigBanTW/BigBan 14:49 < bridge> see, there it is 14:49 < bridge> BigBan aka BB 14:49 < bridge> 👀 14:49 < bridge> so meta 16:54 < bridge> why does this happen? ignor the music :boo: 16:54 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1396867856620191864/Desktop_2025.07.21_-_17.51.49.01.mp4?ex=687fa611&is=687e5491&hm=8041ba7235723dc96dfceed309e152a63bafb1a9fba7df4ac139e3233a8271d0& 16:54 < bridge> i mean the eye emote 16:54 < bridge> whenever i go freeze, it happens 16:54 < bridge> 19.4 16:54 < bridge> antiping on 16:55 < bridge> vulkan 16:55 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1396868130499985488/Screenshot_20250721-1653382.png?ex=687fa652&is=687e54d2&hm=56f7f4b53763f16f3b948d556b836c7c528ce910f09c3088020cd2d90561676a& 16:55 < bridge> :owo: 16:58 < bridge> skin is predicted, emote is not 16:59 < bridge> so emote can be slightly delayed if high ping 17:31 < bridge> no probably not 17:31 < bridge> well maybe 17:31 < bridge> idk tbh 17:46 < bridge> would be nice 17:47 < bridge> kind of like super mario maker shell thing 17:47 < bridge> with 2 switches 17:49 < bridge> Rustwizards, I want to skip serializing some fields of a struct sometimes, but not depending on the value of the field. 17:49 < bridge> 17:49 < bridge> ```rust 17:49 < bridge> struct Foo { 17:49 < bridge> field_a: String, 17:49 < bridge> field_b: String, 17:49 < bridge> field_c: String, 17:49 < bridge> } 17:49 < bridge> ``` 17:49 < bridge> I don't want to serialize `field_c` depending on an external condition, is this possible or do I need to move `field_a` and `field_b` to their own struct and flatten it into another struct that has `field_c`? 17:52 < ws-client> **** stap rost and merge some prs 17:53 < bridge> I can merge one while I wait for a Rust wizard 17:53 < ws-client> **** <:poggers2:1008007455936094328> 17:53 < ws-client> **** can i suggest which one u merge? 17:53 < bridge> Sure 17:53 < ws-client> **** #9274 17:53 < chillerbot> https://github.com/ddnet/ddnet/issues/9274 17:54 < bridge> Waay too complicated 17:54 < ws-client> **** nob 17:55 < ws-client> **** if you want easy ones and are picky you have to merge 2! 17:57 < bridge> Please review #10493, we are leaking stack memory to 0.7 servers :monkaS: 17:57 < bridge> https://github.com/ddnet/ddnet/pull/10493 18:01 < bridge> use serde 18:02 < bridge> https://serde.rs/attr-skip-serializing.html 18:06 < bridge> I need the context to be external, I could use a skip_serializing_if accessing a global but that'd be nasty. I'm looking for something like 18:06 < bridge> ```rust 18:06 < bridge> serde_json::to_string(serialization_context) 18:06 < bridge> ``` 18:06 < bridge> don't think it exists tho 18:06 < bridge> true but maybe wait for 2nd pr just cause i dont wanna add toooo many things at once 18:07 < bridge> im also gonna make them work with the blue arrow things 18:07 < bridge> you could hack in your own serialize impl for that 18:07 < bridge> IOW it's not the value of the field that warrants it not being serialized, it's the current context 18:07 < bridge> I think I'll just wrap it rather than implement a custom serialize 18:08 < bridge> ```rust 18:08 < bridge> struct Foo { 18:08 < bridge> ... 18:08 < bridge> } 18:08 < bridge> 18:08 < bridge> struct FooWithC { 18:08 < bridge> #[serde(flatten)] 18:08 < bridge> foo: Foo, 18:08 < bridge> field_c: String, 18:08 < bridge> } 18:08 < bridge> ``` 18:10 < bridge> Or maybe an enum I guess 18:11 < bridge> Though I don't think rust enums get common initial sequence optimization 18:41 < bridge> ? 18:42 < bridge> oh look a memory safety issue 18:43 < bridge> ```rust 18:43 < bridge> #[derive(Serialize)] 18:43 < bridge> struct Resource { 18:43 < bridge> // Always serialized. 18:43 < bridge> name: String, 18:43 < bridge> 18:43 < bridge> // Never serialized. 18:43 < bridge> #[serde(skip_serializing)] 18:43 < bridge> hash: String, 18:44 < bridge> 18:44 < bridge> // Use a method to decide whether the field should be skipped. 18:44 < bridge> #[serde(skip_serializing_if = "Map::is_empty")] 18:44 < bridge> metadata: Map, 18:44 < bridge> } 18:44 < bridge> ``` 18:45 < bridge> I don't want it conditional on the value of the field, that's the issue 18:45 < bridge> efunction can be anything 18:46 < bridge> I could access global state for it, but I think that's nasty 18:46 < bridge> hmm 18:46 < bridge> I basically have a json object that has an optional field, if it has the optional field I want it to have a different type 18:47 < bridge> i think u can with a enum 18:48 < bridge> and some tag attribute 18:48 < bridge> I think I'll do something like 18:48 < bridge> ```rust 18:48 < bridge> enum Foo{ 18:48 < bridge> Base{ 18:48 < bridge> field_a: String, 18:48 < bridge> field_b: String, 18:48 < bridge> }, 18:48 < bridge> Extended{ 18:48 < bridge> field_a: String, 18:48 < bridge> field_b: String, 18:48 < bridge> field_c: String, 18:48 < bridge> } 18:48 < bridge> ``` 18:48 < bridge> enums can have tag in field 18:48 < bridge> in serde 18:48 < bridge> I think I'll do something like 18:48 < bridge> ```rust 18:48 < bridge> enum Foo{ 18:48 < bridge> Base{ 18:48 < bridge> field_a: String, 18:48 < bridge> field_b: String, 18:48 < bridge> }, 18:48 < bridge> Extended{ 18:48 < bridge> field_a: String, 18:48 < bridge> field_b: String, 18:48 < bridge> field_c: String, 18:48 < bridge> } 18:48 < bridge> } 18:48 < bridge> ``` 18:48 < bridge> look it up 18:48 < bridge> im in a raid 18:48 < bridge> I can't have a tag, it's not my type I'm parsing something predefined 18:48 < bridge> :d 18:49 < bridge> i mean u control the struct? 18:49 < bridge> in rust side 18:49 < bridge> I was planning on using `#[serde(untagged)]` and a custom deserializer to use `field_c` as the tag somehow 😄 18:49 < bridge> yeah thats it 18:49 < bridge> https://serde.rs/enum-representations.html 18:49 < bridge> check this 18:49 < bridge> #[serde(tag = "type")] 18:49 < bridge> #[serde(tag = "field_c")] 18:50 < bridge> #[serde(tag = "t", content = "c")] 18:51 < bridge> rude, i told him the exact same thing :c 18:52 < bridge> happy raiding! 18:53 < bridge> Idk what is wrong with me today, I end up disliking everything I code 18:54 < bridge> Maybe the `#[serde(flatten)]` version was the nicest, but then I need to deserialize twice, that's nasty 18:56 < bridge> Ah I have it, `field_c: Option`, then I can just match on `field_c` and return the correct type, and move everything over so there is no cloning 18:59 < bridge> That's also nasty because I have to repeat all the fields, but at least it's not double parsing 20:11 < bridge> If you’re not using a DeserializeOwned object avoiding clones might be futile 20:11 < bridge> webservers with streaming structs for bytes will just use the lifetime-specified version 20:11 < bridge> but yeah i love serde 20:12 < bridge> anyone actually try eserde? i haven’t been able to convince my team to switch 20:13 < bridge> webservers with streaming wrappers for bodies will just use the lifetime-specified version 21:12 < bridge> @learath2 21:12 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1396932833515405363/image.png?ex=687fe295&is=687e9115&hm=74ca756d414f0a86a0156baf5089a092c87b0c8f15be239e1248a5894277bb8a& 21:12 < bridge> good meme 21:13 < bridge> i dont understand 21:16 < bridge> watch oppenheimer 21:36 < bridge> @chillerdragon i can make my hammer a ban hammer, but you have to hold down otherwise its a bit risky 21:36 < bridge> >< 21:36 < bridge> @chillerdragon in tclient you can make hammer (or gun) a ban weapon, but you have to hold down otherwise its a bit risky 21:36 < bridge> you can also make it kill or kick or mute if u wanted to 21:38 < ws-client> **** lmao nice solly 21:40 < ws-client> **** @robyt3 my console sometimes keeps scrolling and there is no way for me to stop it. It is rare and i can not reproduce so not sure if it is also in ddnet because i dont actively play with pure ddnet. 21:40 < ws-client> **** not sure what i should do but its driving me nuts 21:40 < ws-client> **** my client did not edit input or console code 21:41 < ws-client> **** it says locked in the top but it keeps scrolling in new messages 21:41 < bridge> Maybe related to #10367, no idea how to reproduce that either 21:41 < bridge> https://github.com/ddnet/ddnet/issues/10367 21:42 < ws-client> **** hmm 22:03 < bridge> this happens when console reaches lines limit 22:04 < bridge> make a dbg log that prints every frame and after a while it wont be able to lock 22:15 < bridge> I get it before the limit too 22:16 < bridge> I think, quite sure. The limit is high right? I still saw the lines number increasing it was line at 400 or something 22:32 < bridge> i was able to reproduce this again on ddnet master, but again i had no clue how i activated it 22:32 < bridge> i was able to get this again on ddnet master, but again i had no clue how i activated it