Browse Source

more on the hack (runprebuild)

UbitUmarov 5 years ago
parent
commit
b24c669c16

+ 1 - 1
OpenSim/Framework/IClientAPI.cs

@@ -710,7 +710,6 @@ namespace OpenSim.Framework
         Vector3 StartPos { get; set; }
 
         UUID AgentId { get; }
-        bool SupportObjectAnimations { get; set; }
 
         /// <summary>
         /// The scene agent for this client.  This will only be set if the client has an agent in a scene (i.e. if it
@@ -1515,5 +1514,6 @@ namespace OpenSim.Framework
         void SendAgentTerseUpdate(ISceneEntity presence);
 
         void SendPlacesReply(UUID queryID, UUID transactionID, PlacesReplyData[] data);
+        void CheckViewerCaps();
     }
 }

+ 16 - 10
OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs

@@ -26,15 +26,11 @@
  */
 
 using System;
-using System.Collections;
 using System.Collections.Generic;
 using System.Net;
 using System.Reflection;
 using System.Runtime;
-using System.Text;
 using System.Threading;
-using System.Timers;
-using System.Xml;
 
 using log4net;
 using OpenMetaverse;
@@ -48,11 +44,10 @@ using OpenSim.Framework.Monitoring;
 using OpenSim.Region.Framework.Interfaces;
 using OpenSim.Region.Framework.Scenes;
 using OpenSim.Services.Interfaces;
-using Timer = System.Timers.Timer;
+using Caps = OpenSim.Framework.Capabilities.Caps;
+
 using AssetLandmark = OpenSim.Framework.AssetLandmark;
 using RegionFlags = OpenMetaverse.RegionFlags;
-
-using System.IO;
 using PermissionMask = OpenSim.Framework.PermissionMask;
 
 namespace OpenSim.Region.ClientStack.LindenUDP
@@ -351,7 +346,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
 #pragma warning restore 0414
         private const uint MaxTransferBytesPerPacket = 600;
 
-        public bool SupportObjectAnimations { get; set; }
+        private bool m_SupportObjectAnimations;
 
         /// <value>
         /// Maintain a record of all the objects killed.  This allows us to stop an update being sent from the
@@ -3917,7 +3912,7 @@ 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(!SupportObjectAnimations)
+            if(!m_SupportObjectAnimations)
                 return;
 
             ObjectAnimationPacket ani = (ObjectAnimationPacket)PacketPool.Instance.GetPacket(PacketType.ObjectAnimation);
@@ -4330,7 +4325,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
 
                 if (update.Entity is SceneObjectPart)
                 {
-                    if (SupportObjectAnimations && updateFlags.HasFlag(PrimUpdateFlags.Animations))
+                    if (m_SupportObjectAnimations && updateFlags.HasFlag(PrimUpdateFlags.Animations))
                     {
                         SceneObjectPart sop = (SceneObjectPart)update.Entity;
                         if ( sop.Animations != null)
@@ -13540,5 +13535,16 @@ namespace OpenSim.Region.ClientStack.LindenUDP
         {
             return new HashSet<string>(m_inPacketsToDrop);
         }
+
+        public void CheckViewerCaps()
+        {
+            m_SupportObjectAnimations = false;
+            if (m_scene.CapsModule != null)
+            {
+                Caps cap = m_scene.CapsModule.GetCapsForUser(CircuitCode);
+                if (cap != null && (cap.Flags & Caps.CapsFlags.ObjectAnim) != 0)
+                    m_SupportObjectAnimations = true;
+            }
+        }
     }
 }

+ 3 - 1
OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs

@@ -46,6 +46,7 @@ using OpenMetaverse;
 using Mono.Addins;
 using TokenBucket = OpenSim.Region.ClientStack.LindenUDP.TokenBucket;
 
+
 namespace OpenSim.Region.ClientStack.LindenUDP
 {
     /// <summary>
@@ -1697,8 +1698,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP
                         m_pendingCache.Remove(endPoint);
                     }
 
