diff --git a/OpenSim/Framework/IClientAPI.cs b/OpenSim/Framework/IClientAPI.cs index 961750534f..8f7d49c9b3 100644 --- a/OpenSim/Framework/IClientAPI.cs +++ b/OpenSim/Framework/IClientAPI.cs @@ -710,6 +710,7 @@ namespace OpenSim.Framework Vector3 StartPos { get; set; } UUID AgentId { get; } + bool DoObjectAnimations { get; set; } /// /// The scene agent for this client. This will only be set if the client has an agent in a scene (i.e. if it diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs index cbe2324014..7866997847 100644 --- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs @@ -344,13 +344,15 @@ namespace OpenSim.Region.ClientStack.LindenUDP private Prioritizer m_prioritizer; private bool m_disableFacelights; - // needs optimazation + // needs optimization private HashSet GroupsInView = new HashSet(); #pragma warning disable 0414 private bool m_VelocityInterpolate; #pragma warning restore 0414 private const uint MaxTransferBytesPerPacket = 600; + public bool DoObjectAnimations { get; set; } + /// /// Maintain a record of all the objects killed. This allows us to stop an update being sent from the /// thread servicing the m_primFullUpdates queue after a kill. If this happens the object persists as an @@ -3915,6 +3917,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP public void SendObjectAnimations(UUID[] animations, int[] seqs, UUID senderId) { // m_log.DebugFormat("[LLCLIENTVIEW]: Sending Object animations for {0} to {1}", sourceAgentId, Name); + if(!DoObjectAnimations) + return; ObjectAnimationPacket ani = (ObjectAnimationPacket)PacketPool.Instance.GetPacket(PacketType.ObjectAnimation); // TODO: don't create new blocks if recycling an old packet @@ -4326,10 +4330,10 @@ namespace OpenSim.Region.ClientStack.LindenUDP if (update.Entity is SceneObjectPart) { - if (updateFlags.HasFlag(PrimUpdateFlags.Animations)) + if (DoObjectAnimations && updateFlags.HasFlag(PrimUpdateFlags.Animations)) { SceneObjectPart sop = (SceneObjectPart)update.Entity; - if (sop.Animations != null) + if ( sop.Animations != null) { ObjectAnimationUpdates.Value.Add(sop); maxUpdatesBytes -= 32 * sop.Animations.Count + 16; diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index 79ad0e0dac..a8d2f848fe 100755 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs @@ -3111,6 +3111,12 @@ namespace OpenSim.Region.Framework.Scenes m_LastLogin = Util.EnvironmentTickCount(); +//HACK only send object animations to fs beta for now + string viewername = Util.GetViewerName(aCircuit); + if(sp != null && viewername.StartsWith("Firestorm-Betax64 6")) + { + sp.ControllingClient.DoObjectAnimations = true; + } return sp; } @@ -4190,7 +4196,6 @@ namespace OpenSim.Region.Framework.Scenes return false; } } - return true; } diff --git a/OpenSim/Region/OptionalModules/Agent/InternetRelayClientView/Server/IRCClientView.cs b/OpenSim/Region/OptionalModules/Agent/InternetRelayClientView/Server/IRCClientView.cs index cfb730c023..5962495abf 100644 --- a/OpenSim/Region/OptionalModules/Agent/InternetRelayClientView/Server/IRCClientView.cs +++ b/OpenSim/Region/OptionalModules/Agent/InternetRelayClientView/Server/IRCClientView.cs @@ -60,6 +60,8 @@ namespace OpenSim.Region.OptionalModules.Agent.InternetRelayClientView.Server public int PingTimeMS { get { return 0; } } + public bool DoObjectAnimations { get; set; } + private string m_username; private string m_nick; diff --git a/OpenSim/Region/OptionalModules/World/NPC/NPCAvatar.cs b/OpenSim/Region/OptionalModules/World/NPC/NPCAvatar.cs index f975f74ce7..cbb7e60762 100644 --- a/OpenSim/Region/OptionalModules/World/NPC/NPCAvatar.cs +++ b/OpenSim/Region/OptionalModules/World/NPC/NPCAvatar.cs @@ -73,6 +73,7 @@ namespace OpenSim.Region.OptionalModules.World.NPC private UUID m_profileImage = UUID.Zero; private string m_born; public List SelectedObjects {get; private set;} + public bool DoObjectAnimations { get; set; } public NPCAvatar( string firstname, string lastname, Vector3 position, UUID ownerID, bool senseAsAgent, Scene scene) diff --git a/OpenSim/Tests/Common/Mock/TestClient.cs b/OpenSim/Tests/Common/Mock/TestClient.cs index 6e8cc9f226..151dcca681 100644 --- a/OpenSim/Tests/Common/Mock/TestClient.cs +++ b/OpenSim/Tests/Common/Mock/TestClient.cs @@ -354,6 +354,8 @@ namespace OpenSim.Tests.Common public ISceneAgent SceneAgent { get; set; } + public bool DoObjectAnimations { get; set; } + /// /// The last caps seed url that this client was given. ///