diff options
Diffstat (limited to '')
-rw-r--r-- | src/Entities/Player.cpp | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/src/Entities/Player.cpp b/src/Entities/Player.cpp index e3e3fac4f..0ca560d75 100644 --- a/src/Entities/Player.cpp +++ b/src/Entities/Player.cpp @@ -1620,10 +1620,7 @@ void cPlayer::TossItems(const cItems & a_Items) } - - - -bool cPlayer::DoMoveToWorld(cWorld * a_World, bool a_ShouldSendRespawn) +bool cPlayer::DoMoveToWorld(cWorld * a_World, bool a_ShouldSendRespawn, Vector3d a_NewPosition) { ASSERT(a_World != nullptr); @@ -1653,6 +1650,8 @@ bool cPlayer::DoMoveToWorld(cWorld * a_World, bool a_ShouldSendRespawn) SetWorldTravellingFrom(GetWorld()); // cChunk handles entity removal GetWorld()->RemovePlayer(this, false); + SetPosition(a_NewPosition); + // Queue adding player to the new world, including all the necessary adjustments to the object a_World->AddPlayer(this); cWorld * OldWorld = cRoot::Get()->GetWorld(GetWorld()->GetName()); // Required for the hook HOOK_ENTITY_CHANGED_WORLD |