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
parent
43145c7f67
commit
3640afdd95
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue