send actual velocity and angular velocity in terse updates
instead of hardcoding to zero when the primitive is non physical. llTargetOmega should work now.0.6.0-stable
							parent
							
								
									be024e1e93
								
							
						
					
					
						commit
						0b09966c7e
					
				| 
						 | 
				
			
			@ -778,7 +778,7 @@ namespace OpenSim.Framework
 | 
			
		|||
                                   uint parentID, byte[] particleSystem, LLQuaternion rotation, byte clickAction);
 | 
			
		||||
 | 
			
		||||
        void SendPrimTerseUpdate(ulong regionHandle, ushort timeDilation, uint localID, LLVector3 position,
 | 
			
		||||
                                 LLQuaternion rotation, byte state, LLUUID AssetId);
 | 
			
		||||
                                 LLQuaternion rotation, LLVector3 velocity, LLVector3 rotationalvelocity, byte state, LLUUID AssetId);
 | 
			
		||||
 | 
			
		||||
        void SendPrimTerseUpdate(ulong regionHandle, ushort timeDilation, uint localID, LLVector3 position,
 | 
			
		||||
                                 LLQuaternion rotation, LLVector3 velocity, LLVector3 rotationalvelocity);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2131,10 +2131,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP
 | 
			
		|||
        /// <param name="position"></param>
 | 
			
		||||
        /// <param name="rotation"></param>
 | 
			
		||||
        public void SendPrimTerseUpdate(ulong regionHandle, ushort timeDilation, uint localID, LLVector3 position,
 | 
			
		||||
                                        LLQuaternion rotation, byte state, LLUUID AssetId)
 | 
			
		||||
                                        LLQuaternion rotation, LLVector3 velocity, LLVector3 rotationalvelocity, byte state, LLUUID AssetId)
 | 
			
		||||
        {
 | 
			
		||||
            LLVector3 velocity = new LLVector3(0f, 0f, 0f);
 | 
			
		||||
            LLVector3 rotationalvelocity = new LLVector3(0f, 0f, 0f);
 | 
			
		||||
            ImprovedTerseObjectUpdatePacket terse = (ImprovedTerseObjectUpdatePacket)PacketPool.Instance.GetPacket(PacketType.ImprovedTerseObjectUpdate);
 | 
			
		||||
            // TODO: don't create new blocks if recycling an old packet
 | 
			
		||||
            terse.RegionData.RegionHandle = regionHandle;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2392,9 +2392,10 @@ namespace OpenSim.Region.Environment.Scenes
 | 
			
		|||
            LLVector3 lPos;
 | 
			
		||||
            lPos = OffsetPosition;
 | 
			
		||||
            LLQuaternion mRot = RotationOffset;
 | 
			
		||||
            // TODO: I have no idea why we are making this check.  This should be sorted out
 | 
			
		||||
            if ((ObjectFlags & (uint) LLObject.ObjectFlags.Physics) == 0)
 | 
			
		||||
            {
 | 
			
		||||
                remoteClient.SendPrimTerseUpdate(m_regionHandle, (ushort)(m_parentGroup.GetTimeDilation() * (float)ushort.MaxValue), LocalId, lPos, mRot, Shape.State, fromAssetID);
 | 
			
		||||
                remoteClient.SendPrimTerseUpdate(m_regionHandle, (ushort)(m_parentGroup.GetTimeDilation() * (float)ushort.MaxValue), LocalId, lPos, mRot, Velocity, RotationalVelocity, Shape.State, fromAssetID);
 | 
			
		||||
            }
 | 
			
		||||
            else
 | 
			
		||||
            {
 | 
			
		||||
| 
						 | 
				
			
			@ -2409,13 +2410,13 @@ namespace OpenSim.Region.Environment.Scenes
 | 
			
		|||
            LLQuaternion mRot = RotationOffset;
 | 
			
		||||
            if (m_IsAttachment)
 | 
			
		||||
            {
 | 
			
		||||
                remoteClient.SendPrimTerseUpdate(m_regionHandle, (ushort)(m_parentGroup.GetTimeDilation() * (float)ushort.MaxValue), LocalId, lPos, mRot, (byte)((m_attachmentPoint % 16) * 16 + (m_attachmentPoint / 16)),fromAssetID);
 | 
			
		||||
                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);
 | 
			
		||||
            }
 | 
			
		||||
            else
 | 
			
		||||
            {
 | 
			
		||||
                if ((ObjectFlags & (uint)LLObject.ObjectFlags.Physics) == 0)
 | 
			
		||||
                {
 | 
			
		||||
                    remoteClient.SendPrimTerseUpdate(m_regionHandle, (ushort)(m_parentGroup.GetTimeDilation() * (float)ushort.MaxValue), LocalId, lPos, mRot, Shape.State, fromAssetID);
 | 
			
		||||
                    remoteClient.SendPrimTerseUpdate(m_regionHandle, (ushort)(m_parentGroup.GetTimeDilation() * (float)ushort.MaxValue), LocalId, lPos, mRot, Velocity, RotationalVelocity, Shape.State, fromAssetID);
 | 
			
		||||
                }
 | 
			
		||||
                else
 | 
			
		||||
                {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -409,7 +409,8 @@ namespace OpenSim.Region.Examples.SimpleModule
 | 
			
		|||
        {
 | 
			
		||||
        }
 | 
			
		||||
        public virtual void SendPrimTerseUpdate(ulong regionHandle, ushort timeDilation, uint localID,
 | 
			
		||||
                                                LLVector3 position, LLQuaternion rotation, byte state, LLUUID AssetId)
 | 
			
		||||
                                                LLVector3 position, LLQuaternion rotation, LLVector3 velocity,
 | 
			
		||||
                                                LLVector3 rotationalvelocity, byte state, LLUUID AssetId)
 | 
			
		||||
        {
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue