diff --git a/OpenSim/Framework/IClientAPI.cs b/OpenSim/Framework/IClientAPI.cs index 06a8bab95a..e482cca9dc 100644 --- a/OpenSim/Framework/IClientAPI.cs +++ b/OpenSim/Framework/IClientAPI.cs @@ -415,7 +415,7 @@ namespace OpenSim.Framework void SendPrimitiveToClient(ulong regionHandle, ushort timeDilation, uint localID, PrimitiveBaseShape primShape, LLVector3 pos, uint flags, LLUUID objectID, LLUUID ownerID, string text, byte[] color, - uint parentID, byte[] particleSystem, LLQuaternion rotation); + uint parentID, byte[] particleSystem, LLQuaternion rotation, byte clickAction); void SendPrimTerseUpdate(ulong regionHandle, ushort timeDilation, uint localID, LLVector3 position, LLQuaternion rotation); diff --git a/OpenSim/Region/ClientStack/ClientView.API.cs b/OpenSim/Region/ClientStack/ClientView.API.cs index f0ebf03654..6f15c44ef1 100644 --- a/OpenSim/Region/ClientStack/ClientView.API.cs +++ b/OpenSim/Region/ClientStack/ClientView.API.cs @@ -1031,7 +1031,7 @@ namespace OpenSim.Region.ClientStack public void SendPrimitiveToClient( ulong regionHandle, ushort timeDilation, uint localID, PrimitiveBaseShape primShape, LLVector3 pos, uint flags, - LLUUID objectID, LLUUID ownerID, string text, byte[] color, uint parentID, byte[] particleSystem, LLQuaternion rotation) + LLUUID objectID, LLUUID ownerID, string text, byte[] color, uint parentID, byte[] particleSystem, LLQuaternion rotation, byte clickAction) { ObjectUpdatePacket outPacket = new ObjectUpdatePacket(); outPacket.RegionData.RegionHandle = regionHandle; @@ -1050,7 +1050,7 @@ namespace OpenSim.Region.ClientStack outPacket.ObjectData[0].TextColor[3] = color[3]; outPacket.ObjectData[0].ParentID = parentID; outPacket.ObjectData[0].PSBlock = particleSystem; - outPacket.ObjectData[0].ClickAction = 0; + outPacket.ObjectData[0].ClickAction = clickAction; //outPacket.ObjectData[0].Flags = 0; outPacket.ObjectData[0].Radius = 20; diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs index b2e585d506..0da90d528c 100644 --- a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs @@ -352,6 +352,17 @@ namespace OpenSim.Region.Environment.Scenes set { m_touchName = value; } } + private byte m_clickAction = 0; + public byte ClickAction + { + get { return m_clickAction; } + set + { + m_clickAction = value; + this.ScheduleFullUpdate(); + } + } + protected PrimitiveBaseShape m_shape; public PrimitiveBaseShape Shape @@ -384,6 +395,7 @@ namespace OpenSim.Region.Environment.Scenes set { m_updateFlag = value; } } + #region Constructors /// @@ -1096,7 +1108,7 @@ namespace OpenSim.Region.Environment.Scenes byte[] color = new byte[] { m_color.R, m_color.G, m_color.B, m_color.A }; remoteClient.SendPrimitiveToClient(m_regionHandle, 64096, LocalID, m_shape, lPos, clientFlags, m_uuid, OwnerID, - m_text, color, ParentID, m_particleSystem, lRot); + m_text, color, ParentID, m_particleSystem, lRot, m_clickAction); } /// Terse updates diff --git a/OpenSim/Region/Examples/SimpleApp/MyNpcCharacter.cs b/OpenSim/Region/Examples/SimpleApp/MyNpcCharacter.cs index 07d43b85a5..d107aab074 100644 --- a/OpenSim/Region/Examples/SimpleApp/MyNpcCharacter.cs +++ b/OpenSim/Region/Examples/SimpleApp/MyNpcCharacter.cs @@ -280,7 +280,7 @@ namespace SimpleApp public virtual void SendPrimitiveToClient(ulong regionHandle, ushort timeDilation, uint localID, PrimitiveBaseShape primShape, LLVector3 pos, uint flags, LLUUID objectID, LLUUID ownerID, string text, byte[] color, uint parentID, - byte[] particleSystem, LLQuaternion rotation) + byte[] particleSystem, LLQuaternion rotation, byte clickAction) { }