aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region')
-rw-r--r--OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs10
1 files changed, 10 insertions, 0 deletions
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
index 6c891ab..e5fc384 100644
--- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
@@ -2057,6 +2057,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP
2057 public void SendAvatarTerseUpdate(ulong regionHandle, ushort timeDilation, uint localID, LLVector3 position, 2057 public void SendAvatarTerseUpdate(ulong regionHandle, ushort timeDilation, uint localID, LLVector3 position,
2058 LLVector3 velocity, LLQuaternion rotation) 2058 LLVector3 velocity, LLQuaternion rotation)
2059 { 2059 {
2060 if (rotation.X == rotation.Y && rotation.Y == rotation.Z && rotation.Z == rotation.W && rotation.W == rotation.X)
2061 rotation = LLQuaternion.Identity;
2062
2060 ImprovedTerseObjectUpdatePacket.ObjectDataBlock terseBlock = 2063 ImprovedTerseObjectUpdatePacket.ObjectDataBlock terseBlock =
2061 CreateAvatarImprovedBlock(localID, position, velocity, rotation); 2064 CreateAvatarImprovedBlock(localID, position, velocity, rotation);
2062 ImprovedTerseObjectUpdatePacket terse = (ImprovedTerseObjectUpdatePacket)PacketPool.Instance.GetPacket(PacketType.ImprovedTerseObjectUpdate); 2065 ImprovedTerseObjectUpdatePacket terse = (ImprovedTerseObjectUpdatePacket)PacketPool.Instance.GetPacket(PacketType.ImprovedTerseObjectUpdate);
@@ -2145,6 +2148,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP
2145 LLUUID objectID, LLUUID ownerID, string text, byte[] color, uint parentID, byte[] particleSystem, 2148 LLUUID objectID, LLUUID ownerID, string text, byte[] color, uint parentID, byte[] particleSystem,
2146 byte clickAction, byte[] textureanim, bool attachment, uint AttachPoint, LLUUID AssetId) 2149 byte clickAction, byte[] textureanim, bool attachment, uint AttachPoint, LLUUID AssetId)
2147 { 2150 {
2151 if (rotation.X == rotation.Y && rotation.Y == rotation.Z && rotation.Z == rotation.W && rotation.W == rotation.X)
2152 rotation = LLQuaternion.Identity;
2153
2148 ObjectUpdatePacket outPacket = (ObjectUpdatePacket)PacketPool.Instance.GetPacket(PacketType.ObjectUpdate); 2154 ObjectUpdatePacket outPacket = (ObjectUpdatePacket)PacketPool.Instance.GetPacket(PacketType.ObjectUpdate);
2149 // TODO: don't create new blocks if recycling an old packet 2155 // TODO: don't create new blocks if recycling an old packet
2150 outPacket.RegionData.RegionHandle = regionHandle; 2156 outPacket.RegionData.RegionHandle = regionHandle;
@@ -2220,6 +2226,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP
2220 public void SendPrimTerseUpdate(ulong regionHandle, ushort timeDilation, uint localID, LLVector3 position, 2226 public void SendPrimTerseUpdate(ulong regionHandle, ushort timeDilation, uint localID, LLVector3 position,
2221 LLQuaternion rotation, LLVector3 velocity, LLVector3 rotationalvelocity, byte state, LLUUID AssetId) 2227 LLQuaternion rotation, LLVector3 velocity, LLVector3 rotationalvelocity, byte state, LLUUID AssetId)
2222 { 2228 {
2229 if (rotation.X == rotation.Y && rotation.Y == rotation.Z && rotation.Z == rotation.W && rotation.W == rotation.X)
2230 rotation = LLQuaternion.Identity;
2223 ImprovedTerseObjectUpdatePacket terse = (ImprovedTerseObjectUpdatePacket)PacketPool.Instance.GetPacket(PacketType.ImprovedTerseObjectUpdate); 2231 ImprovedTerseObjectUpdatePacket terse = (ImprovedTerseObjectUpdatePacket)PacketPool.Instance.GetPacket(PacketType.ImprovedTerseObjectUpdate);
2224 // TODO: don't create new blocks if recycling an old packet 2232 // TODO: don't create new blocks if recycling an old packet
2225 terse.RegionData.RegionHandle = regionHandle; 2233 terse.RegionData.RegionHandle = regionHandle;
@@ -2234,6 +2242,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP
2234 public void SendPrimTerseUpdate(ulong regionHandle, ushort timeDilation, uint localID, LLVector3 position, 2242 public void SendPrimTerseUpdate(ulong regionHandle, ushort timeDilation, uint localID, LLVector3 position,
2235 LLQuaternion rotation, LLVector3 velocity, LLVector3 rotationalvelocity) 2243 LLQuaternion rotation, LLVector3 velocity, LLVector3 rotationalvelocity)
2236 { 2244 {
2245 if (rotation.X == rotation.Y && rotation.Y == rotation.Z && rotation.Z == rotation.W && rotation.W == rotation.X)
2246 rotation = LLQuaternion.Identity;
2237 ImprovedTerseObjectUpdatePacket terse = (ImprovedTerseObjectUpdatePacket)PacketPool.Instance.GetPacket(PacketType.ImprovedTerseObjectUpdate); 2247 ImprovedTerseObjectUpdatePacket terse = (ImprovedTerseObjectUpdatePacket)PacketPool.Instance.GetPacket(PacketType.ImprovedTerseObjectUpdate);
2238 // TODO: don't create new blocks if recycling an old packet 2248 // TODO: don't create new blocks if recycling an old packet
2239 terse.RegionData.RegionHandle = regionHandle; 2249 terse.RegionData.RegionHandle = regionHandle;