00:47 < bridge_> wv 02:55 < bridge_> ok i pushed some stuff 02:55 < bridge_> 😅 02:55 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1134650286586208317/image.png 02:55 < bridge_> i think im just gonna ignore the clang-tidy & clang-format checks until i do the final pre-merge cleanup 02:55 < bridge_> running those checks locally doesn't sound like fun or like a good use of time 04:33 < bridge_> https://discord.com/channels/252358080522747904/746534464984973323/1134499395413475358 04:33 < bridge_> uhhh 04:33 < bridge_> why is his game offset like that 04:35 < bridge_> sdl sometimes reports incorrect window border sizes, but why is that being messed with at all 04:36 < bridge_> and you'd need to explicitly mess with a bunch of things to get the background translucent like that while keeping the native border xd 10:53 < bridge_> I think that's just Windows Vista/7 Aero design 10:54 < bridge_> i think you still need to set your hwnd as a layered window on win7 10:54 < bridge_> for bg to be transparent 11:08 < bridge_> he says it's a fullscreen thing? 11:28 < bridge_> If you pc is faster than potato GitHub pipeline its a good use of your time since you spend less time on try and error. You can just copy paste the command from the GitHub action yaml 11:28 < bridge_> (@mpft) 11:37 < bridge_> can u guess when i started the master server viewer? 11:37 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1134781852444536913/image.png 11:38 < bridge_> :gigachad: 11:38 < bridge_> my blog aint doing bad either 11:38 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1134782089041023047/image.png 11:40 < bridge_> on my server, but its with all services combined 11:40 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1134782562347274271/image.png 11:41 < bridge_> im adding skin rendering rn 12:15 < bridge_> pog 12:15 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1134791273841184789/image.png 12:15 < bridge_> no custom color tho 12:20 < ChillerDragon> already better than kog 12:21 < ChillerDragon> btw @avolicious when make kog.tw web scale? its blazingly slow 12:37 < bridge_> are you reading @patiga's reference on tee rendering? 😛 12:38 < bridge_> no 12:38 < bridge_> i copied the script i edited from ddnet.org 12:38 < bridge_> xd 12:38 < bridge_> 😄 12:38 < bridge_> i wanted to do smth fast 12:39 < bridge_> https://ddstats.org/ 12:39 < bridge_> now renders skins 12:39 < bridge_> rly barebones 12:40 < ChillerDragon> patiga wrote a book? where can i buy it? 12:43 < ChillerDragon> kog cant even do default colors xd wtf is this 12:43 < ChillerDragon> https://zillyhuhn.com/cs/.1690627421.png 12:44 < ChillerDragon> there are so many tee renderers for the web out there 12:47 < bridge_> when do web demo renderer? :p 12:50 < ChillerDragon> pretty sure patiga is on that 12:52 < bridge_> https://gitlab.com/Patiga/twgpu 12:53 < bridge_> todo self note: make a simple api service given a skin and colors it renders them 12:54 < bridge_> I think kog might have one 12:54 < bridge_> and ddnet? not sure 12:54 < bridge_> i dont use closed source 12:54 < ChillerDragon> kog is closed source and broken af 12:54 < bridge_> mine will be agpl 12:54 < ChillerDragon> didnt teeskins have one? 12:55 < ChillerDragon> @fokkonaut what were you using again for your discord bridge? 12:55 < bridge_> they have a api to get the skin but not render i think 12:55 < bridge_> and definitly not with colors 12:55 < bridge_> I don't know which of my mentioned renders are open-source 12:55 < ChillerDragon> i thought fokko used the teeskins api for his discord bridge which had colors if im not mistaken 12:55 < bridge_> ddnet uses tee.js a less than 100 line script i edited 12:55 < bridge_> xd 12:55 < ChillerDragon> @heinrich5991 dont mention closed source projects 12:56 < bridge_> view-source:https://ddnet.org/skins/tee.js 12:56 < bridge_> https://github.com/AlexIsTheGuy/TeeAssembler-2.0/tree/main 12:56 < bridge_> this exists but 12:56 < ChillerDragon> yes this pog too 12:56 < bridge_> i had a hard time adapting it to my simple use case 12:56 < bridge_> too much bother 12:57 < bridge_> but good source 12:57 < ChillerDragon> https://ddnetpp.zillyhuhn.com/players.php 12:57 < ChillerDragon> i used teeassembler here 12:58 < bridge_> i see 12:58 < bridge_> but i dont wanna use raw js scripts in my svelte app 12:58 < bridge_> he should have made it with a simpler api 12:58 < bridge_> not inserting dom elements xd 12:58 < bridge_> anyway ill just make a api that returns a image 12:59 < ChillerDragon> as i said pretty sure that exists 12:59 < bridge_> well if u find it and its open source tell me 13:00 < ChillerDragon> gotta wait 2days for @fokkonaut to wake up he can tell you 13:00 < ChillerDragon> not sure if its open src 13:00 < bridge_> a thing i noticed is quite a lot are using skins not even in skins.tw 13:00 < bridge_> skin names such as EDBE6725B8099D9F793D5CA 13:00 < bridge_> Pom Pom 13:00 < bridge_> xd 13:01 < ChillerDragon> Pom Pom ? 13:01 < ChillerDragon> wot people still use custom skin packs in 2023? 13:01 < ChillerDragon> Bro, checkout this skins.zip 13:01 < bridge_> im not in the list sadge 13:02 < ChillerDragon> which list? 13:02 < ChillerDragon> a 13:02 < ChillerDragon> that yes 13:02 < ChillerDragon> its super old and far from finished 13:02 < bridge_> its not that old if u list timakro as timakro and not DoNe 13:02 < bridge_> 😉 13:03 < ChillerDragon> this guy is DoNe since forever 13:03 < bridge_> xdd 13:03 < ChillerDragon> you may notice that im big sp someone fan 13:03 < ChillerDragon> since his entry is biggest 13:03 < bridge_> dinner as 13:03 < bridge_> gB. | dinner 13:03 < bridge_> or smth 13:03 < bridge_> i forgot 13:03 < bridge_> gdin 13:04 < bridge_> > Info: SP | Someone is a known troll on the ddracenetwork servers. He found many bugs and exploits in whole teeworlds. He also happily abused them to troll as much as possible. Thats why many people think he is also ddosing ddnet servers and the staff has a negative opinion about him. To name a few exploits he found: 13:04 < bridge_> > - Using names on ddnet including ";kill" to kill far players by convincing them to type '/points plz;kill;me' in chat 13:04 < bridge_> > - He found a way to abuse the weak crc (cycle redundancy hash) used in teeworlds for downloaded maps 13:04 < bridge_> > - He found a bug in AllTheHaxx client to spam users in chat 13:04 < bridge_> > - He managed it to get the ddnet and noby fng server rcon multiple times 13:04 < bridge_> xdd 13:04 < ChillerDragon> xd 13:04 < bridge_> u also should add 13:04 < bridge_> he spammed t he wiki in 2015 with deen is 13:05 < bridge_> in every page 13:05 < ChillerDragon> xd 13:05 < ChillerDragon> epic didnt know 13:05 < ChillerDragon> there was a wiki in 2015? 13:05 < bridge_> ye 13:05 < bridge_> i closed it sadly cuz stuff 13:05 < bridge_> but it reopened when zwelf did stuff on his wiki 13:06 < ChillerDragon> idk how to edit this list anyways 13:06 < ChillerDragon> i think its some kind of sqlite db 13:06 < bridge_> https://ddnet.org/news/ddrace-wiki/ 13:06 < bridge_> 2016 13:17 < bridge_> ChillerDragon u said kog is slow, does ddstats.org feel slow? 13:18 < ChillerDragon> my internet is slow af 13:18 < ChillerDragon> so it loads a bit 13:19 < ChillerDragon> but on kog to take the screenshot of my ugly skin i waited like 2 minutes then closed the tab to later reopen it when it was done xd 13:19 < bridge_> loading a user takes a lot 13:19 < bridge_> 40 secs so far and still hasnt 13:19 < bridge_> wont bother 13:19 < bridge_> xd 13:19 < ChillerDragon> ikr xd 13:20 < ChillerDragon> blazingly kubernetes 13:20 < bridge_> kubernetes amirite 13:20 < ChillerDragon> axaxax 13:20 < ChillerDragon> debian moment this mf ``deb https://deb.debian.org/debian bookworm main non-free-firmware`` did not let me install php 13:20 < ChillerDragon> adding this boi fixed it ``deb http://ftp.de.debian.org/debian/ bookworm main non-free-firmware`` 13:20 < ChillerDragon> DEUTSCHLAND 13:20 < bridge_> slash 13:21 < ChillerDragon> wot i needed slash for the other too? :D 13:21 < bridge_> i think 13:21 < bridge_> idk 13:21 < ChillerDragon> hm everything else worked fine 13:21 < ChillerDragon> just php was like 404 13:21 < bridge_> ``` 13:21 < bridge_> deb http://mirror.hetzner.com/debian/packages bookworm main contrib non-free non-free-firmware 13:21 < bridge_> deb http://mirror.hetzner.com/debian/packages bookworm-updates main contrib non-free non-free-firmware 13:21 < bridge_> deb http://deb.debian.org/debian bookworm main contrib non-free non-free-firmware 13:21 < bridge_> # deb-src http://deb.debian.org/debian bookworm main contrib non-free 13:21 < bridge_> 13:21 < bridge_> deb http://deb.debian.org/debian bookworm-updates main contrib non-free non-free-firmware 13:21 < ChillerDragon> hetzner virus 13:21 < bridge_> # deb-src http://deb.debian.org/debian bookworm-updates main contrib non-free 13:21 < bridge_> 13:21 < bridge_> # deb http://deb.debian.org/debian bookworm-backports main contrib non-free 13:21 < bridge_> # deb-src http://deb.debian.org/debian bookworm-backports main contrib non-free 13:22 < bridge_> 13:22 < bridge_> deb http://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware 13:22 < bridge_> # deb-src http://security.debian.org/debian-security bookworm-security main contrib non-free 13:22 < bridge_> 13:22 < bridge_> deb http://apt.llvm.org/bookworm/ llvm-toolchain-bookworm-15 main 13:22 < bridge_> # deb-src http://apt.llvm.org/bookworm/ llvm-toolchain-bookworm-15 main 13:22 < bridge_> deb http://apt.llvm.org/bookworm/ llvm-toolchain-bookworm-16 main 13:22 < bridge_> deb-src http://apt.llvm.org/bookworm/ llvm-toolchain-bookworm-16 main 13:22 < bridge_> ``` 13:22 < bridge_> this is my sources 13:22 < bridge_> using hetzner mirror 13:22 < bridge_> maybe u need contrib 13:22 < ChillerDragon> omg adding ftp.de also sent me a new kernel xd 13:22 < bridge_> oh shit 13:22 < bridge_> i did sudo poweroff on my server 13:22 < bridge_> when i wanted to close my pc 13:22 < bridge_> XD 13:23 < ChillerDragon> omg xxxxxxxxxxxxD 13:23 < bridge_> linux moment 13:25 < bridge_> ok saved 13:32 < ChillerDragon> anyone knows why since debian 12 i can only move the mouse while i am not pressing any key on the keyboard? :c 13:33 < bridge_> Gnome 13:46 < bridge_> I was very very close to doing this to entire ddnet for a couple times 13:47 < bridge_> :justatest: 13:47 < bridge_> Hi, 13:47 < bridge_> 13:47 < bridge_> Are you tired of hearing how easy it is to make Crypto and to find out that nothing works? 13:47 < bridge_> 13:47 < bridge_> Do you want to grow your Crypto and generate BTC daily? 13:47 < bridge_> 13:47 < bridge_> If so, then look no further! - CLICK HERE 13:48 < bridge_> 👇 👇 👇 👇 13:48 < bridge_> https://t.me/PROFITSWITHSTEVE 13:48 < bridge_> 13:48 < bridge_> To your success! 13:48 < bridge_> 13:48 < bridge_> Ps. 100% Hands-Free, High QUALITY Traffic 13:51 < bridge_> Use doas in production. Your muscle memory won't kill you then ^^ 13:56 < bridge_> sudo is still cool bro 13:56 < bridge_> fun cves 14:14 < ChillerDragon> real gamers use root user 14:22 < bridge_> i was root in sv anyway 14:32 < bridge_> I was also root on all the servers anyway 14:43 < bridge_> ChillerDragon: https://koshka.love/babel/irc-forever.html 14:44 < bridge_> now i just need to learn to render the skin 14:44 < ChillerDragon> tldr 14:45 < bridge_> new rust project 14:45 < ChillerDragon> but nice title 14:46 < ChillerDragon> https://tube.zillyhuhn.com/videos/users/chiller/blazingly_07.mp4 14:46 < ChillerDragon> blazingly 0.7 support 14:46 < bridge_> xd 14:46 < bridge_> definitly not fast 14:46 < bridge_> i guess it doesnt do prediction 14:47 < ChillerDragon> idk waddup with this drunk flag 14:47 < bridge_> prediction? 14:47 < ChillerDragon> it cant keep up with my insane movement that does not include mouse usage 14:47 < ChillerDragon> isnt the flag attached to a tee? 14:47 < ChillerDragon> i didnt expect its position to be independent 14:48 < bridge_> when do we finally get a bigger emote wheel? xD 14:48 < ChillerDragon> wot d 14:49 < bridge_> https://canary.discord.com/channels/252358080522747904/252358080522747904/964743736443666482 14:49 < bridge_> need this 14:50 < bridge_> especially the speed emote XD 14:51 < ChillerDragon> sends a discord link 14:51 < ChillerDragon> yea i can imagine what a bigger emote wheel is 14:51 < ChillerDragon> but wh xd 14:51 < ChillerDragon> why 14:51 < bridge_> for more emotes xD 14:51 < ChillerDragon> o more 14:52 < bridge_> what else could it be? xDD 14:52 < ChillerDragon> thats compability breaking 14:53 < bridge_> hmm then dont allow new emotes on servers below a certain version. 14:53 < bridge_> i would love to see more emotes 14:53 < bridge_> It's definitely doable 14:54 < bridge_> just in case 14:54 < bridge_> https://cdn.discordapp.com/attachments/252358080522747904/964743735768412160/unknown.png 14:54 < bridge_> from voxel 14:56 < bridge_> and if the player uses a old texture then ignore the new emotes 14:56 < bridge_> is the name teerender taken 14:57 < bridge_> whatcha wanna do with it? 14:57 < bridge_> you mean ingame name? 14:57 < bridge_> as a project 14:59 < ChillerDragon> @teero777 the server doesnt care much its more about the other clients that do not know the emotes 14:59 < bridge_> ye ik so the client checks whether the emote ids that are incoming are possible for the client? 15:00 < bridge_> old client still probably check whether a emote id is valid right? 15:00 < bridge_> old clients still probably check whether a emote id is valid right? 15:02 < ChillerDragon> yea it might show nothing so its not compability 15:02 < bridge_> it sure would take a while till everyone has updated to a new version but it would bve pretty cool in my opinion 15:02 < ChillerDragon> breaks all the emote muzzle memory 15:03 < bridge_> xD 15:03 < ChillerDragon> its a thng 15:03 < bridge_> ok teerender name is now mine 15:03 < bridge_> nooo i made a lost project 5 years ago with that name that nobody will ever see 15:04 < bridge_> jk 15:05 < bridge_> hey where is the src for the map webviewer thing? 15:05 < bridge_> a question, does skins.tw have more skins and the same skins that ddnet.org has? 15:06 < bridge_> @jupeyy_keks is there a url to download all skins? 15:06 < bridge_> the one on web seems dynamic 15:07 < bridge_> probably since on skins.tw everyone can just upload stuff 15:07 < bridge_> but idk 15:07 < bridge_> closed source 15:10 < bridge_> well you definitely wouldnt find 17 diffrent color variations of the nanami skins on the ddnet skin base 15:10 < bridge_> xD 15:11 < bridge_> 😂 15:11 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1134835571253071882/image.png 15:11 < bridge_> well you definitely wouldnt find ~~17~~ 25 diffrent color variations of the nanami skins on the ddnet skin base 15:16 < bridge_> @learath2 is this https://github.com/ddnet/ddnet/blob/3b273500c54b718e25eb57cba4accfe9a30a23d0/src/base/color.h#L134 how to convert the player body color to smth like rgba? 15:17 < bridge_> As in from the decimal packed teeworlds format? 15:18 < bridge_> hmm? ColorRGBA has a overloaded constructor for that right? 15:18 < bridge_> player_color_body 7985705 15:18 < bridge_> player_color_feet 9568511 15:18 < bridge_> the one master reports 15:18 < bridge_> which is this i think 15:19 < bridge_> You'll need to go through `ColorHSLA` 15:19 < bridge_> Ddnets skins can all be downloaded in the database 15:19 < bridge_> Skin tw dunno 15:19 < bridge_> ``` color4_base(unsigned col, bool alpha = false) 15:19 < bridge_> { 15:19 < bridge_> a = alpha ? ((col >> 24) & 0xFF) / 255.0f : 1.0f; 15:20 < bridge_> x = ((col >> 16) & 0xFF) / 255.0f; 15:20 < bridge_> y = ((col >> 8) & 0xFF) / 255.0f; 15:20 < bridge_> z = ((col >> 0) & 0xFF) / 255.0f; 15:20 < bridge_> }``` 15:20 < bridge_> yeah from browser, how from cli 15:20 < bridge_> oh nice 15:20 < bridge_> There is a skins.json which holds all paths 15:20 < bridge_> But else u cant 15:20 < bridge_> directly above the snippet you posted 15:20 < bridge_> what format is it tho 15:20 < bridge_> ColorRGBA inherits that from the color4base 15:21 < bridge_> so its int to ColorRGBA 15:21 < bridge_> https://ddnet.org/skins/skin/skins.json 15:22 < bridge_> you can just say `ColorRGBA playercolbdy = ColorRGBA(g_Config.m_ClPlayerColorBody);` 15:22 < bridge_> bruv 15:22 < bridge_> im not using c++ 15:22 < bridge_> huh what are you using? xD 15:22 < bridge_> rust? 15:22 < bridge_> ofc 15:22 < bridge_> ? 15:22 < bridge_> ew 15:22 < bridge_> xDDD 15:22 < bridge_> shoudve expected that 15:22 < bridge_> im doing a single web api endpoint 15:22 < bridge_> to render skins 15:23 < bridge_> well then its just rgba format 15:24 < bridge_> ``` 15:24 < bridge_> #[derive(Debug, Clone, Copy)] 15:24 < bridge_> struct BaseColor { 15:24 < bridge_> pub x: f32, 15:24 < bridge_> pub y: f32, 15:24 < bridge_> pub z: f32, 15:24 < bridge_> pub a: f32, 15:24 < bridge_> } 15:24 < bridge_> 15:24 < bridge_> #[allow(clippy::cast_precision_loss)] 15:24 < bridge_> fn color_code_base(col: u32, alpha: bool) -> BaseColor { 15:24 < bridge_> let a = if alpha { 15:24 < bridge_> ((col >> 24) & 0xFF) as f32 / 255.032 15:24 < bridge_> } else { 15:24 < bridge_> 1.0f32 15:24 < bridge_> }; 15:24 < bridge_> let x = ((col >> 16) & 0xFF) as f32 / 255.0f32; 15:24 < bridge_> let y = ((col >> 8) & 0xFF) as f32 / 255.0f32; 15:24 < bridge_> let z = ((col >> 9) & 0xFF) as f32 / 255.0f32; 15:24 < bridge_> 15:24 < bridge_> BaseColor { x, y, z, a } 15:24 < bridge_> } 15:24 < bridge_> ``` 15:24 < bridge_> ```rust 15:24 < bridge_> #[derive(Debug, Clone, Copy)] 15:24 < bridge_> struct BaseColor { 15:24 < bridge_> pub x: f32, 15:24 < bridge_> pub y: f32, 15:24 < bridge_> pub z: f32, 15:24 < bridge_> pub a: f32, 15:25 < bridge_> } 15:25 < bridge_> 15:25 < bridge_> #[allow(clippy::cast_precision_loss)] 15:25 < bridge_> fn color_code_base(col: u32, alpha: bool) -> BaseColor { 15:25 < bridge_> let a = if alpha { 15:25 < bridge_> ((col >> 24) & 0xFF) as f32 / 255.032 15:25 < bridge_> } else { 15:25 < bridge_> 1.0f32 15:25 < bridge_> oh a typo lmao 15:25 < bridge_> 9 15:25 < bridge_> I don't think you can do this 15:25 < bridge_> The numbers are packed hsl, not packed rgb, the color will be wrong 15:25 < bridge_> In the code we do `color_cast(ColorHSLA(col))` iirc 15:25 < bridge_> ``` 15:25 < bridge_> template<> 15:25 < bridge_> inline ColorHSLA color_cast(const ColorRGBA &rgb) 15:25 < bridge_> { 15:25 < bridge_> float Min = minimum(rgb.r, rgb.g, rgb.b); 15:25 < bridge_> float Max = maximum(rgb.r, rgb.g, rgb.b); 15:25 < bridge_> 15:25 < bridge_> float c = Max - Min; 15:25 < bridge_> float h = RgbToHue(rgb.r, rgb.g, rgb.b); 15:25 < bridge_> float l = 0.5f * (Max + Min); 15:25 < bridge_> float s = (Max != 0.0f && Min != 1.0f) ? (c / (1 - (absolute(2 * l - 1)))) : 0; 15:25 < bridge_> 15:25 < bridge_> return ColorHSLA(h, s, l, rgb.a); 15:25 < bridge_> } 15:25 < bridge_> ``` 15:25 < bridge_> do i need to do this 15:26 < bridge_> ```cpp 15:26 < bridge_> template<> 15:26 < bridge_> inline ColorHSLA color_cast(const ColorRGBA &rgb) 15:26 < bridge_> { 15:26 < bridge_> float Min = minimum(rgb.r, rgb.g, rgb.b); 15:26 < bridge_> float Max = maximum(rgb.r, rgb.g, rgb.b); 15:26 < bridge_> 15:26 < bridge_> float c = Max - Min; 15:26 < bridge_> float h = RgbToHue(rgb.r, rgb.g, rgb.b); 15:26 < bridge_> float l = 0.5f * (Max + Min); 15:26 < bridge_> float s = (Max != 0.0f && Min != 1.0f) ? (c / (1 - (absolute(2 * l - 1)))) : 0; 15:26 < bridge_> 15:26 < bridge_> return ColorHSLA(h, s, l, rgb.a); 15:26 < bridge_> } 15:26 < bridge_> ``` 15:26 < bridge_> with the result from my function? 15:26 < bridge_> If you need rgba, yes. If you are doing sth web you can also just use hsl iirc 15:26 < bridge_> but the function i passed 15:26 < bridge_> is it hsla? 15:26 < bridge_> Not the correct one 15:26 < bridge_> this 15:26 < bridge_> the 9 is a 0 its a typo 15:26 < bridge_> Yeah this looks fine 15:26 < bridge_> so thats hsla 15:26 < bridge_> ok 15:27 < bridge_> Yep, normalized hsla too 15:31 < bridge_> ah i forgot. youre right 15:50 < bridge_> @jupeyy_keks Do you have some pointers where the bug in my font render overhaul could located? I can also share the code but it's like 2k lines diff already. :pepeW: 15:50 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1134845357986160761/screenshot_2023-07-29_15-48-25.png 15:50 < bridge_> (open in fullscreen) 16:38 < ChillerDragon> !ping 16:38 < chillerbot> pong 16:38 < bridge_> Command not found! 16:41 < bridge_> ahah fr 💀 16:43 < ChillerDragon> @jupeyy_keks thanks for your consultation! I made my r/place very webscale keeping db inserts but also having seperate blazingly web scale bitmap and array cache 16:43 < bridge_> yes 16:45 < bridge_> What is your bug? 16:45 < bridge_> Looks at the screenshot in fullscreen, the text is blurry 16:46 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1134859406253772800/screenshot_2023-07-29_16-45-51.png 16:46 < bridge_> Ingame even more 16:46 < bridge_> I guess it has something to do with the internal screen resolution? 16:47 < bridge_> It's either while u can create text container. Or while u render the text.. or your font size calculation is wrong 16:47 < bridge_> Guess u could print these stuff in current vs current master 16:48 < bridge_> With render doc you can look if the font textures are correct 16:48 < bridge_> the font size seems correct, so I think it has to do with GetScreen returning different values at different points 17:30 < bridge_> Ok, I got it, I used the wrong font size when looking up the glyph from the atlas 17:32 < bridge_> Prepare to review 2000 lines :justatest: 17:34 < bridge_> Is it possible to prevent the flashing text when clearing the font atlas due to changing the language? 17:35 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1134871705576296519/DDNet_2023.07.29_-_17.31.33.01-1.mp4 17:35 < bridge_> Atlas needs to be cleared for CJK languages 17:36 < bridge_> isnt this rly niche thing 17:37 < bridge_> ppl dont rly change langs 17:39 < bridge_> ye, but if it's easily possible I'd do it anyway 17:40 < bridge_> Hm, maybe just recycle the old frame until the atlas is regenerated? 17:41 < bridge_> hmm, I see, maybe the problem is just that we clear the atlas in the middle of a frame 17:53 < bridge_> Nice, it works perfectly when the actual language change is delayed until the next client update 17:55 < bridge_> so is robyt completely revamping the text rendering engine? 17:55 < bridge_> Should change nothing about how it actually looks except for CJK users 17:56 < bridge_> I think some don't like how text looks on 0.7 17:56 < bridge_> Just adds support for selecting font family based on the language 18:07 < bridge_> i hate 0.7 text 18:16 < bridge_> You also hate everything else about 0.7 so that's not very surprising 😄 18:18 < ChillerDragon> 0.7 pog 18:20 < bridge_> do u rly like 0.7 text 18:23 < bridge_> Not particularly 😄 18:34 < bridge_> ddnet.org is down? 18:34 < bridge_> nope side is up and running 18:34 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1134886684350226482/image.png 18:35 < bridge_> https://www.ddnet.org 18:36 < bridge_> works now :Shrug: 18:38 < bridge_> does anyone know how long it takes that a support ticket will be answered? 18:40 < bridge_> Idk, shouldn't be too long ig. 18:40 < bridge_> It's written that they don't offer tecnical support tho (just saw your question) 18:40 < bridge_> Oooh damn 18:40 < bridge_> Thanks for the info tho :/ 18:41 < bridge_> Someone else might help you, but might take a while ^^' 19:42 < bridge_> dude 19:43 < bridge_> I just realized, TeeworldsCN got a 10 year anniversary this month 19:43 < bridge_> Wow it was released directly after ddnet? 19:43 < bridge_> Pros 19:44 < bridge_> How do you release a community 19:44 < bridge_> Dunno, host a website? 19:44 < bridge_> Also i think we started hosted ddnet servers in 2014 or 2015 19:44 < bridge_> Start a chat 19:44 < bridge_> Ye the chat what started July 4th 2013 19:45 < bridge_> So even before ddnet 19:45 < bridge_> Ye the chat was started July 4th 2013 19:45 < bridge_> Ddnets first finish 19:46 < bridge_> Oh wait that means I am already an adult when i started it 19:46 < bridge_> Well almost 19:46 < bridge_> Old 19:46 < bridge_> I'm 27 rn and my birthday is in November 19:47 < bridge_> I still remember when i go to the police station to register teeworlds.cn 19:47 < bridge_> When I'm 17 19:47 < bridge_> :justatest: 19:47 < bridge_> Police Station lmao 19:47 < bridge_> Ye, you have to do that in china 19:48 < bridge_> Weird af xD 19:48 < bridge_> I think the police are also weirded out by a kid registering a website 19:49 < bridge_> I thought they really wanted to be rude but don't know how against a 17yo 19:50 < bridge_> @robyt3 Do we really need this overhead in translation files? 19:50 < bridge_> ``` 19:50 < bridge_> ##### authors ##### 19:50 < bridge_> #originally created by: 19:50 < bridge_> # Dominik Geyer 19:50 < bridge_> #modified by: 19:50 < bridge_> # Fujnky 2010-06-03 11:30:05 19:50 < bridge_> # Fujnky 2010-06-03 17:41:45 19:50 < bridge_> # Fujnky 2010-06-05 23:36:52 19:50 < bridge_> # Fujnky 2010-06-07 16:17:40 19:50 < bridge_> # Fujnky 2010-06-11 09:50:47 19:50 < bridge_> # Sworddragon 2010-11-21 14:25:00 19:50 < bridge_> # Fujnky 2011-01-02 19:49:22 19:50 < bridge_> # heinrich5991 2011-01-23 17:53:42 19:50 < bridge_> # Sworddragon 2011-02-09 12:54:50 19:50 < bridge_> # heinrich5991 2011-04-03 23:46:51 19:50 < bridge_> # ghost91 2011-04-04 20:47:01 19:50 < bridge_> # andi103 2011-05-02 19:12:27 19:50 < bridge_> # andi103 2011-05-03 23:25:20 19:50 < bridge_> # heinrich5991 2011-07-02 09:10:21 19:50 < bridge_> # Yared Hufkens 2012-02-03 19:57:59 19:50 < bridge_> # andi103 2012-07-14 11:31:11 19:51 < bridge_> # timakro 2014-06-30 18:26:59 19:51 < bridge_> # deen 2020-06-26 18:32:00 19:51 < bridge_> # bluesky 2022-07-05 21:00:00 19:51 < bridge_> ##### /authors ##### 19:51 < bridge_> 19:51 < bridge_> ##### translated strings ##### 19:51 < bridge_> ``` 19:51 < bridge_> I wrote a script that will reorder the translations alphabetical and i would love to remove this while doing it.. i mean we have git nowadays, why should we keep this in the files? 19:51 < bridge_> Hmm, maybe the duplicates could be removed at some point, I don't see a need to list multiple edits, but an author list is okay I'd say 19:53 < bridge_> Translations are sometimes added by other devs and not by the translators themselves, so git history would only show the author if it was added to the commit message 19:54 < bridge_> Yea but iirc deen always mentions them if they use their translations 19:55 < bridge_> Yea but iirc deen always mentions them if he uses their translations 19:55 < bridge_> Hmm, the header also has a somewhat random format in all languages 19:55 < bridge_> I don't mind either way, I guess we can open a discussion issue 20:03 < bridge_> The script will be nice though, we can probably include it in the check style pipeline 20:04 < bridge_> Ah, i wrote it to manually fix it now once and hopefully new translations will get inserted into the right place 20:05 < bridge_> I dont know how and how much work it would be to write it for the project 20:05 < bridge_> I see. I'm not sure if new translations get inserted at the correct position already be the script 20:05 < bridge_> I see. I'm not sure if new translations get inserted at the correct position already by the script 20:06 < bridge_> We have hundred of translations and those are the only lower case ones. The url is ok but the rest is wrong imo 20:06 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1134909885696442429/image.png 20:07 < bridge_> We have a lot of translations and those are the only lower case ones. The url is ok but the rest is wrong imo 20:07 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1134909885696442429/image.png 20:08 < bridge_> Yes, they should all be upper-case in source code 21:03 < bridge_> Why do I get `-nan is outside the range of representable values of type 'int'` on a text cursor position? Only happens in the CI, not locally on Ubuntu with UBSan both with normal and headless client. https://github.com/Robyt3/ddnet/tree/TextRender-Font-Index-File 21:07 < bridge_> commented on this 21:07 < bridge_> check my answer 21:08 < bridge_> is there a backtrace? what ci? 21:08 < bridge_> https://github.com/Robyt3/ddnet/actions/runs/5701991407/job/15453235883#step:7:35 21:08 < bridge_> Thanks for the input. 21:08 < bridge_> I agree if the attribution would be consistent, but some contributors add themselves, some not and some add themselves 10 times 21:08 < bridge_> Watch for nans then u can find it 21:08 < bridge_> https://github.com/Robyt3/ddnet/actions/runs/5701991407/job/15453235883 21:09 < bridge_> yeah we could reduce repeated names to 1 line with the dates of contributions 22:48 < bridge_> china moment 22:48 < bridge_> (@tsfreddie) 23:06 < bridge_> With this script you can sort the translations in alphabetical order. Could it be used in the pipeline? Or just have it as a script in the /scripts folder? 23:06 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1134955181654691960/reorder_translation_file.py 23:11 < bridge_> To run it in the pipeline it must be able to not modify anything 23:12 < bridge_> So it needs an option `--dry-run` where it will only output if something needs changes but not change anything 23:12 < bridge_> Ah i see 23:14 < bridge_> It should go through all languages automatically yes? Since atm i have to tell it what language file i want to check 23:14 < bridge_> yeah 23:18 < bridge_> The existing `scripts/languages/update_all.py` should also be checked/updated, so new translations are also added at the correct position