aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
authorSean Dague2008-05-06 22:17:00 +0000
committerSean Dague2008-05-06 22:17:00 +0000
commit0b09966c7ef63a6f01c799c13963c91b50140453 (patch)
tree06ced62c58d506e0d85f8d4b84d2878b2d714011 /OpenSim/Region
parentRestored svn:keywords to prebuild.xml. (diff)
downloadopensim-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/Region')
-rw-r--r--OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs4
-rw-r--r--OpenSim/Region/Environment/Scenes/SceneObjectPart.cs7
-rw-r--r--OpenSim/Region/Examples/SimpleModule/MyNpcCharacter.cs3
3 files changed, 7 insertions, 7 deletions
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