14:10 <+bridge> [ddnet] @heinrich5991 Why dont you pass the MapIndex also from gamecore? 14:12 <+bridge> [ddnet] @fokkonaut because afaict the position of the tee is used in all other places 14:12 <+bridge> [ddnet] e.g. https://github.com/ddnet/ddnet/pull/1915/files#diff-0d0221c586efbe7eda89b6e5075098fdL127 14:13 <+bridge> [ddnet] you can see that it depends on the tee's position `m_Pos` 14:13 <+bridge> [ddnet] the `MapIndex` overriding only happens because at that call site, it didn't depend on the tee's position, but some arbitrary other map position 14:14 <+bridge> [ddnet] yes, but just to have it completed? Maybe someone bases on DDNet, and changes something in the core and uses m_Pos there 14:14 <+bridge> [ddnet] Or someone uses m_Core.m_Pos from the character class 14:14 <+bridge> [ddnet] then everything breaks anyway(?) – it's not only the center position that's used in `GetMoveRestrictions` 14:15 <+bridge> [ddnet] `GetMoveRestrictions` checks the current tile and tiles in all four directions. only that center tile is being overridden at the changed call site 14:16 <+bridge> [ddnet] Why does it get overriden? 14:16 <+bridge> [ddnet] i.e. it checks the specified "center" that is given, and the four directions depending on where the tee is, not the specified center 14:16 <+bridge> [ddnet] because it got overridden before, I tried to not change the behavior 14:16 <+bridge> [ddnet] But it works without it 14:17 <+bridge> [ddnet] from the commit description: 14:17 <+bridge> [ddnet] > Fix unintentional behavior change with blockers 14:17 <+bridge> [ddnet] > 14:17 <+bridge> [ddnet] >Could be seen on "Insane 3", on teleporter 37. Thanks to Zwelf for reporting. 14:17 <+bridge> [ddnet] from the commit description: 14:17 <+bridge> [ddnet] > Fix unintentional behavior change with blockers 14:17 <+bridge> [ddnet] >Could be seen on "Insane 3", on teleporter 37. Thanks to Zwelf for reporting. 14:17 <+bridge> [ddnet] from the commit description: 14:17 <+bridge> [ddnet] > Fix unintentional behavior change with blockers 14:17 <+bridge> [ddnet] > 14:17 <+bridge> [ddnet] > Could be seen on "Insane 3", on teleporter 37. Thanks to Zwelf for reporting. 14:18 <+bridge> [ddnet] from the commit description: 14:18 <+bridge> [ddnet] > Fix unintentional behavior change with blockers 14:18 <+bridge> [ddnet] > Could be seen on "Insane 3", on teleporter 37. Thanks to Zwelf for reporting. 14:18 <+bridge> [ddnet] rip IRC 14:18 <+bridge> [ddnet] xd 14:19 <+bridge> [ddnet] So, I dont need to pass the Extra stuff from my mod from the core? 14:19 <+bridge> [ddnet] for the room thing 14:19 <+bridge> [ddnet] depends 14:19 <+bridge> [ddnet] you could just not include this behavior, because it's braindead 14:20 <+bridge> [ddnet] Wym 14:20 <+bridge> [ddnet] why the fuck does the stopping of the stopper tiles not depend on the actual position of the tee? ^^ 14:20 <+bridge> [ddnet] but only for the center check 14:20 <+bridge> [ddnet] sounds like a bug to me 14:21 <+bridge> [ddnet] xd 14:21 <+bridge> [ddnet] Well, I'd like to keep it as ddnet 14:21 <+bridge> [ddnet] But still, do you remember the room, where I pass the Extra stuff to check whether the tee can enter or not? 14:21 <+bridge> [ddnet] yes 14:21 <+bridge> [ddnet] Do I also need to pass it from the core? 14:22 <+bridge> [ddnet] m_Extra or the new parameter? 14:22 <+bridge> [ddnet] Mine, not yours 14:22 <+bridge> [ddnet] currently i do, and it works 14:22 <+bridge> [ddnet] then continue to do it I guess 14:23 <+bridge> [ddnet] I am unsure if it is not useless 14:23 <+bridge> [ddnet] Because your new parameter is also not passed from the core, and obviously works 14:23 <+bridge> [ddnet] argh 14:23 <+bridge> [ddnet] it's just an override for the center position 14:24 <+bridge> [ddnet] usually, the the tee's pos is used and some positions in all four directions 14:24 <+bridge> [ddnet] should I draw a picture? 14:24 <+bridge> [ddnet] xd maybe 14:28 <+bridge> [ddnet] 14:28 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/630380764948594699/a.png 14:28 <+bridge> [ddnet] in gamecore.cpp, where the character is not passed, the code checks the five marked positions for stoppers 14:29 <+bridge> [ddnet] if you pass the parameter, like character.cpp does, the center is no longer checked, but another random tile somewhere else on the map is. the tee's surrounding is still checked though 14:29 <+bridge> [ddnet] @fokkonaut is that clearer? 14:29 <+bridge> [ddnet] I don't get how you go from that to not passing extra in gamecore 14:30 <+bridge> [ddnet] ah lol 14:30 <+bridge> [ddnet] xd 14:30 <+bridge> [ddnet] sorry for my dumbness at this point 20:15 <+bridge> [ddnet] @heinrich5991 what kinda behaviour is that?? 20:15 <+bridge> [ddnet] Which center did the stoppers use before your fix? 20:15 <+bridge> [ddnet] it iterates over every tile which it passed, and uses that as a center 20:19 <+bridge> [ddnet] Weird, I dont even remember reading anything like that 20:20 <+bridge> [ddnet] yea, it's nicely obfuscated 20:40 <+bridge> [ddnet] @heinrich5991 wait how is GetPureMapIndex different then the index HandleTiles gets? 20:46 <+bridge> [ddnet] HandleTiles gets an array of tiles that were encountered during the tick 22:12 <+bridge> [ddnet] `void CCharacter::HandleTiles(int Index)` am I missing sth here? 22:15 <+bridge> [ddnet] It looks more like HandleTiles is called for each tile 22:15 <+bridge> [ddnet] yes, sorry 22:16 <+bridge> [ddnet] that 22:39 <+bridge> [ddnet] @heinrich5991 I looked at it for a while, but I didn't quite get it, what was the old behaviour that you replicated 22:40 <+bridge> [ddnet] I basically just looked at the old code ^^ 22:40 <+bridge> [ddnet] it has `TileIndex` as a parameter and uses that as the center tile for the stopper calculation, but gets the directional tiles from the tee's position 22:41 <+bridge> [ddnet] for the stopper calculation 22:43 <+bridge> [ddnet] HandleTiles is still called for each and every tile passed through 22:43 <+bridge> [ddnet] Oooh, your new stopper code only checked the actual position 22:43 <+bridge> [ddnet] but in the past it was handled with the map index passed to handletiles? 22:46 <+bridge> [ddnet] yes 22:46 <+bridge> [ddnet] sorry, I seem to be unable to explain it ^^ 23:10 <+bridge> [ddnet] when talking about physics code and `CCharacter::HandleTiles` 23:10 <+bridge> [ddnet] what about removing these lines and the corresponding checks below: 23:10 <+bridge> [ddnet] https://github.com/ddnet/ddnet/blob/112d0432e2c47526bf6324a608f808f3cd002871/src/game/server/entities/character.cpp#L1369-L1380 23:10 <+bridge> [ddnet] 23:10 <+bridge> [ddnet] they increase the radius for end and begin tiles... but only when HandleTiles is actually called, so only when you already touch some ddnet tile 23:10 <+bridge> [ddnet] this is inconsistent and just bloats the code