Fix teleport routing for incoming HG+Owner

Incoming HG owner/estate manager, etc. is routed according to the rules defined for teleports within the local grid. Left some commented debugging code inside so we can test other cases. Will remove when tings are settled in.
iar_mods
BlueWall 2012-01-09 14:31:22 -05:00
parent 43145c7f67
commit 3640afdd95
1 changed files with 19 additions and 18 deletions

View File

@ -3836,23 +3836,23 @@ namespace OpenSim.Region.Framework.Scenes
private void CheckAndAdjustLandingPoint(ref Vector3 pos) private void CheckAndAdjustLandingPoint(ref Vector3 pos)
{ {
// Some debugging help to show all the TeleportFlags we have... // // Some temporary debugging help to show all the TeleportFlags we have...
bool HG = false; // bool HG = false;
if((m_teleportFlags & (TeleportFlags)Constants.TeleportFlags.ViaHGLogin) == (TeleportFlags)Constants.TeleportFlags.ViaHGLogin) // if((m_teleportFlags & (TeleportFlags)Constants.TeleportFlags.ViaHGLogin) == (TeleportFlags)Constants.TeleportFlags.ViaHGLogin)
HG = true; // HG = true;
//
m_log.InfoFormat("[SCENE PRESENCE]: TELEPORT ******************"); // m_log.InfoFormat("[SCENE PRESENCE]: TELEPORT ******************");
//
for (uint i = 0; i <= 30 ; i++) // for (uint i = 0; i <= 30 ; i++)
{ // {
if((m_teleportFlags & (TeleportFlags)i) == (TeleportFlags)i) // if((m_teleportFlags & (TeleportFlags)i) == (TeleportFlags)i)
if (HG == false) // if (HG == false)
m_log.InfoFormat("[SCENE PRESENCE]: Teleport Flags include {0}", ((TeleportFlags) i).ToString()); // m_log.InfoFormat("[SCENE PRESENCE]: Teleport Flags include {0}", ((TeleportFlags) i).ToString());
else // else
m_log.InfoFormat("[SCENE PRESENCE]: HG Teleport Flags include {0}", ((TeleportFlags)i).ToString()); // m_log.InfoFormat("[SCENE PRESENCE]: HG Teleport Flags include {0}", ((TeleportFlags)i).ToString());
} // }
//
m_log.InfoFormat("[SCENE PRESENCE]: TELEPORT ******************"); // m_log.InfoFormat("[SCENE PRESENCE]: TELEPORT ******************");
ILandObject land = m_scene.LandChannel.GetLandObject(pos.X, pos.Y); ILandObject land = m_scene.LandChannel.GetLandObject(pos.X, pos.Y);
if (land != null) if (land != null)
@ -3873,7 +3873,8 @@ namespace OpenSim.Region.Framework.Scenes
GodLevel < 200 && GodLevel < 200 &&
((land.LandData.OwnerID != m_uuid && ((land.LandData.OwnerID != m_uuid &&
(!m_scene.Permissions.IsGod(m_uuid)) && (!m_scene.Permissions.IsGod(m_uuid)) &&
(!m_scene.RegionInfo.EstateSettings.IsEstateManager(m_uuid))) || (m_teleportFlags & TeleportFlags.ViaLocation) != 0)) (!m_scene.RegionInfo.EstateSettings.IsEstateManager(m_uuid))) || (m_teleportFlags & TeleportFlags.ViaLocation) != 0) ||
((m_teleportFlags & (TeleportFlags)Constants.TeleportFlags.ViaHGLogin) == (TeleportFlags)Constants.TeleportFlags.ViaHGLogin))
{ {
pos = land.LandData.UserLocation; pos = land.LandData.UserLocation;
} }