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