04:27 < bridge> good morning. good night 04:27 < bridge> and tomorrow work will be done 06:07 < bridge> I have a tag here 06:07 < bridge> Anyone know why? 06:07 < bridge> Can't find it 06:16 < bridge> <_voxeldoesart> tag you're it! 06:16 < bridge> <_voxeldoesart> tag, you're it! 07:44 < bridge> Because your Doppelganger was trolling us by showing his coding skills 10:28 < bridge> `typedef ivec4 CColor;` in the map format :pepeW: 10:29 < bridge> How many maps might have color component values outside the 0-255 range? 10:33 < bridge> i dunno, but some have values outside of range because of env calculations 10:40 < bridge> You mean calculated values? The values in the map should always be in 0-255 range, right? 10:41 < bridge> I think none, twmap is strict there 10:41 < bridge> well at least no ddnet maps 10:42 < bridge> i dunno if we need to generally force it 10:43 < bridge> If it could cause rare issues with some drivers then it would be better to avoid I guess 10:43 < bridge> It also breaks the editor if colors components are not in the 0-255 range though 10:44 < bridge> Since all components are packed into one int at some point 10:44 < bridge> and I mean, colors only really make sense up to 255, no? thr only thing I can think of is trickery with envelopes, but that should be possible through other means anyways 10:45 < bridge> i mean u could say an env alpha of 2.0 allows to multiply all color values by 2 10:45 < bridge> i dunno if this is nice 10:46 < bridge> but if the color values are <= 0.5 10:46 < bridge> it's not breaking anything 10:46 < bridge> Yeah, it's possible that clamping color values would change some maps that used this weird behavior with old envelopes. Color envelopes cannot have components outside 0.0-1.0 either in the latest client. 10:47 < bridge> I don't know if it was ever possible to an out of range color value in the editor, since we probably packed the components into an int since forever 10:47 < bridge> I thought we were talking about tiles layer colors or quad colors 10:47 < bridge> I don't know if it was ever possible to input an out of range color value in the editor, since we probably packed the components into an int since forever 10:49 < bridge> yeah but like, why enforce it for those, but not for env? 10:50 < bridge> If the quad/layer color is 511 but an envelope limits it to 255 then it's fine, but it shouldn't be possible anymore for color envelopes to cause out of range values on their own, because they are already limited to the 0.0-1.0 range 10:51 < bridge> but do you want to have it a validation check or what? 10:52 < bridge> i'd say just be careful with rounding errors, if the editor uses floats or smth 10:52 < bridge> that we dont use a u8 vec sucks here ofc 10:53 < bridge> the biggest upside I saw for envs is that high values allow you to create differen interpolation effects. was brightening with env values a thing? I don't remember 10:53 < bridge> At some point it should be added as validation, but it's not on my list right now. I just found out we use an `ivec4` for colors 10:53 < bridge> I'm not sure if there is any map out there with an invalid value there 10:54 < bridge> there is one city map that accidentially caused this brighten effect because we changed from clamping to "i dont care" 10:54 < bridge> but i'd say it's not used yet 10:54 < bridge> ah 10:55 < bridge> I mean, with bezier curves, higher values should not be required anymore for different interpolation 11:00 < bridge> https://cdn.discordapp.com/emojis/996936866421014569.gif?size=64 13:41 < bridge> @patiga Does it make sense to support map items with size 0 (i.e. only the type and ID meta data exist)? This would disallow items without any data. 13:42 < ChillerDragon> sos how to memory manage 13:42 < ChillerDragon> https://github.com/ddnet/ddnet/blob/03400f6ff384a9c8a64f3ebf26f1003858e362a1/src/game/client/components/chat.cpp#L76 13:42 < ChillerDragon> ``CChat::RegisterCommand(const char *pName, const char *pParams, int flags, const char *pHelp)`` 13:43 < ChillerDragon> this copies the string pointers in some vector. which works fine because RegisterCommand is called on fixed strings from ddracechat.h 13:43 < bridge> depends on the type I would say. I think env points can have 0 size, and I'll have to debug but I think there are also maps with ddnet bezier data with 0 size 13:43 < ChillerDragon> i now want to call RegisterCommand later in the code with some dynamic input. And I need to store that strings memory somewhere. 13:44 < ChillerDragon> any suggestions on how to do that? would it be bad if RegisterCommand does a strcpy and allocates memory? 13:44 < ChillerDragon> @patiga sorry for hijacking your convo 13:44 < bridge> all good ^^ 13:46 < bridge> Ah, true, envelope points are a special case. That explains why I added checks to allow empty map items on vanilla, but I didn't remember why 13:46 < bridge> Currently causes a malloc of size 0 in that case 13:50 < bridge> @patiga if u want u can edit my pr 13:50 < bridge> ill probs forget otherwise xd 13:52 < bridge> I think its a rather small change 13:52 < bridge> but I'm not at home rn, will have to remember it later 14:02 < bridge> <_ghrn> help in korea serv 14:02 < bridge> <_ghrn> https://cdn.discordapp.com/attachments/293493549758939136/1169260122862788740/20231101220058_1.jpg?ex=6554c159&is=65424c59&hm=efdeca584d710de1d8e1820b990d34ed3755571073edaddd0ae5fe4494d6b264& 14:02 < bridge> @_ghrn Create a Report: https://discord.com/channels/252358080522747904/1124657351442579486 14:48 < blazulite> hi 14:49 < bridge> hai, moin 14:50 < bridge> lol I'm just testing this irc thing 14:50 < bridge> looks interesting 14:50 < blazulite> swaggy 14:51 < bridge> oldschool hipster 14:52 < bridge> lol 14:53 < blazulite> Wait a minute 14:54 < blazulite> I just realized... doesn't the ddnet chat works kinda like this? 14:54 < blazulite> like an irc thing 14:54 < blazulite> I still didn't checked the ddnet chat's code so I'm just guessing 14:54 < blazulite> in first place cuz of how mentions works 14:54 < blazulite> bridge: hi 14:58 < bridge> u could argue both are rather simplistic chats xd 14:58 < bridge> it might be nice to show a warning when launching the map first 14:59 < blazulite> Jupstar ✪: makes sense 14:59 < bridge> Already done, #7400 🙂 14:59 < bridge> https://github.com/ddnet/ddnet/pull/7400 14:59 < bridge> maybe for envelopes? they're stored in a weird way 15:00 < bridge> a malloc of size 0 isn't a problem AFAIK 15:00 < bridge> but not for internal image names? 15:01 < bridge> No, I'm not sure it's would be that useful for users to know that a basically irrelevant string failed to load 15:02 < bridge> I'd prefer fixing the majority of maps first before adding a warning message that will lead to countless bug reports 15:02 < bridge> It's a problem for clang-tidy if it detects it (`Call to 'malloc' has an allocation size of 0 bytes [clang-analyzer-unix.API]`) 15:02 < bridge> it can return nullptr 15:02 < bridge> that kinda sucks to work with 15:03 < bridge> if it's no problem, then we should fix clang-tidy instead 15:03 < bridge> Yeah, if it returns `nullptr` on some implementations and we accidentally access the memory then that's bad 15:03 < bridge> On other implementation it allocates some dummy memory that must be freed 15:03 < bridge> why do we access the memory if we allocate 0 bytes? 15:04 < bridge> that's a bug even if it returns a non-null pointer 15:04 < bridge> Assuming all functions also check the data size then it shouldn't cause issues, but I don't think that's the case yet 15:04 < bridge> I don't see what this fixes 15:05 < bridge> an access to memory of size 0 is a bug already 15:05 < bridge> what if we have some logic that does if ptr != nullptr 15:05 < bridge> independent of if we access it 15:05 < bridge> yes, that's a problem I can see 15:05 < bridge> yeah, it's allowed. IIRC it was used to retrieve heap pointers directly 15:09 < bridge> <_voxeldoesart> i once tried to make a pr that added ui sounds 15:09 < bridge> <_voxeldoesart> for hovering / clicking / contextual related things 15:09 < bridge> make cool menu music xdd 15:10 < bridge> <_voxeldoesart> i dont know how to make music 15:10 < bridge> buy isntrument 15:10 < bridge> buy instrument 15:13 < bridge> <_voxeldoesart> i mean i have fl 20 15:13 < bridge> <_voxeldoesart> but idk music theory 15:14 < bridge> lmao 15:14 < bridge> in the modern times of electronic sounds, ppl just move some sounds into their music editor until it sounds cool 15:15 < bridge> the question is: do you have good taste 😏 15:15 < bridge> <_voxeldoesart> i can try and replicate good taste 15:15 < bridge> epic 15:15 < bridge> i mean you are an artist, i bet you have a better feeling what could work out than many xd 15:16 < bridge> <_voxeldoesart> not going to lie all the updates i wanna do completely go against the "making ddnet lightweight" thing. 15:16 < bridge> <_voxeldoesart> i wanna so much crap but itd mostly be bloat 15:16 < bridge> lightweight doesn't mean "not extendable" 15:16 < bridge> <_voxeldoesart> several music tracks, more weapons, a better skin system 15:25 < bridge> <_voxeldoesart> i gotta make more concept videos 15:29 < bridge> what 15:39 < bridge> Hi 15:44 < bridge> <_voxeldoesart> omfg 15:44 < bridge> <_voxeldoesart> @jupeyy_keks images with normal maps 15:45 < bridge> <_voxeldoesart> if we ever set up a lighting system we gotta get images that pair with normal maps 15:45 < bridge> <_voxeldoesart> like in spelunkey 15:55 < bridge> yeah interesting, u could try patigas godot ddnet renderer 15:55 < bridge> and add lights to that to test around with 16:04 < bridge> <_voxeldoesart> oh yea good idea 16:04 < bridge> <_voxeldoesart> time to learn godot LOL 16:08 < bridge> dont think music will ever work with current ddnet 16:10 < bridge> <_voxeldoesart> not like a give a shit but this outputs images, right 16:11 < bridge> it outputs pixels and width & height 16:11 < bridge> i also have it as outputting images tho 16:11 < bridge> https://github.com/Jupeyy/dd-pg/tree/test5/src 16:11 < bridge> 16:11 < bridge> the `-convert`stuff 16:12 < bridge> you can do cargo build -p x-convert 16:12 < bridge> where x is one of the items in that list 16:12 < bridge> https://github.com/Jupeyy/dd-pg/tree/test5/src 16:12 < bridge> 16:12 < bridge> the `-convert` stuff 16:12 < bridge> if u want i can also build them for u xd 16:12 < bridge> on the other hand side.. you need to learn rust anyway 16:13 < bridge> xDD 16:14 < bridge> <_voxeldoesart> im only asking because i still wanna do the whole remodel of the images things 16:15 < bridge> https://tenor.com/view/ferris-clap-mp4-3d-cheer-gif-26403801 16:16 < bridge> <_voxeldoesart> ew 16:16 < bridge> <_voxeldoesart> ln 61 16:16 < bridge> <_voxeldoesart> ```else if height % 4 != 0 { 16:16 < bridge> <_voxeldoesart> Err(anyhow!("width is not divisible by 4"))``` 16:16 < bridge> <_voxeldoesart> lmao 16:17 < bridge> xd 16:17 < bridge> https://github.com/Jupeyy/dd-pg/blob/test5/game/client-extra/src/skin_split.rs#L62 16:17 < bridge> fixed in current version actually 😉 16:17 < bridge> seems like i already noticed it when implementing the other splitters 16:17 < bridge> <_voxeldoesart> oh i forgot to see the link 16:20 < bridge> <_voxeldoesart> the `X * segment_width/height` looks so clunky LOL 16:22 < bridge> <_voxeldoesart> why not have it times by segment_width/height in the actual single_img function 16:22 < bridge> which converter are you reading? 16:23 < bridge> note that i automated all other converters using regex xd 16:23 < bridge> and the content.py from ddnet 16:23 < bridge> <_voxeldoesart> game_splitter 16:23 < bridge> <_voxeldoesart> that makes much more sense 16:27 < bridge> I should do a ddnet remake too, that seems to be the hype 16:27 < bridge> epic 16:27 < bridge> Learath & ? 16:28 < bridge> whom do u team up with 16:28 < bridge> Do I need a duo? 16:28 < bridge> currently we have 16:28 < bridge> Me + Robyte vs. Patiga + Zwelf vs Ryo + Voxel 16:28 < bridge> 1 vs 2 16:28 < bridge> what a pro 16:28 < bridge> Ryo and Voxel are making a ddnet remake? 16:28 < bridge> yes 16:28 < bridge> Learath go with zogtib ;) 16:28 < bridge> in c xDDD 16:28 < bridge> every team has to have someone who gives you a smack and does nothing 16:29 < bridge> Portable C99 💪 16:29 < bridge> Or maybe I can get heinrich onboard 16:29 < bridge> Though then it has to be in Rust 16:29 < bridge> it's settled 16:30 < bridge> `Jupstar` + `Robyte` vs. `Patiga` + `Zwelf` vs. `Ryozuki` + `Voxel` vs. `Learath` + `heinrich` 16:30 < bridge> 2v2v2v2 16:30 < bridge> 4 teams fng 16:30 < bridge> xd 16:31 < bridge> was about to say it 16:31 < bridge> lmao 16:34 < bridge> `Jupstar` + `Robyte` ⚔️ `Patiga` + `Zwelf` ⚔️ `Ryozuki` + `Voxel` ⚔️ `Learath` + `heinrich` 16:35 < bridge> Hm, though with heinrich it'll also have to be fully backwards, forwards and multiverse compatible 16:35 < bridge> xDDDDDDDDDD 16:37 < bridge> btw, has there been any discussion/solutions about accounts since the last comment on github in July? 16:37 < bridge> Nope 16:39 < bridge> sounds like it's time for the bimonthly accounts debate 😼 16:40 < bridge> It's biannual not bimonthly 😄 16:41 < bridge> i have a plan for my implementation, but more than changing some fields and sql strings isn't really done 16:41 < bridge> i got kinda distracted with other stuff xd 18:19 < bridge> hey is there a easy way to completely isolate instances of CGameWorld in the clientside prediction? 18:20 < bridge> i want them to suffer for what they've done to me 19:11 < bridge> <_voxeldoesart> """making""" 19:11 < bridge> <_voxeldoesart> wait wtf why am i paired with ryozuki?? LOL 19:13 < bridge> <_voxeldoesart> nuh uh ryo's doing all the coding 19:13 < bridge> <_voxeldoesart> im the ideaman 19:17 < bridge> https://discord.com/channels/252358080522747904/293493549758939136/1168495500954185758 19:21 < bridge> <_voxeldoesart> shrug. i guess if it becomes a serious thing ill make proper concept art for how everything should function. 19:23 < bridge> ideas man 19:23 < bridge> lmfao 19:23 < bridge> everyone needs an ideas man :pepeW: 19:34 < bridge> gonna be real the only thing ddnet needs is sentry gun from tf2 19:34 < bridge> <_voxeldoesart> oh man 19:34 < bridge> <_voxeldoesart> cant wait for ddnet to have classes 19:34 < bridge> <_voxeldoesart> the medic tee 19:35 < bridge> its just rifle but curved 19:38 < bridge> <_voxeldoesart> @ryozuki i saw you typing 19:38 < bridge> xd 19:42 < bridge> have u never played infclass 19:52 < bridge> <_voxeldoesart> cyber forced me to grind for him 19:55 < bridge> did the behavior of these buttons change? 19:55 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1169348940827730040/image.png?ex=65551410&is=65429f10&hm=34354e4ed513f51f48f735c979a7d62c28df9f26fd1ca044ba69e2b9346722bb& 19:55 < bridge> i click square.. nothing happens 19:55 < bridge> ah lol nvm 20:25 < bridge> thats not infclass 20:25 < bridge> do we somewhere print the zoom level in the client? xd 20:25 < bridge> i have the feeling u can't get its current value 20:35 < bridge> Yeah, doesn't look like we show it anywhere. Using `zoom` in console also doesn't seem to print the current value 20:47 < bridge> No 20:47 < bridge> it sets it to the default zoom 20:47 < bridge> bcs con zoom value is immediately converted and stored in ccamera so the original value is never kept 20:48 < bridge> 😃 20:49 < bridge> <_voxeldoesart> mb 20:53 < bridge> jesus wavpack is fucking garbage 21:14 < bridge> yeah 22:26 < bridge> `T datafile: loading data. index=23 size=8 uncompressed=0` :nouis: 22:26 < bridge> At least only one official map has invalid map settings 23:01 < bridge> in what way invalid? 23:03 < bridge> Not really invalid, but the string array data has size 0, which I consider an error now, as empty string array should not be packed into datafiles at all 23:03 < bridge> In `DeadCore 1` 23:03 < bridge> Not really invalid, but the string array data has size 0, which I consider an error now, as empty string arrays should not be packed into datafiles at all 23:03 < bridge> ah, I get it 23:03 < bridge> but it doesn't sound *too* bad, no? 23:04 < bridge> I check for valid utf-8 in the settings too, but that's all good it seems 23:04 < bridge> I checked for valid utf-8 in the settings too, but that's all good it seems 23:04 < bridge> Yeah, I already fixed the map by resaving it, should be deployed to github at some point 23:05 < bridge> Yeah, I already fixed the map by resaving it, should be deployed by the bot to github at some point 23:05 < bridge> remember that every map update requires every player to redownload it 23:06 < bridge> I do think issues in maps should get fixed, but some things might just not be worth it 23:43 < bridge> @patiga 23:43 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1169406348379832362/IMG_20231102_063820_207.jpg?ex=65554987&is=6542d487&hm=2fa87514f0078c51765e1b438cf75f681c567fe03e042680e4122a7e6921aeee& 23:43 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1169406417946562591/IMG_20231102_063820_207.jpg?ex=65554998&is=6542d498&hm=41a16372d9923865476a0445d335a18ee8be1aadce3eb44384a5b2b0df51f48f& 23:44 < bridge> no idea why there was a tag in the draft before i sent thn last one 23:44 < bridge> :justatest: 23:47 < bridge> my brothers got no linux distributions this year