diff options
Diffstat (limited to 'OpenSim/Region/Physics/OdePlugin/OdeScene.cs')
-rw-r--r-- | OpenSim/Region/Physics/OdePlugin/OdeScene.cs | 26 |
1 files changed, 21 insertions, 5 deletions
diff --git a/OpenSim/Region/Physics/OdePlugin/OdeScene.cs b/OpenSim/Region/Physics/OdePlugin/OdeScene.cs index da540fa..afe646c 100644 --- a/OpenSim/Region/Physics/OdePlugin/OdeScene.cs +++ b/OpenSim/Region/Physics/OdePlugin/OdeScene.cs | |||
@@ -1703,7 +1703,6 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
1703 | // "[ODE SCENE]: Removing physics character {0} {1} from physics scene {2}", | 1703 | // "[ODE SCENE]: Removing physics character {0} {1} from physics scene {2}", |
1704 | // actor.Name, actor.LocalID, Name); | 1704 | // actor.Name, actor.LocalID, Name); |
1705 | 1705 | ||
1706 | //m_log.Debug("[PHYSICS]:ODELOCK"); | ||
1707 | ((OdeCharacter) actor).Destroy(); | 1706 | ((OdeCharacter) actor).Destroy(); |
1708 | } | 1707 | } |
1709 | 1708 | ||
@@ -1711,11 +1710,12 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
1711 | { | 1710 | { |
1712 | if (!_characters.Contains(chr)) | 1711 | if (!_characters.Contains(chr)) |
1713 | { | 1712 | { |
1714 | // m_log.DebugFormat( | ||
1715 | // "[ODE SCENE]: Adding physics character {0} {1} to physics scene {2}", chr.Name, chr.LocalID, Name); | ||
1716 | |||
1717 | _characters.Add(chr); | 1713 | _characters.Add(chr); |
1718 | 1714 | ||
1715 | // m_log.DebugFormat( | ||
1716 | // "[ODE SCENE]: Adding physics character {0} {1} to physics scene {2}. Count now {3}", | ||
1717 | // chr.Name, chr.LocalID, Name, _characters.Count); | ||
1718 | |||
1719 | if (chr.bad) | 1719 | if (chr.bad) |
1720 | m_log.ErrorFormat("[ODE SCENE]: Added BAD actor {0} to characters list", chr.m_uuid); | 1720 | m_log.ErrorFormat("[ODE SCENE]: Added BAD actor {0} to characters list", chr.m_uuid); |
1721 | } | 1721 | } |
@@ -1730,11 +1730,19 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
1730 | internal void RemoveCharacter(OdeCharacter chr) | 1730 | internal void RemoveCharacter(OdeCharacter chr) |
1731 | { | 1731 | { |
1732 | if (_characters.Contains(chr)) | 1732 | if (_characters.Contains(chr)) |
1733 | { | ||
1733 | _characters.Remove(chr); | 1734 | _characters.Remove(chr); |
1735 | |||
1736 | // m_log.DebugFormat( | ||
1737 | // "[ODE SCENE]: Removing physics character {0} {1} from physics scene {2}. Count now {3}", | ||
1738 | // chr.Name, chr.LocalID, Name, _characters.Count); | ||
1739 | } | ||
1734 | else | 1740 | else |
1741 | { | ||
1735 | m_log.ErrorFormat( | 1742 | m_log.ErrorFormat( |
1736 | "[ODE SCENE]: Tried to remove character {0} {1} but they are not in the list!", | 1743 | "[ODE SCENE]: Tried to remove character {0} {1} but they are not in the list!", |
1737 | chr.Name, chr.LocalID); | 1744 | chr.Name, chr.LocalID); |
1745 | } | ||
1738 | } | 1746 | } |
1739 | 1747 | ||
1740 | private PhysicsActor AddPrim(String name, Vector3 position, Vector3 size, Quaternion rotation, | 1748 | private PhysicsActor AddPrim(String name, Vector3 position, Vector3 size, Quaternion rotation, |
@@ -1772,7 +1780,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
1772 | public override PhysicsActor AddPrimShape(string primName, PrimitiveBaseShape pbs, Vector3 position, | 1780 | public override PhysicsActor AddPrimShape(string primName, PrimitiveBaseShape pbs, Vector3 position, |
1773 | Vector3 size, Quaternion rotation, bool isPhysical, uint localid) | 1781 | Vector3 size, Quaternion rotation, bool isPhysical, uint localid) |
1774 | { | 1782 | { |
1775 | // m_log.DebugFormat("[ODE SCENE]: Adding physics prim {0} {1} to physics scene {2}", primName, localid, Name); | 1783 | m_log.DebugFormat("[ODE SCENE]: Adding physics prim {0} {1} to physics scene {2}", primName, localid, Name); |
1776 | 1784 | ||
1777 | return AddPrim(primName, position, size, rotation, pbs, isPhysical, localid); | 1785 | return AddPrim(primName, position, size, rotation, pbs, isPhysical, localid); |
1778 | } | 1786 | } |
@@ -2762,6 +2770,10 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
2762 | { | 2770 | { |
2763 | foreach (OdeCharacter actor in defects) | 2771 | foreach (OdeCharacter actor in defects) |
2764 | { | 2772 | { |
2773 | m_log.ErrorFormat( | ||
2774 | "[ODE SCENE]: Removing physics character {0} {1} from physics scene {2} due to defect found when moving", | ||
2775 | actor.Name, actor.LocalID, Name); | ||
2776 | |||
2765 | RemoveCharacter(actor); | 2777 | RemoveCharacter(actor); |
2766 | actor.DestroyOdeStructures(); | 2778 | actor.DestroyOdeStructures(); |
2767 | } | 2779 | } |
@@ -2832,6 +2844,10 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
2832 | { | 2844 | { |
2833 | foreach (OdeCharacter actor in defects) | 2845 | foreach (OdeCharacter actor in defects) |
2834 | { | 2846 | { |
2847 | m_log.ErrorFormat( | ||
2848 | "[ODE SCENE]: Removing physics character {0} {1} from physics scene {2} due to defect found when updating position and velocity", | ||
2849 | actor.Name, actor.LocalID, Name); | ||
2850 | |||
2835 | RemoveCharacter(actor); | 2851 | RemoveCharacter(actor); |
2836 | actor.DestroyOdeStructures(); | 2852 | actor.DestroyOdeStructures(); |
2837 | } | 2853 | } |