00:14 < ChillerDragon> its time to unstar ddnet 00:14 < ChillerDragon> to hold 666 stars 00:15 < ChillerDragon> https://zillyhuhn.com/cs/.1745792111.png 00:15 < ChillerDragon> ez 00:16 < bridge_> :deen_star: 00:32 < bridge_> 1k would be so cool though 03:12 < bridge_> spreading holiness 03:12 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1366220494948536320/image.png?ex=6810277d&is=680ed5fd&hm=d1c89871281f113ac458f7630480f4d1033040d550f15cb6561c0a48acf36a66& 03:26 < bridge_> https://gbatemp.net/threads/libogc-revealed-to-have-used-code-stolen-from-nintendo.670381/ 03:27 < bridge_> ddnet wii is now illegal 03:27 < bridge_> :justatest: 03:27 < bridge_> ddnet wii port is now illegal 03:29 < bridge_> hell yes 03:29 < bridge_> let's keep doing crime guys 👍 05:35 < bridge_> I dislike how noticable the color banding is on desktop for the sidebar menu. This is a proposed "fix" which just changes the background position/size to only span halfway across. New vs Old 05:35 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1366256456931999775/image.png?ex=681048fb&is=680ef77b&hm=05ebf3b7b7a8d1b8d352dac537b3076038ad5ea49f5322c86458cbb4e7e7ae07& 05:35 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1366256457271611453/image.png?ex=681048fb&is=680ef77b&hm=a06b454c0d5473320922af5225ff305a97fa503b80fd78395942804b7e84853e& 05:36 < bridge_> the `box-shadow` property also complicates the element because it draws more attention to its border 05:42 < bridge_> Also propose more background boxes for the ranks pages so that grouped information is more clear 05:42 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1366258311011500054/image.png?ex=68104ab5&is=680ef935&hm=ccffaef3a8eccaaf866185783db1f943c9df1dbe23cfe2ed6f75cedc0d3125e3& 05:50 < bridge_> I also threw this on the staff page just to check if it improves the look there, and I guess it does? feels unnecessary but i do also think all the floating text personally has an unnatural feel 05:50 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1366260232980008990/image.png?ex=68104c7f&is=680efaff&hm=2104d83e7ae6879af9cf9e9d6d65a3287e7855dc51d611dc3b2e59b6f8337f00& 05:50 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1366260233261023263/image.png?ex=68104c7f&is=680efaff&hm=c8f97be2f43b8d1f89cc962290c82988047fa28be5aa7d23b8e4113fea27cece& 05:57 < bridge_> Downloads page, looks fine I guess, vote 1, 2, or 3 05:57 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1366262091102552176/image.png?ex=68104e3a&is=680efcba&hm=e76ee74febdbfdaa12c5b3248fa3ad28b221a1e16d8e66b4b26d3f079ddacb2a& 05:57 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1366262091505336360/image.png?ex=68104e3a&is=680efcba&hm=dcfd308926fa51ca987efd7bdf77d04deb40c2de374a9bc63a46d1553f372bdb& 05:57 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1366262092079825027/image.png?ex=68104e3a&is=680efcba&hm=63ef8f509175035fc9cf3204aa1bb33543bfbf08c52881d931a5cd2491f27e22& 06:15 < bridge_> The player page (I believe) is not something I can control easily because I can't see the template in the uploaded repository. However, these are some random suggestions I have 06:15 < bridge_> [1] Improve spacing below playtime graph 06:15 < bridge_> [2] Correct X-alignment of finishes and partners 06:15 < bridge_> [3] More space between finishes and partners 06:15 < bridge_> [4] Improve spacing for category points (separate relationship between heading and subheadings, group subheadings with their corresponding data, more X-spacing between category + maps finished / points + team rank + rank) 06:15 < bridge_> [5] Let the "All maps finished" line stand out with some background box, throw some celebratory color flair on the text (probably green as pictured or yellow) 06:15 < bridge_> [6] Instead of odd-numbered rows matching the block background behind it, give them their own color to improve clarity 06:15 < bridge_> [7] Make the "unfinished maps" toggle more button-like 06:15 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1366266441208434738/image.png?ex=68105247&is=680f00c7&hm=7919a67dc25de372b8d12b6125674dbf97ce8aaa46c616f52e5ba6d0b741f46e& 06:15 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1366266441464152085/image.png?ex=68105247&is=680f00c7&hm=4e86fa8fb1f2ae403b7edb93d9540ac73a3ef2ddedb2732a207ff285d50a6df5& 06:15 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1366266441669541938/image.png?ex=68105247&is=680f00c7&hm=a79b13ccfb44954c6f690284b9135132d1f5360852c47f2348b35a48b0a37dd2& 06:15 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1366266441904689163/image.png?ex=68105247&is=680f00c7&hm=76cabc1903e80e896bb45ae955def7507f788ccce17f776f078ec766a3a940b8& 06:15 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1366266442131046411/image.png?ex=68105247&is=680f00c7&hm=f42a517a3073a4374f2a6743619caeba5d1d03b620226edc0290ad6f6d9d803b& 06:15 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1366266442361602148/image.png?ex=68105247&is=680f00c7&hm=9fa9d7322da139832916d00195e3c887a18286615c0c76740b8f1ebe43018b71& 06:15 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1366266442605137920/image.png?ex=68105247&is=680f00c7&hm=76d01b2c77ff158b06c00557094e7c150d52ec8846cdcd635b778d9347266d4c& 06:17 < bridge_> I think the table rows should get some padding as well so the text isnt as cluttered, something small like 1px/2px, but this is not easily done with tables 06:20 < bridge_> Removing `
` between the player search + compare corrects the large gap between the heading and total points 06:20 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1366267814566039552/image.png?ex=6810538f&is=680f020f&hm=d0646dccff8d1b1a00a1d5d2845f674305c5755d54f23b612313359db6db1e28& 06:24 < bridge_> The light mode text inputs are an eyesore tbh, I might make that my next PR 06:38 < bridge_> Thx gorp 07:54 < bridge_> good morning 07:56 < bridge_> hello, if you have any feedback/suggestions for the site lmk 08:59 < bridge_> morning 09:03 < bridge_> Pixelart tool now supports all image file formats, that ddnet supports 💪 09:07 < bridge_> @ryozuki my compiler backend can use function parameters 😏 09:07 < bridge_> pog 09:08 < bridge_> adding call instruction shouldn't be harder 09:10 < bridge_> ^ i will remember these words when i will be debugging stack misalignment 09:14 < bridge_> what benefits does it have to make a function const, or does it just mark it as not changing class properties? 09:16 < bridge_> c++ right? 09:16 < bridge_> depends where u put the const 09:17 < bridge_> if its at the end, it means smth like "not being able to change "this" ptr contents" 09:17 < bridge_> if its before the name it just means a const function evaluated at compile time if possible 09:17 < bridge_> from a rust perspective, all c++ methods have a &mut self, adding const at the end makes it &self 09:18 < bridge_> I have read into it a bit, it's mostly for the programmer and for safety, it can only rarely impact performance slightly 09:18 < bridge_> but it can 09:18 < bridge_> and it enforces "const correctness" 09:18 < bridge_> https://isocpp.org/wiki/faq/const-correctness 09:19 < bridge_> I wondered, that clang-tidy only found 1 of 7 functions, I could have made const 09:19 < bridge_> its a bit hard for tools because 09:19 < bridge_> suddenly if u make 1 const 09:19 < bridge_> then others may be able to be const 09:19 < bridge_> its a cascading effect 09:19 < bridge_> because a func cant be const if it calls non const funcs 09:20 < bridge_> this is more related to type safety 09:20 < bridge_> which always good 09:20 < bridge_> @teero777: omg no! 09:20 < bridge_> makes sense, the one it found was the most basic getter (which others used) 09:21 < bridge_> Thank you for your explanations! 12:07 < bridge_> Sadly due to how C++ evolved with const being more of a suggestion, a lot of optimizations had to be left on the table 12:10 < bridge_> (Though nowadays const propagation is pretty good, so even if you don't mark a function const, it will get the optimizations, it's also how clang tidy finds the functions to const for you) 12:56 < bridge_> so I stress tested my PR now ... It crashes at some size certainly, but the tool is not the bottleneck. My editor lags out as soon as I click into this pixelart xD 12:56 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1366367488862064691/screenshot_2025-04-28_12-54-49.png?ex=6810b063&is=680f5ee3&hm=477b77f9f9528cd5f4a7e0b5e7be7ab3954044f094bfb4726bf92ad96bc2839a& 12:57 < bridge_> How much pixels is that? 12:57 < bridge_> looks like alot 12:57 < bridge_> like really alot 12:57 < bridge_> 7K * 11K, but I set pixelsize to 10, otherwise my laptop went OOM (Out of Mana) 12:58 < bridge_> 7K * 11K, but I set Image pixelsize to 10, otherwise my laptop went OOM (Out of Mana) 12:58 < bridge_> Send me the map xD 12:58 < bridge_> sec, I need to redo it 12:58 < bridge_> Ty 12:58 < bridge_> why is ur laptop supported on mana 12:59 < bridge_> you should upgrade mana stuff 12:59 < bridge_> the game is very angry about this map... 12:59 < bridge_> sry in this world we the currency is ddcoins 12:59 < bridge_> sry in this world the currency is ddcoins 13:00 < bridge_> omg I closed the client too fast, it wasn't done saving 13:01 < bridge_> 15 MB map 13:01 < bridge_> I can't upload it to dc xD 13:02 < bridge_> dropbox 13:02 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1366369015085404221/mona-lisa.map.zip?ex=6810b1cf&is=680f604f&hm=b98f5e461c46d63b890d430789f96aeb66f94a182e6c25e76b872a73d220962d& 13:04 < bridge_> my laptop runs on mana, and I am running on coffee, I think it's fair 13:06 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1366370095403896833/image.png?ex=6810b2d0&is=680f6150&hm=a93c1201044509de7a1b780965e459e7a0da084eb51beaf7da0574829d39b61f& 13:07 < bridge_> Holy, why is that a quad layer xD 13:07 < bridge_> how many quads here? @essigautomat 13:07 < bridge_> This is what this PR is about 13:07 < bridge_> I actually don't know, maximum 11K * 7K / 100 13:08 < bridge_> Could you try and add a warning like it's done for the pixelart if it's expected to break or cause severe FPS drops? 13:09 < bridge_> I am trying to figure out when to post the warning, but should be some treshhold to Width*Height / (ImagePixelSize^2) 13:09 < bridge_> Still runs over 60 fps, so we don't need an fps limit right? xD 13:10 < bridge_> Time to drop ogl 1.x and write a better quad rendering pipeline 13:11 < bridge_> One thing I did: This tool automatically adds a Clip, because this can greatly improve fps if the artwork is not in view range 13:12 < bridge_> So an additional idea would be automatically setting clip regions for quads or splitting them into groups, that can be skipped 13:12 < bridge_> So an additional idea would be automatically setting clip regions for quads or splitting them into groups, that can be skipped in rendering 13:24 < bridge_> Our quad renderer is simply very slow xd 13:25 < bridge_> twgpu is insane with many quads 13:25 < bridge_> you make me blush 13:29 < bridge_> Noooo my update cron was failing silently 13:29 < bridge_> `Total: 112 packages (99 upgrades, 2 new, 1 in new slot, 10 reinstalls), Size of downloads: 1,393,021 KiB` 13:33 < bridge_> Ok it is time, I'll be attempting to turn the ddnet physics into a library 13:34 < bridge_> Instead of attempting to recreate it like the other people I'll try to extract it out of ddnet 13:34 < bridge_> can you give me a random fact about ddnet @learath2 13:34 < bridge_> "unattended updates" 13:35 < bridge_> ddnet stands for ddrace network, the more you know 13:35 < bridge_> Deltarune all chapters before accounts 13:35 < bridge_> oh wow 13:36 < bridge_> where does the race 13:36 < bridge_> come on 13:36 < bridge_> come from 13:36 < bridge_> It's either libphysics -> antitas, or I try to take over QUIC from heinrich -> accounts 13:38 < bridge_> It comes from the old english word `rǣs` which is in turn at least partially from old norse `rás` 13:39 < bridge_> i know my word has little power but i vote for the second 13:39 < bridge_> [cute](https://cdn.discordapp.com/emojis/653042508825100314.webp?size=48&name=cute) 13:40 < bridge_> Third option is I actually make something that'll make me money 🤔 13:40 < bridge_> your own programming language! 13:41 < bridge_> That's probably less likely to make me money than even ddnet work 13:41 < bridge_> :feelsbadman: 13:54 < bridge_> ddcoins 13:54 < bridge_> make them p2w 14:05 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1366384815347204097/images.png?ex=6810c086&is=680f6f06&hm=590212ed6aed44745466d97b0f3e37418fbbf4e69b44ab251bc3e205e48357f9& 14:08 < bridge_> can we check this map over the browser somehow? ^^ I remember patiga having some endpoint 14:28 < bridge_> i dunno but i can check locally 14:28 < bridge_> ~2000 fps 14:29 < bridge_> With 100% GPU usage, so probs less on a laptop 14:34 < bridge_> I can certainly bring the hole mona lisa into a map, I just need to cut it in chunks before loading it into a map ... 14:34 < bridge_> I can certainly bring the full high res mona lisa into a map, I just need to cut it in chunks before loading it into a map ... 14:36 < bridge_> i put the map on a localhost webserver: 14:36 < bridge_> used this 14:36 < bridge_> 14:36 < bridge_> 14:36 < bridge_> then 14:36 < bridge_> 14:36 < bridge_> 14:36 < bridge_> then it worked 14:37 < bridge_> I get vsync'd tho, so dunno how much fps.. at least 240 xD 14:38 < bridge_> neat plugin ^.^ 14:39 < bridge_> I like how the screenshot of the plugin shows like firefox 3.6 or smth xD 14:40 < bridge_> Next, surface of the moon? 14:41 < bridge_> Next a fully working 3d object 14:41 < bridge_> Abuse clips & parallax to maximum 14:42 < bridge_> https://www.kaggle.com/datasets/filippopelosi/lunar-surface-dataset 14:57 < bridge_> ... https://www.jeffrey-martin.com/barcelona-panorama-gigapixel-360 xD 14:57 < bridge_> I actually wonder 15:00 < bridge_> Okay, all you actually need is an image, some depth information and fancy math for hidden pixels, and I can set any city as a background with right parallax 15:00 < bridge_> Somewhere there is ryozuki 15:00 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1366398708249395280/image.png?ex=6810cd76&is=680f7bf6&hm=dc57d9ebefbf2a3b872a73c45a5e2b86526ed0baae994151f726b90b8ecb0a37& 15:09 < ChillerDragon> and papaplatte 15:11 < ChillerDragon> omg this made me giggle somehow https://zillyhuhn.com/cs/buffer.png 15:12 < bridge_> hehehehe 15:12 < bridge_> 🤏 15:15 < bridge_> I like, how this screenshot is cut o 15:29 < bridge_> :KEKW: 15:37 < bridge_> (my gh upload doesn't work again?) 15:37 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1366407965606936617/screenshot_2025-04-28_15-33-35.png?ex=6810d615&is=680f8495&hm=6f3d2d1594a77a4abc6b748a5e1e0b642d1d941740ece4fee1ba430e8d50102c& 15:37 < bridge_> This time it's a default popup similar to the million other ones 15:38 < bridge_> I like how she smiles at you like "hehehe gonna lag your game" 15:54 < bridge_> Did you make sure to wait until the image is uploaded successfully before switching to the Preview tab? I think that has always been an issue. 15:55 < bridge_> yes it just get's stuck and I get a weird warning about unsupported file type 🤷‍♂️ i don't know, png seems pretty supported to me 15:57 < bridge_> Do you use any browser plugins? Try with another profile without plugins and with default settings. Maybe just Ctrl+F5 also fixes it. 15:59 < bridge_> Nope, even in private window with disabled add ons I have this issue, I can just check a different browser 16:02 < bridge_> Seems to be a well known issue 🤷‍♂️ 16:41 < bridge_> ez pr 16:41 < bridge_> sups 16:59 < bridge_> got that stupid github bug again 16:59 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1366428554119614505/image.png?ex=6810e942&is=680f97c2&hm=bf0c5e57742235c67eb0ef2a9ce100ae722ac653e92ddcf9a3a0663f36c8e1d8& 16:59 < bridge_> it juse closed my pr on force push 16:59 < bridge_> so stupid xD 17:10 < bridge_> lame 17:11 < bridge_> just dont force push 4head 17:28 < bridge_> @chillerdragon 17:28 < bridge_> ```cpp 17:28 < bridge_> /* 17:28 < bridge_> IsClusterRangeFinish 17:28 < bridge_> 17:28 < bridge_> Recommended for bigger areas. 17:28 < bridge_> For areas smaller than 10 tiles use IsNearFinish instead. 17:28 < bridge_> 17:28 < bridge_> Calls IsNearFinish internally. 17:28 < bridge_> It creates multiple 4x4 check boxes to cover the full given are. 17:28 < bridge_> Around position Pos with the size of RadiusInTiles. 17:28 < bridge_> Only indecies on the border are looked at. 17:28 < bridge_> 17:28 < bridge_> <----- radius ----> 17:28 < bridge_> 17:28 < bridge_> +--+ +--+ +--+ +--+ 17:28 < bridge_> | | | | | | | | 17:28 < bridge_> +--+ +--+ +--+ +--+ 17:28 < bridge_> +--+ +--+ +--+ +--+ 17:28 < bridge_> | | | | | | | | 17:28 < bridge_> +--+ +--+ +--+ +--+ 17:28 < bridge_> +--+ +--+ +--+ +--+ 17:28 < bridge_> | | | | | | | | 17:28 < bridge_> +--+ +--+ +--+ +--+ 17:28 < bridge_> */ 17:28 < bridge_> bool IsClusterRangeFinish(vec2 Pos, int RadiusInTiles = 10) const; 17:28 < bridge_> ``` 17:28 < bridge_> this is some really indepth documentation for something pretty jank 17:38 < bridge_> ```cpp 17:38 < bridge_> bool CRaceHelper::IsNearFinish(vec2 Pos, int RadiusInTiles) const 17:38 < bridge_> { 17:38 < bridge_> const CCollision *pCollision = m_pGameClient->Collision(); 17:38 < bridge_> for(int i = 0; i <= RadiusInTiles * 2; ++i) 17:38 < bridge_> { 17:38 < bridge_> const int h = std::ceil(std::pow(std::sin((float)i / pi), 0.5f) * pi / 2.0f * (float)RadiusInTiles); 17:38 < bridge_> const vec2 Pos1 = vec2(Pos.x + (float)(i - RadiusInTiles) * 32.0f, Pos.y - h); 17:38 < bridge_> const vec2 Pos2 = vec2(Pos.x + (float)(i - RadiusInTiles) * 32.0f, Pos.y + h); 17:38 < bridge_> std::vector vIndices = pCollision->GetMapIndices(Pos1, Pos2); 17:38 < bridge_> if(vIndices.empty()) 17:38 < bridge_> vIndices.push_back(pCollision->GetPureMapIndex(Pos1)); 17:38 < bridge_> for(int &Index : vIndices) 17:38 < bridge_> { 17:38 < bridge_> if(pCollision->GetTileIndex(Index) == TILE_FINISH) 17:38 < bridge_> return true; 17:38 < bridge_> if(pCollision->GetFrontTileIndex(Index) == TILE_FINISH) 17:38 < bridge_> return true; 17:38 < bridge_> } 17:38 < bridge_> } 17:38 < bridge_> return false; 17:38 < bridge_> } 17:38 < bridge_> ``` 17:39 < bridge_> :) 17:47 < bridge_> Justify bad code with lots of comments hehe, that’s how we noobs do it 17:47 < bridge_> And LLMs hehe 17:49 < bridge_> is it bad to check lots of tiles 17:49 < bridge_> It’s always expensive to do lots of things 17:49 < bridge_> it feels like clusteres isnt the best way to do it 17:50 < bridge_> Optimize and send pr 17:50 < bridge_> am gonna use this 17:50 < bridge_> Why you reading that code anyways 17:50 < bridge_> It’s like liking a instagram post from 2016 17:50 < bridge_> lmao 17:50 < bridge_> i want to add it to tclient 17:51 < bridge_> its a shame that it returns a vector 17:51 < bridge_> Yoink 17:51 < bridge_> instead of being an iterable 17:51 < bridge_> im doing the yoinking here 17:51 < bridge_> i had no clue how to look for tiles 17:51 < bridge_> Make sure to add my skin into tclient credits 17:52 < bridge_> xd oke 17:52 < bridge_> also stole your warlist 17:52 < bridge_> its as much stealing as the warlist is 17:52 < bridge_> but u deserve the street cred 17:52 < bridge_> or smthin 17:52 < bridge_> Which was big 17:53 < bridge_> (warlist was made from scratch 👀 ) 17:53 < bridge_> (tclient warlist was made from scratch 👀 ) 17:53 < bridge_> I demand greensward presence in the menu 17:53 < bridge_> is that the green puff name 17:53 < bridge_> Or you will hear from lawyer jussptar 17:53 < bridge_> ono 18:06 < bridge_> @chillerdragon ` m_aCheckInfo[0] = Client()->GameTickSpeed();` 18:06 < bridge_> do you mean gametick()? 18:18 < bridge_> yay 18:18 < bridge_> such ez pr 18:18 < bridge_> No, this is correct. It's a delay of 1 second 18:19 < bridge_> oke 18:21 < bridge_> my code doesnt work tho xd 18:23 < bridge_> becuz im an idiot 18:24 < bridge_> @0xdeen do you think you could expose more php templates? i can't find the player page markup 18:25 < bridge_> and map? i can't remember if that one was there 18:25 < bridge_> (at work rn so maybe i say dumb thing) 18:56 < bridge_> #include ordering has made my ability to sort alphabetically 10x better 19:07 < bridge_> @sollybunny adding outlines first and then overlines would cause interactions between lasers to look weird, like imagine a freeze laser going through a door (and the outline beeing behind it while the lasers meet) 19:08 < bridge_> and Splitting them up by type and then by outline/inline would just be a bit crazy, like splitting it into 8 components to get renderordering right 19:08 < bridge_> you dont need a seperate component for layering 19:09 < bridge_> how would you do it then, tell me? 19:09 < bridge_> I just have the foreground/background split in mind we do for maplayers 19:11 < bridge_> the reason maplayers is split because there are components between the layers 19:11 < bridge_> nothing needs to be between the laser fg and bg 19:13 < bridge_> ```cpp 19:13 < bridge_> for (each laser) 19:13 < bridge_> drawoutline(laser) 19:13 < bridge_> for (each laser) 19:13 < bridge_> drawbody(laser) 19:13 < bridge_> ``` 19:14 < bridge_> breaks freeze/door example above 19:14 < bridge_> oh you dont want that to happen 19:14 < bridge_> ```cpp 19:14 < bridge_> for (each type) 19:14 < bridge_> for (each laser of that type) 19:14 < bridge_> drawoutline(laser) 19:14 < bridge_> for (each laser of that type) 19:14 < bridge_> drawbody(laser) 19:14 < bridge_> ``` 19:15 < bridge_> would be nice if lasers could be seperated into lists by type to reduce the time that takes 19:17 < bridge_> currently it's more like this: 19:17 < bridge_> ```C++ 19:17 < bridge_> laser = someRandomLaserRenderedFromSomewhere() 19:17 < bridge_> drawoutline(laser) 19:17 < bridge_> drawinline(laser) 19:17 < bridge_> ``` 19:17 < bridge_> I wonder how you sort them 19:17 < bridge_> Idk why we never did it, we should add the abi version of the antibot to the soname 19:17 < bridge_> did it? 19:17 < bridge_> (seperating laser by type) 19:18 < bridge_> are not all lasers rendered together 19:18 < bridge_> i assume ddnet has no z buffer xd 19:20 < bridge_> yeah, otherwise this would be trivial 19:20 < bridge_> well its good that there isnt 19:21 < bridge_> it is unneeded 19:21 < bridge_> if you're willing to implement it, I'd certainly be in favor of it, as long as it doesn't impact performance too heavy 19:21 < bridge_> when types are seperated into seperate lists there will be no performance overhead 19:22 < bridge_> apart from extra looping 19:22 < bridge_> ~~apart from extra looping~~ 19:22 < bridge_> and if you're at it, you also can optimize laser heads away, that are at the same spot 🙈 19:22 < bridge_> and if you're at it, you also can optimize laser heads away, that are at the same spot (of the same type)🙈 19:22 < bridge_> are they not quad containers to smthing 19:22 < bridge_> are they not quad containers or smthing 19:22 < bridge_> it doesnt matter that much there arent that many lasesr 20:23 < bridge_> the :banhammer: 20:41 < bridge_> Why are there no accounts? 20:42 < bridge_> Accounts are tyranny 20:43 < bridge_> what the heck is this feature 20:43 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1366484930003210240/image.png?ex=68111dc3&is=680fcc43&hm=8afcb870cdff72c78a8d61532888f67e51996ee95d812f771ae4c59a7476ef84& 20:43 < bridge_> dont ask 20:43 < bridge_> :justatest: 20:43 < bridge_> 🔥 20:44 < bridge_> I should get a new banner 20:44 < bridge_> sunny day after a week 20:44 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1366485125222633533/IMG_8057.jpg?ex=68111df1&is=680fcc71&hm=2ed339abdc4777043170f3f30ce2bc45ac382b1696ed5c7945ef3da6ca3f5a34& 20:44 < bridge_> The funniest thing is, that it replies in german for me 20:44 < bridge_> So not localizable strings 20:44 < bridge_> I annotated one method with virtual which caused a segfault with corrupted backtrace. Is that expected C++ behavior? 20:44 < bridge_> Is it a dll? 20:44 < bridge_> Yes 20:44 < bridge_> It’s a .so ye 20:45 < bridge_> Pure virtual functions can be compiled into libraries but if they’re called without implementors you’re fucked 20:45 < bridge_> It’s not pure tho 20:45 < bridge_> what is it? 20:45 < bridge_> It worked without. The diff is literally just adding the one word virtual 20:45 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1366485611481137264/image.png?ex=68111e65&is=680fcce5&hm=5c0de52b64b114804b8c39602177a690c5cd567b1facd5d8aea367a5dadc651e& 20:46 < ChillerDragon> @Ewan wat wat? this is the bad diff https://github.com/ChillerDragon/antibob/commit/616d9cfb0c23f61e889374b8b8443a7629f49ea7 20:46 < ChillerDragon> sadly asan doesnt help because the project is full of asan errors xd 20:46 < bridge_> well i think virtual function calls always trigger vtable lookups 20:47 < ChillerDragon> it even crashes without calling it 20:47 < bridge_> just initializing? 20:47 < ChillerDragon> its OnSayNetMessage and it segfaults on server start 20:48 < bridge_> Corrupted backtrace sounds weird 20:48 < bridge_> What is corrupted about it? 20:49 < ChillerDragon> just a classic broken backtrace 20:49 < bridge_> just asan 20:49 < ChillerDragon> dont u know what i mean? the one where asan helps 20:49 < ChillerDragon> asan doesnt get that far 20:49 < bridge_> Show backtrace, am curious 20:49 < ChillerDragon> it just shows wrong line numbers 20:49 < ChillerDragon> stepping in gdb loops in a headerfile 20:50 < bridge_> That sounds more like out of date symbols 20:50 < ChillerDragon> ye 20:50 < bridge_> chiller are both projects compiled with the same compiler? 20:50 < ChillerDragon> ou 20:50 < ChillerDragon> eh 20:50 < ChillerDragon> maybe 20:50 < ChillerDragon> xd 20:50 < ChillerDragon> does it matter? 20:51 < bridge_> if that isn't a c lib 20:51 < ChillerDragon> its cpp 20:51 < bridge_> then it matters 20:51 < ChillerDragon> common cpp L 20:51 < bridge_> Who knows what matters, you didn't really show anything. If marking something virtual causes crashes my first guess would be calling the function on an un-initialized instance of the object 20:52 < bridge_> asan would catch that 20:52 < ChillerDragon> ye asan dies on odr 20:52 < bridge_> well no 20:52 < ChillerDragon> fixing odr is tricky 20:52 < bridge_> He says asan is full of crap 😄 20:52 < bridge_> ubsan would maybe catch it 20:52 < bridge_> valgrind would defs catch it 20:52 < ChillerDragon> yea maybe ill go with valgrind go call 20:53 < bridge_> Breaking ODR is also sus 20:53 < ChillerDragon> i was just confused how adding virtual could cause a segfault 20:53 < ChillerDragon> ye ik i should fix odr 20:53 < bridge_> uninitialized vtable 20:53 < ChillerDragon> but its hard because of crypto shenanigans 20:53 < bridge_> yes 20:53 < bridge_> fix odr 20:53 < bridge_> there freut sich that static linking 20:53 < bridge_> or devirtualization failing due to UB 20:54 < ChillerDragon> i get ambigous call to md5_init when i try to fix odr i just wanna delete antibot 20:54 < ChillerDragon> just allow botting at this point 20:54 < bridge_> The backtrace being "corrupted" is probably the first thing I'd look at. It sounds absurd 20:54 < ChillerDragon> bro lerato 20:54 < bridge_> I love that blake3 is faster than even md5 st 20:55 < ChillerDragon> u make it sound like i fucked up so hard you never heard of it 20:56 < ChillerDragon> if every c++ crash would have a helpful gdb backtrace it would be python 20:56 < bridge_> does python have useful bt? 20:58 < bridge_> I mean it just shows line number and error message if you fuxk up like any high level language 21:30 < bridge_> I wonder what compiled python (Cython?) has to say about this 23:50 < bridge_> @soulyvevo hello I made this inverted color skin 23:50 < bridge_> https://discord.com/channels/252358080522747904/985717921600929872/1366086384330473534 23:50 < bridge_> I know that you're declining the glow skins so I was wondering if I could make a series of these inverted color skins but only for the default skins: default, twinbop, coala and fox (or I think at least adding the fox would be nice)