Пример #1
0
        /// <summary>
        ///     Cargar un escenario de Quake 3
        /// </summary>
        private void loadLevel(string levelFile)
        {
            //Dispose del anterior
            if (bspMap != null)
            {
                bspMap.dispose();
                bspMap = null;
            }

            //Cargar escenario de Quake 3
            var mediaPath = new DirectoryInfo(levelFile).Parent.Parent.FullName + "\\";
            var loader    = new BspLoader();

            bspMap = loader.loadBsp(levelFile, mediaPath);

            //Iniciar visiblidad
            bspMap.initVisibility();

            //Cargar posición inicial del escenario
            bspMap.CollisionManager.initCamera();
            bspMap.CollisionManager.Camera.RotationSpeed = 2f;

            //Acceso a metadata del escenario, por si se quiere obtener alguna información customizada (hay que parsearla)
            var entdata = bspMap.Data.entdata;
        }
Пример #2
0
        public override void Render()
        {
            PreRender();

            //Ver si se seleccionó alguno nivel a empaquetar
            var selectedFile = openFileModifier.Value;

            if (selectedFile != currentFile)
            {
                currentFile = selectedFile;

                //Cargar nivel
                var loader = new BspLoader();
                var bspMap = loader.loadBsp(currentFile, quake3MediaPath);

                //Empaquetar
                var info      = new FileInfo(currentFile);
                var fileName  = info.Name.Substring(0, info.Name.IndexOf('.'));
                var outputDir = info.DirectoryName + "\\" + fileName;

                loader.packLevel(bspMap, quake3MediaPath, outputDir);

                //Librer recursos
                bspMap.dispose();

                MessageBox.Show("Empaquetado almacenado en: " + outputDir, "Result", MessageBoxButtons.OK, MessageBoxIcon.Information);

                DrawText.drawText("Este ejemplo no posee salida gráfica. verificar código y sus comentarios.", 5, 50, Color.OrangeRed);
            }

            PostRender();
        }