/// <summary>
        /// Load world files from the old world editor
        /// </summary>
        /// <param name="filename"></param>
        /// <param name="r"></param>
        /// <returns></returns>
        protected WorldRoot LoadOldWorld(string filename, XmlReader r)
        {
            XmlDocument doc = new XmlDocument();
            doc.Load(r);

            string baseName = filename.Substring(filename.LastIndexOf('\\') + 1);
            string worldName = baseName.Substring(0, baseName.LastIndexOf('.'));

            WorldRoot root = new WorldRoot(worldName, worldTreeView, this);
            saveWorldButton.Enabled = true;
            saveWorldToolStripMenuItem.Enabled = true;
            saveWorldAsMenuItem.Enabled = true;
            WorldObjectCollection collection = new WorldObjectCollection(worldName, root, this);

            root.Add(collection);

            foreach (XmlNode childNode in doc.FirstChild.ChildNodes)
            {
                switch (childNode.Name)
                {
                    case "Terrain":
                        LoadOldTerrain(childNode, root);
                        break;
                    case "Skybox":
                        LoadOldSkybox(childNode, root);
                        break;
                    case "Objects":
                        LoadOldObjects(childNode, collection);
                        break;
                }
            }

            setWorldDefaults();
            setRecentFiles(filename);
            return root;
        }