diff options
Diffstat (limited to 'OpenSim/Region')
-rw-r--r-- | OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | 10 |
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; |