some cleanup ( well or not )
							parent
							
								
									9a8d8d2130
								
							
						
					
					
						commit
						0295e6822d
					
				|  | @ -576,6 +576,16 @@ namespace OpenSim.Region.Framework.Scenes.Animation | |||
|             m_scenePresence.SendAnimPack(animations, seqs, objectIDs); | ||||
|         } | ||||
| 
 | ||||
|         public void GetArrays(out UUID[] animIDs, out int[] sequenceNums, out UUID[] objectIDs) | ||||
|         { | ||||
|             animIDs = null; | ||||
|             sequenceNums = null; | ||||
|             objectIDs = null; | ||||
| 
 | ||||
|             if(m_animations != null) | ||||
|                 m_animations.GetArrays(out animIDs, out sequenceNums, out objectIDs); | ||||
|         } | ||||
| 
 | ||||
|         public void SendAnimPackToClient(IClientAPI client) | ||||
|         { | ||||
|             if (m_scenePresence.IsChildAgent) | ||||
|  |  | |||
|  | @ -3000,13 +3000,18 @@ namespace OpenSim.Region.Framework.Scenes | |||
|                 if (sp == null) | ||||
|                 { | ||||
|                     m_log.DebugFormat( | ||||
|                         "[SCENE]: Adding new child scene presence {0} {1} to scene {2} at pos {3}", | ||||
|                         client.Name, client.AgentId, RegionInfo.RegionName, client.StartPos); | ||||
|                         "[SCENE]: Adding new child scene presence {0} {1} to scene {2} at pos {3}, tpflags: {4}", | ||||
|                         client.Name, client.AgentId, RegionInfo.RegionName, client.StartPos, | ||||
|                         ((TPFlags)aCircuit.teleportFlags).ToString()); | ||||
|      | ||||
|                     m_clientManager.Add(client); | ||||
|                     SubscribeToClientEvents(client); | ||||
|      | ||||
|                     sp = m_sceneGraph.CreateAndAddChildScenePresence(client, aCircuit.Appearance, type); | ||||
| 
 | ||||
|                     sp.TeleportFlags = (TPFlags)aCircuit.teleportFlags; | ||||
| 
 | ||||
| /* done in completMovement | ||||
|                     InventoryFolderBase cof = InventoryService.GetFolderForType(client.AgentId, (AssetType)46); | ||||
|                     if (cof == null) | ||||
|                         sp.COF = UUID.Zero; | ||||
|  | @ -3014,9 +3019,9 @@ namespace OpenSim.Region.Framework.Scenes | |||
|                         sp.COF = cof.ID; | ||||
| 
 | ||||
|                     m_log.DebugFormat("[SCENE]: COF for {0} is {1}", client.AgentId, sp.COF); | ||||
|  */ | ||||
|                     m_eventManager.TriggerOnNewPresence(sp); | ||||
|      | ||||
|                     sp.TeleportFlags = (TPFlags)aCircuit.teleportFlags; | ||||
|                 } | ||||
|                 else | ||||
|                 { | ||||
|  |  | |||
|  | @ -2717,15 +2717,15 @@ namespace OpenSim.Region.Framework.Scenes | |||
|                     return; | ||||
|                 } | ||||
|             } | ||||
|              | ||||
|             RootPart.SendFullUpdateToAllClients(); | ||||
| 
 | ||||
|             RootPart.SendFullUpdateToAllClientsInternal(); | ||||
| 
 | ||||
|             SceneObjectPart[] parts = m_parts.GetArray(); | ||||
|             for (int i = 0; i < parts.Length; i++) | ||||
|             { | ||||
|                 SceneObjectPart part = parts[i]; | ||||
|                 if (part != RootPart) | ||||
|                     part.SendFullUpdateToAllClients(); | ||||
|                     part.SendFullUpdateToAllClientsInternal(); | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|  | @ -2740,16 +2740,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
|             if (IsDeleted) | ||||
|                 return; | ||||
| 
 | ||||
|             if (IsAttachment) | ||||
|             { | ||||
|                 ScenePresence sp = m_scene.GetScenePresence(AttachedAvatar); | ||||
|                 if (sp != null) | ||||
|                 { | ||||
|                     sp.SendAttachmentUpdate(RootPart, UpdateRequired.TERSE); | ||||
|                     return; | ||||
|                 } | ||||
|             } | ||||
| 
 | ||||
|             RootPart.SendTerseUpdateToAllClients(); | ||||
|         } | ||||
| 
 | ||||
