00:00 <+bridge> [ddnet] @deen release on tournament day? 00:00 <+bridge> [ddnet] :justatest: 00:00 <+bridge> [ddnet] Yeah 00:04 <+bridge> [ddnet] what could go wrong? 00:04 <+bridge> [ddnet] :monkalaugh: 00:18 <+bridge> [ddnet] @deen u coulkd also just wait after the tournament 00:18 <+bridge> [ddnet] but idc 00:18 <+bridge> [ddnet] @heinrich5991 @Learath2 i recorded a demo with 10.6.2 client and im trying to send it to people to view with new client 00:18 <+bridge> [ddnet] and noone can open it.. 00:18 <+bridge> [ddnet] I feel like nothing more was reported since last RC, a few days passed 00:18 <+bridge> [ddnet] they keep getting map errors like map differes from server 00:18 <+bridge> [ddnet] and deleting from downloadedmaps changes the error to a different error but doesnt fix 00:18 <+bridge> [ddnet] and afaik downloading the version i used doesnt work either 00:18 <+bridge> [ddnet] what can i do to show them? 00:19 <+bridge> [ddnet] use new client 00:19 <+bridge> [ddnet] ... 00:19 <+bridge> [ddnet] it doesnt open 00:19 <+bridge> [ddnet] i mean u the recorder xd 00:19 <+bridge> [ddnet] yes but i already recoded it 00:19 <+bridge> [ddnet] i cant re-record 00:19 <+bridge> [ddnet] @deen ok, then lets hope it works xd 00:19 <+bridge> [ddnet] idk if theyll ever come back 00:20 <+bridge> [ddnet] mhh ok 00:20 <+bridge> [ddnet] so 00:20 <+bridge> [ddnet] how can i show them the demo 00:20 <+bridge> [ddnet] short of just using custom screen recorder 00:20 <+bridge> [ddnet] stop using old veresion 00:20 <+bridge> [ddnet] fix the demo I guess 00:20 <+bridge> [ddnet] how 00:21 <+bridge> [ddnet] acqwerty no u 00:21 <+bridge> [ddnet] it doesnt matter what version i use, demo is already created 00:21 <+bridge> [ddnet] then you should have switched before recording 00:21 <+bridge> [ddnet] but i didnt 00:21 <+bridge> [ddnet] so thats why i aske for help 00:21 <+bridge> [ddnet] too bad 00:21 <+bridge> [ddnet] u 00:21 <+bridge> [ddnet] fix the demo binary xd 00:21 <+bridge> [ddnet] how 00:21 <+bridge> [ddnet] hex editor 00:21 <+bridge> [ddnet] ye but what do i edit 00:21 <+bridge> [ddnet] hm 00:21 <+bridge> [ddnet] check what crc/sha256 is included 00:22 <+bridge> [ddnet] try to find the correct map 00:23 <+bridge> [ddnet] demo i want 00:23 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/764614014838898710/Screen_Shot_2020-10-10_at_5.22.17_PM.png 00:23 <+bridge> [ddnet] random demo recorded with new vrs 00:23 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/764614042664042496/Screen_Shot_2020-10-10_at_5.22.56_PM.png 00:23 <+bridge> [ddnet] er 00:23 <+bridge> [ddnet] dk why its different actually hmm 00:23 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/764614228006404116/Screen_Shot_2020-10-10_at_5.23.52_PM.png 00:26 <+bridge> [ddnet] if they put the version of fng.map that was on server 2 weeks ago in their downloadedmaps then it will work? xd 00:27 <+bridge> [ddnet] I think it'll work if they put that map in their downloadedmaps 00:27 <+bridge> [ddnet] @Skeith 00:30 <+bridge> [ddnet] @noby you'll have to provide them the map 00:30 <+bridge> [ddnet] ok ty ill ask if someone has it 00:30 <+bridge> [ddnet] is there no way to extract map from demo? 00:31 <+bridge> [ddnet] ive seen it done before afaik 00:31 <+bridge> [ddnet] well, I think your demo has the wrong map 00:31 <+bridge> [ddnet] causing this behavior 00:31 <+bridge> [ddnet] are you currently using an up-to-date client? 00:33 <+bridge> [ddnet] no 00:33 <+bridge> [ddnet] i recorded with 10.6 client 00:33 <+bridge> [ddnet] im trying to show it to ppl 00:34 <+bridge> [ddnet] yes, I understand, but maybe you should start using an up-to-date client ^^ 00:34 <+bridge> [ddnet] (for the future) 00:34 <+bridge> [ddnet] xd 00:34 <+bridge> [ddnet] f3 00:34 <+bridge> [ddnet] but 00:34 <+bridge> [ddnet] the demo is of someone that rarely joins server 00:34 <+bridge> [ddnet] I realize 00:34 <+bridge> [ddnet] ok 00:34 <+bridge> [ddnet] I thought I helped you fix it 00:35 <+bridge> [ddnet] i will look in to finding that exact map file 00:35 <+bridge> [ddnet] ty 👍 00:38 <+bridge> [ddnet] The "Start server" button in main menu is supposed to start server from the directory of client (Steam ver) and look for myServerconfig.bat in same directory, right? 00:40 <+bridge> [ddnet] and @heinrich5991 do u wanna go thru the process of bisecting again sometime in the nearish future to see why old client still gives me better/more stable fps 00:41 <+bridge> [ddnet] my `myServerconfig.bat` points to `exec "server/config.bat"` and it doesn't get executed no matter where I put the first filter 00:41 <+bridge> [ddnet] we did find the most significant cause and u fixed it 00:41 <+bridge> [ddnet] the first file* 00:41 <+bridge> [ddnet] but still it is lower 00:47 <+bridge> [ddnet] we can try again 00:48 <+bridge> [ddnet] make sure to disable hidpi on all versions while testing 00:49 <+bridge> [ddnet] ya highdpi was the most signifiant problem from last time 00:49 <+bridge> [ddnet] yea, but only disabled on latest 00:49 <+bridge> [ddnet] so you need to manually disable it everywhere 00:49 <+bridge> [ddnet] to get comparable results 00:49 <+bridge> [ddnet] i will try to do this testing tomorrow, been awake since yday morning so abit tired now 00:50 <+bridge> [ddnet] ill try to compare based on cpu usage or sth 00:56 <+bridge> [ddnet] Didn't u say with refresh rate 0 it's when faster 00:57 <+bridge> [ddnet] Snowby 00:57 <+bridge> [ddnet] but thats bad bcause 00:57 <+bridge> [ddnet] it can get up to 2500+ fps with uncapped rate on both 00:57 <+bridge> [ddnet] but it runs the computer very hard and fans spin at max the whle time 00:58 <+bridge> [ddnet] i remembr u suggested switching the rates 00:58 <+bridge> [ddnet] But I already told u old client fps is different 00:58 <+bridge> [ddnet] and i think it did help 00:58 <+bridge> [ddnet] yea 00:58 <+bridge> [ddnet] the way it estimates fps is different 00:58 <+bridge> [ddnet] but the way it makes fans spin seems more intensive on new client 00:58 <+bridge> [ddnet] Also with cl refresh rate u won't get more fps anymore 00:59 <+bridge> [ddnet] In old client u could get 600fps with 480 cl refresh 00:59 <+bridge> [ddnet] stable fps above 400-500 is fine, what i remember seeing is that it was less stable and appeared to use more cpu but i havent done a controlled test to back it up 01:00 <+bridge> [ddnet] Hey guys :D 01:00 <+bridge> [ddnet] Can anyone help me? 01:00 <+bridge> [ddnet] Just ask xd 01:00 <+bridge> [ddnet] I patched the latest ddnet client and my antiping bar disappeared 😄 01:01 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/764623561926377472/Nevtelen123.png 01:01 <+bridge> [ddnet] intentional removal 01:01 <+bridge> [ddnet] you can access it via the console @Protokol T'nP 01:03 <+bridge> [ddnet] why would you need the antiping bar 01:03 <+bridge> [ddnet] well fixing gfx_refresh_rate helps the fan spin issue a bit but it still does spin 01:04 <+bridge> [ddnet] @plsplsplslol Its easier for me there 😄 01:05 <+bridge> [ddnet] @Protokol T'nP rather, what do you use it for? 01:05 <+bridge> [ddnet] @noby I'd say it was https://github.com/ddnet/ddnet/pull/1055 01:07 <+bridge> [ddnet] That made the refresh rates more useful 01:07 <+bridge> [ddnet] During the time I fixed some stuff tho 01:08 <+bridge> [ddnet] does it make the fps counter more accurate in realtime 01:08 <+bridge> [ddnet] idk if it works like this but it might be interesting to have an option to display "old" fps count at least for debugging 01:09 <+bridge> [ddnet] wouldn't help with bisecting now 01:09 <+bridge> [ddnet] the fixes for wait time make sense and i dont see why anything in that commit by itself would cause higher cpu load but maybe im missing smoething 01:10 <+bridge> [ddnet] We had a different fps counter once but deen didn't like it bcs it litteraly updated every frame 01:11 <+bridge> [ddnet] the one on newer ddnet seems to fluctuate alot between every frame 01:11 <+bridge> [ddnet] i remember mentioning it and having it explained as the new one being more accurate 01:11 <+bridge> [ddnet] Not higher CPU load, but probs less frames bcs CPU time is more accurate 01:11 <+bridge> [ddnet] i mean i dont notice the difference between 400 and 600 fps tbh but i do notice when the fans start spinning when they otherwise wouldnt have 01:12 <+bridge> [ddnet] before they fixed highdpi it was this same problem but 5x worse 01:12 <+bridge> [ddnet] extreme fan spinning always 01:12 <+bridge> [ddnet] an fps or frametime graph would probably be nice to have 01:12 <+bridge> [ddnet] now its just moderate 01:12 <+bridge> [ddnet] We have 01:13 <+bridge> [ddnet] @Learath2 I think that already exists xd 01:13 <+bridge> [ddnet] Ctrl shift d and then g 01:13 <+bridge> [ddnet] old ddnet the fps *looks* more stable in the counter 01:13 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/764626803963985920/Screen_Shot_2020-10-10_at_6.13.12_PM.png 01:14 <+bridge> [ddnet] 15.0.4 01:14 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/764626830933491712/Screen_Shot_2020-10-10_at_6.13.20_PM.png 01:14 <+bridge> [ddnet] different servers but same map 01:15 <+bridge> [ddnet] To me new looks more stable 01:16 <+bridge> [ddnet] but lower fps and it spisn the fans 01:16 <+bridge> [ddnet] If the second one is the newer one it does look muuuch more stable 01:16 <+bridge> [ddnet] Then lower your stupid fans xdd 01:17 <+bridge> [ddnet] But pls use different fps measure anyway 01:17 <+bridge> [ddnet] Steam fps or smth 01:17 <+bridge> [ddnet] on mac you don't get to control much about your fans 01:17 <+bridge> [ddnet] The vanilla one was bit wrong 01:18 <+bridge> [ddnet] if i lower the fans it will just kill the cpu so no ty 01:18 <+bridge> [ddnet] and its not rly about fps i think 01:18 <+bridge> [ddnet] Under 70c is safe xd 01:18 <+bridge> [ddnet] I don't get why you'd get more cpu usage though 01:18 <+bridge> [ddnet] thats what the bisect would be for i guess 01:18 <+bridge> [ddnet] The newer renderer does more on the gpu, the cpu should be more relaxed 01:19 <+bridge> [ddnet] i have a laptop with better cpu and barely any gpu 01:19 <+bridge> [ddnet] I first want to see the real fps from outside fps program 01:19 <+bridge> [ddnet] how do i use an external program to monitor fps 01:19 <+bridge> [ddnet] Steam e.g. had an overlay 01:20 <+bridge> [ddnet] Dunno under macos tbh 01:20 <+bridge> [ddnet] There will be some program xd 05:58 <+bridge> [ddnet] <Дядя Женя> louis said on youtube that somw servers such as KoG fixed weak hooks and disabled them. Is it work normal? If so, will ever ddnet fix it? 05:58 <+bridge> [ddnet] <Дядя Женя> louis said on youtube that some servers such as KoG fixed weak hooks and disabled them. Is it work normal? If so, will ever ddnet fix it? 05:58 <+bridge> [ddnet] <Дядя Женя> louis said on youtube that some servers such as KoG fixed weak hooks and disabled them. Is it works normal? If so, will ever ddnet fix it? 05:59 <+bridge> [ddnet] unlikely that ddnet will ever fix them 06:05 <+bridge> [ddnet] <Дядя Женя> why 06:07 <+bridge> [ddnet] <Дядя Женя> if other's solutions are fine, then I can't see any reason of not doing that. Before I thought that weaks are impossible to fix because entire game physics will act differently when 2 tees hooking each other the same time 06:07 <+bridge> [ddnet] <Дядя Женя> If it's not the case, why then 06:08 <+bridge> [ddnet] <Дядя Женя> there are only few weak-only-possible maps/parts 06:09 <+bridge> [ddnet] simply put, because we don't know in which maps weak/strong is required 06:09 <+bridge> [ddnet] <Дядя Женя> which could be deleted or reworked, not a big deal for such a massive bug fix 06:10 <+bridge> [ddnet] <Дядя Женя> > simply put, because we don't know in which maps weak/strong is required 06:10 <+bridge> [ddnet] <Дядя Женя> @heinrich5991 everything except 2-3 maps is strong possible 06:11 <+bridge> [ddnet] I see no clear path to check the ~1900 maps for weak required parts 06:11 <+bridge> [ddnet] <Дядя Женя> Player's reports? 06:11 <+bridge> [ddnet] that would work if they knew that it's due to missing weak hook 06:12 <+bridge> [ddnet] <Дядя Женя> I guarantee there is only one or zero novice-moderate map requiring weak 06:12 <+bridge> [ddnet] next problem: how to fix weak/strong difference. we want to give everyone strong. it's not really easy to describe how the fix would look like 06:12 <+bridge> [ddnet] <Дядя Женя> Can't remember if it was moderate or DDMax 06:13 <+bridge> [ddnet] do you know where weak/strong comes from? 06:13 <+bridge> [ddnet] <Дядя Женя> what do you mean exactly? 06:13 <+bridge> [ddnet] well, it's not just like a simple bug, it's an architectural problem 06:14 <+bridge> [ddnet] it comes from the fact that the tees are processed one after another 06:14 <+bridge> [ddnet] but in the end, you have to process them in some order 06:14 <+bridge> [ddnet] so what do you do? 06:14 <+bridge> [ddnet] <Дядя Женя> Yes, that's why I wasn't even talking about that 06:15 <+bridge> [ddnet] <Дядя Женя> Before now, 'cause right now I heats from louis that some servers, including KoG fixed it 06:15 <+bridge> [ddnet] I think they made hook symmetrical for others 06:16 <+bridge> [ddnet] there are other consequences of weak/strong, e.g. tee collision 06:16 <+bridge> [ddnet] <Дядя Женя> > it comes from the fact that the tees are processed one after another 06:16 <+bridge> [ddnet] <Дядя Женя> @heinrich5991 that shouldn't cause such problem if math is calculated the right way I guess. Anyway I don't know exactly what is causing the weak hook bug, so can't tell for sure 06:17 <+bridge> [ddnet] <Дядя Женя> Well... Why btw 06:17 <+bridge> [ddnet] <Дядя Женя> So you spawn last, code processing your physics last 06:17 <+bridge> [ddnet] <Дядя Женя> You hook someone 06:18 <+bridge> [ddnet] U would need a second core tick 06:18 <+bridge> [ddnet] <Дядя Женя> Why do you hook weaker then others? 0_o 06:19 <+bridge> [ddnet] <Дядя Женя> Why is you hook weaker then others at this point? 0_o 06:19 <+bridge> [ddnet] And fix code with tile collision 06:19 <+bridge> [ddnet] cause friction for you is applied before/after the hook velocity is applied 06:20 <+bridge> [ddnet] <Дядя Женя> Yeah, so it's calling methods in a wrong order 06:21 <+bridge> [ddnet] <Дядя Женя> Seems like "processing tee" includes calculations for his physics and physics of someone he's hooking 06:21 <+bridge> [ddnet] https://github.com/Jupeyy/ddnet/tree/weak_fix_correctly 06:21 <+bridge> [ddnet] 06:21 <+bridge> [ddnet] I think this breaks stuff like stoppers tho 06:24 <+bridge> [ddnet] does that do something about differences in tee collision @Jupstar ✪? 06:25 <+bridge> [ddnet] Is tee collision in the velocity code or move code 06:26 <+bridge> [ddnet] Well would need to look but I guess that changes collision too 06:30 <+bridge> [ddnet] pls no remove weak i want to reverse speedfly 06:32 <+bridge> [ddnet] The only chance would be to add a server command and alter all current maps. Bcs too hard to say when weak strong is good or worse 06:59 <+bridge> [ddnet] We had multiple long conversations about it, the most likely change would be to make a server command similar to /spec that allows you to swap between the two. It would make most parties happy, but it would make most, if not all top5 times obsolete. 07:00 <+bridge> [ddnet] In my mod I have a toggle for weak hook as config var 07:44 <@heinrich5991> ChillerDragon: ChillerDragonTL: I want your downloadedmaps folder :) I heard you play some 0.7 ^^ 08:22 <+bridge> [ddnet] @noby this is the map you're looking for btw: https://heinrich5991.de/teeworlds/maps/maps/fng_327ac7993080909a460921768ae8816268cd31993ff8f47e178d748380e5245e.map 09:56 <+ChillerDragon> @heinrich5991 sadly after my active 0.7 time my harddrive died on me. But it was just standard maps mostly and gores anways. The gores maps are mostly resaves of kog maps and would probably pollute your db but can be found here if i did not sent it already to u https://github.com/trafilaw/Maps 09:57 <+ChillerDragon> you can also try contacting @Dezarion he is somehow in half charge of the new gores ZeroSeven servers they also have selfmade maps 10:17 <+bridge> [ddnet] someone with linux can check if website button on the home screen opens instant, when i press it 2-3 times it completly destroys my steam xd 10:18 <+bridge> [ddnet] directory buttons work fine until i once opened a http link 10:19 <+bridge> [ddnet] (might be some check by steam or just the steam internal webrenderer dieing) 10:23 <+bridge> [ddnet] @Jupstar ✪ oh, you're right... 10:23 <+bridge> [ddnet] I never tried in steam client 10:23 <+bridge> [ddnet] but i think thats a linux only steam bug 10:23 <+bridge> [ddnet] it starts hanging, takes a few seconds and at some point opens in my normal browser 10:23 <+bridge> [ddnet] hopefully 10:23 <+bridge> [ddnet] yeah 10:23 <+bridge> [ddnet] and my steam wasnt usable afterwards 10:24 <+bridge> [ddnet] ddnet is a zombie process and nothing works xD 10:24 <+bridge> [ddnet] oh great 10:24 <+bridge> [ddnet] but luckely not on windows 😄 10:24 <+bridge> [ddnet] How can such simple things fail? 😦 10:24 <+bridge> [ddnet] well i have some rendering bugs in steam here and there 10:25 <+bridge> [ddnet] maybe its just crashing something internally 10:28 <+bridge> [ddnet] add "game.png database" 10:28 <+bridge> [ddnet] add "game.png database" like "Skin Database" 10:28 <+bridge> [ddnet] generally a nice idea, but i doubt we'd make it with a downloader 10:29 <+bridge> [ddnet] so just a link to the website 10:40 <+ChillerDragon> anyone here ever tried to improve shell history? Besides the classical it deletes the item you want thing I never find stuff that is a bit older probably due to it being done it a different session or idk. History is useless other than pressinf up arrow once mostly. 10:44 <+bridge> [ddnet] :bluekitty: 10:46 <+bridge> [ddnet] Just give link to https://github.com/TeeworldsDB/gameskins & then maybe players would spam ChillerDragon with their ones 10:46 <+bridge> [ddnet] Just give link to https://github.com/TeeworldsDB/gameskins & then maybe players would spam ChillerDragon with their own ones 10:46 <+bridge> [ddnet] github has no png preview 10:46 <+bridge> [ddnet] else i'd have no problem 10:47 <+bridge> [ddnet] Was there always a white screen on startup, or is it due to the background theme update? It's killer on the eyes 10:47 <+bridge> [ddnet] then what am I looking at 10:47 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/764771056405184522/unknown.png 10:47 <+ChillerDragon> it jas one 10:47 <+bridge> [ddnet] @Skeith can u show screenshot 10:47 <+ChillerDragon> even svg 10:47 <+ChillerDragon> and pdf 10:47 <+bridge> [ddnet] yeah when clickingt xD 10:47 <+bridge> [ddnet] i mean when browsing ofc 10:47 <+ChillerDragon> yea its not instagram 10:47 <+bridge> [ddnet] I see other problem with that DB though 10:47 <+bridge> [ddnet] It's just a pure white screen when I launch the game each time, before it says loading ddnet client 10:47 <+ChillerDragon> what r u even talking about 10:48 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/764771301767905280/unknown.png 10:48 <+bridge> [ddnet] @Skeith u on steam or updater? 10:48 <+bridge> [ddnet] steam version, but not launched via steam 10:48 <+bridge> [ddnet] sounds really weird 10:49 <+bridge> [ddnet] can u start in steam once, just to check 10:49 <+bridge> [ddnet] I have it too 10:49 <+bridge> [ddnet] Not really useful to printscreen it, as you can see lol 10:49 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/764771647445663744/unknown.png 10:49 <+bridge> [ddnet] oh 10:49 <+bridge> [ddnet] right before main menu background kicks in 10:49 <+bridge> [ddnet] Yea, I launched via steam just now, same thing 10:49 <+bridge> [ddnet] y 10:49 <+bridge> [ddnet] ah just very short? 10:50 <+bridge> [ddnet] yea, right after that loading bar with actual bg shows up 10:50 <+bridge> [ddnet] Yea, for like a second or less, it's pure white, so if it can be fixed, would be great 10:50 <+bridge> [ddnet] just make it pure black to don't kill eyes at nights xd 10:51 <+ChillerDragon> what is between "big" and "small" is it "middle" or "medium" ? 10:51 <+bridge> [ddnet] well need to reproduce xd 10:51 <+bridge> [ddnet] medium 10:51 <+ChillerDragon> ty 10:51 <+bridge> [ddnet] medium, yea 10:51 <+bridge> [ddnet] Large, Medium, Small 10:51 <+ChillerDragon> yea 10:52 <+ChillerDragon> but i went with big already xd i like the word 10:52 <+bridge> [ddnet] fair enough 10:52 <+bridge> [ddnet] no white screen for me 😦 10:53 <+bridge> [ddnet] I'm on windows, if that helps at all 10:53 <+bridge> [ddnet] yeah guessed so, i'll try wine, but just to be clear, inside the loading bar the theme is shown, but after its white and then its shown again? 10:53 <+bridge> [ddnet] Pure white screen before the loading bar screen and theme even appear 10:54 <+bridge> [ddnet] ah so at the beginning of everything 10:54 <+bridge> [ddnet] yes 10:54 <+bridge> [ddnet] alright 10:54 <+bridge> [ddnet] probs bcs the loading of the map takes a bit, we could just clear the color to black i guess 😄 10:54 <+bridge> [ddnet] That would be great 10:55 <+bridge> [ddnet] what did u change in 15.1.1 @deen ? 11:08 <+bridge> [ddnet] @Jupstar ✪ https://github.com/ddnet/ddnet/compare/15.1...15.1.1 11:09 <+bridge> [ddnet] I made Australia appear in server list again 11:10 <+bridge> [ddnet] ah but the update is already out isnt it 11:10 <+bridge> [ddnet] yes 11:11 <+bridge> [ddnet] @Skeith or @Soreu 11:11 <+bridge> [ddnet] can you test after the build finished: 11:11 <+bridge> [ddnet] https://github.com/ddnet/ddnet/runs/1237764802 11:11 <+bridge> [ddnet] 11:11 <+bridge> [ddnet] (you need a github account) 11:11 <+bridge> [ddnet] sure 11:14 <+bridge> [ddnet] updated link 11:14 <+bridge> [ddnet] https://github.com/ddnet/ddnet/runs/1237771548 11:14 <+bridge> [ddnet] i'll just clear the frame before sound init or anything else 11:14 <+bridge> [ddnet] @Skeith or @Soreu 11:14 <+bridge> [ddnet] can you test after the build finished: 11:14 <+bridge> [ddnet] https://github.com/ddnet/ddnet/runs/1237771548 11:14 <+bridge> [ddnet] 11:14 <+bridge> [ddnet] (you need a github account) 11:15 <+bridge> [ddnet] sure 11:22 <+bridge> [ddnet] can tune zone enter pls work in spec? 11:24 <+bridge> [ddnet] @Jupstar ✪ Seems good, black screen now 11:24 <+bridge> [ddnet] alright thanks for testing 11:32 <+bridge> [ddnet] yup, that's better :heartw: 12:10 <+bridge> [ddnet] can we upgrade to c11 or was there something wrong? 12:11 <+bridge> [ddnet] before it was due to msvc 12:11 <+bridge> [ddnet] but now they upgraded iirc 12:12 <+bridge> [ddnet] then we don't support old msvc versions anymore? 12:12 <+bridge> [ddnet] is there a reason to do so? 12:12 <+bridge> [ddnet] someone might be running an old version, dunno 12:12 <+bridge> [ddnet] that someone can upgrade then 12:13 <+bridge> [ddnet] sounds good 12:13 <+bridge> [ddnet] isnt graphics_threaded c++ 12:13 <+bridge> [ddnet] already 12:13 <+bridge> [ddnet] i also dont know if its allowed to just include c11 includes and will work.. under gcc and clang it works, but dunno how MSVC reacts 12:13 <+bridge> [ddnet] yes but not c++17 12:14 <+bridge> [ddnet] sadly std c++ waited too long with aligned allocations 😄 12:15 <+bridge> [ddnet] :justatest: 12:15 <+bridge> [ddnet] so thats how its done 12:15 <+bridge> [ddnet] i saw smth like that on stackoverflow 12:16 <+bridge> [ddnet] `D:\a\ddnet\ddnet\src\engine\client\graphics_threaded.h(26,31): error C3861: 'aligned_alloc': identifier not found (compiling source file D:\a\ddnet\ddnet\src\engine\client\backend_sdl.cpp) [D:\a\ddnet\ddnet\debug\DDNet.vcxproj]` 12:16 <+bridge> [ddnet] thats the problem, we need c11 12:18 <+bridge> [ddnet] u can enable it with /std:c11 12:18 <+bridge> [ddnet] About allocation, I remember the trick of just allocating more and aligning yourself 😄 12:18 <+bridge> [ddnet] but use /std:c17 directly 12:20 <+bridge> [ddnet] mhh, would probs work, but we could also just use c11 xD 12:21 <+bridge> [ddnet] c++11 and c11, sounds good 😄 12:21 <+bridge> [ddnet] c89 best 12:21 <+bridge> [ddnet] other is bloat 12:21 <+bridge> [ddnet] :monkalaugh: 12:21 <+bridge> [ddnet] well that will also fix the stupid c98 warnings 12:21 <+bridge> [ddnet] for printf and stuff 12:21 <+bridge> [ddnet] (under msvc ming) 12:21 <+bridge> [ddnet] (under msvc mingw) 12:22 <+bridge> [ddnet] (under msvc mingw MAYBE xd) 12:22 <+bridge> [ddnet] nice mingw already doesnt compile xd 12:23 <+bridge> [ddnet] ``` 12:23 <+bridge> [ddnet] | m_pData = (unsigned char *)aligned_alloc(alignof(std::max_align_t), m_Size); 12:23 <+bridge> [ddnet] | ^~~~~~~~~~~~~ 12:23 <+bridge> [ddnet] | _aligned_malloc 12:23 <+bridge> [ddnet] ``` 12:23 <+bridge> [ddnet] 12:23 <+bridge> [ddnet] or better... its trolling 12:24 <+bridge> [ddnet] and windows also still fails... thats annoying 12:25 <+bridge> [ddnet] guess a #define for windows will do the trick, even if thats already annoying 12:25 <+bridge> [ddnet] oh macos also failing 12:25 <+bridge> [ddnet] well maybe i'm just too stupid for the cmakelist 12:26 <+bridge> [ddnet] what did u do to cmake 12:27 <+bridge> [ddnet] or i need to put it into acutal c code 12:27 <+bridge> [ddnet] set_property(TARGET tgt PROPERTY C_STANDARD 11) 12:27 <+bridge> [ddnet] just added c11 as requirement, but as gnu11 for macos appearntly, but probs doesnt matter 12:35 <+bridge> [ddnet] ```note: include ‘’ or provide a declaration of ‘aligned_alloc’ 12:35 <+bridge> [ddnet] 61 | #include 12:35 <+bridge> [ddnet] +++ |+#include 12:35 <+bridge> [ddnet] 62 | #include 12:35 <+bridge> [ddnet] ``` 12:35 <+bridge> [ddnet] mingw top troll xd 12:41 <+bridge> [ddnet] " error: 'aligned_alloc' is only available on macOS 10.15 or newer " 12:42 <+bridge> [ddnet] c'mon xd 12:42 <+bridge> [ddnet] direct rq 12:44 <+bridge> [ddnet] ` [-Werror,-Wunguarded-availability-new]` 12:44 <+bridge> [ddnet] maybe just disable the warning? are we shipping the libs in macos statically? 12:47 <+bridge> [ddnet] looking ddnet code 12:47 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/764801398281338900/kxeexaamhes51.png 12:47 <+bridge> [ddnet] :monkalaugh: 12:48 <+bridge> [ddnet] can anyone tell me why the tiles layer in the 'Cave' group is so broken when opening it with the ddnet editor? 12:48 <+bridge> [ddnet] its fine when i open it with 0.7 teeworlds, though it doesnt have 0.7 compression 12:48 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/764801540207935518/dm3-fixed2.map 12:49 <+bridge> [ddnet] not asking for any deep investigation, only wondering if you've heard of that before and might have a lead 12:57 <+bridge> [ddnet] bcs 0.7 has different tilesets probs 12:58 <+bridge> [ddnet] ooooh 12:58 <+bridge> [ddnet] you mean its external, but a different one coz of that 12:58 <+bridge> [ddnet] yes 13:04 <+bridge> [ddnet] yea that makes sense, thanks :) 13:08 <+bridge> [ddnet] Please put an auto-update on mac 🙏 13:12 <+bridge> [ddnet] and skin fetcher doesnt work too btw 13:15 <+bridge> [ddnet] (looks like it downloaded skins on the Teeworlds/downloadskins folder, but nothing appears on the client) 13:16 <+bridge> [ddnet] (looks like it downloaded skins on the Teeworlds/downloadedskins folder, but nothing appears on the client) 13:17 <+bridge> [ddnet] it doesnt load downloadedskins at start 13:17 <+bridge> [ddnet] if u mean that 13:25 <+bridge> [ddnet] Auto update can't work on mac, not the way we have it coded right now 13:28 <+ChillerDragon> brew upgrade 13:28 <+ChillerDragon> or was it brew update idk 13:28 <+ChillerDragon> is ddnet even in brew? didnt touch a mac in a while 13:29 <+bridge> [ddnet] We could get a brew package 13:30 <+ChillerDragon> some cask or however the gui stuff was called 13:30 <+ChillerDragon> as far as i remmeber vanilla brew is cli only and no actual app files but idk 13:31 <+bridge> [ddnet] Yeah cask 13:33 <+bridge> [ddnet] <Дядя Женя> any chance of adding any kind of mark on friends in scoreboard list? 13:34 <+bridge> [ddnet] <Дядя Женя> it's too hard to understand who's your friend here when you join server with 30+ players and look at scoreboard. Need to open players tab and search there 13:35 <+bridge> [ddnet] for specview this was just added 13:35 <+bridge> [ddnet] https://user-images.githubusercontent.com/13207692/95674696-91a0f700-0bba-11eb-8291-275cc263b6c1.png 13:35 <+bridge> [ddnet] you could ask ardadem, if he wants todo this too, but i dunno who he is here 13:41 <+bridge> [ddnet] @Jupstar ✪ Q: Why do we need aligned alloc anyway? 13:41 <+bridge> [ddnet] we need memory alignment 13:41 <+bridge> [ddnet] i dont want todo it by hand 13:41 <+bridge> [ddnet] pls xdc 13:42 <+bridge> [ddnet] I mean isn't the buffer a block of memory we allocate out of? Whether the block itself is aligned shouldn't matter 13:44 <+bridge> [ddnet] yeah but the memory access should still be aligned 13:44 <+bridge> [ddnet] in x86 it doesnt matter anyway 13:44 <+bridge> [ddnet] u can do whatever u want 13:44 <+bridge> [ddnet] Actually I have another question, how do we even end up unaligned? 13:44 <+bridge> [ddnet] well e.g adding a cmd that is only 4 bytes 13:44 <+bridge> [ddnet] while we require 8 bytes 13:45 <+bridge> [ddnet] malloc is supposed to return a pointer correctly aligned for any type 13:45 <+bridge> [ddnet] says the standard? 13:45 <+bridge> [ddnet] Yeah 13:45 <+bridge> [ddnet] C99 13:45 <+bridge> [ddnet] well msvc is c98 ;D 13:47 <+bridge> [ddnet] C89 7.10.3 ``` The pointer returned if the allocation succeeds is suitably aligned so that it may be assigned to a pointer to any type of object and then used to access such an object or an array of such objects in the space allocated (until the space is explicitly freed or reallocated).``` 13:47 <+bridge> [ddnet] So C89 is fine too 13:48 <+bridge> [ddnet] I don't think we need aligned alloc anyway, `m_pData` doesn't have any alignment requirement. It's the things we allocate inside `m_pData` that needs alignment from what I understand 13:49 <+bridge> [ddnet] yeah but i have to rely on the starting address of m_pdata 13:49 <+bridge> [ddnet] so that must be aligned in any case 13:49 <+bridge> [ddnet] the rest is aligned by our impl 13:50 <+bridge> [ddnet] now its just the question, if the alignment of c and c++ is the same 13:50 <+bridge> [ddnet] the max alignment 13:50 <+bridge> [ddnet] But do you need to know that m_pData has a specific alignment? 13:50 <+bridge> [ddnet] yes 13:50 <+bridge> [ddnet] else all subsequent pointers formed out of it are unaligned too 13:54 <+bridge> [ddnet] Mh, what you do in alloc doesn't really make sense to me tbf it seems to rely on the previous allocated thing having a "good" size 13:54 <+bridge> [ddnet] yes 13:54 <+bridge> [ddnet] that is the sense of alignment xd 13:54 <+bridge> [ddnet] it always starts with 0 13:55 <+bridge> [ddnet] 0 is obviously always right 13:55 <+bridge> [ddnet] bcs the pointer is right 13:55 <+bridge> [ddnet] so always when we add smth it stays aligned 13:56 <+bridge> [ddnet] So if I Alloc something with a different alignment in the same buffer, all the future Alloc's are broken and that's fine? 13:57 <+bridge> [ddnet] well the cmds, are always of int* and data is always max_align_t 13:57 <+bridge> [ddnet] they are split buffers 13:57 <+bridge> [ddnet] Well fwiw, that makes no sense to me. I'll go have breakfast before I starve 13:57 <+bridge> [ddnet] I'd think you'd actually want to skip a couple bytes until the address has the alignment you require and return that 13:58 <+bridge> [ddnet] bon apetit 13:58 <+bridge> [ddnet] well i skip that bytes after the current alloc 13:58 <+bridge> [ddnet] so same in green xd 14:00 <+bridge> [ddnet] With one difference, you assume pdata + m_used is already correctly aligned. Which is a bad assumption imho 14:00 <+bridge> [ddnet] no it always is 14:00 <+bridge> [ddnet] m_pData must be aligned to std::max_align_t 14:00 <+bridge> [ddnet] bcs i allocate it like that 14:00 <+bridge> [ddnet] and m_Used always adds the cmd size + the missing bytes until alignment 14:01 <+bridge> [ddnet] You cant know the alignment of the next alloc a priori 14:01 <+bridge> [ddnet] i can 14:02 <+bridge> [ddnet] what exactly do u want, that we add a long double to the CMD headers? 14:02 <+bridge> [ddnet] so it wont work xD 14:02 <+bridge> [ddnet] You should remove the argument to that function as changing the alignment will not behave as anyone expects 14:02 <+bridge> [ddnet] the cmd headers only contain ints and ptrs actually 14:03 <+bridge> [ddnet] ~~cpp is too confusing for me~~ 14:04 <+bridge> [ddnet] its more about cpu architecture 14:04 <+bridge> [ddnet] I want to avoid adding more platform dependent code, while also keeping CBuffer generic. If you want it to specifically be a command buffer, just fix the alignment because that argument there is completely misleading 14:05 <+bridge> [ddnet] Its more of an AlignmentOfNextAlloc argument 14:05 <+bridge> [ddnet] "Pointers returned by allocation functions such as std::malloc are suitably aligned for any object, which means they are aligned at least as strictly as std::max_align_t." 14:05 <+bridge> [ddnet] 14:05 <+bridge> [ddnet] and also: https://godbolt.org/z/azndYn 14:05 <+bridge> [ddnet] 14:05 <+bridge> [ddnet] where's the problem? 🙂 14:05 <+bridge> [ddnet] i still dont see whats the problem 14:06 <+bridge> [ddnet] u want me to always use the max alignment? 14:06 <+bridge> [ddnet] @Comrade we allocate out of a buffer. Our allocations are what needs to be aligned, the buffer is aligned 14:06 <+bridge> [ddnet] then its suitable in any case 14:06 <+bridge> [ddnet] Are you being intentionally dense? 14:06 <+bridge> [ddnet] but it wastes 8 bytes always 14:06 <+bridge> [ddnet] i just dont get the point honestly 14:06 <+bridge> [ddnet] i can add static_asset(alignof(ptr) >= alignof(int) 14:06 <+bridge> [ddnet] Your alignment argument, is not an alignment argument 14:06 <+bridge> [ddnet] then its 100% safe 14:06 <+bridge> [ddnet] It's lying 14:07 <+bridge> [ddnet] no 14:07 <+bridge> [ddnet] the CMDs only contain ptrs and ints 14:07 <+bridge> [ddnet] i can add static_assert(alignof(ptr) >= alignof(int) 14:07 <+bridge> [ddnet] Fuck me, fine do whatever 14:07 <+bridge> [ddnet] i just dont get ur point, nothing else 14:08 <+bridge> [ddnet] once i wanted to learn cpp i got stuck on getting compilers and shit 14:09 <+bridge> [ddnet] @Intelligent Cat you can use online compiler like this one http://cpp.sh/ 😄 14:09 <+bridge> [ddnet] perfect 14:09 <+bridge> [ddnet] thanks 14:09 <+bridge> [ddnet] tbh @Intelligent Cat its not about learning at the start, just try out a bit and u get into it 14:09 <+bridge> [ddnet] ¯\_(ツ)_/¯ 14:10 <+bridge> [ddnet] ive got a book for it 14:10 <+bridge> [ddnet] with some example 14:10 <+bridge> [ddnet] with some examples 14:10 <+bridge> [ddnet] not so optimized... 14:10 <+bridge> [ddnet] yeah, i had one too 14:10 <+bridge> [ddnet] and i read it, and didnt understand anything until i wrote the code myself xd 14:10 <+bridge> [ddnet] it might help ofc, but its really alot of getting a feeling tho 😄 14:10 <+bridge> [ddnet] well ofc coding is actual experiencing and not tutorials 14:12 <+bridge> [ddnet] @Comrade btw its about alignof() 14:13 <+bridge> [ddnet] you need your own memory allocator? 14:14 <+bridge> [ddnet] well we have a memory buffer, where we access data from individually 14:14 <+bridge> [ddnet] so the alignment should be right when accessing 14:14 <+bridge> [ddnet] e.g. pointers on 64bit require 8 byte alignment 14:14 <+bridge> [ddnet] smth like this 14:15 <+bridge> [ddnet] yes, but if you request memory chunk from malloc/new, it's aligned properly, so even if you use it as buffer for your own allocator, there should be no problem with memory alignment, right? 14:16 <+bridge> [ddnet] the problem is not that its probs not the case, but that only c++ has the max_align_t standartized 14:16 <+bridge> [ddnet] the question is, can we rely on c standard in c++ 14:17 <+bridge> [ddnet] so yes 14:17 <+bridge> [ddnet] there is no problem in real world, anyway 14:17 <+bridge> [ddnet] we still apply alignment 14:17 <+bridge> [ddnet] bcs we dont allocate memory 14:17 <+bridge> [ddnet] C++ relies on many things from C 14:17 <+bridge> [ddnet] (only once) 14:17 <+bridge> [ddnet] such as size_t 14:17 <+bridge> [ddnet] so most C standards apply to C++ as well i think 14:18 <+bridge> [ddnet] well anyway 14:18 <+bridge> [ddnet] even though C and C++ are different languages in some ways 14:18 <+bridge> [ddnet] telling the compiler exectly what alignment we want is safest 14:18 <+bridge> [ddnet] it wont optimize this out 14:19 <+bridge> [ddnet] yes, but messing with these things can be really evil 14:19 <+bridge> [ddnet] just like packed structures 😄 14:19 <+bridge> [ddnet] well thats why we added the alignment 14:20 <+bridge> [ddnet] to not access misaligned stuff anymore 😄 14:20 <+bridge> [ddnet] and does it actually make some difference in performance on some non-x86 system? 😄 14:20 <+bridge> [ddnet] 14:21 <+bridge> [ddnet] well for non x86 systems its required anyway 14:21 <+bridge> [ddnet] u are not allowed to acces misaligned floats in arm 14:32 <+bridge> [ddnet] a 14:33 <+bridge> [ddnet] couldnt a webhook be in a uhhh 14:33 <+bridge> [ddnet] in another channel? 14:33 <+bridge> [ddnet] instead of this 14:33 <+bridge> [ddnet] well this is dev channel and github is for devs 14:33 <+bridge> [ddnet] understandable 14:37 <+bridge> [ddnet] <Дядя Женя> disable rendering katana when freezed mb? 14:37 <+bridge> [ddnet] @Jupstar ✪ "only ints and pointers" can already cause misalignment 14:37 <+bridge> [ddnet] ints are 4 byte, pointers 8 byte on 64 bit 14:41 <+bridge> [ddnet] Have anybody experienced weird error where in prepared statement ? is not bound to a variable? 14:41 <+bridge> [ddnet] In Sqlite it bounds, but not in MySQL. 14:42 <+bridge> [ddnet] but if you put only structures into that preallocated buffer and no raw types and arrays, it must be aligned properly 14:42 <+bridge> [ddnet] compiler always adds proper padding into struct 14:43 <+bridge> [ddnet] if you add a struct with just a pointer in it 14:43 <+bridge> [ddnet] *just an int 14:43 <+bridge> [ddnet] and then afterwards right after a struct with just a pointer 14:43 <+bridge> [ddnet] the latter struct will be misaligned 14:43 <+bridge> [ddnet] Okay, let's try this again now that I am not starving 14:44 <+bridge> [ddnet] hi @Learath2 14:44 <+bridge> [ddnet] hope you had a good meal 🙂 14:44 <+bridge> [ddnet] 🍿 14:44 <+bridge> [ddnet] When someone sees a function, called Alloc, taking an argument for alignment, they expect the pointer returned by said function to be aligned, as specified 14:45 <+bridge> [ddnet] you're right @heinrich5991 14:45 <+bridge> [ddnet] https://godbolt.org/z/s68WeT 14:45 <+bridge> [ddnet] 😬 14:45 <+bridge> [ddnet] @heinrich5991 but i use the maximum 14:45 <+bridge> [ddnet] so its safe 14:45 <+bridge> [ddnet] maximum of what? 14:45 <+bridge> [ddnet] The way you implemented it, the alignment argument will only be considered for the next Alloc. The next Alloc will be aligned the way the previous one was supposed to be aligned 14:45 <+bridge> [ddnet] of ints and ptrs xd 14:45 <+bridge> [ddnet] so you add a struct with just one int 14:45 <+bridge> [ddnet] it's 4 byte long 14:45 <+bridge> [ddnet] you align it to 8 bytes? 14:45 <+bridge> [ddnet] and will sitll be aligned to 8 14:45 <+bridge> [ddnet] yes 14:46 <+bridge> [ddnet] so its always safe 14:46 <+bridge> [ddnet] for all commands to add 14:46 <+bridge> [ddnet] i still dont get why u so mad about that 14:46 <+bridge> [ddnet] Did you even read what I said? 14:46 <+bridge> [ddnet] the next alloc is safe too bcs commands have their own buffer 14:47 <+bridge> [ddnet] its always somesize aligned to 8 14:48 <+bridge> [ddnet] I don't even know what to say here. I'm telling you the argument you pass is not used as a normal human being would expect, you tell me it works out fine in this specific application 14:48 <+bridge> [ddnet] well just open a pr with ur fix 14:48 <+bridge> [ddnet] then we fine 14:48 <+bridge> [ddnet] my pr works aslong ptr isnt magically 16 bits 14:48 <+bridge> [ddnet] @heinrich5991 would you expect your previous allocs alignment to interfere with your next allocs allignment? 14:49 <+bridge> [ddnet] not really, unless required for some reason to properly align the next one 14:49 <+bridge> [ddnet] as said 14:49 <+bridge> [ddnet] do a pr 14:50 <+bridge> [ddnet] then i close mine and u use urs 14:50 <+bridge> [ddnet] im 99.9999999999999999)% sure mine works for arm, x86, and almost all architectures 14:50 <+bridge> [ddnet] maybe not for washing machines 14:51 <+bridge> [ddnet] It works because that buffer is only ever used for one type of thing 15:15 <+bridge> [ddnet] @BannZay hey, currently here? let's talk in real time about https://github.com/ddnet/ddnet/pull/2778 so we can finally get it done 15:18 <+bridge> [ddnet] @heinrich5991 hi! I am here 15:19 <+bridge> [ddnet] nice 15:22 <+bridge> [ddnet] @BannZay I have the feeling that we could minimize the diff if we kept `CFGFLAG_TEST` and made `CFGFLAG_GAME` imply that you cannot execute it with rcon permissions unless testing cmds are enabled 15:22 <+bridge> [ddnet] what do you think? would that still achieve your goal? 15:23 <+bridge> [ddnet] I see why you shoehorned it into the size, because GetCommand just skips by size, what I don't get is why you don't just say that and instead try to defend the obviously wrong signature 15:30 <+bridge> [ddnet] there is something REALLY annoying when playing 15:30 <+bridge> [ddnet] the hook 15:30 <+bridge> [ddnet] yea, maybe remove the hook 15:30 <+bridge> [ddnet] it will attach itself to the nearest player instead of where its pointed to 15:30 <+bridge> [ddnet] ah 15:30 <+bridge> [ddnet] that's also gameplay at this point, I think 15:30 <+bridge> [ddnet] that makes the gameplay really horrible when its a hard parkour 15:31 <+bridge> [ddnet] what do you actually mean tho 15:31 <+bridge> [ddnet] tees have quite a large radius for attaching 15:31 <+bridge> [ddnet] even if you aim slightly away from them 15:31 <+bridge> [ddnet] in vanilla the hook goes to the middle of the tee when u hook close to the border of the tee but thats it 15:31 <+bridge> [ddnet] Yeah, it's gameplay, can't change 15:31 <+bridge> [ddnet] made it sound like he is using aimbot 15:34 <+bridge> [ddnet] @heinrich5991 In this case CMDFLAG_TEST means that settings marked by this flag can not be used in map config (which is not quite obvious from its name) and also this flag must be considered as CFGFLAG_GAME. 15:34 <+bridge> [ddnet] So much mess... So I have not done it yet and prefer to keep 2 flags (CFGFLAG_GAME + new custom one like NOMAPCFG) instead of magic one with weird name. Answering your question - yes, it will work. But I dont like it. 15:36 <+bridge> [ddnet] still doesnt make much sense to me 15:36 <+bridge> [ddnet] I'd argue it's similarly non-intuitive that we no longer have CMDFLAG_TEST tbh, nothing clear that is enabled by `sv_testing_cmds` 15:37 <+bridge> [ddnet] we could create a different message for CFGFLAG_GAME, "game-only commands/variables can only be used from inside maps or while testing is enabled" 15:37 <+bridge> [ddnet] cfgflag game = can be used inside of map, CLIENT_ID_GAME is also the map executing a command, so that makes a lot of sense. and cfgflag test-marked commands needs sv_testing enabled, where is the problem @BannZay ? 15:38 <+bridge> [ddnet] the hook snap is a core mechanic at this point, u wouldnt be able to do edgehooks otherwise 15:38 <+bridge> [ddnet] and i dont see how its horrible 15:39 <+bridge> [ddnet] The problem is that there is two types of cheat commands. Some can be used inside of map but others can not 15:40 <+bridge> [ddnet] yea 15:40 <+bridge> [ddnet] some are for cheating, and others are for changing map physics, as I see it 15:40 <+bridge> [ddnet] e.g. for trying out different things for your new map 15:41 <+bridge> [ddnet] @heinrich5991 how do i get steam_apid.lib? 15:41 <+bridge> [ddnet] @jao tell him the whole error 15:41 <+bridge> [ddnet] otherwise its XY problem 15:41 <+bridge> [ddnet] hmmm @jao do you compile? it should be generated automatically 15:41 <+bridge> [ddnet] cmake should generate a empty steam lib file right? 15:41 <+bridge> [ddnet] yes 15:42 <+bridge> [ddnet] i told him to do a clean build 15:42 <+bridge> [ddnet] but idk how windows works 15:42 <+bridge> [ddnet] for that 15:42 <+bridge> [ddnet] @BannZay only commands have the test flag, thats why its called CMD flag, not CFG flag, and commands can not be put into the server settings anyways 15:42 <+bridge> [ddnet] i really do not understand your problem :D 15:42 <+bridge> [ddnet] config variables dont have the test flag 15:43 <+bridge> [ddnet] @jao r u compiling from visual studio? i think u have to rerun cmake to generae the project files again 15:43 <+bridge> [ddnet] or something like that 15:43 <+bridge> [ddnet] can you post the error message @jao? 15:43 <+bridge> [ddnet] > @BannZay only commands have the test flag, thats why its called CMD flag, not CFG flag, and commands can not be put into the server settings anyways 15:43 <+bridge> [ddnet] @fokkonaut from the conversation with deen - test commands were introduced to prevent mods from cheating. But "non test commands", for example sv_team, can be used to cheat the map 15:43 <+bridge> [ddnet] Datei "Debug\steam_apid.lib" kann nicht geöffnet werden. 15:44 <+bridge> [ddnet] full log please. https://paste.mozilla.org/. but yes, a clean build might also be nice to try 15:44 <+bridge> [ddnet] > @BannZay only commands have the test flag, thats why its called CMD flag, not CFG flag, and commands can not be put into the server settings anyways 15:44 <+bridge> [ddnet] @fokkonaut from the conversation with deen - test commands were introduced to prevent mods from cheating. But "non test commands", for example sv_team, can be used to cheat the map without server reload 15:50 <+bridge> [ddnet] @fokkonaut there is no real distinguish between commands and variables. Can you make work done ? I am tired already with this pr, so I give up to you. 15:51 <+bridge> [ddnet] command = ddracecommands.h 15:51 <+bridge> [ddnet] variables/configurations = variables.h/config_variables.h 15:51 <+bridge> [ddnet] simple 15:52 <+bridge> [ddnet] the commands affect player states etc and cofigurations are server settings 15:52 <+bridge> [ddnet] @BannZay I'll try to finish it, would that work for you? 15:52 <+bridge> [ddnet] sure 15:52 <+bridge> [ddnet] thanks 16:16 <+bridge> [ddnet] @Neben does steam work on mac osx? that has an autoupdater 16:16 <+bridge> [ddnet] @BannZay how can I cheat a failed team with sv_team? 16:31 <+bridge> [ddnet] @deen oh what thanks, i'll try it out 16:34 <+bridge> [ddnet] Possible to add milliseconds back on top of the screen? 16:41 <+bridge> [ddnet] @Brokecdx- i think they were misleading 16:41 <+bridge> [ddnet] and not real 16:41 <+bridge> [ddnet] @Brokecdx- they literally showed random numbers 16:41 <+bridge> [ddnet] and it kept annoying me that we show something totally wrong 16:41 <+bridge> [ddnet] wait what 16:41 <+bridge> [ddnet] my life has been a lie 16:41 <+bridge> [ddnet] <Дядя Женя> is the problem of making accounts on ddnet only about identifying old players? 16:41 <+bridge> [ddnet] I mean they were going from 0-9 in order, but they were not using the right time for that 16:42 <+bridge> [ddnet] 😄 16:44 <+bridge> [ddnet] oh lol 16:55 <+bridge> [ddnet] wat 16:55 <+bridge> [ddnet] @Intelligent Cat wat wat? 16:55 <+bridge> [ddnet] 12 commits at once 16:55 <+bridge> [ddnet] wonder what the contributor was actually doing 16:56 <+bridge> [ddnet] that was me. I fixed each occurence seprately so that we can track what error it caused in the commit message 16:56 <+bridge> [ddnet] ¯\_(ツ)_/¯ 17:49 <+ChillerDragon> deen spammer confirmed 17:50 <+bridge> [ddnet] @heinrich5991 why did you remove the topic from ddnet too? 😄 17:51 <+bridge> [ddnet] oof 17:52 <+bridge> [ddnet] I added it to teeworlds, but removed it from ddnet 17:52 <+bridge> [ddnet] fixed it 17:52 <+bridge> [ddnet] eh? 😄 18:01 <+bridge> [ddnet] https://github.com/einaregilsson/Redirector/issues/223 18:01 <+bridge> [ddnet] Best issue ever 18:02 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/764880503701504040/94999414-f5775e80-05c1-11eb-9e66-d8ca4b3c4851.png 18:02 <+ChillerDragon> nice thanks ill add to my collection of best issues @Learath2 18:03 <+Ryozuki> ChillerDragon make pr for ddnet hacktoberfest 18:04 <+ChillerDragon> i was actually about to make a shit pr but i was to lazy 18:04 <+ChillerDragon> if hacktoberfest is in october i should probably get cracking 18:05 <+ChillerDragon> but i can always pr against one of my own 100 github repos 18:05 <+ChillerDragon> https://zillyhuhn.com/cs/.1602432263.png 18:06 <+ChillerDragon> i wish they would give out other cloths i have enough tshirts tbh 18:07 <+ChillerDragon> weird flex ik 18:08 <+bridge> [ddnet] https://hastebin.com/qiwotulelo.yaml 18:08 <+bridge> [ddnet] warnings while compiling 18:09 <+bridge> [ddnet] i think i mentioned these before 18:09 <+bridge> [ddnet] compiler? 18:09 <+bridge> [ddnet] +versio 18:09 <+bridge> [ddnet] n 18:09 <+bridge> [ddnet] gcc 18:09 <+bridge> [ddnet] sec 18:09 <+bridge> [ddnet] gcc (GCC) 10.2.0 18:10 <+bridge> [ddnet] it also adds some cppflags of my own 18:10 <+bridge> [ddnet] wait 18:10 <+bridge> [ddnet] same version for me, I don't get the warnings 18:10 <+bridge> [ddnet] I think jupeyy fixed that in a pr 18:10 <+bridge> [ddnet] ``` 18:10 <+bridge> [ddnet] CPPFLAGS="-D_FORTIFY_SOURCE=2" 18:10 <+bridge> [ddnet] CFLAGS="-march=native -O3 -pipe -fno-plt -flto" 18:10 <+bridge> [ddnet] CXXFLAGS="-march=native -O3 -pipe -fno-plt -flto" 18:10 <+bridge> [ddnet] LDFLAGS="-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now" 18:10 <+bridge> [ddnet] ``` 18:10 <+bridge> [ddnet] its built on release mode 18:10 <+bridge> [ddnet] from the aur 18:10 <+bridge> [ddnet] just updated it 18:10 <+bridge> [ddnet] (this is my makepkg.conf) 18:11 <+bridge> [ddnet] #3031 ? 18:11 <+bridge> [ddnet] https://github.com/ddnet/ddnet/pull/3031 18:11 <+bridge> [ddnet] @Learath2 is the pr after 15.1.1? 18:13 <+bridge> [ddnet] @heinrich5991 i think these appear if u enable -flto 18:18 <+bridge> [ddnet] @Ryozuki doesn't happen for me with `CFLAGS='-flto' CXXFLAGS='-flto'` 18:18 <+bridge> [ddnet] afk food 18:22 <+bridge> [ddnet] ok im building ddnet-git which uses the latest master 18:22 <+bridge> [ddnet] and i got way less warnings 18:22 <+bridge> [ddnet] i think they are unrelated 18:22 <+bridge> [ddnet] so this might be fixed 18:22 <+bridge> [ddnet] https://hastebin.com/mesiboqobo.rb 18:23 <+ChillerDragon> hastebin lol 18:23 <+bridge> [ddnet] there are the warnings with latest 18:23 <+bridge> [ddnet] warning: ‘__builtin_strncpy’ specified bound 18446744073709551615 exceeds maximum object size 9223372036854775807 18:23 <+bridge> [ddnet] xD 18:23 <+bridge> [ddnet] insane numbers 18:23 <+ChillerDragon> oh ye classic 18:23 <+ChillerDragon> pls fix those would be nice 18:27 <+bridge> [ddnet] https://github.com/ddnet/ddnet/blob/master/src/game/client/components/menus_demo.cpp#L765 18:27 <+bridge> [ddnet] one is caused from this iirc 18:30 <+bridge> [ddnet] i think this is due to str_copy using strncopy and it makes no sense if you dont use the dst size u should then use strcpy 18:31 <+bridge> [ddnet] eh maybe not 18:32 <+bridge> [ddnet] > If, after copying the terminating null character from src, count is not reached, additional null characters are written to dest until the total of count characters have been written. 18:33 <+bridge> [ddnet] i guess the problem here is we want to stop before than null char from src 18:33 <+bridge> [ddnet] that* 18:59 <+bridge> [ddnet] `minimum(static_cast(sizeof(Item.m_aName)), str_length(pName) - 4)` should never be 18446744073709551615, though, no? 19:00 <+bridge> [ddnet] I think the compiler is getting confused by the argument being dynamic 19:04 <+bridge> [ddnet] I don't get why it misses the static_cast there, that should truncate it down to an int just fine 19:05 <+bridge> [ddnet] @Learath2 the big number thing is from DoEditBox 19:05 <+bridge> [ddnet] maybe not related to this 19:06 <+bridge> [ddnet] (though it probably shouldn't be using an int... there is a reason size_t is used in the standard library, int just might not be (and probably is not) large enough to fit every possible object) 19:06 <+bridge> [ddnet] @Learath2 str_length(pName) - 4 19:06 <+bridge> [ddnet] can this ever be negative? 19:06 <+bridge> [ddnet] wouldnt that be very bad 19:07 <+bridge> [ddnet] It can be negative sure and yes that would be very not good 19:07 <+bridge> [ddnet] i see, thats very not cool 19:07 <+bridge> [ddnet] Oh actually it can't 19:08 <+bridge> [ddnet] We check that it endswith `.demo` before 19:08 <+bridge> [ddnet] i think those 4 are the file extension 19:08 <+bridge> [ddnet] if it ends with .demo it can't be shorter than 5 characters 19:08 <+bridge> [ddnet] but .dema has 5 chars 19:08 <+bridge> [ddnet] Yeah, that looks like it should be - 5 to me 19:09 <+bridge> [ddnet] but it works, so we definitely are missing something 19:09 <+bridge> [ddnet] Why is system.h so obsessed with integers anyway? Why can't/don't we just use size_t like normal sane people? 19:10 <+bridge> [ddnet] 9223372036854775807 is max 64bit int value 19:10 <+bridge> [ddnet] 64bit signed int* 19:10 <+bridge> [ddnet] 18446744073709551615 is the 64bit unsigned max 19:11 <+bridge> [ddnet] So gcc thinks we are somehow passing an unsigned integer 19:11 <+bridge> [ddnet] :justatest: 19:12 <+bridge> [ddnet] gtg, if I don't cook soon I'll order something unhealthy, if you want to try fixing it maybe try moving the cast outside the minimum, see if that makes gcc happy 19:14 <+bridge> [ddnet] @Learath2 str_copy accepts a int instead of size_t 19:14 <+bridge> [ddnet] btw 19:14 <+ChillerDragon> gtg, need to buy something unhealthy or i miss my stream 19:18 <+ChillerDragon> oh btw @Jupstar thought i could finish today but turns out i suck at grids and these infinite height trees are tricky https://zillyhuhn.com/cs/.1602436564.png 19:19 <+Ryozuki> u know that ping doesnt work 19:22 <+ChillerDragon> like totally not at all? no pings? 19:22 <+bridge> [ddnet] `static_cast(minimum(sizeof(Item.m_aName), (size_t)str_length(pName) - 4)));` 19:22 <+bridge> [ddnet] makes no difference 19:22 <+bridge> [ddnet] (gotta cast to size_t otherwise there is no valid signature) 19:22 <+ChillerDragon> never seen that one before lol https://zillyhuhn.com/cs/.1602436873.png 19:22 <+bridge> [ddnet] the problem is str_length(pName) not the cast imho 19:22 <+Ryozuki> ChillerDragon wdym 19:22 <+Ryozuki> what did u never see 19:23 <+ChillerDragon> running ``yay`` and it didnt yeet 100 updates at me 19:23 <+Ryozuki> you probs dont see my errors cuz u dont have optimizations enabled in ur /etc/makepkg.conf 19:23 <+ChillerDragon> my system is up to date and i didnt update in hours xd 19:23 <+Ryozuki> do u have ddnet aur pkg? 19:23 <+Ryozuki> i updated it not long ago 19:24 <+ChillerDragon> https://zillyhuhn.com/cs/.1602436970.png 19:24 <+ChillerDragon> i never noticed it updating it tho 19:24 <+ChillerDragon> shouldnt it update on every commit? 19:25 <+bridge> [ddnet] @Learath2 what about copying fully and then adding a null char where the dot is xD 19:28 * ChillerDragon henlo Welf :D 19:28 <+bridge> [ddnet] That's a cheap trick :D 19:29 <+bridge> [ddnet] btw 19:29 <+bridge> [ddnet] ah 19:29 <+bridge> [ddnet] @Learath2 19:29 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/764902480579526696/unknown.png 19:29 <+bridge> [ddnet] isnt this the same 19:29 <+ChillerDragon> does ur fridge have discord installed @Learath2 ? 19:29 <+bridge> [ddnet] and compiler wouldnt complain right 19:29 <+ChillerDragon> iot madness 19:29 <+bridge> [ddnet] just need to check index is within bounds 19:29 <+bridge> [ddnet] (the first 2 lines vs the 3rd line) 19:31 <+bridge> [ddnet] ChillerDragon: Na, I'm waiting on water to boil 19:32 <+bridge> [ddnet] Well it's technically not the same, the second one is always safe, this needs bounds checking 19:32 <+bridge> [ddnet] "always safe" 19:32 <+bridge> [ddnet] thats why the compiler complains 19:32 <+bridge> [ddnet] that its not 19:33 <+bridge> [ddnet] ? 19:33 <+bridge> [ddnet] xd 19:33 <+bridge> [ddnet] (and it's copying 4 extra characters for no reason) 19:33 <+bridge> [ddnet] The compiler is most probably confused 19:33 <+bridge> [ddnet] i have a hard time believing learath is more knowledgable than a compiler made by ppl who know a lot 19:33 <+bridge> [ddnet] but well ill believe you 19:34 <+bridge> [ddnet] These bounds checks are very new to compilers, didn't we have another issue like this a couple months back that got fixed by gcc10? 19:35 <+bridge> [ddnet] this is coming from FORTIFY_SOURCE=2 right? 19:35 <+bridge> [ddnet] is that feature that new? 19:35 <+bridge> [ddnet] ah well maybe its not from there 19:35 <+bridge> [ddnet] i rly wonder what makes this warning show up 19:35 <+bridge> [ddnet] Well what is the warning called? We can check gcc bugs atleast 19:36 <+bridge> [ddnet] -Wstringop-overflow= 19:36 <+bridge> [ddnet] @Ryozuki well check whether it's the minimum that's confusing it. Remove it try compiling with either argument 19:36 <+bridge> [ddnet] this happens on release 19:36 <+bridge> [ddnet] -march=native -O3 -flto 19:37 <+bridge> [ddnet] ull try without flto 19:38 <+bridge> [ddnet] @Learath2 ok looks like -flto enables it 19:39 <+bridge> [ddnet] https://gcc.gnu.org/wiki/LinkTimeOptimization 19:39 <+bridge> [ddnet] does this exist since 2009?xd 19:39 <+bridge> [ddnet] Lto was pretty broken for many years 19:40 <+bridge> [ddnet] http://hubicka.blogspot.com/2019/05/gcc-9-link-time-and-inter-procedural.html 19:40 <+bridge> [ddnet] they made imrpovements to it 19:40 <+bridge> [ddnet] in gcc 9 19:40 <+bridge> [ddnet] > This continues the series I wrote on GCC 8, GCC 6, GCC 5, and GCC 4.9 (part 1 and 2). (Sorry, no GCC 7 blog post at all. I was lazy.) 19:43 <+bridge> [ddnet] @Ryozuki what is your cmake line? 19:43 <+bridge> [ddnet] Let me try to reproduce it 19:43 <+bridge> [ddnet] `CPPFLAGS="-D_FORTIFY_SOURCE=2" CFLAGS="-march=native -O3 -pipe -fno-plt -flto" CXXFLAGS="-march=native -O3 -pipe -fno-plt -flto" LDFLAGS="-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now" cmake .. -DCMAKE_BUILD_TYPE=Release -GNinja` 19:44 <+bridge> [ddnet] then jsut in case 19:44 <+bridge> [ddnet] `CPPFLAGS="-D_FORTIFY_SOURCE=2" CFLAGS="-march=native -O3 -pipe -fno-plt -flto" CXXFLAGS="-march=native -O3 -pipe -fno-plt -flto" LDFLAGS="-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now" ninja` 19:44 <+bridge> [ddnet] xd 19:44 <+bridge> [ddnet] removing -flto from both made the warning go away 19:44 <+bridge> [ddnet] if u have a potato it will take way more to compile btw 19:44 <+bridge> [ddnet] xd 19:45 <+bridge> [ddnet] I have a decent machine and it still takes more to compile 😛 19:45 <+bridge> [ddnet] need more cores 19:46 <+bridge> [ddnet] -flto rly makes it take way longer 19:46 <+bridge> [ddnet] but i think its worth 19:46 <+bridge> [ddnet] Well did you benchmark it? LTO sometimes really can't do much 19:46 <+bridge> [ddnet] nah i didnt 19:47 <+bridge> [ddnet] tbh i dont even play with self compiled 19:47 <+bridge> [ddnet] since i want to have hours in steam 19:47 <+bridge> [ddnet] xd 19:47 <+bridge> [ddnet] (and im to lazy to replace the binary everytime) 19:48 <+bridge> [ddnet] Ah, I have an idea 19:49 <+bridge> [ddnet] I think it's LTO optimizing away our extra calls 19:49 <+bridge> [ddnet] That's why it's only emitted when LTO is enabled 19:49 <+bridge> [ddnet] Oh, the output even says so 😄 19:52 <+bridge> [ddnet] :banhammer: 19:54 <+bridge> [ddnet] was opengl disabled by default in the new update? 20:09 <+bridge> [ddnet] @Ryozuki I'm like 80% sure it's a gcc bug 20:10 <+bridge> [ddnet] clang is usually more anal about these things and clang with flto doesn't complain 20:30 <+bridge> [ddnet] Well looking at gcc's source, it seems if it can't determine the object size of the destination, it throws this warning 20:46 <+bridge> [ddnet] @heinrich5991 mapbugs.cpp:L30 what is that about? 21:07 <+bridge> [ddnet] @Learath2 clang is smarter than gcc, but is it faster than gcc? 21:08 <+bridge> [ddnet] clang errors are cleaner tho 21:08 <+bridge> [ddnet] i love it 21:09 <+bridge> [ddnet] @Learath2 omg 21:09 <+bridge> [ddnet] it even builds a web 21:09 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/764927757637386240/unknown.png 21:09 <+bridge> [ddnet] :poggers: 21:10 <+bridge> [ddnet] it also finds memory leaks 21:11 <+bridge> [ddnet] and it explains it like i am 5 years old too 21:11 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/764928141176209428/unknown.png 21:11 <+bridge> [ddnet] :monkalaugh: 21:11 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/764928256225837136/unknown.png 21:11 <+bridge> [ddnet] 👀 21:12 <+bridge> [ddnet] thats awesome 21:12 <+bridge> [ddnet] yeah 21:12 <+bridge> [ddnet] i love that dude 21:12 <+bridge> [ddnet] thanks bro 21:12 <+bridge> [ddnet] @jao software made by the numero uno 21:12 <+bridge> [ddnet] monte software 21:16 <+bridge> [ddnet] @heinrich5991 thx 😄 21:16 <+bridge> [ddnet] @noby ?? xd 21:16 <+bridge> [ddnet] i was asleep when he tagged me earlier 21:34 <+bridge> [ddnet] clang is usually faster for me 21:35 <+bridge> [ddnet] so they cached up 21:35 <+bridge> [ddnet] @Learath2 can 2 llvm frontends make code that is slower than the other frontend? 21:35 <+bridge> [ddnet] i guess yes 21:35 <+bridge> [ddnet] ? 21:36 <+bridge> [ddnet] clang is a llvm frontend right 21:36 <+bridge> [ddnet] rust also uses llvm 21:36 <+bridge> [ddnet] frontends generate LLVM IR, the quality of the IR they generate is up to them 21:36 <+bridge> [ddnet] i see 21:36 <+bridge> [ddnet] But LLVM does optimize the IR, so it's not trivial to write shitcode 😄 21:36 <+bridge> [ddnet] :D 21:37 <+bridge> [ddnet] i should look at llvm IR 21:37 <+bridge> [ddnet] and maybe try making a simple language 21:37 <+bridge> [ddnet] https://llvm.org/docs/tutorial/MyFirstLanguageFrontend/index.html 21:37 <+bridge> [ddnet] they even got a tutorial 22:28 <+ChillerDragon> do you guys have any workflow on auditing small random open source software before using it 23:22 <+bridge> [ddnet] @Learath2 no idea what I was thinking with that line 23:22 <+bridge> [ddnet] can be cleaned up 23:23 <+bridge> [ddnet] @Ryozuki search the gcc bug tracker for -Wstringop-overflow, it has quite some false positives that we even already encountered AFAIK 23:24 <+bridge> [ddnet] 👀 23:28 <+bridge> [ddnet] @Learath2 unsigned integers (including size_t) have their own pitfalls in C/C++, I think the google coding style explicitly forbids using unsigned integers anywhere 23:29 <+bridge> [ddnet] > That said, mixing signedness of integer types is responsible for an equally large class of problems. The best advice we can provide: try to use iterators and containers rather than pointers and sizes, try not to mix signedness, and try to avoid unsigned types (except for representing bitfields or modular arithmetic). Do not use an unsigned type merely to assert that a variable is non-negative. 23:30 <+bridge> [ddnet] https://google.github.io/styleguide/cppguide.html#Integer_Types 23:42 <+bridge> [ddnet] isn't clang-tidy does same thing? #3071 23:42 <+bridge> [ddnet] https://github.com/ddnet/ddnet/issues/3071 23:43 <+bridge> [ddnet] no 23:44 <+bridge> [ddnet] clang-tidy can also be used to run clang-analyzer from the command line 23:44 <+bridge> [ddnet] `clang-tidy -checks=clang-analyzer*` 23:45 <+bridge> [ddnet] but apparently not all checks from what I can tell 23:46 <+bridge> [ddnet] ah no, should be all, they're spread around a bit in the docs: https://clang.llvm.org/extra/clang-tidy/checks/list.html 23:49 <+bridge> [ddnet] so if you clean up some specific clang-analyzer checks, add them to a .clang-tidy file and we can add that to our github builds 23:54 <+bridge> [ddnet] @heinrich5991 well we are mixing signedness right now, that's worse 23:54 <+bridge> [ddnet] I don't think you'll get rid of mixing signedness except if you try to use signed integers everywhere possible