aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--OpenSim/Framework/AvatarAppearance.cs13
-rw-r--r--OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs8
2 files changed, 16 insertions, 5 deletions
diff --git a/OpenSim/Framework/AvatarAppearance.cs b/OpenSim/Framework/AvatarAppearance.cs
index 25ae0ec..3874c47 100644
--- a/OpenSim/Framework/AvatarAppearance.cs
+++ b/OpenSim/Framework/AvatarAppearance.cs
@@ -183,11 +183,16 @@ namespace OpenSim.Framework
183 m_attachments = new Dictionary<int, List<AvatarAttachment>>(); 183 m_attachments = new Dictionary<int, List<AvatarAttachment>>();
184 } 184 }
185 185
186 public AvatarAppearance(AvatarAppearance appearance): this(appearance, true) 186 public AvatarAppearance(AvatarAppearance appearance): this(appearance, true,true)
187 { 187 {
188 } 188 }
189 189
190 public AvatarAppearance(AvatarAppearance appearance, bool copyWearables) 190 public AvatarAppearance(AvatarAppearance appearance, bool copyWearables)
191 : this(appearance, copyWearables, true)
192 {
193 }
194
195 public AvatarAppearance(AvatarAppearance appearance, bool copyWearables, bool copyBaked)
191 { 196 {
192// m_log.WarnFormat("[AVATAR APPEARANCE] create from an existing appearance"); 197// m_log.WarnFormat("[AVATAR APPEARANCE] create from an existing appearance");
193 198
@@ -221,8 +226,10 @@ namespace OpenSim.Framework
221 { 226 {
222 byte[] tbytes = appearance.Texture.GetBytes(); 227 byte[] tbytes = appearance.Texture.GetBytes();
223 m_texture = new Primitive.TextureEntry(tbytes,0,tbytes.Length); 228 m_texture = new Primitive.TextureEntry(tbytes,0,tbytes.Length);
224 if (appearance.m_cacheitems != null) 229 if (copyBaked && appearance.m_cacheitems != null)
225 m_cacheitems = (WearableCacheItem[]) appearance.m_cacheitems.Clone(); 230 m_cacheitems = (WearableCacheItem[])appearance.m_cacheitems.Clone();
231 else
232 m_cacheitems = null;
226 } 233 }
227 234
228 m_visualparams = null; 235 m_visualparams = null;
diff --git a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs
index af26998..71148ea 100644
--- a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs
+++ b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs
@@ -1832,7 +1832,10 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
1832 agent.InventoryFolder = UUID.Zero; 1832 agent.InventoryFolder = UUID.Zero;
1833 agent.startpos = new Vector3(128, 128, 70); 1833 agent.startpos = new Vector3(128, 128, 70);
1834 agent.child = true; 1834 agent.child = true;
1835 agent.Appearance = sp.Appearance; 1835
1836 //agent.Appearance = sp.Appearance;
1837 agent.Appearance = new AvatarAppearance(sp.Appearance, true, false); // guess this should be a lot less
1838
1836 agent.CapsPath = CapsUtil.GetRandomCapsObjectPath(); 1839 agent.CapsPath = CapsUtil.GetRandomCapsObjectPath();
1837 1840
1838 agent.ChildrenCapSeeds = new Dictionary<ulong, string>(sp.Scene.CapsModule.GetChildrenSeeds(sp.UUID)); 1841 agent.ChildrenCapSeeds = new Dictionary<ulong, string>(sp.Scene.CapsModule.GetChildrenSeeds(sp.UUID));
@@ -1947,7 +1950,8 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
1947 agent.InventoryFolder = UUID.Zero; 1950 agent.InventoryFolder = UUID.Zero;
1948 agent.startpos = sp.AbsolutePosition + CalculateOffset(sp, neighbour); 1951 agent.startpos = sp.AbsolutePosition + CalculateOffset(sp, neighbour);
1949 agent.child = true; 1952 agent.child = true;
1950 agent.Appearance = sp.Appearance; 1953 // agent.Appearance = sp.Appearance;
1954 agent.Appearance = new AvatarAppearance(sp.Appearance, true, false); // guess this should be a lot less
1951 if (currentAgentCircuit != null) 1955 if (currentAgentCircuit != null)
1952 { 1956 {
1953 agent.ServiceURLs = currentAgentCircuit.ServiceURLs; 1957 agent.ServiceURLs = currentAgentCircuit.ServiceURLs;