diff options
Diffstat (limited to 'OpenSim')
-rw-r--r-- | OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | 18 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Scene.cs | 18 |
2 files changed, 18 insertions, 18 deletions
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs index c2aa8e2..ffe6fe9 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | |||
@@ -5521,6 +5521,24 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
5521 | 5521 | ||
5522 | if (avSetStartLocationRequestPacket.AgentData.AgentID == AgentId && avSetStartLocationRequestPacket.AgentData.SessionID == SessionId) | 5522 | if (avSetStartLocationRequestPacket.AgentData.AgentID == AgentId && avSetStartLocationRequestPacket.AgentData.SessionID == SessionId) |
5523 | { | 5523 | { |
5524 | // Linden Client limitation.. | ||
5525 | if (avSetStartLocationRequestPacket.StartLocationData.LocationPos.X == 255.5f | ||
5526 | || avSetStartLocationRequestPacket.StartLocationData.LocationPos.Y == 255.5f) | ||
5527 | { | ||
5528 | ScenePresence avatar = null; | ||
5529 | if (((Scene)m_scene).TryGetAvatar(AgentId, out avatar)) | ||
5530 | { | ||
5531 | if (avSetStartLocationRequestPacket.StartLocationData.LocationPos.X == 255.5f) | ||
5532 | { | ||
5533 | avSetStartLocationRequestPacket.StartLocationData.LocationPos.X = avatar.AbsolutePosition.X; | ||
5534 | } | ||
5535 | if (avSetStartLocationRequestPacket.StartLocationData.LocationPos.Y == 255.5f) | ||
5536 | { | ||
5537 | avSetStartLocationRequestPacket.StartLocationData.LocationPos.Y = avatar.AbsolutePosition.Y; | ||
5538 | } | ||
5539 | } | ||
5540 | |||
5541 | } | ||
5524 | TeleportLocationRequest handlerSetStartLocationRequest = OnSetStartLocationRequest; | 5542 | TeleportLocationRequest handlerSetStartLocationRequest = OnSetStartLocationRequest; |
5525 | if (handlerSetStartLocationRequest != null) | 5543 | if (handlerSetStartLocationRequest != null) |
5526 | { | 5544 | { |
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index 08b7115..a22fb5f 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs | |||
@@ -3034,24 +3034,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
3034 | // TODO: The next line can be removed, as soon as only homeRegionID based UserServers are around. | 3034 | // TODO: The next line can be removed, as soon as only homeRegionID based UserServers are around. |
3035 | // TODO: The HomeRegion property can be removed then, too | 3035 | // TODO: The HomeRegion property can be removed then, too |
3036 | UserProfile.HomeRegion = RegionInfo.RegionHandle; | 3036 | UserProfile.HomeRegion = RegionInfo.RegionHandle; |
3037 | |||
3038 | // Linden Client limitation.. | ||
3039 | if (position.X == 255.5f || position.Y == 255.5f) | ||
3040 | { | ||
3041 | ScenePresence avatar = null; | ||
3042 | if (TryGetAvatar(remoteClient.AgentId, out avatar)) | ||
3043 | { | ||
3044 | if (position.X == 255.5f) | ||
3045 | { | ||
3046 | position.X = avatar.AbsolutePosition.X; | ||
3047 | } | ||
3048 | if (position.Y == 255.5f) | ||
3049 | { | ||
3050 | position.Y = avatar.AbsolutePosition.Y; | ||
3051 | } | ||
3052 | } | ||
3053 | |||
3054 | } | ||
3055 | 3037 | ||
3056 | UserProfile.HomeLocation = position; | 3038 | UserProfile.HomeLocation = position; |
3057 | UserProfile.HomeLookAt = lookAt; | 3039 | UserProfile.HomeLookAt = lookAt; |