diff options
author | Sean Dague | 2008-05-06 22:17:00 +0000 |
---|---|---|
committer | Sean Dague | 2008-05-06 22:17:00 +0000 |
commit | 0b09966c7ef63a6f01c799c13963c91b50140453 (patch) | |
tree | 06ced62c58d506e0d85f8d4b84d2878b2d714011 /OpenSim | |
parent | Restored svn:keywords to prebuild.xml. (diff) | |
download | opensim-SC-0b09966c7ef63a6f01c799c13963c91b50140453.zip opensim-SC-0b09966c7ef63a6f01c799c13963c91b50140453.tar.gz opensim-SC-0b09966c7ef63a6f01c799c13963c91b50140453.tar.bz2 opensim-SC-0b09966c7ef63a6f01c799c13963c91b50140453.tar.xz |
send actual velocity and angular velocity in terse updates
instead of hardcoding to zero when the primitive is non physical.
llTargetOmega should work now.
Diffstat (limited to 'OpenSim')
4 files changed, 8 insertions, 8 deletions
diff --git a/OpenSim/Framework/IClientAPI.cs b/OpenSim/Framework/IClientAPI.cs index 0f45d9d..9d86036 100644 --- a/OpenSim/Framework/IClientAPI.cs +++ b/OpenSim/Framework/IClientAPI.cs | |||
@@ -778,7 +778,7 @@ namespace OpenSim.Framework | |||
778 | uint parentID, byte[] particleSystem, LLQuaternion rotation, byte clickAction); | 778 | uint parentID, byte[] particleSystem, LLQuaternion rotation, byte clickAction); |
779 | 779 | ||
780 | void SendPrimTerseUpdate(ulong regionHandle, ushort timeDilation, uint localID, LLVector3 position, | 780 | void SendPrimTerseUpdate(ulong regionHandle, ushort timeDilation, uint localID, LLVector3 position, |
781 | LLQuaternion rotation, byte state, LLUUID AssetId); | 781 | LLQuaternion rotation, LLVector3 velocity, LLVector3 rotationalvelocity, byte state, LLUUID AssetId); |
782 | 782 | ||
783 | void SendPrimTerseUpdate(ulong regionHandle, ushort timeDilation, uint localID, LLVector3 position, | 783 | void SendPrimTerseUpdate(ulong regionHandle, ushort timeDilation, uint localID, LLVector3 position, |
784 | LLQuaternion rotation, LLVector3 velocity, LLVector3 rotationalvelocity); | 784 | LLQuaternion rotation, LLVector3 velocity, LLVector3 rotationalvelocity); |
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs index 85992b2..f5d4ad3 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | |||
@@ -2131,10 +2131,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
2131 | /// <param name="position"></param> | 2131 | /// <param name="position"></param> |
2132 | /// <param name="rotation"></param> | 2132 | /// <param name="rotation"></param> |
2133 | public void SendPrimTerseUpdate(ulong regionHandle, ushort timeDilation, uint localID, LLVector3 position, | 2133 | public void SendPrimTerseUpdate(ulong regionHandle, ushort timeDilation, uint localID, LLVector3 position, |
2134 | LLQuaternion rotation, byte state, LLUUID AssetId) | 2134 | LLQuaternion rotation, LLVector3 velocity, LLVector3 rotationalvelocity, byte state, LLUUID AssetId) |
2135 | { | 2135 | { |
2136 | LLVector3 velocity = new LLVector3(0f, 0f, 0f); | ||
2137 | LLVector3 rotationalvelocity = new LLVector3(0f, 0f, 0f); | ||
2138 | ImprovedTerseObjectUpdatePacket terse = (ImprovedTerseObjectUpdatePacket)PacketPool.Instance.GetPacket(PacketType.ImprovedTerseObjectUpdate); | 2136 | ImprovedTerseObjectUpdatePacket terse = (ImprovedTerseObjectUpdatePacket)PacketPool.Instance.GetPacket(PacketType.ImprovedTerseObjectUpdate); |
2139 | // TODO: don't create new blocks if recycling an old packet | 2137 | // TODO: don't create new blocks if recycling an old packet |
2140 | terse.RegionData.RegionHandle = regionHandle; | 2138 | terse.RegionData.RegionHandle = regionHandle; |
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs index 9311904..3252b6c 100644 --- a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs | |||
@@ -2392,9 +2392,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
2392 | LLVector3 lPos; | 2392 | LLVector3 lPos; |
2393 | lPos = OffsetPosition; | 2393 | lPos = OffsetPosition; |
2394 | LLQuaternion mRot = RotationOffset; | 2394 | LLQuaternion mRot = RotationOffset; |
2395 | // TODO: I have no idea why we are making this check. This should be sorted out | ||
2395 | if ((ObjectFlags & (uint) LLObject.ObjectFlags.Physics) == 0) | 2396 | if ((ObjectFlags & (uint) LLObject.ObjectFlags.Physics) == 0) |
2396 | { | 2397 | { |
2397 | remoteClient.SendPrimTerseUpdate(m_regionHandle, (ushort)(m_parentGroup.GetTimeDilation() * (float)ushort.MaxValue), LocalId, lPos, mRot, Shape.State, fromAssetID); | 2398 | remoteClient.SendPrimTerseUpdate(m_regionHandle, (ushort)(m_parentGroup.GetTimeDilation() * (float)ushort.MaxValue), LocalId, lPos, mRot, Velocity, RotationalVelocity, Shape.State, fromAssetID); |
2398 | } | 2399 | } |
2399 | else | 2400 | else |
2400 | { | 2401 | { |
@@ -2409,13 +2410,13 @@ namespace OpenSim.Region.Environment.Scenes | |||
2409 | LLQuaternion mRot = RotationOffset; | 2410 | LLQuaternion mRot = RotationOffset; |
2410 | if (m_IsAttachment) | 2411 | if (m_IsAttachment) |
2411 | { | 2412 | { |
2412 | remoteClient.SendPrimTerseUpdate(m_regionHandle, (ushort)(m_parentGroup.GetTimeDilation() * (float)ushort.MaxValue), LocalId, lPos, mRot, (byte)((m_attachmentPoint % 16) * 16 + (m_attachmentPoint / 16)),fromAssetID); | 2413 | remoteClient.SendPrimTerseUpdate(m_regionHandle, (ushort)(m_parentGroup.GetTimeDilation() * (float)ushort.MaxValue), LocalId, lPos, mRot, Velocity, RotationalVelocity, (byte)((m_attachmentPoint % 16) * 16 + (m_attachmentPoint / 16)),fromAssetID); |
2413 | } | 2414 | } |
2414 | else | 2415 | else |
2415 | { | 2416 | { |
2416 | if ((ObjectFlags & (uint)LLObject.ObjectFlags.Physics) == 0) | 2417 | if ((ObjectFlags & (uint)LLObject.ObjectFlags.Physics) == 0) |
2417 | { | 2418 | { |
2418 | remoteClient.SendPrimTerseUpdate(m_regionHandle, (ushort)(m_parentGroup.GetTimeDilation() * (float)ushort.MaxValue), LocalId, lPos, mRot, Shape.State, fromAssetID); | 2419 | remoteClient.SendPrimTerseUpdate(m_regionHandle, (ushort)(m_parentGroup.GetTimeDilation() * (float)ushort.MaxValue), LocalId, lPos, mRot, Velocity, RotationalVelocity, Shape.State, fromAssetID); |
2419 | } | 2420 | } |
2420 | else | 2421 | else |
2421 | { | 2422 | { |
diff --git a/OpenSim/Region/Examples/SimpleModule/MyNpcCharacter.cs b/OpenSim/Region/Examples/SimpleModule/MyNpcCharacter.cs index 25622d2..f457773 100644 --- a/OpenSim/Region/Examples/SimpleModule/MyNpcCharacter.cs +++ b/OpenSim/Region/Examples/SimpleModule/MyNpcCharacter.cs | |||
@@ -409,7 +409,8 @@ namespace OpenSim.Region.Examples.SimpleModule | |||
409 | { | 409 | { |
410 | } | 410 | } |
411 | public virtual void SendPrimTerseUpdate(ulong regionHandle, ushort timeDilation, uint localID, | 411 | public virtual void SendPrimTerseUpdate(ulong regionHandle, ushort timeDilation, uint localID, |
412 | LLVector3 position, LLQuaternion rotation, byte state, LLUUID AssetId) | 412 | LLVector3 position, LLQuaternion rotation, LLVector3 velocity, |
413 | LLVector3 rotationalvelocity, byte state, LLUUID AssetId) | ||
413 | { | 414 | { |
414 | } | 415 | } |
415 | 416 | ||