08:28 <+bridge> [ddnet] @FallenKN people have been asking for a better mark for afk people since I started coding on ddrace 7-8 years ago 08:29 <+bridge> [ddnet] I think delivering sth is better then delivering nothing and asking people to git good 08:32 <+bridge> [ddnet] @Learath2 true, I can make a pr for the emote mark if needed 08:33 <+bridge> [ddnet] Spamming zzz? 08:34 <+bridge> [ddnet] That's hardly better and it's server sided 08:35 <+bridge> [ddnet] not spamming 08:35 <+bridge> [ddnet] displaying the bubble permanently, using playerflag to render clientside 08:37 <+bridge> [ddnet] Dont you think that might get crowded on maps like bit2/s3 (t0 maps where this is most needed) where there could be a lot of tees afk? 08:38 <+bridge> [ddnet] Tbh best would be if we could mark the tee itself somehow, but I couldnt come up with anything that isnt terribly ugly 08:39 <+bridge> [ddnet] I guess I will have to look at these maps to see what you mean 08:40 <+bridge> [ddnet] I am not even saying that the mark as is right now is bad, the emote way was just a more noticeable way of displaying it 08:40 <+bridge> [ddnet] Yes, I also considered the emote but was thinking it could be way too crowded to see which tee is actually afk 08:40 <+bridge> [ddnet] The mark also fails at that though I guess 08:41 <+bridge> [ddnet] exactly 08:41 <+bridge> [ddnet] But other ways like changing skins to display afk are ugly 08:41 <+bridge> [ddnet] Maybe a red "aura" around the tee? 08:42 <+bridge> [ddnet] Sounds ugly tho :( 08:42 <+bridge> [ddnet] Coloring the tee outline red? 08:42 <+bridge> [ddnet] I wonder what that'd look like 08:43 <+bridge> [ddnet] I tried colorint the eyes, looked very weird 08:44 <+bridge> [ddnet] Can't imagine it being that bad tbh 08:44 <+bridge> [ddnet] I'm going to try the emote way later and will test it in crowded areas 08:44 <+bridge> [ddnet] Eyes were gud imo 08:49 <+bridge> [ddnet] @archimede67 eyes we had since the beginning, it's just not that obvious that people always wanted sth better 08:49 <+bridge> [ddnet] but even worse is that you can override it with eye emotes 08:49 <+bridge> [ddnet] tbh the eye emotes were not a good idea to implement when we were using the eyes to signify tee state 08:52 <+bridge> [ddnet] So maybe change it? 08:53 <+bridge> [ddnet] So that the tee state overrides the tee's eye emote 08:54 <+bridge> [ddnet] that feature already lost it's trustw 08:54 <+bridge> [ddnet] trustability 08:54 <+bridge> [ddnet] Ah? 08:55 <+bridge> [ddnet] people just dont trust the eye emote, as evidenced by the dozens of people failing a day trying to pick up an afk 08:55 <+bridge> [ddnet] or they just can't read the tee state from it easily, either way it's just not that good 08:56 <+bridge> [ddnet] Yea :/ 08:56 <+bridge> [ddnet] it's very inconsistent tbh, an afk tee in freeze has different eye emotes then an afk tee out of freeze 08:57 <+bridge> [ddnet] so now you need a mental map, blink in freeze is not afk, blink out of freeze is afk 08:57 <+bridge> [ddnet] Yea 08:57 <+bridge> [ddnet] Like not in freeze u have eyes open and in freeze eyes closed 08:58 <+bridge> [ddnet] I'm pretty sure we'll add a consistent mark this release, so if anyone comes up with a better mark, do it before we release πŸ˜› 09:00 <+bridge> [ddnet] For afks or for normal tee's aswell? 09:00 <+bridge> [ddnet] afks 09:00 <+bridge> [ddnet] Ok 09:00 <+bridge> [ddnet] Why would we mark the non-afks, they are the minority 09:00 <+bridge> [ddnet] that'd be bad ux πŸ˜› 09:01 <+bridge> [ddnet] xd 09:01 <+bridge> [ddnet] No i thought u wanted to change the ways its marking the non-freezed and freezed tees 09:02 <+bridge> [ddnet] I think we'll keep the blink to keep the greybeards happy 09:03 <+bridge> [ddnet] Ye also bcs i think a lot of ppl are used to this 09:04 <+bridge> [ddnet] I'll try to think about something for the afks but the main problem is to find something that renders well a lot of tees are close to each others 09:08 <+bridge> [ddnet] kinda why I want it to be on the tee, rather then above or next to it 09:09 <+bridge> [ddnet] Yea 10:14 <+bridge> [ddnet] hmm 10:14 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/605312108317638666/screenshot_2019-07-29_10-13-51.png 10:16 <+bridge> [ddnet] that's the most crowded I could get rn 10:23 <+bridge> [ddnet] Hmm that doesnt look half bad 10:23 <+bridge> [ddnet] We should open an issue with screenshots from all solutions 10:23 <+bridge> [ddnet] did u keep the eyes? 10:23 <+bridge> [ddnet] i think this and the eyes could be something good? 10:24 <+bridge> [ddnet] yeah kept the eyes 10:24 <+bridge> [ddnet] as the eyes are closed 10:24 <+bridge> [ddnet] the eyes are just open in screenshot since I am not using playerflag to display them rn 10:25 <+bridge> [ddnet] ah k 10:27 <+bridge> [ddnet] also these are just chatbubble position, if anyone has some suggestion on it 10:28 <+bridge> [ddnet] Sleep bubble best 10:28 <+bridge> [ddnet] this is nice imo 11:43 <+bridge> [ddnet] how does the afk playerflag work? because for me it doesn't 12:09 <@deen> the server needs to support it 12:09 <@deen> current ddnet servers don't run that version yet 12:11 <+bridge> [ddnet] @FallenKN the master branch has it now 12:11 <+bridge> [ddnet] yeah I tried it with the master branch, maybe I did something wrong 12:23 <+bridge> [ddnet] you tried it on official servers or your own? 12:23 <+bridge> [ddnet] official servers are not up to date atm 12:24 <+bridge> [ddnet] I compiled master and tried it on my own 12:43 <@deen> ok, that should work 12:49 <+bridge> [ddnet] still, someone needs to fix up the AFK flag 12:49 <+bridge> [ddnet] it doesnt belong to the player flags 12:51 <+bridge> [ddnet] @FallenKN it cannot work, the DDNetPlayer doesnt have the AFK flag applied 12:53 <+bridge> [ddnet] @deen you definitely merged too fast 13:19 <+bridge> [ddnet] @Learath2 inb4 master breaks πŸ˜› 13:23 <+bridge> [ddnet] @fokkonaut DDNetPlayer does have the afk flag applied 13:23 <+bridge> [ddnet] player.cpp L327 13:24 <+bridge> [ddnet] @Learath2 but the AFK flag doesnt belong to playerflags? 13:24 <+bridge> [ddnet] Or does it? 13:25 <+bridge> [ddnet] I don't know what I am doing wrong then 13:25 <+bridge> [ddnet] the afk mark seems to just work fine that means that m_Afk is true and the flag should be applied 13:26 <+bridge> [ddnet] No it definitely needs a new flag array 13:26 <+bridge> [ddnet] But the flag is applied, its just unnecessarily in the middle of the flags int 13:26 <+bridge> [ddnet] ah, yes 13:27 <+bridge> [ddnet] Whats the issue @FallenKN? 13:27 <+bridge> [ddnet] It is possible that m afk is forgotten uninitialized 13:28 <+bridge> [ddnet] no m_afk works 13:28 <+bridge> [ddnet] @Learath2 Could you look at my prs before the release? They are very small 13:28 <+bridge> [ddnet] but I am trying to display the "sleepbubble" the way you display the chatbubble via PLAYERFLAG_AFK 13:28 <+bridge> [ddnet] nothing happens 13:28 <+bridge> [ddnet] @fokkonaut I'm having lunch, then ill head to a cafd tk get some studying done, i'll merge them there 13:29 <+bridge> [ddnet] oh okay 13:29 <+bridge> [ddnet] @FallenKN ah thats simple 13:29 <+bridge> [ddnet] Wrong playerflags int 13:29 <+bridge> [ddnet] The afk flag is in the extended player object 13:30 <+bridge> [ddnet] @FallenKN i find it kinda meh to have something that vanilla client cant display 13:30 <+bridge> [ddnet] @fokkonaut wrong way to think about it 13:30 <+bridge> [ddnet] https://github.com/ddnet/ddnet/pull/1844 – says that it creates an inconsistency between scoreboard and kill messages 13:30 <+bridge> [ddnet] if we were to approach this way 64 players shouldn't be a thing either 13:31 <+bridge> [ddnet] @Learath2 oh thank you 13:31 <+bridge> [ddnet] Well we did let vanilla clients see the 64 players 13:31 <+bridge> [ddnet] @heinrich5991 yes, because kill messages would need a fix that would require more changes 13:31 <+bridge> [ddnet] yeah that was just an example 13:31 <+bridge> [ddnet] But back then people did care about vanilla compat 13:32 <+bridge> [ddnet] vanilla cant'dispaly hookline either 13:32 <+bridge> [ddnet] Tbh vanilla is irrelevant now 13:32 <+bridge> [ddnet] vanilla can't display hookline either 13:32 <+bridge> [ddnet] ye 13:32 <+bridge> [ddnet] I hope you guys have checked the data 13:32 <+bridge> [ddnet] wat data 13:32 <+bridge> [ddnet] @Ryozuki @Learath2 13:32 <+bridge> [ddnet] ? 13:33 <+bridge> [ddnet] we can figure out how many people connect with non-ddnet clients 13:33 <+bridge> [ddnet] well, deen and whoever has log access can 13:33 <+bridge> [ddnet] I can take a look if you want, we have all that teehistorian data 13:33 <+bridge> [ddnet] @Ryozuki yes, and you can ask someone 13:33 <+bridge> [ddnet] But id be surprised if more then 5% use it 13:33 <+bridge> [ddnet] and 13:33 <+bridge> [ddnet] most use the latest ddnet 13:34 <+bridge> [ddnet] I don't think we have any way for newcomers to come into the game except vanilla 13:34 <+bridge> [ddnet] ddnet is already declining judging from races finished graphs 13:34 <+bridge> [ddnet] is there a way to know how many newcomers we have? 13:34 <+bridge> [ddnet] tbh i dont think we got much anyway 13:34 <+bridge> [ddnet] and we doing them a favour by not playing ddnet with vanilla 13:34 <+bridge> [ddnet] I doubt we have many newcomers aswell, and its hard to quantify 13:35 <+bridge> [ddnet] they can't find ddnet in the first place if we don't allow them to join with vanilla 13:35 <+bridge> [ddnet] to fix that we could release on steam 13:35 <+bridge> [ddnet] But we could take a look at new names in novice finishes 13:35 <+bridge> [ddnet] have our own proper visibility 13:35 <+bridge> [ddnet] it was the plan 13:35 <+bridge> [ddnet] till 13:35 <+bridge> [ddnet] @Ryozuki yea, but before that happened, I'd be a bit slower on dropping vanilla 13:35 <+bridge> [ddnet] something happened 13:35 <+bridge> [ddnet] yes 13:35 <+bridge> [ddnet] ye we can slowly drop vanilla 13:36 <+bridge> [ddnet] Most newcomers i hear of are referred by friends 13:36 <+bridge> [ddnet] ddnet still sends fake tunezones due to vanilla right? 13:36 <+bridge> [ddnet] not only vanilla, also ddnet I think(?) 13:36 <+bridge> [ddnet] I doubt anyone would let their friend use the pain thats vanilla on ddnet :D 13:36 <+bridge> [ddnet] we should fix that for ddnet 13:37 <+bridge> [ddnet] i think u cant still predict 13:37 <+bridge> [ddnet] a tune zone 13:37 <+bridge> [ddnet] when ur outside 13:37 <+bridge> [ddnet] vanilla players use ddnet client too 13:37 <+bridge> [ddnet] @Ryozuki look at my pr 13:37 <+bridge> [ddnet] i at least fixed the projectiles 13:37 <+bridge> [ddnet] I dont think we send tunezones or predict them at all 13:37 <+bridge> [ddnet] @fokkonaut diffs can be small and the change can still be hard btw 13:38 <+bridge> [ddnet] But it should be doable now that we have extended objects and have the tunezones in the map itself 13:38 <+bridge> [ddnet] e.g. https://github.com/ddnet/ddnet/pull/1840, this creates a new network message and kinda implies we want to go that way for syncing settings between client and server 13:38 <+bridge> [ddnet] also, `show_all` has an impact on the amount of network traffic. so it's not easy to evaluate 13:38 <+bridge> [ddnet] We do the same for showothers 13:38 <+bridge> [ddnet] yes 13:39 <+bridge> [ddnet] @Learath2 https://github.com/ddnet/ddnet/search?q=FAKETUNE&unscoped_q=FAKETUNE 13:39 <+bridge> [ddnet] i think most of it 13:39 <+bridge> [ddnet] is coverd by ddnet network characer 13:39 <+bridge> [ddnet] now 13:39 <+bridge> [ddnet] that doesn't mean it's good. `show_others` doesn't even use the new netmsg thing 13:39 <+bridge> [ddnet] We should probably get one netobject with all of the settings packed in 13:39 <+bridge> [ddnet] That should better utilize the delta compression 13:40 <+bridge> [ddnet] https://github.com/ddnet/ddnet/pull/1832 – it's unclear whether third-party ddnet servers enable it, and it's even on by default for these 13:40 <+bridge> [ddnet] Yeah i was going to close 1832 13:40 <+bridge> [ddnet] https://github.com/ddnet/ddnet/pull/1822 – this greatly increases network traffic for projectiles, even for the ddnet client AFAIUI 13:40 <+bridge> [ddnet] not so easy 13:41 <+bridge> [ddnet] why should it? 13:41 <+bridge> [ddnet] @heinrich5991 that one I already told him I wont merge until proper support in ddnet client exists for it 13:41 <+bridge> [ddnet] I'm just trying to explain to @fokkonaut that PRs aren't easy because they're small 13:41 <+bridge> [ddnet] Oh yeah true 13:41 <+bridge> [ddnet] I know that 13:41 <+bridge> [ddnet] Its not trivial tk evaluate these always 13:42 <+bridge> [ddnet] @heinrich5991 about the flag colors: is it important to have the kill messages correct too? 13:43 <+bridge> [ddnet] I appreciate your honesty there btw, I probably wouldn't have remembered that it also shows for the kill messages 13:43 <+bridge> [ddnet] hm 13:44 <+bridge> [ddnet] The point is 13:44 <+bridge> [ddnet] oh 13:44 <+bridge> [ddnet] the scoremessages have a flag flag, right? 13:44 <+bridge> [ddnet] so it's not really clear which flag to show 13:44 <+bridge> [ddnet] For the kill messages to show up with flags is, that you would need to add flag support first, then enable the gamestate_flags and then even decide which tee has a flag 13:45 <+bridge> [ddnet] scoremessage? 13:45 <+bridge> [ddnet] the kill messages 13:45 <+bridge> [ddnet] What do you mean with a flag flag 13:45 <+bridge> [ddnet] There is a FLAG 13:45 <+bridge> [ddnet] which tells the client to render flags in scoreboard and spectator select menu 13:46 <+bridge> [ddnet] I believe the `m_ModeSpecial` field contains the info whether there should be a flag on the killer and the victim 13:46 <+bridge> [ddnet] in `Sv_KillMsg` 13:46 <+bridge> [ddnet] It does, correct 13:47 <+bridge> [ddnet] but it's not clear whether it should be a red or a blue flag 13:47 <+bridge> [ddnet] Yes, and that is because a KillMsg only has the Team of the tee providrd 13:47 <+bridge> [ddnet] ah 13:47 <+bridge> [ddnet] and based on that, it will render the opposite flag 13:47 <+bridge> [ddnet] I guess it's fine then 13:48 <+bridge> [ddnet] In ddrace it would always be a blue flag 13:48 <+bridge> [ddnet] For example 13:48 <+bridge> [ddnet] We could fake it tho 13:49 <+bridge> [ddnet] If we go and add another var to the KillMsg struct so we know the flag 13:50 <+bridge> [ddnet] Could you check for the flag the same way in killmessages? 13:50 <+bridge> [ddnet] No 13:51 <+bridge> [ddnet] The kill message updates 13:51 <+bridge> [ddnet] So it wouldnt work 13:51 <+bridge> [ddnet] You could hack it in 13:51 <+bridge> [ddnet] When first adding the kill message to the array 13:51 <+bridge> [ddnet] https://discordapp.com/channels/252358080522747904/293493549758939136/605366193255350312 13:52 <+bridge> [ddnet] yeah exactly what I had in mind 13:52 <+bridge> [ddnet] I'm gonna create a pr for the sleepbubble now should I make it an option of ClAfkMark? 13:52 <+bridge> [ddnet] Yes 13:52 <+bridge> [ddnet] @FallenKN yes pls 13:52 <+bridge> [ddnet] Wait 13:52 <+bridge> [ddnet] and the mark should be default? 13:52 <+bridge> [ddnet] We'll decide on that pr, then we can move around the setting to get the desired result 13:52 <+bridge> [ddnet] @FallenKN How does it behave if one has opened the chat? 13:52 <+bridge> [ddnet] Does it react and say, no more afk then? 13:53 <+bridge> [ddnet] good question I think chat overrides 13:53 <+bridge> [ddnet] the chat bubble should override 13:53 <+bridge> [ddnet] I will test that 13:53 <+bridge> [ddnet] But if one opens the chat he should be concidered not-afk again? 13:54 <+bridge> [ddnet] I think they are still considered afk? 13:54 <+bridge> [ddnet] @fokkonaut the chat bubble is enough to show that they cant react 13:54 <+bridge> [ddnet] Yes 13:54 <+bridge> [ddnet] the action of opening chat will reset the afk flag on the server 13:54 <+bridge> [ddnet] which should propagate to the client and the zzz should also disappear with that 13:54 <+bridge> [ddnet] @Learath2 Do you want to make that KillMsg thing? I could do it on Thursday maybe 13:55 <+bridge> [ddnet] @fokkonaut I'll knock out a couple in an hour or so 13:55 <+bridge> [ddnet] Okay 13:55 <+bridge> [ddnet] @heinrich5991 could you merge the deci second fix,m 13:55 <+bridge> [ddnet] *? 13:56 <+bridge> [ddnet] @fokkonaut did you check to make sure this doesnt break sth like the ghost or auto demo recording? 13:57 <+bridge> [ddnet] I think the ddrace tick is local to the hud, but I'm not sure 13:57 <+bridge> [ddnet] It is 13:57 <+bridge> [ddnet] It shouldnt break anything, but no, I havent tested 13:57 <+bridge> [ddnet] if it's local then it can't really break much of anything else 13:58 <+bridge> [ddnet] m_DDRaceTick is only used for the timer 13:58 <+bridge> [ddnet] Also, it is private 13:58 <+bridge> [ddnet] Cant really break anything 13:58 <+bridge> [ddnet] @Learath2 what is explayerflag? 13:58 <+bridge> [ddnet] ExtendedPlayerFlag 13:59 <+bridge> [ddnet] idk I'm not that good with namind 13:59 <+bridge> [ddnet] naming* 13:59 <+bridge> [ddnet] Belongs to DDNetPlayer 13:59 <+bridge> [ddnet] We should have maybe named DDNetPlayer more generally aswell 😦 13:59 <+bridge> [ddnet] Maybe ExtendedPlayer 13:59 <+bridge> [ddnet] Also the Character :D 13:59 <+bridge> [ddnet] ummm 13:59 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/605368905111830548/screenshot_2019-07-29_13-59-25.png 13:59 <+bridge> [ddnet] The character is pretty ddnet specific @fokkonaut 14:00 <+bridge> [ddnet] @Learath2 why? 14:00 <+bridge> [ddnet] checkpoints, freeze duration, jump count 14:01 <+bridge> [ddnet] and it's interpreted in a ddnet specific way 14:01 <+bridge> [ddnet] So whats wrong with DDNetPlayer then? 14:01 <+bridge> [ddnet] e.g. the freeze duration goes negative, that only has meaning in the context of ddnet 14:01 <+bridge> [ddnet] the flags in ddnetplayer are concepts that aren't specific to ddnet 14:02 <+bridge> [ddnet] AFK has no special meaning in ddnet 14:02 <+bridge> [ddnet] neither does auth level 14:02 <+bridge> [ddnet] I think it doesnt really matter 14:02 <+bridge> [ddnet] @Learath2 I think opening chat doesnt reset Afk 14:03 <+bridge> [ddnet] It only checks for the Target, and movement 14:03 <+bridge> [ddnet] afair 14:03 <+bridge> [ddnet] i guess chat should reset afk 14:04 <+bridge> [ddnet] I just tested it by opening chat on dummy and moving to main and dummy still got afked 14:04 <+bridge> [ddnet] thats why in the screenshot it also shows both bubbles 14:06 <+bridge> [ddnet] vim master race 14:06 <+bridge> [ddnet] please merge 14:06 <+bridge> [ddnet] xd 14:06 <+bridge> [ddnet] @FallenKN it should only ever show one bubble pls 14:06 <+bridge> [ddnet] @FallenKN just go and disable the zzz emote if chat is opened 14:06 <+bridge> [ddnet] PLAYERFLAG_CHAT 14:07 <+bridge> [ddnet] yeah working on it already 14:07 <+bridge> [ddnet] was just testing if chat prevents afk 14:08 <+bridge> [ddnet] :monkaS: 14:09 <+bridge> [ddnet] @Ryozuki can you order it alphabetically into the gitignore? 14:10 <+bridge> [ddnet] @heinrich5991 i thought about doing so but i noticed gitignore is not ordered at all 14:10 <+bridge> [ddnet] 14:10 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/605371604909817867/unknown.png 14:10 <+bridge> [ddnet] d -> c -> d 14:10 <+bridge> [ddnet] nah, D -> c -> d 14:11 <+bridge> [ddnet] like in ascii 14:11 <+bridge> [ddnet] ah 14:11 <+bridge> [ddnet] ok 14:11 <+bridge> [ddnet] in vim, you can use `V` do mark the lines and then do `:sort` 14:11 <+bridge> [ddnet] ok 14:11 <+bridge> [ddnet] vim best 14:12 <+bridge> [ddnet] new vim power word acquired 14:14 <+bridge> [ddnet] done 14:18 <+bridge> [ddnet] :tee_thinking: 14:18 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/605373570180448256/unknown.png 14:20 <+bridge> [ddnet] the best part is that we shouldn't include `` or `` anywhere, we have `` that replace all of that 14:21 <+bridge> [ddnet] Are we including them somewhere? 14:21 <+bridge> [ddnet] ``` 14:21 <+bridge> [ddnet] src/engine/shared/masterserver.cpp 14:21 <+bridge> [ddnet] src/engine/shared/uuid_manager.cpp 14:21 <+bridge> [ddnet] src/engine/client/opengl_sl.cpp 14:21 <+bridge> [ddnet] src/game/editor/auto_map.cpp 14:21 <+bridge> [ddnet] src/game/client/components/items.cpp 14:21 <+bridge> [ddnet] src/game/client/components/players.cpp 14:21 <+bridge> [ddnet] src/game/server/entities/character.cpp 14:21 <+bridge> [ddnet] src/game/client/prediction/entities/character.cpp 14:21 <+bridge> [ddnet] ``` 14:22 <+bridge> [ddnet] I wonder which functions we needed, maybe some debugging leftovers 14:22 <+bridge> [ddnet] i found this in characters.cpp 14:22 <+bridge> [ddnet] not the pred one 14:23 <+bridge> [ddnet] :poggers: 14:23 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/605374748955901962/unknown.png 14:23 <+bridge> [ddnet] i always end up finding this 14:23 <+bridge> [ddnet] xd 14:23 <+bridge> [ddnet] That looks awful ;( 14:25 <+bridge> [ddnet] lmao 14:25 <+bridge> [ddnet] that's why stoppers are still broken 14:25 <+bridge> [ddnet] not broken 14:25 <+bridge> [ddnet] one rotation is broken 14:25 <+bridge> [ddnet] Is it 14:25 <+bridge> [ddnet] as in doesn't work at all 14:26 <+bridge> [ddnet] at every place where we have velocity change we need to recheck for stoppers 14:26 <+bridge> [ddnet] like, a hammer, a shotgun.. 14:26 <+bridge> [ddnet] hook 14:26 <+bridge> [ddnet] Really?? 14:26 <+bridge> [ddnet] Yes 14:26 <+bridge> [ddnet] fixing stoppers means breaking them 14:26 <+bridge> [ddnet] i mena 14:26 <+bridge> [ddnet] breaking maps 14:26 <+bridge> [ddnet] Is that how we implemented those? 14:26 <+bridge> [ddnet] Yes 14:26 <+bridge> [ddnet] appearently 14:26 <+bridge> [ddnet] imo they should be fixed 14:27 <+bridge> [ddnet] that one rotation 14:27 <+bridge> [ddnet] Why not centralize velocity changes so we only have checks in one place? 14:27 <+bridge> [ddnet] @jao yeah create an issue for it pls? 14:27 <+bridge> [ddnet] just look for it @Learath2, gamecore.cpp, laser.cpp, Character::FireWeapon, case Hammer, you will find it everyhwere 14:27 <+bridge> [ddnet] πŸ‘Œ 14:27 <+bridge> [ddnet] isnt gameworld the class that checks all collisions and stuff 14:27 <+bridge> [ddnet] @fokkonaut is hard to do on a bus 14:28 <+bridge> [ddnet] xD 14:28 <+bridge> [ddnet] oh 14:28 <+bridge> [ddnet] gamecore 14:28 <+bridge> [ddnet] hm 14:28 <+bridge> [ddnet] WHAT 14:28 <+bridge> [ddnet] how 14:28 <+bridge> [ddnet] stupid 14:28 <+bridge> [ddnet] is that 14:28 <+bridge> [ddnet] We have this `CCharacterCore::LimitForce(vec2` 14:29 <+bridge> [ddnet] Why dont we use it 14:29 <+bridge> [ddnet] EVERYWHERE 14:29 <+bridge> [ddnet] u cant just fix things in ddnet 14:29 <+bridge> [ddnet] u will break maps 14:29 <+bridge> [ddnet] @Ryozuki well you can clean up 14:29 <+bridge> [ddnet] LimitForce literally checks for the stopa collision 14:29 <+bridge> [ddnet] DRY 14:29 <+bridge> [ddnet] We can replace that everywhere 14:30 <+bridge> [ddnet] @fokkonaut problem would be to make sure the huge if blocks match 14:30 <+bridge> [ddnet] https://github.com/ddnet/ddnet/blob/29e691c2db402c652c836eb574b46cdf2821381a/src/game/gamecore.cpp#L668 14:30 <+bridge> [ddnet] :D 14:31 <+bridge> [ddnet] https://github.com/ddnet/ddnet/pull/1254 14:31 <+bridge> [ddnet] Ouch, this code hurts 14:31 <+bridge> [ddnet] here's your starting point for fixing stoppers 14:31 <+bridge> [ddnet] there was a bug 14:31 <+bridge> [ddnet] but if it's fixed, you can have nicer code 14:32 <+bridge> [ddnet] @heinrich5991 any reason you didnt use limitforce as fokkonaut suggested? 14:32 <+bridge> [ddnet] @Learath2 tbh we got duplicate code 14:32 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/605377082427703306/unknown.png 14:32 <+bridge> [ddnet] @Learath2 https://github.com/ddnet/ddnet/pull/1254/files#diff-b558dc6d45261062ea4b41f227ba75f8R234 looks like I did 14:32 <+bridge> [ddnet] @Ryozuki just bc we have it doesnt mean its good 14:32 <+bridge> [ddnet] just renamed it to something more sensible 14:33 <+bridge> [ddnet] i never implied its good 14:33 <+bridge> [ddnet] but what would be a good way to fix it 14:33 <+bridge> [ddnet] @jao can you tell me in which directions stoppers are broken? 14:33 <+bridge> [ddnet] I dont even remember why we have charactercore and character separate tbh 14:33 <+bridge> [ddnet] maybe I can fix up the code then 14:34 <+bridge> [ddnet] charactercore is shared between client and server 14:34 <+bridge> [ddnet] @Learath2 i think ccharactercode is used in client 14:34 <+bridge> [ddnet] too 14:34 <+bridge> [ddnet] ye 14:34 <+bridge> [ddnet] ddnet wrote all the wrong code then, e.g. not doing freeze in core 14:35 <+bridge> [ddnet] If only we did the rewrite when zeta was onboard 14:35 <+bridge> [ddnet] zeta has a working ddnet for 0.7 14:35 <+bridge> [ddnet] clean, even 14:35 <+bridge> [ddnet] but changing physics of ddrace is not accepted 14:35 <+bridge> [ddnet] we would lose all maps 14:35 <+bridge> [ddnet] @heinrich5991 ^ 14:36 <+bridge> [ddnet] [2:33 PM] heinrich5991: @jao can you tell me in which directions stoppers are broken? 14:36 <+bridge> [ddnet] check the issue 14:36 <+bridge> [ddnet] has 0.7 more security than 0.6 rn? 14:36 <+bridge> [ddnet] yes 14:36 <+bridge> [ddnet] can we backport it 14:37 <+bridge> [ddnet] Lets move to 0.7 :p 14:37 <+bridge> [ddnet] never 14:37 <+bridge> [ddnet] most of the issues will be gone with http masters 14:37 <+bridge> [ddnet] xD 14:37 <+bridge> [ddnet] see 14:37 <+bridge> [ddnet] no need to update then 14:37 <+bridge> [ddnet] cleaning up ddnet code would be cool 14:37 <+bridge> [ddnet] and docs for newcomers 14:37 <+bridge> [ddnet] but that takes lot of time 14:37 <+bridge> [ddnet] which nobody has 14:38 <+bridge> [ddnet] i would also modernize it to c++11 but some ppl here like to use 0 as nullpointers still 14:38 <+bridge> [ddnet] :monkaS: 14:38 <+bridge> [ddnet] whats the difference 14:38 <+bridge> [ddnet] @Ryozuki I have a rule for those 14:38 <+bridge> [ddnet] what does a nullptr do 14:38 <+bridge> [ddnet] if I'm touching code in old files I use 0, if I'm creating a new file I use nullptr 14:38 <+bridge> [ddnet] `nullptr` is a pointer-typed null pointer 14:38 <+bridge> [ddnet] atleast the new code would be modern that way 14:38 <+bridge> [ddnet] means what 14:39 <+bridge> [ddnet] you can't assign it to an integer, for starteres 14:39 <+bridge> [ddnet] AFAIK 14:39 <+bridge> [ddnet] not sure 14:39 <+bridge> [ddnet] C++11 corrects this by introducing a new keyword to serve as a distinguished null pointer constant: nullptr. It is of type nullptr_t, which is implicitly convertible and comparable to any pointer type or pointer-to-member type. It is not implicitly convertible or comparable to integral types, except for bool. 14:39 <+bridge> [ddnet] @heinrich5991 I don't think C++ went as far to remove the cast from pointer types to intptr_t 14:39 <+bridge> [ddnet] ``` 14:39 <+bridge> [ddnet] int X(void *foo); 14:39 <+bridge> [ddnet] int X(int foo); 14:39 <+bridge> [ddnet] 14:39 <+bridge> [ddnet] X(0); // int 14:39 <+bridge> [ddnet] X(NULL); // int 14:39 <+bridge> [ddnet] X(nullptr); // void 14:39 <+bridge> [ddnet] ``` 14:40 <+bridge> [ddnet] ``` 14:40 <+bridge> [ddnet] int X(void *foo); 14:40 <+bridge> [ddnet] int X(int foo); 14:40 <+bridge> [ddnet] 14:40 <+bridge> [ddnet] X(0); // int 14:40 <+bridge> [ddnet] X(NULL); // int 14:40 <+bridge> [ddnet] X(nullptr); // void * 14:40 <+bridge> [ddnet] ``` 14:40 <+bridge> [ddnet] ok, that's a shitty fix 14:40 <+bridge> [ddnet] one more reason to hate c++ 14:40 <+bridge> [ddnet] ``` 14:40 <+bridge> [ddnet] a.cpp:2:10: error: cannot convert β€˜std::nullptr_t’ to β€˜int’ in initialization 14:40 <+bridge> [ddnet] 2 | int i = nullptr; 14:40 <+bridge> [ddnet] | ^~~~~~~ 14:40 <+bridge> [ddnet] ``` 14:40 <+bridge> [ddnet] Love how they like breaking things just for the sake of correctness 14:41 <+bridge> [ddnet] @Learath2 how is ur hate for systemd today 14:41 <+bridge> [ddnet] I'm sure people converted pointers to ints while some of the c++ committee members were still in kindergarten 14:41 <+bridge> [ddnet] u surte 14:42 <+bridge> [ddnet] arent comittee members supero ld ppl 14:42 <+bridge> [ddnet] old* 14:42 <+bridge> [ddnet] xdd 14:42 <+bridge> [ddnet] i always imagine old ppl with white long beard 14:42 <+bridge> [ddnet] :poggers: 14:42 <+bridge> [ddnet] well if they are they are prolly the kinda people that give speeches on the merits of oop 14:42 <+bridge> [ddnet] @jao https://github.com/ddnet/ddnet/issues/1861 14:42 <+bridge> [ddnet] new breed of pseudo-intellectual knowitalls 14:43 <+bridge> [ddnet] @Learath2 what do u think about having a button class and it accepting a lamdba function onclick 14:44 <+bridge> [ddnet] i always imagined this, rn its all logic in the same function in a loop i think 14:44 <+bridge> [ddnet] for all buttons 14:44 <+bridge> [ddnet] depends on how you are structuring your program 14:44 <+bridge> [ddnet] its something i wanted if i ever rewrote the ui 14:44 <+bridge> [ddnet] ui is hard 14:44 <+bridge> [ddnet] ye 14:45 <+bridge> [ddnet] e.g. I usually have lambda functions that trigger actions, which modifies state, which is fed back into the ui 14:45 <+bridge> [ddnet] the flux pattern is very performant in react 14:45 <+bridge> [ddnet] and works predictably 14:46 <+bridge> [ddnet] u mean 14:46 <+bridge> [ddnet] react-redux 14:46 <+bridge> [ddnet] ah 14:46 <+bridge> [ddnet] https://facebook.github.io/flux/ 14:46 <+bridge> [ddnet] redux is an implementation of flux yeah 14:46 <+bridge> [ddnet] but it's usually overkill for small projects 14:46 <+bridge> [ddnet] i guess 14:46 <+bridge> [ddnet] i always end up using it 14:46 <+bridge> [ddnet] its easy to manga login state 14:46 <+bridge> [ddnet] manage* 14:47 <+bridge> [ddnet] for projects on pc I prefer the imgui pattern 14:47 <+bridge> [ddnet] mixing the logic with the ui creates very easy to follow code imho 14:48 <+bridge> [ddnet] imgui-style has a problem of "ui lags one frame behind" IIRC 14:49 <+bridge> [ddnet] well it can't actually be perfectly sync either way 14:49 <+bridge> [ddnet] it's either a frame behind or one frame ahead 14:50 <+bridge> [ddnet] btw right now the menus calculate the position on each render call, this is due to it using functions like dolabel instead of what could be a label class holding info about its last calculated position 14:50 <+bridge> [ddnet] @heinrich5991 why was your stopper rewrite reverted? 14:50 <+bridge> [ddnet] because it had a bug 14:50 <+bridge> [ddnet] 14:50 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/605381601114718218/unknown.png 14:50 <+bridge> [ddnet] it let people through in some direction in some map 14:50 <+bridge> [ddnet] @Learath2 why can't it be in sync? 14:50 <+bridge> [ddnet] @Ryozuki it's performant enough in this case, for cases where it matters we did optimize them 14:51 <+bridge> [ddnet] like text containers 14:52 <+bridge> [ddnet] @heinrich5991 with the imgui pattern you render the current state, and when a change happens you only know about it the next frame 14:53 <+bridge> [ddnet] with the rmgui pattern you render the state you have in the ui code, and when a change happens the ui state changes before the application state 14:53 <+bridge> [ddnet] @heinrich5991 ever debugged the stopper thing? 14:53 <+bridge> [ddnet] no 14:54 <+bridge> [ddnet] it was just reverted, I didn't know which map it was and it was during a time where I couldn't spend time on it 14:55 <+bridge> [ddnet] well deen reverted it but he didn't put which issue he closed in the commit description 😦 14:56 <+bridge> [ddnet] there was no issue 14:56 <+bridge> [ddnet] it was a hotfix, people started finishing maps really quickly 14:56 <+bridge> [ddnet] yeah found the irclogs 14:57 <+bridge> [ddnet] @Ryozuki you seem to have reported it, remember what it was? 14:57 <+bridge> [ddnet] the screenshot links seem dead 14:58 <+bridge> [ddnet] report what? 14:58 <+bridge> [ddnet] Some issue with the stopper fix that seems to have broken quite a lot of tile handling 14:59 <+bridge> [ddnet] can usend the irclog 14:59 <+bridge> [ddnet] i dont remember tbh xD 14:59 <+bridge> [ddnet] `deen u saw that yesterday night server ignored front layer on a brutal map?` found it 14:59 <+bridge> [ddnet] well then its that 14:59 <+bridge> [ddnet] apparently you killed the entire front layer @heinrich5991 not just stoppers πŸ˜„ 15:00 <+bridge> [ddnet] oh ok πŸ˜„ 15:00 <+bridge> [ddnet] πŸ˜„ 15:00 <+bridge> [ddnet] πŸ™‚ 15:00 <+bridge> [ddnet] this slight smile is better 15:00 <+bridge> [ddnet] its weird 15:01 <+bridge> [ddnet] I'll try to find this just looking at the diff, if I can't in 10 minutes I'll go back to studying math 15:01 <+bridge> [ddnet] πŸ˜ƒ 15:01 <+bridge> [ddnet] ok it was this one 15:01 <+bridge> [ddnet] looks so dumb 15:02 <+bridge> [ddnet] I find πŸ˜„ appropriate for `:D` but not for `:)` 15:02 <+bridge> [ddnet] yeah `:)` should def be πŸ™‚ 15:05 <+bridge> [ddnet] yay time to fetch upstream 15:06 <+bridge> [ddnet] bors is so slow 15:07 <+bridge> [ddnet] @heinrich5991 don't you have a tool to check for specific tiles in maps? we could check all maps then 15:10 <+bridge> [ddnet] deen agrees with bubble so bubble we have :troll: 15:10 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/605386746657636352/unknown.png 15:11 <+bridge> [ddnet] should we have it displayed on paused tees aswell? 15:11 <+bridge> [ddnet] hmm 15:11 <+bridge> [ddnet] @Ryozuki it's not bors that is slow, it's our build process 15:12 <+bridge> [ddnet] on windows 15:12 <+bridge> [ddnet] so more like appveyor 15:12 <+bridge> [ddnet] in the original pr that was a topic but op said it's messy to do so 15:12 <+bridge> [ddnet] hehe windows bad 15:12 <+bridge> [ddnet] it's the shitty excuse for make msvc has 15:12 <+bridge> [ddnet] nmake or sth 15:15 <+bridge> [ddnet] isnt there a faster thing than appveyor 15:15 <+bridge> [ddnet] We could host buildbots on a server 15:15 <+bridge> [ddnet] @heinrich5991 couldn't spot the bug πŸ˜› I'm going back to math 15:21 <+bridge> [ddnet] @heinrich5991 do you happen to know a good resource to learn laplace transforms? 15:23 <+bridge> [ddnet] https://www.youtube.com/watch?v=spUNpyF58BY 15:23 <+bridge> [ddnet] well it only has fourier transform 15:23 <+bridge> [ddnet] :frozen: 15:24 <+bridge> [ddnet] @Learath2 what do you want to learn about laplace transforms? 15:24 <+bridge> [ddnet] how to do them? 15:25 <+bridge> [ddnet] Assume I know nothing 15:25 <+bridge> [ddnet] I'd like to learn how to do them, what they are for, etc. 15:25 <+bridge> [ddnet] do you know the fourier transform? 15:26 <+bridge> [ddnet] well I know as much as the video @Ryozuki sent says about them 15:26 <+bridge> [ddnet] I know of the concept, but never used one 15:26 <+bridge> [ddnet] are they a prerequisite? 15:26 <+bridge> [ddnet] no 15:26 <+bridge> [ddnet] they're similar 15:27 <+bridge> [ddnet] " the Fourier transform of a function is a complex function of a real variable (frequency), the Laplace transform of a function is a complex function of a complex variable. " 15:27 <+bridge> [ddnet] according to wikipedia 15:27 <+bridge> [ddnet] okay, so from a mathematical perspective, I only know one reason to do these transforms 15:27 <+bridge> [ddnet] namely to solve differential equations 15:28 <+bridge> [ddnet] the idea is that they represent some sort of bijective mapping on functions 15:28 <+bridge> [ddnet] e.g. you want to solve f'(x) - f(x) = sin(x) (don't know if that works) 15:28 <+bridge> [ddnet] e.g. you want to solve f'(x) - f(x) - sin(x) = 0 (don't know if that works) 15:28 <+bridge> [ddnet] and now you apply the laplace transform on both sides 15:29 <+bridge> [ddnet] and if you get a solution for that, you get a solution for the original equation 15:29 <+bridge> [ddnet] I'm guessing that's because the transform is bijective and you can apply the inverse to get the answer 15:30 <+bridge> [ddnet] And we are just hoping the initial transform gets us an easier to solve equation? 15:30 <+bridge> [ddnet] yes 15:30 <+bridge> [ddnet] the good thing is that the laplace transform throws out differentials 15:30 <+bridge> [ddnet] i.e. L[f'(x)] doesn't contain f'(x) 15:31 <+bridge> [ddnet] oh that's convenient 15:31 <+bridge> [ddnet] what about L[f''(x)]? 15:31 <+bridge> [ddnet] so we might have reason to believe that the resulting equation might be easier to solve 15:32 <+bridge> [ddnet] it only discards one degree or is the resulting equation not differential at all? 15:32 <+bridge> [ddnet] not differential at all 15:32 <+bridge> [ddnet] according to wikipedia, L{f'(t)} = sΒ·L{f(t)} - f(0) 15:32 <+bridge> [ddnet] with this, you can derive a formula for L{f''(t)} 15:33 <+bridge> [ddnet] okay, now that we have the why down, where can I learn the how? πŸ˜› 15:33 <+bridge> [ddnet] I don't remember my course on that too well 15:34 <+bridge> [ddnet] it basically boiled down to memorizing the calculation rules of the laplace transform 15:34 <+bridge> [ddnet] IIRC 15:34 <+bridge> [ddnet] and applying them, over and over again 15:34 <+bridge> [ddnet] maybe you have some exercises from the class? 15:35 <+bridge> [ddnet] @heinrich5991 well jumping straight into exercises sound silly to me 15:35 <+bridge> [ddnet] hm. do you have lecture notes? 15:35 <+bridge> [ddnet] (i.e. I don't have any materials to show you) 15:36 <+bridge> [ddnet] All I know about laplace transforms are that they are the indefinite integral of the function multiplied by exp(-st) dt 15:36 <+bridge> [ddnet] Let me check if this guy posts notes 15:36 <+bridge> [ddnet] you need to memorize some rules 15:36 <+bridge> [ddnet] e.g. the derivative rule 15:38 <+bridge> [ddnet] only have exercises :/ 15:39 <+bridge> [ddnet] I guess I'll have to resort to Salman Khan once more 16:20 <+bridge> [ddnet] why is the flag color in GameData πŸ˜› 16:21 <+bridge> [ddnet] flag carrier* 17:15 <+bridge> [ddnet] cl_friends_ignore_clan should default to false 17:15 <+bridge> [ddnet] i mean 17:15 <+bridge> [ddnet] to true 17:15 <+bridge> [ddnet] 1 17:29 <+bridge> [ddnet] @heinrich5991 if you have a moment can you help me with that? 17:29 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/605421670802522134/JPEG_20190729_182855.jpg 17:29 <+bridge> [ddnet] Idk how to simplify that sum 17:30 <+bridge> [ddnet] :head_sideways: 17:31 <+bridge> [ddnet] sorry, need to leave soon 17:31 <+bridge> [ddnet] will get internet back in 30-45min 17:39 <+bridge> [ddnet] Nvm forgot it was a definite integral 20:27 <+bridge> [ddnet] 20:27 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/605466523296989216/6v37w5o099d31.png 20:46 <+bridge> [ddnet] hahahahahhaha 20:54 <+bridge> [ddnet] @Gwendal 🀑 21:01 <+bridge> [ddnet] πŸ˜„ 21:14 <+bridge> [ddnet] πŸ˜‚πŸ˜‚