00:52 < Omiro> Hello dear developers of best game in the world! I sorry for disturbing you are from your's work or smth else. But i have question to you are 01:39 <+bridge> [ddnet] its 1 am 01:39 <+bridge> [ddnet] but, u shouldnt ask to ask, just ask 01:44 <+Omiro> oh thanks ^^ 01:44 <+Omiro> So, who giving master bans to other peoples? 02:16 <+bridge> [ddnet] <ᶰ°Konͧsti> noby 03:33 <+bridge> [ddnet] Hey guys, i have a question: is there a thing like TWRequest.php thats like newer and better 03:34 <+bridge> [ddnet] Piepow made a teestalker webapp long ago so they told me that someone probably has a better thing like it 03:36 <+bridge> [ddnet] I know there is but i dont like the fact that its not open source and their api is not really good so i wanted to know if anyone can help 03:37 <+bridge> [ddnet] And of course it's 3:30 AM, no one is gonna answer at this time 07:30 <+bridge> [ddnet] @Alexandar for DDNet we have a hacky solution in https://github.com/ddnet/ddnet-scripts/blob/master/servers/scripts/ddnet.py#L722 based on https://github.com/ddnet/ddnet-scripts/blob/master/servers/scripts/ddnet7status.py for 0.7 and https://github.com/ddnet/ddnet-scripts/blob/master/servers/scripts/teeworlds.py for 0.6 08:28 <+bridge> [ddnet] :pepeH: i should change a nickname eh, 2nd time i get pinged by accident 09:23 <+bridge> [ddnet] :lol: 10:32 <+bridge> [freenode] Does ddnet use multiple SQL read/write server? 10:33 <+bridge> [ddnet] it seems so 10:33 <+bridge> [ddnet] I just looked into the config file 10:50 <+bridge> [ddnet] Zwelf: Where we had the crash there was indeed just one SQL server, and connection to it kept failing 12:31 <+bridge> [ddnet] @ChillerDragon if we have the same default skin, we already map that 12:31 <+ChillerDragon> yes i just realized :D 12:31 <+ChillerDragon> sorry 12:32 <+ChillerDragon> ok but on unique i at least see my own greensward 12:32 <+ChillerDragon> and 0.7 to 0.7 should work without problems 12:32 <+ChillerDragon> supporting all custom skins 12:32 <+ChillerDragon> oh okay i just realized i now see my own skin after chaning it 12:32 <+ChillerDragon> but not when i rejoin 12:33 <+bridge> [ddnet] 0.7 to 0.7 works without problems already 12:33 <+bridge> [ddnet] atleast from what I could test, it's really hard to test with more then 2-3 clients when my laptop would rather become a grill 12:33 <+ChillerDragon> not for me 12:33 <+ChillerDragon> only one client needed for me to test it 12:34 <+ChillerDragon> when i join i have default skin 12:34 <+bridge> [ddnet] OH that's the bug 12:34 <+bridge> [ddnet] It happened to me like 2 times 12:34 <+bridge> [ddnet] could never reproduce it again 12:34 <+ChillerDragon> i can consitantly 12:34 <+ChillerDragon> thats not how u spoell it huh? 12:34 <+bridge> [ddnet] consistently 12:34 <+ChillerDragon> ty 12:34 <+ChillerDragon> spell* also :D 12:35 <+ChillerDragon> yea that should be fixed 12:35 <+bridge> [ddnet] can you add some dbg_msg s in teeinfo.cpp? see why tf your skin is getting mapped to default 12:35 <+ChillerDragon> but also it would be nice if the 0.7 body is "greensward" that it shows greensward in 0.6 12:35 <+ChillerDragon> any functions or lines you have in mind? 12:37 <+bridge> [ddnet] actually not teeinfo.cpp 12:37 <+bridge> [ddnet] in gamecontext.cpp:L1410 12:37 <+bridge> [ddnet] well L1420 12:37 <+bridge> [ddnet] before and after the fromsixup 12:44 <+ChillerDragon> https://zillyhuhn.com/cs/.1592477083.png 12:45 <+ChillerDragon> that looks good 12:45 <+ChillerDragon> afk for a sec 12:48 <+bridge> [ddnet] print Info.m_apSkinPartNames[1] instead afterwards 12:57 <+ChillerDragon> also good 13:17 <+bridge> [ddnet] <ᶰ°Konͧsti> ChillerDragtroll 13:18 <+ChillerDragon> omg burn it with fire https://github.com/MrEAlderson/Rekit 13:19 <+ChillerDragon> why would anyone port tw to java :D 13:24 <+ChillerDragon> @Learath2 seems like cammostripes is even sent over the wire if i understood that correctly https://zillyhuhn.com/cs/.1592479429.png 13:24 <+ChillerDragon> maybe the client just doent understands it 13:30 <+bridge> [ddnet] hm, it is entirely possible I'm forgetting a part of the protocol 13:30 <+bridge> [ddnet] I don't think I have to respond to a STARTINFO though, do I? 13:34 <+bridge> [ddnet] @deen so the only thing you have is a python version 13:34 <+bridge> [ddnet] Is it possible to integrate that into a website 13:34 <+bridge> [ddnet] Im not really experienced with py 13:38 <+ChillerDragon> @Learath2 i think on connection the client expects NETMSGTYPE_SV_CLIENTINFO which includes the initial skin and there currently part 1 and 2 are empty 13:39 <+ChillerDragon> from the client https://zillyhuhn.com/cs/.1592480333.png 13:39 <+ChillerDragon> https://github.com/teeworlds/teeworlds/blob/14d26d42925f472f34b76b97df9024640dc3a82a/src/game/client/gameclient.cpp#L1056 13:41 <+ChillerDragon> https://zillyhuhn.com/cs/.1592480464.png 13:46 <+bridge> [ddnet] So I'm not sending the correct clientinfo? 13:46 <+bridge> [ddnet] huh so weird 13:48 <+ChillerDragon> ok my wireshark was wrong that was a message from the client 13:53 <+bridge> [ddnet] @ChillerDragon can you check for a `CNetMsg_Sv_ClientInfo` on the client side where m_Local is 1? 14:34 <+ChillerDragon> https://zillyhuhn.com/cs/.1592483672.png 14:35 <+ChillerDragon> there is only 1 tee on my server so its always m_Local when i print CNetMsg_Sv_ClientInfo 15:16 <+ChillerDragon> something with the skin colors is weird 15:36 <+bridge> [ddnet] I guess you should check what's sent 15:47 <+bridge> [ddnet] meh it happens if I build with release, doesn't if I build with debug 15:48 <+bridge> [ddnet] what about RelWithDebInfo? 15:48 <+bridge> [ddnet] trying that next 15:49 <+bridge> [ddnet] yep happens \o/ 15:52 <+bridge> [ddnet] oh I see the problem 15:57 <+bridge> [ddnet] uh, I fixed it but the fact that it worked in debug mode concerns me 15:59 <+bridge> [ddnet] things that only work in dbg mode (read: without compiler optimizations) ive seen a couple times in the past and, i was told its likely due to failing to zero some memory somewhere, but the actual problems turned out to be related to casting different sizes of memory chunks to other types carelessly without regard for the signedness 15:59 <+bridge> [ddnet] and some of the optimizations it would do would cause it to break horribly there 16:00 <+bridge> [ddnet] But the way this one happened there is no uninitialized memory to go wrong :/ 16:00 <+bridge> [ddnet] is it a signedness thing? 16:00 <+bridge> [ddnet] like doing `*(unsigned int *)mem = 0xffffffff;` if the mem was signed char type 16:00 <+bridge> [ddnet] or something along those lines 16:03 <+bridge> [ddnet] issue is that I was calling ToSixup for the skins of sixup players, which is obv not needed 16:04 <+bridge> [ddnet] but calling tosixup shouldn't destroy the skin completely, yet it does in the release build and doesn't in the debug 16:04 <+bridge> [ddnet] the things i saw before that work only in debug build are related to compiler optimizations and also *sometimes* generate a warning on some oses/gcc versions tahts like "dereferencing type-punned pointer will break strict-aliasing" 16:05 <+bridge> [ddnet] yes, UB is nasty. you could try ubsan, @Learath2 😉 16:06 <+bridge> [ddnet] -fsanitize=undefined? 16:06 <+bridge> [ddnet] yes 16:06 <+bridge> [ddnet] never heard it as ubsan before 😄 16:07 <+bridge> [ddnet] I ran this through ubsan before, didn't really find it :/ 16:07 <+bridge> [ddnet] https://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html @noby 16:07 <+bridge> [ddnet] @onby 16:07 <+bridge> [ddnet] yeahh 16:07 <+bridge> [ddnet] does it check for the same type of thing that causes the "dereferencing type-punned pointer will break strict-aliasing" warning? 16:08 <+bridge> [ddnet] hm I'm usually good at spotting this kind of thing 16:08 <+bridge> [ddnet] yeah it's uninitialized memory, how did valgrind miss this even 16:08 <+bridge> [ddnet] @onby apparently not 😮 16:09 <+bridge> [ddnet] ooo 16:09 <+bridge> [ddnet] I thought ubsan checked for all undefined behavior 16:09 <+bridge> [ddnet] hey learath how to use c# in ddnet server¿ 16:09 <+bridge> [ddnet] it's a fast ub checker, some types require a massive amount of instrumentation 16:09 <+bridge> [ddnet] i guess i was accidentaly right before about uninitialized memory 16:09 <+bridge> [ddnet] but also assumed that it would be caught by these tools 16:09 <+bridge> [ddnet] @bubbacio only C++ works with the server 16:09 <+bridge> [ddnet] 😦 16:09 <+bridge> [ddnet] @bubbacio I mean you could probably add hooks for C# 16:09 <+bridge> [ddnet] ok ty 16:10 <+bridge> [ddnet] it will probably be more work than just using c++ 16:10 <+bridge> [ddnet] C# is very dynamic, but that'll be a huge undertaking 😄 16:10 <+bridge> [ddnet] @Learath2 that would require more knowledge of C++ than it would be to do it in C++ 16:10 <+bridge> [ddnet] js runs in ddnet sv¿ 16:10 <+bridge> [ddnet] no 16:10 <+bridge> [ddnet] 😄 16:10 <+bridge> [ddnet] lol 16:10 <+bridge> [ddnet] ok 16:11 <+bridge> [ddnet] The server is entirely in C++ 16:11 <+bridge> [ddnet] u can extend the server code in c as well 16:11 <+bridge> [ddnet] getting it to work with other languages will be a lot harder i think 16:11 <+bridge> [ddnet] I did add a V8 engine at one point though but never really did anything except messing around with chat command hooks 16:11 <+bridge> [ddnet] same with lua 16:12 <+bridge> [ddnet] Hm, I wonder how I should initialise this thing 16:12 <+bridge> [ddnet] :justatest: 16:12 <+bridge> [ddnet] https://reviews.llvm.org/D32199 16:12 <+bridge> [ddnet] I guess I can use inline initializers now that we are not stuck with C++03 16:13 <+bridge> [ddnet] this adds `-fsanitize=type` 16:13 <+bridge> [ddnet] Oh that sounds cool 16:13 <+bridge> [ddnet] I think it's not merged yet, but I can't quite figure out the UI 16:13 <+bridge> [ddnet] so that will catch the warning i was trying to describe? 16:13 <+bridge> [ddnet] yes, but I think it's not merged yet 16:13 <+bridge> [ddnet] cool lol 16:13 <+bridge> [ddnet] Btw, did you know that ASan allocates like 64 terabytes of ram? 😄 16:13 <+bridge> [ddnet] did you know every haskell programs allocates a similar maount 16:14 <+bridge> [ddnet] Oh, what for? 16:14 <+bridge> [ddnet] for the GC I'd guess, for easy "allocation" 16:14 <+bridge> [ddnet] ah yeah, haskell is garbage collected 16:15 <+bridge> [ddnet] can you see whether this thing is merged already or not, @Learath2? 16:21 <+bridge> [ddnet] the TSan? 16:21 <+bridge> [ddnet] yes 16:22 <+bridge> [ddnet] looks merged 16:28 <+bridge> [ddnet] ah no it's not 16:30 <+bridge> [ddnet] The LLVM part and the Runtime still seems to be waiting on a review 16:30 <+bridge> [ddnet] and the last comment suggests some big change happened with llvm that these diffs need to be modified for 16:41 <+bridge> [ddnet] I'm very baffled, why would my default member initializer would get ignored for a constructor that doesn't set that field? 16:57 <+bridge> [ddnet] oh great I'm stupid 16:58 <+bridge> [ddnet] even better idk how to fix this 17:00 <+bridge> [ddnet] strncpy is undefined if the src and the destination are overlapping 17:01 <+bridge> [ddnet] okay I will do something very ugly and hope god will forgive me for it 17:08 <+bridge> [ddnet] hm we do have a bit of UB though 17:08 <+bridge> [ddnet] like unrelated to this patch 17:12 <+bridge> [ddnet] The amount of things ubsan finds in the client is also very scary 17:14 <+bridge> [ddnet] @ChillerDragon that should fix the skin thing, the only thing that remains there is the color conversion 17:15 <+bridge> [ddnet] which after 4 hours of staring at it, idk how to fix 17:30 <+bridge> [ddnet] we do so much division by zero 😛 17:39 <+bridge> [ddnet] division by zero? 17:39 <+bridge> [ddnet] float? int should trap, right? 17:41 <+bridge> [ddnet] yep float 17:41 <+bridge> [ddnet] Oh no, I seem to have something wrong about the color code in ddnet 😦 17:43 <+bridge> [ddnet] Oh actually I just forgot that the hsl cone has points that map to multiple points on the rgb cube 18:52 <+bridge> [ddnet] We should get client QA people 😄 18:59 <+bridge> [ddnet] @jao lmk when you roll out the bot with the github cog 19:07 <+bridge> [ddnet] weekend i guess 19:14 <+ChillerDragon> @Learath2 nice did you also add greensward? <3 19:15 <+bridge> [ddnet] hm, I want to support all ddnet skins, but I can't do that with this linear lookup 19:33 <+ChillerDragon> ok nice 20:03 <+bridge> [ddnet] hm, maybe I could, I think the current skin system also only uses linear lookups, can't be that bad 20:35 <+ChillerDragon> if its onle like 30ish skins it should be fast enough 21:17 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/723255145252651059/unknown.png 21:17 <+bridge> [ddnet] github updating its design 21:23 <+bridge> [ddnet] @deen https://github.com/ddnet/ddnet/pull/2276#issue-436713977 21:23 <+bridge> [ddnet] > Note that the server exits when creating tables failed. Since the tables are created by default, it has to be disabled explicitly (e.g. `add_sqlserver r teeworlds record teeworlds PASSWORD "localhost" 3306 0`) if the servers should start even when the database connection fails. 21:25 <+bridge> [ddnet] yeah, but it shouldn't crash 21:26 <+bridge> [ddnet] I think that was just an additional note for our server set up 21:26 <+bridge> [ddnet] should I fix it? 22:52 <+bridge> [ddnet] @heinrich5991 I have set the table create to 0 already on the affected servers 23:30 <+bridge> [ddnet] Can we have an Unfreeze entity on the Switch zone layer? If Deep and Undeep is there as well as Freeze, why not add Unfreeze for more possibilites for mapping puzzle maps or mapping different ways to approach races? 23:42 <+bridge> [ddnet] Huh 2263 is interesting, I didn't think a character could exist without it's core being a part of the gameworld 23:42 <+bridge> [ddnet] Freeze is only there so you can freeze for different times, switch number counts as number of seconds. For unfreeze this makes no sense 23:43 <+bridge> [ddnet] @Learath2 yeah, also surprised me 23:43 <+bridge> [ddnet] Seems like a wonder that we only had this crash with super and not with many more features 23:43 <+bridge> [ddnet] How do you get to that state btw? 23:43 <+bridge> [ddnet] with /spec 23:44 <+bridge> [ddnet] on spec-enabled maps 23:44 <+bridge> [ddnet] Oh when you spec your core is removed but the ccharacter still exists? 23:44 <+bridge> [ddnet] yes 23:44 <+bridge> [ddnet] Yeah interesting that we didn't hit this more often 23:45 <+bridge> [ddnet] I don't like having two sources of truth for super 😦 23:45 <+bridge> [ddnet] @deen can you specify what makes switchable unfreeze "useless"? 23:45 <+bridge> [ddnet] The others are not switchable @Cellegen 23:46 <+bridge> [ddnet] on switch layer, you can turn on and off with the right switch tiles: Freeze, Deep and Undeep 23:47 <+bridge> [ddnet] wdym its not switchable? 23:48 <+bridge> [ddnet] every single tile on the switch layer has it's potential to be turned off and on by the current switch tiles those do that 23:48 <+bridge> [ddnet] have you tried switching freeze tiles on and off? 23:48 <+bridge> [ddnet] every single tile on the switch layer has it's potential to be turned off and on by the current switch tiles that do that 23:49 <+bridge> [ddnet] i remember it working back then, some puzzle maps have that mechanic 23:49 <+bridge> [ddnet] Huh, I also thought those were only on the switch layer to adjust duration 23:49 <+bridge> [ddnet] do you have some map as an example? 23:50 <+bridge> [ddnet] game layer and switch layer are a big diff, idk where you came with that assumption 23:51 <+bridge> [ddnet] Puzzle box by Soapy sandwich and another map which i cant find 23:51 <+bridge> [ddnet] the problem with adding the seconds they should freeze for in the front layer is that the data structure doesnt really allow for that. meanwhile in the switch layer each tile stores 2 more numbers. this is probably why someone thought timed freeze tiles could fit in there, while not actually being switchable 23:51 <+bridge> [ddnet] but it's a well known puzzle map 23:53 <+bridge> [ddnet] So how exactly would it work if what i believed was totally incorrect? 23:54 <+bridge> [ddnet] nvm puzzle map does not use that 23:54 <+bridge> [ddnet] nvm puzzle box does not use that 23:54 <+bridge> [ddnet] I honestly don't think switchable freeze exists 23:54 <+bridge> [ddnet] though it might be a cool idea 23:55 <+bridge> [ddnet] oh no 23:55 <+bridge> [ddnet] a different tileset would do the trick so it won't get replaced 23:56 <+bridge> [ddnet] sounds like either losing the kinda sensible layer structure or backwards compatibility 23:57 <+bridge> [ddnet] hm i guess the timed freeze tile would fit well in the speedup layer 23:57 <+bridge> [ddnet] @Learath2 i saw it the other way around, I'm not used to think that the numbers on the Switch tiles are indicators for the amount of seconds these are active. Tho having tiles with switchable capabilities might be easier if one of the features have that 23:58 <+bridge> [ddnet] I once wanted to add a lot more to the switch code, like basic logic operators and stuff 23:58 <+bridge> [ddnet] @Patiga i wouldn't call it well done on the Speedup layer as it's name stands different approaches 23:59 <+bridge> [ddnet] 😮 i would love to play with them in the editor once you're done 23:59 <+bridge> [ddnet] since there is only one tile in the speedup layer so far, i believe that it could be used for such diverse tiles