00:28 < bridge> @remakepower although it would be nice for every chat msg be a shared_ptr and have them in a queue 00:28 < bridge> you can actually do most things by keeping an id in the chat msg to check if its the same one 00:28 < bridge> 00:28 < bridge> selection across multipelt hings is a bit... aggh no matter the data structure 00:28 < bridge> 00:28 < bridge> context menu is pretty easy to do no matter the data structure 00:28 < bridge> 00:28 < bridge> selection and/or changing the data structure would conflict with my translation thing 00:28 < bridge> 00:28 < bridge> there is alot of jank in the chat and generally cleaning it up would be nice 00:28 < bridge> 00:28 < bridge> idk if there is an alternative to the circular queue which doesnt come with *some* overhead, but its probably better for maintainability, grokking and modability if it was changed 00:51 < bridge> can we also add text effects in chat so your chat messages can pop out? πŸš€ 00:52 < bridge> we arent about to get a reduced motion setting in ddnet lmao 00:53 < bridge> like, have a bold text and italics text thing, and also wiggling text too! 00:53 < bridge> 1v1 me $b{RIGHT NOW} or you $w{AUTOLOSE!} 00:53 < bridge> rich text is going to be hard 00:53 < bridge> i am a fan of the $thing{} syntax i have used it before 00:54 < bridge> less verbose than xml 00:54 < bridge> but its harder to parse than something like ansii escapes 00:54 < bridge> yeah thats fair 00:54 < bridge> having actual just ansii escapes might be an idea actually 00:54 < bridge> idk how you would type them, maybe with wisiwig binds or something 00:55 < bridge> i was mostly being ironic anyways but i think itd be funny 00:55 < bridge> im in favour for rich text, but its fair that most people arent or are atleast wary due to spammers 00:55 < bridge> $p{cheval_up} for fonticons LOL 00:55 < bridge> This command was not found. 00:55 < bridge> or just $chevel_up 00:56 < bridge> doesnt font icons use private unicode so you could just send that character 01:01 < bridge> i mean do i rly wanna look up unicode constantly 01:03 < bridge> add in game unicode list 01:05 < bridge> good idea 03:31 < bridge> Ah 03:31 < bridge> Hm 03:33 < bridge> :thonk: 03:35 < bridge> What is your "translation thing"? 04:36 < bridge> send 05:57 < bridge> gm ryozuki and everyone 06:18 < bridge> Gn 10:41 < bridge> https://github.com/sollybunny/ddnet 10:42 < bridge> Step 1: Learn git 10:42 < bridge> Step 2: ??? 10:42 < bridge> Step 3: Profit 10:42 < bridge> Step 4: ??? 10:42 < bridge> Step 5: World domination 10:42 < bridge> exactly 10:42 < bridge> Step 6: AI takes over 10:42 < bridge> the message is there because of the pain i had to deal with trying to keep a ton of feature branches 10:43 < bridge> wait until you figure out rebases with changed histories πŸ™ˆ 10:43 < bridge> or i could just not have feature branches 10:44 < bridge> I program for 15 years now with git and still need to look this up every time 11:49 < bridge> Selecting across multiple items is already a thing in the console 11:50 < bridge> is it simple to do 11:50 < bridge> can u just ctrl-c ctrl-v 11:50 < bridge> gotta go look at the code [venniehehe](https://cdn.discordapp.com/emojis/1217924433465835571.webp?size=48&name=venniehehe) 11:51 < bridge> no i don im trying to make prs for tclient /: 11:51 < bridge> i remember trying to copy a message in console and i was in a fuill server so everytime i went to select it another message popped up so it deselected it 11:51 < bridge> i remember trying to copy a message in console and i was in a full server so everytime i went to select it another message popped up so it deselected it 11:51 < bridge> had to go dnd 11:52 < bridge> scroll up one line and it locks 11:52 < bridge> for some reason that didnt happen 11:52 < bridge> hi molen 11:52 < bridge> hi bunnybunbunb 11:52 < bridge> bonbon 11:53 < bridge> malone 11:53 < bridge> post melon 11:54 < bridge> 🍈 12:05 < bridge> add voice chat, however, as ddnet servers supports up to 128 players, run special servers for the purpose of voice chatting and socialising, whose max_players set to lower value. it would be funnier 12:09 < bridge> https://discord.com/channels/252358080522747904/1264537509677891584 12:10 < bridge> i was so confused why chiller called himself WarHammer and is on discord 12:10 < bridge> :Pepega: 12:10 < bridge> lol 12:10 < bridge> i like chillerdraqon 12:23 < bridge> that skin is chillers dont steal it xd 12:27 < bridge> is the proof thingy supposed to show up while picking tiles? 12:27 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1353329383812894780/screenshot_2025-03-23_12-26-53.png?ex=67e141b4&is=67dff034&hm=7f70ca51fd90d93fc638231231d2cbe13fb96dd2d1e6ef7e73f5ee8a65d08472& 12:27 < bridge> he found his true self 12:30 < furo> @qxdfoxy Would be nicer if it was hidden, feel free to make a PR :) 12:30 < bridge> I dont know it feels out of place in the selection screen 12:47 < bridge> dyslexia hitting hard holy, I read that as "would it be nicer if it was hidden?" 12:55 < bridge> bruh 12:55 < bridge> I guess theres alot to learn for me about pull requests, i didnt know renaming it would make it seem deleted 12:56 < bridge> dont worry, it happens :p 13:01 < bridge> It shouldn't. You might have clicked something wrong 13:04 < bridge> really? I went on Github > view all branches > three dots on the right for the branch and renamed it 13:04 < bridge> Ah you renamed the branch, not the pr 13:04 < bridge> yes 13:05 < bridge> Yeah, I don't think you can do that without triggering the deleted thing 13:05 < bridge> I can delete it after it merges right? I have two branches with the same thing now 13:05 < bridge> Yep 13:06 < bridge> Or if you need to rename, you can rename the branch, then also change the branch the pull request is referencing. I don't remember off the top of my head where that is changed though 13:07 < bridge> I'll stick with the easy option then and just delete it after 14:08 < bridge> hi guys can someone make a pull request for this 14:08 < bridge> Hellou :3 14:16 < furo> @oxyzo. I have already created one if you look further up :) 14:18 < ws-client> @learath2 does anti bot know about the clients version? I assume all player data antibot has comes from ``CAntibotRoundData`` right? So if i send a message how do i know if it should be 0.7 or 0.6 14:20 < bridge> okay thanks:deen_star: 14:20 < ws-client> @learath2 nvm got it furo told me there is sixup passed on client join 14:54 < bridge> uhmm i didnt do this 14:54 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1353366304807194746/image.png?ex=67e16417&is=67e01297&hm=3517d95ab0761f61f70cdafa132afc5440a63b4ba7ab9c605f5bc7ed7a911569& 15:49 < bridge> @robyt3 this is how it looks for me with the suggested changes xD 15:49 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1353380215702687764/Base_Profile_2025.03.23_-_15.48.51.03.mp4?ex=67e1710c&is=67e01f8c&hm=92f77dc8c54f570752f2475090b6fb4866e14f697f4df0ff2c5bc4e04521e39e& 15:54 < bridge> yeah, no idea why it appears different in the menu, maybe just add debug messages and check which values are actually used and if they are similar ingame and in the menus 15:54 < bridge> doing this works: 15:54 < bridge> `const float TicksHead = (int)(Client()->GlobalTime() * Client()->GameTickSpeed());` 15:56 < bridge> guess it should be `Graphics()->QuadsSetRotation((int)TicksHead);` instead 15:57 < bridge> they still "feel" too fast, but I can't really tell at this point anymore πŸ€” 15:59 < bridge> yeah I guess this was the issue 16:13 < bridge> How to add a new file into source code? Do I only need to change CMakeLists.txt? 16:13 < bridge> i can hear this image 16:13 < bridge> i can hear this video 16:13 < bridge> i can hear this video, i have mixed feelings on it, cuz i am a reduced motion kinda gal 16:16 < bridge> profesional coder 16:16 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1353386958407204984/image.png?ex=67e17753&is=67e025d3&hm=36a9e313ed593c5ee635319ea9934d2ce7d12d7aaccd012ce28204ba8745c950& 16:16 < bridge> @ryozuki is it not possible to make an aggregate literal with non-const elements in llvm-ir? 16:16 < bridge> ```llvm 16:16 < bridge> %a = type {i32, i8, i64} 16:16 < bridge> 16:16 < bridge> define void @main(i32 %foo) { 16:16 < bridge> %t = add i8 0, 0 16:16 < bridge> 16:16 < bridge> %b = alloca %a 16:16 < bridge> store %a {i32 10, i8 %t, i64 20}, %a* %b 16:16 < bridge> 16:16 < bridge> ret void 16:16 < bridge> } 16:16 < bridge> ``` 16:17 < bridge> yeah, add new files in `CMakeLists.txt`, that should be enough 16:28 < bridge> hmm no idea, but btw do u know about undef? 16:28 < bridge> its a way to init a struct without having it behind a alloca 16:28 < bridge> using insertelement 16:36 < bridge> interesting 17:39 < ws-client> @jxsl13 do i need to do anything? 17:42 < bridge> no, you can just join 17:43 < bridge> I was asked for another league client based on t-client, which is why I deleted the prevous two repos and created three new ones with a different naming schema 17:44 < bridge> I don't want to distribute closed source clients without at least a second person seeing the code. it's just a trust thing, I guess. 17:46 < bridge> A couple people worked on tee renderers, did anyone document the values? 17:48 < bridge> https://github.com/heinrich5991/libtw2/blob/6391e05d22aa42b34d191bda377c254c922c81a7/doc/tee_rendering.md 18:00 < bridge> are the eyes really supposed to be this close πŸ˜„ 18:00 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1353413224015335495/image.png?ex=67e18fc9&is=67e03e49&hm=bca30030e7063dd2b4145b90e8a0aa2b1980db43b86f3d7280ec481be4138c2d& 18:01 < bridge> or that big πŸ˜• 18:03 < bridge> try out `0.75 - false_eye_offset_value` 18:04 < bridge> unsure what `false_eye_offset_value` is, nor what this new value is supposed to be? 18:04 < bridge> unsure what `false_eye_offset_value` is, nor what this new value is supposed to be 18:05 < ws-client> TIL ``broadcast "a" b`` only prints ``a`` even tho the argument is ``r[message]`` i thought r was supposed to be raw 18:05 < bridge> in the doc it says 18:05 < bridge> ``` 18:05 < bridge> each eye (away from the other): 18:05 < bridge> x: abs(cos(dir)) * 0.01 18:05 < bridge> ``` 18:05 < bridge> you probably used that? 18:05 < bridge> It's "rest" IIRC 18:05 < ws-client> okay even rest is wrong then 18:05 < bridge> instead, try 18:05 < bridge> ``` 18:05 < bridge> each eye (away from the other): 18:05 < bridge> x: 0.75 - abs(cos(dir)) * 0.01 18:05 < bridge> ``` 18:05 < bridge> Oh, no I used just 18:05 < bridge> ``` 18:06 < bridge> eyes: 18:06 < bridge> 0.125 up 18:06 < bridge> 0.05 left/right 18:06 < bridge> ``` 18:06 < ws-client> because it can also only consume one argument if the first one is quoted 18:06 < bridge> huh 18:06 < bridge> is the 0.05 there meant to be something else? 18:06 < bridge> good question 18:06 < ws-client> ``broadcast a "a" a`` prints ``a "a" a`` 18:06 < ws-client> this seems a bit inconsistent 18:07 < bridge> Relevant twgpu code 18:07 < bridge> ```rust 18:07 < bridge> let eyes_middle = Vec2::new(0.25, 0.2) * direction - Vec2::new(0., 0.1); 18:07 < bridge> let eye_offset = Vec2::new(0.15 - direction.x.abs() * 0.02, 0.); 18:07 < bridge> ... 18:07 < bridge> let eye_middle = eye_sprite 18:07 < bridge> .sprite(position + animation.body.offset + eyes_middle, skin) 18:07 < bridge> .scale2(eye_scale); 18:07 < bridge> for side in [1., -1.] { 18:08 < bridge> eye_middle 18:08 < bridge> .offset(side * eye_offset) 18:08 < bridge> .mirror_x(side.is_sign_positive()) 18:08 < bridge> .pass_to(&mut sprite_fn); 18:08 < bridge> } 18:08 < bridge> ``` 18:08 < bridge> note that in twgpu, 1 = 1 tile = 1/2 body length 18:08 < bridge> so the values in twgpu code are 2x bigger 18:09 < bridge> okay this looks so different 18:09 < bridge> tbf I did fix eye rendering in twgpu like 1 month ago 18:12 < bridge> is this another ddnet rewrite 18:12 < bridge> I'm learning some godot for something else, I just am not a very creative person so I'm practicing with teeworlds stuff 18:12 < bridge> Relevant DDNet code 18:12 < bridge> ```cpp 18:12 < bridge> float EyeScale = BaseSize * 0.40f; 18:12 < bridge> float h = Emote == EMOTE_BLINK ? BaseSize * 0.15f : EyeScale; 18:12 < bridge> float EyeSeparation = (0.075f - 0.010f * absolute(Direction.x)) * BaseSize; 18:13 < bridge> vec2 Offset = vec2(Direction.x * 0.125f, -0.05f + Direction.y * 0.10f) * BaseSize; 18:13 < bridge> 18:13 < bridge> Graphics()->TextureSet(pSkinTextures->m_aEyes[TeeEye]); 18:13 < bridge> Graphics()->RenderQuadContainerAsSprite(m_TeeQuadContainerIndex, QuadOffset + EyeQuadOffset, BodyPos.x - EyeSeparation + Offset.x, BodyPos.y + Offset.y, EyeScale / (64.f * 0.4f), h / (64.f * 0.4f)); 18:13 < bridge> Graphics()->RenderQuadContainerAsSprite(m_TeeQuadContainerIndex, QuadOffset + EyeQuadOffset, BodyPos.x + EyeSeparation + Offset.x, BodyPos.y + Offset.y, -EyeScale / (64.f * 0.4f), h / (64.f * 0.4f)); 18:13 < bridge> ``` 18:14 < bridge> The Ubuntu-20.04 brownout takes place from 2025-02-01. For more details, see https://github.com/actions/runner-images/issues/11101 18:15 < bridge> might be interesting for anyone using that image in their github workflows 18:15 < bridge> @learath2 I think the twgpu code is correct, I'll update the docs 18:18 < bridge> Hm, even this doesn't make much sense to me, so I must have a wrong mental model of how this works 18:19 < bridge> @patiga what is `BaseSize` supposed to be? 18:20 < bridge> honestly sizes of textures in DDNet were one of the hardest things for me to figure out, I'd just use the docs there 18:20 < bridge> or twgpu code 18:21 < bridge> Though, it does look better πŸ˜„ 18:21 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1353418272107790536/image.png?ex=67e1947d&is=67e042fd&hm=ca4774ead998fd0f602cb2f0522f87e9306bfcc8f9c8ba75c3bf956ff666eeac& 18:28 < bridge> ok now quintuple the distance 18:38 < bridge> @learath2 could you please verify https://github.com/heinrich5991/libtw2/pull/115 ? 18:40 < bridge> wtf I commited a little much 18:43 < bridge> I may have made a mistake somewhere 18:43 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1353423828050514071/image.png?ex=67e199aa&is=67e0482a&hm=4b2f6c6c1eb8962049625fd80e37004b8f3f9c5535b8d275f60e8ef624c071f9& 18:43 < bridge> (fixed something small) 18:43 < bridge> accidental nouis 18:43 < bridge> its just 3d rendering we see it from the side :bluekitty: 18:44 < bridge> here it is with variable separation actually working 18:44 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1353424248101933117/image.png?ex=67e19a0e&is=67e0488e&hm=fd7fdc6c4ef1927687f4f6557751ee750fb4b48a164597b0c55e9c42fd8d05a6& 18:47 < bridge> idk if it is correct, is it not missing a `0.05f` on the y offset for the eye center? 18:47 < bridge> ah right, nice catch! 18:50 < bridge> there is still something wrong though idk yet πŸ˜„ 18:50 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1353425584491073702/image.png?ex=67e19b4c&is=67e049cc&hm=8ddaaf36812d4d21b1e8ca5a74fc30c0cc03d4197b0e7402b2338f2b7cdac12b& 18:50 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1353425584725950504/image.png?ex=67e19b4c&is=67e049cc&hm=3e95d6d44f86f3cad83502685b43722ba001d966d0e8c427cc2f0bd902b7434c& 18:51 < bridge> what angle are you using? 18:51 < bridge> tees staring at you through the screen are rather uncommon :p 18:51 < bridge> 90 degrees up 18:52 < bridge> but I think the math is not mathing correctly because of godots coordinate system being different 18:52 < bridge> hm 18:53 < bridge> No I think you're cooking, keep going 18:53 < bridge> yeah in godot right = -90 18:54 < bridge> actually no that doesn't sound right either 18:59 < bridge> outline on the left is way bigger 18:59 < bridge> Yeah that's because I'm not rendering the outline yet, maybe that's what makes it odd 18:59 < bridge> but the eyes also seem further apart, no? 18:59 < bridge> would be my guess 18:59 < bridge> might be an illusion due to outline 19:03 < bridge> @learath2 watcha workin on 19:03 < bridge> the tee on the right is also bigger relative to the image I think 19:04 < bridge> a little context @jupeyy_keks 19:04 < bridge> cool 19:04 < bridge> ddnet-godot 19:06 < bridge> the tee in nameplate preview now stares into your soul 19:13 < bridge> mh 19:13 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1353431403953389629/image.png?ex=67e1a0b8&is=67e04f38&hm=6da57cb5a48f7c13a8ff98d6efcb9179ae9ed6428aa0cccbd00b57969a62ed63& 19:14 < bridge> they should def be higher 19:14 < bridge> might be related to weapon position which moves the eyes in a small circle around the center? 19:15 < bridge> is there something like that? 19:15 < bridge> the weapon position does not influence the eye position afaik 19:15 < bridge> It must be something to do with the scale somehow 19:15 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1353431978384429056/image.png?ex=67e1a141&is=67e04fc1&hm=0325f4224d8ffe4bf4f9d51213d39e4684ec37a7d33c79d1387de92e6521b828& 19:16 < bridge> well what is your scale? 1 = how much? 19:16 < bridge> almost as if `absf(dir.x)` is just not getting as large as it's supposed to get 19:17 < bridge> Good question, idk, I've been kinda winging it πŸ˜„ 19:17 < bridge> but it seems basesize is 64 for ddnet, however all my measurements are off of 96 19:18 < bridge> ow 19:19 < bridge> But I do not quite understand how `BaseSize` is 64 for ddnet, do we clip off parts of the skin? do we rescale it? the head part is clearly 96px 19:19 < bridge> 64 in ddnet units = 2 tiles 19:19 < bridge> I should stop winging it and just actually read the code tbh 19:19 < bridge> and that is the normal size of the body sprite iirc 19:20 < bridge> ||you could also try the docs, or did you already try that?|| 19:21 < bridge> the libtw docs? 19:22 < bridge> yea 19:22 < bridge> the scaling is also in there 19:23 < bridge> That's what I used, 96px is the body size, everything is scaled according to those docs 19:23 < bridge> but what is base_size doing then? 19:23 < bridge> *BASE_SIZE 19:23 < bridge> ah 19:24 < bridge> that's the 1 19:24 < bridge> are eye_r/eye_l attached to eyes? 19:24 < bridge> eh, honestly just wasting my time, I can just adjust the constants to make it look good enough, not like I'm trying to remake teeworlds here 19:25 < bridge> yep, and eyes is the origin of both 19:35 < bridge> I reported some time ago when I tried to make a replica of a Tee's design in Godot, that the eyes are fucked, it was in here 19:36 < bridge> Ok, I'll actually look at the code, document this properly with a graphic 19:36 < bridge> From this convo 19:37 < bridge> Also the eye offset from the middle (looking up and down) to the sides (looking left and right) was there since 0.5 19:37 < bridge> I hope the eyes are at least vertically centered 19:38 < bridge> It is in a calculated matter, it just doesn't align it's distances properly from the middle 19:38 < bridge> It should have a stable distance, then the two eyes should inherit that distance and add or subtract an offset to get the right positioning 19:39 < bridge> Okay, it was not getting high enough because I forgot the entire body is actually 6px higher 19:40 < bridge> now to figure out why the seperation is far too high 19:42 < bridge> can I refactor maplayers and use function pointers? πŸ‘‰ πŸ‘ˆ πŸ™ˆ 19:46 < bridge> std::function? 19:46 < bridge> mite turn less heads 19:46 < bridge> either that or C style 19:46 < bridge> mite turn less heads 19:46 < bridge> than c style 19:46 < bridge> try it :D 19:46 < bridge> idk 19:46 < bridge> I worked with both before 19:48 < bridge> hm perhaps it's not far too high, but it is still like 2-3 pixels off πŸ˜„ 19:48 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1353440342787100722/image.png?ex=67e1a90b&is=67e0578b&hm=4de3a61fed7c37b5d998541e64947cf63c1c1b7f71e923c0fe3a38133013028f& 19:49 < bridge> in both directions, even to the ground, maybe base size is too small? 19:50 < bridge> ~~in both directions, even to the ground, maybe base size is too small?~~ 19:50 < bridge> the grass on the right doesn't align, what are you comparing xD 19:52 < bridge> the eyes are almost supposed to be touching, when looking right, yeah idk, perhaps it is a scaling thing 19:52 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1353441215852576879/image.png?ex=67e1a9db&is=67e0585b&hm=89f654ec0cfab5099ea6f5251a943bcafd66e2c04c526b994476fdffe1736192& 19:52 < bridge> I'm comparing a tee rendered in godot following the scales/offsets in libtw2 docs to one rendered in the actual game 19:54 < bridge> It's 0.01 units off it seems just by looking at it 19:55 < bridge> damn 19:55 < bridge> rendering error 19:57 < bridge> leftmost one has 0.01 less seperation and it looks exact 19:57 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1353442478350405663/image.png?ex=67e1ab08&is=67e05988&hm=d4cdad1cb3c5a56f72c88b32020dc4b025a1eee429b189d9f678335029562872& 19:57 < bridge> left is yours? 19:57 < bridge> u should try comparison via onion skin instead 19:57 < bridge> or just layer them & change opacity 19:58 < bridge> looks accurate imo 19:58 < bridge> but the eyes may be a little high 19:58 < bridge> the uncolored ones are mine, the leftmost one is eyeballed to match the rightmost one, the other 2 are following the calculations in ddnet/libtw2 exactly 19:58 < bridge> the gap could actually be smaller 19:58 < bridge> ive never used godot so idk at what size they quantize for the rendering 19:59 < bridge> i feel like you want an exact middle ground between the leftmost 2 of yours to match the screenshot on the right 19:59 < bridge> unrelated. my work macbook supports sharing a network connection over basically every port it has, but i can't figure out how the "USB LAN" bridge works 20:00 < bridge> the thunderbolt ports/bridges do all have a standard for network thanks to thunderbolt being a standard 20:00 < bridge> but idk what protocol this is using 20:00 < bridge> here it is with 0.005 instead of 0.01 of eyeballing 20:00 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1353443276455415879/image.png?ex=67e1abc6&is=67e05a46&hm=964223ad8e6fe884845a88b40e3858572bea87b11f7c053ecf8118fa139a68e6& 20:00 < bridge> that's totally it 20:00 < bridge> lmao 20:01 < bridge> but I still do not see where this 0.005 of error is coming from πŸ˜„ 20:01 < bridge> godot's supposed to be easy 20:01 < bridge> It is very easy, getting it almost rendering properly took me like 15 minutes 20:02 < bridge> Then I got curious about what exactly we do in teeworlds 20:02 < bridge> sounds more like an off by factor of 2 error 20:02 < bridge> been there, i have tried to implement Microsoft's fluent UI into Qt, from when win 11 was new 20:02 < bridge> and all the little rounding errors and stuff drove me insane 20:03 < bridge> i had to do weird rendering paths & math over the top to get it to antialias and use a gradient at the same time 20:03 < bridge> wait nvm I might be dumb 20:03 < bridge> and then when i realized the font would *never* look exactly right, i stopped 20:03 < bridge> i could probably have taken over the text rendering but for what purpose 20:03 < bridge> i'd have to deal with COM on my app's thread at that point, which with Qt is just not worth 20:04 < bridge> because they already CoInit the main thread & the args it uses are not public API 20:04 < bridge> Tees are also supposed to look larger than a tile, I don't know where we do that though 20:04 < bridge> also wow I never noticed that tees' eyes aren't a constant distance apart 20:05 < bridge> you never notice until you actually implement it without the variable eye distance πŸ˜„ 20:05 < bridge> then it suddenly looks completely off 20:06 < bridge> ``` 20:06 < bridge> template 20:06 < bridge> using fn_overlay_function = std::function; 20:06 < bridge> ``` 20:06 < bridge> :justatest: 20:07 < bridge> I'm scared 20:07 < bridge> me, too 20:13 < bridge> please don't 20:13 < bridge> at least not without a constraint on T 20:13 < bridge> what why would you like to constraint T? 20:13 < bridge> you need to make sure that T is something that won't shit the bed when taken as a pointer 20:14 < bridge> the STL type traits probably won't help you in DDNet code but that's dangerous 20:15 < bridge> also, are you even able to compile that? 20:15 < bridge> templating a typedef with a std function like that 20:15 < bridge> i did similar typedefs when i wrote the original ver of the status bar that's in tclient now iirc but i didn't bake it into the std function iirc 20:15 < bridge> that's why it's not actually a typedef 20:16 < bridge> using and typedef have interchangeable meanings in a lot of circumstances 20:16 < bridge> but the idea is the same 20:25 < bridge> why shouldn't it work? 20:26 < bridge> i didn’t read it right 20:26 < bridge> he’s making a template type 20:26 < bridge> which is fune 20:26 < bridge> which is fine 20:26 < bridge> he’s making a type template 20:59 < bridge> 21:00 < bridge> :feelsbadman: 21:00 < bridge> never had to resort to superuser before 21:45 < bridge> Does anyone know off the top of their heads what unit these angles are in? https://github.com/ddnet/ddnet/blob/b359e47c39af9a78612c8c067d74bb8594a8c41e/datasrc/content.py#L549 21:53 < bridge> 21:53 < bridge> looks like 0 to 1 equals 0 to 360 degrees 21:53 < bridge> bcs times pi2 21:53 < bridge> bcs times 2pi 22:17 < ws-client> @staff did you receive a fng mod application from Brak? 22:19 < bridge> yes 22:23 < bridge> chiller hes devoting 5-7 hours of his life to ddnet 22:23 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1353479228221296652/image.png?ex=67e1cd42&is=67e07bc2&hm=81354c711231c7c11456975614485d21abf40bd3ce4551bd8559db0597ae964a& 22:23 < bridge> XD 22:25 < bridge> omg brak himself? 22:25 < bridge> how has he been since his show went off the air 22:34 < bridge> Quick question, can grenades ever bounce in normal ddnet? 22:37 < bridge> pretty sure no 22:37 < bridge> only if modified 22:38 < bridge> Can gun projectiles have any influence on physics? 22:39 < bridge> im pretty sure no but just to be safe 22:40 < bridge> ohhhh 22:40 < bridge> ofcc 22:40 < bridge> im so stupid 22:40 < bridge> the bullets bounce 22:41 < bridge> wdym? 22:41 < bridge> ofc they have an influence on physics bcs when they hit a tee something will happen to its trajectory 22:42 < bridge> I think they meant pistol? 22:43 < bridge> yes i meant pistol 22:43 < bridge> doesnt matter 22:43 < bridge> forgot what i said 22:43 < bridge> forget what i said 22:43 < bridge> ah 22:43 < bridge> nades bounce in foot 22:43 < bridge> i love football 22:44 < bridge> but football not ddnet 22:44 < bridge> so im not supporting it xd 22:44 < bridge> yeah 23:07 < ws-client> thanks @Property of Souly is it public? 23:08 < ws-client> 5-7 hours sounds good but how do i know i can trust him not to abuse rcon ._. 23:10 < bridge> @teero777 he was meant to ping you :p 23:11 < bridge> 5-7 hours of his life 23:11 < bridge> not per day 23:11 < bridge> :P 23:11 < bridge> > thanks @Property of Souly is it public? 23:11 < bridge> chiller what are you talking about? 23:21 < bridge> how generous 23:32 < bridge> on what maps does `BUG_GRENADE_DOUBLEEXPLOSION` happen? xd 23:34 < bridge> double explosion bug? 23:34 < bridge> how would that occur? 23:36 < bridge> its an old mapbug 23:37 < bridge> dead code xd? https://github.com/ddnet/ddnet/blob/8b5595ea04507a3027e7bbcdf1959f5b402bebbc/src/game/server/entities/projectile.cpp#L183 23:38 < bridge> wtf did you also sacrifice your life to souly or smth 23:38 < bridge> ah btw right it does have a use xd 23:38 < bridge> only with tele pistol tho 23:38 < bridge> `Binary` according to `mapbugs.cpp` 23:39 < bridge> and dm1?? xd 23:39 < bridge> thx 23:39 < bridge> the other file 23:59 < bridge> the eyes are too far appart 23:59 < bridge> I iterated on it a lot if you keep scrolling 23:59 < bridge> o ok