When linking a Hypergrid region, set the region's flags on the in-memory GridRegion immediately.

(When using llTeleportAgent() this *specific* object is used for the teleport, so it should have the correct flags.)
0.8.0.3
Oren Hurvitz 2014-04-24 18:57:55 +03:00
parent bc06db3df4
commit 463d0b2f8f
1 changed files with 4 additions and 8 deletions

View File

@ -68,10 +68,6 @@ namespace OpenSim.Services.GridService
protected string m_ThisGatekeeper = string.Empty; protected string m_ThisGatekeeper = string.Empty;
protected Uri m_ThisGatekeeperURI = null; protected Uri m_ThisGatekeeperURI = null;
// Hyperlink regions are hyperlinks on the map
public readonly Dictionary<UUID, GridRegion> m_HyperlinkRegions = new Dictionary<UUID, GridRegion>();
protected Dictionary<UUID, ulong> m_HyperlinkHandles = new Dictionary<UUID, ulong>();
protected GridRegion m_DefaultRegion; protected GridRegion m_DefaultRegion;
protected GridRegion DefaultRegion protected GridRegion DefaultRegion
{ {
@ -409,7 +405,7 @@ namespace OpenSim.Services.GridService
// Store the origin's coordinates somewhere // Store the origin's coordinates somewhere
regInfo.RegionSecret = handle.ToString(); regInfo.RegionSecret = handle.ToString();
AddHyperlinkRegion(regInfo, handle); AddHyperlinkRegion(ref regInfo, handle);
m_log.InfoFormat("[HYPERGRID LINKER]: Successfully linked to region {0} with image {1}", regInfo.RegionName, regInfo.TerrainImage); m_log.InfoFormat("[HYPERGRID LINKER]: Successfully linked to region {0} with image {1}", regInfo.RegionName, regInfo.TerrainImage);
return true; return true;
} }
@ -489,11 +485,11 @@ namespace OpenSim.Services.GridService
// return true; // return true;
// } // }
private void AddHyperlinkRegion(GridRegion regionInfo, ulong regionHandle) private void AddHyperlinkRegion(ref GridRegion regionInfo, ulong regionHandle)
{ {
RegionData rdata = m_GridService.RegionInfo2RegionData(regionInfo); RegionData rdata = m_GridService.RegionInfo2RegionData(regionInfo);
int flags = (int)OpenSim.Framework.RegionFlags.Hyperlink + (int)OpenSim.Framework.RegionFlags.NoDirectLogin + (int)OpenSim.Framework.RegionFlags.RegionOnline; regionInfo.Flags = OpenSim.Framework.RegionFlags.Hyperlink | OpenSim.Framework.RegionFlags.NoDirectLogin | OpenSim.Framework.RegionFlags.RegionOnline;
rdata.Data["flags"] = flags.ToString(); rdata.Data["flags"] = ((int)regionInfo.Flags).ToString();
m_Database.Store(rdata); m_Database.Store(rdata);
} }