aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectPart.cs19
1 files changed, 15 insertions, 4 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
index f0309e3..f3f63b7 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
@@ -1877,8 +1877,10 @@ if (m_shape != null) {
1877 // always running this check because if the user deletes the object it would return a null reference. 1877 // always running this check because if the user deletes the object it would return a null reference.
1878 if (m_parentGroup == null) 1878 if (m_parentGroup == null)
1879 return; 1879 return;
1880
1880 if (m_parentGroup.Scene == null) 1881 if (m_parentGroup.Scene == null)
1881 return; 1882 return;
1883
1882 SceneObjectPart obj = m_parentGroup.Scene.GetSceneObjectPart(localId); 1884 SceneObjectPart obj = m_parentGroup.Scene.GetSceneObjectPart(localId);
1883 if (obj != null) 1885 if (obj != null)
1884 { 1886 {
@@ -1923,12 +1925,15 @@ if (m_shape != null) {
1923 // always running this check because if the user deletes the object it would return a null reference. 1925 // always running this check because if the user deletes the object it would return a null reference.
1924 if (m_parentGroup == null) 1926 if (m_parentGroup == null)
1925 return; 1927 return;
1928
1926 if (m_parentGroup.Scene == null) 1929 if (m_parentGroup.Scene == null)
1927 return; 1930 return;
1931
1928 m_parentGroup.Scene.EventManager.TriggerScriptCollidingStart(LocalId, StartCollidingMessage); 1932 m_parentGroup.Scene.EventManager.TriggerScriptCollidingStart(LocalId, StartCollidingMessage);
1929 } 1933 }
1930 } 1934 }
1931 } 1935 }
1936
1932 if ((m_parentGroup.RootPart.ScriptEvents & scriptEvents.collision) != 0) 1937 if ((m_parentGroup.RootPart.ScriptEvents & scriptEvents.collision) != 0)
1933 { 1938 {
1934 if (m_lastColliders.Count > 0) 1939 if (m_lastColliders.Count > 0)
@@ -1943,8 +1948,10 @@ if (m_shape != null) {
1943 1948
1944 if (m_parentGroup == null) 1949 if (m_parentGroup == null)
1945 return; 1950 return;
1951
1946 if (m_parentGroup.Scene == null) 1952 if (m_parentGroup.Scene == null)
1947 return; 1953 return;
1954
1948 SceneObjectPart obj = m_parentGroup.Scene.GetSceneObjectPart(localId); 1955 SceneObjectPart obj = m_parentGroup.Scene.GetSceneObjectPart(localId);
1949 if (obj != null) 1956 if (obj != null)
1950 { 1957 {
@@ -1990,13 +1997,15 @@ if (m_shape != null) {
1990 // always running this check because if the user deletes the object it would return a null reference. 1997 // always running this check because if the user deletes the object it would return a null reference.
1991 if (m_parentGroup == null) 1998 if (m_parentGroup == null)
1992 return; 1999 return;
2000
1993 if (m_parentGroup.Scene == null) 2001 if (m_parentGroup.Scene == null)
1994 return; 2002 return;
2003
1995 m_parentGroup.Scene.EventManager.TriggerScriptColliding(LocalId, CollidingMessage); 2004 m_parentGroup.Scene.EventManager.TriggerScriptColliding(LocalId, CollidingMessage);
1996 } 2005 }
1997
1998 } 2006 }
1999 } 2007 }
2008
2000 if ((m_parentGroup.RootPart.ScriptEvents & scriptEvents.collision_end) != 0) 2009 if ((m_parentGroup.RootPart.ScriptEvents & scriptEvents.collision_end) != 0)
2001 { 2010 {
2002 if (endedColliders.Count > 0) 2011 if (endedColliders.Count > 0)
@@ -2048,28 +2057,30 @@ if (m_shape != null) {
2048 colliding.Add(detobj); 2057 colliding.Add(detobj);
2049 } 2058 }
2050 } 2059 }
2051
2052 } 2060 }
2053 } 2061 }
2054 } 2062 }
2063
2055 if (colliding.Count > 0) 2064 if (colliding.Count > 0)
2056 { 2065 {
2057 EndCollidingMessage.Colliders = colliding; 2066 EndCollidingMessage.Colliders = colliding;
2058 // always running this check because if the user deletes the object it would return a null reference. 2067 // always running this check because if the user deletes the object it would return a null reference.
2059 if (m_parentGroup == null) 2068 if (m_parentGroup == null)
2060 return; 2069 return;
2070
2061 if (m_parentGroup.Scene == null) 2071 if (m_parentGroup.Scene == null)
2062 return; 2072 return;
2073
2063 m_parentGroup.Scene.EventManager.TriggerScriptCollidingEnd(LocalId, EndCollidingMessage); 2074 m_parentGroup.Scene.EventManager.TriggerScriptCollidingEnd(LocalId, EndCollidingMessage);
2064 } 2075 }
2065
2066 } 2076 }
2067 } 2077 }
2068 } 2078 }
2069 2079
2070 public void PhysicsOutOfBounds(PhysicsVector pos) 2080 public void PhysicsOutOfBounds(PhysicsVector pos)
2071 { 2081 {
2072 m_log.Info("[PHYSICS]: Physical Object went out of bounds."); 2082 m_log.Error("[PHYSICS]: Physical Object went out of bounds.");
2083
2073 RemFlag(PrimFlags.Physics); 2084 RemFlag(PrimFlags.Physics);
2074 DoPhysicsPropertyUpdate(false, true); 2085 DoPhysicsPropertyUpdate(false, true);
2075 //m_parentGroup.Scene.PhysicsScene.AddPhysicsActorTaint(PhysActor); 2086 //m_parentGroup.Scene.PhysicsScene.AddPhysicsActorTaint(PhysActor);