00:40 < bridge> Since when is ddnet client able to properly display projectiles in other tune zones? 00:40 < bridge> or while switching tune zones, so to say 00:45 < bridge> ------ 00:45 < bridge> I somehow broke a map I think? cant tele and switch tiles re-appearing after map reload 00:46 < bridge> I somehow broke a map I think? cant tele and switch and speedup tiles re-appearing after map reload 00:47 < bridge> ah, removing the tiles not by shift-selection worked 01:03 < ws-client> @animepdf lmao 01:03 < ws-client> @kollpotato pro 01:18 < bridge> it causes everything to be confused 01:18 < bridge> it thinks u have connection problems 01:18 < bridge> and u can barely move 01:18 < bridge> and u ping back and forth 01:18 < bridge> like packet loss 01:18 < bridge> but constantly more than uve ever fealt 01:28 < bridge> This is just bandwidth it doesn't change the speed of the game. 03:30 < bridge> ChillerDragon 03:35 < bridge> A wonderful man risu made a script in python, which allows you to output the necessary commands in tune to slow down / speed up the game, everything works great, but there is one drawback. At a deceleration of 4x or more , when reaching the peak height during a normal jump, the player stops falling for 0.5 seconds or more with each deceleration 03:45 < bridge> Is it possible to fix it 04:02 < ws-client> ddnet has more open pull requests than sdl 04:03 < ws-client> @woidless i am not going to mess with tunes 05:05 < bridge> Who should I contact? 05:26 < bridge> I think it's due to the game rounding very small velocities to 0, I could try to figure out where specifically that happens but obviously can't be fixed without changing the code 07:04 < bridge> Well, try it? 07:23 < bridge> You could ask the owners of the server you are trying to copy -.- 07:51 < bridge> *whips his coding slaves* 08:01 < bridge> He sells a SlowNet device for $4, I'm sorry, but it's not that clowning, it's moronism. This is implemented in a couple of commands in tune, and he evaluates them for $ 4. 08:01 < bridge> I want to implement it for free 08:44 < bridge> My neovim broke without a reason, wtf :pepeW: \ 08:44 < bridge> My neovim broke without a reason, wtf :pepeW: 08:44 < bridge> :nouis: 08:44 < bridge> what broke 08:44 < bridge> It just closes with exit code 0 when I try to open a directory 08:44 < bridge> lol 08:45 < bridge> emacs when? 08:45 < bridge> you make me sick 08:45 < bridge> use helix 08:46 < bridge> The only thing I'm annoyed with in neovim is that opening huge files isn't optimized. 08:46 < bridge> The only thing I'm annoyed at in neovim is that opening huge files isn't optimized. 08:50 < bridge> idk i like helix 08:50 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1306526537679638529/image.png?ex=6736fd28&is=6735aba8&hm=182701de1fb22b4f6dd677543f75a6d51aa9605ac4d2da8e277aacb3d431c24b& 08:53 < bridge> Is it good? 08:53 < bridge> I've never tried it 08:54 < bridge> some things are different, but i just like that i dont need to tinker anything for it to be a functional code editor 08:56 < bridge> now ofc i did set this up with nix and not their toml format, but the only settings i changed were some keybinds like 08:56 < bridge> 08:56 < bridge> `f` for file picker in cwd 08:56 < bridge> `$` for goto_line_end 08:56 < bridge> `_` for goto_line_start 08:56 < bridge> 08:56 < bridge> etc, because i was used to those from vim 09:03 < bridge> helix is cool until you need to customize it 👍 09:04 < bridge> also... helix has a lot of kickass colorschemes 09:04 < bridge> I had some sus values in `.local/share/nvim/.netrwhist`, I removed them and now nvim works 09:05 < bridge> netrw :nouis: 09:47 < bridge> I thought it didn't work because it was pointing to non existing directories but I put one myself and it just deleted it, but worked as expected, weird :\ 09:49 < bridge> Who knows where in the code gravity is rounded to 0 if the value is very small 09:51 < bridge> @woidless choose a channel to ask these questions, dont ask the same in multiple please 09:52 < bridge> thx 10:32 < bridge> Search for quantize 10:48 < bridge> What is this? 12:23 < bridge> BRO LOL IT'S NOT, IM OWNER OF IT, WE ARE SELLING THE PROJECT WHICH WE TRYING TO GET TASNET LEVEL, WE NOW GOING TO USE THE CODE, NOT TUNES 12:26 < bridge> > WE ARE SELLING THE PROJECT WHICH WE TRYING TO GET TASNET LEVEL* 12:26 < bridge> 12:26 < bridge> what? 12:26 < bridge> > WE ARE SELLING THE PROJECT WHICH WE TRYING TO GET TASNET LEVEL 12:26 < bridge> 12:26 < bridge> what? 12:30 < bridge> he is trying to say that code is being written and they are trying to do something similar to TASNET 13:11 < bridge> ITS COPYRIGHTED 13:12 < bridge> Bro, and I leaked tune for free 13:13 < bridge> And moreover, what potential does slownet have, it's either slowing down or accelerating, it can't cost $4 13:13 < bridge> What are you going to bring to the tasnet level? slowing down? 13:30 < bridge> i rly enjoy slowmo servers in 2012 tbh 13:45 < bridge> u both are trying to copy something that got popular, you can cooperate instead 14:25 < bridge> I personally saw his idea, and saw that it sells it. I wanted to implement a completely free 14:26 < bridge> https://github.com/dailenson/One-DM 14:26 < bridge> handwriting is dead 14:26 < bridge> 14:26 < bridge> can we stop trying to make money out of FOSS software please :pepeW: 14:27 < bridge> i just got here, did someone sell ddnet 14:29 < bridge> let it be implemented for free* 14:29 < bridge> *whips his coding slaves again* 14:29 < bridge> :kek: 14:30 < bridge> *coding slaves cry in binary* 14:30 < bridge> i thought we don't use the s-word anymore 14:30 < bridge> you don't :0 14:33 < bridge> Stoping time, better slowing, time reverse etc. 14:46 < bridge> I mean, it's perfectly legal as long as you provide source :) 14:52 < bridge> copy**right** doesnt prevent people from doing it 😄 14:52 < bridge> *copy***right** doesnt prevent people from doing it 😄 14:52 < bridge> *copy**right*** doesnt prevent people from doing it 😄 14:53 < bridge> maybe copy*left* does 14:54 < bridge> to some degree 14:54 < bridge> copyfly 14:54 < bridge> copyleft is real 14:57 < bridge> just words ¯\_(ツ)_/¯ 15:04 < bridge> SlowNET is popular?😨 15:04 < bridge> Slownet is popular?😨 15:13 < bridge> NO. We live in a capitalism. Must make money 15:13 < bridge> damn, tell deen to sell ddnet on steam for 10€ 15:13 < bridge> but keep it free on website :harold: 15:13 < bridge> time tracking costs 10€ now 15:14 < bridge> Thats what some MacOS apps do ^^ 15:14 < bridge> Pay if you want it from Apple Store, download it for free on homebrew 15:14 < bridge> Actually smart 15:14 < bridge> Because rich people use apple store anyways 15:15 < bridge> And please dont bring the argument that apple is too expensive. Compare Lenovo or any other business crap-ware against M1/M2/M3 15:15 < bridge> And please dont bring the argument that apple is too expensive. Compare Lenovo or any other business crap-ware against M1/M2/M3 :owo: 15:15 < bridge> in capitalism: wage slave 15:15 < bridge> in socialism: slave 15:16 < bridge> your guys's fault for not going all into crypto before trump became president 15:17 < bridge> still got time until january/february 15:17 < bridge> <.dartmonkey> It depends on the license 🤓 15:17 < bridge> Yeah, Solana a few years back. Was a nice hype 15:17 < bridge> sell your family and friends for crypto 15:17 < bridge> Yeah, bought Solana a few years back. Was a nice hype 15:18 < bridge> damn i sold them back then for doge.. what to do now 15:18 < bridge> well 15:18 < bridge> start gambling with shitcoins, I guess 15:18 < bridge> Invest in Shiba Inu 15:19 < bridge> i tried because @brokecdx forced me to - i lost all gg 15:19 < bridge> Invest in Shiba Inu :pepeH: 15:19 < bridge> hold your doge 15:20 < bridge> until Elongates Tusk joins Trump in office. 15:20 < bridge> So january? 15:21 < bridge> yep around that time 15:22 < bridge> thats why he is brokecdx and not richcdx 15:22 < bridge> Whats your prediction? Can we base a teeworlds coin on it? 15:22 < bridge> gamble ddnet donations 15:22 < bridge> :brownbear: 15:23 < bridge> doubt it. you need to be a rich internet troll with a big following 15:23 < bridge> We have reddit 15:23 < bridge> "rich" not necessarily bad 15:23 < bridge> and X 15:23 < bridge> twinbop NFT's when 15:24 < bridge> oof 15:24 < bridge> make nfts from the skin database 15:24 < bridge> First I wanted to add microtransactions to use a skin on gores servers 15:24 < bridge> Melon, you genius 15:24 < bridge> my wealth doesnt come from working hard, but hardly working 15:24 < bridge> :harold: 15:24 < bridge> but from 0.7 skins 15:24 < bridge> Then I will add microstransaction to actually play the game 15:24 < bridge> easier to generate 15:25 < bridge> After that has been implemented, we can start our NFT stuff 15:25 < bridge> passive income 15:25 < bridge> "this server is licensed, please enter a valid 10$ paysafecard code in to access it (one time use) - for permanent use, please go to thriftshop.kog.org and buy an unlimited license for 500% 15:25 < bridge> "this server is licensed, please enter a valid 10$ paysafecard code in to access it (one time use) - for permanent use, please go to thriftshop.kog.org and buy an unlimited license for 500$ 15:25 < bridge> "this server is licensed, please enter a valid 10$ paysafecard code in to access it (one time use) - for permanent use, please go to thriftshop.kog.org and buy an unlimited license for 500$" 15:26 < bridge> unlimited is too long - lifetime is better term 😄 15:26 < bridge> unlimited is bound to time, lifetime bound to a person 15:27 < bridge> nah imagine my child playing on my account and i die, and she feels all sad and stuff and the first thing that happens is the license running out 15:27 < bridge> "your lifetime ended" 15:27 < bridge> Damn 15:27 < bridge> But I would prefer a season pass 15:27 < bridge> recurring passive income every 6 months 15:27 < bridge> After all upgrading like FIFA does.. Just change the title from 2024 to 2025 and start from zero 15:28 < bridge> a battle pass with seasonal rewards (every 10th level is a single cosmetic for 1 week) - and it doesnt pay itself back so you have to spend money on it every month 15:28 < bridge> more ideas, yes sir 15:28 < bridge> wanna be `Senior Global Key Account Manager`? 15:34 < bridge> absolutely 15:40 < bridge> Paying for physics changes please!! I want a realllly long hook for 5€ 15:40 < bridge> Talk to @blaiszephyr he is senior global key account manager 15:40 < bridge> he will set up the deal 15:41 < bridge> discussing the details like pricing, discounts, duration 15:41 < bridge> Hi @blaiszephyr hi hi hi change euro to long hook 🥺🥺🥺🪝 15:43 < bridge> hey there @teero777, thanks for your request! 15:43 < bridge> i sadly have to inform you that our company is thriving to rise, and 5€ is nothing we can agree on at the time of writing. 15:43 < bridge> 15:43 < bridge> i can however offer you a great deal of an extended Hook range (+50%) or even the limitless Hook range (u64)! the prices are attached, thank you in advance and i hope to see you in game! 15:43 < bridge> 15:43 < bridge> extended hook: 49,99$ - tax 15:43 < bridge> limitless hook: 449,95$ - tax 15:43 < bridge> 15:43 < bridge> every cosmetic comes with a 3$ recovery fee, aswell as a 10$ cleanup fee. 15:43 < bridge> 15:43 < bridge> thanks! 15:43 < bridge> tasnet is 15:43 < bridge> hey there @teero777, thanks for your request! 15:43 < bridge> i sadly have to inform you that our company is thriving to rise, and 5€ is nothing we can agree on at the time of writing. 15:43 < bridge> 15:44 < bridge> i can however offer you a great deal of an extended Hook range (+50%) or even the limitless Hook range (u64)! the prices are attached, thank you in advance and i hope to see you in game! 15:44 < bridge> 15:44 < bridge> extended hook: 49,99$ - tax 15:44 < bridge> limitless hook: 449,95$ - tax 15:44 < bridge> 15:44 < bridge> every cosmetic comes with a 3$ recovery fee, as well as a 10$ cleanup fee. 15:44 < bridge> 15:44 < bridge> thanks! 15:44 < bridge> I want to pay -499$ for negative hook range pls 15:44 < bridge> ez exploit 15:44 < bridge> teero tell me the truth 15:44 < bridge> u were the real racer :justatest: 15:44 < bridge> no 15:44 < bridge> hi, i'm trying to write a command that will change SERVER_TICK_SPEED (I made it from an enum to a regular variable), but there is a problem when I use this command - if I was in flight, for example, I will start to fall VERY laggy, and if I'm standing, I can't do anything do and the message about connection problems flashes. and only after 5 minutes of this the speed finally changes (and during the change you cannot log into the server, alt 15:45 < bridge> Some rando *redacted* client user 15:45 < bridge> yahoo, ee have another one, guys :kek: 15:45 < bridge> whats up with slow motion servers man 15:45 < bridge> the game is hardcoded at 50tps for a reason. the dev set the value, and made the game without ever changing that. it is currently practically imposible to change the tickrate. 15:45 < bridge> kids love em 15:45 < bridge> Whats up with people changing SERVER_TICK_SPEED? 15:46 < bridge> server side TAS being popular ig 15:46 < bridge> The client does not know that the physics are different. Try doing cl_predict to 0 15:46 < bridge> I would never expect it to be this popular ngl. Same game, but slomo 15:46 < bridge> gm devs what’s on the agenda 15:46 < bridge> why is everyone changing tick speed?? 15:46 < bridge> gm Ewan, i have no idea :kek: 15:46 < bridge> oh LOL 15:46 < bridge> avo said the same thing 15:46 < bridge> :kek: 15:47 < bridge> also the client does not support any tick speed other than 50, you'll just get desync if you change that. 15:47 < bridge> To lower the tickspeed properly, I think you'd have to fill in the gaps with doubled up or interpolated snaps 15:47 < bridge> i mean, there is a thing where people swears 120tps is better than 60tps in CSGO 15:47 < bridge> It's much easier to bhop with 120 ticks 15:47 < bridge> same concept behind refresh rate 15:48 < bridge> i believe it 15:48 < bridge> im just changing this enum and in client 15:48 < bridge> it allows people to pretend they're good 15:48 < bridge> personally I find it quite fun to be able to shitfly with dummy 15:48 < bridge> the simple thing is that if I change the server_tick_speed variable in the code not with a command and build again everything is ok 15:48 < bridge> not with a command? 15:48 < bridge> i mean, it might be true, but i would pull a teeworlds here and say bhop shouldn't even be a thing 15:48 < bridge> :justatest: 15:48 < bridge> im codded command which changing server tick speed 15:48 < bridge> less aliasing is generally more better 15:49 < bridge> this wouldn’t work without a refactor to that variable 15:49 < bridge> it’s a preprocessor constant right? 15:50 < bridge> like the thing is that if I do it with a command, then it lags for 5 minutes and after that it changes the game speed 15:50 < bridge> i think i dont know what im talking about then 15:50 < bridge> it is possible that you've messed up the tick info in the packet in some way. maybe something is calculated with `tick = tickspeed * constant` and other things are implemented with `next_tick = next_tick + constant * tickspeed`. again the code does not have changing tickspeed in mind in the first place. you will need to huntdown every tickspeed related calculation and adjust the implementation to make them sync 15:50 < bridge> Just say you are 2bad 15:51 < bridge> replacing `#define` with `int` isn't exactly hard... 15:51 < bridge> i don't play CS tbh 15:51 < bridge> okay I know there's more to it than that but you know 15:51 < bridge> sort of is when you consider runtime implications 15:51 < bridge> i dont think it would be complicated necessarily but it’s non trivial 15:51 < bridge> yeah I think it's pretty obvious that making it not break the game isn't super simple 15:51 < bridge> yeah 15:52 < bridge> but it'll compile just fine :) 15:52 < bridge> they obviously didn't consider that and thought it would be a simple change and we are just telling them it isn't that simple i think 15:52 < bridge> **ithink** 15:52 < bridge> yeah you could do it but you need to be on top of that variable’s state 15:52 < bridge> and make sure it’s not copied anywhere i guess 15:52 < bridge> tickrate() W 15:53 < bridge> oh right, and that 15:53 < bridge> There is a pr open for variable tick rate that mostly works, maybe look at that? Idk no one really messed around with this in a decade because no one really made slowmo servers 15:53 < bridge> Ngl I could be funny to make a new tile that slows you down or speeds you up 15:53 < bridge> but it actually is? 15:53 < bridge> either way i would say it is practically impossible if it is a hobby project 15:53 < bridge> If you want to try it locally then you could merge #7555, but it doesn't support lower tickrates than 50 15:53 < bridge> https://github.com/ddnet/ddnet/pull/7555 15:53 < bridge> :kek: 15:53 < bridge> A tune zone?? 15:53 < bridge> i still hear rumors from old cs16 players that they cant flick with awp like back in the days on high tps servers 15:53 < bridge> oh you mean multiplies your existing velocity 15:53 < bridge> I'm du 15:53 < bridge> I'm dum 15:54 < bridge> ? useless comment you know exactly why that does not work 15:54 < bridge> xd 15:54 < bridge> be nice 15:54 < bridge> I just realized why it didn’t work, and indeed, due to the fact that the current tick is calculated using multiplication by tick speed, accordingly it lags due to the fact that the tick did not coincide with the last one (or something like that) and it suffered while the tick didn’t become necessary (or again something like that) 15:54 < bridge> grrrr 15:54 < bridge> no 15:54 < bridge> That's curious, with subtick input in cs2 it should be even better than before 15:55 < bridge> i mean it definitely is, i can see that being the case. but i feel like focusing on the tickrate alone and doesn't care about anything else (like hit reg is just a unsolved problem in every game imo) is unproductive 15:55 < bridge> two options: 15:55 < bridge> 1. there's some weird aliasing even with subtick input 15:55 < bridge> 2. people are used to quantized input and are now complaining because proper input feels different 15:55 < bridge> i dont think the input was ever quantized 15:55 < bridge> There is a 3rd option. Both 15:56 < bridge> This does not slow down the game. rex adjusted all the physics to take the tick speed into account 15:56 < bridge> probably yeah 15:56 < bridge> cs2 is just broken :troll: 15:56 < bridge> *but* this would allow for more aggressive tunes 15:56 < bridge> so many clips of ppls bad aim just cuz cs2 makes any shot more random than before 15:57 < bridge> i can see it being better overtime. time traveling in code is just weird, i think they'll figure it out 15:57 < bridge> though changing tunes is obviously incompatible with certain maps 15:57 < bridge> they should™ 15:57 < bridge> cuz in concept subtick is kinda brilliant i would say. 15:57 < bridge> is there any paper to read on that? :P 15:57 < bridge> is there a physics testing framework 15:57 < bridge> @zwelf2 15:58 < bridge> i don't think valve is fancy about papers 15:58 < bridge> rust twgame has many tests afaik 15:58 < bridge> hell yeah 15:58 < bridge> i love rust unit tests 15:58 < bridge> but the idea is pretty simple and you probably already know what it should does i imagine? 15:58 < bridge> Clearly the most reasonable way to get a slomo server is just run the game at a lower tickrate, interpolate it for networking with client, and lie to the client about tunes to kinda smooth it out 15:59 < bridge> 15:59 < bridge> hax 15:59 < bridge> this concept is not popular? 15:59 < bridge> many of the issues attributed to subtick are not actually due to subtick 15:59 < bridge> but due to bad hitboxes etc 15:59 < bridge> not that i know of. none of the netease game has similar system i can tell you that lol 15:59 < bridge> nah its not about hitboxes only, rng is more cruel than before id say 16:00 < bridge> ye, like i said, they just need to sort out the bugs and make it right. there will **always** be points of improvements to make. 16:00 < bridge> Just train rng duh 16:00 < bridge> eh, id just read article about it, that's why im asking 16:00 < bridge> article about subtick? 16:00 < bridge> ye 16:01 < bridge> cs2 was fun when i played it but i only played csgo 5 or so times 16:01 < bridge> i bought it right before they made it f2p 16:01 < bridge> $13 i will never get back 16:01 < bridge> This command was not found. 16:01 < bridge> ddie 16:01 < bridge> i mean it is pretty simple in concept, you just record a event timestamp between input ticks and send them, and server *just* need to calculate everything with that timestamp in mind 16:01 < bridge> prime status worths it ngl 16:01 < bridge> I don't know about CS2 subtick but isn't getting accurate input as simple as timestamping your events? 16:02 < bridge> there are a lot of places that info needed to be consider, and i really mean **a lot** 16:02 < bridge> with no input at all? or interpolate it? 16:02 < bridge> there are a lot of places that info needed to be considered, and i really mean **a lot** 16:02 < bridge> oh lol I guess I was slow 16:02 < bridge> currently valve rely on players framerate being much higher than the tickrate 16:03 < bridge> Well yeah I wouldn't want to retrofit that into an existing game, but I generally kinda include exact timestamps from the start 16:03 < bridge> they haven't got that overwatch range scan i think 16:03 < bridge> wrong assumption. 16:03 < bridge> cs2 does not use subtick for all physics I think, only certain things 16:03 < bridge> gm 16:03 < bridge> hi 16:04 < bridge> i mean player's framerate is higher than the tickrate for most people. so the input is at 300samples/second by default 16:04 < bridge> :pepeW: you can't tell me 300 samples of granularity is worse than sticking to 60 samples 16:04 < bridge> meanwhile *proper* video games polling input on a separate thread so they get millisecond precision 16:05 < bridge> aw yeah rhythm game supremacy 16:05 < bridge> you mean osu 16:05 < bridge> Who does that 16:05 < bridge> of course I mean osu! 16:05 < bridge> afaik only osu does that 16:05 < bridge> When I played osu it was framerate bound polling 16:05 < bridge> i kinda did that in unity too but it breaks too many stuff and i gave that up very quickly lol 16:06 < bridge> #general 16:06 < bridge> they changed it in lazer 16:06 < bridge> the "new" rewrite of the client that has been in the works for like 8 years now does some neat things 16:06 < bridge> nah it was just a joke about cs2 well performance 16:07 < bridge> I know Etterna does this 16:07 < bridge> all rhythm game should do this tbh 16:07 < bridge> but it is kinda hard to implement it right 16:07 < bridge> dreamcast doom; 16:07 < bridge> But atleast client<->server tickrate is negotiable 16:07 < bridge> dreamcast doom! 16:07 < bridge> it's like the motion blur but for timing 16:07 < bridge> or jaguar one 16:07 < bridge> I don't think it is in cs2 only csgo 16:07 < bridge> cs2 is fixed 64tps 16:07 < bridge> yeah in cs:go 16:08 < bridge> i remember carmak used whole motorolla chip to process all inputs 16:08 < bridge> cs:go doesn't exist anymore sadly xd 16:08 < bridge> they probably don't want people messes up their magic numbers set up for the subtick things 16:08 < bridge> i remember carmack used whole motorolla chip to process all inputs 16:08 < bridge> CS 1.6 is the only solution 16:09 < bridge> :greenthing: 16:09 < bridge> They probably avoid supporting it on purpose so they do not get 3rd party servers with higher tick rates 16:09 < bridge> see you guys in #off-topic for rhythm game stuff 16:10 < bridge> i serously doubt valve would be that salty about that 16:10 < bridge> thats why faceit was born 😄 16:10 < bridge> I don't doubt it slightly 16:12 < bridge> The number one complaint of csgo servers was low tick rate so they created an entire new physics and network system just to appease the players who prefer 128tps 16:12 < bridge> what would be the incentive, making players favor official server doesn't even earn them more money 16:12 < bridge> but it keeps the matchmaking up ^^ 16:12 < bridge> Why would they make sub tick if they didn't think there was incentive 16:13 < bridge> that's fair i guess, but i don't think the general player base is affected in the slightest. 16:13 < bridge> "the general player base" cares way less about these. 16:13 < bridge> If you don't allow tick rate changing people cannot complain about your low tick rate 16:14 < bridge> i just think valve is too developer oriented and they are cutting down on unrelated feedbacks. 16:14 < bridge> ~~developer~~money 16:14 < bridge> sounds a bit off ngl 16:14 < bridge> why are you trying to defend multi millionaire company xdd 16:14 < bridge> Imagine Gaben doesnt get his year bonus 16:15 < bridge> i want to be in it okay 16:15 < bridge> also allowing the tick rate to be changed implies their subtick system is insufficient 16:15 < bridge> add variable tickrate to cs2 16:15 < bridge> i do pay u $20 16:16 < bridge> ask chillerdragon, he will do it for you 16:16 < bridge> Or ask evelyn to ask chillerdragon 16:16 < bridge> nah he will make it for free 16:16 < bridge> also he will leak cs2 sources 16:16 < bridge> :justatest: 16:16 < bridge> I quit CS after CS2 was launched 16:16 < bridge> I think ddnet would also have tick rate elitists if more people tried the gameplay in 300tps 16:16 < bridge> also i'm not defending them, but i am justifying their actions. cuz i can see our company makes the exact decision to spend more resources to improve the current system without doubling our on-going cost 16:17 < bridge> f3 tbh 16:17 < bridge> itd help a lot on race 16:17 < bridge> also comptetive mods like vanilla or insta 16:17 < bridge> I'm sure certain things would be easier to hit 16:17 < bridge> certain things would also be harder to hit but oh well 16:17 < bridge> subtick input may keep track of the time that the input was received relative to the rest of the tick & its effect would be different. i do not know how they would accomplish such a thing on one thread (maybe that’s just it) 16:17 < bridge> its the reason why jsaurus made this pr 16:17 < bridge> the game would be 6 times as fast no? 16:17 < bridge> It makes gores movement much easier 16:18 < bridge> *i can also see the exact opposite decision where we would just double our on-going cost to stop developing for the game.* cuz that what they did for our title lol 16:18 < bridge> just divide certain things by 6 to make the physics about the same 16:18 < bridge> they basically did that so they can stop me from improving the movement sync and forced me to move on to cosmetics 16:18 < bridge> and then i just quit 16:18 < bridge> alright 16:19 < bridge> game would be smoother 16:19 < bridge> but the processing power would increase 6 times too 16:19 < bridge> and the packet count sent in a second 16:19 < bridge> not worth it 16:20 < bridge> rhythm games have a much more useful purpose for separate thread polling because there are no physics. It's harder to make use of it in other games. 16:20 < bridge> You could keep that the same, though higher bandwidth could be helpful too 16:21 < bridge> btw devs can 0.7 clients join 0.6.4 ddnet servers? 16:21 < bridge> || anyway. i just think subtick is a great way to improve the 64tps server without doubling the cost. and i think the tickrate lock down is that 128 is causing way too many unintended edge cases for the subtick system so they just killed it because they do not want to deal with them with their already limited development resources on the subtick thing. killing faceit as a incentive is a dumb move and i don't th 16:21 < bridge> Yes 16:21 < bridge> ty 16:57 < bridge> hey guys i think i found an inconsistency with `sv_rescue 1`. 16:57 < bridge> 16:57 < bridge> **no team / t0** 16:57 < bridge> 1. no /r -> finish 16:57 < bridge> 2. use /r after start, to reset to position after start -> finish 16:57 < bridge> 3. use /r after start, to reset to position **before** start -> **finish** 16:57 < bridge> 16:57 < bridge> **in team** 16:57 < bridge> 1. no /r -> finish 16:57 < bridge> 2. use /r after start, to reset to position after start -> finish 16:57 < bridge> 3. use /r after start, to reset to position **before** start -> **no finish** ?? 16:57 < bridge> 16:57 < bridge> here is a video showing all 6 cases: https://streamable.com/8d8q0n 16:57 < bridge> 16:57 < bridge> In the third case the timer resets back to as if you'd never touched the start line. However, when not in a team the timer starts again when the start line is touched. However, this does not work when you are in a team. Is this intended behaviour or a bug? :o 17:20 < bridge> ChillerDragon: is this a typo in the documentation? in one place it is written that there are 501 bytes and in another it is 508 bytes 17:20 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1306654960804691998/Screenshot_From_2024-11-14_18-16-30.png?ex=673774c3&is=67362343&hm=408b0bb598d5d5181a2e3a45b629246732ba35b135ee0bde12178f95fe6a7bf9& 17:20 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1306654961278386268/Screenshot_From_2024-11-14_18-16-09.png?ex=673774c3&is=67362343&hm=14b484fb390bd79397dce1316c6ca1d31638fd8376bdf342274745192acb2282& 17:21 < bridge> interesting 17:21 < bridge> i hope it wasn’t me 17:21 < bridge> i dont think it could have been 17:21 < bridge> because my changes there were never merged 17:21 < bridge> d’oh 17:21 < bridge> ChillerDragon: the correct one is 508 bytes if you are wondering 17:29 < bridge> The answer is kinda yes, but you currently can't test the c++ ddnet implementation with it. https://gitlab.com/ddnet-rs/twgame (I do intent to expand it to also test the c++ physics in the future) 17:34 < bridge> Check pm :peepoKiss: 17:35 < bridge> :toukarage: 17:35 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1306658789105074298/image.png?ex=67377853&is=673626d3&hm=7e737f227d542fea8d8a4d444a7516802615acaea21d72604e9c61f597c06d3d& 17:40 < bridge> omg more rust 17:41 < bridge> ❯ cargo clean 17:41 < bridge> Removed 268175 files, 108.2GiB total 17:42 < bridge> weakness disgusts me, i did a /nix/store cleanup yesterday with 280gb storage freed 17:42 < bridge> You think bloat is a flex? 17:42 < bridge> yes 17:43 < bridge> thats why windows exists 17:43 < bridge> the nix/store is not bloat - it's the place in heaven that allows me to have every version of python known to man available at any time without them bashing each other :greenthing: 17:44 < bridge> is there a way to split a cuirect into 3? 17:45 < bridge> (horizontally) 17:45 < bridge> nix seems neat but also like a a workaround for badly packaged software 17:45 < bridge> ^ and very old software 17:45 < bridge> ^ or unmaintained 17:45 < bridge> ^ and also not open source 17:46 < bridge> I think that falls under badly packaged :) :) 17:46 < bridge> its a solution i dont like because using it as a package manager just as a package manager is so annoying 17:46 < bridge> :justatest: 17:46 < bridge> i dont think the solution for badly packaged software shouldnt be forced on goodly packaged software 17:46 < bridge> I don't like it because it feels like a hack 17:46 < bridge> i cant implement trait for foreign type can i 17:46 < bridge> something something orphan rule 17:46 < bridge> (that is i prefer dockers and containers and anything else like that) 17:47 < bridge> containerization makes sense but it also feels excessive and like an ugly solution in many cases 17:47 < bridge> yes, do the math manually 17:48 < bridge> you can split rects to have fixed sizes on the axis which you’re splitting them 17:48 < bridge> i dont remember exactly what it looks like 17:48 < bridge> then embrace it 17:48 < bridge> it’s really, really, really good 17:49 < bridge> game changer on macos 17:49 < bridge> A lot of modern software feels like taking a sledgehammer to problems that really just need a small rubber mallet 17:50 < bridge> we use the sledgehammer for everything because it's required for the hardest things 17:50 < bridge> you can install nix and use it imperatively with a global profile 17:50 < bridge> like any other pkg manager 17:50 < bridge> you don’t have to involve yourself in the world of .nix 17:50 < bridge> no only for std types 17:50 < bridge> :nouis: 17:51 < bridge> you have to do a newtype 17:51 < bridge> ty 17:51 < bridge> ryo u are rust dev who works on mac right 17:51 < bridge> :proprietary: 17:51 < bridge> he works on :gentoo: 17:52 < bridge> syphilis? 17:52 < bridge> he homes on gentoo i thought 17:52 < bridge> work mac 17:52 < bridge> @mpft i work on mac when im at the office or traveling 17:52 < bridge> ah 17:52 < bridge> ew 17:52 < bridge> at home i use gentoo 17:52 < bridge> interesting 17:52 < bridge> is it not hard to switch 17:52 < bridge> nah cuz i use vscode 17:52 < bridge> and rust is nice cross platform 17:52 < bridge> idk 17:52 < bridge> yea 17:52 < bridge> true that 17:53 < bridge> please do not read #off-topic and just start saying similar things in other channel. 17:53 < bridge> i wont say no to a 4k euro top of the line laptop 17:53 < bridge> for free 17:53 < bridge> lol std = sexually transmitted disease 17:53 < bridge> that's one half 17:53 < bridge> the other half is a really fancy design crosshead screwdriver with rgb lighting and built-in air conditioning when you really need a normal flathead 17:53 < bridge> they teach u that before standard 17:53 < bridge> forgive me 17:53 < bridge> :cammo: 17:53 < bridge> CPU: Apple M3 Pro (11) @ 4.06 GHz 17:53 < bridge> GPU: Apple M3 Pro (14) @ 1.38 GHz [Integrated] 17:53 < bridge> Memory: 20.18 GiB / 36.00 GiB (56%) 17:53 < bridge> some peopl say to `using namespace std` .. but that only hides it, and doesnt get rid of it 17:54 < bridge> some people say to `using namespace std` .. but that only hides it, and doesnt get rid of it 17:54 < bridge> i know that, i just have a feeling that he only came up with that joke because we were talking about some stuff in #off-topic 17:54 < bridge> nah 17:54 < bridge> so what? xd 17:54 < bridge> that.. memory consumption 17:54 < bridge> im reading the chat 17:54 < bridge> @blaiszephyr i have 3 rust projects open 17:54 < bridge> :kekw: 17:54 < bridge> fair. i'll be gone then. also please do not join #off-topic for the next 10 minutes. thanks bye 17:54 < bridge> and they have like 20 crates 17:54 < bridge> each 17:54 < bridge> i follow your github page 17:54 < bridge> with more deps 17:54 < bridge> i see what youre doing! 17:55 < bridge> what u up to 17:55 < bridge> forgive me for the laptop photo 17:55 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1306663712761057280/IMG_7220.jpg?ex=67377ce9&is=67362b69&hm=72cb47a0d61b844f03710a3b9ba78d7bd266f10296ae8625f8b95dfdfd2945aa& 17:55 < bridge> @mpft i think u got same but less ram 17:55 < bridge> is that microsoft excel on a mac 17:55 < bridge> leak! 17:55 < bridge> :kekw: 17:55 < bridge> i got same cpu yea 17:56 < bridge> did anyone try https://zen-browser.app/ 17:56 < bridge> i did, and it is amazing 17:56 < bridge> yes my job in this project literally revolves around parsing spreadsheets:( 17:56 < bridge> i did yeah, its cool 17:56 < bridge> oh god... 17:56 < bridge> wait excel exists on mac?? 17:56 < bridge> it’s 2024 17:57 < bridge> oh boy, today I had to use js library to do stuff with google spreadsheet, that was not fun at all :pepeW: 17:57 < bridge> it’s always had a mac version i think 17:57 < bridge> or at least for a long time 17:57 < bridge> but now with office 365 it’s everywhere 17:57 < bridge> microsoft can track mac users now 17:57 < bridge> :nouis: 17:58 < bridge> except linux 17:58 < bridge> web 17:58 < bridge> i use it in browser 17:58 < bridge> on desktop 17:58 < bridge> why not libreoffice? 17:58 < bridge> because it’s not 365 17:58 < bridge> fair 17:58 < bridge> it doesn’t have my stuff 17:58 < bridge> and it sucks dick 17:58 < bridge> libreoffice is quite bas 17:58 < bridge> libreoffice is quite bad 17:58 < bridge> bad but free 17:59 < bridge> im not paying for any of this 17:59 < bridge> came preinstalled 17:59 < bridge> work device 17:59 < bridge> :poggers2: 17:59 < bridge> but yea, “free as in freedoml 17:59 < bridge> libreoffice is great at viewing documents, but for editing it is as much as a pain as using any alternative including microsoft, and i have access to microsoft stuff. so either i convert to pdf, or use my school given microsoft 365 17:59 < bridge> but yea, “free as in freedom” 17:59 < bridge> for my own stuff i use google x-x 17:59 < bridge> proton 17:59 < bridge> cuz it just works (tm) 17:59 < bridge> proton has a office suite? 17:59 < bridge> u can get mail, vpn, drive 18:00 < bridge> on one subscription 18:00 < bridge> i have free mail 18:00 < bridge> i have a free vpn 18:00 < bridge> and i do want cloud storage 18:00 < bridge> they have free tiers for all of it 18:00 < bridge> that’s what i use currently 18:00 < bridge> coowl 18:00 < bridge> its just that if i ever switch from my current setup 18:00 < bridge> i wana self host 18:00 < bridge> cheaper, fun, and based 18:00 < bridge> i use pandoc :) 18:01 < bridge> i use pandoc when im writing assignments and stuff 18:01 < bridge> cuz i need to convert from md -> pdf or something 18:01 < bridge> but for docx -> pdf yee old online converter is fine 18:01 < bridge> this is all very #off-topic 18:01 < bridge> xd 18:01 < bridge> wdym 18:02 < bridge> idt apple has a native app for csv? 18:02 < bridge> or spreadsheets 18:02 < bridge> they do 18:02 < bridge> im using excel because i need the xlsx specifically 18:02 < bridge> I forgot what apple’s is called 18:03 < bridge> ah its called numbers 18:03 < bridge> not really the same as excel though 18:22 < bridge> for #9237 i think this is better 18:22 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1306670634801303684/image.png?ex=6737835c&is=673631dc&hm=89464f801c1dca1e0c8f53220defdc2542e2255bbfb99763571f6826415ed863& 18:22 < bridge> https://github.com/ddnet/ddnet/pull/9237 18:22 < bridge> no one really actually uses these filters right 18:23 < bridge> which ones 18:23 < bridge> countries/types/communities 18:23 < bridge> i do 18:23 < bridge> really? 18:23 < bridge> what for 18:23 < bridge> or rather which ones 18:23 < bridge> i use community filter to just show ddnet servers 18:24 < bridge> and country filters for good ping obviously 18:24 < bridge> mm yeah but u can also just search ddnet 18:24 < bridge> and sort by ping 18:24 < bridge> but sure 18:24 < bridge> its not like i want to get rid of the filters 18:24 < bridge> but i dont think the communities tab should be as prominent as it is 18:25 < bridge> i also think there should be an indicator of if a filter is being used 18:25 < bridge> i think every filter should be disabled by default 18:25 < bridge> is it not like that? 18:26 < bridge> the default is just search ddnet 18:26 < bridge> if you have a friend online, that server should be shown one hundred percent of the time 18:26 < bridge> kog login server filter was on by default when that was added 18:26 < bridge> yeah but it does prompt u to reset filters 18:26 < bridge> no 18:26 < bridge> not that kind 18:26 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1306671614556901479/image.png?ex=67378445&is=673632c5&hm=d1a6f87ef3befcda79d04c921a0215587719e26022df8edc441ebc939623b820& 18:26 < bridge> I use community filter for KoG when I get the rare impulse to try gores, I use the community filter for TeeSports when it's time for a round of football 18:26 < bridge> does "reset filter" not reset communities filter 18:26 < bridge> it does 18:27 < bridge> not talking about communities, im talking about the checkbox that filters login servers 18:27 < bridge> all the more reason i think it hsould be in the filters tab 18:27 < bridge> ah 18:27 < bridge> i dislike kog accounts 18:27 < bridge> i could just make one 18:27 < bridge> but im never going to 18:27 < bridge> I don't use country filters, I just sort by ping or use the search box 18:28 < bridge> ^ same here 18:28 < bridge> but i understand if u do use them 18:28 < bridge> Exclude: RUS 18:28 < bridge> i just noticed x-x 18:28 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1306672135153909791/image.png?ex=673784c1&is=67363341&hm=33b5504ee5a555cff84030bc45da232395ee2c14da826d90e54cf979f8ee1261& 18:28 < bridge> ew lmao 18:29 < bridge> can 0.7 not be auto detected on connect? or is the api so different now 18:29 < bridge> they cant talk to eachother withotu conversion 18:29 < bridge> I almost always have my friends tab open in the filter section 18:30 < bridge> the filter tab is a tab in the toolbox(?) 18:30 < bridge> oh it's called the toolbox okay 18:30 < bridge> isnt there a connless info packet 18:30 < bridge> it can detect if its 0.7 18:30 < bridge> I have the friends tab open in the toolbox then <3 18:30 < bridge> same 18:31 < bridge> i have no clue, if you remove the 0.7 marker in the address it just timesout 18:31 < bridge> i do, i sort for DDNet, Blockworlds and KoG respectively 18:32 < bridge> adding back the udp:// does this.. and freezes the client untill it shows 18:32 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1306673056542097408/image.png?ex=6737859d&is=6736341d&hm=eb3b0b515d5752dfa72b4435b110c2fbe02d8f945522e5b3e9c28ab88dc6e806& 18:32 < bridge> which is a bug 18:32 < bridge> i use the smart sort (idk what it’s really called) 18:32 < bridge> it weighs friends online with server ping 18:32 < bridge> I just use the ddnet tab at the top instead of using the ddnet community filter 18:32 < bridge> click ping like 3 times 18:32 < bridge> u can also click players 3 times 18:32 < bridge> ye 18:32 < bridge> im sure lots of people do 18:33 < bridge> they sure do 18:33 < bridge> oh yeah it does 18:33 < bridge> weird 18:33 < bridge> i just wasnt expecting it 18:33 < bridge> there’s no reason to put down the feature 18:33 < bridge> it’s good that it’s there 18:33 < bridge> theres no reason to remove* the feature (?) 18:33 < bridge> but i dont think it should be as prominent 18:33 < bridge> Isn't that players online, not friends? 18:33 < bridge> Or does it show friends at the top if any are online? 18:33 < bridge> it probably just sends the info packet once and then remembers that server 18:33 < bridge> theres no reason to remove* the feature (?) 18:33 < bridge> but i dont think it should be as prominent 18:33 < bridge> also its a filter so it should be in the filter tab 18:33 < bridge> the checkbox thing i was mad about was bad because i was searching bro’s name and it didn’t come up or prompt me to reset filters, iirc 18:34 < bridge> because it’s not considered the same type of filter 18:34 < bridge> it’s more of a static setting 18:34 < bridge> anyways I'mma use it 18:34 < bridge> i pressed "reset filter" then searched random nonsense so 18:34 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1306673625465880667/image.png?ex=67378625&is=673634a5&hm=127d4af36326065491bf521e6b4a633c02409fb2636eaf1889e7dd68dd5f8858& 18:34 < bridge> it always shows up 4 me 18:35 < bridge> also why does the playesr thing have weird padding on the left and right 18:35 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1306673902352859136/image.png?ex=67378667&is=673634e7&hm=43004f590143ef519fcfef9758bc9cd241394851fcf07e6aa81790968f600ab9& 18:35 < bridge> what version are you on? 18:36 < bridge> that looks quite old 18:36 < bridge> latest git commit 18:36 < bridge> mayeb? 18:36 < bridge> ig not 18:36 < bridge> i did change stuff (that is the communities tab) but shouldnt affect this 18:36 < bridge> i never noticed it 18:36 < bridge> untill i did 18:36 < bridge> now its really bothering me lmao 18:37 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1306674279240302653/image.png?ex=673786c1&is=67363541&hm=dd32320967cb53c86c5797d584712d3cb78245252abe0cc832177a28f18abc32& 18:37 < bridge> it looks like the background has padding 18:37 < bridge> but the container doesnt so the items can clip out 18:37 < bridge> which looks even weirder 18:37 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1306674488959828059/image.png?ex=673786f3&is=67363573&hm=eeeb33e0172da5122957a85c70bb41b6a5755addacc24aab5d8dbb79eb03e3bf& 18:37 < bridge> oh my 18:38 < bridge> yes 18:38 < bridge> robyt3 i wish to say i am fully in support of your UI additions 18:38 < bridge> no ill will intended 18:38 < bridge> okay so i guess its not intented behaviour xd? Imma open a GH issue and try to find the bug myself for now :) 18:38 < bridge> has robyt been doing all the new stuff 18:38 < bridge> why would it be 18:38 < bridge> completely off topic but here's the script except a bit less stupid this time 18:38 < bridge> Maybe I can convince Evelyn to stop spamming it everywhere... 18:38 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1306674661165236224/speedtune.py?ex=6737871c&is=6736359c&hm=b2fff691880f340660441466f82e6d6d454052618afc0c84574552665689347b& 18:38 < bridge> the ui stuff, i think so 18:38 < bridge> cool 18:38 < bridge> i like it 2 xd 18:38 < bridge> makes it feel more polished 18:39 < bridge> he dmed me cus he knows i know shit about physics in ddnet 18:39 < bridge> he dmed me cus he thinks i know shit about physics in ddnet 18:39 < bridge> i still want my tick rate modifier sv option 18:39 < bridge> (got stuck so i stopped) 18:39 < bridge> but one day x-x 18:40 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1306675056457551883/image.png?ex=6737877a&is=673635fa&hm=45812f7c63ba144cf8210aed70019a1931faa2f602cf088719049b8ce7fe4d08& 18:40 < bridge> oh no the scrollbar has rounded corners 18:40 < bridge> x-x 18:40 < bridge> they were just talking about a PR that did the same thing 18:40 < bridge> it always has 18:40 < bridge> ¿ 18:40 < bridge> Everything does 18:40 < bridge> oic 18:40 < bridge> its just that its slightly off in many ways that no one cares about 18:40 < bridge> yes, the outer rect there 18:40 < bridge> that is a little weird 18:40 < bridge> oh no the whole ui has not changed since 2007 18:40 < bridge> it has though 18:41 < bridge> this ui is new in the past year 18:41 < bridge> hehe osu-style ddnet ui overhaul 18:41 < bridge> true, that seems a bit off 18:41 < bridge> minecraft style 18:41 < bridge> no x-x 18:41 < bridge> i think it just looks off because the antialiasing or something about the rendering makes it weird 18:41 < bridge> when f3 in ddnet devs 18:41 < bridge> like in minecraft 18:41 < bridge> ctrl-shift-d 18:41 < bridge> all the circles have no anti alaising 18:41 < bridge> dunno :p didnt want to assume that it was a bug, maybe i did smth wrong 18:42 < bridge> all the circles have no anti alaising 18:42 < bridge> but isnt why it looks weird 18:42 < bridge> the rendering is mistakenly using the wrong combination of corner enum flags 18:42 < bridge> you have to use fsaa samples 18:42 < bridge> idk i dont like it 18:42 < bridge> the font is small asf 18:42 < bridge> yeah it is a bit over the top 18:42 < bridge> there are circle drawing algorithms which dont 18:42 < bridge> okay since i was annoyed i made this. it is as accurate as you can get with tunes. 18:42 < bridge> https://github.com/Teero888/tune_calculator 18:42 < bridge> pro 18:42 < bridge> there are circle drawing algorithms which dont 18:42 < bridge> also yes i did have to turn that on 18:42 < bridge> yes, but ddnet currently only has fsaa which is annoying 18:42 < bridge> i mean its easy so 18:43 < bridge> i talked about a software aa implementation but i found it easier to just disable rounded corners 18:43 < bridge> pretty easy mod 18:43 < bridge> YOU WROTE RUST 18:43 < bridge> I AM SO PROUD 18:43 < bridge> well.. i like the rounded corners 18:43 < bridge> i did the #define trick in C. it is actually not run @blaiszephyr 18:43 < bridge> THAT PRINTLN STATEMENT IS GIVING ME AIDS 18:43 < bridge> THAT PRINTLN STATEMENT IS GIVING ME STD'S 18:43 < bridge> xD 18:44 < bridge> rust 😐 18:44 < bridge> ``` 18:44 < bridge> println!("tune ground_control_speed {}\ntune ground_control_accel {}\ntune ground_friction {}\ntune ground_jump_impulse {}\ntune air_jump_impulse {}\ntune air_control_speed {}\ntune air_control_accel {}\ntune air_friction {}\ntune hook_fire_speed {}\ntune hook_drag_accel {}\ntune hook_drag_speed {}\ntune gravity {}\ntune velramp_start {}\ntune velramp_range {}\ntune gun_speed {}\ntune gun_lifetime {}\ntune grenade_speed {}\ntune grenade_lifetime {}\ 18:44 < bridge> new_tunes.ground_control_speed, new_tunes.ground_control_accel, new_tunes.ground_friction, new_tunes.ground_jump_impulse, new_tunes.air_jump_impulse, new_tunes.air_control_speed, new_tunes.air_control_accel, new_tunes.air_friction, new_tunes.hook_fire_speed, new_tunes.hook_drag_accel, new_tunes.hook_drag_speed, new_tunes.gravity, new_tunes.velramp_start, new_tunes.velramp_range, new_tunes.gun_speed, new_tunes.gun_lifetime, new_tunes.grenade_ 18:44 < bridge> ``` MATE WHAT IS THIS PRINTLN MACRO 18:44 < bridge> f u xD 18:44 < bridge> oh jesus 18:44 < bridge> it has to be 18:44 < bridge> can you not inline those? 18:44 < bridge> like put them inside the text with format strings 18:44 < bridge> OMG TEERO RUST ARC 18:44 < bridge> @teero777 raw string is r## 18:44 < bridge> just learn vim macros 18:44 < bridge> what 18:44 < bridge> depends 18:45 < bridge> your newlines… 18:45 < bridge> seperate the println statements - imagine you made a typo in any one of those 18:45 < bridge> :monkaStop: 18:45 < bridge> leave me alone xD 18:45 < bridge> no 18:45 < bridge> i mean hey, did you finish the rust book yet? :kekw: 18:45 < bridge> fix it or i will spawn in your walls 18:45 < bridge> it didnt look that bad because i had soft-wrap disabled.. 18:45 < bridge> in this case i think he can, because he’s not trying to do display or debug 18:45 < bridge> i'm proud 18:46 < bridge> i dunno rust very well x-x 18:46 < bridge> okey please show me an example on how to make that cleaner. ofc i could have inlined them but thats not much better ngl xd 18:46 < bridge> it is very much better 18:46 < bridge> you can also use newlines instead of \n 18:46 < bridge> (i hope) 18:47 < bridge> or multiline strings 18:47 < bridge> im on phone 👀 18:47 < bridge> can't you do `for i in new_tunes println!(i)` 💀 18:47 < bridge> or equivalent in rust 18:47 < bridge> i need the names. 18:47 < bridge> i just want to copy the thing into the map editor 18:47 < bridge> not like that but yes 18:48 < bridge> println needs string literal 18:48 < bridge> it’d be “{}”, i or “{i}” 18:48 < bridge> and the loop needs a body 18:48 < bridge> yea but i need i to be printed too. the name of the tune 18:48 < bridge> ok wait let me cook 18:49 < bridge> come vc 18:49 < bridge> oh yeah construct the string another wya 18:49 < bridge> soon, need to grab a dirnk 18:50 < bridge> `for tune, value in pairs(new_tunes) do print("tune " .. tune .. " " .. value) end` 18:50 < bridge> totally Rust I swear 18:50 < bridge> https://blog.pypi.org/posts/2024-11-14-pypi-now-supports-digital-attestations/ 18:50 < bridge> pipi 18:50 < bridge> when ddnet digital attestation 18:50 < bridge> :justatest: 18:50 < bridge> erm 18:51 < bridge> first time i have heard this term 18:52 < bridge> achtually its just the r, the # is a marker and can be just one or many, or another character 🤓 ☝️ 18:52 < bridge> u right. 18:52 < bridge> rust nerd 18:52 < bridge> like any raw string 18:52 < bridge> cpp’s is the same way 18:52 < bridge> i would do the amongus unicode char sometimes 18:53 < bridge> i would do the ' but from the greek keyboard or smth 18:53 < bridge> troll mode 18:53 < bridge> lmfao 18:53 < bridge> ```rust 18:53 < bridge> macro_rules! formatTune { 18:53 < bridge> ($name:expr, $value:expr) => { 18:53 < bridge> concat!("tune ", $name, " ", &$value.to_string(), "\n") 18:53 < bridge> }; 18:53 < bridge> } 18:53 < bridge> 18:53 < bridge> print!( 18:53 < bridge> formatTune!("ground_control_speed", new_tunes.ground_control_speed) + 18:53 < bridge> formatTune!("ground_control_accel", new_tunes.ground_control_accel) + 18:53 < bridge> formatTune!("ground_friction", new_tunes.ground_friction) + 18:53 < bridge> formatTune!("ground_jump_impulse", new_tunes.ground_jump_impulse) + 18:53 < bridge> formatTune!("air_jump_impulse", new_tunes.air_jump_impulse) + 18:53 < bridge> formatTune!("air_control_speed", new_tunes.air_control_speed) + 18:53 < bridge> formatTune!("air_control_accel", new_tunes.air_control_accel) + 18:53 < bridge> formatTune!("air_friction", new_tunes.air_friction) + 18:53 < bridge> formatTune!("hook_fire_speed", new_tunes.hook_fire_speed) + 18:53 < bridge> formatTune!("hook_drag_accel", new_tunes.hook_drag_accel) + 18:53 < bridge> formatTune!("hook_drag_speed", new_tunes.hook_drag_speed) + 18:53 < bridge> formatTune!("gravity", new_tunes.gravity) + 18:53 < bridge> formatTune!("velramp_start", new_tunes.velramp_start) + 18:53 < bridge> formatTune!("velramp_range", new_tunes.velramp_range) + 18:53 < bridge> formatTune!("gun_speed", new_tunes.gun_speed) + 18:53 < bridge> formatTune!("gun_lifetime", new_tunes.gun_lifetime) + 18:53 < bridge> formatTune!("grenade_speed", new_tunes.grenade_speed) + 18:54 < bridge> 18:54 < bridge> formatTune!("explosion_strength", new_tunes.explosion_strength) + 18:54 < bridge> formatTune!("hammer_strength", new_tunes.hammer_strength) + 18:54 < bridge> formatTune!("hook_duration", new_tunes.hook_duration) + 18:54 < bridge> formatTune!("hammer_fire_delay", new_tunes.hammer_fire_delay) + 18:54 < bridge> formatTune!("gun_fire_delay", new_tunes.gun_fire_delay) + 18:54 < bridge> dirty fix 18:54 < bridge> what is new tune? vec? 18:54 < bridge> map that shit 18:54 < bridge> 50 lines more xD 18:54 < bridge> thanks 18:54 < bridge> omg macros 18:54 < bridge> yeah dont.. do it in 1 line thats dumb 18:54 < bridge> i can inline them ig. thats one thing. idk if it can be much shorter 18:54 < bridge> maybe u can try writing a macro which gets that tune names and converts them to snake case? 18:54 < bridge> a better way is to have string names stored for each attribute (probably through some debug rust shit) 18:54 < bridge> then iterate over the attributes as key pairs 18:54 < bridge> i have no idea how to write macros in rust 18:54 < bridge> but im not sure how to do that tho 18:55 < bridge> i write c macros then ask chatgpt 18:55 < bridge> pro move 18:55 < bridge> ok i go learn macros in rust 18:55 < bridge> wanted to do that anyway 18:55 < bridge> there are a few kinds 18:56 < bridge> this doesnt work 18:56 < bridge> Just have each tune be a tuple of name, value, and scaling type 18:56 < bridge> concat only accepts string literals 18:56 < bridge> average chat gpt user 18:56 < bridge> you don't need a named variable for each tune lol, just have a list of tuples 18:56 < bridge> yeah you cant concatenate runtime strings with a macro regardless 18:56 < bridge> unless the macro wraps runtime functions 18:57 < bridge> ```rust 18:57 < bridge> struct Tunes { 18:57 < bridge> ground_control_speed: f32, 18:57 < bridge> ground_control_accel: f32, 18:57 < bridge> ground_friction: f32, 18:57 < bridge> ground_jump_impulse: f32, 18:57 < bridge> air_jump_impulse: f32, 18:57 < bridge> // Add more attributes as needed 18:57 < bridge> } 18:57 < bridge> 18:57 < bridge> impl Tunes { 18:57 < bridge> // Method to return an iterator of the attribute names and values 18:57 < bridge> fn attributes(&self) -> impl Iterator { 18:57 < bridge> // Return an iterator over tuples of field names and values 18:57 < bridge> vec![ 18:57 < bridge> ("ground_control_speed", self.ground_control_speed), 18:57 < bridge> ("ground_control_accel", self.ground_control_accel), 18:57 < bridge> ("ground_friction", self.ground_friction), 18:57 < bridge> ("ground_jump_impulse", self.ground_jump_impulse), 18:57 < bridge> ("air_jump_impulse", self.air_jump_impulse), 18:57 < bridge> // Add more fields here if necessary 18:57 < bridge> ] 18:57 < bridge> .into_iter() 18:57 < bridge> } 18:57 < bridge> } 18:57 < bridge> 18:57 < bridge> fn main() { 18:57 < bridge> // Instantiate the struct 18:57 < bridge> let new_tunes = Tunes { 18:57 < bridge> ground_control_speed: 1.0, 18:57 < bridge> ground_control_accel: 2.0, 18:57 < bridge> // Iterate over the attributes 18:57 < bridge> 18:57 < bridge> Thanks chatgpt 18:58 < bridge> yeah this is chatgpt 18:58 < bridge> that shouldnt work either(?) 18:58 < bridge> why not 18:58 < bridge> because attributes dont work like that 18:58 < bridge> ? 18:58 < bridge> ew chatgpt dev 18:58 < bridge> #[] <— attribute 18:58 < bridge> macro 18:58 < bridge> i find it extremely funny u need chatgpt for that for loop 18:58 < bridge> i dont know rust 18:58 < bridge> i can spit out the equivilant in python if u want x-x 18:58 < bridge> (i wouldnt need chatgpt for that) 18:58 < bridge> it’d be fine if they weren’t cementing it as truth lol 18:59 < bridge> Why do we even need the math rewritten except multiply and then divide by 50? 18:59 < bridge> ``` 18:59 < bridge> fn attributes(&self) -> impl Iterator { 18:59 < bridge> // Return an iterator over tuples of field names and values 18:59 < bridge> vec![ 18:59 < bridge> ("ground_control_speed", self.ground_control_speed), 18:59 < bridge> ("ground_control_accel", self.ground_control_accel), 18:59 < bridge> ("ground_friction", self.ground_friction), 18:59 < bridge> ("ground_jump_impulse", self.ground_jump_impulse), 18:59 < bridge> ("air_jump_impulse", self.air_jump_impulse), 18:59 < bridge> // Add more fields here if necessary 18:59 < bridge> ] 18:59 < bridge> .into_iter() 18:59 < bridge> } 18:59 < bridge> ``` 18:59 < bridge> why return a iterator, u can just return a reference to a &[] and avoid a heap alloc 18:59 < bridge> chatgpt kekw 18:59 < bridge> iterators make me happy 18:59 < bridge> u dont need bec too 18:59 < bridge> vec 18:59 < bridge> lgtm 18:59 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1306679915894149160/image.png?ex=67378c00&is=67363a80&hm=59784d420ce767c706a7592a795416da387282857cdca4cc437de975e9052bd2& 18:59 < bridge> also this is a tiny program speed is not important 18:59 < bridge> ``` 18:59 < bridge> fn main() { 18:59 < bridge> let args: Vec = env::args().collect(); 18:59 < bridge> if args.len() <= 1 { 19:00 < bridge> eprintln!("Usage: tune_calculator "); 19:00 < bridge> return; 19:00 < bridge> } 19:00 < bridge> 19:00 < bridge> let scale = args[1].parse::().unwrap_or_else(|_| { 19:00 < bridge> eprintln!("Invalid scale value."); 19:00 < bridge> std::process::exit(1); 19:00 < bridge> }); 19:00 < bridge> 19:00 < bridge> let tick_speed = ((1.0 / scale) * 50.0) as i32; 19:00 < bridge> let tunes = calculate_tunes(tick_speed); 19:00 < bridge> 19:00 < bridge> println!("{:#?}", tunes); 19:00 < bridge> } 19:00 < bridge> ``` 19:00 < bridge> i didnt see attributes def 19:00 < bridge> ```rust 19:00 < bridge> fn main() { 19:00 < bridge> let args: Vec = env::args().collect(); 19:00 < bridge> if args.len() <= 1 { 19:00 < bridge> eprintln!("Usage: tune_calculator "); 19:00 < bridge> return; 19:00 < bridge> } 19:00 < bridge> 19:00 < bridge> let scale = args[1].parse::().unwrap_or_else(|_| { 19:00 < bridge> eprintln!("Invalid scale value."); 19:00 < bridge> std::process::exit(1); 19:00 < bridge> }); 19:00 < bridge> 19:01 < bridge> you want 30x speed? 19:01 < bridge> Time to write C 19:01 < bridge> oh 19:01 < bridge> this reminds me i have a ddnet config parser in rust 19:01 < bridge> oh yeah u can use the debug printing thing 19:01 < bridge> https://github.com/edg-l/teeconfig 19:01 < bridge> #[derive(Debug)] ftw 19:01 < bridge> rust sometimes just has randomly cool features 19:01 < bridge> and othertimes makes me cry 19:01 < bridge> i was using dbg to debug but i hate the format. i want to just paste 19:01 < bridge> ```rust 19:01 < bridge> use crate::tokens_cfg::{ 19:01 < bridge> ConfigToken, 19:01 < bridge> ConfigLine, 19:01 < bridge> Value 19:01 < bridge> }; 19:01 < bridge> use crate::tokens_cpp::{ 19:01 < bridge> LexicalError, 19:01 < bridge> }; 19:01 < bridge> 19:02 < bridge> have u used any parsing libraries? 19:02 < bridge> just make ddnet accept more precision 19:02 < bridge> it uses logos and lalrpop 19:02 < bridge> just make ddnet accept more precision /j 19:02 < bridge> during these 5 minutes I can't do anything, and then finally the game runs in slow motion 19:02 < bridge> its a LR(1) parser for ddnet configs 19:03 < bridge> is it fast 19:03 < bridge> configs are usually like 100 lines? 19:03 < bridge> you probably can't just edit that single function, somewhere else the server/game probably assumes the default tickrate and thus your slowed-down one has to catch up in the 5 minutes 19:03 < bridge> @teero777 a lot 19:03 < bridge> that's what i would guess 19:03 < bridge> even python will do it in a second 19:03 < bridge> a lot fast? 19:03 < bridge> it also parses the header C file 19:04 < bridge> Need pretty printing 19:04 < bridge> if it took as long as a full second I'd be quite worried... 19:04 < bridge> https://github.com/edg-l/teeconfig/blob/master/src/tokens_cpp.rs 19:04 < bridge> “{:#?}” 19:04 < bridge> ``` 19:04 < bridge> /// An already loaded `config_variables.h` file, ready to be parsed. 19:04 < bridge> /// 19:04 < bridge> /// There are no guarantees this is up to date. 19:04 < bridge> pub static BUILTIN_CONFIG_VARIABLES_H: &str = include_str!("../config_variables.h"); 19:04 < bridge> 19:04 < bridge> /// An already loaded `variables.h` file, ready to be parsed. 19:04 < bridge> /// 19:04 < bridge> /// There are no guarantees this is up to date. 19:04 < bridge> pub static BUILTIN_VARIABLES_H: &str = include_str!("../variables.h"); 19:04 < bridge> ``` 19:04 < bridge> #:? is not pretty enough 19:04 < bridge> xd 19:04 < bridge> would be less that was a joke 19:04 < bridge> maybe typo 19:04 < bridge> ive written parsers in python 19:04 < bridge> :#? is not pretty enough 19:04 < bridge> are not that slow as i thought 19:04 < bridge> serde json then 19:04 < bridge> brother i want the ddnet tune format 19:04 < bridge> actually 19:05 < bridge> im not reading 19:05 < bridge> wdym tune format 19:05 < bridge> that’s not a thing which gets formatted 19:05 < bridge> u just read the params 19:05 < bridge> isnt tune just "tune x y z" 19:05 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1306681485335724042/image.png?ex=67378d77&is=67363bf7&hm=5062d66be984dffc71bc00e68388c1a5b4142bbe4eb4089d78dc1f85718262fc& 19:05 < bridge> I'm actually getting the urge to modify the server to handle more precise tunes and make it fudge the communication with the client to make it seem smoother 19:06 < bridge> yes exactly thats why i did not use :? or :#? 19:06 < bridge> i dont understand 19:06 < bridge> pls help me with this 19:06 < bridge> 😩 19:06 < bridge> or what 19:06 < bridge> are u trying to make a bot 19:07 < bridge> ah no its a server thing 19:07 < bridge> ive already attempted this, you need to send the change to the client 19:07 < bridge> nah he's trying to copy the slowmotion servers like 30 other people today for some reason 19:07 < bridge> :kekw: 19:07 < bridge> ive already attempted this, you need to send the change to the client 19:07 < bridge> you should also reset prediction 19:07 < bridge> i told u u probably have to find where the server is assuming a different tickrate, i doubt anyone here knows whwere off the top of their head 19:07 < bridge> again there’s a pr for this already 19:07 < bridge> what slowmo servers? 19:07 < bridge> oh there is a pr 19:07 < bridge> slow servers 19:07 < bridge> literally 19:07 < bridge> physics are slow 19:07 < bridge> wait i don't think so 19:07 < bridge> @teero777 this is functional, can you test if it's accurate 19:07 < bridge> lower tickrate != slower server 19:08 < bridge> when its 31 december ill say i will not code rust till next year 19:08 < bridge> lower tickrate == client doesnt work 19:08 < bridge> :owo: 19:08 < bridge> lower tickrate = :nouis: 19:08 < bridge> ryo do u know if it’s possible to set up distributed rust builds? 19:09 < bridge> and a cache perhaps 19:09 < bridge> hmm i guess nobody did it 19:09 < bridge> sscache 19:09 < bridge> i want it on my home network 19:09 < bridge> https://github.com/mozilla/sccache 19:09 < bridge> so i can usw my m3 pro and my 7900X 19:09 < bridge> what? 19:09 < bridge> @gqzrbexa0_01047 btw when you modify the tickrate you shouldnt touch the tickrate that is visible in gameclient and server because that would cause everything to be scaled which means its just a laggy server rather than a slow one. 19:09 < bridge> you should find where the ticks happen and modify the tick rate only there 19:09 < bridge> @mpft it has storage options 19:09 < bridge> like s3 19:09 < bridge> nice 19:10 < bridge> i might have to do more work bcs we use a custom registry 19:10 < bridge> which i probably wont be allowed to access from desktop 19:10 < bridge> because certificates 19:10 < bridge> and contract 19:10 < bridge> u do use a custo mreg? 19:10 < bridge> lol 19:10 < bridge> ye 19:10 < bridge> i fixed your horrible formatting :xd: 19:10 < bridge> proprietary code moment 19:10 < bridge> Guys, it's spreading 19:10 < bridge> https://discord.com/channels/252358080522747904/342454474117218334/1306681553140711489 19:10 < bridge> why not github references 19:10 < bridge> :justatest: 19:10 < bridge> bro?? i want that exact format stop 19:10 < bridge> or git 19:11 < bridge> i bet someone made a tik tok 19:11 < bridge> holy crap slow mo ddnet!!!!!!!!! 19:11 < bridge> xd 19:11 < bridge> all my homies hate tiktok 19:11 < bridge> when fast mode ddnet 19:11 < bridge> just copy the slow mode from demo mode 5head 19:11 < bridge> when ddpg will be released 😏 19:11 < bridge> im unsure what the benefit is 19:12 < bridge> i also didnt set it up 19:12 < bridge> so idk 19:12 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1306683208804466688/image.png?ex=67378f11&is=67363d91&hm=8b7ca7b933329786430a8a887164320c8ce4f9660219b0c70957a4998f85235b& 19:12 < bridge> 1.2x or 1.5x is kinda fun, anything faster becomes kinda unplayable 19:12 < bridge> like 5 videos about slowmo servers 19:12 < bridge> he is the owner 19:13 < bridge> this can be achieved with tunes to a more desirable effect so i dont really get it 19:13 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1306683461532127323/image.png?ex=67378f4e&is=67363dce&hm=034d413edab8167b31ced596e1bae406962a9bd0fc435e79b5b6702da7848fac& 19:13 < bridge> anyone play multiFAT 19:13 < bridge> or whatever 19:13 < bridge> it isn’t 1:1 but 19:13 < bridge> :nouis: 19:14 < bridge> this is a fake server of that person from tiktok, the official one is slownet 1.1 19:14 < bridge> well its popular x-x 19:14 < bridge> slownet LOL 19:14 < bridge> use that one then 19:15 < bridge> let me guess it’s proprietary 19:15 < bridge> official too 19:15 < bridge> official have 3 servers 19:15 < bridge> no 19:15 < bridge> there is no official 19:15 < bridge> fatnet 19:15 < bridge> where every tee is fat 19:15 < bridge> ddnet is not running slow servers 19:15 < bridge> he means official slownet servers 19:15 < bridge> I don't mean official ddnet servers 19:16 < bridge> yea 19:16 < bridge> official slownet 19:16 < bridge> what is this community 19:16 < bridge> u dont know, a server can report 64 fake players 19:16 < bridge> officially slow 19:16 < bridge> but its bannable offense 19:17 < bridge> it must be popular bcs we have had like 5 ppl ask about it in 48 hours 19:17 < bridge> btw, that server in the photo is with a fake number of participants XD 19:17 < bridge> but that’s the issue I think 19:17 < bridge> nice 19:17 < bridge> btw, that server in the photo is with a fake number of players XD 19:17 < bridge> so who does master bans? 19:17 < bridge> hein the master 19:17 < bridge> all bow 19:17 < bridge> our lord heinrich 19:17 < bridge> @heinrich5991 19:18 < bridge> 🙇 19:18 < bridge> 🙏 19:18 < bridge> rust lord 19:18 < bridge> https://discord.com/channels/252358080522747904/1124657351442579486 --> Admin-Mail so it doesn't get lost so easily 19:18 < bridge> i dont think they are faking players 19:18 < bridge> ive joined one of the servers 19:18 < bridge> people seem real 19:18 < bridge> it can be looked into. 19:18 < bridge> xdd idk 19:19 < bridge> maybe im a little sour 19:19 < bridge> I counted once, it didn't match (by about 10 or so) 19:19 < bridge> this is such unproductive candid nonsense 19:19 < bridge> :poggers2: 19:19 < bridge> i checked it out. seems like real russians to me 19:20 < bridge> das true, but it probably isnt 19:21 < bridge> Idk, they had an update not long ago, mb they cut it out 19:21 < bridge> not checked 19:21 < bridge> i mean if they know how the protocol works they can just spawn afk bots 19:21 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1306685472713478214/image.png?ex=6737912d&is=67363fad&hm=d2a1f30564e96cf217be7b6d96d0db5487fdda8423c4f9c512ff6e4f913b580f& 19:21 < bridge> hard to detect 19:21 < bridge> they arent bots 19:21 < bridge> i said they can 19:21 < bridge> MOST LIKELY THERE ARE A TON OF AFKSHERS THERE 19:22 < bridge> lots of afk 19:22 < bridge> nah 19:22 < bridge> yeah but thats every server 19:22 < bridge> yes 19:22 < bridge> well at least yes 19:23 < bridge> the thing is that when I went to the server and counted, the number of players in the tab and the number of players did not match, and about 10 people were afk 19:23 < bridge> sounds like you didnt refresh the browser 19:23 < bridge> it doesn’t do that when you leave 19:24 < bridge> btw, I rebooted, it may be that I’m wrong, and while I was looking at the tab and then looking at the number of players, the number of players came out 19:26 < bridge> their servers are running ddnet++ 19:26 < bridge> not sure why 19:26 < bridge> they just have a retarded admin, I came in today (they’ll just laugh), and there the admin changed x6 to acceleration, the players tried to change it back to slowdown and in the end it turned out that in 5 seconds it changed from slowdown to acceleration, and so on 19:26 < bridge> they just have a retarded admin, I came in today (they’ll just laugh), and there the admin changed x6 to speed(not slow), the players tried to change it back to slowdown and in the end it turned out that in 5 seconds it changed from slowdown to acceleration, and so on 19:26 < bridge> they just have a retarded admin, I came in today (they’ll just laugh), and there the admin changed x6 to speed(not slow), the players tried to change it back to slowdown and in the end it turned out that in 5 seconds it changed from slowdown to speed, and so on 19:26 < bridge> nothing we can do about it 19:27 < bridge> retarded admin is not against the rules afaik 19:27 < bridge> :nouis: 19:27 < bridge> lmao 19:27 < bridge> ahahahaha 19:27 < bridge> well actually yes, I’m just telling you what’s going on there 19:29 < bridge> \hahahaha 19:29 < bridge> hahahaha 19:47 < bridge> @robyt3 19:47 < bridge> "The community filter was previously not shown on favorite community tabs, since those always show exactly one community, whereas it's now also incorrectly shown on those tabs." 19:47 < bridge> So setting fav community and filtering by was seperated. 19:47 < bridge> Whats shown incorrectly on those tabs? 19:48 < bridge> The community filter isn't shown on favorite community tabs 19:48 < bridge> they are the same? 19:49 < bridge> they are the same? 19:49 < bridge> oh 19:49 < bridge> (oops) 20:40 < bridge> is this a heinrich himmler reference 20:40 < bridge> whos jupeyy on here? 20:40 < bridge> jupstar? 20:41 < bridge> cutie jupie 20:42 < bridge> :heartw: 20:48 < bridge> @jupeyy_keks 20:48 < bridge> (ik this is wip, i like it, these r just questions x-x) 20:48 < bridge> (also is this made in code or drawing?) 20:48 < bridge> I think settings should be with editor/demos/exit because its not a server 20:48 < bridge> I also think the top bar should be bigger 20:48 < bridge> what is the 3 people icon? 20:48 < bridge> and is the icon at the top something something accounts? 20:48 < bridge> 20:48 < bridge> I think this works with settings as the tabs can be moved to the top or the little sticky out bit can be removed, but i think it might look weird 20:48 < bridge> 20:48 < bridge> i personally like the filters being easily gettable 2 without a burger menu, as fitting all the filters we do have into that might prove... challanging 20:48 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1306707279843823646/386343152-277abb61-b62c-4589-9841-ff7c55a8bc57.png?ex=6737a57c&is=673653fc&hm=db8ac06b3a01f52ca0f966e7d300ea01b0f755e523c643240ffef65c48583146& 20:52 < bridge> I'd say I prefer the current layout, especially when it comes to those circle icons on the left 20:53 < bridge> im impartial 20:53 < bridge> x-x 20:59 < bridge> omg epic 20:59 < bridge> is this another client or just a concept 21:00 < bridge> this is jupsti's work 21:01 < bridge> it's a full rewrite 21:01 < bridge> ``` 21:01 < bridge> [ 53%] Building CXX object CMakeFiles/game-client.dir/src/game/generated/checksum.cpp.o 21:01 < bridge> ``` 21:01 < bridge> do... we really need a checksum 21:01 < bridge> takes ages to compile 21:02 < bridge> :poggers2: 21:02 < bridge> epic 21:02 < bridge> i love u jupie 21:02 < bridge> u are my pookie 21:37 < bridge> translatable please 21:37 < bridge> or heinrich wont like it! 21:38 < bridge> maybe communities can just provide the main language of all locations of servers they host 21:39 < bridge> The description could easily be offered in multiple languages in the info json as an object with language codes as keys 21:40 < bridge> Yea, Ik, just wanted to poke heinrich there :P because he is a big big fan of texts that are not translatable, so if they would actually come from the community themselves, it would be bad 22:20 < bridge> how do i draw text with overflow 22:26 < bridge> how do i draw text with overflow (with a max width) 22:27 < bridge> make it recursive then you atleast have the overflow part done 22:27 < bridge> the chat has overflow 22:41 < bridge> See skin name rendering, for example: 22:41 < bridge> ```cpp 22:41 < bridge> SLabelProperties Props; 22:41 < bridge> Props.m_MaxWidth = Label.w - 5.0f; 22:41 < bridge> Ui()->DoLabel(&Label, pSkinToBeDraw->GetName(), 12.0f, TEXTALIGN_ML, Props); 22:41 < bridge> ``` 22:42 < bridge> gotten that far 22:42 < bridge> but how do i get the number of lines out 22:42 < bridge> so i can appropriatley size the label 22:42 < bridge> (ping) 22:44 < bridge> and how would i determine the height i would need to make the label 22:44 < bridge> Hmm, I guess non of the items had a dynamic height before. Either just pick enough height so it should definitely fit (also with other languages), or use a text container to first layout the text and get its height and then render it. 22:45 < bridge> is it okay to copy the logic straight from dolabel 22:45 < bridge> even if its 22:45 < bridge> repeated code 22:46 < bridge> (and then textrender()->textex()) 22:46 < bridge> you can't use DoLabel for this 22:46 < bridge> see for example the tooltip rendering in `tooltip.cpp` 22:46 < bridge> That should be a similar use case 22:48 < bridge> Though this could be more efficient by using `GetBoundingBoxTextContainer` instead of `TextBoundingBox` 22:49 < bridge> 1. create text container from text 22:49 < bridge> 2. get bounding box of text container 22:49 < bridge> 3. determine size of item based on the bounding box size 22:49 < bridge> 4. render text container inside the item 22:50 < bridge> what is the max vote command length?? 22:51 < bridge> ``` 22:51 < bridge> enum 22:51 < bridge> { 22:51 < bridge> VOTE_DESC_LENGTH = 64, 22:51 < bridge> VOTE_CMD_LENGTH = 512, 22:51 < bridge> VOTE_REASON_LENGTH = 16, 22:51 < bridge> 22:51 < bridge> MAX_VOTE_OPTIONS = 8192, 22:51 < bridge> }; 22:51 < bridge> ``` 22:51 < bridge> how do i get the padding that i should use? 22:51 < bridge> or doi just eye ball it 22:52 < bridge> Should be consistent with the other UI elements 22:52 < bridge> And generally margins should be consistent on all sides 22:52 < bridge> tooltip uses 5.0f 22:52 < bridge> ^ btw are these values pixel values? 22:53 < bridge> they are adjusted for dpi 22:53 < bridge> ``` 22:53 < bridge> constexpr float FontSize = 14.0f; 22:53 < bridge> constexpr float Margin = 5.0f; 22:53 < bridge> constexpr float Padding = 5.0f; 22:53 < bridge> ``` 22:53 < bridge> whyyyy 22:53 < bridge> 1 unit 22:53 < bridge> why would it be so loww 22:53 < bridge> think of it that way 22:53 < bridge> i dont want to make 200 cfgs 22:53 < bridge> ;-; 22:53 < bridge> because it stores 8kb per vote string? 22:53 < bridge> There should already be a margin for the friend items right now, I don't think you need to add another one 22:54 < bridge> mmm idk ill see 22:54 < bridge> im trying to make 22:54 < bridge> the help text for clans 22:54 < bridge> and the "enough space so it fits" strategy doesnt feel satisfying 22:54 < bridge> too bad 22:54 < bridge> that’s what exists 22:54 < bridge> it appears you havent met 1. my stubborness 2. my increasing ability to code 3. robyt3s help 22:54 < bridge> use your best judgement and then these guys can tell you if they have an issue with the size you’ve chosen in review 22:55 < bridge> :nouis: 22:55 < bridge> because in different langs its gonna be vastly different in size 22:55 < bridge> well not vastly 22:55 < bridge> 1 to 3 lines 22:55 < bridge> if it ever gets translated# 22:55 < bridge> They are basically arbitrary based on the UI screen size defined in `CUi::Screen` 22:56 < bridge> yeah, but simply always using 3 lines and centering the text would also be good enough I guess 22:56 < bridge> there should be some context here 22:57 < bridge> idk what is happening i’m confused and scared and cold 22:57 < bridge> brb 22:57 < bridge> It's about changing this "None" to a description of how to use the feature 22:57 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1306739850741022760/image.png?ex=6737c3d2&is=67367252&hm=ea70965321015fb9c6d4612be923cd08b5ed8ae4e57d013d44190c7ef1c8f5b5& 22:57 < bridge> but... thats 1 line of margin on either side 23:09 < bridge> `618951.125000 618951.125000` 23:09 < bridge> ive done something wrong because this is the size of my... 23:09 < bridge> text 23:10 < bridge> ```c 23:10 < bridge> const float Padding = 2.0f; 23:10 < bridge> CTextCursor Cursor; 23:10 < bridge> Cursor.m_FontSize = 12.0f * CUi::ms_FontmodHeight; 23:10 < bridge> Cursor.m_LineWidth = List.w - Padding * 2.0f; 23:10 < bridge> Cursor.m_StartX = List.x + Padding; 23:10 < bridge> Cursor.m_StartY = List.y + Padding; 23:10 < bridge> STextContainerIndex TextContainerIndex; 23:10 < bridge> const unsigned OldRenderFlags = TextRender()->GetRenderFlags(); 23:10 < bridge> TextRender()->SetRenderFlags(OldRenderFlags | TEXT_RENDER_FLAG_ONE_TIME_USE); 23:10 < bridge> TextRender()->CreateTextContainer(TextContainerIndex, &Cursor, pText); 23:10 < bridge> TextRender()->SetRenderFlags(OldRenderFlags); 23:10 < bridge> const STextBoundingBox BoundingBox = TextRender()->GetBoundingBoxTextContainer(TextContainerIndex); 23:10 < bridge> CUIRect Label; 23:10 < bridge> List.HSplitTop(BoundingBox.m_H + Padding * 2.0f, &Label, &List); 23:10 < bridge> s_ScrollRegion.AddRect(Label); 23:11 < bridge> printf("%f %f\n", BoundingBox.m_H, BoundingBox.m_H); 23:11 < bridge> TextRender()->RenderTextContainer(TextContainerIndex, TextRender()->GetTextColor(), TextRender()->GetTextOutlineColor()); 23:11 < bridge> 23:11 < bridge> ``` 23:11 < bridge> this is very patch work 23:12 < bridge> dolabel trial and errors getTextWidth 23:12 < bridge> it cant be that ineffecient 23:15 < bridge> patchwork reference? 23:16 < bridge> yeah.. the 23:16 < bridge> like quilting style 23:16 < bridge> peices from all over the place 23:16 < bridge> in this case copied and pasted then names changed 23:17 < bridge> from different files 23:17 < bridge> such that it looks right and has no errors 23:17 < bridge> idk why i expected engagement with that 23:17 < bridge> i have a friend who played patchwork like 3 times when he was quite new to the game 23:17 < bridge> so every moderate map is a patchwork reference to him 23:17 < bridge> it’s funny when he says it 23:18 < bridge> x-x 23:18 < bridge> okay 23:18 < bridge> https://en.wikipedia.org/wiki/Patchwork_(board_game) 23:18 < bridge> this one? 23:19 < bridge> the ddnet map 23:20 < bridge> pshh 23:20 < bridge> fake ass ddnet player 23:20 < bridge> ;-; 23:20 < bridge> im kidding 23:20 < bridge> `const float FontSize = 10.0f;` 23:20 < bridge> then the label has a size of `12.0f * CUi::ms_FontmodHeight == 9.6f` 23:21 < bridge> consistent my ass 23:21 < bridge> everything is magic numbers lmao 23:23 < bridge> almost 23:23 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1306746270513234060/image.png?ex=6737c9cd&is=6736784d&hm=48286df7e5766044e33d9650dac34a541d20c199ab863f348e31640f2605c44a& 23:25 < bridge> ```cpp 23:25 < bridge> List.HSplitTop(50.0f, &List, &Label); 23:25 < bridge> s_ScrollRegion.AddRect(Label); 23:25 < bridge> ``` 23:25 < bridge> uhh its not adding any space? 23:27 < bridge> list and label were the wrong way around 23:31 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1306748430005178458/image.png?ex=6737cbcf&is=67367a4f&hm=b7042266d64e4827cf55968be44114e0d141afadb66ecb88e54cbd0ef4715455& 23:39 < bridge> is this better than a tooltip 23:39 < bridge> with a question mark icon 23:45 < bridge> you raise a good point 23:45 < bridge> lmao 23:45 < bridge> yeah thats better x-x 23:45 < bridge> im still proud i figured it out 23:46 < bridge> is there already a question mark icon 23:48 < bridge> the bundled font has a lot 23:48 < bridge> try emojis 23:49 < bridge> i’m proud of u too 23:49 < bridge> hehe i dont know how to do that 23:49 < bridge> set the text to the unicode escape of ❓ or smth 23:49 < bridge> see if it works 23:49 < bridge> ? sure 23:50 < bridge> `MAYBE_UNUSED static const char *FONT_ICON_QUESTION = "?";` 23:50 < bridge> a tool like fontforge will let u see into the font 23:50 < bridge> it’s probably fine but i prefer to escape anyway 23:50 < bridge> that looks like normal ? 23:50 < bridge> on myphone 23:51 < bridge> it is 23:51 < bridge> if emoji works ill change it