diff options
-rw-r--r-- | OpenSim/Framework/AvatarAppearance.cs | 13 | ||||
-rw-r--r-- | OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs | 8 |
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; |