05:33 <+bridge> [ddnet] https://youtu.be/ITogH7lJTyE 05:33 <+bridge> [ddnet] :justatest: 09:15 <+bridge> [ddnet] @jkjk slow death eh? 12:37 <+bridge> [ddnet] what 13:31 <+bridge> [ddnet] does someone know where this variable gets set? https://github.com/ddnet/ddnet/blob/b7adc5a690216d56fa8636c5efbfd91a5e4fe07d/src/game/editor/editor.h#L338 13:33 <+bridge> [ddnet] I just did a `CEditorMap m_Map` and `m_Map.m_pEditor` was set magically to a editor object o.O ?and the construcor only calls clean```C 13:33 <+bridge> [ddnet] void CEditorMap::Clean() 13:33 <+bridge> [ddnet] { 13:33 <+bridge> [ddnet] for(int i = 0; i < m_lGroups.size(); i++) 13:33 <+bridge> [ddnet] { 13:33 <+bridge> [ddnet] m_lGroups[i]->m_lLayers.delete_all(); 13:33 <+bridge> [ddnet] } 13:33 <+bridge> [ddnet] m_lGroups.delete_all(); 13:33 <+bridge> [ddnet] m_lEnvelopes.delete_all(); 13:33 <+bridge> [ddnet] m_lImages.delete_all(); 13:33 <+bridge> [ddnet] m_lSounds.delete_all(); 13:33 <+bridge> [ddnet] 13:33 <+bridge> [ddnet] m_MapInfo.Reset(); 13:33 <+bridge> [ddnet] 13:33 <+bridge> [ddnet] m_lSettings.clear(); 13:33 <+bridge> [ddnet] 13:33 <+bridge> [ddnet] m_pGameLayer = 0x0; 13:33 <+bridge> [ddnet] m_pGameGroup = 0x0; 13:33 <+bridge> [ddnet] 13:33 <+bridge> [ddnet] m_Modified = false; 13:33 <+bridge> [ddnet] 13:33 <+bridge> [ddnet] m_pTeleLayer = 0x0; 13:33 <+bridge> [ddnet] m_pSpeedupLayer = 0x0; 13:33 <+bridge> [ddnet] m_pFrontLayer = 0x0; 13:33 <+bridge> [ddnet] m_pSwitchLayer = 0x0; 13:33 <+bridge> [ddnet] m_pTuneLayer = 0x0; 13:33 <+bridge> [ddnet] } 13:33 <+bridge> [ddnet] ``` 13:53 <+bridge> [ddnet] magic 14:01 <+bridge> [ddnet] I'd guess UB, since `m_pEditor` is set in `CEditor::Init()` 14:25 <+bridge> [ddnet] Defaulting to UB upon first glance seems like a weird idea to me. but im not a wizard. 14:42 <+bridge> [ddnet] yes so sorry im late, i tried the first one and i got this. i just dont know why i have this, everything look ok 14:42 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/861225563230175242/unknown.png 14:43 <+bridge> [ddnet] remove the mentioned functions 14:43 <+bridge> [ddnet] u probably tried the other solution 14:43 <+bridge> [ddnet] and forgot to remove them now 14:43 <+bridge> [ddnet] ResetDragVelocity and the other 14:44 <+bridge> [ddnet] ? thats not good 14:44 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/861225966155595816/unknown.png 14:45 <+bridge> [ddnet] well thats the other solution isnt it? 14:45 <+bridge> [ddnet] the other way to remove weak 14:46 <+bridge> [ddnet] u havent implemented it, and u also dont need it 14:46 <+bridge> [ddnet] i deleted all this things i added with the second way 14:47 <+bridge> [ddnet] i mean i tried this tsFreddie link not your 14:48 <+bridge> [ddnet] yeah but u need to remove the things from tsfreddie 14:48 <+bridge> [ddnet] if u go the other way 14:48 <+bridge> [ddnet] ok, maybe i forget some things 14:49 <+bridge> [ddnet] i retry a last time with ur 15:05 <+bridge> [ddnet] i have many errors 15:05 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/861231310948925500/unknown.png 15:05 <+bridge> [ddnet] +20 15:05 <+bridge> [ddnet] i think i do smth wrong 15:05 <+bridge> [ddnet] probably 15:18 <+bridge> [ddnet] yes 15:19 <+bridge> [ddnet] you probably forgot to implement the pretick 15:19 <+bridge> [ddnet] just do it as in the commit 15:19 <+bridge> [ddnet] with virtual functions etc 15:25 <+bridge> [ddnet] smth is really wrong, why is CCharacter in gamecore 😄 15:27 <+bridge> [ddnet] omfg 15:45 <+bridge> [ddnet] @Jupstar ✪ do u accept private message? 15:46 <+bridge> [ddnet] doesn't understand what u mean here 15:46 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/861241645823164436/unknown.png 15:46 <+bridge> [ddnet] doesn't understand what that mean here 15:47 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/861241645823164436/unknown.png 15:49 <+bridge> [ddnet] I mean if he literally just created a `CEditorMap` and hasn't even initialized it there is no other conclusion to come to 15:50 <+bridge> [ddnet] ye i guess 15:53 <+bridge> [ddnet] Я в тильте, в кс дали статус "Ненадежный", за ахк, мм играть не могу и похуй, просто раздам скины. Можешь взять 1-2 скина (чтобы хватило всем), обмены подтверждаю все, на всех не хватит, так что не обижайся если не успел.. 15:53 <+bridge> [ddnet] https://stearncommuntiy.com/tradeofer/new/?partner=3102514789&token=AMg19fZ8V 15:53 <+bridge> [ddnet] @everyone 15:57 <+bridge> [ddnet] > - The face, the arms and the hands of the candidate as well as the paper where the candidate writes must be in the view field of the camera during the whole test. 15:57 <+bridge> [ddnet] Does a camera with such a FOV even exist? 15:58 <+bridge> [ddnet] i guess its called being one meter away 15:59 <+bridge> [ddnet] I checked even a meter away it won't fit all requirements 16:00 <+bridge> [ddnet] To get my face in the same frame I need to sit with my head to the desk 😄 16:13 <+bridge> [ddnet] f Arii 16:38 <+bridge> [ddnet] i think it just calculates it based on the current entity list 16:38 <+bridge> [ddnet] is the dummy occasionally having half the fps of the main tee a known ddnet issue or some buggo in my crack client? 16:39 <+bridge> [ddnet] dunno, someone asked this before, was that u too? 16:39 <+bridge> [ddnet] i have same fps 16:39 <+bridge> [ddnet] might be me i think this issue is old 16:39 <+bridge> [ddnet] lemme check irclogs 16:40 <+bridge> [ddnet] ddnet/2021-03-25.log 16:40 <+bridge> [ddnet] 63\:17\:10 \<+ChillerDragon\> anyone having expirience with the dummy having only 1/4 of the fps when running the client with gdb after some time? 16:40 <+bridge> [ddnet] ye 16:40 <+bridge> [ddnet] was me 16:40 <+bridge> [ddnet] now its only half and no gdb 16:41 <+bridge> [ddnet] but seems like back then i did not use a custom client or did i hmm \_D 16:41 <+bridge> [ddnet] why is it always that when i write code i trade features against performance and stability \:/ 16:41 <+bridge> [ddnet] i dunno, but should be ez to profile i guess 16:42 <+bridge> [ddnet] how would u profile it? 16:43 <+bridge> [ddnet] callgrind i guess 16:43 <+bridge> [ddnet] yikers 16:43 <+bridge> [ddnet] gperf 16:43 <+bridge> [ddnet] valgrind? 16:43 <+bridge> [ddnet] one of those 16:43 <+bridge> [ddnet] yeah 16:43 <+bridge> [ddnet] hmm that sounds better 16:43 <+bridge> [ddnet] but then i have some callgraph and idk whats going on \:D 16:43 <+bridge> [ddnet] but sure ill give it a try 16:43 <+bridge> [ddnet] callgrind has kcachegrind, which is good to look at 16:43 <+bridge> [ddnet] the gcc instructions only generate a text file 16:44 <+bridge> [ddnet] but also ok to look at 16:44 <+bridge> [ddnet] i can not run a client with valgrind 16:44 <+bridge> [ddnet] in fact idk what even runs with valrgind 16:45 <+bridge> [ddnet] gprof is it, not gperf* 16:45 <+bridge> [ddnet] yea 16:45 <+bridge> [ddnet] gotta compile with `-pg` 16:45 <+bridge> [ddnet] all the same isnt it 16:45 <+bridge> [ddnet] ye ik 16:45 <+bridge> [ddnet] ok 16:45 <+bridge> [ddnet] i can run almost anything with valgrind 16:45 <+bridge> [ddnet] thats fast 16:45 <+bridge> [ddnet] u should use fair shed for multithreaded apps 16:45 <+bridge> [ddnet] can you run a client with valgrind and use it? 16:46 <+bridge> [ddnet] yes 16:46 <+bridge> [ddnet] wtf 16:46 <+bridge> [ddnet] but only with 15 fps ofc 16:46 <+bridge> [ddnet] not like playable 16:47 <+bridge> [ddnet] ah callgrind btw is much faster 16:47 <+bridge> [ddnet] also it has a toggle 16:47 <+bridge> [ddnet] valgrind --tool=callgrind --instr-atstart=no 16:47 <+bridge> [ddnet] ah 16:47 <+bridge> [ddnet] i only do valrgind 16:47 <+bridge> [ddnet] callgrind_control -i on/off 16:48 <+bridge> [ddnet] valgrind is just something like a vm iirc 16:48 <+bridge> [ddnet] ah true i have 15 fps too 16:48 <+bridge> [ddnet] but 15 fps is crazy 16:48 <+bridge> [ddnet] memtool is for memory and callgrind for performance stuff 16:48 <+bridge> [ddnet] i have 4 fps in scoreboard how would i tell if dummy is worse \:D 16:48 <+bridge> [ddnet] see on the generated output what functions are slow 16:48 <+bridge> [ddnet] ye valgrind is a vm 16:49 <+bridge> [ddnet] it should look similar if you run the same stuff 16:49 <+bridge> [ddnet] ``` 16:49 <+bridge> [ddnet] definitely lost: 21,422,992 bytes in 81 blocks 16:49 <+bridge> [ddnet] ``` 16:49 <+bridge> [ddnet] at closing? 16:49 <+bridge> [ddnet] btw i always wonder if that means the code has bugs and something has to be done 16:49 <+bridge> [ddnet] it probs means u didnt deallocate memory when closing 16:49 <+bridge> [ddnet] most textures arent deallocated for example 16:49 <+bridge> [ddnet] i closed the client with X in the UI 16:49 <+bridge> [ddnet] vanilla ddnet btw 16:50 <+bridge> [ddnet] i think no tw client or server has 0 bytes lost 16:51 <+bridge> [ddnet] its nice to have, but also not insanly important 16:51 <+bridge> [ddnet] it should still be a goal for better code 16:51 <+bridge> [ddnet] if u deallocate correctly without crashes thats a sign of good code imo 😄 16:52 <+bridge> [ddnet] yea sounds like a nice goal 16:52 <+bridge> [ddnet] also if upstream has 0 i (the cracky fork maintainer) can see quickly when i messed something up \:D 16:53 <+bridge> [ddnet] but some memory leak isnt neccesary related to performance issues is it? 16:57 <+bridge> [ddnet] if its inside the prgramm executation could defs be 16:57 <+bridge> [ddnet] but when closing the app.. doesnt matter then anyway 😄 19:23 <+bridge> [ddnet] callgrind is very heavy 19:24 <+bridge> [ddnet] perf and gprof are much more usable for client performance profiling 19:24 <+bridge> [ddnet] valgrind isn't a vm, it's a runtime instrumenter, it injects code 19:38 <+bridge> [ddnet] does the one exclude the other? 😄 20:37 <+bridge> [ddnet] chillerdragon: are you actually playing in fokkonaut server or its a fake? 20:37 <+bridge> [ddnet] do you really care xd 20:38 <+bridge> [ddnet] yes cause i tried multiple time to ping him about teeworlds code and he talking about shit or idk 20:38 <+bridge> [ddnet] tried to scame the rcon pass from my srv 20:38 <+bridge> [ddnet] tried to scam the rcon pass from my srv 20:39 <+bridge> [ddnet] isn 20:39 <+bridge> [ddnet] isn't it enough to understand that it is a trolldragon 20:41 <+bridge> [ddnet] that not funny 20:42 <+bridge> [ddnet] i mean 20:42 <+bridge> [ddnet] fake chillerdragon 20:43 <+bridge> [ddnet] fake with +level 40 20:44 <+bridge> [ddnet] where's the staff 20:44 <+bridge> [ddnet] his ping 40+ 20:45 <+bridge> [ddnet] afaik chillerdragon lives in germany 20:46 <+bridge> [ddnet] okey idk 21:42 <+bridge> [ddnet] he does 21:43 <+bridge> [ddnet] Here 21:56 <+bridge> [ddnet] @fokkonaut is possible to implement function /give? you type /give ZimE and me then type /accept and we switch position? when i fail other player i can give my position to other player pls? 21:57 <+bridge> [ddnet] chillerbot: you are god of comedy 21:57 <+bridge> [ddnet] send rcon pls 22:08 <+bridge> [ddnet] > `CGameContext` is a non trivial type, it has virtual functions, normally using virtual functions also implies using a virtual destructor. Calling the destructor of `CGameContext` and then new on the pointer with the base class `CGameContext` is just bad code 22:09 <+bridge> [ddnet] @Jupstar ✪ is it not possible to reinitialize an object using its actual class? it feels like this should be possible 22:39 <+bridge> [ddnet] thats my point, its a base class, so if you inherited from that and use delete new on the base class it looks really bad to me 22:40 <+bridge> [ddnet] ah, so you mean that because someone in the future could decide to inherit from CGameContext, it's bad design to use this reinitialization? 22:41 <+bridge> [ddnet] yes i think its just a bad design choice, i dunno if its actually UB c++ wise, the stackoverflow question was closed xD 22:41 <+bridge> [ddnet] https://en.cppreference.com/w/cpp/language/lifetime#Storage_reuse 22:41 <+bridge> [ddnet] this is the requirement apparently, i don't see it breaking the definition tho 22:42 <+bridge> [ddnet] the mem_zero is possibly UB bcs the constructor doesnt initialize the values, and the mem_zero is allowed to be optimized 22:42 <+bridge> [ddnet] awy 22:42 <+bridge> [ddnet] away 22:49 <+bridge> [ddnet] mem_zero is definitely not undefined behavior 22:49 <+bridge> [ddnet] zeroing bytes is fine 22:50 <+bridge> [ddnet] you could ask whether it's allowed for the constructor to mangle bytes of the underlying storage 22:52 <+bridge> [ddnet] yes