Core/MovementHandler: Make it possible to get exact player position from m_movementInfo in some cases #29824
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Changes proposed:
The problem is that upon player landing, we call
Player::HandleFall
andUnit::RemoveAurasWithInterruptFlags
before updatingPlayer::m_movementInfo
and before callingUnit::UpdatePosition
.This leads to a situation where if we're writing a
PlayerScript
and hook player death from falling, or writing anAuraScript
and hook aura removal (parachute) then within the same server tick, we won't be able to get the exact position where the player landed.In this PR, I've changed the call order in
WorldSession::HandleMovementOpcodes
so that the order of packets sent to client remains the same. But now we can get the exact position of the player (player->m_movementInfo.pos
) at the moment of landing.Tests performed:
Builded and tested in-game.