aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Services/GridService
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Services/GridService')
-rw-r--r--OpenSim/Services/GridService/GridService.cs3
-rw-r--r--OpenSim/Services/GridService/HypergridLinker.cs55
2 files changed, 31 insertions, 27 deletions
diff --git a/OpenSim/Services/GridService/GridService.cs b/OpenSim/Services/GridService/GridService.cs
index 76415ce..eb44dcb 100644
--- a/OpenSim/Services/GridService/GridService.cs
+++ b/OpenSim/Services/GridService/GridService.cs
@@ -655,7 +655,7 @@ namespace OpenSim.Services.GridService
655 return; 655 return;
656 } 656 }
657 657
658 RegionData region = m_Database.Get(x * (int)Constants.RegionSize, y * (int)Constants.RegionSize, UUID.Zero); 658 RegionData region = m_Database.Get((int)Util.RegionToWorldLoc((uint)x), (int)Util.RegionToWorldLoc((uint)y), UUID.Zero);
659 if (region == null) 659 if (region == null)
660 { 660 {
661 MainConsole.Instance.OutputFormat("No region found at {0},{1}", x, y); 661 MainConsole.Instance.OutputFormat("No region found at {0},{1}", x, y);
@@ -673,6 +673,7 @@ namespace OpenSim.Services.GridService
673 dispList.AddRow("Region Name", r.RegionName); 673 dispList.AddRow("Region Name", r.RegionName);
674 dispList.AddRow("Region ID", r.RegionID); 674 dispList.AddRow("Region ID", r.RegionID);
675 dispList.AddRow("Location", string.Format("{0},{1}", r.coordX, r.coordY)); 675 dispList.AddRow("Location", string.Format("{0},{1}", r.coordX, r.coordY));
676 dispList.AddRow("Size", string.Format("{0}x{1}", r.sizeX, r.sizeY));
676 dispList.AddRow("URI", r.Data["serverURI"]); 677 dispList.AddRow("URI", r.Data["serverURI"]);
677 dispList.AddRow("Owner ID", r.Data["owner_uuid"]); 678 dispList.AddRow("Owner ID", r.Data["owner_uuid"]);
678 dispList.AddRow("Flags", flags); 679 dispList.AddRow("Flags", flags);
diff --git a/OpenSim/Services/GridService/HypergridLinker.cs b/OpenSim/Services/GridService/HypergridLinker.cs
index 4024295..0448b54 100644
--- a/OpenSim/Services/GridService/HypergridLinker.cs
+++ b/OpenSim/Services/GridService/HypergridLinker.cs
@@ -183,8 +183,8 @@ namespace OpenSim.Services.GridService
183 public GridRegion LinkRegion(UUID scopeID, string regionDescriptor) 183 public GridRegion LinkRegion(UUID scopeID, string regionDescriptor)
184 { 184 {
185 string reason = string.Empty; 185 string reason = string.Empty;
186 int xloc = random.Next(0, Int16.MaxValue) * (int)Constants.RegionSize; 186 uint xloc = Util.RegionToWorldLoc((uint)random.Next(0, Int16.MaxValue));
187 return TryLinkRegionToCoords(scopeID, regionDescriptor, xloc, 0, out reason); 187 return TryLinkRegionToCoords(scopeID, regionDescriptor, (int)xloc, 0, out reason);
188 } 188 }
189 189
190 private static Random random = new Random(); 190 private static Random random = new Random();
@@ -260,7 +260,7 @@ namespace OpenSim.Services.GridService
260 { 260 {
261 m_log.DebugFormat("[HYPERGRID LINKER]: Link to {0} {1}, in {2}-{3}", 261 m_log.DebugFormat("[HYPERGRID LINKER]: Link to {0} {1}, in {2}-{3}",
262 ((serverURI == null) ? (externalHostName + ":" + externalPort) : serverURI), 262 ((serverURI == null) ? (externalHostName + ":" + externalPort) : serverURI),
263 remoteRegionName, xloc / Constants.RegionSize, yloc / Constants.RegionSize); 263 remoteRegionName, Util.WorldToRegionLoc((uint)xloc), Util.WorldToRegionLoc((uint)yloc));
264 264
265 reason = string.Empty; 265 reason = string.Empty;
266 Uri uri = null; 266 Uri uri = null;
@@ -311,7 +311,7 @@ namespace OpenSim.Services.GridService
311 if (region != null) 311 if (region != null)
312 { 312 {
313 m_log.WarnFormat("[HYPERGRID LINKER]: Coordinates {0}-{1} are already occupied by region {2} with uuid {3}", 313 m_log.WarnFormat("[HYPERGRID LINKER]: Coordinates {0}-{1} are already occupied by region {2} with uuid {3}",
314 regInfo.RegionLocX / Constants.RegionSize, regInfo.RegionLocY / Constants.RegionSize, 314 Util.WorldToRegionLoc((uint)regInfo.RegionLocX), Util.WorldToRegionLoc((uint)regInfo.RegionLocY),
315 region.RegionName, region.RegionID); 315 region.RegionName, region.RegionID);
316 reason = "Coordinates are already in use"; 316 reason = "Coordinates are already in use";
317 return false; 317 return false;
@@ -347,7 +347,7 @@ namespace OpenSim.Services.GridService
347 if (region != null) 347 if (region != null)
348 { 348 {
349 m_log.DebugFormat("[HYPERGRID LINKER]: Region already exists in coordinates {0} {1}", 349 m_log.DebugFormat("[HYPERGRID LINKER]: Region already exists in coordinates {0} {1}",
350 region.RegionLocX / Constants.RegionSize, region.RegionLocY / Constants.RegionSize); 350 Util.WorldToRegionLoc((uint)regInfo.RegionLocX), Util.WorldToRegionLoc((uint)regInfo.RegionLocY));
351 regInfo = region; 351 regInfo = region;
352 return true; 352 return true;
353 } 353 }
@@ -424,10 +424,10 @@ namespace OpenSim.Services.GridService
424// { 424// {
425// uint ux = 0, uy = 0; 425// uint ux = 0, uy = 0;
426// Utils.LongToUInts(realHandle, out ux, out uy); 426// Utils.LongToUInts(realHandle, out ux, out uy);
427// x = ux / Constants.RegionSize; 427// x = Util.WorldToRegionLoc(ux);
428// y = uy / Constants.RegionSize; 428// y = Util.WorldToRegionLoc(uy);
429// 429//
430// const uint limit = (4096 - 1) * Constants.RegionSize; 430// const uint limit = Util.RegionToWorldLoc(4096 - 1);
431// uint xmin = ux - limit; 431// uint xmin = ux - limit;
432// uint xmax = ux + limit; 432// uint xmax = ux + limit;
433// uint ymin = uy - limit; 433// uint ymin = uy - limit;
@@ -503,8 +503,9 @@ namespace OpenSim.Services.GridService
503 foreach (RegionData r in regions) 503 foreach (RegionData r in regions)
504 { 504 {
505 MainConsole.Instance.Output(String.Format("{0}\n{2,-32} {1}\n", 505 MainConsole.Instance.Output(String.Format("{0}\n{2,-32} {1}\n",
506 r.RegionName, r.RegionID, String.Format("{0},{1} ({2},{3})", r.posX, r.posY, 506 r.RegionName, r.RegionID,
507 r.posX / Constants.RegionSize, r.posY / Constants.RegionSize))); 507 String.Format("{0},{1} ({2},{3})", r.posX, r.posY,
508 Util.WorldToRegionLoc((uint)r.posX), Util.WorldToRegionLoc((uint)r.posY))) );
508 } 509 }
509 return; 510 return;
510 } 511 }
@@ -529,8 +530,8 @@ namespace OpenSim.Services.GridService
529 int xloc, yloc; 530 int xloc, yloc;
530 string serverURI; 531 string serverURI;
531 string remoteName = null; 532 string remoteName = null;
532 xloc = Convert.ToInt32(cmdparams[0]) * (int)Constants.RegionSize; 533 xloc = (int)Util.RegionToWorldLoc((uint)Convert.ToInt32(cmdparams[0]));
533 yloc = Convert.ToInt32(cmdparams[1]) * (int)Constants.RegionSize; 534 yloc = (int)Util.RegionToWorldLoc((uint)Convert.ToInt32(cmdparams[1]));
534 serverURI = cmdparams[2]; 535 serverURI = cmdparams[2];
535 if (cmdparams.Length > 3) 536 if (cmdparams.Length > 3)
536 remoteName = string.Join(" ", cmdparams, 3, cmdparams.Length - 3); 537 remoteName = string.Join(" ", cmdparams, 3, cmdparams.Length - 3);
@@ -601,13 +602,13 @@ namespace OpenSim.Services.GridService
601 { 602 {
602 // old format 603 // old format
603 GridRegion regInfo; 604 GridRegion regInfo;
604 int xloc, yloc; 605 uint xloc, yloc;
605 uint externalPort; 606 uint externalPort;
606 string externalHostName; 607 string externalHostName;
607 try 608 try
608 { 609 {
609 xloc = Convert.ToInt32(cmdparams[0]); 610 xloc = (uint)Convert.ToInt32(cmdparams[0]);
610 yloc = Convert.ToInt32(cmdparams[1]); 611 yloc = (uint)Convert.ToInt32(cmdparams[1]);
611 externalPort = Convert.ToUInt32(cmdparams[3]); 612 externalPort = Convert.ToUInt32(cmdparams[3]);
612 externalHostName = cmdparams[2]; 613 externalHostName = cmdparams[2];
613 //internalPort = Convert.ToUInt32(cmdparams[4]); 614 //internalPort = Convert.ToUInt32(cmdparams[4]);
@@ -621,10 +622,11 @@ namespace OpenSim.Services.GridService
621 } 622 }
622 623
623 // Convert cell coordinates given by the user to meters 624 // Convert cell coordinates given by the user to meters
624 xloc = xloc * (int)Constants.RegionSize; 625 xloc = Util.RegionToWorldLoc(xloc);
625 yloc = yloc * (int)Constants.RegionSize; 626 yloc = Util.RegionToWorldLoc(yloc);
626 string reason = string.Empty; 627 string reason = string.Empty;
627 if (TryCreateLink(UUID.Zero, xloc, yloc, string.Empty, externalPort, externalHostName, UUID.Zero, out regInfo, out reason)) 628 if (TryCreateLink(UUID.Zero, (int)xloc, (int)yloc,
629 string.Empty, externalPort, externalHostName, UUID.Zero, out regInfo, out reason))
628 { 630 {
629 // What is this? The GridRegion instance will be discarded anyway, 631 // What is this? The GridRegion instance will be discarded anyway,
630 // which effectively ignores any local name given with the command. 632 // which effectively ignores any local name given with the command.
@@ -704,13 +706,13 @@ namespace OpenSim.Services.GridService
704 private void ReadLinkFromConfig(IConfig config) 706 private void ReadLinkFromConfig(IConfig config)
705 { 707 {
706 GridRegion regInfo; 708 GridRegion regInfo;
707 int xloc, yloc; 709 uint xloc, yloc;
708 uint externalPort; 710 uint externalPort;
709 string externalHostName; 711 string externalHostName;
710 uint realXLoc, realYLoc; 712 uint realXLoc, realYLoc;
711 713
712 xloc = Convert.ToInt32(config.GetString("xloc", "0")); 714 xloc = (uint)Convert.ToInt32(config.GetString("xloc", "0"));
713 yloc = Convert.ToInt32(config.GetString("yloc", "0")); 715 yloc = (uint)Convert.ToInt32(config.GetString("yloc", "0"));
714 externalPort = Convert.ToUInt32(config.GetString("externalPort", "0")); 716 externalPort = Convert.ToUInt32(config.GetString("externalPort", "0"));
715 externalHostName = config.GetString("externalHostName", ""); 717 externalHostName = config.GetString("externalHostName", "");
716 realXLoc = Convert.ToUInt32(config.GetString("real-xloc", "0")); 718 realXLoc = Convert.ToUInt32(config.GetString("real-xloc", "0"));
@@ -718,18 +720,19 @@ namespace OpenSim.Services.GridService
718 720
719 if (m_enableAutoMapping) 721 if (m_enableAutoMapping)
720 { 722 {
721 xloc = (int)((xloc % 100) + m_autoMappingX); 723 xloc = (uint)((xloc % 100) + m_autoMappingX);
722 yloc = (int)((yloc % 100) + m_autoMappingY); 724 yloc = (uint)((yloc % 100) + m_autoMappingY);
723 } 725 }
724 726
725 if (((realXLoc == 0) && (realYLoc == 0)) || 727 if (((realXLoc == 0) && (realYLoc == 0)) ||
726 (((realXLoc - xloc < 3896) || (xloc - realXLoc < 3896)) && 728 (((realXLoc - xloc < 3896) || (xloc - realXLoc < 3896)) &&
727 ((realYLoc - yloc < 3896) || (yloc - realYLoc < 3896)))) 729 ((realYLoc - yloc < 3896) || (yloc - realYLoc < 3896))))
728 { 730 {
729 xloc = xloc * (int)Constants.RegionSize; 731 xloc = Util.RegionToWorldLoc(xloc);
730 yloc = yloc * (int)Constants.RegionSize; 732 yloc = Util.RegionToWorldLoc(yloc);
731 string reason = string.Empty; 733 string reason = string.Empty;
732 if (TryCreateLink(UUID.Zero, xloc, yloc, string.Empty, externalPort, externalHostName, UUID.Zero, out regInfo, out reason)) 734 if (TryCreateLink(UUID.Zero, (int)xloc, (int)yloc,
735 string.Empty, externalPort, externalHostName, UUID.Zero, out regInfo, out reason))
733 { 736 {
734 regInfo.RegionName = config.GetString("localName", ""); 737 regInfo.RegionName = config.GetString("localName", "");
735 } 738 }