From 5fab795bf0fd3fe794e4635fc28b295963cfbb9e Mon Sep 17 00:00:00 2001 From: lbsa71 Date: Fri, 21 Sep 2007 05:23:17 +0000 Subject: * Continued work on Region layer * Added Close() to ScenePresence to remove and destroy PhysicsActor --- .../Environment/Scenes/ScenePresence.Animations.cs | 26 ++++++++++++++-------- 1 file changed, 17 insertions(+), 9 deletions(-) (limited to 'OpenSim/Region/Environment/Scenes/ScenePresence.Animations.cs') diff --git a/OpenSim/Region/Environment/Scenes/ScenePresence.Animations.cs b/OpenSim/Region/Environment/Scenes/ScenePresence.Animations.cs index e8f29c8..168a60e 100644 --- a/OpenSim/Region/Environment/Scenes/ScenePresence.Animations.cs +++ b/OpenSim/Region/Environment/Scenes/ScenePresence.Animations.cs @@ -45,20 +45,19 @@ namespace OpenSim.Region.Environment.Scenes public void LoadAnims() { //OpenSim.Framework.Console.MainLog.Instance.Verbose("Avatar.cs:LoadAnims() - Loading avatar animations"); - XmlTextReader reader = new XmlTextReader("data/avataranimations.xml"); - - XmlDocument doc = new XmlDocument(); - doc.Load(reader); - foreach (XmlNode nod in doc.DocumentElement.ChildNodes) + using( XmlTextReader reader = new XmlTextReader("data/avataranimations.xml") ) { - if (nod.Attributes["name"] != null) + XmlDocument doc = new XmlDocument(); + doc.Load(reader); + foreach (XmlNode nod in doc.DocumentElement.ChildNodes) { - AnimsLLUUID.Add(nod.Attributes["name"].Value, nod.InnerText); + if (nod.Attributes["name"] != null) + { + AnimsLLUUID.Add(nod.Attributes["name"].Value, nod.InnerText); + } } } - reader.Close(); - // OpenSim.Framework.Console.MainLog.Instance.Verbose("Loaded " + AnimsLLUUID.Count.ToString() + " animation(s)"); foreach (KeyValuePair kp in Animations.AnimsLLUUID) @@ -67,5 +66,14 @@ namespace OpenSim.Region.Environment.Scenes } } } + + internal void Close() + { + if (m_physicsActor != null) + { + m_scene.PhysScene.RemoveAvatar( PhysicsActor ); + m_physicsActor = null; + } + } } } \ No newline at end of file -- cgit v1.1