00:01 < bridge> Finally got around reviewing it. Looks really good @learath2 and sorry again for long review time. Had/have too much other stuff going on right now. Currently feeling like starting to do some DDNet stuff again (but cant promise anything 😅). 00:07 < bridge> example c file: https://gitlab.com/zwelf/teehistorian/-/blob/v0.5.1/examples-c/print-extension.c?ref_type=tags 00:07 < bridge> example c file: https://gitlab.com/zwelf/teehistorian/-/blob/v0.5.1/examples-c/print-extension.c?ref_type=tags 00:28 < bridge> ok thats better 00:29 < bridge> dont have teehistorian data to test though so not sure how i would do it 00:30 < bridge> since the header is basic 00:33 < bridge> Yeah, teehistorian crate is probably too low level, teehistorian-replayer is probably the abstraction that would be most useful. If you are looking just for some teehistorian data you can find the the test cases for twgame here: https://gitlab.com/ddnet-rs/twgame/-/tree/master/replayer/res?ref_type=heads 00:33 < bridge> Those are all created using a local server and `tee_historian 1` 00:41 < bridge> idk 01:15 < bridge> i can do anything in c++/python 01:18 < bridge> its c though :greenthing: 01:18 < bridge> and i dont have teehistorian data 01:26 < bridge> as Zwelf pointed out, you find find normal teehistorian data in his repo. if you are that far and need the teehistorians from the servers, you'll need to contact admins 01:26 < bridge> and you can ofc use the c bindings in C++, that shouldn't be an issue 01:36 < bridge> i do this for fun in free time 01:36 < bridge> if i have to ask for data, learn rust or whatever i cba 01:36 < bridge> ill do other pr 01:37 < bridge> hf I guess ^^ 02:27 < bridge> https://steamcommunity.com/sharedfiles/filedetails/?id=2931317347 03:16 < bridge> Secret 07:11 < bridge> yeah simply dont do it 07:11 < bridge> i god 07:12 < bridge> @kebscs is it public where u explained the bug and how to find it etc? 07:12 < bridge> yes 07:12 < bridge> where 07:12 < bridge> oh ur a troll 07:12 < bridge> why? 07:12 < bridge> i not troll 07:12 < bridge> i god 07:13 < bridge> what are you doing? 09:26 < bridge> we don't have a single user, who is missing any achievement 💪 10:36 < bridge> If I create a fastcap server, what gameflags do I need to set? I noticed, that the client has it's own fastcap flag and a vanilla flag, do I need both? Why does the fastcapflag exist? 10:36 < bridge> relating to this client code: https://github.com/ddnet/ddnet/blob/3ad9ae534b86a0295441906374ef58ab3853ba01/src/game/client/gameclient.cpp#L1441 10:47 < bridge> okay, since I based this on ddnet, I don't want to set the vanilla flag. Since it's the lastest version, I need to be careful with all of this flags, I'll need 10:47 < bridge> 10:47 < bridge> For damage: 10:47 < bridge> - GAMEINFOFLAG2_HUD_AMMO 10:47 < bridge> - GAMEINFOFLAG2_HUD_HEALTH_ARMOR 10:47 < bridge> For race/fastcap: 10:47 < bridge> - GAMEINFOFLAG_RACE 10:47 < bridge> - GAMEINFOFLAG_ENTITIES_DDNET (yes, I don't want vanilla entities here, new version) 10:47 < bridge> - GAMEINFOFLAG_PREDICT_DDRACE (s.a.) 10:47 < bridge> - GAMEINFOFLAG_ALLOW__ * yeah why not 10:47 < bridge> - GAMEINFOFLAG_FLAG_STARTS_RACE (only fastcap) 10:47 < bridge> - GAMEINFOFLAG_GAMETYPE_FASTCAP (obviously) 10:47 < bridge> 10:47 < bridge> What does this do? 10:47 < bridge> - GAMEINFOFLAG_DONT_MASK_ENTITIES 10:48 < bridge> - Does GAMEINFOFLAG_PREDICT_DDNET not exist? Is this the same as GAMEINFOFLAG_PREDICT_DDRACE? 10:48 < bridge> - GAMEINFOFLAG_BUG_VANILLA_BOUNCE what is this? why? do I need this? 10:48 < bridge> - GAMEINFOFLAG_ALLOW_HOOK_COLL what is this? 10:48 < bridge> - GAMEINFOFLAG_RACE_RECORD_MESSAGE what's the difference to GAMEINFOFLAG_DDRACE_RECORD_MESSAGE ? 10:51 < bridge> okay, since I based this on ddnet, I don't want to set the vanilla flag. Since it's the lastest version, I need to be careful with all of this flags, I'll need 10:51 < bridge> 10:51 < bridge> For damage: 10:51 < bridge> - GAMEINFOFLAG2_HUD_AMMO 10:51 < bridge> - GAMEINFOFLAG2_HUD_HEALTH_ARMOR 10:51 < bridge> For race/fastcap: 10:51 < bridge> - GAMEINFOFLAG_RACE 10:51 < bridge> - GAMEINFOFLAG_ENTITIES_DDNET (yes, I don't want vanilla entities here, new version) 10:51 < bridge> - GAMEINFOFLAG_PREDICT_DDRACE (s.a.) 10:51 < bridge> - GAMEINFOFLAG_ALLOW__ * yeah why not 10:51 < bridge> - GAMEINFOFLAG_FLAG_STARTS_RACE (only fastcap) 10:51 < bridge> - GAMEINFOFLAG_GAMETYPE_FASTCAP (obviously) 10:51 < bridge> 10:51 < bridge> What does this do? 10:51 < bridge> - GAMEINFOFLAG_DONT_MASK_ENTITIES 10:51 < bridge> - Does GAMEINFOFLAG_PREDICT_DDNET not exist? Is this the same as GAMEINFOFLAG_PREDICT_DDRACE? 10:51 < bridge> - GAMEINFOFLAG_BUG_VANILLA_BOUNCE what is this? why? do I need this? 10:51 < bridge> - GAMEINFOFLAG_ALLOW_HOOK_COLL what is this? 10:51 < bridge> - GAMEINFOFLAG_RACE_RECORD_MESSAGE what's the difference to GAMEINFOFLAG_DDRACE_RECORD_MESSAGE ? 10:51 < bridge> 10:51 < bridge> They are all `git blame` @0xdeen :justatest: 11:44 < ws-client> @milkeeycat i added some bugsis to ma asmr progaming again. U want to debug it? xd 11:44 < ws-client> @Assa GAMEINFOFLAG_ALLOW_HOOK_COLL is to allow hookcoll 11:44 < ws-client> in some modes it is considered a cheat 11:47 < ws-client> @Assa while you are looking at flags i would like to get your input here https://github.com/ddnet/ddnet/issues/8923 11:54 < bridge> what is hookcoll? 11:54 < bridge> is that the hook collision line thing? 11:55 < bridge> ahh okay yeah probably 11:55 < bridge> +showhookcoll the aimline that was added in 2002 11:55 < bridge> Yes 11:55 < bridge> I give you a review in an hour 👍 11:56 < bridge> chillerdragon: do you want to debug assembly spitted out by my compiler backend? xd 12:03 < bridge> No 12:03 < bridge> :c 12:04 < bridge> Xd 12:04 < bridge> :c 12:05 < bridge> one day I'll finish this https://github.com/MilkeeyCat/ddnet-meraki xd 12:59 < ws-client> @milkeeycat i created u epic write up im sure it will be fun! https://github.com/ChillerDragon/teeworlds-asmr/issues/10 13:04 < bridge> wait what this isn't even correct when setting predict DDRACE? 13:04 < ws-client> wat is not correct 13:05 < ws-client> I am pretty satisfied with the current state in ddnet-insta where stoppa and vanilla pickups both are predicted correctly with antiping on and off 13:05 < bridge> for me the prediction doesn't do this with this flag, but I guess I also set prediction flag vanilla, so both flags 13:05 < ws-client> do what 13:05 < ws-client> which flag 13:06 < ws-client> so many options D: 13:06 < bridge> GAMEINFOFLAG_PREDICT_VANILLA | GAMEINFOFLAG_PREDICT_DDRACE 13:06 < ws-client> what are they not doing for you? 13:08 < bridge> I guess I just didn't have a mixed map like this anywhere, so I never ran into this 13:08 < bridge> This 2 flags cancel each other no? 13:08 < ws-client> race usually does not use many ddrace features 13:09 < bridge> ``` 13:09 < bridge> if(g_Config.m_SvHealthAndAmmo) 13:09 < bridge> { 13:09 < bridge> pGameInfoEx->m_Flags &= ~(GAMEINFOFLAG_UNLIMITED_AMMO | GAMEINFOFLAG_GAMETYPE_DDNET | GAMEINFOFLAG_GAMETYPE_DDRACE | GAMEINFOFLAG_PREDICT_DDRACE); 13:09 < bridge> pGameInfoEx->m_Flags |= (GAMEINFOFLAG_GAMETYPE_VANILLA | GAMEINFOFLAG_PREDICT_VANILLA); 13:09 < bridge> pGameInfoEx->m_Flags2 &= ~(GAMEINFOFLAG2_HUD_DDRACE | GAMEINFOFLAG2_DDRACE_TEAM); 13:09 < bridge> pGameInfoEx->m_Flags2 |= (GAMEINFOFLAG2_HUD_HEALTH_ARMOR | GAMEINFOFLAG2_HUD_AMMO); 13:09 < bridge> }``` 13:09 < ws-client> @kebscs i wouldnt be suprised if not. Imo the flags rn are not as obvious as they should be 13:09 < bridge> so it's already mixed depending on the mapsetting, for fastcap all ddrace tiles will not predict 13:09 < bridge> so it's already mixed depending on the mapsetting, for fastcap all ddrace tiles will not predict, since sv_healt_and_ammo will always be true 13:10 < bridge> but on the other hand I've never seen a ctf map with ddrace tiles ever 13:10 < ChillerDragon> yea its rare 13:11 < ChillerDragon> also it never really was well predicted or supported there were only a few tiny projects actually supporting it 13:11 < ChillerDragon> i am planning to implement it correctly so some mappers can use it 13:11 < ChillerDragon> @Assa you are working on a fork now not ddnet pr? 13:15 < bridge> I am working on a fork rn, but it's a good thing that I am doing it. The fork is already 7 years old and now I am upgrading it basically. I gave heinrich the use case he requested 13:16 < ChillerDragon> where did he request a use case @Assa? 13:16 < bridge> We have maps with damage enabled, race maps with grenades where you, beseides wanting to be as fast as possible, need to track how much hp you have and if you need to pickup health and how much of it 13:16 < bridge> heinrich wrote: 13:16 < ChillerDragon> ah so its not a new fork you just merge the old unique? 13:16 < bridge> 13:16 < bridge> > There should not be more customization options like that without a clear use case. This rules out your proposal (currently) because I don't see a clear use case for each flag. 13:16 < ChillerDragon> where did he write that 13:17 < bridge> https://github.com/ddnet/ddnet/issues/8923#issuecomment-2367663500 13:17 < ChillerDragon> ty 13:17 < bridge> well, not a merge, more like a rewrite 13:17 < ChillerDragon> oh 13:17 < ChillerDragon> may i try to sell you something then? xd 13:17 < bridge> is it the antibot? 13:17 < ChillerDragon> that too 13:18 < ChillerDragon> antibob is goated 13:18 < ChillerDragon> but i wanted to plug ddnet-insta 13:18 < ChillerDragon> you could fork of that and then i will maintain some merge conflicts for you 13:18 < bridge> I already asked around in PMs for antibot ... you are not PMable 13:18 < ChillerDragon> you can just create a new fastcapp.cpp gamemode and add flags without risking a git conflict 13:18 < ChillerDragon> https://github.com/ddnet-insta/ddnet-insta/blob/d546b1b61a3b53e18a5d9a556c079d9d6494572e/src/game/server/gamemodes/vanilla/base_vanilla.cpp#L25-L36 13:19 < ChillerDragon> @Assa i am PMable on irc but i am not sharing any secret antibot sry only the public stuff https://github.com/ChillerDragon/antibob 13:19 < ChillerDragon> tezcan told me that botting isnt a problem on unique anways 13:19 < bridge> at this case I don't need any source code or something, just plug it in and bob bobs 13:20 < bridge> I guess I could write my own but meh ._. 13:20 < ChillerDragon> yes very meh indeed 13:21 < ChillerDragon> in case you do pls send it 13:21 < ChillerDragon> i need some urgently for fng 13:21 < bridge> well you can take a look at my fastcap commit https://github.com/AssassinTee/ddnet/pull/17 13:21 < bridge> well you can take a look at my fastcap commit 13:21 < ChillerDragon> what for? 13:21 < bridge> idk what your goal is, implement fastcap? 13:22 < ChillerDragon> i am tryint to sell you my codebase 13:22 < bridge> No, i said it isn't compared to the other servers and that we are still able to manage who do cheat 13:22 < ChillerDragon> ddnet git merges as a service 13:22 < bridge> **yet** 13:23 < ChillerDragon> if you fork ddnet-insta you dont have to merge ddnet which is not fork friendly see #7777 13:23 < ChillerDragon> ddnet-insta is and it is actively merging into ddnet so you should have a lower maintenance effort 13:23 < bridge> or I just need to do git pull upstream master --rebase once in a while 13:23 < ChillerDragon> sure 13:24 < ChillerDragon> just saying that didnt work out so great last time for unique :D 13:24 < ChillerDragon> your flag code will conflict eventually 13:24 < ChillerDragon> i could solve that conflict for you 13:24 < ChillerDragon> because i will do it anyways 13:24 < bridge> yes, all I can do is best efford 13:25 < bridge> I want to setup a pullbot for this task in the future 13:26 < bridge> but you sold me on the antibob already if that makes you happy 😄 13:28 < bridge> antibob doesn't have a generalized shooting weapon interface? 13:42 < bridge> chillerdragon: are you here? 13:43 < bridge> how do I make teeworlds-asmr use 0.6? 13:53 < bridge> chillerdragon: I think the problem is that [hex_str](https://github.com/ChillerDragon/teeworlds-asmr/blob/a1232fc2f4ee5dc574082edc3611920e413bc687/src/bss/hex.asm#L2) is 2 bytes but here you write 8 https://github.com/ChillerDragon/teeworlds-asmr/blob/a1232fc2f4ee5dc574082edc3611920e413bc687/src/hex.asm#L73 into `hex_str` and `in_packet_header_num_chunks` is declared after `hex_str` so you probably overwrite it with that move 13:54 < ChillerDragon> @Assa wdym by shooting weapon interface? if you describe it well enough you can order one from me and i might ship it 13:55 < ChillerDragon> btw since you linked ur pr i also gave it some random ah review. Idk if you wanted that. Or if you just wanted to show me how i can build fastcap xd 13:55 < ChillerDragon> @milkeeycat you make it by using ``make`` ... duh 13:55 < ChillerDragon> ah wait 0.6 13:55 < ChillerDragon> my bad didnt read entire sentence xd 13:55 < bridge> xdd 13:55 < ChillerDragon> fair question sec 13:56 < ChillerDragon> https://github.com/ChillerDragon/teeworlds-asmr/blob/a1232fc2f4ee5dc574082edc3611920e413bc687/src/teeworlds_asmr.asm#L268 13:56 < ChillerDragon> change 7 to 666 13:56 < ChillerDragon> jk just 6 13:56 < ChillerDragon> maybe 666 works too, maybe it segfaults idk 13:57 < bridge> I wanted to show you how fastcap is implemented in unique (more or less). But, a wise man from the bloodhound gang once said, `I appreciate your input` ❤️ 13:57 < ChillerDragon> @milkeeycat are you saying the lable with the comment ``; this is too long`` is too short? xxxD 13:57 < ChillerDragon> maybe u have a point there 13:57 < ChillerDragon> thanks for looking into it sexy catto 13:58 < ChillerDragon> @Assa yea and i saw some places that could be moved to the controller if this was ddnet-insta based :p 13:58 < bridge> imagine you corrected me in writing the gamemode in uppercase, when ddnet doesn't do it itself xD 13:58 < ChillerDragon> current style offenses do not justify adding new ones 13:59 < ChillerDragon> new code should be clean touching old code always dramatic 14:01 < ChillerDragon> omg catto @milkeeycat it fixed the bug! 14:01 < bridge> >Ideally gamemodes would have a option to disable commands without adding such if statement. And then it should also be properly reflected in /cmdlist. 14:01 < bridge> > Ideally gamemodes would have a option to disable commands without adding such if statement. And then it should also be properly reflected in /cmdlist. 14:01 < bridge> ez 😏 14:01 < ChillerDragon> or at least it shifted enough for the sympthoms to be invisible xd u never know in assembly land @milkeeycat 14:01 < bridge> didn't even have to debug anything xd 14:01 < ChillerDragon> mary me 14:01 < bridge> yes, ideally they would, but the gamecontroller isn't even loaded when commands are registered. 14:01 < ChillerDragon> ironically i also checked that lable and thought increasing it might fix it 14:02 < ChillerDragon> but then i checked the code and was "nah this is fine" it never writes more than 2 bytes 14:02 < ChillerDragon> omg i so nob 14:03 < bridge> so did you increase the size to 8 bytes or changed move to `ax` instead of `rax`? 14:03 < ChillerDragon> @Assa yea its a bigger refactor and probably #7777 but if this pr gets into ddnet its no longer #7777 because it affects ddnet directly and then we can finally add proper controller cmd support 14:03 < ChillerDragon> @milkeeycat just increased the size 14:03 < ChillerDragon> should i also fix the mov? 14:03 < ChillerDragon> oke 14:04 < bridge> i don't know, i saw a comment `for now we only store 2 character in here` 14:04 < bridge> but you write 8 xd 14:05 < ChillerDragon> i drunk coder wat can i do 14:05 < bridge> > uber giga annoying nit pick I know. But you sometimes use class CCharacter and sometimes just CCharacter 14:05 < bridge> 14:05 < bridge> This was a fix for clang-tidy and I fixed it xD I won't fix all of ddnets other mistakes there, as it only makes the diff bigger and probably collides in the future 14:05 < ChillerDragon> @Assa this is not ddnet code this is your controller 14:06 < bridge> oh yeah it's copy pasta 14:07 < ChillerDragon> but if you add a new file to ddnet it can be expected from you that you at least have consistency in that one file 14:07 < ChillerDragon> even if it means deleted 3 words 14:07 < ChillerDragon> deleting* 14:07 < bridge> what pr goes into ddnet? This is not a pullrequest for ddnet, I guess this PR would not make it xD This is just the updated fork and the first release candiate. We can start to tidy up if it's finished 14:08 < ChillerDragon> oh wot? 14:08 < ChillerDragon> then i wrote confused review bro 14:08 < bridge> the PR merges from AssassinTee/unique into AssassinTee/master, not into ddnet/master 🤣 14:08 < ChillerDragon> u trolled me good bro 14:09 < bridge> and the merge PR only exists, because I wanted to run the pipeline against latest master 14:09 < bridge> I even wrote some tests for this PR 14:09 < ChillerDragon> ignore my 7777 talk and favor of merge then xd the nitpicks are still cute if you want good ddnet style and proper 0.7 support and not crashes xd 14:10 < ChillerDragon> if i had known this is your fork i would have written 20 review comments starting with "if only you were based on ddnet-insta you could .." 14:10 < bridge> 😉 I'll certainly clean things up and I'll apply your big beatiful suggestion. Oh and I'll also update the code 14:12 < bridge> you are probably partially right with #7777, but there is some stuff I don't see there. Like the millisecond and subtick timing 14:12 < bridge> https://github.com/ddnet/ddnet/issues/7777 14:14 < ChillerDragon> oke @milkeeycat ill just apply both changes seems to work :D 14:15 < bridge> nah do I really need to write sixup code 😦 I hoped the netprotocol magically does it for me 14:15 < ChillerDragon> classic asm changing the code does not always cause visibile changes when running the program 14:15 < ChillerDragon> @Assa it does sometimes but not always especially not for flags which are not in ddnet 14:16 < bridge> noice 14:16 < bridge> missed opportunity by ddnet 14:16 < bridge> chillerdragon: asm pro 14:16 < ChillerDragon> no u 14:16 < ChillerDragon> @Assa go ping heinrich and ask how his translation layer rewrite is going xd 14:17 < ChillerDragon> he kept asking who wants it. Nobody wanted him to do it. He said "ok i will do it" 14:17 < bridge> ig nobody wanted to do it 14:17 < ChillerDragon> no nobody wanted him to do it 14:17 < bridge> i wouldn't want to do it either tbh 14:17 < ChillerDragon> we want him to do other things 14:18 < ChillerDragon> u have to understand that a heinrich is a limited ressource 14:18 < bridge> if you gave me the choice between network translation code and writing shaders ... 14:19 < bridge> aren't we all a limited resource? 14:19 < ChillerDragon> its less about how much fun it is because he is doing it 14:19 < ChillerDragon> no 14:19 < ChillerDragon> we are replacable 14:19 < ChillerDragon> ddnet admins power coder giga chads are different 14:19 < bridge> yes, but he's not the only one 14:20 < ChillerDragon> we can allocate the heinrich on libtw2, quic, merging prs or we can allocate it on rewriting working code ._. 14:20 < bridge> ofc very valuable with a lot of experience 14:20 < bridge> where would you allocate me next? 14:20 < ChillerDragon> i dont see anyone else adding snapshot support to libtw2 dissector other than heinrich 14:20 < ChillerDragon> @Assa as ddnet-insta enjoyer 14:20 < bridge> guessed so, and in ddnet main? 14:21 < ChillerDragon> fixing all issues opened by me 14:21 < ChillerDragon> https://github.com/ddnet/ddnet/issues?q=is%3Aissue%20state%3Aopen%20author%3AChillerDragon 14:21 < ChillerDragon> 46 todos for u 14:21 < bridge> deal, if you fix all opened by me, even the ones with fix-changes-physics and won't-implement 14:21 < ChillerDragon> :justatest: 14:22 < ChillerDragon> 21 open 20 closed 14:22 < ChillerDragon> bad ratio 14:22 < ChillerDragon> issues is like KD 14:22 < ChillerDragon> and closed is kill 14:22 < bridge> for me it's vise versa 14:23 < ChillerDragon> nah bro 14:23 < ChillerDragon> open issues = bad 14:23 < ChillerDragon> closed issues = good 14:23 < bridge> nah, its more like: 14:23 < bridge> - look, I found this gamebreaking bug, I know you can't fix it, now perish in despair 14:24 < ChillerDragon> finding bugs is good 14:24 < ChillerDragon> but they should be fixed 14:24 < bridge> would your 'KD' stop you from opening critical tickets? 14:24 < ChillerDragon> open ddnet issues are too polluted we need to reach 666 again 14:24 < bridge> because if it does, then it's a bullshit metric 14:24 < ChillerDragon> no it doesnt stop me from opening issues ever 14:25 < ChillerDragon> i just try to also get them closed 14:25 < bridge> pull request merged / pull request closed would be a better metric, showing how much of the stuff you do is valuable 14:26 < bridge> It handles a lot automatically, but if the netmessage format changed between versions it needs manual translation 14:26 < bridge> (there I also have a bad ratio, partially by abandoning some PRs in the past) 14:26 < ChillerDragon> pulls is similar to issues 14:26 < ChillerDragon> you want to keep pending issues and pending prs low 14:27 < ChillerDragon> imo stale prs are worse than rejected prs 14:28 < bridge> you dont have interesting issues 14:29 < bridge> this looks way better for example : 14:29 < bridge> 1 open (draft), 40 closed, most of them merged 14:29 < bridge> only 40.. 14:30 < bridge> yes, 40 more then the average gh user :thonk: 14:30 < bridge> true 14:31 < ChillerDragon> i think only catto has worse reject/approve rate than me xd 14:31 < ChillerDragon> i have like 50% rejected 14:32 < ChillerDragon> oh shit catto improved stats 14:32 < ChillerDragon> maybe im last now xd 14:32 < bridge> that's what I mean. Robyt said to us we should open an issue first, maybe discuss something, before we start implementing 14:32 < ChillerDragon> he just had a rough start with 3 rejected prs xd 14:32 < bridge> ay, I got better 14:32 < bridge> probably 14:32 < ChillerDragon> u rly did 14:33 < ChillerDragon> u have like 15% rejected only 14:33 < ChillerDragon> i guesstimated that statistic 14:36 < ChillerDragon> @Assa why merge fastcap into master of AssassinTee/ddnet ? 14:36 < ChillerDragon> why not create a unique repo or unique branch at least? 14:36 < bridge> ^ 14:36 < ChillerDragon> is this a reply? 14:36 < bridge> uniqe branch is not a fork according to github. 14:37 < ChillerDragon> wdym 14:37 < ChillerDragon> https://github.com/AssassinTee/ddnet/pull/17 here u pr into master 14:37 < bridge> https://github.com/unique-clan/unique-race 14:37 < bridge> 14:37 < bridge> This unique repo is not a ddnet fork according to github 14:37 < ChillerDragon> okay 14:38 < ChillerDragon> so? 14:38 < ChillerDragon> seems unrelated to my question 14:38 < ChillerDragon> i am not following 14:38 < bridge> so - why should I not implement it in my own branch? I don't own the unqiue-clan user, this would be Tim 14:38 < ChillerDragon> you are planning to merge it into master 14:39 < ChillerDragon> that is not your own branch 14:39 < bridge> no? 14:39 < bridge> well, at least not my master and also not ddnet/master 14:39 < ChillerDragon> imo /ddnet master is reversed for ddnet 14:39 < ChillerDragon> why not keep it in a unique branch? 14:39 < ChillerDragon> are you planning to merge? 14:40 < ChillerDragon> isn that your contributor fork? 14:40 < bridge> it is in a unique branch, isn't it? 14:40 < ChillerDragon> yes 14:40 < ChillerDragon> but the pr is against master 14:40 < bridge> against my master, because i wanted to automatically run pipeline, I do this a lot because I am a lazcy fuck 14:40 < bridge> against my master, because i wanted to automatically run pipeline, I do this a lot because I am a lazy fuck 14:40 < ChillerDragon> a lol 14:41 < ChillerDragon> its not to merge just for pipeline? 14:41 < ChillerDragon> thats troll af 14:41 < ChillerDragon> just enable pipeline for unique branch xd 14:41 < ChillerDragon> dude you scammed me into reviewing a fake pr xd 14:42 < bridge> I didn't ask you for that xD 14:42 < bridge> Take a look, I do a "Test PR" on my own master, before I do an official ddnet PR somethimes: 14:42 < bridge> https://github.com/AssassinTee/ddnet/issues?q=is%3Apr%20author%3AAssassinTee 14:42 < bridge> that's a lot of red and gray and green 14:43 < bridge> im making a pr for editor where you hold a key you can move only in straight line 14:43 < bridge> but which key 14:43 < bridge> this was requested a lot but i dont remember which key 14:43 < bridge> people called me paranoid for reviewing my own PRs, so I do it on my own fork. 14:44 < bridge> chillerdragon: btw, why did you keep the `this is too long` comment, it was correct when the size was 512 bytes, but now it's not xd 14:48 < bridge> do you need 2 keys for x/y ? 14:49 < bridge> i can try make 1 14:50 < bridge> i think most graphics programs do it on shift 14:50 < bridge> but shift is used 14:55 < bridge> Q/E used? 15:10 < bridge> managed to do on 1 button 15:10 < bridge> idk if q/e used 15:10 < bridge> managed to do on 1 button, itll lock if you move cursor by 1 block 15:15 < bridge> if you feel better, your review was really useful, as I would prob. have never tested if teeworlds 0.7 works xD 15:15 < bridge> if it makes you feel better, your review was really useful, as I would prob. have never tested if teeworlds 0.7 works xD 16:04 < ws-client> @milkeeycat idk bro it should be holding like one ascii character xd 16:06 < ws-client> @kebscs pls use blender shortcuts 16:07 < ws-client> so x to lock x-axis and y to lock y-axis 16:08 < bridge> since you cant rebind editor shortcuts, id rather make it 1 key 16:08 < bridge> and its annoying if it were a toggle 16:08 < ws-client> how would one key work 16:08 < bridge> works right now, check the pr 16:09 < bridge> detects which way you move your mouse 16:09 < bridge> checked code, love the simplicity of it 16:09 < bridge> if you moved by at least 1 block 16:09 < ws-client> hate it xd 16:09 < ws-client> go with x and y 16:09 < ws-client> blender enjoyers will love it 16:10 < bridge> maybe you should check for >= 1 then and not > 1, but this might be a very big nitpick xD 16:11 < bridge> shouldnt matter, its in float 16:11 < bridge> ye 16:12 < bridge> as a paint enjoyer this would be nice on shift 16:12 < bridge> but shift is selecting multiple tiles 16:12 < bridge> and alt is ignoregrid on quads, though not sure if that even wrosk 16:12 < bridge> and alt is ignoregrid on quads, though not sure if that even works 16:13 < bridge> as a ddnet editor enjoyer, idc xD gimme button for mapping 16:14 < ws-client> if you need to move the mouse first to lock in it messes with your accuracy 16:16 < ws-client> if i want to lock in on a axis i first need to move to my axis so the last move wont be the locked direction 16:16 < ws-client> unless you swap it 16:17 < ws-client> which would be crazy 16:17 < ws-client> pressing x and y is satisfying af 16:17 < bridge> but ddnet editor is jank 16:17 < bridge> you would press x and it would lock the cursor everywhere 16:17 < bridge> someone misslicks x and cant even close game 16:18 < bridge> unless alt tab or alt f4 16:18 < ws-client> no 16:18 < ws-client> should only be locked while holding maybe 16:18 < bridge> thats confusing then 16:18 < ws-client> why 16:18 < bridge> uless there would be an indicator 16:18 < ws-client> of curse 16:18 < ws-client> you get big ass ruler 16:19 < bridge> cba 16:19 < bridge> 1 button is more intuitive 16:19 < bridge> and no indicator needed 16:19 < bridge> 1 button hold is more intuitive 16:24 < bridge> chiler maybe you want to review 16:24 < bridge> bcs you added the live gametiles 16:28 < bridge> chillerdragon: rate the asm https://justpaste.it/gizgg xd 16:28 < bridge> (it's one function call) 16:40 < ws-client> the pr is a good idea @kebscs 16:42 < ws-client> its the struct thing @milkeeycat ? 16:43 < ws-client> looks bloated xd 16:43 < bridge> it is 16:43 < bridge> BUT 16:43 < bridge> it works 16:43 < bridge> approve for the sweet github green box 👍 16:44 < ws-client> i didnt review :p 16:45 < bridge> do review :) 16:45 < ws-client> too lazy 16:45 < ws-client> i need to play gores 16:46 < ws-client> review without merge rights is waste of time 16:46 < ws-client> nobody cares about my review anyways xd 16:47 < bridge> chiller send mani 16:47 < ws-client> wot 16:47 < ws-client> why 17:16 < bridge> @robyt3 dunno if related to the above bug, but still have weird problems with skins sometimes. 17:16 < bridge> 17:16 < bridge> When I start the client with player skin "nanami" 17:16 < bridge> 17:16 < bridge> And type in the skin name input field "Bub" (case sensitive) it does not load the skin, but a lower case version instead 17:16 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1387813729399214140/image.png?ex=685eb5c1&is=685d6441&hm=9ec73f6c48a0ff7386704c474084b7d502309dda2a4ae74f25311a49bc97d46b& 17:16 < bridge> refreshing fixes it, and `player_skin` in F1 was defs correct like in the input field 17:17 < bridge> Also I always had Bub starred, it never loaded in first place for me 17:22 < bridge> According to my config it's in lower case actually 17:22 < bridge> `add_favorite_skin "bub"` 17:22 < bridge> 17:22 < bridge> So this is most likely some weird case issue that can break the skin system. 17:22 < bridge> bcs it shows as starred once correctly loaded 17:23 < bridge> i had this bug a few times 17:24 < bridge> i think when another player used a skin name with lowercase letters instead of uppercase 17:24 < bridge> it tried to download the lowercase skin name 17:24 < bridge> Would make sense, yeah 17:25 < bridge> but I could only see default skin and had that question mark icon 17:25 < bridge> and refreshing skins with that refresh button also didn't help 17:25 < bridge> tho i couldn't always reproduce it and im not sure why 17:29 < bridge> hm idk if alt is good 17:29 < bridge> might be clashing with the quads thing 17:54 < bridge> Does a `Bub.png` file exist and which capitalization does it use? Maybe it can't load the file because the file system is case sensitive. 17:56 < bridge> There are a few Bubs yeah :lol: 17:56 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1387823742864068718/image.png?ex=685ebf14&is=685d6d94&hm=91c387d2e2d5b6f4734673e05152a02e2c8350e9c08478eded9734831fd08ba6& 17:56 < bridge> We currently use whatever skin name capitalization it first appeared in to load the file 17:56 < bridge> I have an insane amount of .tmp files uff 17:57 < bridge> Are these tmp files valid pngs, i.e. did the rename fail? 17:57 < bridge> Most are valid 17:57 < bridge> Basically all that are purple 17:58 < bridge> I think the tmp problems comes from 2024 tho 17:58 < bridge> Not smth lately 17:59 < bridge> Where do you download it from? It not in the database for me 17:59 < bridge> Seems like I also broke the buttons to open external files on Windows 17:59 < bridge> Bub is in the database 18:00 < bridge> https://ddnet.org/skins/skin/Bub.png 18:00 < bridge> 18:00 < bridge> did you read from here @robyt3 18:01 < bridge> I think this is most likely the problem.. smth with when a lower case is loaded first 18:01 < bridge> yeah, seems like I also encountered the bug somehow 18:01 < bridge> first time the skin didn't load at all 18:02 < bridge> @jupeyy_keks hi 18:02 < bridge> i discovered smth 18:02 < bridge> manual lookup tables allow rust to have an easier time inlining that matches 18:03 < bridge> specially true for big matches in hot loops 18:03 < bridge> specially true for big matches in hot paths 18:03 < bridge> manual lookup tables allow rust to have an easier time inlining than matches 18:03 < bridge> Oh really= 18:04 < bridge> I'd have thought a match is just a lookup table 18:04 < bridge> i think its ctrl in some image programs 18:05 < bridge> At least for enumeration like types 18:05 < bridge> rather have enable and disable snapping button that enables everything though (with red guidelines that magnetic snap) 18:06 < bridge> ctrl taken, roby merged with alt 18:06 < bridge> eh 18:07 < bridge> whats wrong with shift drag as well 18:07 < bridge> i guess it doesnt lock your cursor 18:07 < bridge> yeah i guess this feature is different and i could see myself using it 18:08 < bridge> shift is also taken for selecting group of tiles 18:08 < bridge> keybinds in editor are a mess unfortunately 18:08 < bridge> yea 18:08 < bridge> no i meant shift drag can also place tiles in a line 18:08 < bridge> but you cant if you have a group selected 18:08 < bridge> wdym 18:09 < bridge> like multi layer selection? 18:09 < bridge> shift drag paints in box 18:09 < bridge> well idk 18:09 < bridge> but this was requested, shift drag seems different to me 18:10 < bridge> yeah it's different 18:10 < bridge> 18:10 < bridge> look vid in this issue 18:10 < bridge> cant do it with shift drag 18:11 < bridge> ya that usecase is alot more relevant 18:15 < bridge> oh ye thats annoying af actually 18:21 < bridge> I can reproduce it using a fresh config directory where the skin doesn't exist yet. When `bub` is first spelled lowercase, the GET request to https://ddnet.org/skins/skin/bub.png will fail with 404, so the client assumes the skin does not exist and doesn't show it in the list. 19:15 < ws-client> i got a error scanning demo file :c 19:15 < ws-client> fresh demo 19:22 < bridge> noob 19:22 < ws-client> unlucky i am actually interested in the demo 19:22 < ws-client> it captured a unreproducible bug in my mod :c 19:23 < ws-client> https://github.com/ddnet/ddnet/blob/e639463327874c7a36ae69be238303304b019858/src/engine/shared/demo.cpp#L593-L597 19:23 < ws-client> dies here 19:24 < bridge> shortcut to enable/disable sounds, looks cool tho, maybe u can add. I know you can just bind it but there are UI things like in the screenshot 19:24 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1387845894363418704/screenshot_2025-06-26_20-22-20.png?ex=685ed3b6&is=685d8236&hm=bf7335624d987a561a6018064b5c8e664aa96756ddba8c93b76c25b7f8c7621a& 19:24 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1387845894904217680/screenshot_2025-06-26_20-21-41.png?ex=685ed3b6&is=685d8236&hm=f94a7373199b2cded63cccdeaf91506a33fa5520e3579a04ca61214ed9c4c779& 19:25 < bridge> Get DDNet client from DDNet.org 19:29 < bridge> sometimes playing on 0.6/7 feels good 19:48 < bridge> ChillerDragon: try with #10128, which allows playing truncated demos again 19:48 < bridge> https://github.com/ddnet/ddnet/pull/10128 19:48 < ws-client> nice 19:49 < bridge> Please also test this in general with demos that are still being recorded if you are interested in the feature 19:50 < ws-client> the demo is in bad shape bru 19:50 < ws-client> i get instant network compression error 19:51 < ws-client> watafak happend to it 19:52 < ws-client> live works pretty well 19:52 < ws-client> epic feature 19:59 < bridge> Maybe a write failed, we don't check for failed writes 20:01 < ws-client> how can it fail? are you saying cosmic rays broke my hard drive? xd 20:06 < bridge> Most common failure of fwrite would be if you are out of space 20:08 < ws-client> yea thats the only one i know 20:08 < ws-client> but i recorded the demo like 10 min ago 20:08 < ws-client> and i still have 800GB available 20:09 < ws-client> imo it would be cool if we would log_error ``errno`` 20:09 < ws-client> i almost prd that once forgot why not 20:09 < ws-client> all the stuff we wrap like fseek and so on might set ``errno`` we could let system.cpp directly always log some nice error messages 20:57 < bridge> @jupeyy_keks let chains https://blog.rust-lang.org/2025/06/26/Rust-1.88.0/ 20:57 < bridge> ```rust 20:57 < bridge> if let Channel::Stable(v) = release_info() 20:57 < bridge> && let Semver { major, minor, .. } = v 20:57 < bridge> && major == 1 20:57 < bridge> && minor == 88 20:57 < bridge> { 20:57 < bridge> println!("`let_chains` was stabilized in this version"); 20:57 < bridge> } 20:57 < bridge> 20:57 < bridge> ``` 21:00 < bridge> > Cargo automatic cache cleaning 21:00 < bridge> > 21:00 < bridge> > Starting in 1.88.0, Cargo will automatically run garbage collection on the cache in its home directory! 21:01 < bridge> omg i needed that so many times 21:02 < bridge> Yep just saw it today, sick 21:02 < bridge> Will make lots of nested ifs useless now 21:10 < bridge> omg finally 21:19 < bridge> Is that pattern more useful in rust or something? I rarely do that in cpp 21:22 < bridge> ok this doesn't exist in cpp nvm 21:36 < bridge> @ryozuki trolled 21:36 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1387879145115095100/image.png?ex=685ef2ad&is=685da12d&hm=c68377f88776f81d50e44cc267ac19cfd4da2f45c2a276f19a825294b7395468& 21:52 < bridge> he didnt let you merge 11 comits in 1 pr 21:52 < bridge> which some of are wrong 21:55 < bridge> me when editor updates 21:55 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1387883987241926700/happy-cat-yippee-cat.png?ex=685ef730&is=685da5b0&hm=7172e57c43a93d978b89aadf480f71ac55668ba15925a5910ea5d1f7facc4f22& 21:55 < bridge> okay why did it save as png 21:56 < bridge> when souly map for ddnet 21:56 < bridge> i meant this 21:56 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1387884141046923375/yippee-cat-kitty.gif?ex=685ef754&is=685da5d4&hm=eb68411d1f91bad48c9b44754cb6d717b8d182c27b6c44d13a774099f46fd1c1& 21:56 < bridge> me when editor updates 21:56 < bridge> hopefully i will manage to finish my map by the end of the year 21:56 < bridge> cant really promise tho 21:56 < bridge> as im really lazy 21:57 < bridge> :owo: 22:52 < bridge> Heh