diff options
Applied patch from mantis #749, Grass now stays to set type when moved. thanks Grumly57.
Diffstat (limited to 'OpenSim/Region')
-rw-r--r-- | OpenSim/Region/ClientStack/ClientView.cs | 14 | ||||
-rw-r--r-- | OpenSim/Region/Environment/Scenes/SceneObjectPart.cs | 4 | ||||
-rw-r--r-- | OpenSim/Region/Examples/SimpleApp/MyNpcCharacter.cs | 2 |
3 files changed, 11 insertions, 9 deletions
diff --git a/OpenSim/Region/ClientStack/ClientView.cs b/OpenSim/Region/ClientStack/ClientView.cs index f11ac56..58d425d 100644 --- a/OpenSim/Region/ClientStack/ClientView.cs +++ b/OpenSim/Region/ClientStack/ClientView.cs | |||
@@ -1898,7 +1898,7 @@ namespace OpenSim.Region.ClientStack | |||
1898 | /// <param name="position"></param> | 1898 | /// <param name="position"></param> |
1899 | /// <param name="rotation"></param> | 1899 | /// <param name="rotation"></param> |
1900 | public void SendPrimTerseUpdate(ulong regionHandle, ushort timeDilation, uint localID, LLVector3 position, | 1900 | public void SendPrimTerseUpdate(ulong regionHandle, ushort timeDilation, uint localID, LLVector3 position, |
1901 | LLQuaternion rotation) | 1901 | LLQuaternion rotation, byte state) |
1902 | { | 1902 | { |
1903 | LLVector3 velocity = new LLVector3(0f, 0f, 0f); | 1903 | LLVector3 velocity = new LLVector3(0f, 0f, 0f); |
1904 | LLVector3 rotationalvelocity = new LLVector3(0f, 0f, 0f); | 1904 | LLVector3 rotationalvelocity = new LLVector3(0f, 0f, 0f); |
@@ -1907,7 +1907,7 @@ namespace OpenSim.Region.ClientStack | |||
1907 | terse.RegionData.RegionHandle = regionHandle; | 1907 | terse.RegionData.RegionHandle = regionHandle; |
1908 | terse.RegionData.TimeDilation = timeDilation; | 1908 | terse.RegionData.TimeDilation = timeDilation; |
1909 | terse.ObjectData = new ImprovedTerseObjectUpdatePacket.ObjectDataBlock[1]; | 1909 | terse.ObjectData = new ImprovedTerseObjectUpdatePacket.ObjectDataBlock[1]; |
1910 | terse.ObjectData[0] = CreatePrimImprovedBlock(localID, position, rotation, velocity, rotationalvelocity); | 1910 | terse.ObjectData[0] = CreatePrimImprovedBlock(localID, position, rotation, velocity, rotationalvelocity, state); |
1911 | terse.Header.Reliable = false; | 1911 | terse.Header.Reliable = false; |
1912 | OutPacket(terse, ThrottleOutPacketType.Task); | 1912 | OutPacket(terse, ThrottleOutPacketType.Task); |
1913 | } | 1913 | } |
@@ -1920,7 +1920,7 @@ namespace OpenSim.Region.ClientStack | |||
1920 | terse.RegionData.RegionHandle = regionHandle; | 1920 | terse.RegionData.RegionHandle = regionHandle; |
1921 | terse.RegionData.TimeDilation = timeDilation; | 1921 | terse.RegionData.TimeDilation = timeDilation; |
1922 | terse.ObjectData = new ImprovedTerseObjectUpdatePacket.ObjectDataBlock[1]; | 1922 | terse.ObjectData = new ImprovedTerseObjectUpdatePacket.ObjectDataBlock[1]; |
1923 | terse.ObjectData[0] = CreatePrimImprovedBlock(localID, position, rotation, velocity, rotationalvelocity); | 1923 | terse.ObjectData[0] = CreatePrimImprovedBlock(localID, position, rotation, velocity, rotationalvelocity, 0); |
1924 | terse.Header.Reliable = false; | 1924 | terse.Header.Reliable = false; |
1925 | OutPacket(terse, ThrottleOutPacketType.Task); | 1925 | OutPacket(terse, ThrottleOutPacketType.Task); |
1926 | } | 1926 | } |
@@ -2027,7 +2027,8 @@ namespace OpenSim.Region.ClientStack | |||
2027 | LLVector3 position, | 2027 | LLVector3 position, |
2028 | LLQuaternion rotation, | 2028 | LLQuaternion rotation, |
2029 | LLVector3 velocity, | 2029 | LLVector3 velocity, |
2030 | LLVector3 rotationalvelocity) | 2030 | LLVector3 rotationalvelocity, |
2031 | byte state) | ||
2031 | { | 2032 | { |
2032 | uint ID = localID; | 2033 | uint ID = localID; |
2033 | byte[] bytes = new byte[60]; | 2034 | byte[] bytes = new byte[60]; |
@@ -2039,7 +2040,7 @@ namespace OpenSim.Region.ClientStack | |||
2039 | bytes[i++] = (byte)((ID >> 8) % 256); | 2040 | bytes[i++] = (byte)((ID >> 8) % 256); |
2040 | bytes[i++] = (byte)((ID >> 16) % 256); | 2041 | bytes[i++] = (byte)((ID >> 16) % 256); |
2041 | bytes[i++] = (byte)((ID >> 24) % 256); | 2042 | bytes[i++] = (byte)((ID >> 24) % 256); |
2042 | bytes[i++] = 0; | 2043 | bytes[i++] = state; |
2043 | bytes[i++] = 0; | 2044 | bytes[i++] = 0; |
2044 | 2045 | ||
2045 | byte[] pb = position.GetBytes(); | 2046 | byte[] pb = position.GetBytes(); |
@@ -2125,7 +2126,8 @@ namespace OpenSim.Region.ClientStack | |||
2125 | SetDefaultPrimPacketValues(objupdate); | 2126 | SetDefaultPrimPacketValues(objupdate); |
2126 | objupdate.UpdateFlags = flags; | 2127 | objupdate.UpdateFlags = flags; |
2127 | SetPrimPacketShapeData(objupdate, primShape); | 2128 | SetPrimPacketShapeData(objupdate, primShape); |
2128 | if ((primShape.PCode == 111) || (primShape.PCode == 255)) | 2129 | // if ((primShape.PCode == 111) || (primShape.PCode == 255)) |
2130 | if ((primShape.PCode == (byte)PCode.NewTree) || (primShape.PCode == (byte)PCode.Tree) || (primShape.PCode == (byte)PCode.Grass)) | ||
2129 | { | 2131 | { |
2130 | objupdate.Data = new byte[1]; | 2132 | objupdate.Data = new byte[1]; |
2131 | objupdate.Data[0] = primShape.State; | 2133 | objupdate.Data[0] = primShape.State; |
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs index 6ed63be..f20a638 100644 --- a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs | |||
@@ -1814,7 +1814,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1814 | LLQuaternion mRot = RotationOffset; | 1814 | LLQuaternion mRot = RotationOffset; |
1815 | if ((ObjectFlags & (uint) LLObject.ObjectFlags.Physics) == 0) | 1815 | if ((ObjectFlags & (uint) LLObject.ObjectFlags.Physics) == 0) |
1816 | { | 1816 | { |
1817 | remoteClient.SendPrimTerseUpdate(m_regionHandle, (ushort)(m_parentGroup.GetTimeDilation() * (float)ushort.MaxValue), LocalId, lPos, mRot); | 1817 | remoteClient.SendPrimTerseUpdate(m_regionHandle, (ushort)(m_parentGroup.GetTimeDilation() * (float)ushort.MaxValue), LocalId, lPos, mRot, Shape.State); |
1818 | } | 1818 | } |
1819 | else | 1819 | else |
1820 | { | 1820 | { |
@@ -1829,7 +1829,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1829 | LLQuaternion mRot = RotationOffset; | 1829 | LLQuaternion mRot = RotationOffset; |
1830 | if ((ObjectFlags & (uint) LLObject.ObjectFlags.Physics) == 0) | 1830 | if ((ObjectFlags & (uint) LLObject.ObjectFlags.Physics) == 0) |
1831 | { | 1831 | { |
1832 | remoteClient.SendPrimTerseUpdate(m_regionHandle, (ushort)(m_parentGroup.GetTimeDilation() * (float)ushort.MaxValue), LocalId, lPos, mRot); | 1832 | remoteClient.SendPrimTerseUpdate(m_regionHandle, (ushort)(m_parentGroup.GetTimeDilation() * (float)ushort.MaxValue), LocalId, lPos, mRot, Shape.State); |
1833 | } | 1833 | } |
1834 | else | 1834 | else |
1835 | { | 1835 | { |
diff --git a/OpenSim/Region/Examples/SimpleApp/MyNpcCharacter.cs b/OpenSim/Region/Examples/SimpleApp/MyNpcCharacter.cs index 68fea97..82ff3cc 100644 --- a/OpenSim/Region/Examples/SimpleApp/MyNpcCharacter.cs +++ b/OpenSim/Region/Examples/SimpleApp/MyNpcCharacter.cs | |||
@@ -357,7 +357,7 @@ namespace SimpleApp | |||
357 | { | 357 | { |
358 | } | 358 | } |
359 | public virtual void SendPrimTerseUpdate(ulong regionHandle, ushort timeDilation, uint localID, | 359 | public virtual void SendPrimTerseUpdate(ulong regionHandle, ushort timeDilation, uint localID, |
360 | LLVector3 position, LLQuaternion rotation) | 360 | LLVector3 position, LLQuaternion rotation, byte state) |
361 | { | 361 | { |
362 | } | 362 | } |
363 | 363 | ||