|  | @ -2781,7 +2771,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
| 
 | ||||
|             SceneObjectPart[] parts = m_parts.GetArray(); | ||||
|             for (int i = 0; i < parts.Length; i++) | ||||
|                 parts[i].SendTerseUpdateToAllClients(); | ||||
|                 parts[i].SendTerseUpdateToAllClientsInternal(); | ||||
|         } | ||||
| 
 | ||||
|         /// <summary> | ||||
|  |  | |||
|  | @ -862,7 +862,8 @@ namespace OpenSim.Region.Framework.Scenes | |||
|                             { | ||||
|                                 Vector3 offset = (m_offsetPosition - oldpos); | ||||
|                                 av.AbsolutePosition += offset; | ||||
|                                 av.SendAvatarDataToAllAgents(); | ||||
| //                                av.SendAvatarDataToAllAgents(); | ||||
|                                 av.SendTerseUpdateToAllClients(); | ||||
|                             } | ||||
|                         } | ||||
|                     } | ||||
|  | @ -3257,7 +3258,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
|         /// <summary> | ||||
|         /// Send a full update for this part to all clients. | ||||
|         /// </summary> | ||||
|         public void SendFullUpdateToAllClients() | ||||
|         public void SendFullUpdateToAllClientsInternal() | ||||
|         { | ||||
|             if (ParentGroup == null) | ||||
|                 return; | ||||
|  | @ -3276,6 +3277,36 @@ namespace OpenSim.Region.Framework.Scenes | |||
|             }); | ||||
|         } | ||||
| 
 | ||||
|         public void SendFullUpdateToAllClients() | ||||
|         { | ||||
|             if (ParentGroup == null) | ||||
|                 return; | ||||
| 
 | ||||
|             // Update the "last" values | ||||
|             m_lastPosition = OffsetPosition; | ||||
|             m_lastRotation = RotationOffset; | ||||
|             m_lastVelocity = Velocity; | ||||
|             m_lastAcceleration = Acceleration; | ||||
|             m_lastAngularVelocity = AngularVelocity; | ||||
|             m_lastUpdateSentTime = Environment.TickCount; | ||||
| 
 | ||||
|             if (ParentGroup.IsAttachment) | ||||
|             { | ||||
|                 ScenePresence sp = ParentGroup.Scene.GetScenePresence(ParentGroup.AttachedAvatar); | ||||
|                 if (sp != null) | ||||
|                 { | ||||
|                     sp.SendAttachmentUpdate(this, UpdateRequired.FULL); | ||||
|                 } | ||||
|             } | ||||
|             else | ||||
|             { | ||||
|                 ParentGroup.Scene.ForEachScenePresence(delegate(ScenePresence avatar) | ||||
|                 { | ||||
|                     SendFullUpdate(avatar.ControllingClient); | ||||
|                 }); | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|         /// <summary> | ||||
|         /// Sends a full update to the client | ||||
|         /// </summary> | ||||
|  | @ -3345,24 +3376,24 @@ namespace OpenSim.Region.Framework.Scenes | |||
|                         !OffsetPosition.ApproxEquals(m_lastPosition, POSITION_TOLERANCE) || | ||||
|                         Environment.TickCount - m_lastUpdateSentTime > TIME_MS_TOLERANCE) | ||||
|                     { | ||||
|                         SendTerseUpdateToAllClients(); | ||||
| 
 | ||||
|                         SendTerseUpdateToAllClientsInternal(); | ||||
|                     } | ||||
|                     break; | ||||
|                 } | ||||
|                 case UpdateRequired.FULL: | ||||
|                 { | ||||
|                     ClearUpdateSchedule(); | ||||
|                     SendFullUpdateToAllClients(); | ||||
|                     SendFullUpdateToAllClientsInternal(); | ||||
|                     break; | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
| 
 | ||||
|         /// <summary> | ||||
|         /// Send a terse update to all clients | ||||
|         /// </summary> | ||||
|         public void SendTerseUpdateToAllClients() | ||||
|         public void SendTerseUpdateToAllClientsInternal() | ||||
|         { | ||||
|             if (ParentGroup == null || ParentGroup.Scene == null) | ||||
|                 return; | ||||
|  | @ -3381,6 +3412,36 @@ namespace OpenSim.Region.Framework.Scenes | |||
|             }); | ||||
|         } | ||||
| 
 | ||||
