Bug fix for Hypergrid. This bug was introduced by the recent TP fixes, and affected the jump back home.

0.6.1-post-fixes
diva 2008-12-15 00:06:52 +00:00
parent 3aa7ad24da
commit d6d4c267e0
1 changed files with 14 additions and 11 deletions

View File

@ -174,7 +174,7 @@ namespace OpenSim.Region.Environment.Scenes.Hypergrid
agent.InventoryFolder = UUID.Zero;
agent.startpos = position;
agent.child = true;
if (Util.IsOutsideView(oldRegionX, newRegionX, oldRegionY, newRegionY))
if (Util.IsOutsideView(oldRegionX, newRegionX, oldRegionY, newRegionY) || isHyperLink)
{
// brand new agent
agent.CapsPath = Util.GetRandomCapsPath();
@ -210,16 +210,19 @@ namespace OpenSim.Region.Environment.Scenes.Hypergrid
// TODO: make Event Queue disablable!
}
if (!m_commsProvider.InterRegion.ExpectAvatarCrossing(reg.RegionHandle, avatar.ControllingClient.AgentId,
position, false))
{
avatar.ControllingClient.SendTeleportFailed("Problem with destination.");
// We should close that agent we just created over at destination...
List<ulong> lst = new List<ulong>();
lst.Add(reg.RegionHandle);
SendCloseChildAgentAsync(avatar.UUID, lst);
return;
}
m_commsProvider.InterRegion.ExpectAvatarCrossing(reg.RegionHandle, avatar.ControllingClient.AgentId,
position, false);
//if (!m_commsProvider.InterRegion.ExpectAvatarCrossing(reg.RegionHandle, avatar.ControllingClient.AgentId,
// position, false))
//{
// avatar.ControllingClient.SendTeleportFailed("Problem with destination.");
// // We should close that agent we just created over at destination...
// List<ulong> lst = new List<ulong>();
// lst.Add(realHandle);
// SendCloseChildAgentAsync(avatar.UUID, lst);
// return;
//}
Thread.Sleep(2000);