02:31 < bridge> @Voxel what are you currently trying? 02:31 < bridge> you could make a "team killed" message that shows the whole team in the kill feed 02:32 < bridge> huh 02:33 < bridge> I'm just basing the logic from teams.cpp, in `CGameTeams::OnCharacterDeath()` 02:34 < bridge> line 1056: 02:34 < bridge> `if(GetTeamState(Team) != TEAMSTATE_OPEN)` 02:35 < bridge> Wait, make a netmsg for that? I kind of did that already 02:36 < bridge> but why do you need the team state then? 02:36 < bridge> if the server sends "whole team was killed" then the whole team was killed 02:38 < bridge> And how do we determine that? 02:38 < bridge> that the whole team was killed? 02:38 < bridge> that happens in server code 02:38 < bridge> Yeah 02:39 < bridge> Exactly 02:39 < bridge> you're asking me how the server determines whether the whole team is killed? 02:39 < bridge> Not really, I'm asking how it knows when to kill off the entire team when someone dies, or just that person 02:40 < bridge> Which is why I was wondering about teamstates 02:41 < bridge> the server already does that 02:41 < bridge> so you could go into the code and add the "the whole team was killed" message into the server code there 02:42 < bridge> (and find a way to suppress the other individual kill messages) 02:43 < bridge> But how do I fluently communicate that to the client-sided code, which you said can't be linked with server sided code. 02:43 < bridge> But how do I fluently communicate that to the client-sided code, which you said can't be linked with server sided code? 02:43 < bridge> no client side code was involved in my description so far 02:44 < bridge> my client side code would be 'if I get the "the whole team is killed" message', then display that the whole team was killed 02:44 < bridge> my client side code would be 'if I get the "the whole team is killed" message, then display that the whole team was killed' 02:47 < bridge> Did you see my update to #6437 yet 02:47 < bridge> https://github.com/ddnet/ddnet/pull/6437 02:47 < bridge> I'm just clang formatting it right now 02:55 < bridge> I think that's a bit complicated right now 02:56 < bridge> you're using two messages to transport information about one kill 02:56 < bridge> `NETMSGTYPE_SV_KILLMSG` β†’ one tee was killed 02:56 < bridge> `NETMSGTYPE_SV_KILLTEAM` β†’ a whole team was killed 02:57 < bridge> no need to reimplement team state logic in the client this way 02:57 < bridge> if a team is killed, only send one `NETMSG_SV_KILLTEAM` message 02:57 < bridge> no `NETMSG_SV_KILLMSG` 02:57 < bridge> if someone from a team dies without killing their entire team, only send a `NETMSG_SV_KILLMSG` 02:58 < bridge> then the client code will be very easy 03:15 < bridge> oh 03:16 < bridge> i'll try and refactor all of this tommorow 03:18 < bridge> Does this mean I have to `m_aKillmsgs[m_KillmsgCurrent] = Kill;` for both messages in killmessage.cpp? 03:21 < bridge> yes 03:23 < bridge> I'll refactor everything tommorow, but in its current state it produces the exact output I want it to 03:30 < bridge> cool! πŸ™‚ 03:30 < bridge> I really like the idea, but I think I said that already 04:10 < bridge> Thanks@ 04:10 < bridge> Thanks! 04:10 < bridge> Actually, I can split it right now, it shouldn't be too hard. 05:03 < bridge> @heinrich5991 Okay, I submitted another PR. Hopefully I understood you right. 05:04 < bridge> I'll be squashing it with the other one when I know it's perfect. 05:56 < bridge> now you're sending one `NETMSG_SV_KILLTEAM` per team member,I think 05:56 < bridge> instead of just one for the whole team 05:56 < bridge> if I understand the code correctly 05:57 < bridge> `void CCharacter::Die(int Killer, int Weapon, bool Single)` has a new bool for if it's only going to be one tee dying 05:57 < bridge> By default it's true, but if it's false the killmessage packet doesn't even send 05:57 < bridge> `void CCharacter::Die(int Killer, int Weapon, bool Single)` has a new bool (Single) for if it's only going to be one tee dying 05:57 < bridge> By default it's true, but if it's false the killmessage packet doesn't even send 06:14 < bridge> ah, I see πŸ™‚ 06:14 < bridge> yea, the logic looks good now, then 08:27 < bridge> @Voxel Change Parameter Single to "Teamkill" or "SendKillMsg" 08:27 < bridge> and send or not send the kill msg according to that 08:27 < bridge> And pass it from where the team kills each character. 08:27 < bridge> And send a team kill msg before then 14:22 < bridge> is github down 14:27 < bridge> haha 14:27 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1089888352033046688/image.png 14:58 < bridge> @deen HEH??? 14:58 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1089896328177393684/screenshot_2023-03-27_14-58-39.png 14:59 < bridge> @Ryozuki wtf this is so unexpected 14:59 < bridge> LMAO 14:59 < bridge> you can create a Con folder without error 14:59 < bridge> wtf 15:00 < bridge> needless to say what version is this :lol: 15:02 < bridge> <<~{Barsik}~>> mrpg :justatest: 15:04 < bridge> we hacked windows 15:07 < bridge> why do u ping everyone 15:10 < bridge> you coded it didn't you :kek: 15:11 < bridge> Does windows break if you have a Con folder? 15:13 < bridge> tf are u talking about 15:13 < bridge> xd 15:13 < bridge> as you can see u broke your setup. a con directory now exists and u have to reinstall windows 15:14 < bridge> no disrespect but sometimes i dont understand you xD 15:14 < bridge> i correct myself, windows is now broken for you forever. please install linux to continue 15:22 < bridge> wait, don't i already do that? im confused i just woke up 15:23 < bridge> ryo, i was jokingΕ± 15:23 < bridge> ryo, i was joking 15:23 < bridge> and about the Con folder, I was genuine xd 15:23 < bridge> didnt Check 15:23 < bridge> :greenthing: 15:23 < bridge> isn't it more than Con? 15:23 < bridge> some random id 15:24 < bridge> some random hash id 15:24 < bridge> in curled brackets 15:24 < bridge> {} 15:24 < bridge> Con was DOS times I think used for the I/O of hardware 15:24 < bridge> shouldn't be like that anymore 15:25 < bridge> but maybe I am clueless 15:25 < bridge> i managed to get a `git push` through 15:25 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1089903030155083926/image.png 15:33 < bridge> con still can't be a file name on modern windows 15:34 < bridge> a file name 15:34 < bridge> but in this case it was a folder 15:40 < bridge> ah, my bad, i didnt know Con name was special or meaningful 15:40 < bridge> so to me i was, wtf is this guy saying lol 15:40 < bridge> xD 15:40 < bridge> Windows doesn't allow you to do that, so it was like dark magic for me xd 15:45 < bridge> @Chairn what do you think about https://github.com/chipsalliance/chisel 15:46 < bridge> https://www.chisel-lang.org/ 15:49 < bridge> Doesn't work for me on Windows 10. Are you using Windows 11? Maybe it was changed there. 15:49 < bridge> Ye 15:49 < bridge> Same issue xd 15:50 < bridge> eh, you mean the folder creating part? maybe it's changed on windows 11 15:50 < bridge> but windows 11 doesn't allow you still 15:50 < bridge> Maybe it's not allowed when you use Windows Explorer to create the folder but it works with the Windows API now, so they game can create the folder 15:50 < bridge> so all i need to do is to rename `Single` to `KillMsg` and then that's it? Idk what i'm supposed to be moving where @fokkonaut 15:52 < bridge> I'm pretty sure folder names aren't different in that respect 15:53 < bridge> yeah, I can't create a "con" or "Con" folder in the game on Windows 10 15:54 < bridge> Must be a change in Windows 11 or a different option in Windows to allow some of the previously forbidden names 15:56 < bridge> either that, or im just that talented 15:56 < bridge> you can create a con folder 15:56 < bridge> with `\\?\C:\path\to\con` 15:56 < bridge> but you need the other syntax which ddnet doesn't use 15:56 < bridge> Yeah, but we never use long paths internally 15:57 < bridge> This also allows going beyond the normal maximum path length 15:57 < bridge> yup 15:57 < bridge> the normal maximum path length is super weird in windows ^^ 15:59 < bridge> u can't do a folder too 15:59 < bridge> but wasnt there an option to change that 15:59 < bridge> maybe its active in win11 15:59 < bridge> aswell as the con stuff 15:59 < bridge> w11 doesn't allow 16:00 < bridge> Also ingame? Maybe Windows Explorer is different 16:00 < bridge> ah ingame didn't try 16:00 < bridge> ah ingame didn't try (not home) 16:00 < bridge> you can try in python as well @ReiTW 16:00 < bridge> if you have that on your work computer 16:07 < bridge> well as simple with os.makedirs("Con"), it doesn't wok 16:07 < bridge> well as simple with os.makedirs("Con"), it doesn't work 16:10 < bridge> oh lol fullpath works, but con only doesn't 16:38 < bridge> looks way too verbose. I already knew it existed, but never really delved into it. Functionnal paradigm to describe circuit can be interesting, but not sure if it is the best (though still better than VHDL or Verilog i guess) 16:38 < bridge> isnt verbose kinda good sometimes tho 16:38 < bridge> depends on what kind of verbosity i guess 16:38 < bridge> i like rust verbosity but not java one 16:42 < bridge> Verbosity in a language is imo fine as long as you have tools to abstract it away 16:42 < bridge> Though I'm not a HDL user, so idk if my opinion applies to those aswell 16:44 < bridge> it also depends on your goals. sometimes making a language to explicit can make prototyping harder 16:44 < bridge> HDL languages, especially VHDL are really verbose, yet they don't say anything about how the language is interpreted 16:44 < bridge> it's up to the compiler to guess what you meant, it's not really standardized 16:45 < bridge> Ew 16:45 < bridge> SPICE also had this, what is it with you hardware people and your aversion to standards? 16:46 < bridge> hardware people are driven by industry de facto... 16:47 < bridge> you can't really do open hardware like you can do software open source 16:47 < bridge> now, it's starting to be more open 16:47 < bridge> but all the tools are proprietary ones 16:48 < bridge> @Chairn have u used such languages in RL? 16:49 < bridge> VHDL for teaching in Europe and some projects, SystemVerilog for my PhD 16:51 < bridge> nice 16:51 < bridge> right now, im preparing research and teaching projects to apply for Associate Professor position in France, and i have 71h10 mins left... 16:51 < bridge> this community just epic 16:51 < bridge> we have everything 16:51 < bridge> Ask chatgpt for help 16:51 < bridge> and i wrote less than 3 pages (but these 3 pages are common to all positions) 16:51 < bridge> Never, we are thinking of banning it in my current school 16:51 < bridge> with ryo now even a compiler guy 16:51 < bridge> we already caught some students with it 16:52 < bridge> In all seriousness. I agree. It has no place in academia 16:52 < bridge> as long as the information is checked and correct it sounds like a useful tool to use 16:52 < bridge> why ban it? 16:52 < bridge> I don't care if you use it at your job and fuck over your boss, but if you want to learn/teach, it really does nothing but harm 16:53 < bridge> because they don't check the information... 16:53 < bridge> for the same reason Wikipedia was said to be a bad tool when it appeared and students used it 16:53 < bridge> i also did my english homework with google translate xD 16:53 < bridge> they just copy paste, no critical thinking at all 16:53 < bridge> yeah 16:53 < bridge> but students simply are like that. for math its useless anyway 16:54 < bridge> you can ask simple questions to students on what they "wrote", they will try to bullshit some stuff 16:54 < bridge> I think this is just a disservice to yourself. Unless you are far beyond the curriculum and you truly have nothing to learn 16:54 < bridge> and for english its better than most teachers ez 16:54 < bridge> well it saved my sleep 16:54 < bridge> i'd call it a success 16:55 < bridge> Well is it not more of a time management issue? I'm sure you could have made some time for an english homework especially if it's below your level 16:55 < bridge> There should be no need to sacrifice your sleep πŸ˜› 16:56 < bridge> nah was not possible for me 16:56 < bridge> bcs i had friends and hobbies 16:56 < bridge> all tools can be used wrongly 16:56 < bridge> wikipedia is amazing, and good pages have references to the sources 16:56 < bridge> so u also read sources 16:57 < bridge> students are a bit idiot and dont actually read the references xd 16:57 < bridge> I find it hard to believe you didn't have 30 minutes for an english homework in an entire week πŸ˜„ 16:57 < bridge> yeah i agree, but chatGPT pushes things a little bit too far and too fast imo 16:58 < bridge> we'll need time to adapt 16:58 < bridge> But anyway, you do you. If it was below your level there wasnt anything for you to learn, so not much harm 16:58 < bridge> 15 years, everyone will be using it πŸ˜‰ 16:58 < bridge> thats too long timespan 16:58 < bridge> maybe yes back in 2010 16:58 < bridge> but now things move faster 16:58 < bridge> you can't accelerate social acceptation 16:58 < bridge> i think u can 16:58 < bridge> why in an entire week? 16:58 < bridge> we got homework every day 16:59 < bridge> and school until 16 o'clock 16:59 < bridge> You got homework for every subject every day? 16:59 < bridge> pretty much yes 16:59 < bridge> We usually had one homework per subject per week 16:59 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1089926692849598485/screenshot_2023-03-27_at_11.png 16:59 < bridge> well seems like its different in ger 16:59 < bridge> universe broken 17:00 < bridge> kinda ye 17:00 < bridge> Huh, so you had every subject every day? How long was school even? 17:00 < bridge> not but we got homework for each subject we got each day 17:00 < bridge> i had most subjects 3 days in a 5 day week 17:01 < bridge> usually just 1 day in between 17:01 < bridge> but all kids prefer to play games duh 17:01 < bridge> so u do it last day rushed 17:01 < bridge> Okay that sounds about right. And every time you got homework? 17:01 < bridge> kek 17:01 < bridge> especially in the earlier classes i'd say yes 17:02 < bridge> Huh, we usually got a homework only on the last occurance of a subject within a week and we'd be expected to finish it until the next week first occurance 17:03 < bridge> So that gave about 5, 6 days to do it 17:04 < bridge> Different countries do handle it different apparently, no idea why I was surprised πŸ˜„ 17:05 < bridge> <<~{Barsik}~>> yeah this sucks xd, had this up from fifth grade to tenth 17:05 < bridge> I think 8 to 16 school is pretty universal except nordic countries 17:06 < bridge> u have to be taught early that u a slave 17:06 < bridge> <<~{Barsik}~>> they allowed us to prepare to exams this year 17:06 < bridge> <<~{Barsik}~>> so no homework at all 17:07 < bridge> It took me so long but I finally understand why they give homework. It's really where you learn things 17:07 < bridge> not if u hate them 17:07 < bridge> and thats the whole problem 17:08 < bridge> if u like stuff u open to learn it 17:08 < bridge> <<~{Barsik}~>> nah, homework is just method of controlling your learning curve 17:08 < bridge> The problem is that kids mostly don't give 3 shits about learning anything πŸ˜„ 17:08 < bridge> i am too hipster for our school form 17:08 < bridge> <<~{Barsik}~>> im still learning but it became easier this year 17:09 < bridge> πŸ‘‹ gotta go take my train to go back to Paris, see you guys 17:09 < bridge> <<~{Barsik}~>> the only good skill i took from my math homework is vieta theorem 17:10 < bridge> <<~{Barsik}~>> Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π³ΠΎ ΠΏΡƒΡ‚ΠΈ! 17:10 < bridge> Until university honestly if you are smart-ish you can get away with not practicing at all. But when you get to uni and have no practice habit you finally understand why they were trying to get you to build a homework habit 17:10 < bridge> <<~{Barsik}~>> i think this depends on university 17:10 < bridge> <<~{Barsik}~>> and teachers 17:11 < bridge> If you are planning to do anything numerical, unless you are a genius you'll need practice 17:11 < bridge> <<~{Barsik}~>> ah yep xd 17:12 < bridge> <<~{Barsik}~>> friends told me about useless subjects related to IT 17:12 < bridge> <<~{Barsik}~>> not math 17:13 < bridge> <<~{Barsik}~>> math is always good and addictive 17:13 < bridge> Programming especially benefits from practice imo. The more you code the better you get 17:14 < bridge> That's why I think chatgpt and copying from stackoverflow is not okay for students 17:14 < bridge> Yo, why is the random skin button only cycles through the vanilla skins? 17:14 < bridge> Also why I think C is a good language to get students started on 17:14 < bridge> <<~{Barsik}~>> c is just good language 17:15 < bridge> Hm, I guess only because it's coded that way and no one thought about it 17:15 < bridge> It the cycling done through an Array of sort? 17:16 < bridge> <<~{Barsik}~>> the only thing c missing is ecosystem 17:16 < bridge> <<~{Barsik}~>> thats why rust is better i think 17:16 < bridge> <<~{Barsik}~>> but borrow checker uh 17:16 < bridge> Yeah cargo is godsent 17:17 < bridge> I don't think rust is a good language to teach beginners. Only because borrow checker is such an alien concept and I would want to stop them from using collections but that'd be extremely unidiomatic rust 17:17 < bridge> Why teach them bad crippled rust? 17:18 < bridge> <<~{Barsik}~>> rust and c exclusive and thats it 17:19 < bridge> C is so small that it doesn't take long to understand the basics 17:20 < bridge> If I was creating a software engineering curriculum I think I'd teach C and follow it up with C++ for teaching about OOP. I'd like to teach rust too but honestly 3 languages in a 3/4 year degree sounds annoying to me 17:21 < bridge> <<~{Barsik}~>> no no no pls don't use cpp for teaching 17:21 < bridge> :YEP: 17:21 < bridge> why not 17:21 < bridge> I have to show OOP and I'd rather not go with Java 17:21 < bridge> <<~{Barsik}~>> cpp hides many things from programmer 17:21 < bridge> <<~{Barsik}~>> c#? 17:22 < bridge> <<~{Barsik}~>> same problem thouhj 17:22 < bridge> <<~{Barsik}~>> though 17:22 < bridge> This is what the C is for 17:26 < bridge> I have some good ideas on how to produce a good software engineer. They should gimme a university 17:27 < bridge> i'd probably teach c++98 17:27 < bridge> and assembler 17:27 < bridge> To introduce OOP? I had a similar idea in mind though I was thinking C++03 17:27 < bridge> and then combine both 17:28 < bridge> Since when is University for producing software engineers? Computer science has little to do with learning how to program, I'm afraid. 17:28 < bridge> yes and i think the best u can do is how OOP is "implemented" in assembly then 17:28 < bridge> getting a feeling for vtables, memory layout etc 17:28 < bridge> I said a software engineering curriculum. I didn't say a CS curriculum 17:29 < bridge> imagind ddnet written in pure assembly 17:29 < bridge> imagine ddnet written in pure assembly 17:29 < bridge> what even is pure assembly? 17:29 < bridge> hardware binary code? 17:29 < bridge> that can be displayed as e.g. x86 assembly 17:30 < bridge> <<~{Barsik}~>> https://tenor.com/view/fknbnuy-cat-speed-run-reaction-gif-21698332 17:31 < bridge> The extreme focus in theory is why the industry is plagued by people that are "programmers" 17:32 < bridge> Mfw can't code without internet access :pepeW: 17:33 < bridge> Would probably be pretty shit, modern compilers are far beyond what we can produce by hand nowadays 17:34 < bridge> many ppl that study CS dont want to "actually" be CS anyway 17:34 < bridge> so i agree 17:34 < bridge> u kinda have to be bit nerdy 17:35 < bridge> Most of them effectively work as software engineers. Why not train them properly for it? 18:15 < bridge> Is there any reason why the naming conventions are not checked with clang-tidy? I was thinking about trying to add that 18:15 < bridge> the university lecturers don't really understand C 18:15 < bridge> with rust it seems to be a little bit better 18:15 < bridge> because there's less UB 18:15 < bridge> UB seems to be a hard concept to teach 18:16 < bridge> <<~{Barsik}~>> why tho 18:16 < bridge> you can try doing that, however there's >1000 naming violations that I found when I wrote the script 18:16 < bridge> <<~{Barsik}~>> its literally unexpected behavior xd 18:17 < bridge> <<~{Barsik}~>> its called undefined but actually mostly ends up with unexpected 18:17 < bridge> those would need to be fixed, or there needs to be a way for it to only affect patches 18:17 < bridge> that's the misunderstanding that people have with it, basically 18:17 < bridge> I think clang-tidy supports changing them automatically but ill have to check 18:18 < bridge> they think `int function() { g(); }` just returns "the last thing that was in the rax register" 18:18 < bridge> but it's more complicated than that 18:18 < bridge> but because it's hard to observe it, it's hard to understand it, I guess 18:19 < bridge> <<~{Barsik}~>> you just need to have an example of every ub 18:19 < bridge> <<~{Barsik}~>> examples 18:19 < bridge> <<~{Barsik}~>> so students can analyze it and make conclusions 18:20 < bridge> if you are suggesting "let them try and see what happens", then they might get to the wrong conclusion 18:20 < bridge> e.g. that `int *p = nullptr; *p = 0;` always crashes 18:25 < bridge> would u feel bad for doing X thing that a coworker was trying to fix because you knew how to fix it right away? i tried to explain how to do the fix but i kinda sucked explaining xD 18:25 < bridge> and he seemed kinda lost 18:25 < bridge> but its on my mind now 18:25 < bridge> im a bad person maybe 18:26 < bridge> (this guy is rly competent, thats probs not the issue, the thing is he just entered the project) 18:26 < bridge> i also wanted this fixed asap xd 18:27 < bridge> I wish there was a UBless C that would be easier to teach on. I would teach Rust but the problem is I'd have to teach with an arbitrarily crippled version of Rust to achieve my teaching goals, but that'd be a disservice to the student as it'd be bad Rust 18:29 < bridge> Doubt that has anything to do with it, if he is competent and cares about it he will review it on his own time and figure out how you fixed it 18:29 < bridge> Or he will ask followup questions if you didn't appear as a complete dickhead πŸ˜„ 18:29 < bridge> ehh 18:29 < bridge> our work relationship is awkward, we both introverts 18:29 < bridge> altho we differ as devs 18:29 < bridge> as far as i know he has 0 open source projects :p 18:29 < bridge> but i know he is good 18:30 < bridge> How do you know he is good if he is new and doesn't have public projects? 18:30 < bridge> cuz what he has done in internal projects 18:30 < bridge> in the company 18:30 < bridge> well 18:30 < bridge> so far looks like he knows 18:31 < bridge> altho sometimes idk 18:31 < bridge> he sometimes said "you probs need unsafe to do X" but i pointed out with refcells and interior mutability u dont need unsafe xd 18:31 < bridge> things like this 18:32 < bridge> definitly more than ur average web dev 18:32 < bridge> his uni project was doing simd matrices in assembly or smth i forgot tbh 18:33 < bridge> overall, if he didn't look sad/angry I wouldn't care either 18:33 < bridge> imagine a constant expresionless person 18:33 < bridge> idk lmao 18:33 < bridge> anyway moving on 18:33 < bridge> πŸ˜„ 18:35 < bridge> he doesnt seem to care 18:35 < bridge> :gigachad: 18:37 < bridge> +1 18:37 < bridge> im just reading the convo 18:38 < bridge> learning language* 18:38 < bridge> was this question ever answered 18:38 < bridge> borrow checker good 18:38 < bridge> i wanna know what im doing when i get home from .work 18:39 < bridge> do you know what is ub and why happens? 18:43 < bridge> i dont think he answered 18:44 < bridge> I don't think that's what he means 18:44 < bridge> he wants a `KillMessage` parameter that functions differently from the current one 19:32 < bridge> but why 19:34 < bridge> the current parameter name `Single` doesn't really capture what it does 19:34 < bridge> I'm not entirely sure what he proposes or why 19:35 < bridge> this thing should go btw: `MsgPlus.m_Size = Teams()->TeamSize(Team());` 19:35 < bridge> this is information the client has 19:35 < bridge> but in general, only very few things are still missing 19:35 < bridge> or should be changed 19:36 < bridge> it looks quite good already 19:54 < bridge> I'll be renaming thay 19:54 < bridge> I'll be renaming that 20:34 < bridge> @Voxel you can get rid of that parameter if you change the code inside CCharacter::Die to something along these lines ```cpp 20:34 < bridge> bool TeamKill = Team() != 0 && Teams()->GetTeamState(Team()) == CGameTeams::TEAMSTATE_STARTED; 20:34 < bridge> 20:34 < bridge> if(TeamKill) 20:34 < bridge> { 20:34 < bridge> // Send your team kill message here 20:34 < bridge> } 20:34 < bridge> else 20:34 < bridge> { 20:34 < bridge> // send the kill message 20:34 < bridge> CNetMsg_Sv_KillMsg Msg; 20:34 < bridge> Msg.m_Killer = Killer; 20:34 < bridge> Msg.m_Victim = m_pPlayer->GetCID(); 20:34 < bridge> Msg.m_Weapon = Weapon; 20:34 < bridge> Msg.m_ModeSpecial = ModeSpecial; 20:34 < bridge> Server()->SendPackMsg(&Msg, MSGFLAG_VITAL, -1); 20:34 < bridge> }``` 20:34 < bridge> OHHH 20:35 < bridge> waot 20:35 < bridge> if the tee is not in a team you send single kill message, if he's in a team that is locked or whatever u send team kill message 20:44 < bridge> @heinrich5991 do you remember how you added the hungarian notation? i cannot figure out how to not add prefixes for primitive types. i tried some of these but none seem to work. 20:44 < bridge> ```yaml 20:44 < bridge> - key: readability-identifier-naming.HungarianNotation.PrimitiveType.int 20:44 < bridge> value: null 20:44 < bridge> value: 20:44 < bridge> value: none 20:44 < bridge> ``` 20:44 < bridge> I guess it should also be possible using the normal options, but this would be nicer. 20:45 < bridge> @heinrich5991 do you remember how you added the hungarian notation? i cannot figure out how to not add prefixes for primitive types. i tried these but none seem to work. 20:45 < bridge> ```yaml 20:45 < bridge> - key: readability-identifier-naming.HungarianNotation.PrimitiveType.int 20:45 < bridge> value: null 20:45 < bridge> value: 20:45 < bridge> value: none 20:45 < bridge> value: None 20:45 < bridge> ``` 20:45 < bridge> I guess it should also be possible using the normal options, but this would be nicer. 20:56 < bridge> wait, you mean the `Single` parameter? 20:56 < bridge> if I remove that, it will send the kill message for every member in the team 20:58 < bridge> ah I c, but you can still create the TeamKill bool inside rather than an additional parameter 21:07 < bridge> Isn't that what I did? 21:08 < bridge> nah you added this bool Single 21:08 < bridge> you can see inside the function itself if it's a single kill or team kill, no need to pass some bool 21:08 < bridge> if I remove that, it will send the kill message for every member in the team 21:09 < bridge> `Teams()->OnCharacterDeath(GetPlayer()->GetCID(), Weapon); 21:09 < bridge> }` 21:09 < bridge> it iterates through all the IDs and kills each tee. i need a way to prevent duplicates 21:10 < bridge> but you can let it kill the tees normally and inside CCharacter::Die you decide if it should send the message 21:14 < bridge> but how does it know if it's the one killing? 21:14 < bridge> like, how does it detect who's strong 21:16 < bridge> it doesn't know that anyway 21:17 < bridge> the only difference from how you have it currently is that you do the check inside the function rather than passing a bool 21:25 < bridge> there is a guaranteed order of spawn iirc though 21:26 < bridge> the person who kills will have the lowest entity id iirc 21:34 < bridge> Kotlin as a first OOP language? :p 21:39 < bridge> I made my own script on top of libclang, didn't use clang-tidy, sorry 21:48 < bridge> https://news.ycombinator.com/item?id=35330438 21:52 < bridge> not just at private companies either, I've heard very scary things from people that work at government jobs 22:12 < bridge> @marmare_314 have you tried `value: ""` 22:12 < bridge> ? 22:29 < bridge> yes, and also `value: ''` which is supposed to work for the normal prefix options 22:37 < bridge> what does it do if you try `""` or `''`? 22:55 < bridge> imagine having a `rax` register 22:57 < bridge> on amd64 22:57 < bridge> not completely UBless, but `-pedantic -Wall -Wextra -Werror` gives you way less error already πŸ˜„ 22:57 < bridge> https://tenor.com/view/developers-gif-13292051 22:57 < bridge> yeah, but C is platform agnostic 22:57 < bridge> https://tenor.com/view/agnostic-godzilla-ifunny-it-may-or-may-not-be-king-kong-gif-21357739 22:59 < bridge> heinrich deletor 22:59 < bridge> Its Monday 22:59 < bridge> πŸ˜” 22:59 < bridge> heinrich is like the elderly lady not allowing kids to play on the grassfield 22:59 < bridge> the C standard doesn't talk a lot about platforms, it's not completely agnostic though. the "not completely agnostic" isn't relevant to the the current discussion though 23:00 < bridge> but I think my point still stands, even if you add "on current amd64 ABIs" to the statement 23:02 < bridge> see also https://utcc.utoronto.ca/~cks/space/blog/programming/CAsAbstractMachine on the point of "C is just an abstract machine" 23:02 < bridge> doesn't crash on lots of embedded system 23:02 < bridge> yes, it also doesn't crash in `cat` 23:02 < bridge> I was talking about amd64, though 23:03 < bridge> yes, it also doesn't crash `cat` 23:03 < bridge> cat? 23:03 < bridge> yes 23:04 < bridge> what's cat here? 23:04 < bridge> ```sh 23:04 < bridge> $ echo 'int *p = nullptr; *p = 0;' | cat 23:04 < bridge> int *p = nullptr; *p = 0; 23:04 < bridge> ``` 23:04 < bridge> didn't crash for me 23:05 < bridge> what I was trying to say was that you're talking about microcontrollers when I already specified that I'm talking about amd64 23:05 < bridge> i.e. not really relevant for the point I was trying to make 23:05 < bridge> I was trying to say that instructors say something like `int *p = nullptr; *p = 0;` always crashes on amd64 23:05 < bridge> which isn't true 23:06 < bridge> trying to point out that some instructors in university don't understand C, even if you try to explain what UB is 23:06 < bridge> it ignores the value, probably related to https://github.com/llvm/llvm-project/issues/56358 23:09 < bridge> or they just simplify it to not complicate things too much 23:09 < bridge> but when asked about that point, they should be able to tell you "I just simplified it" and not "you're wrong, check this sample program", right? 23:12 < bridge> i just noticed, the exact issue is linked there so i guess i'll just try the other option 23:48 < bridge> <<~{Barsik}~>> ub for me is absence of guarantee from language standard or what language comes up with 23:49 < bridge> <<~{Barsik}~>> i can actually call possibility of us states to leave usa in xix ub just because constitution had nothing about states right of leaving 23:50 < bridge> <<~{Barsik}~>> constitution nor allowed this nor prohibited it 23:55 < bridge> Isn't it basically java with a new syntax? 23:55 < bridge> 23:55 < bridge> I mean u probably learn enough about oop to understand the idea behind it. But maybe too few to understand it's flaws^^