01:22 < bridge> what about hall effects in general? 01:35 < bridge> idk i think its easier just to say the snap tap / null stuff isn't allowed rather than define smth that includes every single gaming tech innovation except snap tap 01:59 < bridge> i knew it 01:59 < bridge> i knew the nameplate just looked uglier somehow 02:32 < bridge> I know a lot of chinese players use automated input to edge spikes 02:32 < bridge> and also for pf 3fly 07:11 < bridge> https://lib.rs/crates/fortraith 08:58 < bridge> TIL 08:58 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1352189572678815744/image-52.png?ex=67dd1c2c&is=67dbcaac&hm=e8acdc3227d0bab66ea37d8d079d03a2986fb8dcc201b3f8d552446d01a7af2d& 10:57 < bridge> https://tenor.com/view/wei-wuxian-happy-xiao-zhan-the-untamed-smiling-gif-11003325990119797142 11:57 < bridge> xd? 12:06 < bridge> melon loves asian men 12:17 < bridge> can someone plz make the checks rerun and merge 12:17 < bridge> <3 12:26 < bridge> https://youtu.be/A7vZ9XCMxnY 12:26 < bridge> Anyone know what client this was? 12:27 < bridge> good song 12:27 < bridge> "ja das ist der Client von sushi tee, weil man damit auch race maps mappen kan ^^" 12:28 < bridge> Where is this xd 12:29 < bridge> In the comment section 12:29 < bridge> Iht 12:29 < bridge> Oh 12:29 < bridge> Back when replies in youtube were just under each other xd 13:03 < bridge> same 13:07 < bridge> Rebase on master to rerun 13:09 < bridge> how fun it is to learn that run guy 25 used to be even worse 13:35 < bridge> is he cheating or is that a crazy bind 13:35 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1352259154659512380/To_the_moon_2025-03-20_12-28-18a.mp4?ex=67dd5cfa&is=67dc0b7a&hm=a32738d7376a7358e314ce8ea32bb080b072757a19b59bc8d5d6b2994c84456f& 13:39 < bridge> u can do the same with copy moves bind 13:39 < bridge> but this guy is using nofis client so its bannable anyway 13:45 < bridge> I was going to say that it's possible using a dummy jump bind but then I noticed that the tees are looking different directions 13:45 < bridge> i didnt even notice that 13:45 < bridge> true 14:07 < bridge> hey my map 14:10 < bridge> mhm 14:10 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1352267956868087870/image.png?ex=67dd652c&is=67dc13ac&hm=5f1f50963a7097b1610aadaeb87007159572e329a4d2b368dc4c6a2806fc666e& 14:16 < bridge> well hes not wrong 14:18 < bridge> @learath2 is making my own filesystem a hard thing? 14:18 < bridge> just thought it might be a interesting project 14:19 < bridge> Making a naive one is not too hard, it is fun 14:19 < bridge> maybe just implement ext4 myself 14:19 < bridge> how would i even go on testing my own fs 14:19 < bridge> Making a well performing one is very hard. Lots of research and stuff needed 14:19 < bridge> yeah 14:20 < bridge> maybe not that good of a side project 14:20 < bridge> any ideas? 14:20 < bridge> something not compiler related 14:20 < bridge> xd 14:20 < bridge> sometimes i need a side project to break from stuff i do always 14:20 < bridge> Hm, depends on how you make it, idk if the linux kernel allows rust fs now, but maybe you can build it in a way where you can just load it in userspace and run a testing suite on it 14:21 < bridge> i wish rust os-dev blog was updated 14:21 < bridge> so i can rebirth ryOS 14:21 < bridge> why i only have crazy ideas 14:22 < bridge> Is there a specific skill you want to work on? If not maybe something ddnet related? 14:22 < bridge> my problem with ddnet is idk what to do idk how robyt finds million stuff to do 14:23 < bridge> and well if im at work i cant boot up a game u know hehe 14:23 < bridge> real 14:23 < bridge> i ran out of ideas too rn 14:24 < bridge> https://oeis.org/A068994 14:25 < bridge> Powers of 2 with all even digits. 14:25 < bridge> 2 14:25 < bridge> 2, 4, 8, 64, 2048 14:25 < bridge> finite series? xd 14:26 < bridge> the only thing ryozuki has done that isnt glazing a programming languagr 14:27 < bridge> Well it's just bits on a block device 14:27 < bridge> and if you skip the part where you deal with actual devices it's just bits in some sort of storage 14:27 < bridge> I guess that's an issue, hm. Have you considered learning another language? Zig, Ada, Haskell all are worth looking at IMO 14:27 < bridge> i also did telegun, the ping in hud, the /spec outline tee, and fixed some segfaults :p 14:27 < bridge> and teesmash! 14:27 < bridge> and the ddnet network character in the protocol! 14:28 < bridge> thats like saying life is just breathing 14:29 < bridge> I'm saying that other than learning how to deal with the operating system part of it, you're just making a tree structure that can hold arbitrary data 14:29 < bridge> nice idea, zig.. idk im not fond if the author ideas, like no unused variables sounds like pain 14:29 < bridge> wait i thought that was noby 14:29 < bridge> Learning the operating system part might be interesting but that's just reading documentation 14:29 < bridge> no lol, teesmash is made by me and timakro 14:30 < bridge> ig 14:30 < bridge> https://www.teeworlds.com/forum/viewtopic.php?id=11878 14:31 < bridge> 2016 14:31 < bridge> so while it can be a cool project it's not really that different from other work with high performance data structures 14:31 < bridge> the kid me 14:31 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1352273402320392245/126996.png?ex=67dd6a3f&is=67dc18bf&hm=7e93873830d63799db8f2880ac36af025d27b4c35c403c976c77fbfbe59149e2& 14:31 < bridge> i added ryo to a random tee pic 14:31 < bridge> and thats it 14:31 < bridge> ez editing 14:32 < bridge> i was gonna say maybe make my own allocator 14:33 < bridge> but thats also research 14:33 < bridge> life is not daijoubu 14:33 < bridge> Is my existence sad? Like, most stuff with computers no longer feels magical to me... Compilers aren't witchcraft, neither are 3D renderers, or databases... 14:33 < bridge> i wouldnt learn any of those, i would try some more niche ones, have u see https://www.red-lang.org/ 14:34 < bridge> https://www.ponylang.io/ 14:34 < bridge> https://www.roc-lang.org/ 14:34 < bridge> https://inko-lang.org/ 14:34 < bridge> https://www.acton-lang.org/ 14:35 < bridge> I keep looking for more magical things and it gets harder as time passes 14:36 < bridge> i feel you 14:36 < bridge> the only thing that feels magical to me now is serum 2 but it costs 200 bucks 14:36 < bridge> same tbh 14:36 < bridge> this is why my project ideas are like these 14:36 < bridge> and not some web project 14:36 < bridge> i need to find the itch 14:37 < bridge> but its hard 14:37 < bridge> cuz i also have to balance my free time and work 14:37 < bridge> i think i would do lot of cool stuff if i could live off rent 14:37 < bridge> i think i would do lot of cool stuff if i could live off rent or some inherited money kek 14:38 < bridge> I just shitpost 14:38 < bridge> i had lot of fun when i started my own os 14:38 < bridge> but no time 14:39 < bridge> and play genshin 14:39 < bridge> ddnet and osu! too! 14:40 < bridge> https://oeis.org/A329871 @learath2 14:40 < bridge> Number of static n X n placements of water source-blocks in Minecraft. 14:40 < bridge> 4 14:40 < bridge> 1, 2, 10, 55, 754, 18853, 82931, 70143802, 11087020614, 3243227117597, 1772826333285009, 1806938280429412270, 3430002591378184399879, 12137184871791092506807847, 80047171080361800628780500638, 983838070049011459232146327319193 14:40 < bridge> In Minecraft worlds, a source block of water can be reacted with another source block, two blocks away, linearly or diagonally. This reaction creates a third "infinite" source block in the unoccupied intermediate block or blocks, so called because if the intermediate water source is destroyed or picked up by a player using a bucket, it will immediately regenerate itself. 14:40 < bridge> A placement of water at several positions in an n X n board is said to be static if no infinite water sources are created that are not already present. In particular, the total quantity of water in the system is held constant. 14:41 < bridge> tbh now i can only daydream about me doing things 14:41 < bridge> because doing things is just too much work and nobody will mind it 14:41 < bridge> i am the exact consumer for generative ai but unfortunately im an artist so 14:42 < bridge> https://tenor.com/view/lovyyn-sad-crying-crying-face-anime-cry-gif-23716177 14:42 < bridge> REAL 14:57 < bridge> multimedia is a great rabbit hole 🙂 14:57 < bridge> has the highest percentage of insane people I have ever seen in a community 14:57 < bridge> video compression? oh yeah that's black magic 14:57 < bridge> yeah exactly 14:58 < bridge> I'm still nobo when it comes to DSP in general 14:58 < bridge> I just know some basic sampling theory stuff from doing graphics 15:07 < bridge> Learning something like these would be truly just for fun, but might be nice for you since you do work with compilers and languages. Might give some inspiration 15:08 < bridge> It is time for you to learn cpu architecture. Experience some black magic again with 17 stage pipelined speculative execution 15:09 < bridge> :justatest: 15:09 < bridge> Learn D :cat_cracked_hehe: 15:10 < bridge> no, join the dark side of multimedia and acquire cursed knowledge that never lets you watch a youtube video in peace again without seeing compression artifacts everywhere 15:10 < bridge> The first time I watched a proper 1080p encode with good bitrate my life was ruined 15:11 < bridge> me when the quality preset is "perceptually lossless" 15:11 < bridge> I used to download 700MB copies of "1080p" movies, absolute garbage. Now I have to download so much more 15:12 < bridge> It did surprise me how they managed to fit a whole full hd movie into 700M but somehow never occured to me that the answer was insane amounts of lossy compression 15:13 < bridge> streaming sites like youtube did massive damage to the average user's understanding of "video quality" 15:14 < bridge> lots of people think resolution = quality with no extra nuance 15:14 < bridge> Muumilaakson Tarinoita E04 15:14 < bridge> 740MB 15:14 < bridge> 960x720, 24 minutes 15:15 < bridge> I've been using the "Premium 1080p" which is just 1080p with good bitrate and it's actually easily better than 1440p youtube encodes of most videos 15:15 < bridge> (to be fair this is the largest episode I saw at a glance, but it was the first 700M video file I could find on my system) 15:17 < bridge> do u use mpv 15:18 < bridge> im a proud nyaa.si user 15:18 < bridge> i read the encoding comments 15:18 < bridge> of course 15:18 < bridge> great entertainment 15:23 < bridge> also enjoy still having to deal with technical debt inherited from the 1910s today 15:24 < bridge> @learath2 have u seen https://github.com/ashymad/fortraith @jupeyy_keks 15:24 < bridge> Rust's trait system is Turing complete. This crate uses the principles from trait-eval to implement necessary traits for forth evaluation and provides a forth! macro that transpiles forth's syntax to trait expressions. 15:24 < bridge> ```rust 15:24 < bridge> forth!( 15:24 < bridge> : factorial (n -- n) 1 swap fact0 ; 15:24 < bridge> : fact0 (n n -- n) dup 1 = if drop else dup rot * swap pred fact0 then ; 15:24 < bridge> 5 factorial . 15:24 < bridge> ); 15:24 < bridge> ``` 15:24 < bridge> this macro makes this 15:25 < bridge> ok i cant send 15:25 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1352286872222830602/image.png?ex=67dd76ca&is=67dc254a&hm=71897f0fff7b82e990f7885521a3a483737dafc97ed47259b0d050c54055524f& 15:27 < bridge> But can it run doom 15:31 < bridge> Lol, I knew it was turing complete but hadn't seen anything made with it 15:36 < bridge> is there not one above 2048? 15:37 < bridge> nope 15:37 < bridge> see the comments 15:37 < bridge> Are there any more terms in this sequence? 15:37 < bridge> Evidence that the sequence may be finite, from Rick L. Shepherd, Jun 23 2002: 15:37 < bridge> 1) The sequence of last two digits of 2^n, A000855 of period 20, makes clear that 2^n > 4 must have n == 3, 6, 10, 11, or 19 (mod 20) for 2^n to be a member of this sequence. Otherwise, either the tens digit (in 10 cases), as seen directly, or the hundreds digit, in the 5 cases receiving a carry from the previous power's tens digit >= 5, must be odd. 15:37 < bridge> 2) No additional term has been found for n up to 50000. 15:37 < bridge> 3) Furthermore, again for each n up to 50000, examining 2^n's digits leftward from the rightmost but only until an odd digit was found, it was only once necessary to search even to the 18th digit. This occurred for 2^12106 whose last digits are ...3833483966860466862424064. Note that 2^12106 has 3645 digits. (The clear runner-up, 2^34966, a 10526-digit number, required searching only to the 15th digit. Exponents for which only the 14th digit was re 15:37 < bridge> No additional terms up to 2^100000. - Harvey P. Dale, Dec 25 2012 15:37 < bridge> No additional terms up to 2^(10^10). - Michael S. Branicky, Apr 16 2023 15:37 < bridge> i see 15:39 < bridge> @learath2 maybe i learn prolog 15:41 < bridge> or maybe its finally time to learn lisp 15:42 < bridge> > Programming in Lisp is explicitly about designing languages to solve problems. Programming well in Lisp is about designing such languages which are, at least, not terrible. 15:42 < bridge> > 15:42 < bridge> > The way you learn how to design languages which are not terrible is by understanding how languages that humans use (in this case programming languages) work. To program well in Lisp (any Lisp) you need to become someone who understands languages – a linguist. You become a linguist by learning enough about as many languages as you can to understand how they are structured and how they express things and relate to other languages. You don't need 15:43 < bridge> german leaking 15:43 < bridge> Well nothing is magic 15:43 < bridge> . 15:43 < bridge> But does it matter? 15:44 < bridge> There always is something interesting to do i think 15:44 < bridge> if you study the man-made horrors they may no longer be beyond your comprehension 15:50 < bridge> https://github.com/roswell/roswell 16:04 < bridge> maybe if i learn lisp its a good time to try more emacs 16:06 < bridge> i use neovim btw 16:07 < bridge> A bizarre choice. Why? 16:08 < bridge> based 16:08 < bridge> Have you tried OCaml? Or maybe something that runs on the JVM like Scala? 16:16 < bridge> i tried ocaml, it is a rly nice lang! but i hate its tooling 16:16 < bridge> im looking at common lisp 16:24 < bridge> my head hurts 16:24 < bridge> how do ppl read lisp 16:26 < bridge> Your brain can adapt to anything! Soon you'll be matching parentheses like this (((())(()()))()) in no time 16:27 < bridge> most of the time spent writing that message was making sure the parentheses were balanced lol 16:27 < bridge> xd 16:27 < bridge> since using rust 16:27 < bridge> its been hard to find another lang 16:27 < bridge> that brings value to me 16:28 < bridge> i alreayd know js and java too cuz minecraft and web 16:28 < bridge> and c# cuz some modding here and there 16:29 < bridge> I like writing glsl 16:29 < bridge> I have a project that's probably like half glsl if not more 16:35 < bridge> how did u learn it 16:35 < bridge> i want to get into graphics 16:35 < bridge> not sure 16:35 < bridge> where to even start 16:38 < bridge> step 1: know C 16:38 < bridge> step 2: read an opengl tutorial 16:38 < bridge> step 3: read glsl docs 16:38 < bridge> oh no c 16:38 < bridge> it's not hard like C is 16:38 < bridge> can't have troubles with memory management when you can't even allocate memory dynamically 16:39 < bridge> i can 16:39 < bridge> i am fully capable of segfaulting a rust program 16:39 < bridge> in fully safe rust 16:40 < bridge> Well best case you can manage to crash your graphics drivers and then laugh at Nvidia or AMD or whoever your vendor is 16:41 < bridge> Segfaulting when trying to read from some random place? More like getting fun glitch effects as you read garbage data and render it to the screen 16:45 < bridge> we gotta make ddnet shader supportivr 16:50 < bridge> I mean, the C knowledge you need to have is just like basic stuff 16:50 < bridge> in shader code you barely even use structs or arrays, it's just lots of pretty basic vector math 16:51 < bridge> all the nice things like vec2, vec3, vec4 are native types to the language 16:57 < bridge> @learath2 have u heard of aurora4x 16:59 < bridge> ```glsl 16:59 < bridge> // Fun stylized tonemap from my USC skinning project 16:59 < bridge> vec3 tonemap(vec3 c) { 16:59 < bridge> const mat3 exposure = mat3( 16:59 < bridge> -1.0, 0.35, 0.1, 16:59 < bridge> 0.2, -1.0, 0.25, 16:59 < bridge> 0.15, 0.3, -1.0 16:59 < bridge> ); 16:59 < bridge> vec3 overflow = max(c - 1.0, 0.0); 16:59 < bridge> return c + exposure * overflow; 17:00 < bridge> } 17:00 < bridge> ``` 17:01 < bridge> now that I think of it the -1.0 on the diagonal doesn't really do much 17:02 < bridge> I am thinking about coloring switch doors individually by ID. Would you prefer 1 close IDs to have a similar color or 2 close IDs to have a distant color? My idea is to use HSV for both and to go over a the color circle. 17:02 < bridge> Pros & Cons for 1: 17:02 < bridge> - pros, it's easy and intuitive for a mapper to find a color 17:02 < bridge> - con: existing map most certainly all have the similar door colors which are hard to distinguish by color (which is the point of this feature) 17:02 < bridge> Pros & Cons for 2: 17:02 < bridge> - pros: exiting maps would have easily distinguishable doors (I would use the golden angle in a color circle for example) 17:02 < bridge> - con: it will be hard to find a color by ID this way 17:04 < bridge> Using the same method as team colours would make sense (nearby IDs get distant colours) 17:04 < bridge> so you are in favor of case 2 17:04 < bridge> yeah 17:06 < bridge> to explain the con for case 2 further: It would be hard for a mapper to find a certain door color 17:07 < bridge> ```glsl 17:07 < bridge> // Fun stylized tonemap from my USC skinning project 17:07 < bridge> vec3 tonemap(vec3 c) { 17:07 < bridge> const mat3 exposure = mat3( 17:07 < bridge> -1.0, 0.35, 0.1, 17:07 < bridge> 0.2, -1.0, 0.25, 17:07 < bridge> 0.15, 0.3, -1.0 17:07 < bridge> ); 17:07 < bridge> vec3 overflow = max(c - 1.0, 0.0); 17:07 < bridge> return c + exposure * overflow; 17:07 < bridge> } 17:07 < bridge> ``` 17:07 < bridge> and oh the difference that this makes, after adding tonemapping I just started overexposing everything because it looked nice lol 17:09 < bridge> technically I could do both with inner and outer door color 🤔 would be ugly tho 17:11 < bridge> I _guess_ I could also add a color field for the switch in the editor, which sets the ID 17:12 < bridge> 1 if you trust mappers, 2 if you dont 17:12 < bridge> what abt have 8 total door colors or door textures (maybe somehow change how the outline looks too or smth)? 17:13 < bridge> nouis 17:13 < bridge> no need to have the entire color wheel cause there will never be 200 doors in a single part 17:13 < bridge> aw man 17:13 < bridge> i just finished placing 200 doors 17:13 < bridge> :fury: 17:13 < bridge> technically you only need 4 colors by that mathematical country theorem 17:14 < bridge> this is also a nice idea @louis.place , 8 colors would be nicer ofc 17:15 < bridge> for whom is of knowledge 17:16 < bridge> yeah it's a compromise of both, and you can set doors of the same color if you want 👍 17:17 < bridge> actually 2nd way is better cause id imagine most older maps map switches in order 17:17 < bridge> yes, I can still cycle through the 8 colors 17:18 < bridge> so I have 8 colors and 32 doors per color, maybe I'll do 16 colors instead 🤔 17:19 < bridge> @robyt3 is there any ez code line change to make normal input be touch input? 17:19 < bridge> Or any SDL flag 17:20 < bridge> i’m not robyte. highly unlikely 17:20 < bridge> unless u mean within ddnet 17:21 < bridge> :kek: 17:21 < bridge> Did it ping you? 17:22 < bridge> Definitely not 17:22 < bridge> I am confused xd 17:22 < bridge> Ok i will fix 17:22 < bridge> i’m not robyte but i think it’s highly unlikely 17:22 < bridge> he did write the touch screen code 17:23 < bridge> on first read i thought u were looking for something below ddnet that’d do that and I am doubtful of that 17:23 < bridge> but i have no idea what he put in the touch screen code & if you have a way to emulate it 17:25 < bridge> SDL_HINT_MOUSE_TOUCH_EVENTS 17:25 < bridge> epyc gemer moment 17:27 < bridge> skystrife: 17:27 < bridge> It works, but my cursor stays hidden xd 17:31 < bridge> so we're adding more door colors? 17:31 < bridge> tbh i dont know why we should 17:31 < bridge> theres already colored lasers for different attributes, itd get a little confusing 17:33 < bridge> Not sure if changing the value of `SDL_MOUSE_TOUCH_EVENTS` and commenting out the existing mouse handling works. Otherwise you'd need to manually translate mouse to touch in some hacky way. I tried to look for a touch simulator on desktop but Windows has effectively abandoned touch support since Windows 8.1 17:34 < bridge> https://github.com/Jupeyy/ddnet/commit/8a984e1c4b8d7bfdd37f97f6f572ba52cc5f7b74 17:34 < bridge> Got it working like this 17:43 < bridge> what are you talking about? 17:43 < bridge> laser gun 17:43 < bridge> shotgun 17:43 < bridge> doors 17:43 < bridge> freeze doors 17:44 < bridge> laser gun and shotgun are visually very distinct, due to the fact, that they fade out 17:46 < bridge> I guess the argument still holds for freeze doors. However the dark puple, which is the default color, is not one of the door colors I have in mind, since it's darker. I get your point, maybe it's just a bad choice to use the laser sprite everywhere 17:49 < bridge> oh also there is the dragger, which has currently the same color of the door anyway, so we already have a collision there 🤷‍♂️ 17:51 < bridge> can we just have door unhookable/hookable tiles 😅 17:54 < bridge> TIL double torus 17:54 < bridge> https://en.wikipedia.org/wiki/Genus_g_surface 17:54 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1352324477886791760/137px-Double_torus_illustration.png?ex=67dd99d0&is=67dc4850&hm=b7e0b627ccdb08f9df6b493f3f837546ef3820385cdb09bb3723bae12e9078b3& 17:55 < bridge> shrek 8 18:19 < bridge> just a refactoring and 5 lines of code :justatest: 18:19 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1352330676472643674/screenshot_2025-03-20_18-18-20.png?ex=67dd9f96&is=67dc4e16&hm=ef8266485d88c53057ce429d438130e27eb37741f8e62a3ee08f179ba3e763a4& 18:19 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1352330677101662309/screenshot_2025-03-20_18-18-39.png?ex=67dd9f96&is=67dc4e16&hm=a5262695b0e2b6a3631113852c3f1c4063443d6d6c885fc929bb381eb7988e10& 18:21 < bridge> does anybody know a map with switches and doors? 18:22 < bridge> theres the 8 bit adder 18:22 < bridge> this doesn't have a switch which you can see 18:24 < bridge> . 18:37 < bridge> I am actually misremembering this, I remember switches also having laser buttons on them 18:37 < bridge> but I guess this is not default ddnet 18:42 < bridge> @hectavoxel 18:42 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1352336570031800374/screenshot_2025-03-20_18-42-24.png?ex=67dda513&is=67dc5393&hm=98e11834bc1a853e287ce5b27676eda900e3b380c87fb6c78e4be998967cc3db& 18:42 < bridge> how does this work? the color is configurable in the client, is the idea that the user just gets to choose 32 colors in that little menu? xd 18:43 < bridge> the idea is to take the client feature and move it into the trashbin. (Maybe making it optional would be less radical) 18:43 < bridge> :-( 18:44 < bridge> i think map-wide color palettes for doors is a good idea not in entities 18:44 < bridge> but that has to be a property of the map 18:44 < bridge> i think map-wide color palettes for doors/freeze bullets/etc is a good idea not in entities 18:44 < bridge> i think map-wide color palettes for doors/freeze bullets/etc is a good idea, for when the player is not in entities 18:48 < bridge> currently this feature is only "client side", a mapper can just select the door ID for it's color 18:49 < bridge> my idea was to also color the button in the door color, but we don't have buttons 18:50 < bridge> buttons like these, stateful ones, but I guess we only have a door on and door off tile 18:50 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1352338612053606400/screenshot_2025-03-20_18-50-11.png?ex=67dda6fa&is=67dc557a&hm=1a19a666da486ef270f4edd962a105a0382ef5a836aae95f24e65a246d2a7f39& 18:52 < bridge> I wonder if any of you would be in favor of adding entity indicators there :/ 19:20 < bridge> fuck, didn't want to PR yet :justatest: 19:21 < bridge> how do people accidentally PR .-. 19:21 < bridge> how do people accidentally PR ._. 19:21 < bridge> I hate, that in my own fork the merge request feature still tries to PR into original 19:21 < bridge> so bad design github 19:33 < bridge> well it prompts you but i’ve also definitely done that before 19:33 < bridge> gh pr create -f 19:33 < bridge> win 19:33 < bridge> it prompts you, but I skip over it too fast, because OFC I want to cross PR now 19:33 < bridge> yea 19:34 < bridge> it prompts you with debatably better wording on the cli imo 19:34 < bridge> wait until I show you a triple torus 19:34 < bridge> I am sure github does this deliberately ... for some reason 19:34 < bridge> no 19:48 < bridge> what if we instead of using a laser-dot-sprite, we use a rectangle for a door corner D= 19:52 < bridge> I mean would be great for accessability, but yeah you must hate me enough 19:53 < bridge> @essigautomat are your speeders on master yet? 19:56 < bridge> yes 20:06 < bridge> giving a review to yourselves 👍 20:06 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1352357603925295255/image.png?ex=67ddb8aa&is=67dc672a&hm=8ef130700369397e165f857a8a1c0b748ae6ec9e9bbe133059d4131e10f5fc48& 20:06 < bridge> always 20:07 < bridge> when you wrote a test in school, I hope you double checked as well if you had time left 20:07 < bridge> gonna give a robyt3 teir review on myself next pr 20:07 < bridge> yea and i fixed the mistakes 20:08 < bridge> i didnt write "ill fix it later" and hand out to the teacher 20:08 < bridge> 😂 20:10 < bridge> fuck i accidentally turned in my homework early 20:36 < bridge> would be cool 20:36 < bridge> slow rotating rect? 20:37 < bridge> do you think this would look better? I was just thinking of a normal rectangle, like a brick side view 20:53 < bridge> squares represent solidity and stability 20:53 < bridge> mmm design *mumble mumble* 20:53 < bridge> ^this guy _mumbles_ (and designs) 21:27 < bridge> @hectavoxel do you have the demo from #6138? 21:27 < bridge> https://github.com/ddnet/ddnet/issues/6138 21:45 < bridge> mapper should have the right to design it as they wish, although it would be better to have on/off tiles available to be more customizable 21:48 < bridge> `tune grenade_lifetime 100; tune grenade_speed 1`, start record, fire grenades, stop record. Result: grenades will move with normal speed in demo and phase through walls 21:51 < bridge> do you have ideas how to fix it? :justatest: 21:54 < bridge> No, but according to my previous debugging 21:54 < bridge> > I did some testing and it seems that the tunings gets stored in the demo and are also unpacked correctly by the client. 21:54 < bridge> > But then the client doesn't use those tunings at all, as it tries to use the tunings from tune zones instead. 21:54 < bridge> Maybe you could investigate why tunings from tune zones are used instead of the global tunes. Maybe tune zone 0 and the global tuning are somehow different for demo playback. 21:54 < bridge> Yo, is esc not bindable??? 21:54 < bridge> i made it work in a stupid way 21:54 < bridge> No, but it appears in the list of keys which is a minor bug 21:55 < bridge> i mean i can't bind a key to have the same behavious as esc 21:55 < bridge> No, but it appears in the list of keys in the console which is a minor bug 21:55 < bridge> are you STILL trying to remap esc to capslock?XD 21:55 < bridge> WELL 21:55 < bridge> it works for neovim 21:56 < bridge> but since i bound F13 on capslock it doesn't work anywhere else 21:56 < bridge> I just set it system wide 21:57 < bridge> @teero777 try `inp_translated_keys 1` 21:57 < bridge> but i can't bind capslock directly to esc since i have nvim as a shell and if i use vim in an ssh session i can't press esc else i will exit the top level terminal 21:58 < bridge> so i have capslock bound to F13 and i use F13 to replace my esc so i can use the actual esc in the ssh session vim 21:58 < bridge> @robyt3 it will work if you add 21:58 < bridge> ```cpp 21:58 < bridge> else 21:58 < bridge> { 21:58 < bridge> if(m_GameInfo.m_PredictDDRaceTiles && m_aReceivedTuning[g_Config.m_ClDummy]) 21:58 < bridge> { 21:58 < bridge> vec2 LocalCharPos = vec2(m_Snap.m_pLocalCharacter->m_X, m_Snap.m_pLocalCharacter->m_Y); 21:58 < bridge> int TuneZone = 21:58 < bridge> m_Snap.m_aCharacters[m_Snap.m_LocalClientId].m_HasExtendedData && 21:59 < bridge> m_Snap.m_aCharacters[m_Snap.m_LocalClientId].m_ExtendedData.m_TuneZoneOverride != -1 ? 21:59 < bridge> m_Snap.m_aCharacters[m_Snap.m_LocalClientId].m_ExtendedData.m_TuneZoneOverride : 21:59 < bridge> Collision()->IsTune(Collision()->GetMapIndex(LocalCharPos)); 21:59 < bridge> 21:59 < bridge> TuningList()[TuneZone] = m_aTuning[g_Config.m_ClDummy]; 21:59 < bridge> m_aReceivedTuning[g_Config.m_ClDummy] = false; 21:59 < bridge> } 21:59 < bridge> } 21:59 < bridge> ``` 21:59 < bridge> after https://github.com/ddnet/ddnet/blob/bd1a93b2c6989147ed07ada1a165fb4c3d0c1224/src/game/client/gameclient.cpp#L2261 21:59 < bridge> (this code is yoinked from `UpdatePrediction` method) 21:59 < bridge> this doesnt do anything xdd 22:00 < bridge> Maybe it shouldn't try to use predicted positions while in demo playback though 22:00 < bridge> then you can rebind keys to esc on x11 22:00 < bridge> YES I KNOW 22:00 < bridge> please read 22:00 < bridge> `setxkbmap us -option caps:escape -variant de_se_fi` 22:00 < bridge> no 22:01 < bridge> bruder 22:01 < bridge> warte 22:08 < bridge> :/ my cpu is so fast that out copying from gpu -> cpu is now the bottleneck during encoding 22:08 < bridge> 22:08 < bridge> why is RAM so slow xd 22:09 < bridge> I cannot even envision how it could be improved, sounds insanely hard 22:09 < bridge> It would need to copy the framebuffer content async in multiple threads across multiple frames 22:10 < bridge> Time for vulkan h264 encoder 22:10 < bridge> :deen_star: 22:12 < bridge> sksksksk skia renderer!! 22:12 < bridge> \\:¿ 22:37 < bridge> applies suggestion - pipeline has failures 😦 22:43 < bridge> Only works together with the other suggestion because you are passing a `const` variable to the function expecting a non-const reference 22:43 < bridge> I understand why this is ^^ 22:59 < bridge> does `m_aTuning[g_Config.m_ClDummy]` have the same value as `m_aTuningList[0]`? 22:59 < bridge> @robyt3 Pass the arguments by value instead of by reference, because they are small, if you want a separate function: 22:59 < bridge> Why is this better? Just curious, do I miss something? 😮 22:59 < bridge> @robyt3 `Pass the arguments by value instead of by reference, because they are small, if you want a separate function:` 22:59 < bridge> Why is this better? Just curious, do I miss something? 😮 23:00 < bridge> As a rule of thumb, primitive and small objects should be passed by value instead of reference or pointer for performance. Also, whenever possible const references/pointers should be used instead of non-const to make it more obvious that the variable is not being modified. 23:01 < bridge> okay, I just don't know what makes a an object "small" 23:01 < bridge> vec2 and ColorRGBA are small apparently 23:02 < bridge> I normally only do copy by value for basic types, like int and float 23:02 < bridge> smaller than a pointer? 23:02 < bridge> I'd consider everything <= 16 bytes small, maybe also <= 32. 23:02 < bridge> isn't vec2 two ints? 23:02 < bridge> Pointers and references also have additional overhead because you need to fetch the value instead of having it in a register 23:03 < bridge> yeah, I'd still consider `vec2` and `ColorRGBA` small because the are 16 and 32 bytes 23:03 < bridge> yeah, I'd still consider `vec2` and `ColorRGBA` small because the are 8 and 16 bytes 23:03 < bridge> yeah, I'd still consider `vec2` and `ColorRGBA` small because they are 8 and 16 bytes 23:04 < bridge> we also pass `ColorRGBA` by reference and pointer in various places though 23:04 < bridge> the compiler should probably figure it out either way if it passed by value or const-reference 23:04 < bridge> the compiler should probably figure it out either way if it's passed by value or const-reference 23:07 < bridge> it's also possible to fix tunings by replacing https://github.com/ddnet/ddnet/blob/bd1a93b2c6989147ed07ada1a165fb4c3d0c1224/src/game/client/components/items.cpp#L33 to 23:07 < bridge> ```cpp 23:08 < bridge> const CTuningParams *pTuning = nullptr; 23:08 < bridge> if(!pCurrent->m_TuneZone) 23:08 < bridge> pTuning = &GameClient()->m_aTuning[g_Config.m_ClDummy]; 23:08 < bridge> else 23:08 < bridge> pTuning = GameClient()->GetTuning(pCurrent->m_TuneZone); 23:08 < bridge> ``` 23:08 < bridge> but maybe it breaks something in 10 other places :nouis: 23:08 < bridge> hmm, I guess this whole `m_aTuningList` might be wrong and it should be `m_aaTuningList` with an additional dimension of `NUM_DUMMIES` because you could receive different tuning on main and dummy connection :justatest: 23:25 < bridge> no, m_aTuning is what local player has 23:25 < bridge> m_aTuningList[0] is tune zone 0 - global tune 23:25 < bridge> do cpu encoding? 23:26 < bridge> doesnt it save tunes per map? projectiles spawn have tune from their original position so not necessary local player's 23:27 < bridge> true, `tune_zone` shouldn't be usable from outside of map settings 23:28 < bridge> but actually `tune_zone_reset` is not a game command :monkaS: 23:54 < bridge> tune_reset is 👍 23:54 < bridge> nvm both arent