00:16 <+bridge> [ddnet] @fokkonaut there are 2 (possible) reasons for your map problem: 00:16 <+bridge> [ddnet] 1) in ddnet `GetDataSize` returns the actual size of the data, while in vanilla it's the (compressed) data size in the file 00:16 <+bridge> [ddnet] 2) 0.7 has tile-skip for better map compression. when the map is loaded, the tile layers are unpacked and the data in the datafile is replaced, but the size is not updated 00:18 <+bridge> [ddnet] https://github.com/teeworlds/teeworlds/commit/2503dfdaec272720d3cbac407407649b21f1f2e6 00:22 <+bridge> [ddnet] just remove the check. if the the map is broken, the client will probably already crash when unpacking the layer 00:27 <+bridge> [ddnet] don't remove the check 00:28 <+bridge> [ddnet] this can lead to a crash on a malformed entities layer, e.g. from another mod, when you switch to entities 01:05 <+bridge> [ddnet] for tilemap layers with version <= 3 keep the check but use `GetDataSize` from ddnet 01:05 <+bridge> [ddnet] for version 4 i don't really see a reason for keeping it 01:12 <+bridge> [ddnet] @redix to not read out of bounds 01:14 <+bridge> [ddnet] when unpacking the tile skip stuff it allocates new memory with the exact size anyway 01:15 <+bridge> [ddnet] but it might be a good idea to add a bounds check there =\ 01:15 <+bridge> [ddnet] I see. that sounds like a reason 🙂 01:15 <+bridge> [ddnet] oh, is it an out of bounds write? 😦 01:15 <+bridge> [ddnet] nope just read 01:15 <+bridge> [ddnet] how does the unpacking work? 01:16 <+bridge> [ddnet] I wrote that. I should remember 01:16 <+bridge> [ddnet] ah no, I didn't 01:16 <+bridge> [ddnet] oy wrote the unpacking. linked the commit above 01:16 <+bridge> [ddnet] I only wrote the write code. phew 01:16 <+bridge> [ddnet] ah, that doesn't look exploitable 01:16 <+bridge> [ddnet] good 02:33 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/686748466285641759/unknown.png 02:38 <+bridge> [ddnet] louis u little shit 02:38 <+bridge> [ddnet] :kek: 05:47 <+bridge> [ddnet] @heinrich5991 @redix I fixed GetDataSize in my client already, can one of you look into this again and make a pr? 09:40 <+bridge> [ddnet] Ah the demo bug, I definitely know which demo bug he is talking about 10:23 <+bridge> [ddnet] @Learath2 can you commit your command stuff you did in the branch to master? 10:23 <+bridge> [ddnet] would be cool 10:23 <+bridge> [ddnet] (ddnet7) 10:23 <+bridge> [ddnet] It 's not a great idea without the patch in master 10:23 <+bridge> [ddnet] I mean teeworlds/teeworlds master 10:24 <+bridge> [ddnet] it is fixed in master 10:24 <+bridge> [ddnet] Just no release yet 10:25 <+bridge> [ddnet] or do you mean the pr 10:25 <+bridge> [ddnet] you did 10:25 <+bridge> [ddnet] https://github.com/teeworlds/teeworlds/pull/2479 10:27 <+bridge> [ddnet] Does this pr + the commits from you in ddnet7 work together? 10:35 <+bridge> [ddnet] Yep, they belong together, otherwise the pr in ddnet7 sends argument format in the ddnet way and the client craps out 10:36 <+bridge> [ddnet] Ah yea, but there is some other commit in F-DDrace that fixes commands with latest master 10:36 <+bridge> [ddnet] i dont know which right now, but would like to add that to ddnet7 10:36 <+bridge> [ddnet] because F-Client users are not able to use commands without pressing esc first on dddnet7, but on FDdrace it works 10:38 <+bridge> [ddnet] u know the name f-client is already taken.. 10:38 <+bridge> [ddnet] for a variety of reasons u should not name ur client after this well known bot client 10:38 <+bridge> [ddnet] this is for 0.7, for new players, it doesnt matter imo 10:43 <+bridge> [ddnet] @Learath2 can you merge all the commands.h commits to ddnrt7? 10:43 <+bridge> [ddnet] they are missing and required for master client to use commands 10:44 <+bridge> [ddnet] name it fokkolient instead :p 10:44 <+bridge> [ddnet] Mh, nah 10:44 <+bridge> [ddnet] I dont think its a big problem tbh 10:44 <+bridge> [ddnet] Its 0.6 <-> 0.7 10:45 <+bridge> [ddnet] @fokkonaut @ChillerDragon btw, the template is done in around 50%, so should be able to finish it today 10:45 <+bridge> [ddnet] Nice 10:45 <+bridge> [ddnet] if u expect all 0.6 players to stay in 0.6 forever sure 10:47 <+bridge> [ddnet] I dont care 10:48 <+bridge> [ddnet] kiddy answer but ok 10:50 <+bridge> [ddnet] @noby I dont care about 0.6 players and whether they move to 0.7. I just want to play in 0.7, develop my client, ddnet7 a bit and F-DDrace, to provide something for those who play 0.7 10:50 <+bridge> [ddnet] thats cool 10:50 <+bridge> [ddnet] Also, I personally like to go with vanilla 10:50 <+bridge> [ddnet] im not trying to stop u from doing that lol 10:51 <+bridge> [ddnet] i just think u might want to change the name 10:52 <+bridge> [ddnet] first fix skins, they look utterly trash 10:52 <+bridge> [ddnet] I know there was this bot client before, but its not that I have a F-Client for 0.6, where confusion can occur, its 0.7 and most 0.7 playery never played 0.6, so I dont know where the problem is. Also F-Client by Fallen is not that spread 10:53 <+bridge> [ddnet] well if u dont care if ppl get confused i guess it doesnt matter 10:54 <+bridge> [ddnet] also i dont think thats true, plenty of players have moved from 0.6 to 0.7 12:02 <+bridge> [ddnet] @fokkonaut what do you mean by commands.h commits? 12:02 <+bridge> [ddnet] my pr should be adding those aswell 12:03 <+bridge> [ddnet] no, commands.h stuff is in vanilla master already, but not in ddnet7 12:04 <+bridge> [ddnet] but it should be a part of my pr in ddnet7 12:04 <+bridge> [ddnet] well not pr, branch 12:04 <+bridge> [ddnet] ah 12:05 <+bridge> [ddnet] but can you add them to master 12:06 <+bridge> [ddnet] all of them 12:06 <+bridge> [ddnet] I can get the entire thing in master, but then vanilla master wouldn't be able to see the commands properly 12:07 <+bridge> [ddnet] ? ofc 12:07 <+bridge> [ddnet] my client is Vanilla master and on fddrace it works 12:07 <+bridge> [ddnet] fddr has those 12:08 <+bridge> [ddnet] It would show all the commands, but the argument lists would break the console 12:08 <+bridge> [ddnet] so you shouldn't be able to use the commands registered by ddnet 12:09 <+bridge> [ddnet] ahh, yea 12:09 <+bridge> [ddnet] oy has to get active xd 12:27 <+bridge> [ddnet] well no 12:43 <+bridge> [ddnet] @fokkonaut no, I don't want to look into this. if you tell me `Size` I could maybe make an educated guess 12:45 <+bridge> [ddnet] nice that you're doing ddnet on 0.7 🙂 12:46 <+bridge> [ddnet] 🙂 12:49 <+bridge> [ddnet] @heinrich5991 :) 13:22 <+bridge> [ddnet] @fokkonaut I'll look into it for the reasonable price of 10 euros per hour and it's free if it takes less then an hour 13:27 <+bridge> [ddnet] xd 14:00 <+bridge> [ddnet] > @fokkonaut I'll look into it for the reasonable price of 10 euros per hour and it's free if it takes less then an hour 14:00 <+bridge> [ddnet] @Learath2 14:00 <+bridge> [ddnet] Then you will wait 10h free 100€ :troll: 14:03 <+bridge> [ddnet] oh no, you just found an exploit in every employment contract 14:07 <+bridge> [ddnet] Most hourly people I know actually have a minimum billable hours clause in their contract, so they bill you atleast X hours even if it takes less 15:04 <+bridge> [ddnet] @fokkonaut just add `|| pTMap->m_Version == 4` to the check. For tele, speedup, ... layers just leave it as it is. They cannot use tile skip anyway 15:04 <+bridge> [ddnet] ? 15:04 <+bridge> [ddnet] none of the layers renders 15:05 <+bridge> [ddnet] Wasn't it just on vanilla maps? 15:06 <+bridge> [ddnet] no, also on an aip gores, but not sure whether that was saved with zillywoods client 15:07 <+bridge> [ddnet] or vanilla 15:07 <+bridge> [ddnet] i will try whether zillywoods breaks this, or vanilla client 15:07 <+bridge> [ddnet] if yes, then i will tell chillerdragon to stop support his editor (he made an experimental editor for 0.7 in his client, uses some of ddnet layers) 15:14 <+bridge> [ddnet] ok so the bug happens with maps that are saved with vanilla clients 15:14 <+bridge> [ddnet] @redix 15:16 <+bridge> [ddnet] Yeah, because they use version 4 layers with tile skip 15:16 <+bridge> [ddnet] But these maps don't contain custom layers like tele and speedup 15:18 <+bridge> [ddnet] ah, 0.6 doesnt use tile skip? 15:19 <+bridge> [ddnet] Nope 15:20 <+bridge> [ddnet] okay, adding check for version >= 4 works :) thanks 15:20 <+bridge> [ddnet] 👍 15:20 <+bridge> [ddnet] So i dont need to add it for the other layers i guess? but would make sense in terms of keeping it the same 15:20 <+bridge> [ddnet] or if i start making a map editor 15:20 <+bridge> [ddnet] like, adding those layers 15:22 <+bridge> [ddnet] Well yes, you could add tile skip for the extended data. But this also requires serverside support. So the maps won't work on the current ddnet7 version 15:23 <+bridge> [ddnet] ok 15:23 <+bridge> [ddnet] thank you :) 15:23 <+bridge> [ddnet] i wont add it then, but would i need to do something in order to be able to save maps from my client for ddnet7? 15:28 <+bridge> [ddnet] If you want to support all the custom layers, you ofc need support for them in the editor :D 15:29 <+bridge> [ddnet] Same for other things like sounds, ... 15:29 <+bridge> [ddnet] Right now the client will just drop them when you load a nap from ddnet 16:36 <+bridge> [ddnet] I forgot about the layer extensions project 😦 17:28 <+bridge> [ddnet] @Learath2 not on vanilla, interesting 😛 17:28 <+bridge> [ddnet] @Learath2 how can I declare a function pointer to a function with C calling convention? 18:08 <+bridge> [ddnet] hey, in ddnet client the entities background color will be rendered more and more when cl_overlay_entities increases. at 100 ofc, it is fully rendered without transparency. in my client, it is too on 100, but before 100 it is not rendered partly, but the main background gets more and more transparent, until at 99 it is basically white and at 100 again the entities bg color applies. No idea why, looked through everything and cant find why, 18:56 <+bridge> [ddnet] @heinrich5991 do you know the signature of the function you are pointing to? 18:57 <+bridge> [ddnet] yes 18:57 <+bridge> [ddnet] it seems the only way to do it is to typedef the function pointer type in an `extern "C"` block :/ 18:59 <+bridge> [ddnet] oh in C++? 19:00 <+bridge> [ddnet] yep you need the `extern "C"` but you don't need an entire block, maybe that'd make it look a little better 19:02 <+bridge> [ddnet] @heinrich5991 a `std::function` doesn't really care about calling convention, idk what you are doing but maybe you could abuse that 19:02 <+bridge> [ddnet] how do you not do a block? 19:02 <+bridge> [ddnet] `std::function` can come with overhead though, not sure if it HAS to have overhead 19:03 <+bridge> [ddnet] `extern "C" void (*m_pfnLog)(const char *pLine, void *pUserdata);` didn't work 19:03 <+bridge> [ddnet] `extern "C" typedef int (*fcnptr)(int)` should work 19:04 <+bridge> [ddnet] @heinrich5991 define didn't work? 19:04 <+bridge> [ddnet] ah with typedef it works 19:04 <+bridge> [ddnet] define? 19:05 <+bridge> [ddnet] As in what happens? Does it assume m_pfnLog is a function it should call with c++ calling conventions? 19:05 <+bridge> [ddnet] it gives a syntax error 19:07 <+bridge> [ddnet] Hmm, what happens when you don't have the extern "C" anyway? 19:07 <+bridge> [ddnet] Linker issues? 19:08 <+bridge> [ddnet] haven't tried 19:08 <+bridge> [ddnet] C/C++ don't necessarily share a calling convention (or do they?) 19:10 <+bridge> [ddnet] @Learath2 happen to know that? ^ 19:12 <+bridge> [ddnet] I'm not sure how it applies to function pointers, but C++ mangles function names which is the only incompatibility iirc 19:12 <+bridge> [ddnet] I think you are fine without the extern "C" 19:12 <+bridge> [ddnet] Oh and operator overloading, that also creates an incompatibility (still due to naming issues) 19:13 <+bridge> [ddnet] but function pointers don't care about names 19:13 <+bridge> [ddnet] yeah, that's why I think you don't need the extern "C" 19:13 <+bridge> [ddnet] ok, will do without 22:53 <+bridge> [ddnet] ^ useless