00:39 <+bridge> [ddnet] [12:15 PM] Im 'corneum: noby would be the guy but i dont think he cares much about ddrace 00:39 <+bridge> [ddnet] 00:39 <+bridge> [ddnet] yeah i dont care about ddr really but i would be interested to work with any big server on anti cheat stuff 00:39 <+bridge> [ddnet] i have asked before about a way to replay teehist files thru a server that can run different types of anti bot checks im not sure what happened to this 13:34 <+bridge> [ddnet] @deen did you create the directory ~/.teeworlds/dumps/servers ? Idk maybe it was still 0.6 log system before fokko merged with vanilla and now it’s 0.7 style starting from dumps dir 13:43 <+bridge> [ddnet] I just merged the last few weeks 13:54 <+bridge> [ddnet] Hmm 13:55 <+bridge> [ddnet] I noticed complains about missing name change feature should we reimplement that for ddnet7? 13:55 <+bridge> [ddnet] So at least ddnet clients can change names 13:56 <+bridge> [ddnet] Im sure gamer would also adapt 14:08 <+bridge> [ddnet] oh and @deen could you please turn off circleci and appveyor so we can get our green checkmark back πŸ™‚ both are replaced by github actions now 14:59 <+bridge> [ddnet] @ChillerDragon Yes, name change would be cool, also thought about that with the ddnet client. 15:02 <+bridge> [ddnet] the logging system changed for sure 15:02 <+bridge> [ddnet] i just tested it 15:02 <+bridge> [ddnet] or well not sure if it changed but currently it is 0.7 style 15:12 <+bridge> [ddnet] ok 15:30 <+bridge> [ddnet] @deen Could you deactivate the CI services, please? GitHub Actions does the work now. 15:30 <+bridge> [ddnet] (in DDNet7) 15:38 <+bridge> [ddnet] @onby nothing happened there yet 😦 15:39 <+bridge> [ddnet] What do you mean deactivate the services 15:39 <+bridge> [ddnet] You mean remove the webhooks? 15:42 <+bridge> [ddnet] yes 15:42 <+bridge> [ddnet] they fail the builds cause their files got removed already 15:45 <+bridge> [ddnet] Ok, removed them 15:45 <+bridge> [ddnet] Where are we building now? 15:46 <+bridge> [ddnet] GitHub Actions, as I said 15:46 <+bridge> [ddnet] Does github host the vms? 15:46 <+bridge> [ddnet] Yes 15:47 <+bridge> [ddnet] @Learath2 and provide compiled/packaged binarys as public download 15:47 <+bridge> [ddnet] @Learath2 just check the build now, on this commit 15:47 <+bridge> [ddnet] i could not reproduce the logging issue 15:47 <+bridge> [ddnet] not before and not after the merge 15:47 <+bridge> [ddnet] the second merge 15:49 <+bridge> [ddnet] any reason you didn't upgrade the 0.6 repository aswell? 15:51 <+bridge> [ddnet] why not 15:54 <+bridge> [ddnet] @Learath2 did not find the time yet i prioritize things that support 0.7 obviously 15:55 <+bridge> [ddnet] obviously, who cares about the stable version of ddnet we are supposed to be maintaining while there is cutting edge 0.7 to mess around with 15:55 <+bridge> [ddnet] yes 15:56 <+bridge> [ddnet] appreciation of my work at this point 15:58 <+bridge> [ddnet] You should fix the artifact names too btw 15:59 <+bridge> [ddnet] @ChillerDragon 16:03 <+bridge> [ddnet] hm? 16:03 <+bridge> [ddnet] whats wrong 16:08 <+bridge> [ddnet] the artifacts are prefixed by `teeworlds-` 16:17 <+bridge> [ddnet] ah ye idk where that comes from was too lazy yet xd 16:17 <+bridge> [ddnet] It's at the very bottom of the workflow file 16:17 <+bridge> [ddnet] The last step, uploading of artifacts 16:19 <+bridge> [ddnet] Make that ddnet7 to match the others? πŸ˜› 16:20 <+bridge> [ddnet] DDNet7* 16:20 <+bridge> [ddnet] or not? 16:20 <+bridge> [ddnet] teeworlds used all lowercase, I thought you'd want to be compliant 16:22 <+bridge> [ddnet] can we pls rename ddnet6 to ddnet6 and ddnet7 to ddnet :p 16:23 <+bridge> [ddnet] You wish 16:23 <+bridge> [ddnet] πŸ™‚ 16:33 <+bridge> [ddnet] @Learath2 can we get a badge with a useful link? πŸ™‚ 16:34 <+bridge> [ddnet] Sure, where would you like it to head? 16:34 <+bridge> [ddnet] To the workflow page? 16:34 <+bridge> [ddnet] yes 16:34 <+bridge> [ddnet] somewhere where I can see a more detailed status 16:35 <+bridge> [ddnet] Will do in a sec 16:38 <+bridge> [ddnet] @heinrich5991 apparently there is no link to the latest run, best I can do is link to the page with all runs 16:39 <+bridge> [ddnet] that page is not public i think 16:39 <+bridge> [ddnet] Oh, yep that's not public 16:53 <+bridge> [ddnet] @heinrich5991 I don't see anything to link to that'd be useful, except maybe the latest commit itself 16:54 <+bridge> [ddnet] Sadly their links are not handled that well so you can look at `commit/master`Β but not `commit/master/checks`Β you need the full commit sha for that 16:58 <+bridge> [ddnet] apparently they are working on a public version of the /actions page so I guess we can wait for that 17:19 <+bridge> [ddnet] @JFox seems to have a libcurl issue I can't diagnose, it's timing out and giving it more time doesn't seem to help but he can access the link from a browser and that works 17:19 <+bridge> [ddnet] @jao how does one append maps? 17:21 <+bridge> [ddnet] top left 17:29 <+bridge> [ddnet] And what does appending a map do? :P 17:29 <+bridge> [ddnet] Just adds the layers from the second map to the first? 17:36 <+bridge> [ddnet] Actually, this seems to be taken care of 18:00 <+bridge> [ddnet] merges the other map into the current map, excluding game layers 18:01 <+bridge> [ddnet] btw that could be optimized to discard duplicate layers/images/envelopes/etc 18:02 <+bridge> [ddnet] It could be, but the problem ravie mentions seems to be accounted for in the code 18:02 <+bridge> [ddnet] if it doesn't work, it's a bug 18:03 <+bridge> [ddnet] can u link code? 18:05 <+bridge> [ddnet] oh @jao the editor pro could you please add quad mass delete πŸ™‚ 18:06 <+bridge> [ddnet] its easy to shift select quads and spam then all over the place and then it takes ages to move or delete them 18:07 <+bridge> [ddnet] @Ryozuki what is a CChatCommands and why didn't you abuse the console like we did for it? πŸ˜› 18:07 <+bridge> [ddnet] Abuse? 18:07 <+bridge> [ddnet] :monkaS: 18:08 <+bridge> [ddnet] @jao game/editor/io.cpp:L1322 18:08 <+bridge> [ddnet] U mean the server side commands added on 0.7.4 18:08 <+bridge> [ddnet] Yeah 18:08 <+bridge> [ddnet] Is smth wrong? 18:09 <+bridge> [ddnet] Not really, I was just wondering why you didn't just let the console handle it 18:09 <+bridge> [ddnet] I added a packet i think its way better 18:09 <+bridge> [ddnet] @Learath2 i made the server redirect the packet to the console, like through the chat 18:10 <+bridge> [ddnet] I understand the packet, I don't understand why you don't just execute the command as a console line to get the free argument parsing and stuff 18:10 <+bridge> [ddnet] (ddnet7) 18:10 <+bridge> [ddnet] https://github.com/ddnet/ddnet7/commit/0d88a4d649fef9ce4ef98041b55782ade1b22caa 18:11 <+bridge> [ddnet] Idi 18:11 <+bridge> [ddnet] Idk 18:11 <+bridge> [ddnet] I made it simple, you can do like fokkonaut i guess 18:12 <+bridge> [ddnet] I guess keeping it abstract like this is good enough, should be simple enough to override it 18:12 <+bridge> [ddnet] Better not bloat it, u know how sensible tw devs are 18:12 <+bridge> [ddnet] :lol: 18:12 <+bridge> [ddnet] @Ryozuki I added this to official ddnet7 already 18:12 <+bridge> [ddnet] nice 18:13 <+bridge> [ddnet] https://github.com/ddnet/ddnet7/blob/master/src/game/server/gamecontroller.cpp#L641 18:14 <+bridge> [ddnet] only added more or less important commands for now 18:14 <+bridge> [ddnet] also, added this cmdlist entry, when executing that, it will send the cmdlist, thats what Com_Cmdlist is for 18:14 <+bridge> [ddnet] @Ryozuki is there autocompletion btw? 18:14 <+bridge> [ddnet] yes, using enter 18:14 <+bridge> [ddnet] Only for command 18:14 <+bridge> [ddnet] so the server is sending the cmdlist aswell 18:14 <+bridge> [ddnet] no 18:14 <+bridge> [ddnet] sadly 18:15 <+bridge> [ddnet] Hardcoded? 18:15 <+bridge> [ddnet] I planned to add autocompletion someday but holidays ended 18:15 <+bridge> [ddnet] > send the cmdlist 18:15 <+bridge> [ddnet] its the same, old cmdlist in chat 18:15 <+bridge> [ddnet] https://github.com/ddnet/ddnet7/blob/master/src/game/server/gamecontroller.cpp#L648 18:16 <+bridge> [ddnet] Server sends 1 packet to client with info about a command 18:16 <+bridge> [ddnet] I added this, so player can select it with the arrow keys, and if they hit enter it will send the cmdlist 18:16 <+bridge> [ddnet] https://github.com/ddnet/ddnet7/blob/master/src/game/server/gamecontroller.cpp#L653 18:17 <+bridge> [ddnet] Interesting, I'll take a peek 18:18 <+bridge> [ddnet] I needed to modify the parameters for the command callback, and I added a check, whether the callback is 0 or not, if yes, execute the command like an old command, using the ExecuteLine thing, but if there is a callback, then of course it, like Com_Cmdlist 18:24 <+bridge> [ddnet] @Learath2 18:24 <+bridge> [ddnet] ```void CLayerTiles::ModifyEnvelopeIndex(INDEX_MODIFY_FUNC Func) 18:24 <+bridge> [ddnet] { 18:24 <+bridge> [ddnet] }``` 18:24 <+bridge> [ddnet] empty function 18:32 <+bridge> [ddnet] Do Tile layers even have envelopes? 18:33 <+bridge> [ddnet] yes 18:33 <+bridge> [ddnet] color animations 18:33 <+bridge> [ddnet] What for? 18:33 <+bridge> [ddnet] ooh 18:34 <+bridge> [ddnet] :poggers: 18:36 <+bridge> [ddnet] could we maybe display the envelope name in the layer menu? 18:39 <+bridge> [ddnet] ok too hard 18:40 <+bridge> [ddnet] > What for? 18:40 <+bridge> [ddnet] 18:40 <+bridge> [ddnet] To change color of tiles? xd 18:41 <+bridge> [ddnet] i use it sometimes to do pulsating freeze 18:41 <+bridge> [ddnet] u can also make flickering startlines 18:41 <+bridge> [ddnet] rainbow main tiles idk 18:42 <+bridge> [ddnet] @ChillerDragon fix the macos bug in my pr 18:42 <+bridge> [ddnet] yikes 18:42 <+bridge> [ddnet] where 18:42 <+bridge> [ddnet] https://github.com/ddnet/ddnet/pull/2046/checks?check_run_id=405569325 18:43 <+bridge> [ddnet] hdiutil: create failed - no mountable file systems 18:43 <+bridge> [ddnet] y i see 18:43 <+bridge> [ddnet] yikes 18:43 <+bridge> [ddnet] python2 lol 18:43 <+bridge> [ddnet] yikes 18:43 <+bridge> [ddnet] didnt build any 0.6 mac in a while idk right now 18:44 <+bridge> [ddnet] maybe run it with sudo? xd 18:46 <+bridge> [ddnet] upgrade to py3 :D 18:46 <+bridge> [ddnet] @Ryozuki why is there a MAX_COMMANDs btw? the autocompletion thing can't scroll? 18:46 <+bridge> [ddnet] no, sadly 18:46 <+bridge> [ddnet] can only have 22 commands in there max 18:47 <+bridge> [ddnet] Hmm, guess I'll have to code that first 18:47 <+bridge> [ddnet] what are you trying to do? 18:48 <+bridge> [ddnet] Well just making this into a complete feature 18:48 <+bridge> [ddnet] xd 18:48 <+bridge> [ddnet] With no command limit and autocompletion 18:48 <+bridge> [ddnet] autocomplwetion is there 18:48 <+bridge> [ddnet] Autocompletion for commands the client doesn't have to know about before compilation that is 18:48 <+bridge> [ddnet] ? 18:49 <+bridge> [ddnet] Oh, that is already there indeed 18:49 <+bridge> [ddnet] Couldn't get mine to complete for some reason πŸ€” 18:49 <+bridge> [ddnet] enter 18:55 <+bridge> [ddnet] @Learath2 will they be sorted alphabetically? 18:56 <+bridge> [ddnet] dont know whether they should or not 18:56 <+bridge> [ddnet] it breaks freedom 18:57 <+bridge> [ddnet] @ChillerDragon what happend, why do the workflows complete now 19:01 <+bridge> [ddnet] xd 19:01 <+bridge> [ddnet] idk 19:02 <+bridge> [ddnet] maybe ur branch was behind the fix from learath 19:13 <+bridge> [ddnet] I re ran them, it had trouble with the macOS vm 19:13 <+bridge> [ddnet] some stupid bug with storage mounting 19:17 <+bridge> [ddnet] Oh, workflows break bors too 20:16 <+bridge> [ddnet] Is there a way to get the max amount of glyphs that will fit in a given width? 20:16 <+bridge> [ddnet] @Jupstar βœͺ you'd know if there is one 20:26 <+bridge> [ddnet] do u know the font size? 20:27 <+bridge> [ddnet] if so you can load the glyph metrics and just advance a variable by the glyphs width + its bearing 20:27 <+bridge> [ddnet] @heinrich5991 is there any ddnet tool or libtw thingy where i can search for ddnet map settings? I tried ``strings`` but that doesnt seem to work 20:28 <+bridge> [ddnet] @jao can you try the envelope thing? 20:28 <+bridge> [ddnet] @Jupstar βœͺ yeah I know the size 20:29 <+bridge> [ddnet] But I don't know the text in advance 20:29 <+bridge> [ddnet] ah, then its impossible 20:30 <+bridge> [ddnet] u can load the max possible width of a glyph tho 20:31 <+bridge> [ddnet] @ChillerDragon you can run config_retrieve on a map to get the config out of it 20:31 <+bridge> [ddnet] i knew there was soemthing like that awesome thanks 20:31 <+bridge> [ddnet] https://www.freetype.org/freetype2/docs/tutorial/step2.html 20:31 <+bridge> [ddnet] 3. Global Glyph Metrics 20:31 <+bridge> [ddnet] max_advance_width 20:31 <+bridge> [ddnet] when i run apt install ddnet-tools do i have that in my path? 20:31 <+bridge> [ddnet] Oh that sounds like it'd be useful 20:32 <+bridge> [ddnet] Who knows, idk how we package ddnet for distros 20:32 <+bridge> [ddnet] if you build it'll be in your build directory 20:32 <+bridge> [ddnet] do you need it for teeworlds @Learath2 20:32 <+bridge> [ddnet] @Jupstar βœͺ yeah 20:33 <+bridge> [ddnet] then remember the font size is recalculated to a virtual screen size 20:33 <+bridge> [ddnet] hoq does it work @Learath2 ? i excpedted a config in stdout or something 20:33 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/669988081851433000/unknown.png 20:34 <+bridge> [ddnet] https://github.com/ddnet/ddnet/blob/master/src/engine/client/text.cpp#L805 20:34 <+bridge> [ddnet] @ChillerDragon I think it needs to be mapname outputfilename 20:34 <+bridge> [ddnet] hm 20:35 <+bridge> [ddnet] [2020-01-23 20:33:57][usage]: ./config_retrieve FILE1 [ FILE2... ] 20:35 <+bridge> [ddnet] thats unintuitive 20:35 <+bridge> [ddnet] @Jupstar βœͺ so I need to scale the max_advance_width the same way, right? 20:35 <+bridge> [ddnet] ah nvm it created a cfg next to the map thanks a lot @Learath2 20:35 <+bridge> [ddnet] better scale the font size and load the metrics for the actual font size then 20:35 <+bridge> [ddnet] should be documted somehow 20:36 <+bridge> [ddnet] freetype can round some metrics for some font sizes up and down 20:37 <+bridge> [ddnet] @Jupstar βœͺ Well we already have the font loaded, I was thinking of using that 20:37 <+bridge> [ddnet] @ChillerDragon https://github.com/heinrich5991/libtw2/blob/master/tools/src/bin/settings.rs 20:38 <+bridge> [ddnet] literally the tool you asked for 20:38 <+bridge> [ddnet] yea @heinrich5991 learath was faster but thanks πŸ™‚ 20:38 <+bridge> [ddnet] Well I'm guessing the libtw one can output to stdout and has better documentation πŸ˜› 20:39 <+bridge> [ddnet] yeah but metrics are always per font size 20:40 <+bridge> [ddnet] you cannot use font size 100 and just recalculate variables, because freetype has some degree of freedom 20:40 <+bridge> [ddnet] @Learath2 envelope thing works 20:40 <+bridge> [ddnet] oh wait u mean ur pr 20:41 <+bridge> [ddnet] @Learath2 cp the truncate code from how image names are rendered in layer menus 20:42 <+bridge> [ddnet] @Jupstar βœͺ how do we afford to load the font in the wrong size and then scale it then? 20:44 <+bridge> [ddnet] a font is not really size depended, you can request a fontsize and freetype calculates the font u are using to that metric 20:44 <+bridge> [ddnet] font glyphs are vectorized most often 20:46 <+bridge> [ddnet] `FT_Set_Pixel_Sizes(pFont->m_FtFace, 0, pSizeData->m_FontSize);` 20:46 <+bridge> [ddnet] CalculateTextWidth 20:46 <+bridge> [ddnet] ah 20:46 <+bridge> [ddnet] right i use for the gametile layers `CalculateTextWidth` 20:46 <+bridge> [ddnet] but not sure rn if its limited to numbers only 20:47 <+bridge> [ddnet] well u need a textless version anyway 20:47 <+bridge> [ddnet] but maybe that gives u the idea 20:49 <+bridge> [ddnet] @jao thanks for the tip, done 20:50 <+bridge> [ddnet] @Jupstar βœͺ hmm, I can't quite say I get it. If a font is not aware with which size it's loaded, how does it know the max_advance_width? 20:50 <+bridge> [ddnet] thought u know the font size 20:50 <+bridge> [ddnet] then u can just tell freetype 20:52 <+bridge> [ddnet] When we load a font we call `FT_New_Face`, The `FT_Face` we get has the field `max_advance_width`. Yet we gave no indication of font size yet 20:53 <+bridge> [ddnet] The global metrics are given in "font units" apparently 20:53 <+bridge> [ddnet] `FT_Set_Pixel_Sizes(pFont->m_FtFace, 0, AcutalFontSize);` 20:53 <+bridge> [ddnet] `int MaxTextCharacters = (int)((float)Width / (pFont->m_FtFace->size->metrics->max_advance >> 6));` 20:54 <+bridge> [ddnet] but you do know the font size? 20:55 <+bridge> [ddnet] Depends on what you mean by fontsize. I know it in terms of the units CTextRender would use 20:55 <+bridge> [ddnet] yeah 20:55 <+bridge> [ddnet] Idk what CText/CTextRender would push to underlying freetype though 20:56 <+bridge> [ddnet] text render gets a font size 20:56 <+bridge> [ddnet] then recalculates it to fit the transformation from virtual screen to actual screen size 20:56 <+bridge> [ddnet] then u can use the actual size to get the font size displayed on your actual monitor 20:56 <+bridge> [ddnet] and thats also the font size freetype needs 20:58 <+bridge> [ddnet] https://github.com/ddnet/ddnet/blob/master/src/engine/client/text.cpp#L1397 20:58 <+bridge> [ddnet] just use the code and all vars needed to get that actual size 20:58 <+bridge> [ddnet] thats the font size u can then use in `FT_Set_Pixel_Sizes` 21:00 <+bridge> [ddnet] What's the idea with a virtual screen anyway, I never really touched much of the graphics code 21:00 <+bridge> [ddnet] Why are we doing all this rescaling? 21:00 <+bridge> [ddnet] i think mostly so full hd looks same as 4k 21:00 <+bridge> [ddnet] bcs same aspect ratio 21:01 <+bridge> [ddnet] tw also uses it too define a maximal possible view distance 21:02 <+bridge> [ddnet] dunno hard to explain, tw makes some weird stuff 21:02 <+bridge> [ddnet] tw is also flipped upside down 21:03 <+bridge> [ddnet] just to flip it upside down in the end xd 21:03 <+bridge> [ddnet] but actually to make it ez to create the gui 21:03 <+bridge> [ddnet] from top to buttom πŸ˜„ 21:03 <+bridge> [ddnet] I should read all this sometime 21:04 <+bridge> [ddnet] Why are you shifting the max advance btw? 21:04 <+bridge> [ddnet] if i remember correctly freetype uses a own metric which isnt pixels 21:04 <+bridge> [ddnet] and thats how u get the pixels xd 21:05 <+bridge> [ddnet] `The metrics found in face->glyph->metrics are normally expressed in 26.6 pixel format (i.e., 1/64th of pixels)` 21:05 <+bridge> [ddnet] Ah, for fractional placement 21:06 <+bridge> [ddnet] dunno if thats only for glyphs 21:06 <+bridge> [ddnet] ` They are expressed in 26.6 pixel format but rounded for historical reasons.` 21:06 <+bridge> [ddnet] ok 21:06 <+bridge> [ddnet] so should be right 21:07 <+bridge> [ddnet] Thanks @Jupstar βœͺ 21:18 <+bridge> [ddnet] @Learath2 i dont like the wider menu 21:18 <+bridge> [ddnet] and u still need to show the envelope number since names arent unique 21:19 <+bridge> [ddnet] like "6: name" if it has a name otherwise just the number 21:19 <+bridge> [ddnet] Huh, I thought wider would be better, I can shrink it down again 21:25 <+bridge> [ddnet] youre also not checking if the name is empty 21:25 <+bridge> [ddnet] Fixed both 21:26 <+bridge> [ddnet] Freetype is special 21:29 <+bridge> [ddnet] @Ryozuki I don't quite like that you have 2 copies of CChatCommand, 1 on the client and 1 on the server, but I don't see a nicer way to do it either 21:29 <+bridge> [ddnet] did you have something in mind that you didn't do because you didn't feel like spending the time? 21:32 <+bridge> [ddnet] @Learath2 sending current args to sv to request autocompletion values 21:33 <+bridge> [ddnet] All its own packeta 21:33 <+bridge> [ddnet] Packets 21:34 <+bridge> [ddnet] If packet is too big just put a flag that more autocompletion values will arrive on thebprevious packet 21:34 <+bridge> [ddnet] Idl if its good idea but i was lazy 21:43 <+bridge> [ddnet] @Learath2 looks good now 21:51 <+Learath2> @jao feel free to merge it then 21:52 <+bridge> [ddnet] wrong jao 21:53 <+bridge> [ddnet] forgot to change name back lol 21:53 <+bridge> [ddnet] oh, there is another jao πŸ˜›