00:54 <+bridge> [ddnet] what is the "use high dpi" check for? 00:55 <+bridge> [ddnet] if you have a hidpi display, this determines whether ddnet will run at the native resolution or not 00:55 <+bridge> [ddnet] if you have a resolution smaller than 3840x2160, you likely don't have a hidpi display 00:55 <+bridge> [ddnet] and then the option doesn't matter 00:59 <+bridge> [ddnet] alright. so i can just uncheck it 00:59 <+bridge> [ddnet] If you don't have a highdpi display, it won't change anything 00:59 <+bridge> [ddnet] it doesn't matter if you check it or not 09:30 <+bridge> [ddnet] @heinrich5991 hm, won't that cause rust to become a mess chock full of backwards compatibility code for deprecated features? 09:58 <+bridge> [ddnet] the modern way in rust to do a try! is with the ? operator right? 10:00 <+bridge> [ddnet] https://doc.rust-lang.org/book/ch09-02-recoverable-errors-with-result.html#a-shortcut-for-propagating-errors-the--operator 10:02 <+bridge> [ddnet] @Learath2 10:02 <+bridge> [ddnet] Why my points in command dont update? 10:03 <+bridge> [ddnet] :justatest: 10:08 <+bridge> [ddnet] Wat? 10:14 <+bridge> [ddnet] @Learath2 there's the concept of editions, which allows to deprecate features 10:14 <+bridge> [ddnet] but it's opt-in 10:14 <+bridge> [ddnet] you can opt into a newer edition 10:14 <+bridge> [ddnet] code is interoperable in both directions, so it's not like a python 2/3 split 14:26 <+bridge> [ddnet] how can i set up my server so that grenades dont disappear when i /kill 14:27 <+bridge> [ddnet] `sv_destroy_bullets_on_death 0` 14:28 <+bridge> [ddnet] 💋 💋 14:35 <+bridge> [ddnet] i wish rust rls worked better 14:36 <+bridge> [ddnet] its rly a drawback for me 14:36 <+bridge> [ddnet] clangd works way way better and c++ syntax and even dependency and include dirs seem more complicated yet works better than rls 15:27 <+bridge> [ddnet] @Ryozuki try intellij with rust plugin 15:27 <+bridge> [ddnet] it's really nice 15:28 <+bridge> [ddnet] it was worse for me cuz for some reason intellij froze every time 15:28 <+bridge> [ddnet] hm 15:28 <+bridge> [ddnet] maybe with 2020 update it works 15:28 <+bridge> [ddnet] it worked before, dunno what's different about our setups 21:56 <+bridge> [ddnet] starting to test my map parser too see what i need to fix 21:56 <+bridge> [ddnet] tho i have much more fun right now arguing why on of the maps is broken, not my tool 21:56 <+bridge> [ddnet] the moderate map "DarkRoad" has like 20 envelopes, didnt figure out yet where they actually get used 21:57 <+bridge> [ddnet] the 20th envelope however 21:57 <+bridge> [ddnet] has a normal first point 21:57 <+bridge> [ddnet] the second is on -402456.576 secs 21:57 <+bridge> [ddnet] with the curve type 16777216 (only curve types 0-4 exist to my knowledge) 21:58 <+bridge> [ddnet] seems like some shifting of bytes happened, tho all the other envelopes seem fine 22:04 <@Learath2> . 22:05 <+bridge> [ddnet] . 22:06 <+bridge> [ddnet] I was hoping that'd scroll my weechat up 😛 22:14 <+bridge> [ddnet] hmm 22:14 <+bridge> [ddnet] there is more fun to be had on another map 22:15 <+bridge> [ddnet] the solo map "Extension 1.0" has a envelope with type 8 22:15 <+bridge> [ddnet] there only are types 1, 2, 4 22:16 <+bridge> [ddnet] when you open it in the ddnet editor, the value buttons look really messed up and display some random string 22:16 <+bridge> [ddnet] and hovering over them either displays some random data or crashes your client 22:16 <+bridge> [ddnet] im a tiny bit scared to click them 22:18 <+bridge> [ddnet] instant RCE 22:21 <+bridge> [ddnet] same with our favourite map "nut_hardcore_bestof" 22:22 <+bridge> [ddnet] they each share that their maps have 6 envelopes with the third being broken and 4-6 empty 22:22 <+bridge> [ddnet] mightve been a broken (maybe non-standard) map editor 22:24 <+bridge> [ddnet] maybe from a time with the ddnet/ddrace split? 22:48 <+bridge> [ddnet] Maybe from even earlier than that? Could be the 0.5 -> 0.6 map conversion 23:00 <+bridge> [ddnet] whats ddnet/ddrace split 23:01 <+bridge> [ddnet] ddnet used to be a competitor to the ddrace mod 🙂 23:01 <+bridge> [ddnet] due to lack of development, ddnet easily won the competition 😄 23:35 <+bridge> [ddnet] How can I use a template type within a cpp file? 23:39 <+bridge> [ddnet] I just want to use it in one function 23:41 <+bridge> [ddnet] template 23:42 <+bridge> [ddnet] void yourfunction(T a, T b) 23:42 <+bridge> [ddnet] but i dont want to pass a T 23:42 <+bridge> [ddnet] i want to use a T inside 23:42 <+bridge> [ddnet] i dont get it 23:43 <+bridge> [ddnet] ``` 23:43 <+bridge> [ddnet] int SendPackMsg(T *pMsg, int Flags, int ClientID) 23:43 <+bridge> [ddnet] { 23:43 <+bridge> [ddnet] int Result = 0; 23:43 <+bridge> [ddnet] T Tmp;``` 23:43 <+bridge> [ddnet] like this Tmp, but I dont want to pass a T like *pMsg 23:43 <+bridge> [ddnet] i dont think u can do that 23:43 <+bridge> [ddnet] well 23:43 <+bridge> [ddnet] u can 23:43 <+bridge> [ddnet] with 23:43 <+bridge> [ddnet] template 23:43 <+bridge> [ddnet] void SendPackMsg(..) { 23:43 <+bridge> [ddnet] T tmp; 23:43 <+bridge> [ddnet] i think 23:44 <+bridge> [ddnet] iirc 23:44 <+bridge> [ddnet] test it 23:44 <+bridge> [ddnet] u have to pass a type either way 23:44 <+bridge> [ddnet] or the compiler wont know 23:44 <+bridge> [ddnet] maybe another knows more 23:45 <+Konsti> The most funny thing about the gamebreaking physics change to the hammer, heinrich5991 and Learath2 did without listening to the arguments of the community is that the thing which was meant to be fixed still works bugged like before 23:45 <+bridge> [ddnet] > void SendPackMsg(..) { 23:45 <+bridge> [ddnet] dont get it? 23:45 <+bridge> [ddnet] u will have to call SendPackMsg() 23:46 <+bridge> [ddnet] i dont get exactly what u try to achieve 23:46 <@Learath2> oh oh, I remember that change, I didn't know the community consisted of 2 name banned cheaters and that guy who complains about everything who'd rather play on 0.5 23:48 <+Konsti> "cheaters" is a good argument since it opens a lot of cheats in a lot of maps. Still its a bad thing which should never had been done 23:48 <+bridge> [ddnet] @Ryozuki I want to use T inside CEventHandler::Snap, so I can create a T *pEvent there, so I dont have to copy code for a few different events 23:48 <+bridge> [ddnet] i dont think people are getting namebanned for the type of "cheating" that konsti is referring to? 23:48 <+Konsti> i was never banned from DDNet Servers 23:49 <+bridge> [ddnet] maybe u just want to use simple inheritance? make a event interface 23:49 <+bridge> [ddnet] sry i gotta play a dota ranked now 23:49 <+bridge> [ddnet] @Ryozuki basically, i want to make this code just one block: 23:49 <+bridge> [ddnet] https://github.com/fokkonaut/F-DDrace/blob/F-DDrace/src/game/server/eventhandler.cpp#L54-L93 23:50 <+bridge> [ddnet] yeah i guess with a event interface u can do that 23:50 <+bridge> [ddnet] Whats that? 23:50 <+bridge> [ddnet] a interface is like a class 23:50 <+bridge> [ddnet] but it doesnt implement anything 23:51 <+bridge> [ddnet] brb 23:51 <@Learath2> the solution to this would probably be to use dynamic casts with inheritence 23:52 <+bridge> [ddnet] how do they work? 23:52 <@Learath2> but we don't do dynamic casts in teeworlds code, we instead fake them by keeping information about the type of the thing and doing an unsafe cast 23:53 <@Learath2> you can try an interface like ryozuki says 23:56 <+bridge> [ddnet] ``` 23:56 <+bridge> [ddnet] if (m_aTypes[i] == NETEVENTTYPE_DEATH || m_aTypes[i] == NETEVENTTYPE_DAMAGE) 23:56 <+bridge> [ddnet] { 23:56 <+bridge> [ddnet] CNetEvent_Death *pEvent = (CNetEvent_Death *)&m_aData[m_aOffsets[i]]; 23:56 <+bridge> [ddnet] if (m_aTypes[i] == NETEVENTTYPE_DAMAGE) 23:56 <+bridge> [ddnet] (CNetEvent_Damage *)pEvent;``` 23:56 <+bridge> [ddnet] well, that works too :D 23:56 <+bridge> [ddnet] but i wont do it haha 23:58 <+bridge> [ddnet] Well, I could 🤔 23:59 <+bridge> [ddnet] @Learath2 is there anything bad about it? xD 23:59 <@Learath2> just no