01:11 <+bridge> [ddnet] Is this better? 01:11 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1017572957599571968/unknown.png 01:11 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1017572957838639175/unknown.png 01:15 <+bridge> [ddnet] And about this, it's decided that feet should only flip in AFK state? 01:15 <+bridge> [ddnet] And about this, it's decided that feet should only flip in AFK state for now? 01:52 <+bridge> [ddnet] @Voxel now it just looks like this 01:52 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1017583326736957570/unknown.png 01:53 <+bridge> [ddnet] its the people's say :justatest: 01:53 <+bridge> [ddnet] but the weapon is leaning on his head, that can't be comfortable 01:58 <+bridge> [ddnet] How about weapon on the side, in his front? 02:00 <+bridge> [ddnet] you mean like this? 02:00 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1017585302535159868/unknown.png 02:01 <+bridge> [ddnet] it should just be pointing where his eyes are like normal 02:02 <+bridge> [ddnet] So no weapon alteration? 02:03 <+bridge> [ddnet] I guess 02:03 <+bridge> [ddnet] hammer position is nice but default might work as well 02:03 <+bridge> [ddnet] I'll wait until the other people comment as well 02:03 <+bridge> [ddnet] Default is too high. If we do default I'd have to at least lower it 02:03 <+bridge> [ddnet] ye maybe 02:29 <+bridge> [ddnet] The way I see it, the weapon is strapped to the tee's back as they rest, not just freely leaning on them 02:30 <+bridge> [ddnet] I meant flat on the ground next to the tee, but rendered in front of the tee 02:31 <+bridge> [ddnet] you mean stuck magnetically? or maybe by static charge 02:32 <+bridge> [ddnet] :happy: Sure, it's a video game. Why not 02:33 <+bridge> [ddnet] If the weapon is rendered in front, it would cover the feet, making it kind of pointless, no? 02:34 <+bridge> [ddnet] it could also be placed in a way that looks like the tee could possibly be holding it in a hand 02:40 <+bridge> [ddnet] i thought that was the point 02:41 <+bridge> [ddnet] like hes restinf on his weapon 02:41 <+bridge> [ddnet] or yeah like strapped to their back 02:42 <+bridge> [ddnet] Having the weapon strapped to the tee's back is cute, looks fine as well 02:43 <+bridge> [ddnet] Velcro :greenthing: 03:56 <+bridge> [ddnet] Tees have a kangaroo pouch on their backs 07:26 <+bridge> [ddnet] yea, but can you make the weapon render fully normal again (just for a screenshot? 07:43 <+bridge> [ddnet] Oh wait, right. One second 07:47 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1017672479071813672/unknown.png 07:52 <+bridge> [ddnet] Ravie did give an idea about there being a binded sit animation, where if you press a button you will be able to sit even if not AFK. But that would involve another packet in the server 07:56 <+bridge> [ddnet] That wouldnt be a problem tho, since the sitting animation is only working for new clients anyways, we could easily add such packet 07:56 <+bridge> [ddnet] and such information to send to the clients. Voxel, hit me up I can helo you 07:57 <+bridge> [ddnet] Want me to submit the PR as it is now, with the weapons as is? 07:57 <+bridge> [ddnet] I think we should maybe keep the weapons normal btw. That would then also fit better to manual sitting 07:58 <+bridge> [ddnet] Alrighty 07:58 <+bridge> [ddnet] Probably put it into one PR, as the info for sitting animation would then no longer require the afk info. 07:58 <+bridge> [ddnet] Then its polished from the beginning 07:58 <+bridge> [ddnet] Ah cool. 07:59 <+bridge> [ddnet] So I did talk about this, and I think the best key to bind sitting would be **S** 07:59 <+bridge> [ddnet] at least for default 08:01 <+bridge> [ddnet] Maybe, but s is taken for hookline 08:01 <+bridge> [ddnet] maybe c 08:01 <+bridge> [ddnet] at least for default :D 08:02 <+bridge> [ddnet] Yeah, sure 08:02 <+bridge> [ddnet] i'll check whether c is free 08:02 <+bridge> [ddnet] It says here what binds are default 08:02 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1017676411630276628/unknown.png 08:02 <+bridge> [ddnet] unsure if these are all of them 08:03 <+bridge> [ddnet] these are all, was gonna check binds.cpp aswell :D 08:03 <+bridge> [ddnet] s isn't shown as hookline though 08:03 <+bridge> [ddnet] SetDDRaceBinds() 08:03 <+bridge> [ddnet] check that function 08:03 <+bridge> [ddnet] fuck, C is used by a useless command 08:04 <+bridge> [ddnet] ohhh 08:04 <+bridge> [ddnet] Wow, so many useless binds 08:04 <+bridge> [ddnet] im happy i dont use them 08:04 <+bridge> [ddnet] same 08:05 <+bridge> [ddnet] i have my own config file, and the first line says `unbindall` 08:05 <+bridge> [ddnet] xD 08:05 <+bridge> [ddnet] xd 08:05 <+bridge> [ddnet] Which key would you suggest now toh 08:05 <+bridge> [ddnet] lemme think 08:05 <+bridge> [ddnet] Z is my "lagg!!!" say bind 08:06 <+bridge> [ddnet] just for a default, but Z is my team chat (y for qwerty) 08:06 <+bridge> [ddnet] you probably mean my Y then right? xD 08:06 <+bridge> [ddnet] yknwo what why not change c bind to n, 08:06 <+bridge> [ddnet] the bottom left 08:06 <+bridge> [ddnet] true 08:06 <+bridge> [ddnet] c fits for crouch 08:06 <+bridge> [ddnet] xd 08:07 <+bridge> [ddnet] yea, and even if N and M are my deepfly binds, i think there's a solo button bind somewhere 08:07 <+bridge> [ddnet] its just for the default, you can set ur bind however u want 08:10 <+bridge> [ddnet] @Voxel have you ever changed code on the server side? Do you want to do this or should I make a commit in your branch, same as for the DDNetLaser? 08:11 <+bridge> [ddnet] Can I try looking at it first? I think it should be rather straight forward and sort of similar to how +fire is treated 08:11 <+bridge> [ddnet] of course I am here for quetions 08:12 <+bridge> [ddnet] sure, but +fire or +showhookcoll are handled quite a bit differently 08:14 <+bridge> [ddnet] I am thinking right now, I think we should implement the `sit` (or similar?) command with an optional parameter 0 or 1, to allow using 0 or 1 for binds. If nothing is entered (as for the default bind), it would simply toggle, I think. 08:15 <+bridge> [ddnet] right\ 08:28 <+bridge> [ddnet] @fokkonaut Is this a good start? 08:28 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1017682906551963648/unknown.png 08:28 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1017682906849738812/unknown.png 08:29 <+bridge> [ddnet] You may not edit exisitng NetObjects, as they change network code. This one specifically is even a vanilla object. 08:30 <+bridge> [ddnet] welcome to backwards compatibility 08:30 <+bridge> [ddnet] DDNet has a system (hey heinrich c:) that extends the normal NetObject system. You have to create a NetObjectEx and give it a paramter m_Sit 08:30 <+bridge> [ddnet] alright ill try thaaaat 08:31 <+bridge> [ddnet] @Voxel Look at `MyOwnObject` 08:32 <+bridge> [ddnet] ah, sorry 08:32 <+bridge> [ddnet] @Voxel NetObjects are only used by the server, they are a snapshot object. Dont use that to communicate client->server 08:32 <+bridge> [ddnet] instead, see `Cl_ShowOthers`, its a NetMessageEx 08:34 <+bridge> [ddnet] ah nivr 08:34 <+bridge> [ddnet] ah nice 08:34 <+bridge> [ddnet] tho what does it mean by `# Can't add any NetMessages here!`? Can you not add it below that comment? 08:35 <+bridge> [ddnet] Yes, you can, because you add a `NetMessageEx`. That is only meant for the normal `NetMessage`s, as they are limited. You can't have infinite of them. Thats why this extended system was heavily required and is the foundation of what we can do right now. (heinrich!! c:) 08:36 <+bridge> [ddnet] <3 08:38 <+bridge> [ddnet] While you are working in network.py right now, you might wanna add a flag to `CharacterFlags`, called `IS_SITTING` or similar 08:38 <+bridge> [ddnet] That way we will tell the clients which client is sitting right now 08:39 <+bridge> [ddnet] Alrighty 08:44 <+bridge> [ddnet] okay i think network.py is all set 08:44 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1017687028135112774/unknown.png 08:44 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1017687028869124136/unknown.png 08:46 <+bridge> [ddnet] Looks good, yes 08:52 <+bridge> [ddnet] So now I add `bool m_IsSitting;` into CCharacterCore 08:52 <+bridge> [ddnet] and then `if(m_Core.m_LiveFrozen) 08:53 <+bridge> [ddnet] pDDNetCharacter->m_Flags |= CHARACTERFLAG_MOVEMENTS_DISABLED;` 08:53 <+bridge> [ddnet] wait 08:53 <+bridge> [ddnet] So now I add `bool m_IsSitting;` into CCharacterCore 08:53 <+bridge> [ddnet] and then 08:53 <+bridge> [ddnet] `if(m_Core.m_IsSitting) 08:53 <+bridge> [ddnet] pDDNetCharacter->m_Flags |= CHARACTERFLAG_IS_SITTING;` in character.cpp? 08:55 <+bridge> [ddnet] wait nvm those relate to entities i think 08:56 <+bridge> [ddnet] You can add it to `CCharacter` 08:56 <+bridge> [ddnet] The core does not need this information 08:56 <+bridge> [ddnet] Other than that, it was correct, yes 09:02 <+bridge> [ddnet] @Voxel make sure to reset m_IsSitting in `CCharacter::DDRaceInit()` 09:03 <+bridge> [ddnet] to false* 09:07 <+bridge> [ddnet] Actually wait, would it be better inside `void CCharacter::SnapCharacter(int SnappingClient, int ID)` 09:07 <+bridge> [ddnet] What do you mean? 09:07 <+bridge> [ddnet] i don't know, i see a new similar 09:07 <+bridge> [ddnet] one second my brain shut off 09:08 <+bridge> [ddnet] im jjust saying like, since all the m_Flag things are linked to m_Core wouldnt it be weird for one to NOT be m_Core 09:08 <+bridge> [ddnet] You should store m_IsSitting in CCharacter, because you are going to modify that variable when the net message arrives. 09:09 <+bridge> [ddnet] They are not, it's just that the CCharacterCore is shared code, and if things like m_Super are required in the core, it is defined there 09:09 <+bridge> [ddnet] gamecore.cpp is used by the server and the client 09:09 <+bridge> [ddnet] But this information is not required there 09:14 <+bridge> [ddnet] okay i broke it off a tiny bit so it's visually better to understand 09:14 <+bridge> [ddnet] (i havent compiled it yet so thats why the IS_SITTING thing isnt blue yet 09:14 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1017694349733134336/unknown.png 09:14 <+bridge> [ddnet] or should i not have that extra paragraph 09:15 <+bridge> [ddnet] You can simply remove the line, it's not required :) 09:15 <+bridge> [ddnet] It's not blue yet because it's not yet generated. Things added to the .py files will generate the matching code once you generate or build 09:15 <+bridge> [ddnet] Yeah I know rthat 09:15 <+bridge> [ddnet] Yeah I know that 09:15 <+bridge> [ddnet] okayyy i removed the line 09:15 <+bridge> [ddnet] i'm thinking about what to do next 09:16 <+bridge> [ddnet] I would add the connection from the NetMessage to m_IsSitting now 09:16 <+bridge> [ddnet] Then you would have the serverside complete and can focus on the client implementation 09:17 <+bridge> [ddnet] You can use Cl_ShowOthers for reference 09:17 <+bridge> [ddnet] okay 09:22 <+bridge> [ddnet] gamecontext.cpp? 09:23 <+bridge> [ddnet] Yes 09:23 <+bridge> [ddnet] fokkonaut-sensei 09:23 <+bridge> [ddnet] :greenthing: 09:23 <+bridge> [ddnet] 🤭 09:31 <+bridge> [ddnet] uhh 09:31 <+bridge> [ddnet] rn im just trying to read the entire block of text and trying to think of where to put thi 09:32 <+bridge> [ddnet] just put it below CL_SHOWOTHERS :D 09:32 <+bridge> [ddnet] NETMSGTYPE_CL_SHOWOTHERS 09:32 <+bridge> [ddnet] oh 09:32 <+bridge> [ddnet] now i see it 09:33 <+bridge> [ddnet] 😄 09:33 <+bridge> [ddnet] Thought you found OnMessage() already :D 09:35 <+bridge> [ddnet] i *did* 09:40 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1017701120103166012/unknown.png 09:42 <+bridge> [ddnet] again your issue 09:42 <+bridge> [ddnet] pChr not initialized 09:42 <+bridge> [ddnet] (+ the netmsg thingy) 09:42 <+bridge> [ddnet] (+ the netmsg thingy issue) 09:42 <+bridge> [ddnet] the red squiggles is just because its not built yet 09:43 <+bridge> [ddnet] Don't forget so to initialize it before using pChr 09:43 <+bridge> [ddnet] @Voxel you can simply use pPlayer->GetCharacter() 09:43 <+bridge> [ddnet] but you should check it first, so put it in an if case, and after it you can use it to access m_IsSitting 09:43 <+bridge> [ddnet] and: pMsg will not have m_Show, instead it will have m_Sit 09:44 <+bridge> [ddnet] oops 09:46 <+bridge> [ddnet] Like this? 09:46 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1017702623022952448/unknown.png 09:47 <+bridge> [ddnet] Or do I need to actually create a new if statement around the 09:50 <+bridge> [ddnet] better do a new packet with netintany for all animations 09:51 <+bridge> [ddnet] i dont think that's needed though. those are just client side animations 09:51 <+bridge> [ddnet] why do you need pchr->is_sitting 09:51 <+bridge> [ddnet] check 09:52 <+bridge> [ddnet] i mean maybe ddnet will have another ones :troll: 09:52 <+bridge> [ddnet] then they can add it themselves 09:52 <+bridge> [ddnet] another packet? 09:52 <+bridge> [ddnet] for same thing 09:52 <+bridge> [ddnet] please dont pressure me right now this is hurting my head a bit LOL 09:53 <+bridge> [ddnet] nah just want to hear other opinions about new packet 09:53 <+bridge> [ddnet] i mean yeah i think the packet can be expanded, but as of right now it should be fine 09:53 <+bridge> [ddnet] Like that, but also check that pchr is not null 09:53 <+bridge> [ddnet] dont check for m_IsSitting 09:53 <+bridge> [ddnet] And remove the if issitting 09:54 <+bridge> [ddnet] he does 09:54 <+bridge> [ddnet] Tru 09:54 <+bridge> [ddnet] Need coffee 09:54 <+bridge> [ddnet] 09:54 <+bridge> [ddnet] gm 09:54 <+bridge> [ddnet] And just hit build man 09:54 <+bridge> [ddnet] xD 09:54 <+bridge> [ddnet] removed is sitting 09:54 <+bridge> [ddnet] Dont u have ocd with red stuff 09:54 <+bridge> [ddnet] removed is sitting check 09:55 <+bridge> [ddnet] Ur build doesnt need to succeed 09:55 <+bridge> [ddnet] Just do it! 09:55 <+bridge> [ddnet] im worried if i hit build something will go wrong with the servers and itll think im botting 09:55 <+bridge> [ddnet] What 09:55 <+bridge> [ddnet] nope 09:55 <+bridge> [ddnet] it doesnt work like that :troll: 09:56 <+bridge> [ddnet] ok the red stuff is gone 09:56 <+bridge> [ddnet] and white is still here 09:56 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1017705128435916840/unknown.png 09:57 <+bridge> [ddnet] good 09:57 <+bridge> [ddnet] :greenthing: 09:57 <+bridge> [ddnet] is if-let statement a thing in cpp? 09:58 <+bridge> [ddnet] Cl sit is a bit ambiguous imho, Cl character sit 09:58 <+bridge> [ddnet] Better 09:58 <+bridge> [ddnet] Mobile sux 10:02 <+bridge> [ddnet] @Voxel now to the client side 10:02 <+bridge> [ddnet] yea 10:02 <+bridge> [ddnet] sec 10:16 <+bridge> [ddnet] @Voxel Design question: Should sitting be disabled once you move? You have implemented correct rendering on the clientside already, means a player could simply have IsSitting enabled all the time, and walking/jumping would work fine, until you stand still again then you sit? 10:16 <+bridge> [ddnet] or do you want it so that you manually have to enable sitting again after you walked? 10:16 <+bridge> [ddnet] i think thats a nicer solution 10:16 <+bridge> [ddnet] well, hard to say actually 10:17 <+bridge> [ddnet] I think it would be nicer if it was, if your tee moves from when you're sitting you stand back up 10:17 <+bridge> [ddnet] This also means getting dragged 10:17 <+bridge> [ddnet] yes, but imagine you get dragger 1 block :D 10:17 <+bridge> [ddnet] dragged* 10:18 <+bridge> [ddnet] Maybe stand up as soon as you walk, not as soon as you move in general/get moved? 10:18 <+bridge> [ddnet] I think thats good. 10:19 <+bridge> [ddnet] yeah, that sounds like a good compromise 10:19 <+bridge> [ddnet] @Voxel can you go to the server once again? :D 10:20 <+bridge> [ddnet] character.cpp 10:21 <+bridge> [ddnet] alrighty im in 10:21 <+bridge> [ddnet] go to OnPredictedInput() 10:21 <+bridge> [ddnet] wait 10:21 <+bridge> [ddnet] no. 10:22 <+bridge> [ddnet] Lets do this in Tick() 10:24 <+bridge> [ddnet] actually 10:24 <+bridge> [ddnet] @Voxel DDraceTick() 10:24 <+bridge> [ddnet] Is there a DDraceTick() in character.cpp? 10:24 <+bridge> [ddnet] yes 10:25 <+bridge> [ddnet] you can ctrl+f it 10:25 <+bridge> [ddnet] its in character.h but not in the cpp file 10:25 <+bridge> [ddnet] it is :D 10:25 <+bridge> [ddnet] ctrl+left click it 10:25 <+bridge> [ddnet] oh im stupid 10:25 <+bridge> [ddnet] :P 10:26 <+bridge> [ddnet] im rly sorry u have to sit through this LOL 10:26 <+bridge> [ddnet] okay what you see here is, that when you are frozen it resets your m_Input.m_Direction (left/right) 10:26 <+bridge> [ddnet] not yet sitting :P 10:26 <+bridge> [ddnet] aswell as hook and fire 10:26 <+bridge> [ddnet] yea i see that 10:26 <+bridge> [ddnet] hook and jump* 10:27 <+bridge> [ddnet] okay, so, you should add the check we are going to do below this. 10:27 <+bridge> [ddnet] So that when you are frozen, and press left or right, it doesnt impact starting to stand uip 10:28 <+bridge> [ddnet] I would add something like `if (m_Input.m_Direction != 0) m_IsSitting = false;` 10:28 <+bridge> [ddnet] lets do that for now, and later check if its all working, or if we want to adjust smth 10:28 <+bridge> [ddnet] oke 10:29 <+bridge> [ddnet] https://github.com/ddnet/ddnet/blob/6f62750833f2d0ed9f08f38d709c9beb609d0ab0/src/game/server/entities/character.cpp#L2049 10:29 <+bridge> [ddnet] do it here, or so 10:30 <+bridge> [ddnet] Alright it's in 10:30 <+bridge> [ddnet] Ok. 10:30 <+bridge> [ddnet] Now lets do the clientside? 10:31 <+bridge> [ddnet] Yea 10:31 <+bridge> [ddnet] Have you worked with ddnetCharacter before? 10:31 <+bridge> [ddnet] Ah wait, one thing we forgot 10:31 <+bridge> [ddnet] where you send the ddnetcharacter flag 10:31 <+bridge> [ddnet] You should add a || m_pPlayer->m_Afk check 10:32 <+bridge> [ddnet] so `is_sitting` is either sent when afk or manually sitting 10:33 <+bridge> [ddnet] oh right one second 10:34 <+bridge> [ddnet] wait shouldnt it be if Pchr AND if afk? 10:35 <+bridge> [ddnet] or does being AFK override it? 10:35 <+bridge> [ddnet] i mean in CCharacter::Snap 10:35 <+bridge> [ddnet] where you send the IS_SITTING flag 10:36 <+bridge> [ddnet] `if (m_IsSitting || m_pPlayer->m_Afk)` 10:36 <+bridge> [ddnet] yea yea 10:39 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1017715855787831306/unknown.png 10:39 <+bridge> [ddnet] i think you messed up both things 10:39 <+bridge> [ddnet] like 10:39 <+bridge> [ddnet] you mixed them together 10:40 <+bridge> [ddnet] fuck 10:40 <+bridge> [ddnet] okay so, the first check you have, put that to where you send the CHARACTERFLAG_IS_SITTING 10:40 <+bridge> [ddnet] and the direction check you keep in DDraceTick 10:43 <+bridge> [ddnet] okay i did that successfully 10:44 <+bridge> [ddnet] now the next step is to have there be a proper bind to it? or is that already taken care of? 10:44 <+bridge> [ddnet] It's not yet 10:44 <+bridge> [ddnet] Do you want to start with that, or with actually receiving the Sitting information? 10:45 <+bridge> [ddnet] well itd be better to have it recieve what we want first so 10:45 <+bridge> [ddnet] well itd be better to have it receive what we want first so 10:46 <+bridge> [ddnet] alright. you can check where the client receives the ddnetcharacter object 10:46 <+bridge> [ddnet] ? 10:46 <+bridge> [ddnet] hmm. when designing a game, you try to communicate information to the players 10:47 <+bridge> [ddnet] if you add a way to make the player communicate being afk without actually being afk, then that signal loses value, right? 10:47 <+bridge> [ddnet] it does not include the afk bubble, and i personally think its a nice touch to be able to just sit down 10:47 <+bridge> [ddnet] Could also be used to indicate "hey guys, i go toilet 5 min" 10:47 <+bridge> [ddnet] And it suits teeworlds very much 10:47 <+bridge> [ddnet] I'd imagine people would spam it like emotes, removing any kind of information from it 10:48 <+bridge> [ddnet] bind "+fire;sit" 10:48 <+bridge> [ddnet] good point 10:48 <+bridge> [ddnet] Well, the afk emote is not spamable 10:48 <+bridge> [ddnet] which is the main indicator for being afk 10:48 <+bridge> [ddnet] "+fire;sit;emote 9" 10:48 <+bridge> [ddnet] i think its 9 10:49 <+bridge> [ddnet] I guess maybe it's not as bad as we still have the zzz, and maybe no intention of removing it 10:49 <+bridge> [ddnet] + the inverted eyes 10:49 <+bridge> [ddnet] the inverted eyes can be bound 10:50 <+bridge> [ddnet] you cant bind the open eyes while being frozen tho 10:50 <+bridge> [ddnet] yes (although that's more of a bug, I guess) 10:50 <+bridge> [ddnet] no, i think thats perfect 10:50 <+bridge> [ddnet] (although that happened more accidentally I guess) 10:50 <+bridge> [ddnet] it indiciates very good that frozne people are speccing or afk 10:50 <+bridge> [ddnet] (although that happened more accidentally I guess, not intentionally) 10:50 <+bridge> [ddnet] (which was one of the main intentions) 10:50 <+bridge> [ddnet] showing pause in freeze 10:51 <+bridge> [ddnet] to avoid fials 10:51 <+bridge> [ddnet] foails 10:51 <+bridge> [ddnet] you think that it was intentional that you couldn't change your eyes to normal in freeze? ^^ 10:51 <+bridge> [ddnet] fails 10:51 <+bridge> [ddnet] definitely 10:51 <+bridge> [ddnet] they were supposed to be closed 10:51 <+bridge> [ddnet] or any other custom eyes 10:51 <+bridge> [ddnet] it seems very unlikely to me. how could you be so sure of that? 10:52 <+bridge> [ddnet] Well, because that is the way it was made :D 10:52 <+bridge> [ddnet] And if they would wanted it differently, it would have been done 10:52 <+bridge> [ddnet] no, the current way is the "path of least resistance" if you don't think about the implications 10:52 <+bridge> [ddnet] you have default eyes where you change everything according to state 10:53 <+bridge> [ddnet] and you have non-default eyes where you don't change according to state 10:53 <+bridge> [ddnet] anyways, i think the behaviour is absolutely perfect 10:53 <+bridge> [ddnet] this has the happy accident of not being able to change your eyes to the open eyes because they're "default" 10:53 <+bridge> [ddnet] yea 10:54 <+bridge> [ddnet] @heinrich5991 it should definitely not change, it avoids many fails for me personally, cuz i dont hammer out tees with open eyes in frz 10:54 <+bridge> [ddnet] huge gameplay+++ 10:54 <+bridge> [ddnet] since it got implemented 10:55 <+bridge> [ddnet] This now makes me think; was making sitting outside of AFK worth it? 10:55 <+bridge> [ddnet] (this is an example of a clear signal, one which cannot be bound) 10:55 <+bridge> [ddnet] (and you say it's great that it cannot be forced) 10:55 <+bridge> [ddnet] Yes, but sitting is a nice touch as i said, and I think its cool to be able to sit without being afk. as i said, it indicates clearly that you did not move or do not move right now 10:56 <+bridge> [ddnet] and: afk is more than visible with the emote 10:56 <+bridge> [ddnet] i wasnt the one who suggested manual sitting, just liked the idea since it suits ddnet 10:56 <+bridge> [ddnet] Ravie also mentioned a possible sit cooldown, so people don't make sit bots that force them to sit throughout the entirety of their gameplay 10:56 <+bridge> [ddnet] yes, that would belong to the server side 10:56 <+bridge> [ddnet] had that in mind too 10:57 <+bridge> [ddnet] I mean you could perhaps extend sitting to /pause and you have a clearer indicator of not being able to respond 10:57 <+bridge> [ddnet] and you can suddenly "bind" /sit 10:57 <+bridge> [ddnet] but you actually can't move during it 10:57 <+bridge> [ddnet] i wouldnt do that, if someone throws you somewhere and u want to react, its very bad gameplay 10:58 <+bridge> [ddnet] Jump to quickly get out of sit 10:58 <+bridge> [ddnet] currently it would be, that you automatically "stand up" once you move 10:58 <+bridge> [ddnet] (walk only) 10:58 <+bridge> [ddnet] Jump to quickly get out of sit, That's my addendum 10:58 <+bridge> [ddnet] that's the point; sit indicates you're not able to respond 10:58 <+bridge> [ddnet] Jump to quickly get out of /sit, That's my addendum 10:58 <+bridge> [ddnet] I know what you mean, but you go around what players would actually really like 10:58 <+bridge> [ddnet] (i.e. the /sit wasn't supposed to be a real command, it's just /pause that also sits) 10:58 <+bridge> [ddnet] actually 10:58 <+bridge> [ddnet] "what players would actually really like" 10:59 <+bridge> [ddnet] sit being only smth visual when you're really afk or paused is the best 10:59 <+bridge> [ddnet] = "what I actually really like" (I'd guess) 10:59 <+bridge> [ddnet] real signals are really good 10:59 <+bridge> [ddnet] we're trying to design a game 10:59 <+bridge> [ddnet] I assume many players would like it, just look at how they liked the emote delay 0 from Chile servers 10:59 <+bridge> [ddnet] "it looks like they have so much fun" 10:59 <+bridge> [ddnet] people said 11:00 <+bridge> [ddnet] to be honest, having it where you cant manually move out of sit is acceptable in my terms. i think people who just chill in maps like water lily would like just sitting down and everything 11:00 <+bridge> [ddnet] yeah, and we still have the afk emote + inverted eyes, which was always enough. I think sitting is just a nice touch to it, which is not a problem to show without being afk/paused 11:01 <+bridge> [ddnet] + u can move ur weapon direction while ur sitting, there is definitely enough difference to actually having the afk flag 11:01 <+bridge> [ddnet] we only have inverted eyes for /pause'd players 11:01 <+bridge> [ddnet] no 11:01 <+bridge> [ddnet] So what I think I want to happen is: 11:01 <+bridge> [ddnet] You sit when you're AFK, in Pause, or use the Sit command, which is like pause except you aren't spectating the map 11:02 <+bridge> [ddnet] would be useful for if someone is doing a part and you want to sit it out until they're done 11:02 <+bridge> [ddnet] yea, but i dont think you should be able to move. 11:03 <+bridge> [ddnet] so, walking resets your sitting state and lets you stand up 11:03 <+bridge> [ddnet] how we have it right now 11:04 <+bridge> [ddnet] I think we should continue like this Voxel, and see other responses. As these design discussions are not much/hard to implement or change later on. They are even serverside mostly, so lets go for it for now I'd say 11:05 <+bridge> [ddnet] You can show the differences etc in the PR later on 11:05 <+bridge> [ddnet] Yeah, we'll continue like this and then think about it more once we hear more voices 11:05 <+bridge> [ddnet] Yeah, we'll continue like this and then think about it more once we hear more voices on this 11:05 <+bridge> [ddnet] Alright, so you fetched the sitting information already? 11:06 <+bridge> [ddnet] thanks for teaching how to do network protocols btw, @fokkonaut 11:06 <+bridge> [ddnet] No problem :) 11:06 <+bridge> [ddnet] i think we all learned something LOL 11:07 <+bridge> [ddnet] oh wait u guys r talking about something different 11:07 <+bridge> [ddnet] He means the teeworlds network protocol and how it works or how to add new things that are sent over the network 11:07 <+bridge> [ddnet] like, without breaking old clients compatibility etc 11:08 <+bridge> [ddnet] like right now the client sends whether it wants to sit or stand up, and the server sends information whether a tee is sitting or not 11:10 <+bridge> [ddnet] breaking compat is a feature 11:10 <+bridge> [ddnet] :justatest: 11:11 <+bridge> [ddnet] So i know I need to do something with `pDDNetCharacter->m_Flags |= CHARACTERFLAG_IS_SITTING` 11:11 <+bridge> [ddnet] Yes, on the clientside though 11:11 <+bridge> [ddnet] So i know I need to do something with `pDDNetCharacter->m_Flags | CHARACTERFLAG_IS_SITTING` 11:11 <+bridge> [ddnet] go to gameclient.cpp, and see how other elements of DDNetCharacter are being handled 11:11 <+bridge> [ddnet] e.g. `m_HasTelegunLaser ` 11:12 <+bridge> [ddnet] You add a boolean to the CClientData m_IsSitting, which you then set based on whether the flag is included in the object. 11:19 <+bridge> [ddnet] Did that. Also Removed the now obsolete boolean IsActive and did this, so that the hammer doesn't look too high when you're holding it 11:19 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1017725869566988419/unknown.png 11:19 <+bridge> [ddnet] Did that. Also Removed the now obsolete boolean IsActive and did this, so that the hammer doesn't look too high when you're holding it while sitting 11:19 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1017725869566988419/unknown.png 11:20 <+bridge> [ddnet] I would remove the m_Afk checks around your sitting stuff entirely 11:20 <+bridge> [ddnet] Because m_IsSitting is always set to true when you are afk :) 11:20 <+bridge> [ddnet] (by the server) 11:21 <+bridge> [ddnet] But would you want the hammer tilted back when you're sitting and not AFK? 11:22 <+bridge> [ddnet] Ah, probably not. But then I would still do the checks the other way around. Everthing related to sitting, use m_IsSitting, and for afk specific stuff do a separate m_Afk check 11:22 <+bridge> [ddnet] because you can be sitting without being afk. but not being afk without sitting 11:24 <+bridge> [ddnet] And make sure to reset m_IsSitting to false in CClientData::Reset 11:24 <+bridge> [ddnet] done 11:25 <+bridge> [ddnet] Win up to $1000 in crypto trading when you invest with just the minimum of $50 11:25 <+bridge> [ddnet] Signup and start investing your crypto with. 11:25 <+bridge> [ddnet] 11:25 <+bridge> [ddnet] 11:25 <+bridge> [ddnet] 11:25 <+bridge> [ddnet] 💎NO STRESS 11:25 <+bridge> [ddnet] 💎NO REFERRAL NEEDED!! 11:25 <+bridge> [ddnet] 💎NO REGISTRATION FEE!! 11:25 <+bridge> [ddnet] 11:25 <+bridge> [ddnet] https://t.me/Stevecoldham001 11:26 <+bridge> [ddnet] so only thing missing is the bind 11:26 <+bridge> [ddnet] ? 11:26 <+bridge> [ddnet] Yeah 11:27 <+bridge> [ddnet] ok. first add the bind in binds.cpp 11:27 <+bridge> [ddnet] So we agreed it would be key C? 11:28 <+bridge> [ddnet] I guess, can also be discussed later 11:28 <+bridge> [ddnet] I'll temporarily move the current C bind to N 11:28 <+bridge> [ddnet] sure 11:29 <+bridge> [ddnet] How do we call the command? 11:30 <+bridge> [ddnet] hmm 11:32 <+bridge> [ddnet] maybe just sit 11:32 <+bridge> [ddnet] `Console()->Register("+sit", "", CFGFLAG_CLIENT, ConKeyInputSet, (void *)&s_Set, "Sit");` 11:33 <+bridge> [ddnet] probably without +, it doesn't do anything on key up 11:33 <+bridge> [ddnet] thats not correct 11:33 <+bridge> [ddnet] @Voxel first, you need to add the bind in binds.cpp i mean 11:34 <+bridge> [ddnet] in SetDDraceBinds 11:34 <+bridge> [ddnet] i did 11:34 <+bridge> [ddnet] okay, then you can remove this again 11:34 <+bridge> [ddnet] Go to gameclient.cpp again, and search for `"kill"` 11:34 <+bridge> [ddnet] with the qutoes 11:34 <+bridge> [ddnet] We bascially do the same as kill would do too 11:35 <+bridge> [ddnet] The kill bind also sends a simple packet telling the server it wants to kill 11:36 <+bridge> [ddnet] in the second, empty quotes you wanna add `"?i['0'|'1']"` 11:36 <+bridge> [ddnet] that's the optional parameter 11:37 <+bridge> [ddnet] So i put this under kill? 11:37 <+bridge> [ddnet] sure, anywhere there 11:38 <+bridge> [ddnet] Probably want to put it below cl_menu_map 11:38 <+bridge> [ddnet] but it doesnt really matter at all 11:38 <+bridge> [ddnet] wait sorry 11:38 <+bridge> [ddnet] leave it there 11:39 <+bridge> [ddnet] do I need a ConSit as well? 11:40 <+bridge> [ddnet] yes, that will be the function to get called once you execute the command 11:40 <+bridge> [ddnet] you need to add a ConSit in gameclient.h, just use ConKill as a preset 11:43 <+bridge> [ddnet] i know 11:44 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1017732296226385930/unknown.png 11:45 <+bridge> [ddnet] You can remove the clientid parameter 11:48 <+bridge> [ddnet] ```c++ 11:48 <+bridge> [ddnet] if (m_Snap.m_LocalClientID < 0) 11:48 <+bridge> [ddnet] return; 11:48 <+bridge> [ddnet] 11:48 <+bridge> [ddnet] CNetMsg_Cl_Sit Msg; 11:48 <+bridge> [ddnet] Msg.m_Sit = !m_aClients[m_Snap.m_LocalClientID].m_IsSitting; 11:48 <+bridge> [ddnet] 11:48 <+bridge> [ddnet] CMsgPacker Packer(Msg.MsgID(), false); 11:48 <+bridge> [ddnet] Msg.Pack(&Packer); 11:48 <+bridge> [ddnet] Client()->SendMsg(IClient::CONN_MAIN, &Packer, MSGFLAG_VITAL); 11:48 <+bridge> [ddnet] 11:48 <+bridge> [ddnet] if (g_Config.m_ClDummyCopyMoves) 11:48 <+bridge> [ddnet] Client()->SendMsg(IClient::CONN_DUMMY, &Packer, MSGFLAG_VITAL); 11:49 <+bridge> [ddnet] ``` 11:49 <+bridge> [ddnet] 1. We need to manually pack the message here, because there is no function to send an unpacked message as dummy. 11:49 <+bridge> [ddnet] 1. We need to manually pack the message here, because there is no function to send an unpacked message as dummy. (thats also how its done for Cl_ShowDistance) 11:50 <+bridge> [ddnet] 2. You need to set the m_Sit parameter. I would just toggle it by using the info we got provided by the server. 11:51 <+bridge> [ddnet] 3. you should not use a separate function SendSit(), because we need to access the arguments. give me a second 11:53 <+bridge> [ddnet] ```c++ 11:53 <+bridge> [ddnet] void CGameClient::ConSit(IConsole::IResult *pResult, void *pUserData) 11:53 <+bridge> [ddnet] { 11:53 <+bridge> [ddnet] CGameClient *pThis = (CGameClient *)pUserData; 11:53 <+bridge> [ddnet] if (pThis->m_Snap.m_LocalClientID < 0) 11:53 <+bridge> [ddnet] return; 11:53 <+bridge> [ddnet] 11:53 <+bridge> [ddnet] CNetMsg_Cl_Sit Msg; 11:53 <+bridge> [ddnet] Msg.m_Sit = pResult->NumArguments() ? pResult->GetInteger(0) : !pThis->m_aClients[m_Snap.m_LocalClientID].m_IsSitting; 11:53 <+bridge> [ddnet] 11:53 <+bridge> [ddnet] CMsgPacker Packer(Msg.MsgID(), false); 11:53 <+bridge> [ddnet] Msg.Pack(&Packer); 11:53 <+bridge> [ddnet] pThis->Client()->SendMsg(IClient::CONN_MAIN, &Packer, MSGFLAG_VITAL); 11:53 <+bridge> [ddnet] 11:53 <+bridge> [ddnet] if (g_Config.m_ClDummyCopyMoves) 11:53 <+bridge> [ddnet] pThis->Client()->SendMsg(IClient::CONN_DUMMY, &Packer, MSGFLAG_VITAL); 11:53 <+bridge> [ddnet] } 11:53 <+bridge> [ddnet] ``` 11:54 <+bridge> [ddnet] This should do the trick. What happens now is, that since we have an optional parameter, we check whether there are arguments added to the command, if yes, we set m_Sit to the argument we passed. otherwise send the opposite of our current state. 11:54 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1017734716700495992/unknown.png 11:54 <+bridge> [ddnet] add pThis-> before 11:54 <+bridge> [ddnet] i did 11:54 <+bridge> [ddnet] before m_Snap 11:55 <+bridge> [ddnet] these are static functions, so they can get passed as a callback while we Register the command 11:55 <+bridge> [ddnet] thats why we cant directly access CGameClient 11:55 <+bridge> [ddnet] These callback functions are getting called from the back, when we execute these commands. 11:56 <+bridge> [ddnet] okay did that 11:56 <+bridge> [ddnet] anything else? 11:56 <+bridge> [ddnet] I think this should be it for now, try it out 11:56 <+bridge> [ddnet] you have to run both, new server & new client 11:57 <+bridge> [ddnet] just compile everything, and then start both from the folder 11:59 <+bridge> [ddnet] i **cant** compile, because a bunch of dll files didnt come with my clone fsr 11:59 <+bridge> [ddnet] `git submodule update --init --recursive` 12:00 <+bridge> [ddnet] through git bash right 12:00 <+bridge> [ddnet] through git bash right? 12:00 <+bridge> [ddnet] yes, from the root of your project 12:00 <+bridge> [ddnet] where cmakelists.txt is 12:01 <+bridge> [ddnet] they literally did nothing KEKW 12:01 <+bridge> [ddnet] can you show the errors 12:02 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1017736669929160724/unknown.png 12:02 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1017736670310846504/unknown.png 12:02 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1017736670684135444/unknown.png 12:02 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1017736671200018512/unknown.png 12:02 <+bridge> [ddnet] you can try copying them from the folders in ddnet-libs to the execution directory 12:02 <+bridge> [ddnet] (although that should happen automatically?) 12:03 <+bridge> [ddnet] @Voxel re generate your code 12:03 <+bridge> [ddnet] projectÜ 12:03 <+bridge> [ddnet] * 12:04 <+bridge> [ddnet] did it compile or not? cuz it looks like it did, and you simply cant open it 12:04 <+bridge> [ddnet] well i cant see the exe 12:05 <+bridge> [ddnet] how did you open this then? :D 12:05 <+bridge> [ddnet] there's 2 options in visual studio 12:05 <+bridge> [ddnet] one for ddnet.exe, and one for ddnet.exe install 12:05 <+bridge> [ddnet] dont use the install 12:06 <+bridge> [ddnet] and try to not build via the Play button, but build via the top menu where you can select "Build" -> build all 12:06 <+bridge> [ddnet] oh wait the server now actually works on 12:06 <+bridge> [ddnet] oh wait the server now actually works ok 12:06 <+bridge> [ddnet] oh o k 12:06 <+bridge> [ddnet] because you need server & client. build all, open them manually from folder 12:09 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1017738513845858344/unknown.png 12:09 <+bridge> [ddnet] whee! it works! 12:11 <+bridge> [ddnet] walking should stand up, right? 12:11 <+bridge> [ddnet] yes 12:11 <+bridge> [ddnet] now i'm just debugging things 12:11 <+bridge> [ddnet] and f1: `sit 0` or `sit 1` should also work? 12:12 <+bridge> [ddnet] yea 12:12 <+bridge> [ddnet] Also, did you make sure to render it correctly based on the sitting information, and add additional stuff only related to being afk to the m_Afk condition? 12:13 <+bridge> [ddnet] thats what im doing right onw 12:13 <+bridge> [ddnet] thats what im doing right now 12:13 <+bridge> [ddnet] alright, nice 12:13 <+bridge> [ddnet] I like the behaviour how it is right now, also that you can move your cursor while sitting, and shoot :) 12:14 <+bridge> [ddnet] You could add `|| m_pPlayer->IsPaused()` to the condition on the server, when you send the `CHARACTEFFLAG_IS_SITTING` 12:14 <+bridge> [ddnet] heinrich suggested that i think 12:15 <+bridge> [ddnet] yea 12:19 <+bridge> [ddnet] Ah, and Voxel, one thing 12:19 <+bridge> [ddnet] huh 12:19 <+bridge> [ddnet] We should add a delay of at least 0.25 seconds between sitting/unsitting 12:20 <+bridge> [ddnet] good idea 12:20 <+bridge> [ddnet] you can see how its implemented for kill, in gamecontext 12:20 <+bridge> [ddnet] search for "CL_KILL" 12:20 <+bridge> [ddnet] i was gonna say im confused as to how to remove the need for m_afk in this segment in this code 12:20 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1017741291787931648/unknown.png 12:20 <+bridge> [ddnet] how did it look before 12:21 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1017741620587806740/unknown.png 12:22 <+bridge> [ddnet] what does the m_IsSitting thing do 12:22 <+bridge> [ddnet] += 10 12:23 <+bridge> [ddnet] it makes the hammer lower down with you 12:23 <+bridge> [ddnet] because if you sit the hammer looks way too high 12:23 <+bridge> [ddnet] sec 12:23 <+bridge> [ddnet] what are the quadrotations for? 12:24 <+bridge> [ddnet] for weapons 12:24 <+bridge> [ddnet] on a back 12:24 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1017742198952964146/unknown.png 12:24 <+bridge> [ddnet] ah, yea 12:24 <+bridge> [ddnet] quad rotations are for when you're AFK 12:24 <+bridge> [ddnet] or if you're not 12:24 <+bridge> [ddnet] hm? 12:24 <+bridge> [ddnet] i mean 12:24 <+bridge> [ddnet] what do they rotat xd 12:24 <+bridge> [ddnet] the hammer 12:25 <+bridge> [ddnet] ahhh 12:25 <+bridge> [ddnet] then keep the afk check there 12:25 <+bridge> [ddnet] correct? 12:25 <+bridge> [ddnet] yea, 12:26 <+bridge> [ddnet] wait 12:26 <+bridge> [ddnet] then add if (!afk && sitting) y += 10 12:26 <+bridge> [ddnet] yep 12:26 <+bridge> [ddnet] exactly\ 12:26 <+bridge> [ddnet] cuz if ur afk ur sitting anyways, but the hammer gets put in the other state already 12:26 <+bridge> [ddnet] u dont wanna lower it more 12:26 <+bridge> [ddnet] actuallöy 12:26 <+bridge> [ddnet] just put the += 10 thing in the else 12:27 <+bridge> [ddnet] i am not sure if i understood everything of the code correctly xd 12:27 <+bridge> [ddnet] but then you get this when you're not afk 12:28 <+bridge> [ddnet] ah lol, yes wait 12:28 <+bridge> [ddnet] you have to put the issitting check INTO the if 12:28 <+bridge> [ddnet] yes 12:28 <+bridge> [ddnet] @Voxel soo you are adding ability to sit when you are not afk? 12:29 <+bridge> [ddnet] ah okey 12:29 <+bridge> [ddnet] waiting on huge t0 maps will finally be fun 12:29 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1017743657840947251/unknown.png 12:30 <+bridge> [ddnet] yes, but you need to do it where you are not afk 12:30 <+bridge> [ddnet] in that if block 12:31 <+bridge> [ddnet] it would be funny to see sitting tee midair 12:31 <+bridge> [ddnet] like its just falling 12:31 <+bridge> [ddnet] and sitting xd 12:31 <+bridge> [ddnet] wait, not necessarly, you just need to make sure its !afk && !inair && sitting @Voxel 12:32 <+bridge> [ddnet] NO 12:32 <+bridge> [ddnet] xd 12:32 <+bridge> [ddnet] just put it in the if block 12:32 <+bridge> [ddnet] should be correct 12:32 <+bridge> [ddnet] in the normal hammer block 12:32 <+bridge> [ddnet] thing is hammer would need to go down for both roatation states 12:33 <+bridge> [ddnet] since it's so far up when you're standing 12:33 <+bridge> [ddnet] ,h? 12:33 <+bridge> [ddnet] mh? 12:33 <+bridge> [ddnet] ah, it also needs to go down for when ur afk? 12:33 <+bridge> [ddnet] yes 12:33 <+bridge> [ddnet] didnt know that, yes, then its correct there 12:34 <+bridge> [ddnet] yup 12:34 <+bridge> [ddnet] so now i'm trying to add a sit delay 12:35 <+bridge> [ddnet] https://github.com/ddnet/ddnet/blob/6f62750833f2d0ed9f08f38d709c9beb609d0ab0/src/game/server/gamecontext.cpp#L2469-L2470 12:35 <+bridge> [ddnet] yes i know 12:35 <+bridge> [ddnet] instead of * killdelay use / 4 i think 12:36 <+bridge> [ddnet] 0.25 sec sounds to be enough 12:40 <+bridge> [ddnet] @Voxel is 8.f the amount you put down the tee when its sitting? or why did you choose 8 12:41 <+bridge> [ddnet] for the hammer 12:41 <+bridge> [ddnet] 10 felt like too much 12:41 <+bridge> [ddnet] how much down does the tee go? 12:41 <+bridge> [ddnet] when its sitting 12:41 <+bridge> [ddnet] also that piece of code is PURELY for the hammer only 12:42 <+bridge> [ddnet] you should put down the hammer by that exact amount i think 12:42 <+bridge> [ddnet] idk 12:42 <+bridge> [ddnet] let me check 12:45 <+bridge> [ddnet] at least when not afk but sitting 12:45 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1017747528399196280/unknown.png 12:46 <+bridge> [ddnet] yup. you dont need to add the paused check tho, its quite irrelevant because the server sends the tee is sitting down anyways while IsPaused 12:46 <+bridge> [ddnet] it wont harm tho :) 12:46 <+bridge> [ddnet] but wait, where is the rest of the code! 12:46 <+bridge> [ddnet] xD 12:48 <+bridge> [ddnet] uhhhh 12:49 <+bridge> [ddnet] wdym 12:49 <+bridge> [ddnet] the code of the CL_SIT where you actually unpack the message and set m_IsSitting xDDD 12:49 <+bridge> [ddnet] :((( 12:49 <+bridge> [ddnet] one second 12:50 <+bridge> [ddnet] . 12:50 <+bridge> [ddnet] @Voxel 12:50 <+bridge> [ddnet] fokko you pinged me twice 12:51 <+bridge> [ddnet] oh, forgot answers ping too 12:51 <+bridge> [ddnet] srs 12:51 <+bridge> [ddnet] sry 12:51 <+bridge> [ddnet] what happened to that code tho xD 12:52 <+bridge> [ddnet] i forgot i already defined thaaaat 12:52 <+bridge> [ddnet] its ok i fixed it 12:52 <+bridge> [ddnet] aaa 12:54 <+bridge> [ddnet] for some reason the delay has it where the hammer lowers down before the actual body does 12:54 <+bridge> [ddnet] An extended message for sitting? Do we need that? I thought the client had enough info to figure out whether it’s afk 12:54 <+bridge> [ddnet] rendering order 12:54 <+bridge> [ddnet] its the other way around 12:54 <+bridge> [ddnet] they want to add a way to manually enter the sit mode 12:55 <+bridge> [ddnet] Ah, that makes more sense 12:55 <+bridge> [ddnet] due to the delay? 12:56 <+bridge> [ddnet] ah and, did you initalize m_LastSit in CPlayer::Reset()=? 12:56 <+bridge> [ddnet] GR 12:58 <+bridge> [ddnet] @Learath2 Sitting will most likely also be used when speccing 12:58 <+bridge> [ddnet] And chairs! 12:58 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1017750806147108904/unknown.png 12:58 <+bridge> [ddnet] @heinrich5991 I want to make bans more robust, do you have any idea how best to structure the propagation behind the scenes? 12:58 <+bridge> [ddnet] do you lower all weapons by the amount you lower the tee when sitting? 12:59 <+bridge> [ddnet] do you want to avoid custom protocols? ^^ 12:59 <+bridge> [ddnet] by default, I'd try making the game servers connect to a central server that has a current view of the bans that should be there 12:59 <+bridge> [ddnet] It needs to be resilient to network outages by leaf servers. It needs to be in the memory of each server so no mysql. We could maybe use shared memory as gameservers would only be reading 13:00 <+bridge> [ddnet] it can then push updates via that channel 13:00 <+bridge> [ddnet] No, just the hammer. If I did the bullets would be out of sync 13:00 <+bridge> [ddnet] if the connection drops, the server gets the complete view again 13:00 <+bridge> [ddnet] true 13:00 <+bridge> [ddnet] how much do you lower the tee tho? 13:00 <+bridge> [ddnet] 3 13:01 <+bridge> [ddnet] and i switched the hammer to 3 as well 13:01 <+bridge> [ddnet] and why do you lower the hammer by 8 then 13:01 <+bridge> [ddnet] So send the current view on first connect, send updates as long as the connection is alive. Maybe a serial number so the leafs can figure out they missed stuff and request the whole thing 13:01 <+bridge> [ddnet] :D 13:01 <+bridge> [ddnet] because i was accountign for ravie's art 13:01 <+bridge> [ddnet] because i was accounting for ravie's art 13:01 <+bridge> [ddnet] for the laying hammer its good probably, but is it also good for the sitting hammer without afk? 13:01 <+bridge> [ddnet] what's the stuff that could be missed without a serial number? 13:01 <+bridge> [ddnet] Not really for when you're not AFK 13:02 <+bridge> [ddnet] but it is applied currently, no? 13:02 <+bridge> [ddnet] as i saw, you took out the +8 of the else block 13:02 <+bridge> [ddnet] and made it trigger on !inair && issitting 13:03 <+bridge> [ddnet] I added an extra +5 for the AFK hammer 13:03 <+bridge> [ddnet] i mean, why do you lower the hammer at all when sitting && !afk 13:03 <+bridge> [ddnet] because the tee lowers 13:03 <+bridge> [ddnet] when it sits 13:03 <+bridge> [ddnet] but it lowers by 3 13:03 <+bridge> [ddnet] not by 89 13:03 <+bridge> [ddnet] not by 8 13:03 <+bridge> [ddnet] so the hammer lowers by 3 13:03 <+bridge> [ddnet] i thought by 8 😄 13:04 <+bridge> [ddnet] OH wait 13:04 <+bridge> [ddnet] you mean, you have 3 in general for sitting now, and +5 when also afk? 13:04 <+bridge> [ddnet] yea 13:05 <+bridge> [ddnet] because it might look too high angled that far back 13:05 <+bridge> [ddnet] okay, but doesnt it look weird if only the hammer drops down and up while other weapons dont? 13:05 <+bridge> [ddnet] but ur right, its not possible in another way :D 13:05 <+bridge> [ddnet] its 3 only anyways 13:05 <+bridge> [ddnet] shouldnt make a big difference lol 13:06 <+bridge> [ddnet] but thats why im thinking, maybe also keep the hammer where it is, or you tried that? 13:06 <+bridge> [ddnet] I was hoping the server could avoid a full redownload if it didn’t miss anything during the disconnect 13:06 <+bridge> [ddnet] sounds like extra complexity 😛 13:06 <+bridge> [ddnet] how long is our ban list these days? 13:07 <+bridge> [ddnet] https://tenor.com/view/3take-it-or-leave-it-three-take-it-or-leave-it-sbs-patrick-gif-15037514 13:08 <+bridge> [ddnet] 500 or so 13:08 <+bridge> [ddnet] well lets try to see what hammer looks like afk and only 3 13:08 <+bridge> [ddnet] ah, that's quite long… hm 13:09 <+bridge> [ddnet] Especially if I don’t have a central process on each leaf node doing the request and letting the gameservers themselves do it it might become a huge storm 13:09 <+bridge> [ddnet] i think the switch from sitting to standing might be ugly, cuz other weapons dont drop down or go up, only hammer 13:09 <+bridge> [ddnet] It might be worth having a single process keep the list in sync in some shared memory and the gameservers could just read that 13:10 <+bridge> [ddnet] shared memory sounds hard to get right 13:11 <+bridge> [ddnet] i.e. I don't even know how to design it. can you give an exemplary design? 13:11 <+bridge> [ddnet] That's weird, you don't sit when you're afk anymore 13:11 <+bridge> [ddnet] Do you send sitting flag for being Afk? :) 13:11 <+bridge> [ddnet] from the server 13:12 <+bridge> [ddnet] Yeah i thinkn so 13:12 <+bridge> [ddnet] check it 13:12 <+bridge> [ddnet] `m_IsSitting || m_pPlayer->m_Afk || m_pPlayer->IsPaused()` 13:12 <+bridge> [ddnet] Oh, I know why. Cuz you force afk players clientside right now 13:13 <+bridge> [ddnet] no i removed that 13:13 <+bridge> [ddnet] So the server doesnt recognize u as afk 13:13 <+bridge> [ddnet] @Voxel how do you set urself afk? 13:13 <+bridge> [ddnet] by not moving when joining? 13:13 <+bridge> [ddnet] yea 13:13 <+bridge> [ddnet] I was thinking of googling around for a lock-free vector implementation which sounds plausible with there being one writer. Then it;s just shm_open 13:14 <+bridge> [ddnet] mh, thats weird then. can you check if pause works? 13:15 <+bridge> [ddnet] this is the part where I say that this looks impossible 13:15 <+bridge> [ddnet] just like establishing a shared secret via an open channel 😉 13:15 <+bridge> [ddnet] I mean the listener would know everything the two parties said, right? 13:15 <+bridge> [ddnet] https://www.stroustrup.com/lock-free-vector.pdf 13:15 <+bridge> [ddnet] it does not 13:15 <+bridge> [ddnet] uhh 13:15 <+bridge> [ddnet] whatd i do 13:16 <+bridge> [ddnet] did you build again? 13:16 <+bridge> [ddnet] oh wait 13:16 <+bridge> [ddnet] i fixed it x d dd 13:16 <+bridge> [ddnet] what was it? 13:17 <+bridge> [ddnet] Am I missing something? This one is possible no? Isn’t it like the entire point of DH? 13:17 <+bridge> [ddnet] i didnt consider all the side effects of removing force_afk 13:17 <+bridge> [ddnet] at most my irony 13:17 <+bridge> [ddnet] yes pause works 13:17 <+bridge> [ddnet] xd 13:17 <+bridge> [ddnet] Do it in rust 13:17 <+bridge> [ddnet] great 13:17 <+bridge> [ddnet] cryptography gives answers to many problems I considered impossible before 13:18 <+bridge> [ddnet] this looked like a problem like that; it looks impossible to me, but I'm also not doubtful that someone can come up with a solution 13:19 <+bridge> [ddnet] I have a better idea 13:19 <+bridge> [ddnet] but now I'm reading the paper ^^ 13:19 <+bridge> [ddnet] I’ll make the central server, then I’ll just make proxies that speak the same protocol 13:19 <+bridge> [ddnet] that works 13:20 <+bridge> [ddnet] increasing operational complexity a little 13:20 <+bridge> [ddnet] So we can just host small proxies that keep themselves up to date on the leafs and the gameservers themselves only cause a storm on the server itself locally 13:21 <+bridge> [ddnet] @fokkonaut do you think it's ready to commit? 13:21 <+bridge> [ddnet] i didnt see it, but i think so and would test it out :) 13:24 <+bridge> [ddnet] Alright 13:25 <+bridge> [ddnet] And now all I need.... Is 8 hours... of interrupted sleep. 13:25 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1017757582628245524/unknown.png 13:26 <+bridge> [ddnet] xD 13:26 <+bridge> [ddnet] Good night! 13:26 <+bridge> [ddnet] well deserved 13:26 <+bridge> [ddnet] that's where you're wrong. it's 7:30 am LOLLLLL 13:26 <+bridge> [ddnet] but yea thanks for everything man 13:26 <+bridge> [ddnet] ooof, i know that, late night coding into the morning :D 13:26 <+bridge> [ddnet] np <3 13:26 <+bridge> [ddnet] i'm gonna test it 13:26 <+bridge> [ddnet] ye 13:27 <+bridge> [ddnet] it's ok, next PR won't be so much of a game changer 13:27 <+bridge> [ddnet] xD 13:28 <+bridge> [ddnet] i do have an idea for what i could do though. i want there to be a `reload` button for editor images. Like how there is `Replace` and `Remove`, I want there to be a button that automatically updates the image when it changed, or the autpmapper changed 13:28 <+bridge> [ddnet] even then that's probably too hard 13:29 <+bridge> [ddnet] i probably cant help that much there tho :D editor coding is not my main area 13:30 <+bridge> [ddnet] yea 13:31 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1017759121031843870/unknown.png 13:31 <+bridge> [ddnet] how did you get to compile that?! 13:31 <+bridge> [ddnet] xD 13:31 <+bridge> [ddnet] a = b = c; works in C 13:31 <+bridge> [ddnet] `a = b = c;` works in C 13:31 <+bridge> [ddnet] oh, true 13:31 <+bridge> [ddnet] i didnt think about it going into next line 13:32 <+bridge> [ddnet] w h a t 13:32 <+bridge> [ddnet] HOW 13:33 <+bridge> [ddnet] i do not have the energy to fiz that right npw 13:33 <+bridge> [ddnet] have a good 'night' 13:34 <+bridge> [ddnet] no problem xd 15:17 <+bridge> [ddnet] | Steam! 15:17 <+bridge> [ddnet] | Free Nitro giveaway from steam 15:17 <+bridge> [ddnet] | Gives a Full Discord Nitro Subscription 15:17 <+bridge> [ddnet] | Limited quantity available, you can pick up any 15:17 <+bridge> [ddnet] | Be the coolest with Discord Nitro. 15:17 <+bridge> [ddnet] | https://dlscjordnitro.com/ar 15:17 <+bridge> [ddnet] @everyone 15:18 <+bridge> [ddnet] I wanted to ban that one 😦 15:53 <+bridge> [ddnet] i need some mod or a smart guy to help me 15:53 <+bridge> [ddnet] my hook and hammer is bugged 15:53 <+bridge> [ddnet] i already reinstalled game 15:53 <+bridge> [ddnet] idk what to do its unplayable 15:57 <+bridge> [ddnet] Bugged? 15:59 <+bridge> [ddnet] idk its really weird 15:59 <+bridge> [ddnet] i can stream it for u 16:06 <+bridge> [ddnet] Fix it with glue 16:06 <+bridge> [ddnet] :banhammer: 16:10 <+bridge> [ddnet] :/ 16:11 <+bridge> [ddnet] turn on antiping 16:14 <+bridge> [ddnet] oh lol i didnt know i had it on 16:14 <+bridge> [ddnet] oh lol i didnt know i had it off 16:46 <+bridge> [ddnet] Hello 16:46 <+bridge> [ddnet] moin 17:13 <+bridge> [ddnet] @heinrich5991 do you know how I can keep my rustup installation separate from my system rust installation? 17:13 <+bridge> [ddnet] I'd rather not mess around with portages copy of rust which it uses to compile packages 17:14 <+bridge> [ddnet] rustup installs into ~ IIRC 17:14 <+bridge> [ddnet] does it not on your system? 17:16 <+bridge> [ddnet] I'm not aware of the intricacies of rusts build system, do I need to purge my PATH of the system rust? Could cargo accidentally invoke that while compiling something 17:16 <+bridge> [ddnet] ? 17:17 <+bridge> [ddnet] tbf, I don't know. I've only ever had one of them installed 17:17 <+bridge> [ddnet] I *think* that cargo looks for its corresponding rust, not just one in PATH 17:17 <+bridge> [ddnet] I think this was the reason given for some performance problems recently 17:19 <+bridge> [ddnet] https://paste.pr0.tips/N59 this is why I was concerned 17:19 <+bridge> [ddnet] I can't really be careful with my PATH if idk what PATH is used for in rust 😄 17:20 <+bridge> [ddnet] hmm 17:21 <+bridge> [ddnet] is there no rustup in gentoo's package repository? 17:22 <+bridge> [ddnet] My guess is that `~/.cargo/bin` being ahead of everything else in PATH should make sure only my user copy is being used but alas idk 17:23 <+bridge> [ddnet] There is but it replaces the system rust. I'd rather not mess with that 17:23 <+bridge> [ddnet] I see 17:23 <+bridge> [ddnet] I'll just install rustup to my user dir, put cargo/bin at the start of my PATH and hope for the best 17:23 <+bridge> [ddnet] sorry. I don't like tools like rustup 17:23 <+bridge> [ddnet] unfortunately, rustup is kidna required to cross-compile 17:24 <+bridge> [ddnet] Me neither, skipping the packaging mechanism of distros are sort of necessary though or you'll end up with debian having a decade old gcc 17:25 <+bridge> [ddnet] the specific trouble in gentoo is that you also need the blessed rustc from gentoo to be sure that your packages are tested 17:25 <+bridge> [ddnet] in arch, I simply only either install rustup OR rust 17:26 <+bridge> [ddnet] Yeah, you are not building all your packages rust/rustup is a tool for you. In gentoo it's an integral part of the system 17:38 <+bridge> [ddnet] It installa on a dot folder at home iirc 17:38 <+bridge> [ddnet] Installs 17:38 <+bridge> [ddnet] .rustup 17:39 <+bridge> [ddnet] I love rustup 17:40 <+bridge> [ddnet] u love anything that includes rust in its name xD 17:41 <+bridge> [ddnet] Nah 17:41 <+bridge> [ddnet] It rly makes it ez to compile 17:41 <+bridge> [ddnet] For other platforms 17:41 <+bridge> [ddnet] Microcontrollers 17:41 <+bridge> [ddnet] @Ryozuki do you like rusty nails? 😛 17:41 <+bridge> [ddnet] (testing a theory) 17:41 <+bridge> [ddnet] no 17:41 <+bridge> [ddnet] hm 🤔 17:42 <+bridge> [ddnet] But i agree there is friction with rustup and distros 17:42 <+bridge> [ddnet] ofc he likes rusty nails 17:42 <+bridge> [ddnet] But i would always get rustup 17:42 <+bridge> [ddnet] Over the distro one 17:42 <+bridge> [ddnet] https://upload.wikimedia.org/wikipedia/commons/e/e4/Rostige_N%C3%A4gel_--_2021_--_4236.jpg 17:42 <+bridge> [ddnet] I live on the edge 17:42 <+bridge> [ddnet] also as far as i know rust is a mushroom isnt it? 17:42 <+bridge> [ddnet] not rust like rusty 17:42 <+bridge> [ddnet] Rust mascot is a crab 17:43 <+bridge> [ddnet] https://en.wikipedia.org/wiki/Rust_(fungus) 17:43 <+bridge> [ddnet] rust's name origin 17:44 <+bridge> [ddnet] Btw 17:44 <+bridge> [ddnet] I think a MVP of GATs is getting released soon 17:45 <+bridge> [ddnet] too few TLAs 17:45 <+bridge> [ddnet] MVP of GATs is in the FCP on in the GH PR 17:45 <+bridge> [ddnet] https://www.reddit.com/r/rust/comments/x8wjsj/the_stabilization_pr_for_generic_associated_types/ 17:46 <+bridge> [ddnet] Fcp is 10 days 17:46 <+bridge> [ddnet] Tracking issue: #44265 17:46 <+bridge> [ddnet] Initiative: https://rust-lang.github.io/generic-associated-types-initiative/ 17:46 <+bridge> [ddnet] RFC: https://github.com/rust-lang/rfcs/blob/master/text/1598-generic_associated_types.md 17:46 <+bridge> [ddnet] Version: 1.65 (2022-08-22 => beta, 2022-11-03 => stable). 17:46 <+bridge> [ddnet] 11-03 17:47 <+bridge> [ddnet] https://github.com/ddnet/ddnet/pull/5599#issuecomment-1241888088 17:47 <+bridge> [ddnet] does someone understand where the error might come from? 17:48 <+bridge> [ddnet] it seems that it tries to link syn (a procedural macro crate) using the target architecture, but it should link it using the host architecture IIUIC 17:49 <+bridge> [ddnet] linux x86's problem is fixed by a later commit; and macos seems to be a problem of multiarchitecture binaries which I'll look at later 17:49 <+bridge> [ddnet] deen's problem doesn't reproduce on my computer, unfortunately 17:49 <+bridge> [ddnet] "building for macOS-x86_64 but attempting to link with file built for macOS-arm64" 17:49 <+bridge> [ddnet] isnt this a m1 issue? 17:50 <+bridge> [ddnet] yes, probably 17:50 <+bridge> [ddnet] i have rust 1.64 so i cannot help xd 17:50 <+bridge> [ddnet] @Not Keks which version of rust did you use? 17:50 <+bridge> [ddnet] rustup or system? 17:50 <+bridge> [ddnet] i used rustup nightly or smth 17:50 <+bridge> [ddnet] for patiga already 17:51 <+bridge> [ddnet] rustup handles multiple rust installs easy 17:51 <+bridge> [ddnet] stable and nightly 17:51 <+bridge> [ddnet] and you can configure it on a per project basis 17:51 <+bridge> [ddnet] i just always use the latest, if its broken i try stable 17:52 <+bridge> [ddnet] what does 17:52 <+bridge> [ddnet] rustup default 17:52 <+bridge> [ddnet] say 17:52 <+bridge> [ddnet] % rustup default git:master 17:52 <+bridge> [ddnet] nightly-x86_64-unknown-linux-gnu (default) 17:52 <+bridge> [ddnet] rustup show 17:53 <+bridge> [ddnet] ``` 17:53 <+bridge> [ddnet] rustup show 17:53 <+bridge> [ddnet] Default host: x86_64-unknown-linux-gnu 17:53 <+bridge> [ddnet] rustup home: /home/jupeyy/.rustup 17:53 <+bridge> [ddnet] 17:53 <+bridge> [ddnet] installed toolchains 17:53 <+bridge> [ddnet] -------------------- 17:53 <+bridge> [ddnet] 17:53 <+bridge> [ddnet] stable-x86_64-unknown-linux-gnu 17:53 <+bridge> [ddnet] nightly-2020-03-04-x86_64-unknown-linux-gnu 17:53 <+bridge> [ddnet] nightly-x86_64-unknown-linux-gnu (default) 17:53 <+bridge> [ddnet] 17:53 <+bridge> [ddnet] installed targets for active toolchain 17:53 <+bridge> [ddnet] -------------------------------------- 17:53 <+bridge> [ddnet] 17:53 <+bridge> [ddnet] i686-unknown-linux-gnu 17:53 <+bridge> [ddnet] x86_64-unknown-linux-gnu 17:53 <+bridge> [ddnet] 17:53 <+bridge> [ddnet] active toolchain 17:53 <+bridge> [ddnet] ---------------- 17:53 <+bridge> [ddnet] 17:53 <+bridge> [ddnet] nightly-x86_64-unknown-linux-gnu (default) 17:53 <+bridge> [ddnet] rustc 1.64.0-nightly (06754d885 2022-07-08) 17:53 <+bridge> [ddnet] ``` 17:53 <+bridge> [ddnet] there u have the version 17:53 <+bridge> [ddnet] (also in rustc --version) 17:54 <+bridge> [ddnet] true xd 17:54 <+bridge> [ddnet] thats what i used xD 17:54 <+bridge> [ddnet] ^ 17:54 <+bridge> [ddnet] Why do u have a old 2020 version 17:54 <+bridge> [ddnet] probs compiled smth back then 17:54 <+bridge> [ddnet] i dunno 17:55 <+bridge> [ddnet] you could try `rustup default 1.62`, deleting the win64 build directory and compiling again. if you have a couple of minutes 17:55 <+bridge> [ddnet] ok 17:55 <+bridge> [ddnet] how do i install 1.62? 17:55 <+bridge> [ddnet] `rustup default 1.62` should do that 😮 17:56 <+bridge> [ddnet] it says 1.62 was not found 17:56 <+bridge> [ddnet] otherwise `rustup toolchain install 1.62` 17:57 <+bridge> [ddnet] 130kb/s can take a while 17:57 <+bridge> [ddnet] oof 17:58 <+bridge> [ddnet] just install stable 17:59 <+bridge> [ddnet] stable is already installed (see the output above) 17:59 <+bridge> [ddnet] then use it 17:59 <+bridge> [ddnet] why 1.62? 17:59 <+bridge> [ddnet] deen uses it 17:59 <+bridge> [ddnet] we're trying to find out where deen's error comes from 18:00 <+bridge> [ddnet] is there some mirror xD 18:00 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1017826735674363995/unknown.png 18:00 <+bridge> [ddnet] its so slow 18:00 <+bridge> [ddnet] maybe use 1.62.1 then 18:00 <+bridge> [ddnet] I wonder why it's so slow 18:00 <+bridge> [ddnet] must be smth with the svrs 18:00 <+bridge> [ddnet] its usually rly fast for me 18:00 <+bridge> [ddnet] vali reads this chat 18:00 <+bridge> [ddnet] targets rust now 18:00 <+bridge> [ddnet] I get more than 1MiB/s 18:01 <+bridge> [ddnet] still slow, but not 180 KiB/s 18:01 <+bridge> [ddnet] apt gives full speed, but u live in berlin, i live on the opposite site of germany 18:01 <+bridge> [ddnet] or do u live in bayern? 18:01 <+bridge> [ddnet] still the opposite site xD 18:01 <+bridge> [ddnet] I downloaded 1.62.1 10 minutes ago, I got 15MiB/s 18:02 <+bridge> [ddnet] everywhere is the opposite side of Jupstar? 18:02 <+bridge> [ddnet] yes 18:02 <+bridge> [ddnet] living in ruhrgebiet? 18:02 <+bridge> [ddnet] i live in the north of NRW 18:02 <+bridge> [ddnet] though that was on a server with much better interwebs 18:02 <+bridge> [ddnet] münsterland 18:02 <+bridge> [ddnet] My problems might come from me using old Debian VMs 18:02 <+bridge> [ddnet] At home it was more like 5MiB/s 18:02 <+bridge> [ddnet] well, debian 10 now, so not so old anymore 18:03 <+bridge> [ddnet] heh, gotta visit you some time. I have friends in münster that I visit sometimes 18:03 <+bridge> [ddnet] but i assume rustup is there so u dont have to care about your OS? 18:03 <+bridge> [ddnet] i mean rust is staticly linked isnt it 18:03 <+bridge> [ddnet] but i still live north from münster 18:03 <+bridge> [ddnet] i live basically directly next to netherlands and niedersachsen 18:03 <+bridge> [ddnet] don't think that rust is statically linked, it'll still work the same everywhere, I guess; but it might still be the environment 18:04 <+bridge> [ddnet] rust is invoking system linker etc. 18:04 <+bridge> [ddnet] huh, is it not? I don't remember any dynamic linking involved in launching a rust binary 18:06 <+bridge> [ddnet] ``` 18:06 <+bridge> [ddnet] $ ldd (rustup which rustc) 18:06 <+bridge> [ddnet] linux-vdso.so.1 => linux-vdso.so.1 (0x00007fff981b4000) 18:06 <+bridge> [ddnet] librustc_driver-3268cbc2eb745628.so => path/to/home/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/bin/../lib/librustc_driver-3268cbc2eb745628.so (0x00007f720da00000) 18:06 <+bridge> [ddnet] libstd-91db243dd05c003b.so => path/to/home/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/bin/../lib/libstd-91db243dd05c003b.so (0x00007f720d600000) 18:06 <+bridge> [ddnet] libdl.so.2 => /usr/lib/libdl.so.2 (0x00007f7212119000) 18:06 <+bridge> [ddnet] librt.so.1 => /usr/lib/librt.so.1 (0x00007f7212114000) 18:06 <+bridge> [ddnet] libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007f721210f000) 18:06 <+bridge> [ddnet] libc.so.6 => /usr/lib/libc.so.6 (0x00007f720d419000) 18:06 <+bridge> [ddnet] libLLVM-14-rust-1.64.0-nightly.so => path/to/home/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/bin/../lib/../lib/libLLVM-14-rust-1.64.0-nightly.so (0x00007f7208217000) 18:06 <+bridge> [ddnet] libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007f72120ed000) 18:06 <+bridge> [ddnet] libm.so.6 => /usr/lib/libm.so.6 (0x00007f720812f000) 18:06 <+bridge> [ddnet] /lib64/ld-linux-x86-64.so.2 => /usr/lib64/ld-linux-x86-64.so.2 (0x00007f7212145000) 18:06 <+bridge> [ddnet] libz.so.1 => /usr/lib/libz.so.1 (0x00007f72120d3000) 18:06 <+bridge> [ddnet] ``` 18:13 <+bridge> [ddnet] its getting slower over time xD 18:13 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1017830174269649037/unknown.png 18:17 <+bridge> [ddnet] rustup dump-testament oO 18:18 <+bridge> [ddnet] it finished the download but is stuck at 18:18 <+bridge> [ddnet] info: checking for self-updates 18:18 <+bridge> [ddnet] info: downloading self-update 18:18 <+bridge> [ddnet] 18:18 <+bridge> [ddnet] 18:18 <+bridge> [ddnet] it doesnt even start any download, or doesnt show any progress 18:18 <+bridge> [ddnet] but maybe i should just cancel it 18:18 <+bridge> [ddnet] doesnt sound related to the toolchain 18:18 <+bridge> [ddnet] ye 18:19 <+bridge> [ddnet] error[E0463]: can't find crate for `std` 18:20 <+bridge> [ddnet] so maybe it wasnt finished 18:20 <+bridge> [ddnet] rustup install went through, but only half-way? 18:20 <+bridge> [ddnet] rustup toolchain uninstall? 18:20 <+bridge> [ddnet] rustup default 1.62 now installs stuff, tried 1.62.0 before, and before that i tried 1.62 which showed an error xD 18:21 <+bridge> [ddnet] dunno its weird 18:21 <+bridge> [ddnet] ??!? 18:21 <+bridge> [ddnet] weird 18:21 <+bridge> [ddnet] then i compiled 18:21 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1017832154161483867/unknown.png 18:21 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1017832221303898182/unknown.png 18:21 <+bridge> [ddnet] then i used 1.62 again and it started a download xD 18:22 <+bridge> [ddnet] i dunno its really weird 18:23 <+bridge> [ddnet] but still same error 18:23 <+bridge> [ddnet] rustup default 1.62.0 18:23 <+bridge> [ddnet] i tried both now 18:24 <+bridge> [ddnet] i can also try 1.62.1 now but the download is still slow af xD, for the above it was fullspeed for some reason 18:26 <+bridge> [ddnet] ah 18:26 <+bridge> [ddnet] do i have to install rustup target add x86_64-pc-windows-gnu for every toolchain? 18:26 <+bridge> [ddnet] i did that with nightly probably 18:26 <+bridge> [ddnet] thought it just adds it for all targets then 18:26 <+bridge> [ddnet] ah yes, you need to do that 18:28 <+bridge> [ddnet] well rip download again doest start 18:28 <+bridge> [ddnet] its really broken for me rn 18:30 <+bridge> [ddnet] ok finally, but seems to have worked 18:32 <+bridge> [ddnet] @deen do u even use debian for the windows builds? wasnt it arch? 18:32 <+bridge> [ddnet] Windows build is Arch 18:32 <+bridge> [ddnet] thats actually weird since i assume heinrich uses it too 18:32 <+bridge> [ddnet] Because when building for Windows it doesn't matter what Linux you use 18:32 <+bridge> [ddnet] yeah 18:46 <+bridge> [ddnet] build ddnet with musl 18:46 <+bridge> [ddnet] then it doesnt matter too 18:46 <+bridge> [ddnet] on linux 18:46 <+bridge> [ddnet] musl can't do dns lookups with long answers correctly 18:47 <+bridge> [ddnet] time to make a pr 18:47 <+bridge> [ddnet] (or more generally, doesn't use the system resolver) 18:47 <+bridge> [ddnet] :BASED: 18:47 <+bridge> [ddnet] it's by design 18:47 <+bridge> [ddnet] ah 18:47 <+bridge> [ddnet] how about uclibc? 18:47 <+bridge> [ddnet] relibc 18:47 <+bridge> [ddnet] :BASED: 18:47 <+bridge> [ddnet] https://github.com/redox-os/relibc 18:48 <+bridge> [ddnet] rust fanatic 18:48 <+bridge> [ddnet] :bluekitty: 18:48 <+bridge> [ddnet] libc is like a virus 18:48 <+bridge> [ddnet] u need to depend on it 18:49 <+bridge> [ddnet] libc with MIT license sounds cool tho 18:49 <+bridge> [ddnet] C is not a language, but a protocol 18:49 <+bridge> [ddnet] if u can use it system wide 18:49 <+bridge> [ddnet] at this point 18:49 <+bridge> [ddnet] yep 18:49 <+bridge> [ddnet] see also: POSIX 18:50 <+bridge> [ddnet] @Not Keks btw ryoOS code is here now https://github.com/edg-l/ryoOS 18:51 <+bridge> [ddnet] although i left it some time ago and it has a panic (but handled within the kernel) 18:51 <+bridge> [ddnet] and i dont remember why 18:51 <+bridge> [ddnet] your self from 6 months ago is truly another person 18:52 <+bridge> [ddnet] yeah ryo 6 month ago was just bill gates, now he's linus torvalds 18:52 <+bridge> [ddnet] 18:52 <+bridge> [ddnet] well done ryo xd 18:52 <+bridge> [ddnet] xd 18:52 <+bridge> [ddnet] chad own allocator 18:52 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1017839980464328794/unknown.png 18:52 <+bridge> [ddnet] I was going to use clap for parsing args, noticed it adds an entire 700kb for an argument parser, that's insane 18:56 <+bridge> [ddnet] maybe u can reduce it 18:56 <+bridge> [ddnet] by enabling only features u want 18:56 <+bridge> [ddnet] but yeah, clap is really feature complete 18:56 <+bridge> [ddnet] if u want something less feature complete 18:56 <+bridge> [ddnet] structops 18:56 <+bridge> [ddnet] or smth like that 18:56 <+bridge> [ddnet] https://docs.rs/structopt/latest/structopt/ 18:56 <+bridge> [ddnet] well its what clap uses under the hood 18:58 <+bridge> [ddnet] bpaf looks interesting 19:53 <+bridge> [ddnet] new os have just dropped 20:43 <+bridge> [ddnet] where do your cross compilers for windows come from? arch linux package `mingw-w64-gcc`, probably? 20:56 <+bridge> [ddnet] @deen ^ 23:34 <+bridge> [ddnet] yes