/// <summary> /// Main entry point /// </summary> /// <param name="args">arguments</param> private static void Main(string[] args) { #if DEBUG MinVerbosity = Verbosity.Debug; args = new string[] { "E", @"C:\Users\Administrator\Desktop\Games\GZdoom\HellOnEarthStarterPack\hellonearthstarterpack.wad", @"C:\Users\Administrator\Desktop\Games\GZdoom\HellOnEarthStarterPack\HellOnEarth" }; #endif Log(Verbosity.Debug, "Arguments: {0}", string.Join("\t", args)); WADfile WF; if (args.Length < 2) { Log(Verbosity.Debug, "Interpret as Help Request"); Help(args.Length == 1 ? args[0].ToUpper()[0] : ' '); } else if (args.Length == 2) { if (args[0].ToUpper() == "I") { Log(Verbosity.Debug, "Mode I"); if (File.Exists(args[1])) { try { WF = new WADfile(args[1]); } catch (Exception ex) { WF = null; Log(Verbosity.Error, "Error parsing WAD file. Message: {0}", ex.Message); return; } Console.WriteLine(WF.Type.ToString()); Console.WriteLine("NAME\tFILENAME\tOFFSET\tLENGTH\tTYPE\tHASH"); foreach (WADentry e in WF.Entries) { Console.WriteLine("{0}\t{1}\t{2}\t{3}\t{4}\t{5}", e.Name, e.SafeName, e.Offset, e.Length, e.DataType, e.Hash); } } else { Log(Verbosity.Error, "File not found"); } } else if (args[0].ToUpper() == "C") { Log(Verbosity.Debug, "Mode C"); Convert(args[1]); } else { Help(' '); } } else if (args.Length == 3) { switch (args[0].ToUpper()) { case "A": Log(Verbosity.Debug, "Mode A"); if (Directory.Exists(args[2])) { try { WADfile.Assemble(args[1], args[2]); Log(Verbosity.Debug, "Done"); } catch (Exception ex) { WF = null; Log(Verbosity.Error, "Error: {0}", ex.Message); return; } } else { Log(Verbosity.Error, "Directory not found: {0}", args[2]); } break; case "E": Log(Verbosity.Debug, "Mode E"); try { WF = new WADfile(args[1]); } catch (Exception ex) { WF = null; Log(Verbosity.Error, "Error: {0}", ex.Message); return; } if (!Directory.Exists(args[2])) { Log(Verbosity.Log, "Creating Directory: {0}", args[2]); Directory.CreateDirectory(args[2]); } WF.Export(args[2]); Log(Verbosity.Debug, "Done"); break; case "C": Log(Verbosity.Debug, "Mode C"); Convert(args[1], args[2]); break; default: Log(Verbosity.Error, "Invalid Operation: {0}", args[0]); break; } } Log(Verbosity.Debug, "#END"); #if DEBUG Console.ReadKey(true); #endif }
/// <summary> /// Main entry point /// </summary> /// <param name="args">arguments</param> private static void Main(string[] args) { WADfile WF; if (args.Length < 2) { Help(args.Length == 1 ? args[0].ToUpper()[0] : ' '); } else if (args.Length == 2) { if (args[0].ToUpper() == "I") { if (File.Exists(args[1])) { try { WF = new WADfile(args[1]); } catch (Exception ex) { WF = null; Log(ConsoleColor.Red, "Error: {0}", ex.Message); return; } Console.WriteLine(WF.Type.ToString()); Console.WriteLine("NAME;FILENAME;OFFSET;LENGTH;TYPE;HASH"); foreach (WADentry e in WF.Entries) { Console.WriteLine("{0};{1};{2};{3};{4};{5}", e.Name, e.SafeName, e.Offset, e.Length, e.DataType, e.Hash); } } else { Log(ConsoleColor.Red, "File not found"); } } else if (args[0].ToUpper() == "C") { Convert(args[1]); } else { Help(' '); } } else if (args.Length == 3) { switch (args[0].ToUpper()) { case "A": if (Directory.Exists(args[2])) { try { WADfile.Assemble(args[1], args[2]); Console.WriteLine("Done"); } catch (Exception ex) { WF = null; Log(ConsoleColor.Red, "Error: {0}", ex.Message); return; } } else { Log(ConsoleColor.Red, "Directory not found: {0}", args[2]); } break; case "E": try { WF = new WADfile(args[1]); } catch (Exception ex) { WF = null; Log(ConsoleColor.Red, "Error: {0}", ex.Message); return; } if (Directory.Exists(args[2])) { WF.Export(args[2]); Console.WriteLine("Done"); } else { Log(ConsoleColor.Red, "Directory not found: {0}", args[2]); } break; case "C": Convert(args[1], args[2]); break; default: Log(ConsoleColor.Red, "Invalid Operation: {0}", args[0]); break; } } }