From dbbb115c268e156b11fc9498d6b0028fe956f0a4 Mon Sep 17 00:00:00 2001 From: Teravus Ovares Date: Sat, 5 Apr 2008 09:47:05 +0000 Subject: [PATCH] * The simulator now checks the parcel at the position that you get put by the grid server to see if you set it's landing point to a specified landing point. If you did, and the landing point isn't LLVector3.Zero, it puts you at the configured landing point. * Currently the grid server sticks you at 128x128x128.. so that means it'll use whatever parcel is at that location to get this information. This allows greater customization of where people log-into and teleport-to if done right. --- OpenSim/Region/Environment/Scenes/Scene.cs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs index 64c443dd47..101bac30a3 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.cs @@ -1700,6 +1700,16 @@ namespace OpenSim.Region.Environment.Scenes if (!agent.child) { AddCapsHandler(agent.AgentID); + + // Honor parcel landing type and position. + ILandObject land = LandChannel.getLandObject(agent.startpos.X, agent.startpos.Y); + if (land != null) + { + if (land.landData.landingType == (byte)1 && land.landData.userLocation != LLVector3.Zero) + { + agent.startpos = land.landData.userLocation; + } + } } m_log.DebugFormat(