Example #1
0
        private void PickMesh()
        {
            if (tv2.SelectedNode == null)
            {
                return;
            }
            engineMeshExplorer.ClearScene();
            byte[] data = BF2FileSystem.GetFileFromNode(tv2.SelectedNode);
            if (data == null)
            {
                return;
            }
            string ending = Path.GetExtension(BF2FileSystem.GetPathFromNode(tv2.SelectedNode)).ToLower();

            switch (ending)
            {
            case ".staticmesh":
                BF2StaticMesh stm = new BF2StaticMesh(data);
                engineMeshExplorer.objects.AddRange(stm.ConvertForEngine(engineMeshExplorer, toolStripButton3.Checked, toolStripComboBox1.SelectedIndex));
                break;

            case ".bundledmesh":
                BF2BundledMesh bm = new BF2BundledMesh(data);
                engineMeshExplorer.objects.AddRange(bm.ConvertForEngine(engineMeshExplorer, toolStripButton3.Checked, toolStripComboBox1.SelectedIndex));
                break;

            case ".skinnedmesh":
                BF2SkinnedMesh skm = new BF2SkinnedMesh(data);
                engineMeshExplorer.objects.AddRange(skm.ConvertForEngine(engineMeshExplorer, toolStripButton3.Checked, toolStripComboBox1.SelectedIndex));
                break;

            case ".collisionmesh":
                BF2CollisionMesh cm = new BF2CollisionMesh(data);
                engineMeshExplorer.objects.AddRange(cm.ConvertForEngine(engineMeshExplorer));
                break;

            default:
                RenderObject o = new RenderObject(engineMeshExplorer.device, RenderObject.RenderType.TriListWired, engineMeshExplorer.defaultTexture, engineMeshExplorer);
                o.InitGeometry();
                engineMeshExplorer.objects.Add(o);
                break;
            }
            engineMeshExplorer.ResetCameraDistance();
        }
Example #2
0
        public static void Load()
        {
            Stopwatch sw = new Stopwatch();

            sw.Start();
            objects = new List <BF2LevelObject>();
            engine.ClearScene();
            foreach (BF2LevelObject lo in objects)
            {
                lo.Free();
                GC.Collect();
            }
            objects.Clear();
            engine.textureManager.ClearCache();
            LoadTerrain();
            LoadRoadObjects();
            LoadStaticObjects();
            Log.WriteLine("[BF2 LL] Loaded level in " + sw.ElapsedMilliseconds + "ms");
        }