aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework/Scenes
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Framework/Scenes')
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.cs71
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectGroup.Inventory.cs2
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs4
3 files changed, 39 insertions, 38 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index b2d77f5..fd979a3 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -2168,7 +2168,7 @@ namespace OpenSim.Region.Framework.Scenes
2168 2168
2169 public bool IncomingCreateObject(ISceneObject sog) 2169 public bool IncomingCreateObject(ISceneObject sog)
2170 { 2170 {
2171 //Console.WriteLine(" >>> IncomingCreateObject <<<"); 2171 //Console.WriteLine(" >>> IncomingCreateObject <<< " + ((SceneObjectGroup)sog).AbsolutePosition + " deleted? " + ((SceneObjectGroup)sog).IsDeleted);
2172 SceneObjectGroup newObject; 2172 SceneObjectGroup newObject;
2173 try 2173 try
2174 { 2174 {
@@ -2201,7 +2201,6 @@ namespace OpenSim.Region.Framework.Scenes
2201 2201
2202 return false; 2202 return false;
2203 } 2203 }
2204
2205 // Force allocation of new LocalId 2204 // Force allocation of new LocalId
2206 // 2205 //
2207 foreach (SceneObjectPart p in sceneObject.Children.Values) 2206 foreach (SceneObjectPart p in sceneObject.Children.Values)
@@ -2209,59 +2208,57 @@ namespace OpenSim.Region.Framework.Scenes
2209 2208
2210 if (sceneObject.RootPart.Shape.PCode == (byte)PCode.Prim) 2209 if (sceneObject.RootPart.Shape.PCode == (byte)PCode.Prim)
2211 { 2210 {
2212 if (sceneObject.RootPart.Shape.State != 0) 2211 if (sceneObject.RootPart.Shape.State != 0) // Attchment
2213 { 2212 {
2213
2214 sceneObject.RootPart.AddFlag(PrimFlags.TemporaryOnRez);
2215
2216 AddRestoredSceneObject(sceneObject, false, false);
2217
2218 // Handle attachment special case
2219 //
2220 //SceneObjectPart RootPrim = GetSceneObjectPart(primID);
2221 SceneObjectPart RootPrim = sceneObject.RootPart;
2222
2214 // Fix up attachment Parent Local ID 2223 // Fix up attachment Parent Local ID
2215 // 2224 //
2216 ScenePresence sp = GetScenePresence(sceneObject.OwnerID); 2225 ScenePresence sp = GetScenePresence(sceneObject.OwnerID);
2217 2226
2218 uint parentLocalID = 0; 2227 uint parentLocalID = 0;
2219 if (sp != null) 2228 if (sp != null)
2229 {
2220 parentLocalID = sp.LocalId; 2230 parentLocalID = sp.LocalId;
2221 2231
2222 sceneObject.RootPart.IsAttachment = true; 2232 //sceneObject.RootPart.IsAttachment = true;
2223 sceneObject.RootPart.SetParentLocalId(parentLocalID); 2233 //sceneObject.RootPart.SetParentLocalId(parentLocalID);
2224
2225 AddRestoredSceneObject(sceneObject, false, false);
2226
2227 // Handle attachment special case
2228 //
2229 SceneObjectPart RootPrim = GetSceneObjectPart(primID);
2230 //SceneObjectPart RootPrim = sceneObject.RootPart;
2231 2234
2232 if (RootPrim != null) 2235 SceneObjectGroup grp = sceneObject;
2233 {
2234 SceneObjectGroup grp = RootPrim.ParentGroup;
2235 2236
2236 RootPrim.SetParentLocalId(parentLocalID); 2237 //RootPrim.SetParentLocalId(parentLocalID);
2237 2238
2238 if (grp != null) 2239 m_log.DebugFormat("[ATTACHMENT]: Received " +
2239 {
2240 m_log.DebugFormat("[ATTACHMENT]: Received " +
2241 "attachment {0}, inworld asset id {1}", 2240 "attachment {0}, inworld asset id {1}",
2242 //grp.RootPart.LastOwnerID.ToString(), 2241 //grp.RootPart.LastOwnerID.ToString(),
2243 grp.GetFromAssetID(), 2242 grp.GetFromAssetID(),
2244 grp.UUID.ToString()); 2243 grp.UUID.ToString());
2245 2244
2246 if (sp != null) 2245 //grp.SetFromAssetID(grp.RootPart.LastOwnerID);
2247 { 2246 m_log.DebugFormat("[ATTACHMENT]: Attach " +
2248 //grp.SetFromAssetID(grp.RootPart.LastOwnerID); 2247 "to avatar {0} at position {1}",
2249 m_log.DebugFormat("[ATTACHMENT]: Attach " + 2248 sp.UUID.ToString(), grp.AbsolutePosition);
2250 "to avatar {0}", 2249 AttachObject(sp.ControllingClient,
2251 sp.UUID.ToString()); 2250 grp.LocalId, (uint)0,
2252 AttachObject(sp.ControllingClient, 2251 grp.GroupRotation,
2253 grp.LocalId, (uint)0, 2252 grp.AbsolutePosition, false);
2254 grp.GroupRotation, 2253 RootPrim.RemFlag(PrimFlags.TemporaryOnRez);
2255 grp.AbsolutePosition, false); 2254 grp.SendGroupFullUpdate();
2256 grp.SendGroupFullUpdate(); 2255 }
2257 } 2256 else
2258 else 2257 {
2259 { 2258 RootPrim.RemFlag(PrimFlags.TemporaryOnRez);
2260 RootPrim.RemFlag(PrimFlags.TemporaryOnRez); 2259 RootPrim.AddFlag(PrimFlags.TemporaryOnRez);
2261 RootPrim.AddFlag(PrimFlags.TemporaryOnRez);
2262 }
2263 }
2264 } 2260 }
2261
2265 } 2262 }
2266 else 2263 else
2267 { 2264 {
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.Inventory.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.Inventory.cs
index c3485ab..e1362f9 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.Inventory.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.Inventory.cs
@@ -309,7 +309,7 @@ namespace OpenSim.Region.Framework.Scenes
309 309
310 public string GetStateSnapshot() 310 public string GetStateSnapshot()
311 { 311 {
312 Console.WriteLine(" >>> GetStateSnapshot <<<"); 312 //Console.WriteLine(" >>> GetStateSnapshot <<<");
313 313
314 List<string> assemblies = new List<string>(); 314 List<string> assemblies = new List<string>();
315 Dictionary<UUID, string> states = new Dictionary<UUID, string>(); 315 Dictionary<UUID, string> states = new Dictionary<UUID, string>();
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
index 520b228..997cce5 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
@@ -1717,6 +1717,9 @@ namespace OpenSim.Region.Framework.Scenes
1717 if (m_rootPart == null) 1717 if (m_rootPart == null)
1718 return; 1718 return;
1719 1719
1720 if ((RootPart.Flags & PrimFlags.TemporaryOnRez) != 0)
1721 return;
1722
1720 lock (m_parts) 1723 lock (m_parts)
1721 { 1724 {
1722 bool UsePhysics = ((RootPart.Flags & PrimFlags.Physics) != 0); 1725 bool UsePhysics = ((RootPart.Flags & PrimFlags.Physics) != 0);
@@ -3036,6 +3039,7 @@ namespace OpenSim.Region.Framework.Scenes
3036 public virtual ISceneObject CloneForNewScene() 3039 public virtual ISceneObject CloneForNewScene()
3037 { 3040 {
3038 SceneObjectGroup sog = Copy(this.OwnerID, this.GroupID, false); 3041 SceneObjectGroup sog = Copy(this.OwnerID, this.GroupID, false);
3042 sog.m_isDeleted = false;
3039 return sog; 3043 return sog;
3040 } 3044 }
3041 3045