00:00 <+bridge> @kebscs did you play with the best client? 00:00 <+bridge> @kebscs did you play with the bestclient? 00:00 <+bridge> no, just checking code 00:00 <+bridge> the image in chat feature seemed weird 00:00 <+bridge> Check out the jelly tee feature if you play 00:01 <+bridge> seen a video of it somewhere in #mapping or #showroom :kek: 00:01 <+bridge> sec 00:03 <+bridge> sent 00:04 <+bridge> oh it has physics 00:04 <+bridge> nice :kek: 00:04 <+bridge> the vid before was just randomly flapping around 00:05 <+bridge> You could keep VRAM usage low by downscaling the image to a reasonable size (in a background job). Otherwise one link to a 16384x16384 image would take 1 GiB of VRAM. :monkaS: 00:06 <+bridge> It seems to me that our decoder simply won't process such a large photo. 00:06 <+bridge> I think there's a limit on 8192 somewhere, yeah 00:07 <+bridge> ah, we already have a decoder limit of 960 pixels 00:08 <+bridge> Probably also with jpg support? 00:08 <+bridge> Well, if the file can be uploaded to Imgur, then it should work. 00:17 <+bridge> we use icons and it might contain one :justatest: I forgot what the font was called 00:17 <+bridge> <12944qwerty> font awesome? 00:18 <+bridge> Yes, it must be him. 00:21 <+bridge> hmm grade pipeline fail: https://github.com/ddnet/ddnet/actions/runs/23859834302/job/69563166271?pr=11711 00:35 <+bridge> https://fontawesome.com/search?ic=free-collection 00:35 <+bridge> this i guess? 00:35 <+bridge> https://cdn.discordapp.com/attachments/293493549758939136/1489030569349091368/image.png?ex=69ceef48&is=69cd9dc8&hm=b0b06f908a84458232741655f1a43277b8b5ab56fec4ca2ada2d3042d88dda17& 00:36 <+bridge> <12944qwerty> Oh 00:36 <+bridge> <12944qwerty> I thought they were custom assets xd 00:39 <+bridge> engine/font_icons.h 01:04 <+bridge> <12944qwerty> I mean the arrow resize for cursors are pngs not from the font 01:17 <+bridge> does someone have the client version that the player time or score snapping thingy got refactored? 01:22 <+bridge> or the commit 01:51 <+bridge> Look for milliseconds or centiseconds pr by assa 02:38 <+bridge> https://cdn.discordapp.com/attachments/293493549758939136/1489061332505333810/1.jpg?ex=69cf0bef&is=69cdba6f&hm=8862d1761aa4a6b6d43bc2018582fef613cbdad136ae7300c98c48a216eae103& 02:38 <+bridge> https://cdn.discordapp.com/attachments/293493549758939136/1489061332870496458/2.jpg?ex=69cf0bef&is=69cdba6f&hm=314b941602dd9fa76b0cde7de2e797dfba119be4fadbf6e549201d9216dc4c0d& 02:38 <+bridge> https://cdn.discordapp.com/attachments/293493549758939136/1489061333176553542/3.jpg?ex=69cf0bef&is=69cdba6f&hm=9d7d864c28e8a0b40ea7e658dea460ba1f2e40236b4163d497e7fe31cd6ad784& 02:38 <+bridge> https://cdn.discordapp.com/attachments/293493549758939136/1489061333490995462/4.jpg?ex=69cf0bef&is=69cdba6f&hm=7bfdb4ab80e9561d35d2e42cf981881521226cebcb8d70d5bcab550dad32d090& 06:03 <+bridge> @teero777 Traumadumping algorithms into PRS at 6am 06:03 <+bridge> Chad 06:03 <+bridge> :OMEGALUL: 06:03 <+bridge> xd 06:04 <+bridge> I only checked what I could on my phone, the math looks.. oversimplified for such a heavy job 06:05 <+bridge> I like the way jupsti did it 06:06 <+bridge> Just Scanline fill :justatest: 06:06 <+bridge> I've seen algorithm videos, surely it's the most performant 06:09 <+bridge> <12944qwerty> i've never heard of that algorithm before 06:09 <+bridge> <12944qwerty> also i did use the font awesome icon, i just made it a png 06:09 <+bridge> <12944qwerty> i assumed that's what the other cursor icons were too lol 06:11 <+bridge> Scanline fill is pretty cool 06:11 <+bridge> 06:11 <+bridge> You go both x- and x+ and only stop when you hit a different type of tile, then you scan above/below for each contagious tile found :PauseChamp: 06:12 <+bridge> https://youtube.com/shorts/eQw9gMTPxLk?is=AFFa0lVK3zVGStLa 06:12 <+bridge> Scanline fill is pretty cool 06:12 <+bridge> 06:12 <+bridge> You go both x- and x+ and only stop when you hit a different type of tile, then you scan above/below for each contiguous tile found :PauseChamp: 06:12 <+bridge> <12944qwerty> how is that faster 06:13 <+bridge> <12944qwerty> looks the same except not "random" neighbors 06:14 <+bridge> <12944qwerty> also, melon, it freezes the game and then some. not just the editor. I had to pkill for it to finally stop 06:15 <+bridge> because you push one span per row, not 4 neighbors per tild 06:15 <+bridge> because you push one span per row, not 4 neighbors per tile 06:16 <+bridge> It's a problem within the editor, so I would also define it as such 06:16 <+bridge> the icon is **in** the font xd 06:18 <+bridge> your approach, if we consider 1000x1000 currently pushes.. 3(?) million entries at once 06:19 <+bridge> so only crashing the editor/game is being lucky, I could see old PC's commit sudoku 06:19 <+bridge> <12944qwerty> but you still have to push the up down neighbors for each tile in that row 06:19 <+bridge> yes 1000 per span, for 1000 spans 06:20 <+bridge> Which is 2.899.000 less iterations 06:20 <+bridge> Which is 2.890.000 less iterations 06:20 <+bridge> +- 06:20 <+bridge> :justatest: 06:22 <+bridge> <12944qwerty> how do i make the font icon as a texture 06:23 <+bridge> <12944qwerty> every instance of font icons uses text render on ui and i don't understand how to do it for the cursor 08:17 <+bridge> except you did, on the website 08:18 <+bridge> i also asked noxy and he didn't know 08:19 <+bridge> i just wish it would not be advertised as "cheat free" 08:19 <+bridge> let others make that determination, not you 08:20 <+bridge> we are not beholden to this work, others will tell us if its a cheat client, and I thought we had gone over this before 08:21 <+bridge> also my messages were ignored gg 09:01 <+bridge> I think you're confusing this with a pathfinding algorithm, this is a floodfill, you need to look at everything 09:04 <+bridge> oh editor history will be funny :justatest: 09:25 <+bridge> just got a 20€ promo code from hetzner :owo: 09:47 <+bridge> ? How am i confusing the terms here? 10:03 <+bridge> dunno, needed some coffee first, I'll take a look at the algorithm Teero proposed because I was unaware 10:06 <+bridge> the only problem I see is that you can't stop it with an arbitrarily large region - and I see a problem incoming with the editor history, as undoing this might be hard 10:07 <+bridge> probably need to store a list of all changed positions :justatest: 10:07 <+bridge> and now teeros algorithm would be smarter, because we could safe some spans as well 10:17 <+bridge> I am impressed how much we can overengineer a fucking floodfill 10:25 <+bridge> tbf, a floodfill within an N*N tilegrid needs overengineering 10:25 <+bridge> open up springlobe 3 and replace bucket air with hookable - lets see what happens :pepe_laugh: 10:26 <+bridge> tbf, a floodfill within an N*N tilegrid needs overengineering 10:26 <+bridge> open up springlobe 3 and bucket replace air with hookable - lets see what happens :pepe_laugh: 10:26 <+bridge> -# my coffee is empty and my landlord should arrive soon, help 10:26 <+bridge> already tried with lord of the rings. with my algo its basically instant 10:26 <+bridge> which makes sense, scanline is superior 10:26 <+bridge> already tried with lord of the rings. with my impl its basically instant 10:27 <+bridge> what is the largest map right now? 10:27 <+bridge> either Back in Time 3 or Springlobe 3 10:31 <+bridge> not square of gods? 10:31 <+bridge> i.. is that a KoG map? 10:32 <+bridge> i dont.. really play Gores xd 10:32 <+bridge> ah ok its only 1.4*1.4k 10:32 <+bridge> same as lord of the rings 10:33 <+bridge> bit3 is 1.5x3k loll 10:33 <+bridge> but its unfair, it has so huge spaces 10:48 <+bridge> its been unfinished for over a year now xd 10:51 <+bridge> I am currently working on making CImageInfo memory safe - it just crashed immediately for a double allocation in an assertion ... 10:54 <+bridge> ~~I am currently working on making CImageInfo memory safe - it just crashed immediately for a double allocation in an assertion ...~~ nevermind this one is on me 11:53 <+bridge> screenshot logic for opengl is crazy 12:02 <+bridge> btw @essigautomat 12:02 <+bridge> 12:02 <+bridge> > I'd do the opposite, and use front and pop_front() instead, because then we'd have a wide-search instead of a depth-search and we could limit the number of iterations to something reasonable. 12:02 <+bridge> > 12:02 <+bridge> > Like set a reasonable limit, i.e. 10000 for the number of tiles before you exit the queue. If you want to bucket fill more tiles, you can still use the tool again 12:02 <+bridge> 12:02 <+bridge> 12:02 <+bridge> its IMO bad UX if a bucket tool doesnt fill everything, limiting the iterations would feel like a workaround of a non-existent issue when we apply teeto's "fix" 12:02 <+bridge> 12:02 <+bridge> i dont think the searchorder (BFS vs DFS) changes the outcome - because of `std::deque` Overhead 12:02 <+bridge> 12:02 <+bridge> maybe i should benchmark this at some point 12:09 <+bridge> teeros solution will also fail if you make the map big enough and take ages 🤷‍♂️ 12:10 <+bridge> define "big enough" 12:10 <+bridge> 12:10 <+bridge> 100M tiles in 40seconds is a reasonable tradeoff IMO :kekMonki: 12:11 <+bridge> with IgnoreHistory in 1.36seconds 12:11 <+bridge> :kek: 12:11 <+bridge> max integer :justatest: 12:11 <+bridge> yeah we should definatly **not** do the history PER TILE 12:12 <+bridge> if you make a map with INT_MAX 12:12 <+bridge> 12:12 <+bridge> you should seek help from lord gaben himself 12:12 <+bridge> I also wrote I'd go with teeros solution btw 12:12 <+bridge> Linear 3 will be this big 12:13 <+bridge> i think you can nicely wrap up the history into each Span indice individually {`x1, x2, y`} 12:13 <+bridge> i think you can nicely wrap up the history into each Span indice individually {`x1, x2, y`} with teetos approach 12:13 <+bridge> you basically just replay the entire sequence backwards that way 12:13 <+bridge> never looked into the code tho, so no idea 12:13 <+bridge> roby will surely figure it out 12:13 <+bridge> :PauseChamp: 12:14 <+bridge> yes this is what I wrote above https://discord.com/channels/252358080522747904/293493549758939136/1489174543942684742 12:14 <+bridge> I am just bad with words :justatest: 12:15 <+bridge> TODO: never review before first coffee 12:15 <+bridge> i would suggest we speak in our native, but i wouldnt be able to explain it more proper in that either 12:15 <+bridge> xD 12:15 <+bridge> the next PR will be a bit insane ;_; 12:50 <+bridge> There isn't much to optimize with floodfill, you basically always get about the same performance 12:50 <+bridge> The scanline version is slightly better iirc 12:51 <+bridge> cool my PR crashes the editor on closing 12:51 <+bridge> If you are doing DFS make sure you use an explicit stack, don't crash 😛 12:55 <+bridge> omg CEditorImage is a CImageInfo derivate 13:03 <+bridge> Don't free in the constructor; it has been explicitly designed that way because you otherwise end with free-after-use if you copy an image 13:03 <+bridge> Don't free in the destructor; it has been explicitly designed that way because you otherwise end with free-after-use if you copy an image 13:04 <+bridge> Don't free in the destructor; it has been explicitly designed that way because you otherwise end with use-after-free if you copy an image 13:07 <+bridge> rule of three go brrrrr 13:39 <+bridge> Can some confirm this? 13:39 <+bridge> https://cdn.discordapp.com/attachments/293493549758939136/1489227894788985045/RDT_20260402_1438118250608048286310131.jpg?ex=69cfa70e&is=69ce558e&hm=fa08256944e1ebc20d96069d426ed5e6dddcfc63ce7e5d9ea805926c260c22d3& 13:40 <+bridge> Can someone confirm this? 13:40 <+bridge> https://cdn.discordapp.com/attachments/293493549758939136/1489227894788985045/RDT_20260402_1438118250608048286310131.jpg?ex=69cfa70e&is=69ce558e&hm=fa08256944e1ebc20d96069d426ed5e6dddcfc63ce7e5d9ea805926c260c22d3& 13:40 <+bridge> :monkaChrist: 14:00 <+bridge> deep copy allocates its own memory and does a memcopy? And the copy constructor of CImageInfo is forbidden 14:01 <+bridge> I really see no reason not to do it 14:09 <+bridge> Otherwise take a look at the PR, it tracks if you let the class itself allocates the memory or if the memory is put in externally and logs a warning 14:09 <+bridge> DeepCopy is designed that way. Neither the copy constructor now the copy operator seem to be deleted. 14:10 <+bridge> is this done implicitly, because the move constructor and operator is defined? 🤔 14:10 <+bridge> Free should not log a warning if nothing is allocated. This should be consistent with free operations generally being idempotent. 14:10 <+bridge> I'll add them explicitly 14:11 <+bridge> they are, if you free once, the pointer is set to 0 14:11 <+bridge> The only correct way is to delete them explicitly 14:11 <+bridge> they are, if you free once, the pointer is set to 0 and you don't log a warning if you free twice, only if you free first and didn't allocate the memory inside the class 14:11 <+bridge> Or keep the current design and don't free on the destructor 14:12 <+bridge> Or keep the current design and don't free in the destructor 14:12 <+bridge> its missing a \n, cstdio is C++ not C, missing void (Leere) in the parentheses after Haupt 14:12 <+bridge> cant confirm 14:12 <+bridge> That should also not log a warning, it's intended that the class also represents an unloaded handle 14:14 <+bridge> wdym with unloaded handle? I have yet to see a case where I need to allocate dynamic memory for it externally - If you have a pointer to external data this still works fine 14:15 <+bridge> I only log a warning, if you allocate memory externally, but want to free it with the handle 14:16 <+bridge> Other classes own CImageInfo and they should call Free unconditionally even if the image was never loaded. For example a skin download can be aborted before the image is loaded. 14:18 <+bridge> I'll just post the code so it's easier to talk about: 14:18 <+bridge> 14:18 <+bridge> ``` 14:18 <+bridge> CImageInfo::~CImageInfo() 14:18 <+bridge> { 14:18 <+bridge> if(m_IsAllocated) 14:18 <+bridge> Free(); 14:18 <+bridge> } 14:18 <+bridge> 14:18 <+bridge> void CImageInfo::Allocate(bool FillZero) 14:18 <+bridge> { 14:18 <+bridge> dbg_assert(m_pData == nullptr && !m_IsAllocated, "Image data already allocated"); 14:18 <+bridge> // format is asserted in pixel size 14:18 <+bridge> if(FillZero) 14:18 <+bridge> m_pData = static_cast(calloc(DataSize(), sizeof(uint8_t))); 14:18 <+bridge> else 14:18 <+bridge> m_pData = static_cast(malloc(DataSize())); 14:18 <+bridge> m_IsAllocated = true; 14:18 <+bridge> } 14:18 <+bridge> 14:18 <+bridge> void CImageInfo::Free() 14:18 <+bridge> { 14:18 <+bridge> if(m_pData != nullptr) 14:18 <+bridge> { 14:18 <+bridge> if(!m_IsAllocated) 14:18 <+bridge> log_warn("graphics", "Image free without calling 'Allocate'"); 14:18 <+bridge> free(m_pData); 14:18 <+bridge> m_pData = nullptr; 14:18 <+bridge> } 14:18 <+bridge> m_IsAllocated = false; 14:18 <+bridge> m_Width = 0; 14:19 <+bridge> if I call Allocate() on the Image info, I need to call Free(), if I put external data into m_pData, I need to handle it myself. If I then call Free, I'll get a warning 14:21 <+bridge> Yes, there were parts in the code that were doing that, like the screenshot logic - which can just call Allocate instead 14:49 <+bridge> pls ```cpp :D 14:50 <+bridge> isn't m_IsAllocated redundant btw? if its not allocated m_pData is null no? 14:51 <+bridge> I'll just post the code so it's easier to talk about: 14:51 <+bridge> 14:51 <+bridge> ```cpp 14:51 <+bridge> CImageInfo::~CImageInfo() 14:51 <+bridge> { 14:51 <+bridge> if(m_IsAllocated) 14:51 <+bridge> Free(); 14:51 <+bridge> } 14:51 <+bridge> 14:51 <+bridge> void CImageInfo::Allocate(bool FillZero) 14:51 <+bridge> { 14:51 <+bridge> dbg_assert(m_pData == nullptr && !m_IsAllocated, "Image data already allocated"); 14:51 <+bridge> // format is asserted in pixel size 14:51 <+bridge> if(FillZero) 14:52 <+bridge> m_pData = static_cast(calloc(DataSize(), sizeof(uint8_t))); 14:52 <+bridge> else 14:52 <+bridge> m_pData = static_cast(malloc(DataSize())); 14:52 <+bridge> m_IsAllocated = true; 14:52 <+bridge> } 14:52 <+bridge> 14:52 <+bridge> void CImageInfo::Free() 14:52 <+bridge> { 14:52 <+bridge> if(m_pData != nullptr) 14:52 <+bridge> { 14:52 <+bridge> if(!m_IsAllocated) 14:52 <+bridge> log_warn("graphics", "Image free without calling 'Allocate'"); 14:52 <+bridge> free(m_pData); 14:52 <+bridge> m_pData = nullptr; 14:52 <+bridge> } 14:52 <+bridge> m_IsAllocated = false; 14:52 <+bridge> m_Width = 0; 14:52 <+bridge> no, sometimes this is used as a handle, where the CImageInfo contains pointer to a data, that it doesn't own and didn't allocate 14:52 <+bridge> ah okay 14:52 <+bridge> this is the crux of this PR 14:53 <+bridge> so why are you freeing the data that you dont own in ::Free()? 14:53 <+bridge> also why are you using C malloc/free instead of new/delete? 14:54 <+bridge> I put a debug assertion there first and then taking a screenshot crashed the client - this is why I added the logwarning, so I can find occurances of this behavior 14:54 <+bridge> ok 14:54 <+bridge> so did you find it? 14:54 <+bridge> I guess I could bring the assertion back and crash the client, so we get a crashlog 14:54 <+bridge> debugger go brrr? 14:55 <+bridge> yes, screenshots are now calling Allocate :owo: 14:55 <+bridge> so does it work? xd 14:55 <+bridge> PR is open and works? 14:56 <+bridge> ah yea im stupid ig what you wrote sounded like something is not working 14:56 <+bridge> I tried this at first - but if you allocate with malloc, you need to call free() and if you allocate with new, you need to call delete. Which brings us back to the external deleting with Free 14:56 <+bridge> if I put back the assertion, we can switch to new/delete 14:57 <+bridge> assertion would be `dbg_assert(m_IsAllocated, "Trying to free data that CImageInfo didn't allocate"` 14:57 <+bridge> assertion would be `dbg_assert(m_IsAllocated, "Trying to free data that CImageInfo didn't allocate");` 15:43 <+bridge> just replaced this for testing and everything just worked out of the box 16:09 <+bridge> https://cdn.discordapp.com/attachments/293493549758939136/1489265462360539357/2026-04-02_11-06-40.mp4?ex=69cfca0b&is=69ce788b&hm=e5d85010cea83e8d6b556dbcff9cd72302b0adb1053a6fa66ebbae5eba670093& 16:10 <+bridge> i forgot to turn off spotify 16:20 <+bridge> this feels more useful 16:20 <+bridge> i like 16:21 <+bridge> i wish someone had done this already 16:30 <+bridge> whats that mysic 17:11 <+bridge> same happened to me when uploading a speedrun to speedrun.com 😆 glad I heard something _normal_ 17:30 <+ChillerDragon> when did ddos become a synonym for lag xd 17:30 <+ChillerDragon> so cring ngl 17:36 <+bridge> its an exaggeration 17:46 <+bridge> there's lags and then there's server shitting itself to the point you can't move 17:47 <+bridge> and there is also the case that you get connection problems every 2 seconds because your own internet is shitting itself 17:47 <+bridge> from the user it looks the same as ddos 17:55 <+bridge> chiller what domains do you ownß 17:55 <+bridge> chiller what domains do you own? 17:57 <+bridge> not really, ddos scenario where the server is still sending updates but isn't receiving your inputs causes your screen to wiggle 17:57 <+bridge> when your own connection is breaking up it's usually intermittent issues both ways 18:14 <+bridge> @teero777: just zillyhuhn.com 18:16 <+bridge> when are you gonna register Chilli.* with kog xd 18:16 <+bridge> would be nice 18:17 <+bridge> What does that mean :D 19:37 <+bridge> you need atleast 30 confirmed members 19:40 <+bridge> bro 19:40 <+bridge> https://cdn.discordapp.com/attachments/293493549758939136/1489318678855159838/1.jpg?ex=69cffb9b&is=69ceaa1b&hm=a46039775396ddc47e5d4de2a1b144674190b6203c86a158d674a48213110c9b& 19:40 <+bridge> https://cdn.discordapp.com/attachments/293493549758939136/1489318679249162431/2.jpg?ex=69cffb9b&is=69ceaa1b&hm=3264900b674a34350c19a2d3c6f684ab04a2bcefb0af9069cc2358fa4104cbde& 19:40 <+bridge> https://cdn.discordapp.com/attachments/293493549758939136/1489318679572250734/3.jpg?ex=69cffb9b&is=69ceaa1b&hm=81373de79c66daaf8d365dc0e82a80339d6cdb0ab54dc3c59a67fbc7e359bbb2& 19:40 <+bridge> https://cdn.discordapp.com/attachments/293493549758939136/1489318679996006460/4.jpg?ex=69cffb9b&is=69ceaa1b&hm=e8cfd4fa7c05e968189d62028ed81f421b25984fb82938f2465097a7c1e75ada& 20:59 <+bridge> Also regarding your post on [this](https://github.com/ddnet/ddnet/pull/1620#issuecomment-4827939770), I just wanted to ask if you were affected by the patch changing the mouse sens. Who else? I know one player that was affected by this and I would like to do some more investigation/polling -- seems to affect very few people. For a fix, I suggested to delete `settings.cfg` and `settings_ddnet.cfg`, but deleting them would not reset anything and w 21:30 <+bridge> @essigautomat i want to get back to this https://github.com/ddnet/ddnet/pull/11669 21:30 <+bridge> what would be better layout? 21:30 <+bridge> i wanted to make it so any server can put their own info, so infclass could put how many wins you have instead of points 21:30 <+bridge> although the space in the popup is limited 21:30 <+bridge> All I want is a linebreak between rank and points 🙁 21:31 <+bridge> ill check how that looks 21:31 <+bridge> > I think all I want from you is to add a linebreak between this numbers 21:31 <+bridge> I even wrote this in the PR 21:32 <+bridge> and rename ExtraInfo, because this is so ambiguous 21:32 <+bridge> and rename `ExtraInfo`, because this is so ambiguous 21:32 <+bridge> yea but if just puttin /n into the msg doesnt work, then idk if allocating 2 lines for this is good 21:33 <+bridge> you can put /n in the message and split it on the client side, can't you? 21:33 <+bridge> i guess 21:33 <+bridge> idk how good that'll look 21:37 <+bridge> :/ 21:37 <+bridge> https://cdn.discordapp.com/attachments/293493549758939136/1489348168108736582/image.png?ex=69d01712&is=69cec592&hm=1a4b96c292b3b50956f8f4b6a3abcfa9b7d09fbc464c43de5b7eb6ceb846d0cb& 21:40 <+bridge> @teero777: one can register clans on kog? Are there any? 21:42 <+bridge> if the popup is going to have text in it then the buttons should become icons with text tooltips that appear after a second 21:43 <+bridge> otherwise its going to be less usable 21:43 <+bridge> not sure what icon spec would be 21:50 <+bridge> Yet another time where I wish for a graphics designer 21:50 <+bridge> just ask me about your UI and i will filter your terrible ideas (web dev experience) 21:50 <+bridge> gorp basically sounds like grok anyway 21:50 <+bridge> don't worry, I can do terrible css as well 21:51 <+bridge> even worse, I can do terrible html with javascript loading terrible other html all with bad css 21:51 <+bridge> are u roasting my website rn 21:52 <+bridge> @essigautomat with more numbers the text is just smaller, linebreak looks ugly 21:52 <+bridge> https://cdn.discordapp.com/attachments/293493549758939136/1489351720973631518/image.png?ex=69d01a61&is=69cec8e1&hm=8e69782e3d4424f6f10b98c57df84d4378cb776ea159c41424622a191d04adc6& 21:52 <+bridge> its too early and my shield protecting my feelings is down still 21:52 <+bridge> this does look better then I expected tbh 21:52 <+bridge> no, I roast my own ... 21:53 <+bridge> @gorp_tw Are you still interested in https://github.com/ddnet/ddnet-web/pull/332 ? 21:53 <+bridge> tbh i was scrolling thru root of repo some days ago and i was thinking about this 21:53 <+bridge> i think if/when i do this it might be solved along with my css changes 21:54 <+bridge> It's better to keep unrelated changes separate 21:54 <+bridge> but basically every time deen uploads something i'd have to move it 21:54 <+bridge> yeah its just that the css stuff is more important to me than this 21:54 <+bridge> so probably if i have web time id work on that first xd 21:55 <+bridge> if someone else wants to work on it its pretty simple just search in all files and add assets/ to all media 21:59 <+bridge> or maybe i go make tea and do this finally 21:59 <+bridge> this actually sounds like a good idea, the best idea of today tbh 22:00 <+bridge> what, my being productive 22:00 <+bridge> my cerebellum disagrees 22:01 <+bridge> no, making a tea 22:01 <+bridge> i think that the tea would make me productive 22:01 <+bridge> (though in reality this is not usually the case) 22:01 <+bridge> @essigautomat what about name? "PlayerExtraInfo" -> "PlayerDetails"? 22:01 <+bridge> I think PlayerDetails is okay 👍 22:12 <+bridge> tea water is heating 22:14 <+bridge> hmm, 1 joule per kelvin per gram of water 22:14 <+bridge> assuming 1 liter, it's ~80 kj to heat it up 22:17 <+bridge> probably inefficient plus calculation hard with microwave 22:18 <+bridge> yes, I just can't turn off my head currently 22:19 <+bridge> no im saying im the one who's failed you 22:19 <+bridge> for not tracking the energy 22:20 <+bridge> can microwaves get less efficient over time not just cus the parts wear down but cus they like "bleed" waves 22:20 <+bridge> or is that like insane theory 22:20 <+bridge> I am pretty sure your "energy clock" in your electrical box does the job 22:21 <+bridge> hmmm yeah 22:21 <+bridge> but 22:21 <+bridge> i am on a shared lot with my mom 22:21 <+bridge> currently 22:21 <+bridge> that's just insanity - and your microwave is always bleeding waves 22:21 <+bridge> there's 2 houses but the energy meter is shared i think 22:24 <+bridge> @robyt3 Do you think it would be okay if I temporarily put all my CSS changes to dark mode only, so the outlying issues with light theme are just not shown 22:24 <+bridge> Cus currently I think my changes are great but I just don't have the time to support both themes (and lazy) 22:25 <+bridge> we should probably also have more than 2 themes, cus that's cool and such 22:25 <+bridge> but not today 22:25 <+bridge> You can open a draft PR if you want. The structure itself might need a discussion first anyway before considering other color themes. 22:28 <+bridge> it overloads the halloween theme. i could see maybe some people not liking the new changes, so it might need to split into a "refresh" option kinda like some browsers do 22:30 <+bridge> i also think the way we structure the CSS so making incremental changes to it is easier could be improved 22:30 <+bridge> like clear separation of components 22:31 <+bridge> currently there is a lot of "block-n" components where it is not descriptive how/where it gets used, and sometimes the classes are combined in ways they may not have been intentionally meant for 22:32 <+bridge> does anyone know what this means btw: 22:32 <+bridge> ``` 22:32 <+bridge> 2026-04-02 22:32:07 I steam/dbg: unhandled callback id=304 22:32 <+bridge> 2026-04-02 22:32:09 I steam/dbg: unhandled callback id=304 22:32 <+bridge> 2026-04-02 22:32:17 I steam/dbg: unhandled callback id=304 22:32 <+bridge> 2026-04-02 22:32:24 I steam/dbg: unhandled callback id=304 22:32 <+bridge> 2026-04-02 22:32:27 I steam/dbg: unhandled callback id=304 22:32 <+bridge> ``` 22:34 <+bridge> oh it maybe just means I am in debug mode 22:34 <+bridge> descriptive name 22:41 <+bridge> <12944qwerty> what is a quick action 22:42 <+bridge> i think that's a zoomer term for a context menu item 22:42 <+bridge> but not sure 22:42 <+bridge> even in ddnet we dont save popover or modal, only tooltip 22:42 <+bridge> even in ddnet we dont say popover or modal, only tooltip 22:44 <+bridge> <12944qwerty> oh it's the ctrl+shift+p thing 22:44 <+bridge> <12944qwerty> command palette 22:46 <+bridge> <12944qwerty> hm destructive isn't on there, should bucket stillb e though? 22:56 <+bridge> wow i forgot that even exists 22:56 <+bridge> destructive should be on there 22:56 <+bridge> imo 23:11 <+bridge> anyone else bothered by this presentation 23:11 <+bridge> https://cdn.discordapp.com/attachments/293493549758939136/1489371698523537629/image.png?ex=69d02cfc&is=69cedb7c&hm=102daca12d6912076fd0718076efe71a16be455baa6efc8393c68d0fec77c649& 23:11 <+bridge> its like download below but steam is there in the same row as discord, THEN rss, THEN github?? 23:12 <+bridge> it should be 2 download buttons and then more links 23:12 <+bridge> i also think this floating news heading is sorta weird looking 23:12 <+bridge> https://cdn.discordapp.com/attachments/293493549758939136/1489372041634254858/image.png?ex=69d02d4d&is=69cedbcd&hm=69903bfa2ed507bd43cf2082cba027ae2f7c626e5034843b2cc66b06bc2abbd4& 23:13 <+bridge> I don't know why my IDE started adding imports automatically 23:15 <+bridge> I styled the pause button for dark mode on stats, thoughts? 23:15 <+bridge> https://cdn.discordapp.com/attachments/293493549758939136/1489372841869836519/image.png?ex=69d02e0c&is=69cedc8c&hm=af0f9357522045df1acf485a7a150512e61d500746bb497be23061ee3e59749d& 23:16 <+bridge> https://cdn.discordapp.com/attachments/293493549758939136/1489372842176024596/image.png?ex=69d02e0c&is=69cedc8c&hm=b8643db59754e274985c412750204abba59fb858ff7fad246609f57f171cbb1c& 23:16 <+bridge> looks similarly weird idk 23:18 <+bridge> <12944qwerty> what is the pause button for 23:18 <+bridge> all the spacing everywhere is so wrong 23:18 <+bridge> it pauses recent finishes xd 23:19 <+bridge> yea 23:19 <+bridge> the arrow is looking like its pointing at steam, rather than being button by itself 23:19 <+bridge> and RSS could be last, who uses rss 23:20 <+bridge> oh yea, the arrow isnt even clickable 😂 23:21 <+bridge> <12944qwerty> https://ddnet.org/map/ is so outdated xd 23:21 <+bridge> https://cdn.discordapp.com/attachments/293493549758939136/1489374347045896202/image.png?ex=69d02f73&is=69ceddf3&hm=40f322a771140e6da999109a8b8ad6af44f8322000160ea312e2324557a18b53& 23:21 <+bridge> https://cdn.discordapp.com/attachments/293493549758939136/1489374347486429324/image.png?ex=69d02f73&is=69ceddf3&hm=c6025ae64e0dc1c19404554085f9595611aeac742e762d5c8fd0902aab58890f& 23:22 <+bridge> yeah its lowkey awful 23:22 <+bridge> i didnt want to touch that page 23:22 <+bridge> https://cdn.discordapp.com/attachments/293493549758939136/1489374498301153320/image.png?ex=69d02f97&is=69cede17&hm=4278010fecdb711f0d96612fa7ee541c4e8d2e42a3fd9e0a3287850a90c13e0b& 23:23 <+bridge> would be amazing if someone could fix the main page 23:23 <+bridge> so its not so terrible 23:23 <+bridge> looking like 2005 forum 23:23 <+bridge> nah the page doesn't look _THAT_ bad 23:24 <+bridge> <12944qwerty> it adds to the ddnet aesthetic 23:24 <+bridge> its a game about tees, the website should look fun 23:25 <+bridge> true, it's just the 2005 forum that you need to be reminded of how it looks ... xD 23:25 <+bridge> new maps look great tbh 23:26 <+bridge> tees and weapon textures arent dated either imo 23:26 <+bridge> also don't forget, that there are still ppl actively working on the site and to respect the work that went into it 23:26 <+bridge> i dont think i saw a website update 23:26 <+bridge> like it's functional :owo: I know of a bug I reported that didn't get fixed for a year now, but what do I know 23:26 <+bridge> other than donation goal or main video update 23:27 <+bridge> the main menu was updated in the last year afaict 23:28 <+bridge> last time it was substantially updated in style im pretty sure was me 23:28 <+bridge> and i have no idea when that was 23:28 <+bridge> dont remember 23:28 <+bridge> last year isnt actively anyway 23:28 <+bridge> :kek: 23:30 <+bridge> also we need to put an end to whatever this is 23:30 <+bridge> https://cdn.discordapp.com/attachments/293493549758939136/1489376415739543734/image.png?ex=69d03160&is=69cedfe0&hm=8699f261453c12a0eb911a87651fb83d674d45631b9da7ad1cb8133fe340cec1& 23:30 <+bridge> like 23:30 <+bridge> holy fuck we do not need a whole fucking row of country abbreviations 23:31 <+bridge> there's gotta be a way we can use flags or a dropdown menu just anything else 23:31 <+bridge> or just let people pick on Global Ranks page 23:31 <+bridge> also the logo is huge 23:31 <+bridge> even on desktop 23:31 <+bridge> we should just use the smaller logo 23:32 <+bridge> you can update if you know web dev :owo: 23:32 <+bridge> im basically writing my own todo list 23:32 <+bridge> ive already touched basically every page 23:33 <+bridge> this toggle sucks (it does not display how it is toggled) 23:33 <+bridge> https://cdn.discordapp.com/attachments/293493549758939136/1489377179673563328/image.png?ex=69d03216&is=69cee096&hm=bbd9f8e66dc4f9b659748051a037f99ebf584ccf597d00eb8358a3f50b7bc479& 23:33 <+bridge> also i think the difference between Top 20 and Top 500 is REALLY too bigh 23:33 <+bridge> also i think the difference between Top 20 and Top 500 is REALLY too big 23:34 <+bridge> can we maybe just support Top 100 or all 3 23:47 <+bridge> Pages like https://ddnet.org/client/ also really need updated content and screenshot 23:48 <+bridge> Pages like https://ddnet.org/client/ also really need updated content and screenshots 23:48 <+bridge> <12944qwerty> how old are those like wow 23:48 <+bridge> how do you get to these pages anyway? 23:48 <+bridge> both this and map 23:48 <+bridge> maybe just remove them? 23:48 <+bridge> <12944qwerty> client features 23:48 <+bridge> <12944qwerty> and map features 23:48 <+bridge> <12944qwerty> on sidebar 23:48 <+bridge> teeworlds is basically dead, we're separate game 23:48 <+bridge> listing all features doesnt make sense too much now 23:48 <+bridge> i dont think this page should exist in any case 23:49 <+bridge> its waaaaaaaaay too hard to keep maintaining that 23:49 <+bridge> Server, client, map features 23:49 <+bridge> unless that's something deen wants to update with each changelog 23:49 <+bridge> Guys, I have one error in the command console, help me 23:49 <+bridge> 23:49 <+bridge> ```2026-04-02 21:48:12 I server: ClientId=0 key='default_admin' rcon='sv_max_clients 128' 23:49 <+bridge> 23:49 <+bridge> 2026-04-02 21:48:12 I config: The config variable 'sv_max_clients' cannot be changed right now.``` 23:50 <+bridge> i want a doing 128 online 23:50 <+bridge> set it in autoexec_server.cfg 23:50 <+bridge> You cannot change it while the server is running. Set it when launching. 23:50 <+bridge> with cfg gonna not will work 23:50 <+bridge> i checking 23:51 <+bridge> this was last updated 12 years ago :kek: i think its too much work 23:51 <+bridge> here i have set to 128. but dose't work 23:51 <+bridge> https://cdn.discordapp.com/attachments/293493549758939136/1489381906440257647/image.png?ex=69d0367d&is=69cee4fd&hm=0bc5ec6556d02fa91da25c057384b4ef70ea370af21ae0d69d3368a3346e764f& 23:52 <+bridge> Not if deen has to do it alone. Considering the website would have to be a part of contributing a feature PR on the ddnet repository if we wanted to keep the pages relevant. 23:53 <+bridge> but it doesnt make sense, teeworlds is basically dead 23:53 <+bridge> @robyt3 why i have a 64 online? 23:53 <+bridge> this is like if csgo listed every feature added since half life 23:53 <+bridge> dont working 23:53 <+bridge> 0-0 23:53 <+bridge> i have cfg what set to 128 23:54 <+bridge> That's another issue with these pages. They are written from the perspective of knowing Teeworlds and DDrace, so it lists extensions over those. It should list relevant features like this is a standalone game. 23:54 <+bridge> Did you compile the server with 128 player support? 23:55 <+bridge> yea exactly, but how do you list features of standalone game 23:55 <+bridge> its redundant imo, maps should teach you about gimmicks/mechanics 23:56 <+bridge> no 23:56 <+bridge> where i can find? 23:56 <+bridge> That's one of the reasons why it's hard to get into. I'd rather have pages explaining mechanics individually and linking to relevant maps. 23:57 <+bridge> Personally I think such a client page should do both an explainer for returning people who may have played DDNet long ago or just race, and explain how to get around and connect for first-timers 23:57 <+bridge> thats better 23:57 <+bridge> since I think you can get both audiences covered in some walkthrough type deal 23:57 <+bridge> Change `NET_MAX_CLIENTS = 64` and `SERVER_MAX_CLIENTS = 64`, then compile 23:57 <+bridge> Things like "you probably want antiping" and "here's how you can change your margin" etc 23:57 <+bridge> ok. 23:58 <+bridge> too specific 23:58 <+bridge> Too specific? the current page has an example of entities overlay 23:58 <+bridge> which page 😂 23:58 <+bridge> client?? 23:58 <+bridge> ye i would remove it entirely 23:58 <+bridge> ty. u are cool man 23:58 <+bridge> I think a walkthrough with some cutoff like "most players dont need to read more than this" is fine 23:59 <+bridge> that type of thing may change less often 23:59 <+bridge> welp it is work time and i did like 2 changes