public void MWO_timberwolf_chr() { var args = new string[] { $@"{userHome}\OneDrive\ResourceFiles\timberwolf.chr", "-dds", "-dae", "-objectdir", @"d:\depot\lol\" }; int result = testUtils.argsHandler.ProcessArgs(args); Assert.AreEqual(0, result); CryEngine cryData = new CryEngine(args[0], testUtils.argsHandler.DataDir.FullName); cryData.ProcessCryengineFiles(); COLLADA colladaData = new COLLADA(testUtils.argsHandler, cryData); var daeObject = colladaData.DaeObject; colladaData.GenerateDaeObject(); int actualMaterialsCount = colladaData.DaeObject.Library_Materials.Material.Count(); Assert.AreEqual(11, actualMaterialsCount); Assert.AreEqual("Scene", daeObject.Scene.Visual_Scene.Name); Assert.AreEqual("#Scene", daeObject.Scene.Visual_Scene.URL); // Visual Scene Check Assert.AreEqual(1, daeObject.Library_Visual_Scene.Visual_Scene.Length); Assert.AreEqual("Scene", daeObject.Library_Visual_Scene.Visual_Scene[0].ID); Assert.AreEqual(2, daeObject.Library_Visual_Scene.Visual_Scene[0].Node.Length); // Armature Node check var node = daeObject.Library_Visual_Scene.Visual_Scene[0].Node[0]; Assert.AreEqual("Armature", node.ID); Assert.AreEqual("Bip01", node.sID); Assert.AreEqual("Bip01", node.Name); Assert.AreEqual("JOINT", node.Type.ToString()); Assert.AreEqual("0 -1 0 0 1 0 0 0 0 0 1 0 0 0 0 1", node.Matrix[0].Value_As_String); var pelvisNode = node.node[0]; Assert.AreEqual("Armature_Bip01_Pelvis", pelvisNode.ID); Assert.AreEqual("Bip01_Pelvis", pelvisNode.Name); Assert.AreEqual("Bip01_Pelvis", pelvisNode.sID); Assert.AreEqual("JOINT", pelvisNode.Type.ToString()); Assert.AreEqual("0 1 0 0 0 0 1 -0.000001 1 0 0 8.346858 0 0 0 1", pelvisNode.Matrix[0].Value_As_String); Assert.AreEqual(3, pelvisNode.node.Length); var pitchNode = pelvisNode.node.Where(a => a.ID == "Armature_Bip01_Pitch").FirstOrDefault(); var leftHipNode = pelvisNode.node.Where(a => a.ID == "Armature_Bip01_L_Hip").FirstOrDefault(); var rightHipNode = pelvisNode.node.Where(a => a.ID == "Armature_Bip01_R_Hip").FirstOrDefault(); Assert.IsNotNull(pitchNode); Assert.AreEqual("Bip01_Pitch", pitchNode.sID); Assert.AreEqual("0 0.999753 0.022217 -0.000001 0 -0.022217 0.999753 0 1 0 0 1.627025 0 0 0 1", leftHipNode.Matrix[0].Value_As_String); Assert.AreEqual("0 -0.999753 0.022217 -0.000002 0 0.022217 0.999753 0 -1 0 0 -1.627022 0 0 0 1", rightHipNode.Matrix[0].Value_As_String); Assert.AreEqual("0.452222 0.891861 0.008838 0.779598 -0.891905 0.452200 0.004481 0 0 -0.009909 0.999951 0.000001 0 0 0 1", pitchNode.Matrix[0].Value_As_String); // Geometry Node check node = daeObject.Library_Visual_Scene.Visual_Scene[0].Node[1]; Assert.AreEqual("timberwolf.chr", node.ID); Assert.AreEqual("timberwolf.chr", node.Name); Assert.AreEqual("NODE", node.Type.ToString()); Assert.IsNull(node.Instance_Geometry); Assert.AreEqual(1, node.Instance_Controller.Length); Assert.AreEqual("#Armature", node.Instance_Controller[0].Skeleton[0].Value); // Controller check var controller = daeObject.Library_Controllers.Controller[0]; Assert.AreEqual("Controller", controller.ID); var skin = controller.Skin; Assert.AreEqual("#timberwolf-mesh", skin.source); Assert.AreEqual("1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1", skin.Bind_Shape_Matrix.Value_As_String); Assert.AreEqual(3, skin.Source.Length); var controllerJoints = skin.Source.Where(a => a.ID == "Controller-joints").First(); var controllerBindPose = skin.Source.Where(a => a.ID == "Controller-bind_poses").First(); var controllerWeights = skin.Source.Where(a => a.ID == "Controller-weights").First(); var joints = skin.Joints; Assert.AreEqual(64, controllerJoints.Name_Array.Count); Assert.AreEqual("Controller-joints-array", controllerJoints.Name_Array.ID); var nameArray = controllerJoints.Name_Array.Value(); Assert.AreEqual(64, nameArray.Count()); Assert.IsTrue(nameArray.Contains("Bip01")); Assert.IsTrue(nameArray.Contains("Bip01_L_Thigh")); Assert.IsTrue(nameArray.Contains("Bip01_R_Toe0Nub")); var bindPoseArray = "0 1 0 0 -1 0 0 0 0 0 1 0 0 0 0 1 0 0 1 -8.346858 0 1 0 0.000002 -1 0 0 -0.000001 0 0 0 1 -1 0 0 -1.627027 0 -0.022216 0.999753 -8.344796 0 0.999753 0.022216 -0.185437"; Assert.AreEqual(1024, controllerBindPose.Float_Array.Count); Assert.IsTrue(controllerBindPose.Float_Array.Value_As_String.StartsWith(bindPoseArray));; testUtils.ValidateColladaXml(colladaData); }
public static Int32 Main(string[] args) { Utils.LogLevel = LogLevelEnum.Warning; Utils.DebugLevel = LogLevelEnum.Debug; String oldTitle = Console.Title; ArgsHandler argsHandler = new ArgsHandler(); Int32 result = argsHandler.ProcessArgs(args); if (result == 0) { foreach (String inputFile in argsHandler.InputFiles) { try { // Read CryEngine Files CryEngine cryData = new CryEngine(inputFile, argsHandler.DataDir.FullName); #region Render Output Files //if (argsHandler.Output_Blender == true) //{ // Blender blendFile = new Blender(argsHandler, cryData); // blendFile.Render(argsHandler.OutputDir, argsHandler.InputFiles.Count > 1); //} //if (argsHandler.Output_Wavefront == true) //{ // Wavefront objFile = new Wavefront(argsHandler, cryData); // objFile.Render(argsHandler.OutputDir, argsHandler.InputFiles.Count > 1); //} //if (argsHandler.Output_CryTek == true) //{ // CryRender cryFile = new CryRender(argsHandler, cryData); // cryFile.Render(argsHandler.OutputDir, argsHandler.InputFiles.Count > 1); //} //if (argsHandler.Output_Collada == true) //{ // COLLADA daeFile = new COLLADA(argsHandler, cryData); // daeFile.Render(argsHandler.OutputDir, argsHandler.InputFiles.Count > 1); //} #endregion } catch (Exception ex) { Utils.Log(LogLevelEnum.Critical); Utils.Log(LogLevelEnum.Critical, "********************************************************************************"); Utils.Log(LogLevelEnum.Critical, "There was an error rendering {0}", inputFile); Utils.Log(LogLevelEnum.Critical); Utils.Log(LogLevelEnum.Critical, ex.Message); Utils.Log(LogLevelEnum.Critical); Utils.Log(LogLevelEnum.Critical, ex.StackTrace); Utils.Log(LogLevelEnum.Critical, "********************************************************************************"); Utils.Log(LogLevelEnum.Critical); } } } Console.Title = oldTitle; #if (DEV_DOLKENSP || DEV_MARKEMP) Console.WriteLine("Done..."); Console.ReadKey(); #endif return(result); }
public void MWO_hbr_right_torso_cga() { var args = new string[] { $@"{userHome}\OneDrive\ResourceFiles\hbr_right_torso.cga", "-dds", "-dae", "-objectdir", @"..\..\ResourceFiles\" }; int result = testUtils.argsHandler.ProcessArgs(args); Assert.AreEqual(0, result); CryEngine cryData = new CryEngine(args[0], testUtils.argsHandler.DataDir.FullName); cryData.ProcessCryengineFiles(); var colladaData = new COLLADA(testUtils.argsHandler, cryData); var daeObject = colladaData.DaeObject; colladaData.GenerateDaeObject(); Assert.AreEqual("Scene", daeObject.Scene.Visual_Scene.Name); Assert.AreEqual("#Scene", daeObject.Scene.Visual_Scene.URL); // Visual Scene Check Assert.AreEqual(1, daeObject.Library_Visual_Scene.Visual_Scene.Length); Assert.AreEqual("Scene", daeObject.Library_Visual_Scene.Visual_Scene[0].ID); Assert.AreEqual(1, daeObject.Library_Visual_Scene.Visual_Scene[0].Node.Length); // Node check var node = daeObject.Library_Visual_Scene.Visual_Scene[0].Node[0]; Assert.AreEqual("hbr_right_torso", node.ID); Assert.AreEqual("hbr_right_torso", node.Name); Assert.AreEqual(1, node.Instance_Geometry.Length); Assert.AreEqual(2, node.node.Length); Assert.AreEqual(1, node.Matrix.Length); Assert.AreEqual(1, node.Instance_Geometry.Length); Assert.AreEqual("hbr_right_torso_case", node.node[0].ID); Assert.AreEqual("hbr_right_torso_case", node.node[0].Name); Assert.AreEqual("hbr_right_torso_fx", node.node[1].Name); Assert.AreEqual(Grendgine_Collada_Node_Type.NODE, node.node[0].Type); const string caseMatrix = "-1.000000 -0.000005 0.000008 1.830486 0.000001 -0.866025 -0.500000 -2.444341 0.000009 -0.500000 0.866025 -1.542505 0.000000 0.000000 0.000000 1.000000"; const string fxMatrix = "1.000000 0.000000 0.000009 1.950168 0.000000 1.000000 0.000000 0.630385 -0.000009 0.000000 1.000000 -0.312732 0.000000 0.000000 0.000000 1.000000"; Assert.AreEqual(caseMatrix, node.node[0].Matrix[0].Value_As_String); Assert.AreEqual(fxMatrix, node.node[1].Matrix[0].Value_As_String); // Node Matrix check const string matrix = "1.000000 0.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 0.000000 1.000000"; Assert.AreEqual(matrix, node.Matrix[0].Value_As_String); Assert.AreEqual("transform", node.Matrix[0].sID); // Instance Geometry check Assert.AreEqual("hbr_right_torso", node.Instance_Geometry[0].Name); Assert.AreEqual("#hbr_right_torso-mesh", node.Instance_Geometry[0].URL); Assert.AreEqual(1, node.Instance_Geometry[0].Bind_Material.Length); Assert.AreEqual(1, node.Instance_Geometry[0].Bind_Material[0].Technique_Common.Instance_Material.Length); Assert.AreEqual("hellbringer_body-material", node.Instance_Geometry[0].Bind_Material[0].Technique_Common.Instance_Material[0].Symbol); Assert.AreEqual("#hellbringer_body-material", node.Instance_Geometry[0].Bind_Material[0].Technique_Common.Instance_Material[0].Target); // library_materials Check int actualMaterialsCount = colladaData.DaeObject.Library_Materials.Material.Count(); var materials = colladaData.DaeObject.Library_Materials; Assert.AreEqual(5, actualMaterialsCount); Assert.AreEqual("hellbringer_body-material", materials.Material[0].ID); Assert.AreEqual("decals-material", materials.Material[1].ID); Assert.AreEqual("hellbringer_variant-material", materials.Material[2].ID); Assert.AreEqual("hellbringer_window-material", materials.Material[3].ID); Assert.AreEqual("Material #0-material", materials.Material[4].ID); Assert.AreEqual("#hellbringer_body-effect", materials.Material[0].Instance_Effect.URL); Assert.AreEqual("#decals-effect", materials.Material[1].Instance_Effect.URL); Assert.AreEqual("#hellbringer_variant-effect", materials.Material[2].Instance_Effect.URL); Assert.AreEqual("#hellbringer_window-effect", materials.Material[3].Instance_Effect.URL); Assert.AreEqual("#Material #0-effect", materials.Material[4].Instance_Effect.URL); // library_geometries check Assert.AreEqual(1, colladaData.DaeObject.Library_Geometries.Geometry.Length); var geometry = colladaData.DaeObject.Library_Geometries.Geometry[0]; Assert.AreEqual("hbr_right_torso-mesh", geometry.ID); Assert.AreEqual("hbr_right_torso", geometry.Name); Assert.AreEqual(4, geometry.Mesh.Source.Length); Assert.AreEqual("hbr_right_torso-vertices", geometry.Mesh.Vertices.ID); Assert.AreEqual(1, geometry.Mesh.Triangles.Length); Assert.AreEqual(1908, geometry.Mesh.Triangles[0].Count); var source = geometry.Mesh.Source; var vertices = geometry.Mesh.Vertices; var triangles = geometry.Mesh.Triangles; // Triangles check Assert.AreEqual("hellbringer_body-material", triangles[0].Material); Assert.AreEqual("#hbr_right_torso-mesh-pos", vertices.Input[0].source); Assert.IsTrue(triangles[0].P.Value_As_String.StartsWith("0 0 0 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5 5 5 5 6 6 6 3 3 3 7 7 7 8 8 8 9 9 9 9 9 9")); // Source check Assert.AreEqual("hbr_right_torso-mesh-pos", source[0].ID); Assert.AreEqual("hbr_right_torso-pos", source[0].Name); Assert.AreEqual("hbr_right_torso-mesh-pos-array", source[0].Float_Array.ID); Assert.AreEqual(7035, source[0].Float_Array.Count); var floatArray = source[0].Float_Array.Value_As_String; Assert.IsTrue(floatArray.StartsWith("2.525999 -1.729837 -1.258107 2.526004 -1.863573 -1.080200 2.525999 -1.993050 -1.255200 2.740049 -0.917271 0.684382 2.740053 -0.917271 0.840976 2.793932")); Assert.IsTrue(floatArray.EndsWith("-3.263152 2.340879 -1.480840 -3.231119 2.352005 -1.494859 -3.268093 2.329598 -1.478497 -3.234514 2.335588 -1.491449 -3.273033 2.320036 -1.471824 -3.237391")); Assert.AreEqual((uint)2345, source[0].Technique_Common.Accessor.Count); Assert.AreEqual((uint)0, source[0].Technique_Common.Accessor.Offset); Assert.AreEqual(3, source[0].Technique_Common.Accessor.Param.Length); Assert.AreEqual("X", source[0].Technique_Common.Accessor.Param[0].Name); Assert.AreEqual("float", source[0].Technique_Common.Accessor.Param[0].Type); Assert.AreEqual("hbr_right_torso", daeObject.Library_Visual_Scene.Visual_Scene[0].Node[0].ID); Assert.AreEqual(1, daeObject.Library_Visual_Scene.Visual_Scene[0].Node[0].Instance_Geometry.Length); testUtils.ValidateColladaXml(colladaData); }
public static Int32 Main(String[] args) { Utils.LogLevel = LogLevelEnum.Warning; Utils.DebugLevel = LogLevelEnum.Debug; String oldTitle = Console.Title; #if DEV_DOLKENSP Utils.LogLevel = LogLevelEnum.None; // Display NO error logs Utils.DebugLevel = LogLevelEnum.Debug; args = new String[] { @"O:\Mods\Models\*.cg?", @"O:\Mods\Models\*.skin", @"O:\Mods\Models\*.chr", "-objectdir", @"O:\Mods\SC\Latest", "-tif", "-merge", "-obj", "-outdir", @"O:\Mods\Models\Export" }; args = new String[] { @"O:\Mods\SC\Latest\*.cg?", @"O:\Mods\SC\Latest\*.skin", @"O:\Mods\SC\Latest\*.chr", "-objectdir", @"O:\Mods\SC\Latest", "-tif", "-merge", "-obj", "-outdir", @"O:\Mods\Assets_Out" }; args = new String[] { @"Objects\*.cg?", @"Objects\*.skin", @"Objects\*.chr", "-objectdir", @"O:\Mods\SC\Latest", "-tif", "-merge", "-obj", "-outdir", @"Export" }; // args = new String[] { @"O:\Mods\Assets\*.cg?", "-objectdir", @"O:\Mods\SC\Latest", "-tif", "-merge", "-dae", "-outdir", @"O:\Mods\Assets_Out" }; args = new String[] { @"Objects\*.cg?", @"Objects\*.skin", @"Objects\*.chr", "-objectdir", @"O:\Mods\SC\Latest", "-tif", "-merge", "-obj", "-cry", "-dae", "-outdir", @"Export", "-skipshield", "-skipproxy" }; args = new String[] { @"Starfarer\*.cg?", "-objectdir", @"D:\Workspaces\github\Cryengine-Converter\cgf-converter\bin\dev_dolkensp", "-tif", "-merge", "-obj", "-cry", "-outdir", @"Export", "-skipshield", "-skipproxy" }; #endif #if DEV_MARKEMP Utils.LogLevel = LogLevelEnum.Verbose; // Display ALL error logs in the console Utils.DebugLevel = LogLevelEnum.Debug; // Send all to the IDE Output window //args = new String[] { @"c:\users\geoff\source\repos\cgf-converter\cgf-converter\bin\Debug\raptor.chr", "-dds", "-dae" }; //args = new String[] { @"c:\users\geoff\source\repos\cgf-converter\cgf-converter\bin\Debug\ar03.chr", "-dds", "-dae" }; //args = new String[] { @"D:\depot\mwo\Objects\environments\frontend\mechlab_a\lights\industrial_wetlamp_a.cgf", "-dds", "-dae", "-objectdir", @"d:\depot\mwo\" }; //args = new String[] { @"D:\depot\mwo\Objects\mechs\timberwolf\body\timberwolf.chr", "-dds", "-dae", "-objectdir", @"d:\depot\mwo\" }; //args = new String[] { @"D:\depot\mwo\Objects\mechs\hellbringer\body\hbr_right_torso_uac5_bh1.cga", "-dds", "-dae", "-objectdir", @"d:\depot\mwo\" }; //args = new String[] { @"D:\depot\mwo\Objects\environments\frontend\mechlab_a\mechbay_ceilings\mechbay_ceilinga.cgf", "-dds", "-dae", "-objectdir", @"d:\depot\mwo\" }; args = new String[] { @"D:\depot\mwo\Objects\environments\industrial\mf_maglev_loader_a.cgf", "-dds", "-dae", "-objectdir", @"d:\depot\mwo\" }; //args = new String[] { @"D:\Blender Projects\Mechs\Objects\characters\pilot\pilot_body.chr", "-dds", "-dae", "-objectdir", @"d:\blender projects\mechs\" }; //args = new String[] { @"D:\Blender Projects\Star Citizen\Objects\animals\crab\props\crab_thorshu_prop_01.chr", "-objectdir", @"d:\blender projects\star citizen", "-dae", "-tif" }; //args = new String[] { @"D:\Blender Projects\Star Citizen\Objects\animals\fish\CleanerFish_clean_prop_animal_01.chr", "-objectdir", @"d:\blender projects\star citizen", "-dae", "-tif" }; //args = new String[] { @"d:\Blender Projects\Star Citizen\Objects\Spaceships\Ships\AEGS\Gladius\AEGS_Gladius.cga", "-objectdir", @"d:\blender projects\star citizen", "-dae", "-tif" }; //args = new String[] { @"d:\Blender Projects\Star Citizen\Objects\Spaceships\Ships\AEGS\Retaliator\AEGS_retaliator.cga", "-objectdir", @"d:\blender projects\star citizen", "-dae", "-tif" }; //args = new String[] { @"D:\Blender Projects\Star Citizen\Objects\Spaceships\Ships\AEGS\Redeemer\AEGS_Redeemer.cga", "-objectdir", @"d:\blender projects\star citizen", "-dae", "-tif" }; //args = new String[] { @"D:\Blender Projects\Star Citizen\Objects\Spaceships\Ships\DRAK\Cutlass\DRAK_Cutlass.cga", "-objectdir", @"d:\blender projects\star citizen", "-dae", "-tif" }; //args = new String[] { @"d:\Blender Projects\Star Citizen\Objects\buildingsets\human\lowtech\bravo\grimhex\anchor\anchor_gun_a.cgf", "-objectdir", @"d:\blender projects\star citizen", "-dds", "-dae", "-tif" }; //args = new String[] { @"d:\Blender Projects\Star Citizen\Objects\buildingsets\human\hightech\alpha\ext\landingpad\ext_landingpad_floor_center_stair_16x08x10_b.cgf", "-objectdir", @"d:\blender projects\star citizen", "-dae", "-tif" }; //args = new String[] { @"d:\Blender Projects\Star Citizen\Objects\buildingsets\human\hightech\alpha\ext\landingpad\landingpad_decal_landingzone_a.cgf", "-objectdir", @"d:\blender projects\star citizen", "-dae", "-tif" }; //args = new String[] { @"D:\depot\SC\Objects\Characters\Human\heads\male\npc\male09\male09_t1_head.skin", "-objectdir", @"d:\blender projects\star citizen", "-dae", "-tif" }; //args = new String[] { @"D:\Blender Projects\Star Citizen\Objects\Characters\Human\male_v7\export\bhm_skeleton_v7.chr", "-objectdir", @"d:\blender projects\star citizen", "-dae", "-tif" }; //args = new String[] { @"D:\Blender Projects\Star Citizen\Objects\buildingsets\human\universal\org\trees\tree_ash_a.cgf", "-objectdir", @"d:\blender projects\star citizen", "-dae", "-tif" }; //args = new String[] { @"D:\Blender Projects\Star Citizen\Objects\Characters\Human\male_v7\armor\rsi\m_rsi_pilot_flightsuit_01.skin", "-objectdir", @"d:\blender projects\star citizen\", "-dae", "-tif" }; //args = new String[] { @"D:\Blender Projects\Star Citizen\Objects\Characters\Human\male_v7\armor\slaver\m_slaver_medium_armor_01_core.skin", "-objectdir", @"d:\blender projects\star citizen", "-dae", "-tif" }; //args = new String[] { @"D:\Blender Projects\Mechs\Objects\environments\city\im_roads_zone_05\im_zone05_block16.cgf", "-objectdir", @"d:\blender projects\mechs", "-dae" }; //args = new String[] { @"d:\temp\prey\dahl_genmalebody01.skin", "-objectdir", @"d:\temp\prey", "-dae", "-dds" }; #endif ArgsHandler argsHandler = new ArgsHandler(); Int32 result = argsHandler.ProcessArgs(args); #if !DEBUG try { #endif System.Globalization.CultureInfo customCulture = (System.Globalization.CultureInfo)System.Threading.Thread.CurrentThread.CurrentCulture.Clone(); customCulture.NumberFormat.NumberDecimalSeparator = "."; System.Threading.Thread.CurrentThread.CurrentCulture = customCulture; if (result == 0) { foreach (String inputFile in argsHandler.InputFiles) { try { // Read CryEngine Files CryEngine cryData = new CryEngine(inputFile, argsHandler.DataDir.FullName); #region Render Output Files if (argsHandler.Output_Blender == true) { Blender blendFile = new Blender(argsHandler, cryData); blendFile.Render(argsHandler.OutputDir, argsHandler.InputFiles.Count > 1); } if (argsHandler.Output_Wavefront == true) { Wavefront objFile = new Wavefront(argsHandler, cryData); objFile.Render(argsHandler.OutputDir, argsHandler.InputFiles.Count > 1); } if (argsHandler.Output_CryTek == true) { CryRender cryFile = new CryRender(argsHandler, cryData); cryFile.Render(argsHandler.OutputDir, argsHandler.InputFiles.Count > 1); } if (argsHandler.Output_Collada == true) { COLLADA daeFile = new COLLADA(argsHandler, cryData); daeFile.Render(argsHandler.OutputDir, argsHandler.InputFiles.Count > 1); } #endregion } catch (Exception ex) { Utils.Log(LogLevelEnum.Critical); Utils.Log(LogLevelEnum.Critical, "********************************************************************************"); Utils.Log(LogLevelEnum.Critical, "There was an error rendering {0}", inputFile); Utils.Log(LogLevelEnum.Critical); Utils.Log(LogLevelEnum.Critical, ex.Message); Utils.Log(LogLevelEnum.Critical); Utils.Log(LogLevelEnum.Critical, ex.StackTrace); Utils.Log(LogLevelEnum.Critical, "********************************************************************************"); Utils.Log(LogLevelEnum.Critical); } } } #if !DEBUG } catch (Exception) { if (argsHandler.Throw) { throw; } } #endif Console.Title = oldTitle; #if (DEV_DOLKENSP || DEV_MARKEMP) Console.WriteLine("Done..."); Console.ReadKey(); #endif return(result); }