|         public void SendTerseUpdateToAllClients() | ||||
|         { | ||||
|             if (ParentGroup == null || ParentGroup.Scene == null) | ||||
|                 return; | ||||
| 
 | ||||
|             // Update the "last" values | ||||
|             m_lastPosition = OffsetPosition; | ||||
|             m_lastRotation = RotationOffset; | ||||
|             m_lastVelocity = Velocity; | ||||
|             m_lastAcceleration = Acceleration; | ||||
|             m_lastAngularVelocity = AngularVelocity; | ||||
|             m_lastUpdateSentTime = Environment.TickCount; | ||||
| 
 | ||||
|             if (ParentGroup.IsAttachment) | ||||
|             { | ||||
|                 ScenePresence sp = ParentGroup.Scene.GetScenePresence(ParentGroup.AttachedAvatar); | ||||
|                 if (sp != null) | ||||
|                 { | ||||
|                     sp.SendAttachmentUpdate(this, UpdateRequired.TERSE); | ||||
|                 } | ||||
|             } | ||||
|             else | ||||
|             { | ||||
|                 ParentGroup.Scene.ForEachClient(delegate(IClientAPI client) | ||||
|                 { | ||||
|                     SendTerseUpdateToClient(client); | ||||
|                 }); | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|         public void SetAxisRotation(int axis, int rotate) | ||||
|         { | ||||
|             ParentGroup.SetAxisRotation(axis, rotate); | ||||
|  |  | |||
|  | @ -1341,6 +1341,11 @@ namespace OpenSim.Region.Framework.Scenes | |||
|             RemoveFromPhysicalScene(); | ||||
|             ParentID = 0; // Child agents can't be sitting | ||||
| 
 | ||||
| // we dont have land information for child | ||||
|             m_previusParcelHide = false; | ||||
|             m_previusParcelUUID = UUID.Zero; | ||||
|             m_currentParcelHide = false; | ||||
|             m_currentParcelUUID = UUID.Zero; | ||||
|             // FIXME: Set RegionHandle to the region handle of the scene this agent is moving into | ||||
|              | ||||
|             m_scene.EventManager.TriggerOnMakeChildAgent(this); | ||||
|  | @ -1753,13 +1758,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
|                 // Tell the client that we're totally ready | ||||
|                 ControllingClient.MoveAgentIntoRegion(m_scene.RegionInfo, AbsolutePosition, look); | ||||
| 
 | ||||
|                 // Remember in HandleUseCircuitCode, we delayed this to here | ||||
| // this prims etc, moved down | ||||
| //                if (m_teleportFlags > 0) | ||||
| //                    SendInitialDataToMe(); | ||||
| 
 | ||||
|                 //            m_log.DebugFormat("[SCENE PRESENCE] Completed movement"); | ||||
| 
 | ||||
|                 m_log.DebugFormat("[CompleteMovement] MoveAgentIntoRegion: {0}ms", Util.EnvironmentTickCountSubtract(ts)); | ||||
| 
 | ||||
|                 if (!string.IsNullOrEmpty(m_callbackURI)) | ||||
|  | @ -1805,19 +1803,82 @@ namespace OpenSim.Region.Framework.Scenes | |||
|                 if (!IsChildAgent) | ||||
|                 { | ||||
| 
 | ||||
|                     ValidateAndSendAppearanceAndAgentData(); | ||||
|                     // ValidateAndSendAppearanceAndAgentData(); | ||||
| 
 | ||||
|                     // do it here in line  | ||||
|                     // so sequence is clear | ||||
| 
 | ||||
|                     // verify baked textures and cache | ||||
| 
 | ||||
|                     bool cachedbaked = false; | ||||
| 
 | ||||
|                     if (m_scene.AvatarFactory != null) | ||||
|                         cachedbaked = m_scene.AvatarFactory.ValidateBakedTextureCache(this); | ||||
|                     | ||||
|                     // not sure we need this | ||||
|                     if (!cachedbaked) | ||||
|                     { | ||||
|                         if (m_scene.AvatarFactory != null) | ||||
|                             m_scene.AvatarFactory.QueueAppearanceSave(UUID); | ||||
|                     } | ||||
| 
 | ||||
|                     List<ScenePresence> allpresences = m_scene.GetScenePresences(); | ||||
| 
 | ||||
|                     // send avatar object to all presences including us, so they cross it into region | ||||
|                     // then hide if necessary | ||||
|                     SendInitialAvatarDataToAllAgents(allpresences); | ||||
| 
 | ||||
|                     // send this look | ||||
|                     SendAppearanceToAgent(this); | ||||
| 
 | ||||
|                     // send this animations | ||||
|                     UUID[] animIDs = null; | ||||
|                     int[] animseqs = null; | ||||
|                     UUID[] animsobjs = null; | ||||
| 
 | ||||
|                     if (Animator != null) | ||||
|                         Animator.GetArrays(out animIDs, out animseqs, out animsobjs); | ||||
| 
 | ||||
|                     bool haveAnims = (animIDs != null && animseqs != null && animsobjs != null); | ||||
| 
 | ||||
|                     if(haveAnims) | ||||
|                         SendAnimPackToAgent(this, animIDs, animseqs, animsobjs); | ||||
| 
 | ||||
|                     // we should be able to receive updates, etc | ||||
|                     // so release them | ||||
|                     m_inTransit = false; | ||||
| 
 | ||||
|                     // send look and animations to others | ||||
|                     // if not cached we send greys | ||||
|                     // uncomented if will wait till avatar does baking  | ||||
|                     //if (cachedbaked) | ||||
|                     { | ||||
|                         foreach (ScenePresence p in allpresences) | ||||
|                         { | ||||
|                             if (p == this) | ||||
|                                 continue; | ||||
| 
 | ||||
|                             if (ParcelHideThisAvatar && currentParcelUUID != p.currentParcelUUID && p.GodLevel < 200) | ||||
|                                 continue; | ||||
| 
 | ||||
|                             SendAppearanceToAgentNF(p); | ||||
|                             if (haveAnims) | ||||
|                                 SendAnimPackToAgentNF(p, animIDs, animseqs, animsobjs); | ||||
|                         } | ||||
|                     } // greys if | ||||
| 
 | ||||
|                     m_log.DebugFormat("[CompleteMovement] ValidateAndSendAppearanceAndAgentData: {0}ms", Util.EnvironmentTickCountSubtract(ts)); | ||||
|                   | ||||
|                     // attachments | ||||
| 
 | ||||
|                     if (isNPC || (TeleportFlags & TeleportFlags.ViaLogin) != 0) | ||||
|                     { | ||||
|                         if (Scene.AttachmentsModule != null) | ||||
| //                        Util.FireAndForget( | ||||
| //                            o => | ||||
| //                            { | ||||
|                         // Util.FireAndForget( | ||||
|                         //      o => | ||||
|                         //      { | ||||
|                             Scene.AttachmentsModule.RezAttachments(this); | ||||
|                         //                            }); | ||||
|                         // }); | ||||
|                     } | ||||
|                     else | ||||
|                     { | ||||
|  | @ -1829,23 +1890,23 @@ namespace OpenSim.Region.Framework.Scenes | |||
|                             // Resume scripts  this possible should also be moved down after sending the avatar to viewer ? | ||||
|                             foreach (SceneObjectGroup sog in m_attachments) | ||||
|                             { | ||||
|                                 sog.SendFullUpdateToClient(ControllingClient); | ||||
|                                 SendFullUpdateToClient(ControllingClient); | ||||
|                                 sog.SendFullUpdateToClient(ControllingClient);                                | ||||
| 
 | ||||
|                                 if (!sog.HasPrivateAttachmentPoint) | ||||
|                                 { | ||||
|                                     // sog.ScheduleGroupForFullUpdate(); | ||||
|                                     m_scene.ForEachScenePresence(delegate(ScenePresence p) | ||||
|                                     foreach(ScenePresence p in allpresences) | ||||
|                                     { | ||||
|                                         if (p == this) | ||||
|                                             return; | ||||
|                                             continue; | ||||
| 
 | ||||
|                                         if (ParcelHideThisAvatar && currentParcelUUID != p.currentParcelUUID && p.GodLevel < 200) | ||||
|                                             return; | ||||
|                                             continue; | ||||
| 
 | ||||
|                                         sog.SendFullUpdateToClient(p.ControllingClient); | ||||
|                                         SendFullUpdateToClient(p.ControllingClient); // resend our data by updates path | ||||
|                                     }); | ||||
|                                         sog.SendFullUpdateToClient(p.ControllingClient); | ||||
|                                     }; | ||||
|                                 } | ||||
|                                 sog.RootPart.ParentGroup.CreateScriptInstances(0, false, m_scene.DefaultScriptEngine, GetStateSource()); | ||||
|                                 sog.ResumeScripts(); | ||||
|  | @ -1872,25 +1933,14 @@ namespace OpenSim.Region.Framework.Scenes | |||
| 
 | ||||
|                 m_log.DebugFormat("[CompleteMovement] SendInitialDataToMe: {0}ms", Util.EnvironmentTickCountSubtract(ts)); | ||||
| 
 | ||||
|                 if (!IsChildAgent) | ||||
|                 if (!IsChildAgent && openChildAgents) | ||||
|                 { | ||||
| // moved from makeroot missing in sendInitialDataToMe  | ||||
| // its already there | ||||
| /* | ||||
|                     m_scene.ForEachRootScenePresence(delegate(ScenePresence presence) | ||||
|                     { | ||||
|                         if (presence != this) | ||||
|                             presence.Animator.SendAnimPackToClient(ControllingClient); | ||||
|                     }); | ||||
| */ | ||||
|                     if (openChildAgents) | ||||
|                     { | ||||
|                     IFriendsModule friendsModule = m_scene.RequestModuleInterface<IFriendsModule>(); | ||||
|                     if (friendsModule != null) | ||||
|                         friendsModule.SendFriendsOnlineIfNeeded(ControllingClient); | ||||
| 
 | ||||
|                     m_log.DebugFormat("[CompleteMovement] friendsModule: {0}ms", Util.EnvironmentTickCountSubtract(ts)); | ||||
|                     } | ||||
| 
 | ||||
|                 } | ||||
|             } | ||||
|             finally | ||||
|  | @ -3481,6 +3531,8 @@ namespace OpenSim.Region.Framework.Scenes | |||
|         /// Do everything required once a client completes its movement into a region and becomes | ||||
|         /// a root agent. | ||||
|         /// </summary> | ||||
|         ///  | ||||
| /* only called from on place, do done inline there       | ||||
|         private void ValidateAndSendAppearanceAndAgentData() | ||||
|         { | ||||
|             //m_log.DebugFormat("[SCENE PRESENCE] SendInitialData: {0} ({1})", Name, UUID); | ||||
|  | @ -3502,11 +3554,13 @@ namespace OpenSim.Region.Framework.Scenes | |||
|                     m_scene.AvatarFactory.QueueAppearanceSave(UUID); | ||||
|             } | ||||
| 
 | ||||
|             // send avatar object to all viewers so they cross it into region | ||||
|             bool newhide = m_currentParcelHide; | ||||
|             m_currentParcelHide = false; | ||||
| 
 | ||||
|             SendAvatarDataToAllAgents(); | ||||
| 
 | ||||
|             // now hide  | ||||
|             if (newhide) | ||||
|             { | ||||
|                 ParcelLoginCheck(m_currentParcelUUID); | ||||
|  | @ -3522,7 +3576,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
|             if(Animator!= null) | ||||
|                 Animator.SendAnimPack(); | ||||
|         } | ||||
|          | ||||
| */         | ||||
|         /// <summary> | ||||
|         /// Send avatar full data appearance and animations for all other root agents to this agent, this agent | ||||
|         /// can be either a child or root | ||||
|  | @ -3530,15 +3584,18 @@ namespace OpenSim.Region.Framework.Scenes | |||
|         public void SendOtherAgentsAvatarFullToMe() | ||||
|         { | ||||
|             int count = 0; | ||||
|             m_scene.ForEachRootScenePresence(delegate(ScenePresence scenePresence) | ||||
|             m_scene.ForEachRootScenePresence(delegate(ScenePresence p) | ||||
|             { | ||||
|                 // only send information about other root agents | ||||
|                 if (scenePresence.UUID == UUID) | ||||
|                 if (p.UUID == UUID) | ||||
|                     return; | ||||
| 
 | ||||
|                 scenePresence.SendAvatarDataToAgent(this); | ||||
|                 scenePresence.SendAppearanceToAgent(this); | ||||
|                 scenePresence.SendAnimPackToAgent(this); | ||||
|                 if (p.ParcelHideThisAvatar && currentParcelUUID != p.currentParcelUUID && GodLevel < 200) | ||||
|                     return; | ||||
| 
 | ||||
|                 p.SendAvatarDataToAgentNF(this); | ||||
|                 p.SendAppearanceToAgentNF(this); | ||||
|                 p.SendAnimPackToAgentNF(this); | ||||
|                 // for now attachments are sent with all SOG | ||||
|                 count++; | ||||
|             }); | ||||
|  | @ -3559,7 +3616,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
|                 m_log.WarnFormat( | ||||
|                     "[SCENE PRESENCE]: Attempt to send avatar data from a child agent for {0} in {1}", | ||||
|                     Name, Scene.RegionInfo.RegionName); | ||||
| 
 | ||||
|                 return; | ||||
|             } | ||||
| 
 | ||||
|  | @ -3575,6 +3631,26 @@ namespace OpenSim.Region.Framework.Scenes | |||
|             m_scene.StatsReporter.AddAgentUpdates(count); | ||||
|         } | ||||
| 
 | ||||
|         // sends avatar object to all clients so they cross it into region | ||||
|         // then sends kills to hide | ||||
|         public void SendInitialAvatarDataToAllAgents(List<ScenePresence> presences) | ||||
|         { | ||||
|             m_lastSize = Appearance.AvatarSize; | ||||
|             int count = 0; | ||||
| 
 | ||||
|             foreach (ScenePresence p in presences) | ||||
|             { | ||||
|                 p.ControllingClient.SendAvatarDataImmediate(this); | ||||
|                 if (p != this && ParcelHideThisAvatar && currentParcelUUID != p.currentParcelUUID && p.GodLevel < 200) | ||||
|                     // either just kill the object | ||||
|                     // p.ControllingClient.SendKillObject(new List<uint> {LocalId}); | ||||
|                     // or also attachments viewer may still know about | ||||
|                     SendKillTo(p); | ||||
|                 count++; | ||||
|             } | ||||
|             m_scene.StatsReporter.AddAgentUpdates(count); | ||||
|         } | ||||
| 
 | ||||
|         /// <summary> | ||||
|         /// Send avatar data to an agent. | ||||
|         /// </summary> | ||||
|  | @ -3589,9 +3665,9 @@ namespace OpenSim.Region.Framework.Scenes | |||
| 
 | ||||
|         public void SendAvatarDataToAgentNF(ScenePresence avatar) | ||||
|         { | ||||
|             avatar.ControllingClient.SendAvatarDataImmediate(this); | ||||
|              avatar.ControllingClient.SendAvatarDataImmediate(this); | ||||
|         } | ||||
| 
 | ||||
|   | ||||
|         /// <summary> | ||||
|         /// Send this agent's appearance to all other root and child agents in the scene | ||||
|         /// This agent must be root. | ||||
|  | @ -3637,6 +3713,12 @@ namespace OpenSim.Region.Framework.Scenes | |||
|                 UUID, Appearance.VisualParams, Appearance.Texture.GetBytes());            | ||||
|         } | ||||
| 
 | ||||
|         public void SendAppearanceToAgentNF(ScenePresence avatar) | ||||
|         { | ||||
|             avatar.ControllingClient.SendAppearance( | ||||
|                 UUID, Appearance.VisualParams, Appearance.Texture.GetBytes()); | ||||
|         } | ||||
| 
 | ||||
|         public void SendAnimPackToAgent(ScenePresence p) | ||||
|         { | ||||
|             if (IsChildAgent || Animator == null) | ||||
|  | @ -3648,6 +3730,29 @@ namespace OpenSim.Region.Framework.Scenes | |||
|             Animator.SendAnimPackToClient(p.ControllingClient); | ||||
|         } | ||||
| 
 | ||||
|         public void SendAnimPackToAgent(ScenePresence p, UUID[] animations, int[] seqs, UUID[] objectIDs) | ||||
|         { | ||||
|             if (IsChildAgent) | ||||
|                 return; | ||||
| 
 | ||||
|             if (ParcelHideThisAvatar && currentParcelUUID != p.currentParcelUUID && p.GodLevel < 200) | ||||
|                 return; | ||||
| 
 | ||||
|             p.ControllingClient.SendAnimations(animations, seqs, ControllingClient.AgentId, objectIDs); | ||||
|         } | ||||
| 
 | ||||
|         public void SendAnimPackToAgentNF(ScenePresence p) | ||||
|         { | ||||
|             if (IsChildAgent || Animator == null) | ||||
|                 return; | ||||
|             Animator.SendAnimPackToClient(p.ControllingClient); | ||||
|         } | ||||
| 
 | ||||
|         public void SendAnimPackToAgentNF(ScenePresence p, UUID[] animations, int[] seqs, UUID[] objectIDs) | ||||
|         { | ||||
|             p.ControllingClient.SendAnimations(animations, seqs, ControllingClient.AgentId, objectIDs); | ||||
|         } | ||||
| 
 | ||||
|         public void SendAnimPack(UUID[] animations, int[] seqs, UUID[] objectIDs) | ||||
|         { | ||||
|             if (IsChildAgent) | ||||
|  | @ -5634,22 +5739,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
|             } | ||||
|         } | ||||
| 
 | ||||
|         private void ParcelLoginCheck(UUID currentParcelID) | ||||
|         { | ||||
|             List<ScenePresence> allpresences = m_scene.GetScenePresences(); | ||||
| 
 | ||||
|             foreach (ScenePresence p in allpresences) | ||||
|             { | ||||
|                 if (p.IsDeleted || p == this || p.ControllingClient == null || !p.ControllingClient.IsActive) | ||||
|                     continue; | ||||
|                 | ||||
|                 if (currentParcelID != p.currentParcelUUID && p.GodLevel < 200) | ||||
|                 { | ||||
|                     SendKillTo(p); | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|   | ||||
|         public void parcelRegionCross() | ||||
|         { | ||||
|             if (!ParcelHideThisAvatar || GodLevel >= 200) | ||||
|  | @ -5817,8 +5906,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
| 
 | ||||
|             if (killsToSendme.Count > 0) | ||||
|             { | ||||
|                 m_log.Debug("[AVATAR]: killtoMe: " + Lastname + " " + killsToSendme.Count.ToString()); | ||||
| 
 | ||||
|                 foreach (ScenePresence p in killsToSendme) | ||||
|                 { | ||||
|                     m_log.Debug("[AVATAR]: killToMe: " + Lastname + " " + p.Lastname); | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 UbitUmarov
						UbitUmarov