* Used thomas' patch m884 as an example to make HUD attachments work. While I didn't use the patch directly, I did use the following from the patch to convert the uint value into the byte: (byte)((m_attachmentPoint % 16) * 16 + (m_attachmentPoint / 16))

0.6.0-stable
Teravus Ovares 2008-04-25 09:47:21 +00:00
parent 9468917b5f
commit 421730d972
2 changed files with 2 additions and 2 deletions

View File

@ -2062,7 +2062,7 @@ namespace OpenSim.Region.ClientStack
// Item from inventory??? // Item from inventory???
outPacket.ObjectData[0].NameValue = outPacket.ObjectData[0].NameValue =
Helpers.StringToField("AttachItemID STRING RW SV " + objectID.UUID); Helpers.StringToField("AttachItemID STRING RW SV " + objectID.UUID);
outPacket.ObjectData[0].State = (byte)(((byte)AttachPoint) << 4); outPacket.ObjectData[0].State = (byte)((AttachPoint % 16) * 16 + (AttachPoint / 16));
} }
// Sound Radius // Sound Radius

View File

@ -2288,7 +2288,7 @@ namespace OpenSim.Region.Environment.Scenes
LLQuaternion mRot = RotationOffset; LLQuaternion mRot = RotationOffset;
if (m_IsAttachment) if (m_IsAttachment)
{ {
remoteClient.SendPrimTerseUpdate(m_regionHandle, (ushort)(m_parentGroup.GetTimeDilation() * (float)ushort.MaxValue), LocalId, lPos, mRot, (byte)(((byte)m_attachmentPoint) << 4)); remoteClient.SendPrimTerseUpdate(m_regionHandle, (ushort)(m_parentGroup.GetTimeDilation() * (float)ushort.MaxValue), LocalId, lPos, mRot, (byte)((m_attachmentPoint % 16) * 16 + (m_attachmentPoint / 16)));
} }
else else
{ {