diff options
Diffstat (limited to 'OpenSim/Region/ScriptEngine')
3 files changed, 18 insertions, 18 deletions
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs index 6991831..91885b7 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | |||
@@ -2107,7 +2107,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
2107 | // | 2107 | // |
2108 | // This workaround is to prevent silent failure of this function. | 2108 | // This workaround is to prevent silent failure of this function. |
2109 | // According to the specification on the SL Wiki, providing a position outside of the | 2109 | // According to the specification on the SL Wiki, providing a position outside of the |
2110 | if (pos.x < 0 || pos.x > Constants.RegionSize || pos.y < 0 || pos.y > Constants.RegionSize) | 2110 | if (pos.x < 0 || pos.x > World.RegionInfo.RegionSizeX || pos.y < 0 || pos.y > World.RegionInfo.RegionSizeY) |
2111 | { | 2111 | { |
2112 | return 0; | 2112 | return 0; |
2113 | } | 2113 | } |
@@ -2117,9 +2117,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
2117 | m_host.ParentGroup.IsAttachment || // return FALSE if attachment | 2117 | m_host.ParentGroup.IsAttachment || // return FALSE if attachment |
2118 | ( | 2118 | ( |
2119 | pos.x < -10.0 || // return FALSE if more than 10 meters into a west-adjacent region. | 2119 | pos.x < -10.0 || // return FALSE if more than 10 meters into a west-adjacent region. |
2120 | pos.x > (Constants.RegionSize + 10) || // return FALSE if more than 10 meters into a east-adjacent region. | 2120 | pos.x > (World.RegionInfo.RegionSizeX + 10) || // return FALSE if more than 10 meters into a east-adjacent region. |
2121 | pos.y < -10.0 || // return FALSE if more than 10 meters into a south-adjacent region. | 2121 | pos.y < -10.0 || // return FALSE if more than 10 meters into a south-adjacent region. |
2122 | pos.y > (Constants.RegionSize + 10) || // return FALSE if more than 10 meters into a north-adjacent region. | 2122 | pos.y > (World.RegionInfo.RegionSizeY + 10) || // return FALSE if more than 10 meters into a north-adjacent region. |
2123 | pos.z > Constants.RegionHeight // return FALSE if altitude than 4096m | 2123 | pos.z > Constants.RegionHeight // return FALSE if altitude than 4096m |
2124 | ) | 2124 | ) |
2125 | ) | 2125 | ) |
@@ -4237,10 +4237,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
4237 | DataserverPlugin.RegisterRequest(m_host.LocalId, | 4237 | DataserverPlugin.RegisterRequest(m_host.LocalId, |
4238 | m_item.ItemID, item.AssetID.ToString()); | 4238 | m_item.ItemID, item.AssetID.ToString()); |
4239 | 4239 | ||
4240 | Vector3 region = new Vector3( | 4240 | Vector3 region = new Vector3(World.RegionInfo.WorldLocX, World.RegionInfo.WorldLocY, 0); |
4241 | World.RegionInfo.RegionLocX * Constants.RegionSize, | ||
4242 | World.RegionInfo.RegionLocY * Constants.RegionSize, | ||
4243 | 0); | ||
4244 | 4241 | ||
4245 | World.AssetService.Get(item.AssetID.ToString(), this, | 4242 | World.AssetService.Get(item.AssetID.ToString(), this, |
4246 | delegate(string i, object sender, AssetBase a) | 4243 | delegate(string i, object sender, AssetBase a) |
@@ -4329,7 +4326,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
4329 | m_host.AddScriptLPS(1); | 4326 | m_host.AddScriptLPS(1); |
4330 | UUID agentId = new UUID(); | 4327 | UUID agentId = new UUID(); |
4331 | 4328 | ||
4332 | ulong regionHandle = Utils.UIntsToLong((uint)global_coords.x, (uint)global_coords.y); | 4329 | ulong regionHandle = Util.RegionWorldLocToHandle((uint)global_coords.x, (uint)global_coords.y); |
4333 | 4330 | ||
4334 | if (UUID.TryParse(agent, out agentId)) | 4331 | if (UUID.TryParse(agent, out agentId)) |
4335 | { | 4332 | { |
@@ -5474,7 +5471,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
5474 | public LSL_Vector llGetRegionCorner() | 5471 | public LSL_Vector llGetRegionCorner() |
5475 | { | 5472 | { |
5476 | m_host.AddScriptLPS(1); | 5473 | m_host.AddScriptLPS(1); |
5477 | return new LSL_Vector(World.RegionInfo.RegionLocX * Constants.RegionSize, World.RegionInfo.RegionLocY * Constants.RegionSize, 0); | 5474 | return new LSL_Vector(World.RegionInfo.WorldLocX, World.RegionInfo.WorldLocY, 0); |
5478 | } | 5475 | } |
5479 | 5476 | ||
5480 | /// <summary> | 5477 | /// <summary> |
@@ -5621,7 +5618,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
5621 | LSL_Float mag; | 5618 | LSL_Float mag; |
5622 | if (dir.x > 0) | 5619 | if (dir.x > 0) |
5623 | { | 5620 | { |
5624 | mag = (Constants.RegionSize - pos.x) / dir.x; | 5621 | mag = (World.RegionInfo.RegionSizeX - pos.x) / dir.x; |
5625 | } | 5622 | } |
5626 | else | 5623 | else |
5627 | { | 5624 | { |
@@ -5632,7 +5629,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
5632 | 5629 | ||
5633 | edge.y = pos.y + (dir.y * mag); | 5630 | edge.y = pos.y + (dir.y * mag); |
5634 | 5631 | ||
5635 | if (edge.y > Constants.RegionSize || edge.y < 0) | 5632 | if (edge.y > World.RegionInfo.RegionSizeY || edge.y < 0) |
5636 | { | 5633 | { |
5637 | // Y goes out of bounds first | 5634 | // Y goes out of bounds first |
5638 | edge.y = dir.y / Math.Abs(dir.y); | 5635 | edge.y = dir.y / Math.Abs(dir.y); |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs index 15fbbfd..73174b4 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs | |||
@@ -450,7 +450,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
450 | { | 450 | { |
451 | m_host.AddScriptLPS(1); | 451 | m_host.AddScriptLPS(1); |
452 | 452 | ||
453 | if (x > ((int)Constants.RegionSize - 1) || x < 0 || y > ((int)Constants.RegionSize - 1) || y < 0) | 453 | if (x > (World.RegionInfo.RegionSizeX - 1) || x < 0 || y > (World.RegionInfo.RegionSizeY - 1) || y < 0) |
454 | OSSLError("osSetTerrainHeight: Coordinate out of bounds"); | 454 | OSSLError("osSetTerrainHeight: Coordinate out of bounds"); |
455 | 455 | ||
456 | if (World.Permissions.CanTerraformLand(m_host.OwnerID, new Vector3(x, y, 0))) | 456 | if (World.Permissions.CanTerraformLand(m_host.OwnerID, new Vector3(x, y, 0))) |
@@ -480,7 +480,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
480 | private LSL_Float GetTerrainHeight(int x, int y) | 480 | private LSL_Float GetTerrainHeight(int x, int y) |
481 | { | 481 | { |
482 | m_host.AddScriptLPS(1); | 482 | m_host.AddScriptLPS(1); |
483 | if (x > ((int)Constants.RegionSize - 1) || x < 0 || y > ((int)Constants.RegionSize - 1) || y < 0) | 483 | if (x > (World.RegionInfo.RegionSizeX - 1) || x < 0 || y > (World.RegionInfo.RegionSizeY - 1) || y < 0) |
484 | OSSLError("osGetTerrainHeight: Coordinate out of bounds"); | 484 | OSSLError("osGetTerrainHeight: Coordinate out of bounds"); |
485 | 485 | ||
486 | return World.Heightmap[x, y]; | 486 | return World.Heightmap[x, y]; |
@@ -814,7 +814,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
814 | private void TeleportAgent(string agent, int regionX, int regionY, | 814 | private void TeleportAgent(string agent, int regionX, int regionY, |
815 | LSL_Types.Vector3 position, LSL_Types.Vector3 lookat, bool relaxRestrictions) | 815 | LSL_Types.Vector3 position, LSL_Types.Vector3 lookat, bool relaxRestrictions) |
816 | { | 816 | { |
817 | ulong regionHandle = Util.UIntsToLong(((uint)regionX * (uint)Constants.RegionSize), ((uint)regionY * (uint)Constants.RegionSize)); | 817 | // ulong regionHandle = Util.UIntsToLong(((uint)regionX * (uint)Constants.RegionSize), ((uint)regionY * (uint)Constants.RegionSize)); |
818 | ulong regionHandle = Util.RegionLocToHandle((uint)regionX, (uint)regionY); | ||
818 | 819 | ||
819 | m_host.AddScriptLPS(1); | 820 | m_host.AddScriptLPS(1); |
820 | UUID agentId = new UUID(); | 821 | UUID agentId = new UUID(); |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs index 02a3541..9c060e5 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs | |||
@@ -713,16 +713,18 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase | |||
713 | } | 713 | } |
714 | private void Save() | 714 | private void Save() |
715 | { | 715 | { |
716 | /* Remove temporarily until we have a handle to the region size | ||
716 | if (Position.x > ((int)Constants.RegionSize - 1)) | 717 | if (Position.x > ((int)Constants.RegionSize - 1)) |
717 | Position.x = ((int)Constants.RegionSize - 1); | 718 | Position.x = ((int)Constants.RegionSize - 1); |
718 | if (Position.x < 0) | ||
719 | Position.x = 0; | ||
720 | if (Position.y > ((int)Constants.RegionSize - 1)) | 719 | if (Position.y > ((int)Constants.RegionSize - 1)) |
721 | Position.y = ((int)Constants.RegionSize - 1); | 720 | Position.y = ((int)Constants.RegionSize - 1); |
721 | */ | ||
722 | if (Position.z > Constants.RegionHeight) | ||
723 | Position.z = Constants.RegionHeight; | ||
724 | if (Position.x < 0) | ||
725 | Position.x = 0; | ||
722 | if (Position.y < 0) | 726 | if (Position.y < 0) |
723 | Position.y = 0; | 727 | Position.y = 0; |
724 | if (Position.z > 768) | ||
725 | Position.z = 768; | ||
726 | if (Position.z < 0) | 728 | if (Position.z < 0) |
727 | Position.z = 0; | 729 | Position.z = 0; |
728 | prim.OSSL.llSetPos(Position); | 730 | prim.OSSL.llSetPos(Position); |