aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
authorUbitUmarov2014-08-01 19:52:55 +0100
committerUbitUmarov2014-08-01 19:52:55 +0100
commite296f25445ef5d0fc8d114aed6241da664c57b34 (patch)
treeea62a21e5c46da5b718c57a6d32e39e2a7e1b99e /OpenSim/Region
parenthandle change of hide avatars flag. Parcel limits edition still need work (diff)
downloadopensim-SC_OLD-e296f25445ef5d0fc8d114aed6241da664c57b34.zip
opensim-SC_OLD-e296f25445ef5d0fc8d114aed6241da664c57b34.tar.gz
opensim-SC_OLD-e296f25445ef5d0fc8d114aed6241da664c57b34.tar.bz2
opensim-SC_OLD-e296f25445ef5d0fc8d114aed6241da664c57b34.tar.xz
sitting avatars hidding by their position. This is not as SL that uses
avatar sitting on root prim. All cases have good and bad situations, this is simpler. Only SOG position changes triggers checks, rotation alone will not. ( as happens in other cases ) (UNTESTED, as usual )
Diffstat (limited to 'OpenSim/Region')
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs5
-rw-r--r--OpenSim/Region/Framework/Scenes/ScenePresence.cs36
2 files changed, 40 insertions, 1 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
index ba97c47..28758a9 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
@@ -701,6 +701,11 @@ namespace OpenSim.Region.Framework.Scenes
701 part.GroupPosition = val; 701 part.GroupPosition = val;
702 } 702 }
703 703
704 foreach (ScenePresence av in m_linkedAvatars)
705 {
706 av.sitSOGmoved();
707 }
708
704 // now that position is changed tell it to scripts 709 // now that position is changed tell it to scripts
705 if (triggerScriptEvent) 710 if (triggerScriptEvent)
706 { 711 {
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index ae14af2..494c9e0 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -163,6 +163,7 @@ namespace OpenSim.Region.Framework.Scenes
163 } 163 }
164 m_currentParcelUUID = value; 164 m_currentParcelUUID = value;
165 m_currentParcelHide = false; 165 m_currentParcelHide = false;
166
166 ILandObject land = m_scene.LandChannel.GetLandObject(AbsolutePosition.X, AbsolutePosition.Y); 167 ILandObject land = m_scene.LandChannel.GetLandObject(AbsolutePosition.X, AbsolutePosition.Y);
167 if (land != null && !land.LandData.SeeAVs) 168 if (land != null && !land.LandData.SeeAVs)
168 m_currentParcelHide = true; 169 m_currentParcelHide = true;
@@ -172,6 +173,23 @@ namespace OpenSim.Region.Framework.Scenes
172 } 173 }
173 } 174 }
174 175
176 public void sitSOGmoved()
177 {
178 if (IsDeleted || !IsSatOnObject)
179 //what me? nahh
180 return;
181 if (IsInTransit)
182 return;
183
184 ILandObject land = m_scene.LandChannel.GetLandObject(AbsolutePosition.X, AbsolutePosition.Y);
185 if (land == null)
186 return; //??
187 UUID parcelID = land.LandData.GlobalID;
188 if (m_currentParcelUUID != parcelID)
189 currentParcelUUID = parcelID;
190 }
191
192
175 public bool ParcelAllowThisAvatarSounds 193 public bool ParcelAllowThisAvatarSounds
176 { 194 {
177 get 195 get
@@ -2707,7 +2725,7 @@ namespace OpenSim.Region.Framework.Scenes
2707 2725
2708 if (satOnObject) 2726 if (satOnObject)
2709 { 2727 {
2710 SendAvatarDataToAllAgents(); 2728// SendAvatarDataToAllAgents();
2711 m_requestedSitTargetID = 0; 2729 m_requestedSitTargetID = 0;
2712 2730
2713 part.RemoveSittingAvatar(UUID); 2731 part.RemoveSittingAvatar(UUID);
@@ -2719,6 +2737,22 @@ namespace OpenSim.Region.Framework.Scenes
2719 AddToPhysicalScene(false); 2737 AddToPhysicalScene(false);
2720 2738
2721 Animator.TrySetMovementAnimation("STAND"); 2739 Animator.TrySetMovementAnimation("STAND");
2740
2741 if (satOnObject)
2742 {
2743 ILandObject land = m_scene.LandChannel.GetLandObject(AbsolutePosition.X,AbsolutePosition.Y);
2744 if (land != null)
2745 {
2746 UUID parcelID = land.LandData.GlobalID;
2747 if (m_currentParcelUUID != parcelID)
2748 currentParcelUUID = parcelID;
2749 else
2750 SendAvatarDataToAllAgents();
2751 }
2752 else
2753 SendAvatarDataToAllAgents();
2754 }
2755
2722 TriggerScenePresenceUpdated(); 2756 TriggerScenePresenceUpdated();
2723 } 2757 }
2724 2758