aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region')
-rw-r--r--OpenSim/Region/ClientStack/Linden/Caps/EventQueue/EventQueueHelper.cs9
-rw-r--r--OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs4
-rw-r--r--OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs6
-rw-r--r--OpenSim/Region/Framework/Scenes/ScenePresence.cs3
4 files changed, 19 insertions, 3 deletions
diff --git a/OpenSim/Region/ClientStack/Linden/Caps/EventQueue/EventQueueHelper.cs b/OpenSim/Region/ClientStack/Linden/Caps/EventQueue/EventQueueHelper.cs
index b9222e3..7dcf137 100644
--- a/OpenSim/Region/ClientStack/Linden/Caps/EventQueue/EventQueueHelper.cs
+++ b/OpenSim/Region/ClientStack/Linden/Caps/EventQueue/EventQueueHelper.cs
@@ -151,6 +151,12 @@ namespace OpenSim.Region.ClientStack.Linden
151 ulong regionHandle, byte simAccess, IPEndPoint regionExternalEndPoint, 151 ulong regionHandle, byte simAccess, IPEndPoint regionExternalEndPoint,
152 uint locationID, uint flags, string capsURL, UUID agentID) 152 uint locationID, uint flags, string capsURL, UUID agentID)
153 { 153 {
154 // not sure why flags get overwritten here
155 if ((flags & (uint)TeleportFlags.IsFlying) != 0)
156 flags = (uint)TeleportFlags.ViaLocation | (uint)TeleportFlags.IsFlying;
157 else
158 flags = (uint)TeleportFlags.ViaLocation;
159
154 OSDMap info = new OSDMap(); 160 OSDMap info = new OSDMap();
155 info.Add("AgentID", OSD.FromUUID(agentID)); 161 info.Add("AgentID", OSD.FromUUID(agentID));
156 info.Add("LocationID", OSD.FromInteger(4)); // TODO what is this? 162 info.Add("LocationID", OSD.FromInteger(4)); // TODO what is this?
@@ -159,7 +165,8 @@ namespace OpenSim.Region.ClientStack.Linden
159 info.Add("SimAccess", OSD.FromInteger(simAccess)); 165 info.Add("SimAccess", OSD.FromInteger(simAccess));
160 info.Add("SimIP", OSD.FromBinary(regionExternalEndPoint.Address.GetAddressBytes())); 166 info.Add("SimIP", OSD.FromBinary(regionExternalEndPoint.Address.GetAddressBytes()));
161 info.Add("SimPort", OSD.FromInteger(regionExternalEndPoint.Port)); 167 info.Add("SimPort", OSD.FromInteger(regionExternalEndPoint.Port));
162 info.Add("TeleportFlags", OSD.FromULong(1L << 4)); // AgentManager.TeleportFlags.ViaLocation 168// info.Add("TeleportFlags", OSD.FromULong(1L << 4)); // AgentManager.TeleportFlags.ViaLocation
169 info.Add("TeleportFlags", OSD.FromUInteger(flags));
163 170
164 OSDArray infoArr = new OSDArray(); 171 OSDArray infoArr = new OSDArray();
165 infoArr.Add(info); 172 infoArr.Add(info);
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
index ddd8f18..e78ebed 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
@@ -808,7 +808,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP
808 handshake.RegionInfo3.ProductName = Util.StringToBytes256(regionInfo.RegionType); 808 handshake.RegionInfo3.ProductName = Util.StringToBytes256(regionInfo.RegionType);
809 handshake.RegionInfo3.ProductSKU = Utils.EmptyBytes; 809 handshake.RegionInfo3.ProductSKU = Utils.EmptyBytes;
810 810
811 OutPacket(handshake, ThrottleOutPacketType.Task); 811// OutPacket(handshake, ThrottleOutPacketType.Task);
812 // use same as MoveAgentIntoRegion (both should be task )
813 OutPacket(handshake, ThrottleOutPacketType.Unknown);
812 } 814 }
813 815
814 public void MoveAgentIntoRegion(RegionInfo regInfo, Vector3 pos, Vector3 look) 816 public void MoveAgentIntoRegion(RegionInfo regInfo, Vector3 pos, Vector3 look)
diff --git a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs
index 1f884c8..9090f64 100644
--- a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs
+++ b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs
@@ -264,6 +264,9 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
264 position.Z = newPosZ; 264 position.Z = newPosZ;
265 } 265 }
266 266
267 if (sp.Flying)
268 teleportFlags |= (uint)TeleportFlags.IsFlying;
269
267 m_entityTransferStateMachine.UpdateInTransit(sp.UUID, AgentTransferState.Transferring); 270 m_entityTransferStateMachine.UpdateInTransit(sp.UUID, AgentTransferState.Transferring);
268 271
269 sp.ControllingClient.SendTeleportStart(teleportFlags); 272 sp.ControllingClient.SendTeleportStart(teleportFlags);
@@ -471,6 +474,9 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
471 if (sp.ParentID != (uint)0) 474 if (sp.ParentID != (uint)0)
472 sp.StandUp(); 475 sp.StandUp();
473 476
477 else if (sp.Flying)
478 teleportFlags |= (uint)TeleportFlags.IsFlying;
479
474 sp.ControllingClient.SendTeleportStart(teleportFlags); 480 sp.ControllingClient.SendTeleportStart(teleportFlags);
475 481
476 // the avatar.Close below will clear the child region list. We need this below for (possibly) 482 // the avatar.Close below will clear the child region list. We need this below for (possibly)
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index 47b2ead..34ac7d4 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -1264,7 +1264,8 @@ namespace OpenSim.Region.Framework.Scenes
1264 1264
1265 Vector3 look = Velocity; 1265 Vector3 look = Velocity;
1266 1266
1267 if ((look.X == 0) && (look.Y == 0) && (look.Z == 0)) 1267 // if ((look.X == 0) && (look.Y == 0) && (look.Z == 0))
1268 if ((Math.Abs(look.X) < 0.1) && (Math.Abs(look.Y) < 0.1) && (Math.Abs(look.Z) < 0.1))
1268 { 1269 {
1269 look = new Vector3(0.99f, 0.042f, 0); 1270 look = new Vector3(0.99f, 0.042f, 0);
1270 } 1271 }