Esempio n. 1
0
        /// <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
        }
Esempio n. 2
0
File: Program.cs Progetto: w77/WADex
        /// <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;
                }
            }
        }