Prevent pieces from other people's HUDs from displaying at the center of

every user's HUD
0.6.1-post-fixes
Melanie Thielker 2008-11-11 19:08:59 +00:00
parent 4245cd90de
commit 47a5d71b7e
5 changed files with 16 additions and 9 deletions

View File

@ -781,7 +781,7 @@ namespace OpenSim.Framework
void SendCoarseLocationUpdate(List<Vector3> CoarseLocations);
void AttachObject(uint localID, Quaternion rotation, byte attachPoint);
void AttachObject(uint localID, Quaternion rotation, byte attachPoint, UUID ownerID);
void SetChildAgentThrottle(byte[] throttle);
void SendPrimitiveToClient(ulong regionHandle, ushort timeDilation, uint localID, PrimitiveBaseShape primShape,
@ -802,7 +802,7 @@ namespace OpenSim.Framework
void SendPrimTerseUpdate(ulong regionHandle, ushort timeDilation, uint localID, Vector3 position,
Quaternion rotation, Vector3 velocity, Vector3 rotationalvelocity, byte state,
UUID AssetId);
UUID AssetId, UUID owner, int attachPoint);
void SendInventoryFolderDetails(UUID ownerID, UUID folderID, List<InventoryItemBase> items,
List<InventoryFolderBase> folders, bool fetchFolders,

View File

@ -2332,8 +2332,10 @@ namespace OpenSim.Region.ClientStack.LindenUDP
/// <param name="localID"></param>
/// <param name="rotation"></param>
/// <param name="attachPoint"></param>
public void AttachObject(uint localID, Quaternion rotation, byte attachPoint)
public void AttachObject(uint localID, Quaternion rotation, byte attachPoint, UUID ownerID)
{
if (attachPoint > 30 && ownerID != AgentId) // Someone else's HUD
return;
ObjectAttachPacket attach = (ObjectAttachPacket)PacketPool.Instance.GetPacket(PacketType.ObjectAttach);
Console.WriteLine("Attach object!");
@ -2458,8 +2460,11 @@ namespace OpenSim.Region.ClientStack.LindenUDP
///
/// </summary>
public void SendPrimTerseUpdate(ulong regionHandle, ushort timeDilation, uint localID, Vector3 position,
Quaternion rotation, Vector3 velocity, Vector3 rotationalvelocity, byte state, UUID AssetId)
Quaternion rotation, Vector3 velocity, Vector3 rotationalvelocity, byte state, UUID AssetId, UUID ownerID, int attachPoint)
{
if (attachPoint > 30 && ownerID != AgentId) // Someone else's HUD
return;
if (rotation.X == rotation.Y && rotation.Y == rotation.Z && rotation.Z == rotation.W && rotation.W == 0)
rotation = Quaternion.Identity;
ImprovedTerseObjectUpdatePacket terse = (ImprovedTerseObjectUpdatePacket)PacketPool.Instance.GetPacket(PacketType.ImprovedTerseObjectUpdate);

View File

@ -560,7 +560,7 @@ namespace OpenSim.Region.Environment.Modules.World.NPC
{
}
public virtual void AttachObject(uint localID, Quaternion rotation, byte attachPoint)
public virtual void AttachObject(uint localID, Quaternion rotation, byte attachPoint, UUID ownerID)
{
}
@ -587,7 +587,7 @@ namespace OpenSim.Region.Environment.Modules.World.NPC
}
public virtual void SendPrimTerseUpdate(ulong regionHandle, ushort timeDilation, uint localID,
Vector3 position, Quaternion rotation, Vector3 velocity,
Vector3 rotationalvelocity, byte state, UUID AssetId)
Vector3 rotationalvelocity, byte state, UUID AssetId, UUID ownerID, int attachPoint)
{
}

View File

@ -3362,7 +3362,8 @@ if (m_shape != null) {
(ushort)(m_parentGroup.GetTimeDilation() *
(float)ushort.MaxValue), LocalId, lPos,
RotationOffset, Velocity,
RotationalVelocity, state, FromAssetID);
RotationalVelocity, state, FromAssetID,
OwnerID, (int)AttachmentPoint);
}
}
}

View File

@ -473,7 +473,7 @@ namespace OpenSim.Region.Examples.SimpleModule
{
}
public virtual void AttachObject(uint localID, Quaternion rotation, byte attachPoint)
public virtual void AttachObject(uint localID, Quaternion rotation, byte attachPoint, UUID ownerID)
{
}
@ -500,7 +500,8 @@ namespace OpenSim.Region.Examples.SimpleModule
}
public virtual void SendPrimTerseUpdate(ulong regionHandle, ushort timeDilation, uint localID,
Vector3 position, Quaternion rotation, Vector3 velocity,
Vector3 rotationalvelocity, byte state, UUID AssetId)
Vector3 rotationalvelocity, byte state, UUID AssetId,
UUID ownerID, int attachPoint)
{
}