01:25 <+bridge> [ddnet] CLion :troll: i didnt use windows in a while, but i guess I would use it there too 01:50 <+bridge> [ddnet] i know VHDL, but not sure i have good resources. I have a presentation on moving from VHDL to systemverilog though 02:52 <+bridge> [ddnet] little idea I had, still needs a bit of work but is it something we'd wanna add? 02:52 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/997304618885337128/gif.gif 03:02 <+bridge> [ddnet] would be nice for midground scaling 03:06 <+bridge> [ddnet] eclipse best 03:44 <+bridge> [ddnet] yes please 04:04 <+bridge> [ddnet] i use visual studio / microsoft compiler on windows. i use visual studio just for building. vscode for coding. with the c++ extensions pack by microsoft. which is actually only available in the microsoft branded version of vs code i think. 04:04 <+bridge> [ddnet] i also tried to build ddnet with mingw in msys or in wsl or i tried the cmake gui, but didn't make the cmake gui work. 04:04 <+bridge> [ddnet] but with visual studio it's just one click. i don't care about the bloat xd 04:06 <+bridge> [ddnet] aaand: that said, i actually am eager to use mingw / vim / neovim / any open source setup instead of vscode. and also not use electron. 04:10 <+bridge> [ddnet] the one thing that i not get done is accessing files in a big projcet with vim. in ides you simply have a file tree. or ctrl + p. but in vim i open files from terminal. i know there is nerdtree, which maybe could be useful. or fzf. but i kind of feel lost with only vim in a big code base. but i feel lost in a big ide with ten menus in the top bar with 20 undermenus xd 😅 04:15 <+bridge> [ddnet] thats alot of information 04:15 <+bridge> [ddnet] thanks for the answer 04:16 <+bridge> [ddnet] i heard of all that stuff but never used it 04:17 <+bridge> [ddnet] i guess i will stick with VS for now and try the other Editors at some point 04:18 <+bridge> [ddnet] =)))) 04:18 <+bridge> [ddnet] VS is just a great all-in-one solution 04:19 <+bridge> [ddnet] i guess i will stick with VS for now since i mainly use windows. I will try the other Editors at some point 04:23 <+bridge> [ddnet] https://external-preview.redd.it/-hYJ6Uo01BR4jM7ywY79hf9X9rFobbbeqhGBOG3cBKc.jpg?auto=webp&s=869a3b7bb1f0e244cf612b6a8e4499ce998b4ce1 04:23 <+bridge> [ddnet] xdd, found this by searching intellij, vscode meme. 04:23 <+bridge> [ddnet] that's basically why i like vim. you can polish it like your car. 04:24 <+bridge> [ddnet] but ide is like a public train xd 04:29 <+bridge> [ddnet] i agree 04:30 <+bridge> [ddnet] Is this how ENTTYPE_LASER works? Or is every laser just the same and is server-sided only when it comes to difference between lasers? 04:30 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/997329380202266674/unknown.png 06:15 <+bridge> [ddnet] Every laser is same, but on server side it have different functions 06:31 <+bridge> [ddnet] Is there a way for the client to communicate with the server to determine which laser is which? 07:32 <+bridge> [ddnet] you mean vice versa? for the purposes of differentiating them i imagine 07:33 <+bridge> [ddnet] Yea 07:33 <+bridge> [ddnet] i suppose it could be done in tandem with different settings for the colors. could create a github issue for it 07:34 <+bridge> [ddnet] i assume you mean the desire to change the color per type 07:35 <+bridge> [ddnet] Yeah. The plan in my head is there for there to be 3 or 4 different types: Rifle, Shotgun and Game/Freeze 10:17 <+bridge> [ddnet] vanilla compat stuff 10:54 <+bridge> [ddnet] You can get the extension pack in codium by using the microsoft store btw 10:55 <+bridge> [ddnet] There is also the command-t plugin for vim, which is basically ctrl-p from other editors 10:57 <+bridge> [ddnet] You'd have to come up with that one. One could maybe try to sneak a entity subtype or atleast a laser subtype somewhere like we snuck the owner and flags into projectiles 12:16 <+bridge> [ddnet] yes, thats what EntityEx is for 12:17 <+bridge> [ddnet] no. and please not more of this. never again. 12:17 <+bridge> [ddnet] Ah we do have a proper way now, forgot we added that 12:18 <+bridge> [ddnet] Can one fix the projectiles btw 12:19 <+bridge> [ddnet] Wym by fix? 12:19 <+bridge> [ddnet] Its sad that I can not use them properly due to the fact that high velocity makes the client think its a packed one and therefore its completely broken 12:21 <+bridge> [ddnet] Hm, I thought the extended flag was high enough that you'd never really want a projectile that fast 12:25 <+bridge> [ddnet] wym ith packed 12:25 <+bridge> [ddnet] I thought so too, but it happes due to the way I use projectiles to fake them, with faked velocities in order to have them stable and be shown good on the client. For prediction. 12:25 <+bridge> [ddnet] wym with packed 12:25 <+bridge> [ddnet] There is extra info packed into the normal data fields, which the client will use if a specific flag is activated 12:26 <+bridge> [ddnet] okay what would be an example for the extra data 12:27 <+bridge> [ddnet] well the code overall is pretty divers and a few comments that say "do this better and nicer" and "todo" and such so yeah there is still alot to optimise 😄 12:28 <+bridge> [ddnet] but i dont wanna touch them until i am more familiar with the whole codebase 12:29 <+bridge> [ddnet] i started 2 weeks ago or so 12:30 <+bridge> [ddnet] oh well no, not even 2 weeks XD 12:30 <+bridge> [ddnet] but i dont wanna touch those until i am more familiar with the whole codebase 12:31 <+bridge> [ddnet] this channel is a good place to learn, i love it 12:32 <+bridge> [ddnet] More like this chanbel is the only place to learn :justatest: 12:32 <+bridge> [ddnet] there are also indian tutorials on YT 12:33 <+bridge> [ddnet] About ddnet? 12:33 <+bridge> [ddnet] probably 12:35 <+bridge> [ddnet] i dont talk about ddrace especially. i mean dev in general 12:35 <+bridge> [ddnet] i dont talk about ddrace specificly. i mean dev in general 12:35 <+bridge> [ddnet] i dont talk about ddrace specifically. i mean dev in general 12:35 <+bridge> [ddnet] Vim has a ctrl p plugin to search files 12:35 <+bridge> [ddnet] Using fzf 12:36 <+bridge> [ddnet] My neovim uses fzf + fd (made in rust, faster) 12:37 <+bridge> [ddnet] And it previews files, highlighted with bat (made in rust too, like cat) 12:37 <+bridge> [ddnet] Its probs way faster 12:38 <+bridge> [ddnet] @Ryozuki are you coding on linux? 12:38 <+bridge> [ddnet] Off 12:38 <+bridge> [ddnet] Ofc 12:38 <+bridge> [ddnet] yo guys, did u remove cl_show_quads on last nightly? 12:38 <+bridge> [ddnet] Im not a masochist 12:39 <+bridge> [ddnet] well true except if you mainly develop .net apps 12:39 <+bridge> [ddnet] They didnt follow their own rules about not renaming options for no reason, because players would be confused, so its cl_showquads now. 12:40 <+bridge> [ddnet] DDNet people do many things that they wouldnt allow for others, they mostly just do things out of the moment :) 12:40 <+bridge> [ddnet] Yes yes go take ur childish grudge elsewhere 12:41 <+bridge> [ddnet] Ok boomer 12:41 <+bridge> [ddnet] :okboomer: 12:46 <+bridge> [ddnet] https://github.com/ddnet/ddnet/pull/5511 13:02 <+bridge> [ddnet] Mono isn't too horrible nowadays 13:02 <+bridge> [ddnet] mono is great 13:03 <+bridge> [ddnet] But yes, if I had to develop .net apps all the time, I would also be on windows 13:04 <+bridge> [ddnet] It's not for no reason, it was to reset it. Ideally we'd have another way to do that, but we don't 13:08 <+bridge> [ddnet] why was the bind not removed then 13:08 <+bridge> [ddnet] xd 13:10 <+bridge> [ddnet] i mean people still use it, it was just a reset for everyone 13:10 <+bridge> [ddnet] "To reenable quads for everyone who accidentally disabled it or has the 13:10 <+bridge> [ddnet] bind to accidentally disable them" def- 13:11 <+bridge> [ddnet] yea, "or has the bind to accidentally disable them" 13:11 <+bridge> [ddnet] i dont know people with a bind for that 13:11 <+bridge> [ddnet] Wasnt there a standard bind for it? 13:11 <+bridge> [ddnet] Well idk, for me it seems useless to reset it 13:26 <+Konsti> how can i unbind ctrl+mouse2 13:26 <+Konsti> in editor it makes me swap from game layer to some design layer always and its super annoying 13:46 <+bridge> [ddnet] i think pagedown maybe 13:59 <+bridge> [ddnet] renamed to cl_showquads. Why do you use it? 13:59 <+bridge> [ddnet] How about asking for the reason instead of assuming the worst? 14:01 <+bridge> [ddnet] I keep getting bug reports where people accidentally turned off quads and didn‘t realize what happened. This fixes it for them while still allowing people who have a use case for quads off to use it 14:08 <+bridge> [ddnet] But how can this fix it long term? The same thing will happen again 14:08 <+bridge> [ddnet] especially if we dont remove the default bind (as i said idk if it stil lexists) 14:25 <+bridge> [ddnet] it's on pagedown by default and i sometimes use it when i want to play with textures but dont want the background to distract me as much 14:26 <+Konsti> i think there are not that less people using it. But since u can easily adapt your entities and background to make any map look like u want it may exstinct 14:28 <+bridge> [ddnet] No, we don't have the bind anymore by default 14:29 <+bridge> [ddnet] The problem was that before we had a default bind for it, so people would just randomly click it. This is the only way to remove a bind from everyone's config 14:29 <+bridge> [ddnet] Fair enough, but some maps use quads for game relevant stuff 14:33 <+bridge> [ddnet] I have my own quad bind and one for high details, its really good to be able to have "different themes" depending on which map and design, cause some maps cant be played in entities, when there are just insanely many tiles, or the old hookthrough i specific places, then i prefer to play without and turn off quads or so, depending on how ugly or unplayable the real design is 14:33 <+bridge> [ddnet] I really want to do something about default configs. Maybe we could only save ones that are different from the default instead of all settings? People getting stuck with old settings is so annoying 14:33 <+bridge> [ddnet] isnt that the case already? at least i somehow thought so 14:34 <+bridge> [ddnet] No, the client will save the entire set of settings, so you'll get stuck with old defaults 14:34 <+bridge> [ddnet] Ah, well idk but this wouldnt have fixed this issue anyways 14:35 <+bridge> [ddnet] Maybe something over info.ddnet.tw? 14:36 <+bridge> [ddnet] Yea 14:37 <+bridge> [ddnet] Something like a config update pushed over the network. Each update could have a serial and the config serial would be bumped after each update. That way after a config update gets pushed out people can still change it back and it wouldnt get overridden 14:38 <+bridge> [ddnet] then we could also rename configs without problems, when the new info gets fetched the client could set the new config to the old value 14:39 <+bridge> [ddnet] (optional, of course not in cases like this, but in general) 14:40 <+bridge> [ddnet] Yep, that could also be achieved, some sort of OTA update capability and not saving defaults might be nice 14:43 <+Konsti> haha deen i remember when Cloudly died in Lava at Lockdown tournament and went really mad because it was invisible without quads 14:43 <+bridge> [ddnet] agree 14:44 <+Konsti> but yeah, some old maps have looping kill tiles for example, u wont see them. Wont happen in new maps because people will be told to put some marking below the quad 14:44 <+bridge> [ddnet] I have a speedup made of moving quads on my server, which is pointing downwards, and for people without quads on I placed a tile layer behind the background because that is also not shown when quads are off, so that they can see tile layer speedups on that spot 14:44 <+bridge> [ddnet] testers should look for stuff like that and especially point that out and force stuff like this 14:45 <+Konsti> yes they do. Lockdown was released due some mafious structures :justatest: 14:45 <+bridge> [ddnet] ah ye 14:45 <+bridge> [ddnet] do they do nowadays? 14:46 <+Konsti> of course. We already had the case. its also possible to animate tiles without quads 14:46 <+bridge> [ddnet] i know, but not moving, just color 16:15 <+bridge> [ddnet] RUST GIVEAWAY 16:15 <+bridge> [ddnet] Steam officialy sponsored one of the biggest Rust skins giveaway 16:15 <+bridge> [ddnet] Hurry up and make sure to take part in this event! https://rustroullette.com/case 16:15 <+bridge> [ddnet] The amount of free skins is limited, first come - first serve! 16:15 <+bridge> [ddnet] Hurry up and get your prize! 16:15 <+bridge> [ddnet] @everyone 17:05 <+bridge> [ddnet] How is intels website so bad with some of the best engineers on earth?? 17:07 <+bridge> [ddnet] i know i also have fd and fzf. but i need a visual filetree maybe to see the project. im not good at having all my vim plugins in place. i actually try to avoid them like oh-my-zsh or vim plug. maybe i can make it work with a single neovim config. i lately put visual representation for tabs and spaces and always have spaces. i like this and its only a setting. maybe there is a way to make vim/nvim show the tree of the root folder of the gi 17:08 <+bridge> [ddnet] i mean why plugins, mostly you can get similar functionality without by configuring, at least try 17:10 <+bridge> [ddnet] i want to.try 17:11 <+bridge> [ddnet] U dont need file trees honestly 17:11 <+bridge> [ddnet] I also thought like that 17:12 <+bridge> [ddnet] Before becoming :based: 17:12 <+bridge> [ddnet] Stupid mobile 17:12 <+bridge> [ddnet] :PES2_BasedGe: 17:15 <+bridge> [ddnet] ok 17:15 <+bridge> [ddnet] all the budget goes into chip making? 17:15 <+bridge> [ddnet] It's absolutely bizarre how shit this website is. How hard is it to code a login page? 17:17 <+bridge> [ddnet] i only use on their website 17:18 <+bridge> [ddnet] Their licensing system for the FPGA software is so horrible. This is the reason I hate proprietary software. They can't even do it properly 17:20 <+bridge> [ddnet] what you doing with FPGA and VHDL? 17:20 <+ChillerDragon> Konsti: pink rat 17:21 <+bridge> [ddnet] uni course on computer architecture has a bit of lab work involving fpgas 17:21 <+bridge> [ddnet] not absolutely necessary but I've always been interested 17:22 <+bridge> [ddnet] I already hate it thanks to intel 17:25 <+bridge> [ddnet] i've never used any intel stuff for fpga 17:26 <+bridge> [ddnet] or did they completely incorporated altera stuff into intel website? 17:27 <+bridge> [ddnet] I think intel did acquire all of altera and merge it into their own site 17:27 <+bridge> [ddnet] it's now intel quartus and intel questa 18:19 * Konsti slaps ChillerDragon around a bit with a large fishbot 18:21 <+bridge> [ddnet] I spent an hour trying to simulate a design to no avail, until I found some random stackoverflow post where a guy suggested adding `-voptargs="+acc"` without any explanation, added it works perfectly 18:21 <+bridge> [ddnet] Isn't proprietary software like this supposed to be documented oh so better than open source :hypervomit: software? 18:23 <+bridge> [ddnet] In general, i use -novopt 18:24 <+bridge> [ddnet] slightly slower, but should be more robust 18:24 <+bridge> [ddnet] I was using that too, but `-novopt option is now deprecated and will be removed in future releases.` 18:24 <+bridge> [ddnet] oh 18:25 <+bridge> [ddnet] funnily enough `-novopt` is actually the default still in quartus, so if you just open a waveform and click simulate it just won't work 18:25 <+bridge> [ddnet] and you are left wondering for an entire hour what went wrong 18:25 <+bridge> [ddnet] How do 2 pieces of software shipped by the same company, possibly charging thousands for a proper license not work together perfectly 18:26 <+bridge> [ddnet] you need the extra support license for only 10k$ 🙂 18:27 <+bridge> [ddnet] that's why companies usually lag a few years behind on production software 18:27 <+bridge> [ddnet] If I was paying 10k$ and I got errors while simulating a full adder I'd be furious 😄 18:27 <+bridge> [ddnet] during my phd, we were using version from 2010 18:27 <+bridge> [ddnet] worked fine 18:31 <+bridge> [ddnet] But finally, my 5 bit adder can be simulated 18:31 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/997540822977364009/test.png 18:32 <+bridge> [ddnet] Ngl I'm a little disappointed, when I heard the class and the material were based on a 7gb proprietary editor I was a little irked but I was happy atleast it'd all justwork(tm) and I could focus on doing things rather than setting up things 18:33 <+bridge> [ddnet] I spent an hour trying to get it to install, another hour trying to license it and another hour digging in awful documentation trying to find what they replaced that one deprecated option with only to find it on stackoverflow 18:36 <+bridge> [ddnet] :gg: next step is now sequential logic 18:37 <+bridge> [ddnet] then you can reimplement ddnet in vhdl 😄 18:37 <+bridge> [ddnet] with VGA output 18:37 <+bridge> [ddnet] I was really excited for it when I started yesterday but now I'm just a little exhausted 18:38 <+bridge> [ddnet] I was going to make both a CLA and a sequential adder 18:38 <+bridge> [ddnet] how come you have classes in summer? 18:38 <+bridge> [ddnet] sequential adder is kinda useless 18:38 <+bridge> [ddnet] I don't, I'm the laziest person on the face of earth, so I didn't study when I was supposed to 18:39 <+bridge> [ddnet] :kek: 18:39 <+bridge> [ddnet] Now I need to learn all the material everyone else learned over 4 months, in 1 month 18:39 <+bridge> [ddnet] The only saving grace is that I already know a lot of the basics unlike the people taking the class 18:40 <+bridge> [ddnet] I can also skip the part they learn some motorola 68k assembly, I'm already familiar with the ISA 18:41 <+bridge> [ddnet] did you learn about delay propagation yet? 18:41 <+bridge> [ddnet] did you learn about propagation delay yet? 18:41 <+bridge> [ddnet] Yep 18:42 <+bridge> [ddnet] Not as part of this class though, I learned about some of this content 5 years back when I was building an 8bit cpu on a breadboard 18:43 <+bridge> [ddnet] Obviously inspired by that video series on youtube by ben eater 😄 18:43 <+bridge> [ddnet] https://youtube.com/playlist?list=PLowKtXNTBypGqImE405J2565dvjafglHU quite fun as a watch and the guy is pretty great at explaining stuff 18:45 <+bridge> [ddnet] lol, crazy guy 😄 18:46 <+bridge> [ddnet] it's actually surprisingly fun to make and you learn a lot along the wya 18:46 <+bridge> [ddnet] way* 18:48 <+bridge> [ddnet] Actually, I think the first time I encountered propagation delay was probably in minecraft. The lack of propagation delay there made some interesting circuits possible 18:50 <+bridge> [ddnet] okay, weird stuff: 18:50 <+bridge> [ddnet] Why does this crash puzzles me... 18:51 <+bridge> [ddnet] both server and client 18:52 <+bridge> [ddnet] want me to check it out or did you already figure it out? 18:52 <+bridge> [ddnet] i didn't figure it out 18:53 <+bridge> [ddnet] i guess that somehow, a size is implied somewhere 18:54 <+bridge> [ddnet] this is client backtrace: 18:54 <+bridge> [ddnet] ``` 18:54 <+bridge> [ddnet] #0 0x7b7e05 in CLayers::InitTilemapSkip() /nobackup/opt/ddnet/clangbuild/../src/game/layers.cpp:191:11 18:54 <+bridge> [ddnet] #1 0x7b98f4 in CLayers::InitBackground(IMap*) /nobackup/opt/ddnet/clangbuild/../src/game/layers.cpp:167:2 18:54 <+bridge> [ddnet] #2 0x1361a8f in CMenuBackground::LoadMenuBackground(bool, bool) /nobackup/opt/ddnet/clangbuild/../src/game/client/components/menu_background.cpp:267:15 18:54 <+bridge> [ddnet] #3 0x135e576 in CMenuBackground::OnInit() /nobackup/opt/ddnet/clangbuild/../src/game/client/components/menu_background.cpp:50:3 18:54 <+bridge> [ddnet] #4 0x17daa6e in CGameClient::OnInit() /nobackup/opt/ddnet/clangbuild/../src/game/client/gameclient.cpp:265:15 18:54 <+bridge> [ddnet] #5 0xcee84a in CClient::Run() /nobackup/opt/ddnet/clangbuild/../src/engine/client/client.cpp:3143:16 18:54 <+bridge> [ddnet] ``` 18:54 <+bridge> [ddnet] https://github.com/ddnet/ddnet/issues/1 18:54 <+bridge> [ddnet] https://github.com/ddnet/ddnet/issues/2 18:54 <+bridge> [ddnet] https://github.com/ddnet/ddnet/issues/3 18:54 <+bridge> [ddnet] https://github.com/ddnet/ddnet/issues/4 18:54 <+bridge> [ddnet] https://github.com/ddnet/ddnet/issues/5 18:54 <+bridge> [ddnet] ..., i thought this linking issue thing was removed? 18:55 <+bridge> [ddnet] and server backtrace: 18:55 <+bridge> [ddnet] ``` 18:55 <+bridge> [ddnet] .#0 0x79ae55 in CLayers::InitTilemapSkip() /nobackup/opt/ddnet/clangbuild/../src/game/layers.cpp:191:11 18:55 <+bridge> [ddnet] .#1 0x799cb6 in CLayers::Init(IKernel*) /nobackup/opt/ddnet/clangbuild/../src/game/layers.cpp:115:2 18:55 <+bridge> [ddnet] .#2 0xb37697 in CGameContext::OnInit() /nobackup/opt/ddnet/clangbuild/../src/game/server/gamecontext.cpp:3210:11 18:55 <+bridge> [ddnet] .#3 0x86b7fe in CServer::Run() /nobackup/opt/ddnet/clangbuild/../src/engine/server/server.cpp:2631:16 18:55 <+bridge> [ddnet] ``` 18:55 <+bridge> [ddnet] https://github.com/ddnet/ddnet/issues/1 18:55 <+bridge> [ddnet] https://github.com/ddnet/ddnet/issues/2 18:55 <+bridge> [ddnet] https://github.com/ddnet/ddnet/issues/3 18:56 <+bridge> [ddnet] lol the first github issues has tons of unintentional references 18:56 <+bridge> [ddnet] lol the first github issue has tons of unintentional references 18:57 <+bridge> [ddnet] meh, I thought that was fixed :/ 18:57 <+bridge> [ddnet] @Chairn those look like parts of the map format btw, I can see that breaking things actually 18:58 <+bridge> [ddnet] a `vector4_base` probably wouldn't break 18:59 <+bridge> [ddnet] it was int before, but colors are actually unsigned chars so i thought reducing memory footprint 18:59 <+bridge> [ddnet] but yeah you're right, it's probably due to map files hence both crash 19:00 <+bridge> [ddnet] We probably use that CColor directly as is inside the map format :/ 20:05 <+bridge> [ddnet] `const char * const CSkins::ms_apColorComponents[NUM_COLOR_COMPONENTS] = {"hue", "sat", "lgt", "alp"};` 20:06 <+bridge> [ddnet] why would you use the modifier two times in C++ code? 20:06 <+bridge> [ddnet] first const if for the pointed data 20:06 <+bridge> [ddnet] why would you use the modifier two times in C++ code? (general question) 20:06 <+bridge> [ddnet] second const if for the pointer itself 20:07 <+bridge> [ddnet] okay 20:07 <+bridge> [ddnet] thx 20:09 <+bridge> [ddnet] you can override a const ptr so why would you still use the modifier const infront of it ? 20:11 <+bridge> [ddnet] you can override a const pointer, so why would you still use the modifier const infront of it ? 20:12 <+bridge> [ddnet] it is a member variable which gets set here 20:12 <+bridge> [ddnet] example: 20:12 <+bridge> [ddnet] `const CSkin::SSkinTextures *pSkinTextures = pInfo->m_CustomColoredSkin ? &pInfo->m_ColorableRenderSkin : &pInfo->m_OriginalRenderSkin;` render.cpp 20:12 <+bridge> [ddnet] const char *data --> data is immutable but may point to wherever you want 20:12 <+bridge> [ddnet] const char * const data --> data is immutable and the pointer cannot point to anywhere else 20:13 <+bridge> [ddnet] thanks^_^ 20:14 <+bridge> [ddnet] sry i still got a question 20:15 <+bridge> [ddnet] in what sense is a non const * less "immutable" than a const * 20:15 <+bridge> [ddnet] in the first case, you can assign to whatever you want: data = &otherdata; 20:15 <+bridge> [ddnet] in the second, you cant 20:16 <+bridge> [ddnet] or i don't get your question? 20:16 <+bridge> [ddnet] like even another type 20:16 <+bridge> [ddnet] nah, i am just bad at explaining sry 20:16 <+bridge> [ddnet] 20:16 <+bridge> [ddnet] const CSkin::SSkinTextures *pSkinTextures 20:16 <+bridge> [ddnet] CSkin::SSkinTextures *pSkinTextures 20:16 <+bridge> [ddnet] i can do the same thing with both 20:17 <+bridge> [ddnet] no, first case you cannot modify the pointed data 20:17 <+bridge> [ddnet] do you mean i can assign whatever i want to the latter, even another type? 20:17 <+bridge> [ddnet] ay wait, discord removed the * for the pointer OOOOOOOOOOOOOF 20:18 <+bridge> [ddnet] nah, i am just bad at explaining sry 20:18 <+bridge> [ddnet] 20:18 <+bridge> [ddnet] `const CSkin::SSkinTextures *pSkinTextures` 20:18 <+bridge> [ddnet] `CSkin::SSkinTextures *pSkinTextures` 20:18 <+bridge> [ddnet] for instance, you cant do: 20:18 <+bridge> [ddnet] ```c++ 20:18 <+bridge> [ddnet] const char* pData = &otherdata; 20:18 <+bridge> [ddnet] str_format(pData, "%s", "abcdef"); 20:18 <+bridge> [ddnet] ``` 20:18 <+bridge> [ddnet] because pData points to const data 20:18 <+bridge> [ddnet] but you can do: 20:18 <+bridge> [ddnet] ```c++ 20:18 <+bridge> [ddnet] char aBuf[] = { 'a', 'b', 'c' }; 20:18 <+bridge> [ddnet] const char* p1 = aBuf; 20:18 <+bridge> [ddnet] p1[0] = 'z'; // <-- error 20:18 <+bridge> [ddnet] char* p2 = aBuf; 20:18 <+bridge> [ddnet] p1[0] = 'z'; // <-- no error 20:18 <+bridge> [ddnet] ``` 20:19 <+bridge> [ddnet] *p2 for the second 20:19 <+bridge> [ddnet] ```c++ 20:19 <+bridge> [ddnet] char aBuf[] = { 'a', 'b', 'c' }; 20:19 <+bridge> [ddnet] const char* p1 = aBuf; 20:19 <+bridge> [ddnet] p1[0] = 'z'; // <-- error 20:19 <+bridge> [ddnet] char* p2 = aBuf; 20:19 <+bridge> [ddnet] p2[0] = 'z'; // <-- no error 20:19 <+bridge> [ddnet] ``` 20:20 <+bridge> [ddnet] however you are right too i think 20:20 <+bridge> [ddnet] if u do it with a struct you can copy it into a non const ptr 20:23 <+bridge> [ddnet] example 20:23 <+bridge> [ddnet] ```c++ 20:23 <+bridge> [ddnet] 20:23 <+bridge> [ddnet] struct a { 20:23 <+bridge> [ddnet] int* p; 20:23 <+bridge> [ddnet] }; 20:23 <+bridge> [ddnet] 20:23 <+bridge> [ddnet] struct a tmp; 20:23 <+bridge> [ddnet] const a *pPtr = &tmp; 20:23 <+bridge> [ddnet] int* pPtrModify = pPtr->p; 20:23 <+bridge> [ddnet] 20:23 <+bridge> [ddnet] *pPtrModify = 1; 20:23 <+bridge> [ddnet] ``` 20:23 <+bridge> [ddnet] 20:23 <+bridge> [ddnet] will probably work 20:23 <+bridge> [ddnet] bcs you aren't modifying the struct 20:23 <+bridge> [ddnet] just what it points to 20:26 <+bridge> [ddnet] OK 20:26 <+bridge> [ddnet] Looks all weird to me 20:26 <+bridge> [ddnet] but i kinda get it 20:26 <+bridge> [ddnet] this makes sense to me 20:27 <+bridge> [ddnet] OKAY I GET IT NOW 20:28 <+bridge> [ddnet] Something that helped me understand consts: 20:29 <+bridge> [ddnet] `const X` is actually syntactic sugar for `X const`, meaning const is usually on the right of what it qualifies. 20:29 <+bridge> [ddnet] and `const char * const` is the same as `char const * const`, `const std::string&` is the same as `std::string const&`… 20:29 <+bridge> [ddnet] i now understand it, you can change where it points to but you cant modifie individual member values 20:29 <+bridge> [ddnet] Am i on the right path 20:30 <+bridge> [ddnet] that way you can better see whether it's the char part or the * part which is const 20:30 <+bridge> [ddnet] you mean my last question i guess. 20:30 <+bridge> [ddnet] i understood that already. Great Explanation tho!:happy: 20:30 <+bridge> [ddnet] i now understand it, you can change where it points to but you cant modifie individual member values 20:30 <+bridge> [ddnet] Am i on the right path? @Not Keks @Chairn 20:31 <+bridge> [ddnet] I think now understand it: 20:31 <+bridge> [ddnet] You can change where it points to but you cant modifie individual member values 20:31 <+bridge> [ddnet] Am i on the right path? @Not Keks @Chairn 20:31 <+bridge> [ddnet] yes 20:35 <+bridge> [ddnet] "`const std::string& is the same as std::string const&`" 20:35 <+bridge> [ddnet] thats just a reference anyway right ? 20:37 <+bridge> [ddnet] you mean my last question i guess. 20:37 <+bridge> [ddnet] i understood that already. Thanks tho!:happy: 20:43 <+bridge> [ddnet] we only save those that are different from default 20:43 <+bridge> [ddnet] but that's not a good solution either 20:43 <+bridge> [ddnet] that makes changing config defaults bad if we don't want to change it for existing configs 20:43 <+bridge> [ddnet] we should always save all configs, and make explicit migrations 20:43 <+bridge> [ddnet] Are you sure? We did discuss it but I don’t remember it getting implemented 20:43 <+bridge> [ddnet] yes, sure 20:44 <+bridge> [ddnet] we have a discussion about it when we change config defaults 20:44 <+bridge> [ddnet] because suddenly that's something to discuss, because it changes existing players' configs 20:44 <+bridge> [ddnet] Hm, I can’t imagine not wanting to change configs for players that haven’t touched them 20:45 <+bridge> [ddnet] We do want everyone on what we think is the sane default unless they explicitly opt out, no? 20:45 <+bridge> [ddnet] it's unclear if they have touched it or not 20:45 <+bridge> [ddnet] they just changed it to default again or not 20:45 <+bridge> [ddnet] think e.g. default fullscreen setting 20:45 <+bridge> [ddnet] I'm sure most people set it to what they prefer 20:45 <+bridge> [ddnet] if we change it, it'll change for everyone who was on the old default 20:46 <+bridge> [ddnet] that's really anoying 20:46 <+bridge> [ddnet] that's really annoying 20:46 <+bridge> [ddnet] That’s a small issue, no? They can just change it back. It’s desirable that everyone who doesn’t care ends up with good defaults 20:47 <+bridge> [ddnet] you achieve that with this ^ 20:47 <+bridge> [ddnet] but without the downsides 20:47 <+bridge> [ddnet] check the discussions where we change defaults 20:47 <+bridge> [ddnet] even tho i agree, the defaults on many linux apps suck xDD 20:48 <+bridge> [ddnet] Does that really fix it? If we change a default and make a migration for it, the people who would be annoyed by the default change will get annoyed 20:48 <+bridge> [ddnet] it somewhat fixes it because we can then *explicitly* decide whether to change existing players config 20:48 <+bridge> [ddnet] for something like fullscreen, that'd probably be a "no, don't change" 20:49 <+bridge> [ddnet] Hm, but that doesn’t help with the people that don’t care getting good defaults. We make a migration it’ll migrate everyone 20:53 <+bridge> [ddnet] Say we want to make vulkan default, we push a migration for it, konsti gets annoyed because he really wants opengl 1.4 for whatever reason 20:55 <+bridge> [ddnet] I guess with that approach, we could even let people opt out of config migrations? 21:44 <+bridge> [ddnet] that's one step closer to what I'm searching for! Now all I need to figure out is how Rifles and Shotguns connect into the equation! 21:50 <+bridge> [ddnet] wym? 21:56 <+bridge> [ddnet] My plan is to have make something like this. Doors and Freeze Lasers will also have their own color(s), but my main focus is making it so that the ability for different colored lasers is possible. 21:56 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/997592398488154193/unknown.png 22:20 <+bridge> [ddnet] nice 22:21 <+bridge> [ddnet] i was also thonking of different laser colors in fng for different teams 22:25 <+bridge> [ddnet] that would be fun, but i would have to figure how to do use teams in this 22:26 <+bridge> [ddnet] its not gonna happen.i think 22:26 <+bridge> [ddnet] its server feature i believe 22:26 <+bridge> [ddnet] i mean this exists 22:26 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/997600067483602985/unknown.png 22:27 <+bridge> [ddnet] ill check, or maybe someone here knows 22:29 <+bridge> [ddnet] Maybe I'm thinking about this whole thing wrong. What if instead of focusing on *specifics*, I could just create 4 abstract "modes" with laser colors. Given the names will be the same, it would save the hassle of trying to loop around what is what. 22:29 <+bridge> [ddnet] And instead call for a mode when it's needed by one laser. 22:30 <+bridge> [ddnet] you mean make all laser brown when shotgun is selected? then other people with real laser would shoot brown laser too 22:31 <+bridge> [ddnet] nice 22:32 <+bridge> [ddnet] does the server not recognize other people's weapons? 22:33 <+bridge> [ddnet] I think best is if we do this in a kinda mod friendly way. Either, we choose the color based on the entity type (shotgun, rifle, door, freeze wall), or a separated thing to tell the color. 22:33 <+bridge> [ddnet] You dont have to struggle with weapon holding or whatever 22:33 <+bridge> [ddnet] I was thinking the first thing, but if the second is more reccomended, then i could go with what 22:33 <+bridge> [ddnet] I was thinking the first thing, but if the second is more reccomended, then i could go with that 22:34 <+bridge> [ddnet] It'll probably be the first thing 22:34 <+bridge> [ddnet] Alright 22:35 <+bridge> [ddnet] Idk the best way to do it, but we should probably try to make it in a way that provides some prediction information too so it's not completely wasting bandwidth just for visual stuff 22:36 <+bridge> [ddnet] yep 22:36 <+bridge> [ddnet] not really a waste if it creates different visuals, but I agree that having prediction information is nice, too 22:37 <+bridge> [ddnet] Huh, `EntityEx` is surprisingly rigid wtf 22:37 <+bridge> [ddnet] yep 22:37 <+bridge> [ddnet] How did we get it so wrong with such a recent addition? 😦 22:37 <+bridge> [ddnet] thats what im wondering every time, these kinda things just get merged 22:37 <+bridge> [ddnet] ok 22:37 <+bridge> [ddnet] and i always get told to check explicitly and to talk before and so on 22:37 <+bridge> [ddnet] I remember we talked hours about EntityEx 22:37 <+bridge> [ddnet] but not enough :d 22:38 <+bridge> [ddnet] and: we talked about it when it was too late already (?) 22:38 <+bridge> [ddnet] I'm sure we must have been thinking something when we accepted such a generic name for something that looks so rigid 22:38 <+bridge> [ddnet] Also the way it works is not really nice. 22:39 <+bridge> [ddnet] It creates a separate snap object for each entity 22:39 <+bridge> [ddnet] after all you can.do anything client sid 22:39 <+bridge> [ddnet] #4236 22:39 <+bridge> [ddnet] https://github.com/ddnet/ddnet/pull/4236 22:39 <+bridge> [ddnet] `EntityEx` seems to be about static entities in the map(?) 22:39 <+bridge> [ddnet] after all you can.do anything client side 22:39 <+bridge> [ddnet] @Learath2 doesnt change anything about my sentence 22:39 <+bridge> [ddnet] #4176 actually 22:39 <+bridge> [ddnet] https://github.com/ddnet/ddnet/pull/4176 22:40 <+bridge> [ddnet] this is desired imo 22:40 <+bridge> [ddnet] Well... Its okay in general, if we had extended snapshots 22:41 <+bridge> [ddnet] extended = larger? 22:41 <+bridge> [ddnet] yes 22:41 <+bridge> [ddnet] @heinrich5991 hm, that does seem to be the case. Should have been names `StaticEntityEx` 22:41 <+bridge> [ddnet] you can rename it @Learath2 22:41 <+bridge> [ddnet] I was thinking a `SNAP_MORE` where we can put the overflow instead of dropping it 22:42 <+bridge> [ddnet] We can't have variable sized stuff in the snap, can we? 22:44 <+bridge> [ddnet] @Learath2 hm, I'm not sure if our snap diffing works for an object that changes size 22:44 <+bridge> [ddnet] but I think it could be made to work 22:45 <+bridge> [ddnet] Now that I think about it, there is no harm in introducing new extended types, right? we are not constrained on space that way 22:45 <+bridge> [ddnet] we are not constrained in anyway 22:45 <+bridge> [ddnet] we are not constrained in any way 22:45 <+bridge> [ddnet] We don't need this to be very generic, we can just have a `DDNetLaser` like we have a `DDNetProjectile` 22:46 <+bridge> [ddnet] We are a little tight on snap space, some of the larger maps were having issues before we started clipping more aggressively because of the sheer amount of EntityEx's 22:47 <+bridge> [ddnet] I think all of this would make it too complicated no? 22:48 <+bridge> [ddnet] On the contrary, I thought it'd be simpler than a more generic `DynEntityEx` for entities that are spawned at runtime 22:49 <+bridge> [ddnet] hm 22:49 <+bridge> [ddnet] i have the feeling we can soon simply create a new Snap function called SnapDDNet() 22:49 <+bridge> [ddnet] We can have a NetInt or NetEnum for laser type so we can get prediction information, and we can have a NetInt for color 22:50 <+bridge> [ddnet] or 22:50 <+bridge> [ddnet] we rename the old one to LegacySnap 22:50 <+bridge> [ddnet] and thanks to recent work our clients can handle netobjects getting larger 22:50 <+bridge> [ddnet] for older clients + 0.7 22:52 <+bridge> [ddnet] Trying to split that up leads to the same issues I've had while trying to keep the 0.7 compatibility stuff split. As you go down the callstack you lose more and more information about specifics 22:52 <+bridge> [ddnet] s\/down/up/