00:11 < bridge> Yes, that's exactly what we did. pause, overwrite value, continue 02:32 < bridge> "I'll teach first 10 persons how to earn $30k or more in 72 hours from the crypto market. But you will pay me 10% commission when you receive your profit. if interested send me a direct message me by asking HOW for more details on how to get started+1 (559) 666‑3967https://t.me/+t5FYXx5fEB02M2Vk 02:32 < bridge> "I'll teach first 10 persons how to earn $30k or more in 72 hours from the crypto market. But you will pay me 10% commission when you receive your profit. if interested send me a direct message me by asking HOW for more details on how to get started+1 (559) 666‑3967https://t.me/+t5FYXx5fEB02M2Vk 11:00 < bridge> https://github.com/fish-shell/fish-shell/pull/9512 11:00 < bridge> gigachad ngl 11:06 < bridge> Lol is the project so small?^^ 11:06 < bridge> it didnt port all at once 11:06 < bridge> > This should be thought of as a "port" instead of a "rewrite" because we would not start from scratch; instead we would translate C++ to Rust, incrementally, module by module, in the span of one release. We'll use an FFI so the Rust and C++ bits can talk to each other until C++ is gone, and tests and CI keep passing at every commit. 11:06 < bridge> > 11:06 < bridge> > To prove it can work, in this PR I've ported FLOG, topic monitor, wgetopt, builtin_wait, and some others to Rust. The Rust bits live in a crate that lives inside the C++ and links with it. You can just build it the usual way: 11:07 < bridge> 11:07 < bridge> the plan xd 11:07 < bridge> I just don't understand wtf his plan is 11:08 < bridge> to port fish to rust 11:08 < bridge> He wants it in one release but goes over cpp bindings 11:08 < bridge> he didnt say he wants it in one release tho? 11:08 < bridge> Why not complete rewrite xd 11:08 < bridge> The pr says it 11:08 < bridge> where 11:09 < bridge> Ah he means major release 11:10 < bridge> This should be thought of as a "port" instead of a "rewrite" because we would not start from scratch; instead we would translate C++ to Rust, incrementally, module by module, in the span of one release. We'll use an FFI so the Rust and C++ bits can talk to each other until C++ is gone, and tests and CI keep passing at every commit. 11:10 < bridge> Was confused by the"span of one release" part 11:11 < bridge> @heinrich5991 did u consider https://github.com/corrosion-rs/corrosion when adding rust to ddnet? 11:12 < bridge> @Jupeyy_Keks 11:12 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1069923095990767646/TJ8L11SS0-U04CYUXCM7U-f4930ec7ce51-512.png 11:12 < bridge> crab wins fish 11:12 < bridge> Or crab killed fish 11:12 < bridge> xd 11:13 < bridge> Why even a crab 11:13 < bridge> I like that anime girl more 11:13 < bridge> true 11:13 < bridge> @Jupeyy_Keks also the anime girl as details 11:13 < bridge> the ampersan as a pin 11:14 < bridge> its hilarious 11:14 < bridge> & 11:14 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1069923644337291334/z30gb4g5vwea1.webp 11:14 < bridge> kek 11:14 < bridge> where is c++ chan 11:15 < bridge> https://tenor.com/view/anime-old-sophie-howl-scared-gif-12316451 11:15 < bridge> found her 11:22 < bridge> Is that the granny from Kiki's ... Then she is cool xd 11:23 < bridge> Is that the granny from Kiki's delivery service Then she is cool xd 11:39 < bridge> No thats the moving castle 11:39 < bridge> kikis delivery system is the girl riding a broom i think 11:39 < bridge> And that kid doesnt get old 11:39 < bridge> kikis delivery service is the girl riding a broom i think 11:41 < bridge> No thats the howlings (?) moving castle 11:45 < bridge> But there is a granny in the show xd 11:45 < bridge> That wants to fly with the broom 11:45 < bridge> But yeah it's different xd 11:46 < bridge> Yea I know all Ghibli movies 12:22 < bridge> @Jupeyy_Keks who should i ask for the fix? 12:28 < bridge> Puppet#0463 12:29 < bridge> I dunno if he already did it, but at talked about it in pm 12:29 < bridge> I dunno if he already did it, but we talked about it in pm 12:32 < bridge> xD 12:32 < bridge> i see 12:32 < bridge> he sent me here 12:32 < bridge> hahahaha 12:32 < bridge> i guess i'll have to code the tool then 12:36 < bridge> Oh. You can still ask patiga. He is good with his tool and just clamping env points to 1 sounds ez 12:36 < bridge> If you ask kindly he might do it^^ 12:36 < bridge> clamp is ez i could also manage to do it manually 12:36 < bridge> but quads should be fixed too 12:37 < bridge> its not enough to reduce the value on the env 12:37 < bridge> quads are too much..... a script is needed 12:37 < bridge> quads are too many..... a script is needed 12:37 < bridge> Oh it's not enough? I assume it clamps the quad color itself then? 12:37 < bridge> the final result wont be the same 12:38 < bridge> we tried... 12:38 < bridge> its because of the multiplication 12:38 < bridge> if the final result is less than 255 12:38 < bridge> its not you can reduce only the env value 12:38 < bridge> the equation is not balanced anymore 12:39 < bridge> Ah yeah I see 12:39 < bridge> so the tool should foreach every quad 12:39 < bridge> and see the max value it reaches with the current env points 12:39 < bridge> and change both ... 12:39 < bridge> i really hoped someone else did this already xd 12:41 < bridge> I only remember I talked about it with patiga a few years ago already. But it wasn't really ever a problem, since ddnet maps don't rely on it. 12:41 < bridge> Mh yeah kinda annoying, but rn I also cannot help You BCS not at a computer 12:50 < bridge> im kinda surprised you havent experienced this problem on ddnet maps... is so easy to set a color env value > 1... you see something in the editor thinking that's the effect, than in game it's completely different 12:51 < bridge> we also just realized this now cause users starting to report this only now, as they got the renderer switched without really being aware of this 12:51 < bridge> But it's only important while also having an alpha< 1 12:51 < bridge> yes... the probability this problem arises is proportional to your number of quads and envs 12:52 < bridge> and we use those massively 12:52 < bridge> I remember it was reported a few years ago. But thought the maps where fixed back then 12:52 < bridge> i guess thats why 12:52 < bridge> i guess it was easier for you to manually fix ye 12:58 < bridge> @Patiga interested in writing a small script. I want to know if ddnet maps rely on it.. what is twgpu doing in this scenario? 12:58 < bridge> cool, let me know if i can help 13:01 < bridge> twgpu so far just allows > 1 envelope values and uses them as such, didn't see a issue with it back then 13:01 < bridge> the result is pretty well defined and the color is clamped automatically at the end of rendering 13:02 < bridge> but I can see how it is sort of unexpected that you can make stuff brighter I suppose, is that the illogical part you are talking about? 13:02 < bridge> But does it clamp it manually? 13:02 < bridge> I don't think so 13:02 < bridge> The GPU driver might simply use the alpha value and multiply it with the rgb value and only clamps that result 13:03 < bridge> So if rgb is 2 and alpha 0.5 result is rgb = 1 13:03 < bridge> huh, I didn't know about that 13:03 < bridge> Old renderer would clamp the rgb 13:03 < bridge> would you be against manual clamping? 13:04 < bridge> at the end of the fragment shader 13:04 < bridge> I generally prefer to leave it to the GPU and so all kinds of clamping in the editor already 13:04 < bridge> I'll rationalize it again 13:05 < bridge> But if it's not ub from Vulkan spec. We should probs allow it 13:06 < bridge> I mean negative values are bonkers and are allowed too 13:06 < bridge> True 13:06 < bridge> up until recently I only saw negative/above 1 values as: influences the interpolation differently compared to 0/1 13:07 < bridge> but I think values above 1 can be used in a sensible way and I think software such as blender also handles values this way 13:07 < bridge> They often use such information for brightness 13:07 < bridge> E.g. hdr 13:08 < bridge> But that works affect the whole scene 13:08 < bridge> They also probably don't use rgb xd 13:10 < bridge> in the shader editor (the one with the nodes), rgba values can also be set above 1, just checked 13:10 < bridge> you don't even have to use math nodes 13:11 < bridge> if you use the slider it will default into the range 0-1, but if you insert 2, the range of the slider is 0-2 13:13 < bridge> I don't understand hsv yet. there you can't raise `hue` and `saturation` above 1, but `value` and `alpha` can have any positive values 13:14 < bridge> honestly I'd be fine with both behaviors, allowing values above 1 would be fine by me 13:14 < bridge> how do you see it? 13:16 < bridge> I looked into the spec and some khronous opengl wiki. They clearly give the calculation of the alpha blending and say it is clamped after the fragment output. So I guess it's good to allow it generally 13:16 < bridge> It makes the maps more robust against such changes anyway 13:16 < bridge> So even if we change it back in future the maps will just work 13:17 < bridge> what changes do you mean? 13:17 < bridge> The change that the old renderer clamped the value in the cpu 13:17 < bridge> ah 13:18 < bridge> Instead of letting the GPU do it. Only problem remains it. If this means the old renderer has to upload floating points now 13:18 < bridge> Instead of normalized color valley 13:18 < bridge> Values 13:19 < bridge> I changed that one day to match opengl 3.3 behavior. But i think vanilla uses fp 13:19 < bridge> eh, yeah that is unfortunate, wasn't aware of which renderer introduces which behavior 13:19 < bridge> and vanilla also doesn't clamp? 13:20 < bridge> couldn't you still upload the original values, only let the gpu convert them to floats and divide by 1024? 13:20 < bridge> Without shaders it's hard xd 13:21 < bridge> ow haven't touched opengl yet 😅 13:21 < bridge> btw that is also an issue, many mappers think that 1000 = 1, and not 1024 13:22 < bridge> I even found that in some mapper tutorial somewhere :/ 13:22 < bridge> Yeah xd 13:22 < bridge> If we want to talk about map format. I can give u many issues xdd 13:22 < bridge> heh ^^ 13:22 < bridge> I'd call that one an editor issue tho 13:23 < bridge> the users shouldn't have to work with fixed point numbers 13:23 < bridge> Ah I see xd 13:32 < bridge> @Jupeyy_Keks @Paralix if this might help you: noticed that the map is buggy also with opengl 3.3.0, but not with the other versions of opengl 13:34 < bridge> @Jupeyy_Keks @Patiga if this might help you: noticed that the map is buggy also with opengl 3.3.0, but not with the other versions of opengl 15:40 < bridge> I used it to understand how to embed rust into cmake. however, it didn't really do much and wasn't worth the extra dependency 15:40 < bridge> i see 16:50 < bridge> I am trying to add flag to dfng (which is based on ddnet). I have problems when trying to compile. ``` 16:50 < bridge> dfng-16.5flag/src/game/server/gamecontext.cpp: In member function ‘virtual void CGameContext::OnInit()’: 16:50 < bridge> dfng-16.5flag/src/game/server/gamecontext.cpp:3339:37: error: expected type-specifier before ‘CGameControllerCTF’ 16:50 < bridge> 3339 | m_pController = new CGameControllerCTF(this); 16:50 < bridge> | ^~~~~~~~~~~~~~~~~~ 16:50 < bridge> ``` 16:51 < bridge> I used the 0.6 source for the flag entity and the ctf mod with some changes. 16:53 < bridge> do you define `CGameControllerCTF` somewhere? 16:54 < bridge> ```c++ 16:54 < bridge> class CGameControllerCTF : public IGameController 16:54 < bridge> { 16:54 < bridge> public: 16:54 < bridge> class CFlag *m_apFlags[2]; 16:54 < bridge> 16:54 < bridge> CGameControllerCTF(class CGameContext 16:54 < bridge> ``` 16:55 < bridge> ```c++ 16:55 < bridge> class CGameControllerCTF : public IGameController 16:55 < bridge> { 16:55 < bridge> public: 16:55 < bridge> CGameControllerCTF(class CGameContext *pGameServer); 16:55 < bridge> ``` 16:56 < bridge> on ctf.h under game/server/gamemodes 18:09 < bridge> i love c++ cmake 18:10 < bridge> 1 hour to add a dep 18:10 < bridge> finally i get to code 18:14 < bridge> Did you `#include ".../ctf.h"` in gamecontext.cpp? 18:14 < bridge> yeah that was it thanks although I get segfault now xD. I'll put everything under DDRace.cpp. 18:15 < bridge> run with debugger to figure out the crash 18:27 < bridge> it segfaults at this line `78: ((CGameControllerDDRace *)(pGameServer->m_pController))->m_pInitResult = InitResult;` on score.cpp under game/server 18:27 < bridge> So i'll just add the flag-ing to the ddrace controller ;p 18:35 < bridge> Again my curiosity: since ddnet has controller support: would it be possible (just technically) to release ddnet for xbox/ps4? 18:35 < bridge> Again my curiosity: since ddnet has controller support: would it be possible (just technically) to release ddnet for xbox/ps5? 18:38 < bridge> I guess, as long as the consoles can reach regular servers 18:39 < bridge> Haha, cool, that would be so funny. 18:40 < bridge> xbox is windows anyway 18:40 < bridge> thats also why u can play xbox games on win10+ 18:40 < bridge> Is it all intel 64 bit? 18:40 < bridge> amd64 18:41 < bridge> but yeah 18:41 < bridge> What Is Error ? 18:41 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1070036039772688514/Screenshot_2023-01-31_211048.png 18:42 < bridge> i dunno what exactly its used for maybe for the checksum or for the git commit displayed at the version string 18:42 < bridge> 18:42 < bridge> but i guess smth like that 18:42 < bridge> but no idea how to fix xd 18:43 < bridge> omg 18:43 < bridge> did you not use git clone 18:43 < bridge> but just downloaded the source? 18:44 < bridge> ohhh yes 18:44 < bridge> yes 18:44 < bridge> @heinrich5991 can we detect it ^ 18:44 < bridge> The build should still work with the source download though, if not then that's an issue of the build system 19:45 < bridge> i love 19:45 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1070052230117470299/image.png 19:45 < bridge> c++ error messages 19:45 < bridge> i wanted to do some ddnet coding but im reminded why i stay with rust 19:46 < bridge> it prints this t o tell me there is a duplicate symbol xd 19:51 < bridge> that's no c++ error messages 19:51 < bridge> that's build system telling which command failed 19:51 < bridge> same shit 19:52 < bridge> the build is part of the language 19:52 < bridge> tooling is essential 19:52 < bridge> it's not 19:52 < bridge> for me it is 19:52 < bridge> here you use Ninja i believe 19:52 < bridge> ninja is at least 30 years more recent than c++ 19:53 < bridge> it's like blaming the patient when the error is due to the doctor 19:54 < bridge> xd 19:55 < bridge> tooling is essential 19:55 < bridge> rust tooling is better, but in this case u probs only need to read the last sentence anyway 19:55 < bridge> so far 75% of my time has been spent adding a library xd 19:55 < bridge> rest is maybe nice to have actually 19:55 < bridge> in case u arent sure why the error happens 20:03 < bridge> `0x00007ffff582dbf0 in vtable for __cxxabiv1::__si_class_type_info () from /usr/lib/gcc/x86_64-pc-linux-gnu/12/libstdc++.so.6` 20:03 < bridge> i get a segfault here now xd 20:08 < bridge> 20:08 < bridge> zzz 20:09 < bridge> xd 20:10 < bridge> oh 20:10 < bridge> maybe cuz we dont use namespaces 20:10 < bridge> the class names collide 20:10 < bridge> i expected too much 20:16 < bridge> fixed xd 21:06 < bridge> I have switched to NixOS recently and the Steam release stopped working for me 🤔 21:06 < bridge> 21:06 < bridge> ``` 21:06 < bridge> 2023-01-31 21:04:51 I http: fetching https://info.ddnet.org/info?name=Scrumplex 21:06 < bridge> 2023-01-31 21:04:51 I http: https://master2.ddnet.org/ddnet/15/servers.json failed. libcurl error (60): SSL certificate problem, verify that the CA cert is OK. Details: 21:06 < bridge> error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed 21:06 < bridge> 2023-01-31 21:04:51 I http: https://info.ddnet.org/info?name=Scrumplex failed. libcurl error (60): SSL certificate problem, verify that the CA cert is OK. Details: 21:06 < bridge> error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed 21:06 < bridge> 2023-01-31 21:04:51 I http: fetching https://info.ddnet.org/info?name=Scrumplex 21:06 < bridge> 2023-01-31 21:04:51 I http: https://master1.ddnet.org/ddnet/15/servers.json failed. libcurl error (60): SSL certificate problem, verify that the CA cert is OK. Details: 21:06 < bridge> error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed 21:06 < bridge> ... 21:06 < bridge> ``` 21:10 < bridge> Can you open `https://master2.ddnet.org/ddnet/15/servers.json` in a browser successfully? 21:10 < bridge> yes 21:10 < bridge> curl also works fine 21:11 < bridge> I expect there are some quirks with Steam on NixOS here 21:18 < bridge> hmm 21:19 < bridge> Looks like it works fine when i use the Steam Linux Runtime as a compat tool 21:24 < bridge> see #3909 21:24 < bridge> https://github.com/ddnet/ddnet/issues/3909 22:33 < bridge> Hello, i can ask questions about coding here? 22:34 < bridge> dont ask to ask, just ask? 22:37 < bridge> How to "substring"? 22:50 < bridge> Do you mean in general or in tw/ddnet code? 22:55 < bridge> depends heavily on the language if it's not tw/ddnet 23:01 < bridge> ddnet code