diff options
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/ScenePresence.cs')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/ScenePresence.cs | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs index 8ebb7a6..afd4813 100644 --- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs | |||
@@ -1180,6 +1180,23 @@ namespace OpenSim.Region.Framework.Scenes | |||
1180 | client.Name, Scene.RegionInfo.RegionName, AbsolutePosition); | 1180 | client.Name, Scene.RegionInfo.RegionName, AbsolutePosition); |
1181 | 1181 | ||
1182 | Vector3 look = Velocity; | 1182 | Vector3 look = Velocity; |
1183 | |||
1184 | // Place avatar according to parcel owner teleport routing... | ||
1185 | ILandObject land = Scene.LandChannel.GetLandObject(AbsolutePosition.X, AbsolutePosition.Y); | ||
1186 | |||
1187 | if (land != null) | ||
1188 | { | ||
1189 | // Land owner should be able to land anywhere, others honor settings | ||
1190 | if (land.LandData.OwnerID != client.AgentId) | ||
1191 | { | ||
1192 | if (land.LandData.LandingType == (byte)1 && land.LandData.UserLocation != Vector3.Zero) | ||
1193 | { | ||
1194 | AbsolutePosition = land.LandData.UserLocation; | ||
1195 | look = land.LandData.UserLookAt; | ||
1196 | } | ||
1197 | } | ||
1198 | } | ||
1199 | |||
1183 | if ((look.X == 0) && (look.Y == 0) && (look.Z == 0)) | 1200 | if ((look.X == 0) && (look.Y == 0) && (look.Z == 0)) |
1184 | { | 1201 | { |
1185 | look = new Vector3(0.99f, 0.042f, 0); | 1202 | look = new Vector3(0.99f, 0.042f, 0); |