diff options
Diffstat (limited to 'OpenSim')
4 files changed, 22 insertions, 11 deletions
diff --git a/OpenSim/Framework/RegionInfoForEstateMenuArgs.cs b/OpenSim/Framework/RegionInfoForEstateMenuArgs.cs index fee3126..f274da2 100644 --- a/OpenSim/Framework/RegionInfoForEstateMenuArgs.cs +++ b/OpenSim/Framework/RegionInfoForEstateMenuArgs.cs | |||
@@ -47,5 +47,6 @@ namespace OpenSim.Framework | |||
47 | public bool useEstateSun; | 47 | public bool useEstateSun; |
48 | public float waterHeight; | 48 | public float waterHeight; |
49 | public string simName; | 49 | public string simName; |
50 | public string regionType; | ||
50 | } | 51 | } |
51 | } \ No newline at end of file | 52 | } |
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs index db81fb9..320a2fa 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | |||
@@ -717,7 +717,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
717 | handshake.RegionInfo3.CPURatio = 1; | 717 | handshake.RegionInfo3.CPURatio = 1; |
718 | 718 | ||
719 | handshake.RegionInfo3.ColoName = Utils.EmptyBytes; | 719 | handshake.RegionInfo3.ColoName = Utils.EmptyBytes; |
720 | handshake.RegionInfo3.ProductName = Utils.EmptyBytes; | 720 | handshake.RegionInfo3.ProductName = Util.StringToBytes256(regionInfo.RegionType); |
721 | handshake.RegionInfo3.ProductSKU = Utils.EmptyBytes; | 721 | handshake.RegionInfo3.ProductSKU = Utils.EmptyBytes; |
722 | 722 | ||
723 | OutPacket(handshake, ThrottleOutPacketType.Task); | 723 | OutPacket(handshake, ThrottleOutPacketType.Task); |
@@ -4106,7 +4106,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4106 | rinfopack.RegionInfo2.HardMaxAgents = uint.MaxValue; | 4106 | rinfopack.RegionInfo2.HardMaxAgents = uint.MaxValue; |
4107 | rinfopack.RegionInfo2.HardMaxObjects = uint.MaxValue; | 4107 | rinfopack.RegionInfo2.HardMaxObjects = uint.MaxValue; |
4108 | rinfopack.RegionInfo2.MaxAgents32 = uint.MaxValue; | 4108 | rinfopack.RegionInfo2.MaxAgents32 = uint.MaxValue; |
4109 | rinfopack.RegionInfo2.ProductName = Utils.EmptyBytes; | 4109 | rinfopack.RegionInfo2.ProductName = Util.StringToBytes256(args.regionType); |
4110 | rinfopack.RegionInfo2.ProductSKU = Utils.EmptyBytes; | 4110 | rinfopack.RegionInfo2.ProductSKU = Utils.EmptyBytes; |
4111 | 4111 | ||
4112 | rinfopack.HasVariableBlocks = true; | 4112 | rinfopack.HasVariableBlocks = true; |
diff --git a/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs b/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs index 51f2c41..5025c88 100644 --- a/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs +++ b/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs | |||
@@ -670,6 +670,7 @@ namespace OpenSim.Region.CoreModules.World.Estate | |||
670 | args.useEstateSun = m_scene.RegionInfo.RegionSettings.UseEstateSun; | 670 | args.useEstateSun = m_scene.RegionInfo.RegionSettings.UseEstateSun; |
671 | args.waterHeight = (float)m_scene.RegionInfo.RegionSettings.WaterHeight; | 671 | args.waterHeight = (float)m_scene.RegionInfo.RegionSettings.WaterHeight; |
672 | args.simName = m_scene.RegionInfo.RegionName; | 672 | args.simName = m_scene.RegionInfo.RegionName; |
673 | args.regionType = m_scene.RegionInfo.RegionType; | ||
673 | 674 | ||
674 | remote_client.SendRegionInfoToEstateMenu(args); | 675 | remote_client.SendRegionInfoToEstateMenu(args); |
675 | } | 676 | } |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs index dc43e45..21604d0 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | |||
@@ -1936,7 +1936,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
1936 | 1936 | ||
1937 | if (part.ParentGroup.RootPart == part) | 1937 | if (part.ParentGroup.RootPart == part) |
1938 | { | 1938 | { |
1939 | if ((targetPos.z < ground) && disable_underground_movement) | 1939 | if ((targetPos.z < ground) && disable_underground_movement && m_host.AttachmentPoint == 0) |
1940 | targetPos.z = ground; | 1940 | targetPos.z = ground; |
1941 | SceneObjectGroup parent = part.ParentGroup; | 1941 | SceneObjectGroup parent = part.ParentGroup; |
1942 | LSL_Vector real_vec = SetPosAdjust(currentPos, targetPos); | 1942 | LSL_Vector real_vec = SetPosAdjust(currentPos, targetPos); |
@@ -1968,18 +1968,27 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
1968 | protected LSL_Vector GetPartLocalPos(SceneObjectPart part) | 1968 | protected LSL_Vector GetPartLocalPos(SceneObjectPart part) |
1969 | { | 1969 | { |
1970 | m_host.AddScriptLPS(1); | 1970 | m_host.AddScriptLPS(1); |
1971 | if (part.ParentID != 0) | 1971 | if (part.ParentID == 0) |
1972 | { | ||
1973 | return new LSL_Vector(part.OffsetPosition.X, | ||
1974 | part.OffsetPosition.Y, | ||
1975 | part.OffsetPosition.Z); | ||
1976 | } | ||
1977 | else | ||
1978 | { | 1972 | { |
1979 | return new LSL_Vector(part.AbsolutePosition.X, | 1973 | return new LSL_Vector(part.AbsolutePosition.X, |
1980 | part.AbsolutePosition.Y, | 1974 | part.AbsolutePosition.Y, |
1981 | part.AbsolutePosition.Z); | 1975 | part.AbsolutePosition.Z); |
1982 | } | 1976 | } |
1977 | else | ||
1978 | { | ||
1979 | if (m_host.IsRoot) | ||
1980 | { | ||
1981 | return new LSL_Vector(m_host.AttachedPos.X, | ||
1982 | m_host.AttachedPos.Y, | ||
1983 | m_host.AttachedPos.Z); | ||
1984 | } | ||
1985 | else | ||
1986 | { | ||
1987 | return new LSL_Vector(part.OffsetPosition.X, | ||
1988 | part.OffsetPosition.Y, | ||
1989 | part.OffsetPosition.Z); | ||
1990 | } | ||
1991 | } | ||
1983 | } | 1992 | } |
1984 | 1993 | ||
1985 | public void llSetRot(LSL_Rotation rot) | 1994 | public void llSetRot(LSL_Rotation rot) |