diff options
author | Melanie | 2011-02-24 02:37:21 +0000 |
---|---|---|
committer | Melanie | 2011-02-24 02:37:21 +0000 |
commit | 9be1d2aef1dff06a7bfdb8da38dd6317bf5b0bb7 (patch) | |
tree | 0cf76dba6e5b7255a3d3168c1eec228def3a205f | |
parent | Merge branch 'careminster-presence-refactor' of ssh://3dhosting.de/var/git/ca... (diff) | |
parent | On a Grid Handler exception, explicitly log the exception message and stack t... (diff) | |
download | opensim-SC-9be1d2aef1dff06a7bfdb8da38dd6317bf5b0bb7.zip opensim-SC-9be1d2aef1dff06a7bfdb8da38dd6317bf5b0bb7.tar.gz opensim-SC-9be1d2aef1dff06a7bfdb8da38dd6317bf5b0bb7.tar.bz2 opensim-SC-9be1d2aef1dff06a7bfdb8da38dd6317bf5b0bb7.tar.xz |
Merge branch 'master' into careminster-presence-refactor
9 files changed, 114 insertions, 33 deletions
diff --git a/OpenSim/Data/Null/NullRegionData.cs b/OpenSim/Data/Null/NullRegionData.cs index 2065355..53e5207 100644 --- a/OpenSim/Data/Null/NullRegionData.cs +++ b/OpenSim/Data/Null/NullRegionData.cs | |||
@@ -51,28 +51,56 @@ namespace OpenSim.Data.Null | |||
51 | //Console.WriteLine("[XXX] NullRegionData constructor"); | 51 | //Console.WriteLine("[XXX] NullRegionData constructor"); |
52 | } | 52 | } |
53 | 53 | ||
54 | private delegate bool Matcher(string value); | ||
55 | |||
54 | public List<RegionData> Get(string regionName, UUID scopeID) | 56 | public List<RegionData> Get(string regionName, UUID scopeID) |
55 | { | 57 | { |
56 | if (Instance != this) | 58 | if (Instance != this) |
57 | return Instance.Get(regionName, scopeID); | 59 | return Instance.Get(regionName, scopeID); |
58 | 60 | ||
59 | List<RegionData> ret = new List<RegionData>(); | 61 | string cleanName = regionName.ToLower(); |
60 | 62 | ||
61 | foreach (RegionData r in m_regionData.Values) | 63 | // Handle SQL wildcards |
64 | const string wildcard = "%"; | ||
65 | bool wildcardPrefix = false; | ||
66 | bool wildcardSuffix = false; | ||
67 | if (cleanName.Equals(wildcard)) | ||
62 | { | 68 | { |
63 | if (regionName.Contains("%")) | 69 | wildcardPrefix = wildcardSuffix = true; |
70 | cleanName = string.Empty; | ||
71 | } | ||
72 | else | ||
73 | { | ||
74 | if (cleanName.StartsWith(wildcard)) | ||
64 | { | 75 | { |
65 | string cleanname = regionName.Replace("%", ""); | 76 | wildcardPrefix = true; |
66 | m_log.DebugFormat("[NULL REGION DATA]: comparing {0} to {1}", cleanname.ToLower(), r.RegionName.ToLower()); | 77 | cleanName = cleanName.Substring(1); |
67 | if (r.RegionName.ToLower().Contains(cleanname.ToLower())) | ||
68 | ret.Add(r); | ||
69 | } | 78 | } |
70 | else | 79 | if (regionName.EndsWith(wildcard)) |
71 | { | 80 | { |
72 | if (r.RegionName.ToLower() == regionName.ToLower()) | 81 | wildcardSuffix = true; |
73 | ret.Add(r); | 82 | cleanName = cleanName.Remove(cleanName.Length - 1); |
74 | } | 83 | } |
75 | } | 84 | } |
85 | Matcher queryMatch; | ||
86 | if (wildcardPrefix && wildcardSuffix) | ||
87 | queryMatch = delegate(string s) { return s.Contains(cleanName); }; | ||
88 | else if (wildcardSuffix) | ||
89 | queryMatch = delegate(string s) { return s.StartsWith(cleanName); }; | ||
90 | else if (wildcardPrefix) | ||
91 | queryMatch = delegate(string s) { return s.EndsWith(cleanName); }; | ||
92 | else | ||
93 | queryMatch = delegate(string s) { return s.Equals(cleanName); }; | ||
94 | |||
95 | // Find region data | ||
96 | List<RegionData> ret = new List<RegionData>(); | ||
97 | |||
98 | foreach (RegionData r in m_regionData.Values) | ||
99 | { | ||
100 | m_log.DebugFormat("[NULL REGION DATA]: comparing {0} to {1}", cleanName, r.RegionName.ToLower()); | ||
101 | if (queryMatch(r.RegionName.ToLower())) | ||
102 | ret.Add(r); | ||
103 | } | ||
76 | 104 | ||
77 | if (ret.Count > 0) | 105 | if (ret.Count > 0) |
78 | return ret; | 106 | return ret; |
diff --git a/OpenSim/Framework/Util.cs b/OpenSim/Framework/Util.cs index 821f1a0..3f676f9 100644 --- a/OpenSim/Framework/Util.cs +++ b/OpenSim/Framework/Util.cs | |||
@@ -471,10 +471,17 @@ namespace OpenSim.Framework | |||
471 | /// <param name="oldy">Old region y-coord</param> | 471 | /// <param name="oldy">Old region y-coord</param> |
472 | /// <param name="newy">New region y-coord</param> | 472 | /// <param name="newy">New region y-coord</param> |
473 | /// <returns></returns> | 473 | /// <returns></returns> |
474 | public static bool IsOutsideView(uint oldx, uint newx, uint oldy, uint newy) | 474 | public static bool IsOutsideView(float drawdist, uint oldx, uint newx, uint oldy, uint newy) |
475 | { | 475 | { |
476 | // Eventually this will be a function of the draw distance / camera position too. | 476 | int dd = (int)((drawdist + Constants.RegionSize - 1) / Constants.RegionSize); |
477 | return (((int)Math.Abs((int)(oldx - newx)) > 1) || ((int)Math.Abs((int)(oldy - newy)) > 1)); | 477 | |
478 | int startX = (int)oldx - dd; | ||
479 | int startY = (int)oldy - dd; | ||
480 | |||
481 | int endX = (int)oldx + dd; | ||
482 | int endY = (int)oldy + dd; | ||
483 | |||
484 | return (newx < startX || endX < newx || newy < startY || endY < newy); | ||
478 | } | 485 | } |
479 | 486 | ||
480 | public static string FieldToString(byte[] bytes) | 487 | public static string FieldToString(byte[] bytes) |
diff --git a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs index 51897d7..e622e0c 100644 --- a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs +++ b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs | |||
@@ -319,7 +319,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
319 | agentCircuit.Id0 = currentAgentCircuit.Id0; | 319 | agentCircuit.Id0 = currentAgentCircuit.Id0; |
320 | } | 320 | } |
321 | 321 | ||
322 | if (NeedsNewAgent(oldRegionX, newRegionX, oldRegionY, newRegionY)) | 322 | if (NeedsNewAgent(sp.DrawDistance, oldRegionX, newRegionX, oldRegionY, newRegionY)) |
323 | { | 323 | { |
324 | // brand new agent, let's create a new caps seed | 324 | // brand new agent, let's create a new caps seed |
325 | agentCircuit.CapsPath = CapsUtil.GetRandomCapsObjectPath(); | 325 | agentCircuit.CapsPath = CapsUtil.GetRandomCapsObjectPath(); |
@@ -337,7 +337,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
337 | // OK, it got this agent. Let's close some child agents | 337 | // OK, it got this agent. Let's close some child agents |
338 | sp.CloseChildAgents(newRegionX, newRegionY); | 338 | sp.CloseChildAgents(newRegionX, newRegionY); |
339 | IClientIPEndpoint ipepClient; | 339 | IClientIPEndpoint ipepClient; |
340 | if (NeedsNewAgent(oldRegionX, newRegionX, oldRegionY, newRegionY)) | 340 | if (NeedsNewAgent(sp.DrawDistance, oldRegionX, newRegionX, oldRegionY, newRegionY)) |
341 | { | 341 | { |
342 | //sp.ControllingClient.SendTeleportProgress(teleportFlags, "Creating agent..."); | 342 | //sp.ControllingClient.SendTeleportProgress(teleportFlags, "Creating agent..."); |
343 | #region IP Translation for NAT | 343 | #region IP Translation for NAT |
@@ -448,7 +448,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
448 | 448 | ||
449 | // Finally, let's close this previously-known-as-root agent, when the jump is outside the view zone | 449 | // Finally, let's close this previously-known-as-root agent, when the jump is outside the view zone |
450 | 450 | ||
451 | if (NeedsClosing(oldRegionX, newRegionX, oldRegionY, newRegionY, reg)) | 451 | if (NeedsClosing(sp.DrawDistance, oldRegionX, newRegionX, oldRegionY, newRegionY, reg)) |
452 | { | 452 | { |
453 | Thread.Sleep(5000); | 453 | Thread.Sleep(5000); |
454 | sp.Close(); | 454 | sp.Close(); |
@@ -522,14 +522,14 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
522 | return region; | 522 | return region; |
523 | } | 523 | } |
524 | 524 | ||
525 | protected virtual bool NeedsNewAgent(uint oldRegionX, uint newRegionX, uint oldRegionY, uint newRegionY) | 525 | protected virtual bool NeedsNewAgent(float drawdist, uint oldRegionX, uint newRegionX, uint oldRegionY, uint newRegionY) |
526 | { | 526 | { |
527 | return Util.IsOutsideView(oldRegionX, newRegionX, oldRegionY, newRegionY); | 527 | return Util.IsOutsideView(drawdist, oldRegionX, newRegionX, oldRegionY, newRegionY); |
528 | } | 528 | } |
529 | 529 | ||
530 | protected virtual bool NeedsClosing(uint oldRegionX, uint newRegionX, uint oldRegionY, uint newRegionY, GridRegion reg) | 530 | protected virtual bool NeedsClosing(float drawdist, uint oldRegionX, uint newRegionX, uint oldRegionY, uint newRegionY, GridRegion reg) |
531 | { | 531 | { |
532 | return Util.IsOutsideView(oldRegionX, newRegionX, oldRegionY, newRegionY); | 532 | return Util.IsOutsideView(drawdist, oldRegionX, newRegionX, oldRegionY, newRegionY); |
533 | } | 533 | } |
534 | 534 | ||
535 | protected virtual bool IsOutsideRegion(Scene s, Vector3 pos) | 535 | protected virtual bool IsOutsideRegion(Scene s, Vector3 pos) |
@@ -1072,7 +1072,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
1072 | 1072 | ||
1073 | if (m_regionInfo != null) | 1073 | if (m_regionInfo != null) |
1074 | { | 1074 | { |
1075 | neighbours = RequestNeighbours(sp.Scene, m_regionInfo.RegionLocX, m_regionInfo.RegionLocY); | 1075 | neighbours = RequestNeighbours(sp, m_regionInfo.RegionLocX, m_regionInfo.RegionLocY); |
1076 | } | 1076 | } |
1077 | else | 1077 | else |
1078 | { | 1078 | { |
@@ -1298,8 +1298,9 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
1298 | /// <param name="pRegionLocX"></param> | 1298 | /// <param name="pRegionLocX"></param> |
1299 | /// <param name="pRegionLocY"></param> | 1299 | /// <param name="pRegionLocY"></param> |
1300 | /// <returns></returns> | 1300 | /// <returns></returns> |
1301 | protected List<GridRegion> RequestNeighbours(Scene pScene, uint pRegionLocX, uint pRegionLocY) | 1301 | protected List<GridRegion> RequestNeighbours(ScenePresence avatar, uint pRegionLocX, uint pRegionLocY) |
1302 | { | 1302 | { |
1303 | Scene pScene = avatar.Scene; | ||
1303 | RegionInfo m_regionInfo = pScene.RegionInfo; | 1304 | RegionInfo m_regionInfo = pScene.RegionInfo; |
1304 | 1305 | ||
1305 | Border[] northBorders = pScene.NorthBorders.ToArray(); | 1306 | Border[] northBorders = pScene.NorthBorders.ToArray(); |
@@ -1307,10 +1308,24 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
1307 | Border[] eastBorders = pScene.EastBorders.ToArray(); | 1308 | Border[] eastBorders = pScene.EastBorders.ToArray(); |
1308 | Border[] westBorders = pScene.WestBorders.ToArray(); | 1309 | Border[] westBorders = pScene.WestBorders.ToArray(); |
1309 | 1310 | ||
1310 | // Legacy one region. Provided for simplicity while testing the all inclusive method in the else statement. | 1311 | // Leaving this as a "megaregions" computation vs "non-megaregions" computation; it isn't |
1312 | // clear what should be done with a "far view" given that megaregions already extended the | ||
1313 | // view to include everything in the megaregion | ||
1311 | if (northBorders.Length <= 1 && southBorders.Length <= 1 && eastBorders.Length <= 1 && westBorders.Length <= 1) | 1314 | if (northBorders.Length <= 1 && southBorders.Length <= 1 && eastBorders.Length <= 1 && westBorders.Length <= 1) |
1312 | { | 1315 | { |
1313 | return pScene.GridService.GetNeighbours(m_regionInfo.ScopeID, m_regionInfo.RegionID); | 1316 | int dd = avatar.DrawDistance < Constants.RegionSize ? (int)Constants.RegionSize : (int)avatar.DrawDistance; |
1317 | |||
1318 | int startX = (int)pRegionLocX * (int)Constants.RegionSize - dd + (int)(Constants.RegionSize/2); | ||
1319 | int startY = (int)pRegionLocY * (int)Constants.RegionSize - dd + (int)(Constants.RegionSize/2); | ||
1320 | |||
1321 | int endX = (int)pRegionLocX * (int)Constants.RegionSize + dd + (int)(Constants.RegionSize/2); | ||
1322 | int endY = (int)pRegionLocY * (int)Constants.RegionSize + dd + (int)(Constants.RegionSize/2); | ||
1323 | |||
1324 | List<GridRegion> neighbours = | ||
1325 | avatar.Scene.GridService.GetRegionRange(m_regionInfo.ScopeID, startX, endX, startY, endY); | ||
1326 | |||
1327 | neighbours.RemoveAll(delegate(GridRegion r) { return r.RegionID == m_regionInfo.RegionID; }); | ||
1328 | return neighbours; | ||
1314 | } | 1329 | } |
1315 | else | 1330 | else |
1316 | { | 1331 | { |
diff --git a/OpenSim/Region/CoreModules/Framework/EntityTransfer/HGEntityTransferModule.cs b/OpenSim/Region/CoreModules/Framework/EntityTransfer/HGEntityTransferModule.cs index c75bc0a..5a80100 100644 --- a/OpenSim/Region/CoreModules/Framework/EntityTransfer/HGEntityTransferModule.cs +++ b/OpenSim/Region/CoreModules/Framework/EntityTransfer/HGEntityTransferModule.cs | |||
@@ -130,9 +130,9 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
130 | return region; | 130 | return region; |
131 | } | 131 | } |
132 | 132 | ||
133 | protected override bool NeedsClosing(uint oldRegionX, uint newRegionX, uint oldRegionY, uint newRegionY, GridRegion reg) | 133 | protected override bool NeedsClosing(float drawdist, uint oldRegionX, uint newRegionX, uint oldRegionY, uint newRegionY, GridRegion reg) |
134 | { | 134 | { |
135 | if (base.NeedsClosing(oldRegionX, newRegionX, oldRegionY, newRegionY, reg)) | 135 | if (base.NeedsClosing(drawdist, oldRegionX, newRegionX, oldRegionY, newRegionY, reg)) |
136 | return true; | 136 | return true; |
137 | 137 | ||
138 | int flags = m_aScene.GridService.GetRegionFlags(m_aScene.RegionInfo.ScopeID, reg.RegionID); | 138 | int flags = m_aScene.GridService.GetRegionFlags(m_aScene.RegionInfo.ScopeID, reg.RegionID); |
diff --git a/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs b/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs index 0163060..fcf571d 100644 --- a/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs +++ b/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs | |||
@@ -604,6 +604,7 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess | |||
604 | { | 604 | { |
605 | m_log.Debug("[InventoryAccessModule]: Inventory object has UUID.Zero! Position 1"); | 605 | m_log.Debug("[InventoryAccessModule]: Inventory object has UUID.Zero! Position 1"); |
606 | } | 606 | } |
607 | item.Owner = remoteClient.AgentId; | ||
607 | 608 | ||
608 | AssetBase rezAsset = m_Scene.AssetService.Get(item.AssetID.ToString()); | 609 | AssetBase rezAsset = m_Scene.AssetService.Get(item.AssetID.ToString()); |
609 | 610 | ||
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index 2815f29..2e116a2 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs | |||
@@ -83,6 +83,13 @@ namespace OpenSim.Region.Framework.Scenes | |||
83 | public bool m_useFlySlow; | 83 | public bool m_useFlySlow; |
84 | public bool m_usePreJump; | 84 | public bool m_usePreJump; |
85 | public bool m_seeIntoRegionFromNeighbor; | 85 | public bool m_seeIntoRegionFromNeighbor; |
86 | |||
87 | protected float m_defaultDrawDistance = 255.0f; | ||
88 | public float DefaultDrawDistance | ||
89 | { | ||
90 | get { return m_defaultDrawDistance; } | ||
91 | } | ||
92 | |||
86 | // TODO: need to figure out how allow client agents but deny | 93 | // TODO: need to figure out how allow client agents but deny |
87 | // root agents when ACL denies access to root agent | 94 | // root agents when ACL denies access to root agent |
88 | public bool m_strictAccessControl = true; | 95 | public bool m_strictAccessControl = true; |
@@ -649,6 +656,8 @@ namespace OpenSim.Region.Framework.Scenes | |||
649 | // | 656 | // |
650 | IConfig startupConfig = m_config.Configs["Startup"]; | 657 | IConfig startupConfig = m_config.Configs["Startup"]; |
651 | 658 | ||
659 | m_defaultDrawDistance = startupConfig.GetFloat("DefaultDrawDistance",m_defaultDrawDistance); | ||
660 | |||
652 | //Animation states | 661 | //Animation states |
653 | m_useFlySlow = startupConfig.GetBoolean("enableflyslow", false); | 662 | m_useFlySlow = startupConfig.GetBoolean("enableflyslow", false); |
654 | // TODO: Change default to true once the feature is supported | 663 | // TODO: Change default to true once the feature is supported |
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs index fd03e93..e7056ba 100644 --- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs | |||
@@ -690,7 +690,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
690 | Utils.LongToUInts(handle, out x, out y); | 690 | Utils.LongToUInts(handle, out x, out y); |
691 | x = x / Constants.RegionSize; | 691 | x = x / Constants.RegionSize; |
692 | y = y / Constants.RegionSize; | 692 | y = y / Constants.RegionSize; |
693 | if (Util.IsOutsideView(x, Scene.RegionInfo.RegionLocX, y, Scene.RegionInfo.RegionLocY)) | 693 | if (Util.IsOutsideView(DrawDistance, x, Scene.RegionInfo.RegionLocX, y, Scene.RegionInfo.RegionLocY)) |
694 | { | 694 | { |
695 | old.Add(handle); | 695 | old.Add(handle); |
696 | } | 696 | } |
@@ -764,6 +764,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
764 | 764 | ||
765 | private ScenePresence(IClientAPI client, Scene world, RegionInfo reginfo) : this() | 765 | private ScenePresence(IClientAPI client, Scene world, RegionInfo reginfo) : this() |
766 | { | 766 | { |
767 | m_DrawDistance = world.DefaultDrawDistance; | ||
767 | m_rootRegionHandle = reginfo.RegionHandle; | 768 | m_rootRegionHandle = reginfo.RegionHandle; |
768 | m_controllingClient = client; | 769 | m_controllingClient = client; |
769 | m_firstname = m_controllingClient.FirstName; | 770 | m_firstname = m_controllingClient.FirstName; |
@@ -1429,7 +1430,11 @@ namespace OpenSim.Region.Framework.Scenes | |||
1429 | m_CameraUpAxis = agentData.CameraUpAxis; | 1430 | m_CameraUpAxis = agentData.CameraUpAxis; |
1430 | 1431 | ||
1431 | // The Agent's Draw distance setting | 1432 | // The Agent's Draw distance setting |
1432 | m_DrawDistance = agentData.Far; | 1433 | // When we get to the point of re-computing neighbors everytime this |
1434 | // changes, then start using the agent's drawdistance rather than the | ||
1435 | // region's draw distance. | ||
1436 | // m_DrawDistance = agentData.Far; | ||
1437 | m_DrawDistance = Scene.DefaultDrawDistance; | ||
1433 | 1438 | ||
1434 | // Check if Client has camera in 'follow cam' or 'build' mode. | 1439 | // Check if Client has camera in 'follow cam' or 'build' mode. |
1435 | Vector3 camdif = (Vector3.One * m_bodyRot - Vector3.One * CameraRotation); | 1440 | Vector3 camdif = (Vector3.One * m_bodyRot - Vector3.One * CameraRotation); |
@@ -3289,7 +3294,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
3289 | 3294 | ||
3290 | //m_log.Debug("---> x: " + x + "; newx:" + newRegionX + "; Abs:" + (int)Math.Abs((int)(x - newRegionX))); | 3295 | //m_log.Debug("---> x: " + x + "; newx:" + newRegionX + "; Abs:" + (int)Math.Abs((int)(x - newRegionX))); |
3291 | //m_log.Debug("---> y: " + y + "; newy:" + newRegionY + "; Abs:" + (int)Math.Abs((int)(y - newRegionY))); | 3296 | //m_log.Debug("---> y: " + y + "; newy:" + newRegionY + "; Abs:" + (int)Math.Abs((int)(y - newRegionY))); |
3292 | if (Util.IsOutsideView(x, newRegionX, y, newRegionY)) | 3297 | if (Util.IsOutsideView(DrawDistance, x, newRegionX, y, newRegionY)) |
3293 | { | 3298 | { |
3294 | byebyeRegions.Add(handle); | 3299 | byebyeRegions.Add(handle); |
3295 | } | 3300 | } |
@@ -3365,7 +3370,12 @@ namespace OpenSim.Region.Framework.Scenes | |||
3365 | 3370 | ||
3366 | Vector3 offset = new Vector3(shiftx, shifty, 0f); | 3371 | Vector3 offset = new Vector3(shiftx, shifty, 0f); |
3367 | 3372 | ||
3368 | m_DrawDistance = cAgentData.Far; | 3373 | // When we get to the point of re-computing neighbors everytime this |
3374 | // changes, then start using the agent's drawdistance rather than the | ||
3375 | // region's draw distance. | ||
3376 | // m_DrawDistance = cAgentData.Far; | ||
3377 | m_DrawDistance = Scene.DefaultDrawDistance; | ||
3378 | |||
3369 | if (cAgentData.Position != new Vector3(-1f, -1f, -1f)) // UGH!! | 3379 | if (cAgentData.Position != new Vector3(-1f, -1f, -1f)) // UGH!! |
3370 | m_pos = cAgentData.Position + offset; | 3380 | m_pos = cAgentData.Position + offset; |
3371 | 3381 | ||
@@ -3516,7 +3526,11 @@ namespace OpenSim.Region.Framework.Scenes | |||
3516 | m_CameraLeftAxis = cAgent.LeftAxis; | 3526 | m_CameraLeftAxis = cAgent.LeftAxis; |
3517 | m_CameraUpAxis = cAgent.UpAxis; | 3527 | m_CameraUpAxis = cAgent.UpAxis; |
3518 | 3528 | ||
3519 | m_DrawDistance = cAgent.Far; | 3529 | // When we get to the point of re-computing neighbors everytime this |
3530 | // changes, then start using the agent's drawdistance rather than the | ||
3531 | // region's draw distance. | ||
3532 | // m_DrawDistance = cAgent.Far; | ||
3533 | m_DrawDistance = Scene.DefaultDrawDistance; | ||
3520 | 3534 | ||
3521 | if ((cAgent.Throttles != null) && cAgent.Throttles.Length > 0) | 3535 | if ((cAgent.Throttles != null) && cAgent.Throttles.Length > 0) |
3522 | ControllingClient.SetChildAgentThrottle(cAgent.Throttles); | 3536 | ControllingClient.SetChildAgentThrottle(cAgent.Throttles); |
diff --git a/OpenSim/Server/Handlers/Grid/GridServerPostHandler.cs b/OpenSim/Server/Handlers/Grid/GridServerPostHandler.cs index 913c6c9..edc0561 100644 --- a/OpenSim/Server/Handlers/Grid/GridServerPostHandler.cs +++ b/OpenSim/Server/Handlers/Grid/GridServerPostHandler.cs | |||
@@ -115,15 +115,15 @@ namespace OpenSim.Server.Handlers.Grid | |||
115 | case "get_region_flags": | 115 | case "get_region_flags": |
116 | return GetRegionFlags(request); | 116 | return GetRegionFlags(request); |
117 | } | 117 | } |
118 | |||
118 | m_log.DebugFormat("[GRID HANDLER]: unknown method {0} request {1}", method.Length, method); | 119 | m_log.DebugFormat("[GRID HANDLER]: unknown method {0} request {1}", method.Length, method); |
119 | } | 120 | } |
120 | catch (Exception e) | 121 | catch (Exception e) |
121 | { | 122 | { |
122 | m_log.DebugFormat("[GRID HANDLER]: Exception {0}", e); | 123 | m_log.ErrorFormat("[GRID HANDLER]: Exception {0} {1}", e.Message, e.StackTrace); |
123 | } | 124 | } |
124 | 125 | ||
125 | return FailureResult(); | 126 | return FailureResult(); |
126 | |||
127 | } | 127 | } |
128 | 128 | ||
129 | #region Method-specific handlers | 129 | #region Method-specific handlers |
diff --git a/bin/OpenSimDefaults.ini b/bin/OpenSimDefaults.ini index c7e550b..0337c77 100644 --- a/bin/OpenSimDefaults.ini +++ b/bin/OpenSimDefaults.ini | |||
@@ -94,6 +94,13 @@ | |||
94 | ; Warning! Don't use this with regions that have existing content!, This will likely break them | 94 | ; Warning! Don't use this with regions that have existing content!, This will likely break them |
95 | CombineContiguousRegions = false | 95 | CombineContiguousRegions = false |
96 | 96 | ||
97 | ; Extend the region's draw distance; 255m is the default which includes | ||
98 | ; one neighbor on each side of the current region, 767m would go three | ||
99 | ; neighbors on each side for a total of 49 regions in view. Warning, unless | ||
100 | ; all the regions have the same drawdistance, you will end up with strange | ||
101 | ; effects because the agents that get closed may be inconsistent. | ||
102 | ; DefaultDrawDistance = 255.0 | ||
103 | |||
97 | ; If you have only one region in an instance, or to avoid the many bugs | 104 | ; If you have only one region in an instance, or to avoid the many bugs |
98 | ; that you can trigger in modules by restarting a region, set this to | 105 | ; that you can trigger in modules by restarting a region, set this to |
99 | ; true to make the entire instance exit instead of restarting the region. | 106 | ; true to make the entire instance exit instead of restarting the region. |