aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorUbitUmarov2015-08-26 03:21:48 +0100
committerUbitUmarov2015-08-26 03:21:48 +0100
commit73124f22cc5974596ddf6bcedb9a1d251ec880cc (patch)
treee6bfa036700197e879630fdc7e1600e29aef745a
parent fix bug (diff)
downloadopensim-SC-73124f22cc5974596ddf6bcedb9a1d251ec880cc.zip
opensim-SC-73124f22cc5974596ddf6bcedb9a1d251ec880cc.tar.gz
opensim-SC-73124f22cc5974596ddf6bcedb9a1d251ec880cc.tar.bz2
opensim-SC-73124f22cc5974596ddf6bcedb9a1d251ec880cc.tar.xz
change teleport version number to v0.3, without actually adding the checks
for 0.7 sims, etc that we don't have. Also still not using the homeURL added in core.
-rw-r--r--OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs77
-rw-r--r--OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/LocalSimulationConnector.cs4
2 files changed, 29 insertions, 52 deletions
diff --git a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs
index c81e5aa..ef9f8df 100644
--- a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs
+++ b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs
@@ -209,7 +209,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
209 protected virtual void InitialiseCommon(IConfigSource source) 209 protected virtual void InitialiseCommon(IConfigSource source)
210 { 210 {
211 string transferVersionName = "SIMULATION"; 211 string transferVersionName = "SIMULATION";
212 float maxTransferVersion = 0.2f; 212 float maxTransferVersion = 0.3f;
213 213
214 IConfig transferConfig = source.Configs["EntityTransfer"]; 214 IConfig transferConfig = source.Configs["EntityTransfer"];
215 if (transferConfig != null) 215 if (transferConfig != null)
@@ -703,6 +703,8 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
703 return; 703 return;
704 } 704 }
705 705
706 string homeURI = Scene.GetAgentHomeURI(sp.ControllingClient.AgentId);
707
706 m_log.DebugFormat( 708 m_log.DebugFormat(
707 "[ENTITY TRANSFER MODULE]: Teleporting {0} {1} from {2} to {3} ({4}) {5}/{6}", 709 "[ENTITY TRANSFER MODULE]: Teleporting {0} {1} from {2} to {3} ({4}) {5}/{6}",
708 sp.Name, sp.UUID, sp.Scene.RegionInfo.RegionName, 710 sp.Name, sp.UUID, sp.Scene.RegionInfo.RegionName,
@@ -749,6 +751,8 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
749 string myversion = string.Format("{0}/{1}", OutgoingTransferVersionName, MaxOutgoingTransferVersion); 751 string myversion = string.Format("{0}/{1}", OutgoingTransferVersionName, MaxOutgoingTransferVersion);
750 if (!Scene.SimulationService.QueryAccess( 752 if (!Scene.SimulationService.QueryAccess(
751 finalDestination, sp.ControllingClient.AgentId, position, out version, out reason)) 753 finalDestination, sp.ControllingClient.AgentId, position, out version, out reason))
754// if (!Scene.SimulationService.QueryAccess(
755// finalDestination, sp.ControllingClient.AgentId, homeURI, true, position, myversion, out version, out reason))
752 { 756 {
753 sp.ControllingClient.SendTeleportFailed(reason); 757 sp.ControllingClient.SendTeleportFailed(reason);
754 758
@@ -843,7 +847,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
843 if (versionComponents.Length >= 2) 847 if (versionComponents.Length >= 2)
844 float.TryParse(versionComponents[1], out versionNumber); 848 float.TryParse(versionComponents[1], out versionNumber);
845 849
846 if (versionNumber == 0.2f && MaxOutgoingTransferVersion >= versionNumber) 850 if (versionNumber >= 0.2f && MaxOutgoingTransferVersion >= versionNumber)
847 TransferAgent_V2(sp, agentCircuit, reg, finalDestination, endPoint, teleportFlags, oldRegionX, newRegionX, oldRegionY, newRegionY, version, out reason); 851 TransferAgent_V2(sp, agentCircuit, reg, finalDestination, endPoint, teleportFlags, oldRegionX, newRegionX, oldRegionY, newRegionY, version, out reason);
848 else 852 else
849 TransferAgent_V1(sp, agentCircuit, reg, finalDestination, endPoint, teleportFlags, oldRegionX, newRegionX, oldRegionY, newRegionY, version, out reason); 853 TransferAgent_V1(sp, agentCircuit, reg, finalDestination, endPoint, teleportFlags, oldRegionX, newRegionX, oldRegionY, newRegionY, version, out reason);
@@ -2270,7 +2274,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
2270 #endregion // NotFoundLocationCache class 2274 #endregion // NotFoundLocationCache class
2271 private NotFoundLocationCache m_notFoundLocationCache = new NotFoundLocationCache(); 2275 private NotFoundLocationCache m_notFoundLocationCache = new NotFoundLocationCache();
2272 2276
2273 // Given a world position (fractional meter coordinate), get the GridRegion info for 2277 // Given a world position, get the GridRegion info for
2274 // the region containing that point. 2278 // the region containing that point.
2275 // Someday this should be a method on GridService. 2279 // Someday this should be a method on GridService.
2276 // 'pSizeHint' is the size of the source region but since the destination point can be anywhere 2280 // 'pSizeHint' is the size of the source region but since the destination point can be anywhere
@@ -2471,14 +2475,26 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
2471 { 2475 {
2472 // The area to check is as big as the current region. 2476 // The area to check is as big as the current region.
2473 // We presume all adjacent regions are the same size as this region. 2477 // We presume all adjacent regions are the same size as this region.
2474 uint dd = Math.Max((uint)avatar.Scene.DefaultDrawDistance, 2478 // this needs to be reduced a lot
2475 Math.Max(Scene.RegionInfo.RegionSizeX, Scene.RegionInfo.RegionSizeY)); 2479 // and updated in avatar CheckForSignificantMovement (larger than current 64m?)
2476 2480 // and draw distance changes
2477 uint startX = Util.RegionToWorldLoc(pRegionLocX) - dd + Constants.RegionSize/2; 2481 // sending client the necessary information
2478 uint startY = Util.RegionToWorldLoc(pRegionLocY) - dd + Constants.RegionSize/2; 2482 uint dd = Math.Max((uint)avatar.DrawDistance, Constants.RegionSize);
2479 2483
2480 uint endX = Util.RegionToWorldLoc(pRegionLocX) + dd + Constants.RegionSize/2; 2484 dd--;
2481 uint endY = Util.RegionToWorldLoc(pRegionLocY) + dd + Constants.RegionSize/2; 2485 uint ddX = Math.Max(dd, Scene.RegionInfo.RegionSizeX);
2486 uint ddY = Math.Max(dd, Scene.RegionInfo.RegionSizeY);
2487
2488 // region center. Should be avatar position
2489 uint startX = Util.RegionToWorldLoc(pRegionLocX) + m_regionInfo.RegionSizeX / 2;
2490 uint endX = startX;
2491 uint startY = Util.RegionToWorldLoc(pRegionLocY) + m_regionInfo.RegionSizeY / 2;
2492 uint endY = startY;
2493
2494 startX -= dd;
2495 startY -= dd;
2496 endX += dd;
2497 endY += dd;
2482 2498
2483 neighbours 2499 neighbours
2484 = avatar.Scene.GridService.GetRegionRange( 2500 = avatar.Scene.GridService.GetRegionRange(
@@ -2502,45 +2518,6 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
2502 2518
2503 return neighbours; 2519 return neighbours;
2504 } 2520 }
2505/* not in use
2506 private List<ulong> NewNeighbours(List<ulong> currentNeighbours, List<ulong> previousNeighbours)
2507 {
2508 return currentNeighbours.FindAll(delegate(ulong handle) { return !previousNeighbours.Contains(handle); });
2509 }
2510
2511 // private List<ulong> CommonNeighbours(List<ulong> currentNeighbours, List<ulong> previousNeighbours)
2512 // {
2513 // return currentNeighbours.FindAll(delegate(ulong handle) { return previousNeighbours.Contains(handle); });
2514 // }
2515
2516// private List<ulong> OldNeighbours(List<ulong> currentNeighbours, List<ulong> previousNeighbours)
2517// {
2518// return previousNeighbours.FindAll(delegate(ulong handle) { return !currentNeighbours.Contains(handle); });
2519// }
2520
2521// private List<ulong> NeighbourHandles(List<GridRegion> neighbours)
2522// {
2523// List<ulong> handles = new List<ulong>();
2524// foreach (GridRegion reg in neighbours)
2525// {
2526// handles.Add(reg.RegionHandle);
2527// }
2528// return handles;
2529// }
2530
2531// private void Dump(string msg, List<ulong> handles)
2532// {
2533// m_log.InfoFormat("-------------- HANDLE DUMP ({0}) ---------", msg);
2534// foreach (ulong handle in handles)
2535// {
2536// uint x, y;
2537// Utils.LongToUInts(handle, out x, out y);
2538// x = x / Constants.RegionSize;
2539// y = y / Constants.RegionSize;
2540// m_log.InfoFormat("({0}, {1})", x, y);
2541// }
2542// }
2543*/
2544 #endregion 2521 #endregion
2545 2522
2546 #region Agent Arrived 2523 #region Agent Arrived
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/LocalSimulationConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/LocalSimulationConnector.cs
index 7a6a174..361bf34 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/LocalSimulationConnector.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/LocalSimulationConnector.cs
@@ -84,13 +84,13 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Simulation
84 84
85 public void InitialiseService(IConfigSource configSource) 85 public void InitialiseService(IConfigSource configSource)
86 { 86 {
87 ServiceVersion = "SIMULATION/0.2"; 87 ServiceVersion = "SIMULATION/0.3";
88 IConfig config = configSource.Configs["SimulationService"]; 88 IConfig config = configSource.Configs["SimulationService"];
89 if (config != null) 89 if (config != null)
90 { 90 {
91 ServiceVersion = config.GetString("ConnectorProtocolVersion", ServiceVersion); 91 ServiceVersion = config.GetString("ConnectorProtocolVersion", ServiceVersion);
92 92
93 if (ServiceVersion != "SIMULATION/0.1" && ServiceVersion != "SIMULATION/0.2") 93 if (ServiceVersion != "SIMULATION/0.1" && ServiceVersion != "SIMULATION/0.2" && ServiceVersion != "SIMULATION/0.3")
94 throw new Exception(string.Format("Invalid ConnectorProtocolVersion {0}", ServiceVersion)); 94 throw new Exception(string.Format("Invalid ConnectorProtocolVersion {0}", ServiceVersion));
95 95
96 m_log.InfoFormat( 96 m_log.InfoFormat(