00:21 <@heinrich5991> . 00:23 <@heinrich5991> . 00:23 <+bridge> [ddnet] why not remove quakenet 00:23 <+bridge> [ddnet] ppl on irc wont care what irc sv ppl are 00:24 <+bridge> [ddnet] [] 00:24 <+bridge> [ddnet] ppl on discord* 00:25 <@heinrich5991> to distinguish between quakenet nad freenode 00:54 <+bridge> [ddnet] yeah but why 05:07 <+bridge> [ddnet] @Learath2 I'll try to do it tomorrow, since it's late now and I have to sleep. 09:38 <+bridge> [ddnet] I knew that hack wouldnt work well :/ 09:39 <+bridge> [ddnet] Colors with alpha take the whole 32bits 09:39 <+bridge> [ddnet] I need to save them in a different format 12:03 <+bridge> [ddnet] Okay while its safe to store them as ints its not safe to manipulate them as such 12:03 <+bridge> [ddnet] I guess I can work with that 13:15 <+bridge> [ddnet] the color isn't artificially lighted anymore, that's why it looked darker 13:16 <+bridge> [ddnet] @deen your third bug I can't recreate, even after completely deleting my config 13:18 <+bridge> [ddnet] (If I could I wouldn't have told you to it's okay to merge :D) 13:20 <+bridge> [ddnet] okay, done with the quick fixes, I'll stop pushing to master 🙂 17:17 <+bridge> [ddnet] @Learath2 could you make the score format change soon? Right now, it is completely wrong - the client receives it as a system message, not a game message and it generally belongs to an extended player netobject, doesnt it? 17:18 <+bridge> [ddnet] I think it belongs to a `CNetObj_DDNetPlayer` 17:18 <+bridge> [ddnet] yes. 17:18 <+bridge> [ddnet] @heinrich5991 do you agree? 17:18 <+bridge> [ddnet] no. DDNetGameObj 17:19 <+bridge> [ddnet] Ah right, you told me earlier 17:19 <+bridge> [ddnet] `CNetObj_DDNetGameInfo` 17:23 <+bridge> [ddnet] See I think it belongs there 17:23 <+bridge> [ddnet] but for fokkonauts usecase that'd be useless 17:23 <+bridge> [ddnet] as with GameInfo everyone would have the same score type 17:24 <+bridge> [ddnet] (which makes sense to you and me, but for a mod that mixes many elements it doesn't) 17:24 <+bridge> [ddnet] Ahh, right 17:25 <+bridge> [ddnet] Okay, so it needs to be in that Player obj 17:29 <+bridge> [ddnet] hmmmm 17:29 <+bridge> [ddnet] do we really need that complexity? 😦 17:29 <+bridge> [ddnet] Yes, please :D 17:32 <+bridge> [ddnet] https://img-9gag-fun.9cache.com/photo/a83nqW6_460swp.webp 17:40 <+bridge> [ddnet] no 17:41 <+bridge> [ddnet] u 18:42 <+bridge> [ddnet] @heinrich5991 we don't but it'd be nice for modifiability 18:43 <+bridge> [ddnet] question is do we want to accomodate that or not 18:48 <+bridge> [ddnet] yo does anyone have an solution for using cd during pipeing? 18:48 <+bridge> [ddnet] 18:48 <+bridge> [ddnet] cd foo/;./a | cd bar/;./b 18:48 <+bridge> [ddnet] 18:48 <+bridge> [ddnet] i want to pipe output of into b but they are in different directorys and have to be executed from their directory 18:48 <+bridge> [ddnet] use subshells 18:48 <+bridge> [ddnet] `(cd abc; cmd1) | (cd def; cmd2)` 18:48 <+bridge> [ddnet] interesting and that works? why 18:49 <+bridge> [ddnet] because you spawn subshells 18:49 <+bridge> [ddnet] isnt cmd1 result getting piped into cd and then killing cd? 18:49 <+bridge> [ddnet] magic ima try 18:50 <+bridge> [ddnet] as you can see there is no pipe between cmd1 and cd 18:51 <+bridge> [ddnet] how can it even pipe the result without a pipe? 😄 18:51 <+bridge> [ddnet] and if i have a third binary in a third pipe same dir as second? 18:51 <+bridge> [ddnet] do i have to use cd agian i guess? 18:51 <+bridge> [ddnet] cmd1) | (cd def 18:51 <+bridge> [ddnet] i see a pipe there 18:52 <+bridge> [ddnet] lol it worked 18:52 <+bridge> [ddnet] awesome thanks heinrich 19:55 <+bridge> [ddnet] `pSelf->m_World.m_Core.m_apCharacters[Victim]->m_Super` is the same as `pChr->Core()->m_Super`, right? 19:59 <+bridge> [ddnet] and, why would you use `GameServer()->m_World.` instead of `GameWorld()->`? 19:59 <+bridge> [ddnet] GameWorld returns m_world 19:59 <+bridge> [ddnet] i think 19:59 <+bridge> [ddnet] isnt it the same? 19:59 <+bridge> [ddnet] yes 20:00 <+bridge> [ddnet] so the first one with super is also smarter to use the right version? 20:00 <+bridge> [ddnet] depends on where you are obviously 20:00 <+bridge> [ddnet] the hierachy in ddnet code 20:00 <+bridge> [ddnet] is messed up imo 20:00 <+bridge> [ddnet] everything is everywhere 20:00 <+bridge> [ddnet] I can imagine `CCharacterCore *pChr` and `CCharacter *pChr` 20:01 <+bridge> [ddnet] or `CCharacterInfo` 20:01 <+bridge> [ddnet] CCharacterCore is not usually defined as pChr 20:01 <+bridge> [ddnet] on code 20:01 <+bridge> [ddnet] from what i rmeember 20:01 <+bridge> [ddnet] more `pCore` 20:01 <+bridge> [ddnet] or `pCharCore` 20:02 <+bridge> [ddnet] anyways, the point is how you access somewhere depends on where you are accessing from 20:02 <+bridge> [ddnet] so, from an entity class i can use GameWorld()-> instead of GameServer()->m_World. right? 20:03 <+bridge> [ddnet] yes 20:03 <+bridge> [ddnet] and for the example with super, (its in ddracecommands.cpp) i can also use pChr->Core()-> instead of the way using the GameServer, right? 20:03 <+Learath2> does CEntity even have access to CGameServer()? 20:04 <+bridge> [ddnet] yes? 20:05 <+Learath2> yep, weird, I wonder why we needed that :P 20:05 <+bridge> [ddnet] for this, maybe if `(GameServer()->Collision()->GetCollisionAt(m_Pos.x, m_Pos.y) == TILE_DEATH)` 20:06 <+Learath2> the hierarchy is so weird here 20:07 <+bridge> [ddnet] indeed 20:09 <+bridge> [ddnet] hmm am i the only person having real trouble connecting a dummy on a 0.6.5 vanilla server? 20:09 <+bridge> [ddnet] im not sure what version debian testing currently has but i dont think its latest. 20:10 <+bridge> [ddnet] am i stupid or is this the uselessest thing ever? This line is in gameworld.cpp XD `CCharacter *p = (CCharacter *)GameServer()->m_World.FindFirst(ENTTYPE_CHARACTER);` 20:10 <+bridge> [ddnet] i get cp or i gltich through walls see glitches etc 20:10 <+bridge> [ddnet] why should it be useless? 20:10 <+bridge> [ddnet] GameServer()->m_World == this file 20:10 <+bridge> [ddnet] ah 20:10 <+bridge> [ddnet] you can just go ahead and write FindFirst 20:10 <+bridge> [ddnet] xd 20:11 <+bridge> [ddnet] ya probably stupid then 20:11 <+bridge> [ddnet] @fokkonaut where? 20:11 <+bridge> [ddnet] gamecore 20:11 <+bridge> [ddnet] gameworld 20:11 <+bridge> [ddnet] xd 20:11 <+bridge> [ddnet] he just wrote it 20:11 <+bridge> [ddnet] oh, nvm 20:11 <+bridge> [ddnet] it was a function by me wtf 20:11 <+bridge> [ddnet] xxxxxxxxxxxxxD 20:12 <+bridge> [ddnet] im st00pid 20:12 <+bridge> [ddnet] @Learath2 i assume its okay to use GameWorld() instead of GameServer()->m_World. from character.cpp? 20:13 <+bridge> [ddnet] Look at it's definition @fokkonaut ofc that's always safe 20:13 <+bridge> [ddnet] oh also tested on windows 20:13 <+bridge> [ddnet] latest ddnet 20:13 <+bridge> [ddnet] dummys are broken in vanilla 0.6.5 20:13 <+bridge> [ddnet] Actually there is a function in CGameWorld that does that 20:13 <+bridge> [ddnet] it's by oy 😛 20:14 <+bridge> [ddnet] `GameServer()->m_World.m_Core.m_apCharacters[m_pPlayer->GetCID()] = 0;` 20:14 <+bridge> [ddnet] is in character.cpp, should be okay to use m_Core = 0;? 20:15 <+bridge> [ddnet] close the bug 20:15 <+bridge> [ddnet] no one uses dummyo n vanilla 20:15 <+bridge> [ddnet] i do 20:15 <+bridge> [ddnet] its useless 20:15 <+bridge> [ddnet] for testing 20:15 <+bridge> [ddnet] and if its not working the connect dummy button should atleast be hidden in vanilla 20:15 <+bridge> [ddnet] since it forces the player to reconnect 20:16 <+bridge> [ddnet] ur so annoying with vanilla 20:16 <+bridge> [ddnet] xD 20:16 <+bridge> [ddnet] use vanilla client for vanilla 20:16 <+bridge> [ddnet] yes sure switching client all the time xd 20:16 <+bridge> [ddnet] @Learath2 20:17 <+bridge> [ddnet] @fokkonaut I don't know 20:17 <+bridge> [ddnet] ofc not 20:18 <+bridge> [ddnet] Look at the definitions instead of asking me 20:19 <+bridge> [ddnet] `CGameworld.m_Core` is the `CWorldCore`, `CCharacter.m_Core` is `CCharacterCore` 20:21 <+bridge> [ddnet] but it leads to m_apCharacters, which is a CaharacterCore, just as m_Core 20:47 <+bridge> [ddnet] it sets a pointer to this characters core to 0 20:47 <+bridge> [ddnet] not this characters core to 0 21:17 <+bridge> [ddnet] oh 21:30 <+bridge> [ddnet] I figured out what's wrong with the tee colors, I'm lightening it twice :/ 21:30 <+bridge> [ddnet] dunno a good way to fix it though 21:36 <+bridge> [ddnet] @heinrich5991 have a minute? 😛 21:37 <+bridge> [ddnet] not really 21:37 <+bridge> [ddnet] what's it about? 21:38 <+bridge> [ddnet] Now that I store colors accurately, I have to lighten colors when reading from the config, but I also have to lighten colors I get from the server 21:38 <+bridge> [ddnet] so I end up lightening twice 21:38 <+bridge> [ddnet] well if you don't have a minute no point explaining 🙂 22:12 <+bridge> [ddnet] @deen any advice? 22:12 <+bridge> [ddnet] I'm starting to think maybe I didn't make anything better with this whole pr :/ 22:32 <+bridge> [ddnet] Why did you even start? I mean what was your idea behind it 22:33 <+bridge> [ddnet] I wanted to implement a proper color picker for the tees, but there were color functions everywhere 22:33 <+bridge> [ddnet] What does it mean, everyhwere? 22:34 <+bridge> [ddnet] like color.h had some, CGameClient had some 22:34 <+bridge> [ddnet] nah, I think your PR makes things better 🙂 22:34 <+bridge> [ddnet] the editor had its own 22:34 <+bridge> [ddnet] And how is it right now? 22:34 <+bridge> [ddnet] I think there were 3 implementations of HslToRgb 22:34 <+bridge> [ddnet] xD 22:35 <+bridge> [ddnet] I'll stop pushing to master now, I think this works 22:36 <+bridge> [ddnet] Lol 22:36 <+bridge> [ddnet] dont you test your stuff? 22:37 <+bridge> [ddnet] I do, some bugs like these aren't very apparent 22:37 <+bridge> [ddnet] like in this case, the colors got lighter every time you restarted the client 22:37 <+bridge> [ddnet] ah yea 22:37 <+bridge> [ddnet] when testing I usually restart once or twice 22:39 <+bridge> [ddnet] https://github.com/ddnet/ddnet/blob/master/src/game/server/ddracecommands.cpp#L108 22:39 <+bridge> [ddnet] @heinrich5991 what's your opinion on https://github.com/ddnet/ddnet/blob/master/src/game/variables.h#L92 ? 22:39 <+bridge> [ddnet] I am using pChr->Core()-> here, is that ok? 22:39 <+bridge> [ddnet] I couldn't come up with something cleaner :/ 22:42 <+bridge> [ddnet] @fokkonaut yeah looks okay 22:42 <+bridge> [ddnet] That`CCharacter::GetCore()` looks wrong btw, it seems to return a copy of the core 22:42 <+bridge> [ddnet] idk why that was ever needed 22:43 <+bridge> [ddnet] Yes, also got confused what its for 22:43 <+bridge> [ddnet] maybe some prediction blackmagic 22:43 <+bridge> [ddnet] I dont think so :D 22:43 <+bridge> [ddnet] but maybe 22:45 <+bridge> [ddnet] Ah, found it 22:45 <+bridge> [ddnet] GetCore is used in TeeHistorian: https://github.com/ddnet/ddnet/blob/master/src/game/server/gamecontext.cpp#L636 22:46 <+bridge> [ddnet] it's okay I guess @Learath2 22:47 <+bridge> [ddnet] @fokkonaut GetCore is older then teehistorian, greyfox seems to have added it 22:47 <+bridge> [ddnet] oh, really? 22:48 <+bridge> [ddnet] let me introduce you to a very useful tool 22:48 <+bridge> [ddnet] `git blame` 22:48 <+bridge> [ddnet] in teeworlds it'll always lead you to "copied refactor to trunk" but if it doesn't it's helpful 😛 22:48 <+bridge> [ddnet] xd 22:51 <+bridge> [ddnet] maybe i should have based the color classes on a single int instead of an actual vector 23:08 <+bridge> [ddnet] Hey @heinrich5991, could you help me some time for the file iterator? :D 23:08 <+bridge> [ddnet] file iterator? 23:09 <+bridge> [ddnet] given that I just told @Learath2 that I have no time, probably not right now 23:09 <+bridge> [ddnet] Oke 23:09 <+bridge> [ddnet] @Learath2 iterating over files using the callback method 23:10 <+bridge> [ddnet] @fokkonaut what are you stuck with? You have about 15 minutes before I pass out 😄 23:11 <+bridge> [ddnet] I cant right now, in bed already :/ But if you could help me tomorrow, it would be cool 23:11 <+bridge> [ddnet] I'm going to be pretty much off the grid tomorrow, have a couple flights to catch 23:11 <+bridge> [ddnet] :tee_thinking: 23:12 <+bridge> [ddnet] (I need a loop in Gamecontext::OnInit, which goes through some files and changes one line entry per file using this ofstream thing) 23:12 <+bridge> [ddnet] well I'll have internet at the airports so i can give you a hand if you manage to catch me at the correct time 😛 23:12 <+bridge> [ddnet] it works for one file, just dont know how to go through all together 23:13 <+bridge> [ddnet] ofstream is definitely not the teeworlds way, shameful 23:13 <+bridge> [ddnet] I will try to 23:13 <+bridge> [ddnet] @Learath2 xd what do you recommend 23:13 <+bridge> [ddnet] :whenwwseeachild: 23:13 <+bridge> [ddnet] ```cpp 23:13 <+bridge> [ddnet] std::string CResourceManager::LoadFile(std::string path) 23:13 <+bridge> [ddnet] { 23:13 <+bridge> [ddnet] std::ifstream t(path); 23:13 <+bridge> [ddnet] std::string str((std::istreambuf_iterator(t)), 23:13 <+bridge> [ddnet] std::istreambuf_iterator()); 23:13 <+bridge> [ddnet] t.close(); 23:13 <+bridge> [ddnet] return str; 23:13 <+bridge> [ddnet] }``` isnt it beutiful 23:13 <+bridge> [ddnet] yes 23:14 <+bridge> [ddnet] NOOOOO 23:14 <+bridge> [ddnet] dfq xd 23:14 <+bridge> [ddnet] c++11 way to load files 23:14 <+bridge> [ddnet] my eyes are bleeding, thanks 23:14 <+bridge> [ddnet] i like it hto its super simple xd 23:14 <+bridge> [ddnet] I wonder if the C++ people are even thinking at this point 23:14 <+bridge> [ddnet] oh 23:14 <+bridge> [ddnet] look at that expression, it looks HUGE 23:14 <+bridge> [ddnet] here comes daily learath rant 23:14 <+bridge> [ddnet] I don't rant daily 23:15 <+bridge> [ddnet] biweekly at most 23:15 <+bridge> [ddnet] xD 23:15 <+bridge> [ddnet] ```cpp 23:16 <+bridge> [ddnet] std::vector CResourceManager::LoadBinaryFile(std::string path) 23:16 <+bridge> [ddnet] { 23:16 <+bridge> [ddnet] std::ifstream t(path, std::ios::binary); 23:16 <+bridge> [ddnet] return std::vector(std::istreambuf_iterator(t), {}); 23:16 <+bridge> [ddnet] }``` @Learath2 👹 23:16 <+bridge> [ddnet] keep it away from me 23:16 <+bridge> [ddnet] yay found a new way to torture u 23:16 <+bridge> [ddnet] xd 23:17 <+bridge> [ddnet] `using namespace std;` 23:17 <+bridge> [ddnet] btw: what is an unsigned variable? 23:18 <+bridge> [ddnet] it's a variable that doesn't have a sign 23:18 <+bridge> [ddnet] u dont know that? xd 23:18 <+bridge> [ddnet] it can only have positive values 23:19 <+bridge> [ddnet] (and thus doesn't need the sign bit, and thus can hold larger numbers) 23:19 <+bridge> [ddnet] and it has a more upper limit on what value it can hold 23:19 <+bridge> [ddnet] @fokkonaut read about Ca2 23:19 <+bridge> [ddnet] wait thats the spanish word 23:19 <+bridge> [ddnet] xd 23:19 <+bridge> [ddnet] Carbonic anhydrase? 23:19 <+bridge> [ddnet] Two's complement 23:19 <+bridge> [ddnet] makes more sense 23:19 <+bridge> [ddnet] xd 23:19 <+bridge> [ddnet] in spanish is "complemento a dos" 23:20 <+bridge> [ddnet] @Ryozuki DoSer 23:21 <+bridge> [ddnet] complemento a due in italian 23:21 <+bridge> [ddnet] @heinrich5991 wat xd 23:21 <+bridge> [ddnet] wait, what happens if an integer is 100k big? i mean can it hold this big Numbers? 23:21 <+bridge> [ddnet] 100k big? 23:21 <+bridge> [ddnet] it overflows 23:21 <+bridge> [ddnet] what does that mean 23:22 <+bridge> [ddnet] if your number is too large for your type it overflows 23:22 <+bridge> [ddnet] if a signed integer overflows it's undefined behaviour 23:22 <+bridge> [ddnet] if an unsigned one overflows it wraps around (goes back to 0) 23:22 <+bridge> [ddnet] and how to use big numbers then xd 23:23 <+bridge> [ddnet] use a long, or a long long, or an arbitrary precision math library 23:23 <+bridge> [ddnet] u dont need numbers that high usually 23:23 <+bridge> [ddnet] or code your own arbitrary precision math library 23:23 <+bridge> [ddnet] `+2147483647` is the max int for c+ 23:23 <+bridge> [ddnet] +?* 23:23 <+bridge> [ddnet] unsigned long long = 18446744073709551615 23:23 <+bridge> [ddnet] No, that's the minimum allowed 23:24 <+bridge> [ddnet] The standard only tells you how big it has to be at the least 23:24 <+bridge> [ddnet] lol 23:24 <+bridge> [ddnet] The actual implementation is allowed to make it as big as it wants 23:24 <+bridge> [ddnet] tells you how big each type is 23:25 <+bridge> [ddnet] u cant have unlimited things in computers (for now) 23:25 <+bridge> [ddnet] u will run out of memory 23:26 <+bridge> [ddnet] at which point you can write to disk, and after you run out of that you can write to an amazon S3 bucket \o/ 23:26 <+bridge> [ddnet] xD