New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Canonical Movement #82085
Canonical Movement #82085
Conversation
people were complaining about a bug that would "lock people up" transiently for a few seconds on Sybil Round 225755- I pulled the test-merge and demanded they make an issue report regarding it (some maintainers were on, hopefully they can collect good data i hope) |
I have changed the code such that The |
No complaints about this over the last two days of dual-server test merges, you think it's ready to ship? |
|
About The Pull Request
Currently, TG's movement chain is not canonical, meaning movement can resolve in an order that doesn't actually represent what it going on. For example, if something inside of an Entered() call would move the currently moving object, it resolves in this order:
This makes Moved() unreliable at tracking things like spatial grid locations. This is a massive problem.
This PR introduces
active_movement
, a list containing arguments forMoved()
. At the start ofMove()
anddoMove()
, if the list is present, it will call Moved(), concluding the original movement, before proceeding. The originalMove()
call will not end inMoved()
, due toactive_movement
being null.This is touching some of the most important code in the game and needs extensive testing.