-                    m_log.DebugFormat("[LLUDPSERVER]: Client created, processing pending queue, {0} entries", queue.Count);
+                    client.CheckViewerCaps();
 
+                    m_log.DebugFormat("[LLUDPSERVER]: Client created, processing pending queue, {0} entries", queue.Count);
                     // Reinject queued packets
                     while (queue.Count > 0)
                     {

+ 0 - 10
OpenSim/Region/Framework/Scenes/ScenePresence.cs

@@ -45,7 +45,6 @@ using OpenSim.Region.PhysicsModules.SharedBase;
 using GridRegion = OpenSim.Services.Interfaces.GridRegion;
 using OpenSim.Services.Interfaces;
 using TeleportFlags = OpenSim.Framework.Constants.TeleportFlags;
-using Caps = OpenSim.Framework.Capabilities.Caps;
 
 namespace OpenSim.Region.Framework.Scenes
 {
@@ -1111,14 +1110,6 @@ namespace OpenSim.Region.Framework.Scenes
 
             HealRate = 0.5f;
 
-            ControllingClient.SupportObjectAnimations = false;
-            if (m_scene.CapsModule != null)
-            {
-                Caps cap = m_scene.CapsModule.GetCapsForUser(ControllingClient.CircuitCode);
-                if (cap != null && (cap.Flags & Caps.CapsFlags.ObjectAnim) != 0)
-                    ControllingClient.SupportObjectAnimations = true;
-            }
-
             IConfig sconfig = m_scene.Config.Configs["EntityTransfer"];
             if (sconfig != null)
             {
@@ -1142,7 +1133,6 @@ namespace OpenSim.Region.Framework.Scenes
             }
             m_bandwidthBurst = m_bandwidth / 5;
             ControllingClient.RefreshGroupMembership();
-
         }
 
         private float lastHealthSent = 0;

+ 3 - 2
OpenSim/Region/OptionalModules/Agent/InternetRelayClientView/Server/IRCClientView.cs

@@ -60,8 +60,6 @@ namespace OpenSim.Region.OptionalModules.Agent.InternetRelayClientView.Server
 
         public int PingTimeMS { get { return 0; } }
 
-        public bool SupportObjectAnimations { get; set; }
-
         private string m_username;
         private string m_nick;
 
@@ -1782,5 +1780,8 @@ namespace OpenSim.Region.OptionalModules.Agent.InternetRelayClientView.Server
         {
             return 0;
         }
+
+        public void CheckViewerCaps() { }
+
     }
 }

+ 2 - 1
OpenSim/Region/OptionalModules/World/NPC/NPCAvatar.cs

@@ -73,7 +73,6 @@ namespace OpenSim.Region.OptionalModules.World.NPC
         private UUID m_profileImage = UUID.Zero;
         private string m_born;
         public List<uint> SelectedObjects {get; private set;}
-        public bool SupportObjectAnimations { get; set; }
 
         public NPCAvatar(
             string firstname, string lastname, Vector3 position, UUID ownerID, bool senseAsAgent, Scene scene)
@@ -1392,5 +1391,7 @@ namespace OpenSim.Region.OptionalModules.World.NPC
             return 0;
         }
 
+        public void CheckViewerCaps() { }
+
     }
 }

+ 3 - 0
OpenSim/Tests/Common/Mock/TestClient.cs

@@ -1404,5 +1404,8 @@ namespace OpenSim.Tests.Common
         public void SendPartPhysicsProprieties(ISceneEntity entity)
         {
         }
+
+        public void CheckViewerCaps() { }
+
     }
 }

+ 1 - 0
prebuild.xml

@@ -1395,6 +1395,7 @@
       <Reference name="OpenMetaverse.StructuredData" path="../../../../../bin/"/>
       <Reference name="OpenMetaverse" path="../../../../../bin/"/>
       <Reference name="OpenSim.Data"/>
+	  <Reference name="OpenSim.Capabilities"/>
       <Reference name="OpenSim.Framework"/>
       <Reference name="OpenSim.Framework.Monitoring"/>
       <Reference name="OpenSim.Framework.Servers"/>