aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region')
-rw-r--r--OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs1
-rw-r--r--OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs15
-rw-r--r--OpenSim/Region/Framework/Scenes/ScenePresence.cs22
3 files changed, 22 insertions, 16 deletions
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
index d7458b7..4aa19d1 100644
--- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
@@ -5734,6 +5734,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
5734 AvatarWearingArgs wearingArgs = new AvatarWearingArgs(); 5734 AvatarWearingArgs wearingArgs = new AvatarWearingArgs();
5735 for (int i = 0; i < nowWearing.WearableData.Length; i++) 5735 for (int i = 0; i < nowWearing.WearableData.Length; i++)
5736 { 5736 {
5737 m_log.DebugFormat("[XXX]: Wearable type {0} item {1}", nowWearing.WearableData[i].WearableType, nowWearing.WearableData[i].ItemID);
5737 AvatarWearingArgs.Wearable wearable = 5738 AvatarWearingArgs.Wearable wearable =
5738 new AvatarWearingArgs.Wearable(nowWearing.WearableData[i].ItemID, 5739 new AvatarWearingArgs.Wearable(nowWearing.WearableData[i].ItemID,
5739 nowWearing.WearableData[i].WearableType); 5740 nowWearing.WearableData[i].WearableType);
diff --git a/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs b/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs
index 6cbd8bd..7f482cb 100644
--- a/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs
+++ b/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs
@@ -356,17 +356,16 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory
356 356
357// m_log.WarnFormat("[AVATAR FACTORY MODULE]: AvatarIsWearing called for {0}",client.AgentId); 357// m_log.WarnFormat("[AVATAR FACTORY MODULE]: AvatarIsWearing called for {0}",client.AgentId);
358 358
359 AvatarAppearance avatAppearance = new AvatarAppearance(sp.Appearance); 359 AvatarAppearance avatAppearance = new AvatarAppearance(sp.Appearance, false);
360 360
361 foreach (AvatarWearingArgs.Wearable wear in e.NowWearing) 361 foreach (AvatarWearingArgs.Wearable wear in e.NowWearing)
362 { 362 {
363 if (wear.Type < AvatarWearable.MAX_WEARABLES) 363 if (wear.Type < AvatarWearable.MAX_WEARABLES)
364 { 364 avatAppearance.Wearables[wear.Type].Add(wear.ItemID,UUID.Zero);
365 AvatarWearable newWearable = new AvatarWearable(wear.ItemID,UUID.Zero);
366 avatAppearance.SetWearable(wear.Type, newWearable);
367 }
368 } 365 }
369 366
367 avatAppearance.GetAssetsFrom(sp.Appearance);
368
370 // This could take awhile since it needs to pull inventory 369 // This could take awhile since it needs to pull inventory
371 SetAppearanceAssets(sp.UUID, ref avatAppearance); 370 SetAppearanceAssets(sp.UUID, ref avatAppearance);
372 371
@@ -384,6 +383,12 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory
384 { 383 {
385 for (int j = 0 ; j < appearance.Wearables[j].Count ; j ++ ) 384 for (int j = 0 ; j < appearance.Wearables[j].Count ; j ++ )
386 { 385 {
386 if (appearance.Wearables[i][j].ItemID == UUID.Zero)
387 continue;
388
389 // Ignore ruth's assets
390 if (appearance.Wearables[i][j].ItemID == AvatarWearable.DefaultWearables[i][0].ItemID)
391 continue;
387 InventoryItemBase baseItem = new InventoryItemBase(appearance.Wearables[i][j].ItemID, userID); 392 InventoryItemBase baseItem = new InventoryItemBase(appearance.Wearables[i][j].ItemID, userID);
388 baseItem = invService.GetItem(baseItem); 393 baseItem = invService.GetItem(baseItem);
389 394
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index 8aa507f..0390414 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -858,17 +858,6 @@ namespace OpenSim.Region.Framework.Scenes
858 } 858 }
859 AbsolutePosition = pos; 859 AbsolutePosition = pos;
860 860
861 AddToPhysicalScene(isFlying);
862
863 if (m_forceFly)
864 {
865 m_physicsActor.Flying = true;
866 }
867 else if (m_flyDisabled)
868 {
869 m_physicsActor.Flying = false;
870 }
871
872 if (m_appearance != null) 861 if (m_appearance != null)
873 { 862 {
874 if (m_appearance.AvatarHeight > 0) 863 if (m_appearance.AvatarHeight > 0)
@@ -881,6 +870,17 @@ namespace OpenSim.Region.Framework.Scenes
881 m_appearance = new AvatarAppearance(UUID); 870 m_appearance = new AvatarAppearance(UUID);
882 } 871 }
883 872
873 AddToPhysicalScene(isFlying);
874
875 if (m_forceFly)
876 {
877 m_physicsActor.Flying = true;
878 }
879 else if (m_flyDisabled)
880 {
881 m_physicsActor.Flying = false;
882 }
883
884 // Don't send an animation pack here, since on a region crossing this will sometimes cause a flying 884 // Don't send an animation pack here, since on a region crossing this will sometimes cause a flying
885 // avatar to return to the standing position in mid-air. On login it looks like this is being sent 885 // avatar to return to the standing position in mid-air. On login it looks like this is being sent
886 // elsewhere anyway 886 // elsewhere anyway