diff options
author | Robert Adams | 2013-11-08 20:53:37 -0800 |
---|---|---|
committer | Robert Adams | 2013-11-08 20:53:37 -0800 |
commit | beeec1c46726a266edf5c8260f9cf4e4e6f91c8a (patch) | |
tree | ac749f4db4d4ee640bf9091b9684d2a36eedb284 /OpenSim/Region/Framework/Scenes/ScenePresence.cs | |
parent | varregion: Massive work to LandManagementModule and LandObject to (diff) | |
download | opensim-SC_OLD-beeec1c46726a266edf5c8260f9cf4e4e6f91c8a.zip opensim-SC_OLD-beeec1c46726a266edf5c8260f9cf4e4e6f91c8a.tar.gz opensim-SC_OLD-beeec1c46726a266edf5c8260f9cf4e4e6f91c8a.tar.bz2 opensim-SC_OLD-beeec1c46726a266edf5c8260f9cf4e4e6f91c8a.tar.xz |
varregion: elimination of Constants.RegionSize from all over OpenSimulator.
Routines in Util to compute region world coordinates from region coordinates
as well as the conversion to and from region handles. These routines have
replaced a lot of math scattered throughout the simulator.
Should be no functional changes.
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/ScenePresence.cs')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/ScenePresence.cs | 34 |
1 files changed, 15 insertions, 19 deletions
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs index 297ee5f..2c64c85 100644 --- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs | |||
@@ -707,9 +707,8 @@ namespace OpenSim.Region.Framework.Scenes | |||
707 | foreach (ulong handle in seeds.Keys) | 707 | foreach (ulong handle in seeds.Keys) |
708 | { | 708 | { |
709 | uint x, y; | 709 | uint x, y; |
710 | Utils.LongToUInts(handle, out x, out y); | 710 | Util.RegionHandleToRegionLoc(handle, out x, out y); |
711 | x = x / Constants.RegionSize; | 711 | |
712 | y = y / Constants.RegionSize; | ||
713 | if (Util.IsOutsideView(DrawDistance, x, Scene.RegionInfo.LegacyRegionLocX, y, Scene.RegionInfo.LegacyRegionLocY)) | 712 | if (Util.IsOutsideView(DrawDistance, x, Scene.RegionInfo.LegacyRegionLocX, y, Scene.RegionInfo.LegacyRegionLocY)) |
714 | { | 713 | { |
715 | old.Add(handle); | 714 | old.Add(handle); |
@@ -731,9 +730,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
731 | foreach (KeyValuePair<ulong, string> kvp in KnownRegions) | 730 | foreach (KeyValuePair<ulong, string> kvp in KnownRegions) |
732 | { | 731 | { |
733 | uint x, y; | 732 | uint x, y; |
734 | Utils.LongToUInts(kvp.Key, out x, out y); | 733 | Util.RegionHandleToRegionLoc(kvp.Key, out x, out y); |
735 | x = x / Constants.RegionSize; | ||
736 | y = y / Constants.RegionSize; | ||
737 | m_log.Info(" >> "+x+", "+y+": "+kvp.Value); | 734 | m_log.Info(" >> "+x+", "+y+": "+kvp.Value); |
738 | } | 735 | } |
739 | } | 736 | } |
@@ -971,7 +968,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
971 | 968 | ||
972 | float posZLimit = 0; | 969 | float posZLimit = 0; |
973 | 970 | ||
974 | if (pos.X < Constants.RegionSize && pos.Y < Constants.RegionSize) | 971 | if (pos.X < m_scene.RegionInfo.RegionSizeX && pos.Y < m_scene.RegionInfo.RegionSizeY) |
975 | posZLimit = (float)m_scene.Heightmap[(int)pos.X, (int)pos.Y]; | 972 | posZLimit = (float)m_scene.Heightmap[(int)pos.X, (int)pos.Y]; |
976 | 973 | ||
977 | float newPosZ = posZLimit + localAVHeight / 2; | 974 | float newPosZ = posZLimit + localAVHeight / 2; |
@@ -2076,7 +2073,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2076 | if (regionCombinerModule != null) | 2073 | if (regionCombinerModule != null) |
2077 | regionSize = regionCombinerModule.GetSizeOfMegaregion(m_scene.RegionInfo.RegionID); | 2074 | regionSize = regionCombinerModule.GetSizeOfMegaregion(m_scene.RegionInfo.RegionID); |
2078 | else | 2075 | else |
2079 | regionSize = new Vector2(Constants.RegionSize); | 2076 | regionSize = new Vector2(m_scene.RegionInfo.RegionSizeX, m_scene.RegionInfo.RegionSizeY); |
2080 | 2077 | ||
2081 | if (pos.X < 0 || pos.X >= regionSize.X | 2078 | if (pos.X < 0 || pos.X >= regionSize.X |
2082 | || pos.Y < 0 || pos.Y >= regionSize.Y | 2079 | || pos.Y < 0 || pos.Y >= regionSize.Y |
@@ -2106,7 +2103,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2106 | if (!SceneManager.Instance.TryGetScene(target_regionID, out targetScene)) | 2103 | if (!SceneManager.Instance.TryGetScene(target_regionID, out targetScene)) |
2107 | targetScene = m_scene; | 2104 | targetScene = m_scene; |
2108 | 2105 | ||
2109 | float terrainHeight = (float)targetScene.Heightmap[(int)(pos.X % Constants.RegionSize), (int)(pos.Y % Constants.RegionSize)]; | 2106 | float terrainHeight = (float)targetScene.Heightmap[(int)(pos.X % regionSize.X), (int)(pos.Y % regionSize.Y)]; |
2110 | pos.Z = Math.Max(terrainHeight, pos.Z); | 2107 | pos.Z = Math.Max(terrainHeight, pos.Z); |
2111 | 2108 | ||
2112 | // Fudge factor. It appears that if one clicks "go here" on a piece of ground, the go here request is | 2109 | // Fudge factor. It appears that if one clicks "go here" on a piece of ground, the go here request is |
@@ -3199,11 +3196,11 @@ namespace OpenSim.Region.Framework.Scenes | |||
3199 | Vector3 pos = AbsolutePosition; | 3196 | Vector3 pos = AbsolutePosition; |
3200 | if (AbsolutePosition.X < 0) | 3197 | if (AbsolutePosition.X < 0) |
3201 | pos.X += Velocity.X * 2; | 3198 | pos.X += Velocity.X * 2; |
3202 | else if (AbsolutePosition.X > Constants.RegionSize) | 3199 | else if (AbsolutePosition.X > m_scene.RegionInfo.RegionSizeX) |
3203 | pos.X -= Velocity.X * 2; | 3200 | pos.X -= Velocity.X * 2; |
3204 | if (AbsolutePosition.Y < 0) | 3201 | if (AbsolutePosition.Y < 0) |
3205 | pos.Y += Velocity.Y * 2; | 3202 | pos.Y += Velocity.Y * 2; |
3206 | else if (AbsolutePosition.Y > Constants.RegionSize) | 3203 | else if (AbsolutePosition.Y > m_scene.RegionInfo.RegionSizeY) |
3207 | pos.Y -= Velocity.Y * 2; | 3204 | pos.Y -= Velocity.Y * 2; |
3208 | Velocity = Vector3.Zero; | 3205 | Velocity = Vector3.Zero; |
3209 | AbsolutePosition = pos; | 3206 | AbsolutePosition = pos; |
@@ -3226,11 +3223,11 @@ namespace OpenSim.Region.Framework.Scenes | |||
3226 | Vector3 pos = AbsolutePosition; | 3223 | Vector3 pos = AbsolutePosition; |
3227 | if (AbsolutePosition.X < 0) | 3224 | if (AbsolutePosition.X < 0) |
3228 | pos.X += Velocity.X * 2; | 3225 | pos.X += Velocity.X * 2; |
3229 | else if (AbsolutePosition.X > Constants.RegionSize) | 3226 | else if (AbsolutePosition.X > m_scene.RegionInfo.RegionSizeX) |
3230 | pos.X -= Velocity.X * 2; | 3227 | pos.X -= Velocity.X * 2; |
3231 | if (AbsolutePosition.Y < 0) | 3228 | if (AbsolutePosition.Y < 0) |
3232 | pos.Y += Velocity.Y * 2; | 3229 | pos.Y += Velocity.Y * 2; |
3233 | else if (AbsolutePosition.Y > Constants.RegionSize) | 3230 | else if (AbsolutePosition.Y > m_scene.RegionInfo.RegionSizeY) |
3234 | pos.Y -= Velocity.Y * 2; | 3231 | pos.Y -= Velocity.Y * 2; |
3235 | Velocity = Vector3.Zero; | 3232 | Velocity = Vector3.Zero; |
3236 | AbsolutePosition = pos; | 3233 | AbsolutePosition = pos; |
@@ -3279,7 +3276,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
3279 | 3276 | ||
3280 | // Put the child agent back at the center | 3277 | // Put the child agent back at the center |
3281 | AbsolutePosition | 3278 | AbsolutePosition |
3282 | = new Vector3(((float)Constants.RegionSize * 0.5f), ((float)Constants.RegionSize * 0.5f), 70); | 3279 | = new Vector3(((float)m_scene.RegionInfo.RegionSizeX * 0.5f), ((float)m_scene.RegionInfo.RegionSizeY * 0.5f), 70); |
3283 | 3280 | ||
3284 | Animator.ResetAnimations(); | 3281 | Animator.ResetAnimations(); |
3285 | } | 3282 | } |
@@ -3306,9 +3303,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
3306 | if (handle != Scene.RegionInfo.RegionHandle) | 3303 | if (handle != Scene.RegionInfo.RegionHandle) |
3307 | { | 3304 | { |
3308 | uint x, y; | 3305 | uint x, y; |
3309 | Utils.LongToUInts(handle, out x, out y); | 3306 | Util.RegionHandleToRegionLoc(handle, out x, out y); |
3310 | x = x / Constants.RegionSize; | ||
3311 | y = y / Constants.RegionSize; | ||
3312 | 3307 | ||
3313 | // m_log.Debug("---> x: " + x + "; newx:" + newRegionX + "; Abs:" + (int)Math.Abs((int)(x - newRegionX))); | 3308 | // m_log.Debug("---> x: " + x + "; newx:" + newRegionX + "; Abs:" + (int)Math.Abs((int)(x - newRegionX))); |
3314 | // m_log.Debug("---> y: " + y + "; newy:" + newRegionY + "; Abs:" + (int)Math.Abs((int)(y - newRegionY))); | 3309 | // m_log.Debug("---> y: " + y + "; newy:" + newRegionY + "; Abs:" + (int)Math.Abs((int)(y - newRegionY))); |
@@ -3389,8 +3384,9 @@ namespace OpenSim.Region.Framework.Scenes | |||
3389 | return; | 3384 | return; |
3390 | 3385 | ||
3391 | //m_log.Debug(" >>> ChildAgentPositionUpdate <<< " + rRegionX + "-" + rRegionY); | 3386 | //m_log.Debug(" >>> ChildAgentPositionUpdate <<< " + rRegionX + "-" + rRegionY); |
3392 | int shiftx = ((int)rRegionX - (int)tRegionX) * (int)Constants.RegionSize; | 3387 | // Find the distance (in meters) between the two regions |
3393 | int shifty = ((int)rRegionY - (int)tRegionY) * (int)Constants.RegionSize; | 3388 | uint shiftx = Util.RegionToWorldLoc(rRegionX - tRegionX); |
3389 | uint shifty = Util.RegionToWorldLoc(rRegionY - tRegionY); | ||
3394 | 3390 | ||
3395 | Vector3 offset = new Vector3(shiftx, shifty, 0f); | 3391 | Vector3 offset = new Vector3(shiftx, shifty, 0f); |
3396 | 3392 | ||