From 240c0eaf1d8886378829e32a68aa9d2534f31a09 Mon Sep 17 00:00:00 2001
From: Mic Bowman
Date: Wed, 26 Jan 2011 13:33:34 -0800
Subject: Remove the RestorePresences functions (which don't seem to be doing
 anything) and clean up the code in AddNewClient (so Appearance only gets
 assigned once, not three times).

---
 OpenSim/Region/Framework/Scenes/Scene.cs | 77 +++++---------------------------
 1 file changed, 10 insertions(+), 67 deletions(-)

(limited to 'OpenSim/Region/Framework/Scenes/Scene.cs')

diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index 12fd813..71d0f09 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -498,12 +498,6 @@ namespace OpenSim.Region.Framework.Scenes
             get { return m_sceneGraph.Entities; }
         }
 
-        public Dictionary<UUID, ScenePresence> m_restorePresences
-        {
-            get { return m_sceneGraph.RestorePresences; }
-            set { m_sceneGraph.RestorePresences = value; }
-        }
-
         #endregion Properties
 
         #region Constructors
@@ -2483,56 +2477,24 @@ namespace OpenSim.Region.Framework.Scenes
                        (aCircuit.teleportFlags & (uint)Constants.TeleportFlags.ViaLogin) != 0;
 
             CheckHeartbeat();
-            ScenePresence presence;
 
-            if (m_restorePresences.ContainsKey(client.AgentId))
+            if (GetScenePresence(client.AgentId) == null) // ensure there is no SP here
             {
-                m_log.DebugFormat("[SCENE]: Restoring agent {0} {1} in {2}", client.Name, client.AgentId, RegionInfo.RegionName);
+                m_log.Debug("[SCENE]: Adding new agent " + client.Name + " to scene " + RegionInfo.RegionName);
 
                 m_clientManager.Add(client);
                 SubscribeToClientEvents(client);
 
-                presence = m_restorePresences[client.AgentId];
-                m_restorePresences.Remove(client.AgentId);
-
-                // This is one of two paths to create avatars that are
-                // used.  This tends to get called more in standalone
-                // than grid, not really sure why, but as such needs
-                // an explicity appearance lookup here.
-                AvatarAppearance appearance = null;
-                GetAvatarAppearance(client, out appearance);
-                presence.Appearance = appearance;
+                ScenePresence sp = m_sceneGraph.CreateAndAddChildScenePresence(client, aCircuit.Appearance);
+                m_eventManager.TriggerOnNewPresence(sp);
 
-                presence.initializeScenePresence(client, RegionInfo, this);
-
-                m_sceneGraph.AddScenePresence(presence);
-
-                lock (m_restorePresences)
+                // HERE!!! Do the initial attachments right here
+                // first agent upon login is a root agent by design.
+                // All other AddNewClient calls find aCircuit.child to be true
+                if (aCircuit.child == false)
                 {
-                    Monitor.PulseAll(m_restorePresences);
-                }
-            }
-            else
-            {
-                if (GetScenePresence(client.AgentId) == null) // ensure there is no SP here
-                {
-                    m_log.Debug("[SCENE]: Adding new agent " + client.Name + " to scene " + RegionInfo.RegionName);
-
-                    m_clientManager.Add(client);
-                    SubscribeToClientEvents(client);
-
-                    ScenePresence sp = CreateAndAddScenePresence(client);
-                    if (aCircuit != null)
-                        sp.Appearance = aCircuit.Appearance;
-
-                    // HERE!!! Do the initial attachments right here
-                    // first agent upon login is a root agent by design.
-                    // All other AddNewClient calls find aCircuit.child to be true
-                    if (aCircuit == null || (aCircuit != null && aCircuit.child == false))
-                    {
-                        sp.IsChildAgent = false;
-                        Util.FireAndForget(delegate(object o) { sp.RezAttachments(); });
-                    }
+                    sp.IsChildAgent = false;
+                    Util.FireAndForget(delegate(object o) { sp.RezAttachments(); });
                 }
             }
 
@@ -2997,25 +2959,6 @@ namespace OpenSim.Region.Framework.Scenes
         }
 
         /// <summary>
-        /// Create a child agent scene presence and add it to this scene.
-        /// </summary>
-        /// <param name="client"></param>
-        /// <returns></returns>
-        protected virtual ScenePresence CreateAndAddScenePresence(IClientAPI client)
-        {
-            CheckHeartbeat();
-            AvatarAppearance appearance = null;
-            GetAvatarAppearance(client, out appearance);
-
-            ScenePresence avatar = m_sceneGraph.CreateAndAddChildScenePresence(client, appearance);
-            //avatar.KnownRegions = GetChildrenSeeds(avatar.UUID);
-
-            m_eventManager.TriggerOnNewPresence(avatar);
-
-            return avatar;
-        }
-
-        /// <summary>
         /// Get the avatar apperance for the given client.
         /// </summary>
         /// <param name="client"></param>
-- 
cgit v1.1