/// <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; }
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(); }