sog DelinkFromGroup: change order of some operations
							parent
							
								
									60a924f3c6
								
							
						
					
					
						commit
						c887446b7e
					
				|  | @ -103,6 +103,13 @@ namespace OpenSim.Region.Framework.Scenes | |||
|             Array.ForEach<SceneObjectPart>(m_parts.GetArray(), p => p.Inventory.StopScriptInstances()); | ||||
|         } | ||||
| 
 | ||||
|         public void SendReleaseScriptsControl() | ||||
|         { | ||||
|             SceneObjectPart[] parts = m_parts.GetArray(); | ||||
|             for (int i = 0; i < parts.Length; i++) | ||||
|                 parts[i].Inventory.SendReleaseScriptsControl(); | ||||
|         } | ||||
| 
 | ||||
|         public void RemoveScriptsPermissions(int permissions) | ||||
|         { | ||||
|             SceneObjectPart[] parts = m_parts.GetArray(); | ||||
|  |  | |||
|  | @ -3414,30 +3414,28 @@ namespace OpenSim.Region.Framework.Scenes | |||
|             linkPart.setGroupPosition(worldPos); | ||||
|             linkPart.setOffsetPosition(Vector3.Zero); | ||||
|             linkPart.setRotationOffset(worldRot); | ||||
|             linkPart.Rezzed = RootPart.Rezzed; | ||||
| 
 | ||||
|             // Create a new SOG to go around this unlinked and unattached SOP | ||||
|             SceneObjectGroup objectGroup = new SceneObjectGroup(linkPart); | ||||
|             InvalidBoundsRadius(); | ||||
|             InvalidatePartsLinkMaps(); | ||||
|             objectGroup.InvalidateEffectivePerms(); | ||||
| 
 | ||||
|             m_scene.AddNewSceneObject(objectGroup, true); | ||||
| 
 | ||||
|             linkPart.Rezzed = RootPart.Rezzed; | ||||
|             objectGroup.HasGroupChangedDueToDelink = true; | ||||
| 
 | ||||
|             // When we delete a group, we currently have to force persist to the database if the object id has changed | ||||
|             // (since delete works by deleting all rows which have a given object id) | ||||
| 
 | ||||
|             // this is as it seems to be in sl now | ||||
|             if(linkPart.PhysicsShapeType == (byte)PhysShapeType.none) | ||||
|             if (linkPart.PhysicsShapeType == (byte)PhysShapeType.none) | ||||
|                 linkPart.PhysicsShapeType = linkPart.DefaultPhysicsShapeType(); // root prims can't have type none for now | ||||
| 
 | ||||
|             m_scene.AddNewSceneObject(objectGroup, true); | ||||
| 
 | ||||
|             if (m_rootPart.PhysActor != null) | ||||
|                 m_rootPart.PhysActor.Building = false; | ||||
| 
 | ||||
|             objectGroup.HasGroupChangedDueToDelink = true; | ||||
| 
 | ||||
|             InvalidBoundsRadius(); | ||||
|             InvalidatePartsLinkMaps(); | ||||
|             objectGroup.InvalidateEffectivePerms(); | ||||
| 
 | ||||
|             if (sendEvents) | ||||
|                 linkPart.TriggerScriptChangedEvent(Changed.LINK); | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 UbitUmarov
						UbitUmarov