Inheritance: WinFormsBase
示例#1
0
        private int HandleCommandLineJumplistCall(string[] args, out int exitCode)
        {
            if (args.Length < 2)
            {
                exitCode = 0;
                return(1);
            }

            string arg = args[1];

            if (arg == "JUMPLIST_PACKAGE_EDITOR")
            {
                PackageEditor editor = new PackageEditor();
                editor.BringToFront();
                editor.Show();
                exitCode = 0;
                return(0);
            }
            if (arg == "JUMPLIST_SEQUENCE_EDITOR")
            {
                SequenceEditor editor = new SequenceEditor();
                editor.BringToFront();
                editor.Show();
                exitCode = 0;
                return(0);
            }
            if (arg == "JUMPLIST_PATHFINDING_EDITOR")
            {
                PathfindingEditor editor = new PathfindingEditor();
                editor.BringToFront();
                editor.Show();
                exitCode = 0;
                return(0);
            }

            string ending = Path.GetExtension(args[1]).ToLower();

            switch (ending)
            {
            case ".pcc":
                PackageEditor editor = new PackageEditor();
                editor.Show();
                editor.LoadFile(args[1]);
                exitCode = 0;
                return(1);
            }
            exitCode = 0;
            return(1);
        }
示例#2
0
        private void openInPackageEditorToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (listView1.SelectedItems.Count == 0)
            {
                return;
            }
            ListViewItem item = listView1.SelectedItems[0];
            TreeNode     t    = TV1.SelectedNode;

            if (t == null)
            {
                return;
            }
            int           l = Convert.ToInt32(item.Name);
            PackageEditor p = new PackageEditor();

            p.MdiParent   = this.MdiParent;
            p.WindowState = FormWindowState.Maximized;
            p.Show();
            p.LoadFile(currentPCC);
            p.goToNumber(l);
        }
示例#3
0
        private bool HandleCommandLineArgs(string[] args, out int exitCode)
        {
            if (args.Length < 2)
            {
                exitCode = 0;
                return(false);
            }
            //automation
            try
            {
                if (args[1].Equals("-dlcinject"))
                {
                    if (args.Length % 2 != 1 || args.Length < 5)
                    {
                        MessageBox.Show("Wrong number of arguments for the -dlcinject switch.:\nSyntax is: <exe> -dlcinject SFARPATH SEARCHTERM NEWFILEPATH [SEARCHTERM2 NEWFILEPATH2]...", "ME3 DLCEditor2 Error", MessageBoxButton.OK, MessageBoxImage.Error);
                        exitCode = 1;
                        return(true);
                    }
                    string dlcFileName = args[2];
                    int    numfiles    = (args.Length - 3) / 2;

                    string[] filesToReplace = new string[numfiles];
                    string[] newFiles       = new string[numfiles];

                    int argnum = 3; //starts at 3
                    for (int i = 0; i < filesToReplace.Length; i++)
                    {
                        filesToReplace[i] = args[argnum];
                        argnum++;
                        newFiles[i] = args[argnum];
                        argnum++;
                    }
                    if (File.Exists(dlcFileName))
                    {
                        DLCPackage dlc = new DLCPackage(dlcFileName);
                        for (int i = 0; i < numfiles; i++)
                        {
                            int idx = dlc.FindFileEntry(filesToReplace[i]);
                            if (idx == -1)
                            {
                                MessageBox.Show("DLCEditor2 automator encountered an error: the file to replace does not exist.", "ME3 DLCEditor2 Error", MessageBoxButton.OK, MessageBoxImage.Error);
                                exitCode = 1;
                                return(true);
                            }
                            dlc.ReplaceEntry(newFiles[i], idx);
                        }
                        exitCode = 0;
                        return(true);
                    }
                    MessageBox.Show("Failed to autoinject: DLC file does not exist: " + dlcFileName, "ME3Explorer DLCEditor2 Error", MessageBoxButton.OK, MessageBoxImage.Error);
                    exitCode = 1;
                    return(true);
                }
                else if (args[1].Equals("-dlcextract"))
                {
                    if (args.Length != 5)
                    {
                        //-2 for me3explorer & -dlcextract
                        MessageBox.Show("Wrong number of arguments for the -dlcextract switch.:\nSyntax is: <exe> -dlcextract SFARPATH SEARCHTERM EXTRACTIONPATH", "ME3 DLCEditor2 Error", MessageBoxButton.OK, MessageBoxImage.Error);
                        exitCode = 1;
                        return(true);
                    }
                    string dlcFileName    = args[2];
                    string searchTerm     = args[3];
                    string extractionPath = args[4];
                    if (File.Exists(dlcFileName))
                    {
                        DLCPackage dlc = new DLCPackage(dlcFileName);
                        int        idx = dlc.FindFileEntry(searchTerm);
                        if (idx == -1)
                        {
                            MessageBox.Show("DLCEditor2 extraction automator encountered an error:\nThe file to replace does not exist or the tree has not been initialized.", "DLCEditor2 Error", MessageBoxButton.OK, MessageBoxImage.Error);
                            exitCode = 1;
                            return(true);
                        }
                        using (FileStream fs = new FileStream(extractionPath, FileMode.Create, FileAccess.Write, FileShare.None, 4096, useAsync: true))
                        {
                            dlc.DecompressEntryAsync(idx, fs).Wait();
                        }
                        exitCode = 0;
                        return(true);
                    }
                    MessageBox.Show("Failed to autoextract: DLC file does not exist: " + dlcFileName, "ME3Explorer DLCEditor2 Error", MessageBoxButton.OK, MessageBoxImage.Error);
                    exitCode = 1;
                    return(true);
                }
                else if (args[1].Equals("-dlcaddfiles"))
                {
                    if (args.Length % 2 != 1 || args.Length < 5)
                    {
                        MessageBox.Show("Wrong number of arguments for the -dlcaddfiles switch.:\nSyntax is: <exe> -dlcinject SFARPATH INTERNALPATH NEWFILEPATH [INTERNALPATH2 NEWFILEPATH2]...", "ME3 DLCEditor2 Error", MessageBoxButton.OK, MessageBoxImage.Error);
                        exitCode = 1;
                        return(true);
                    }

                    string   dlcFileName   = args[2];
                    int      numfiles      = (args.Length - 3) / 2;
                    string[] internalPaths = new string[numfiles];
                    string[] sourcePaths   = new string[numfiles];

                    int argnum = 3; //starts at 3
                    for (int i = 0; i < internalPaths.Length; i++)
                    {
                        internalPaths[i] = args[argnum];
                        argnum++;
                        sourcePaths[i] = args[argnum];
                        argnum++;
                    }

                    if (File.Exists(dlcFileName))
                    {
                        DLCPackage dlc = new DLCPackage(dlcFileName);
                        for (int i = 0; i < internalPaths.Length; i++)
                        {
                            dlc.AddFileQuick(sourcePaths[i], internalPaths[i]);
                        }
                        exitCode = 0;
                        return(true);
                    }
                    MessageBox.Show("Failed to autoadd: DLC file does not exist: " + dlcFileName, "ME3Explorer DLCEditor2 Error", MessageBoxButton.OK, MessageBoxImage.Error);
                    exitCode = 1;
                    return(true);
                }
                else if (args[1].Equals("-dlcremovefiles"))
                {
                    if (args.Length < 4)
                    {
                        //-2 for me3explorer & -dlcextract
                        MessageBox.Show("Wrong number of arguments for the -dlcremovefiles switch.:\nSyntax is: <exe> -dlcinject SFARPATH INTERNALPATH [INTERNALPATH2]...", "ME3 DLCEditor2 Error", MessageBoxButton.OK, MessageBoxImage.Error);
                        exitCode = 1;
                        return(true);
                    }
                    string   dlcFileName   = args[2];
                    int      numfiles      = (args.Length - 3);
                    string[] filesToRemove = new string[numfiles];
                    int      argnum        = 3; //starts at 3
                    for (int i = 0; i < filesToRemove.Length; i++)
                    {
                        filesToRemove[i] = args[argnum];
                        argnum++;
                    }

                    if (File.Exists(dlcFileName))
                    {
                        DLCPackage dlc = new DLCPackage(dlcFileName);
                        for (int i = 0; i < filesToRemove.Length; i++)
                        {
                            int idx = dlc.FindFileEntry(filesToRemove[i]);
                            if (idx == -1)
                            {
                                MessageBox.Show("DLCEditor2 file removal automator encountered an error:\nThe file to remove does not exist or the tree has not been initialized.", "DLCEditor2 Error", MessageBoxButton.OK, MessageBoxImage.Error);
                                exitCode = 1;
                                return(true);
                            }
                            dlc.DeleteEntry(idx);
                        }
                        exitCode = 0;
                        return(true);
                    }
                    MessageBox.Show("Failed to autoremove: DLC file does not exist: " + dlcFileName, "ME3Explorer DLCEditor2 Error", MessageBoxButton.OK, MessageBoxImage.Error);
                    exitCode = 1;
                    return(true);
                }
                else if (args[1].Equals("-dlcunpack") || args[1].Equals("-dlcunpack-nodebug"))
                {
                    if (args.Length != 4)
                    {
                        MessageBox.Show("Wrong number of arguments for automated DLC unpacking:\nSyntax is: <exe> -dlcunpack SFARPATH EXTRACTIONPATH", "ME3 DLCEditor2 Error", MessageBoxButton.OK, MessageBoxImage.Error);
                        exitCode = 1;
                        return(true);
                    }

                    string sfarPath         = args[2];
                    string autoUnpackFolder = args[3];

                    if (File.Exists(sfarPath))
                    {
                        DLCPackage dlc = new DLCPackage(sfarPath);
                        if (args[1].Equals("-dlcunpack"))
                        {
                            //open debugging window since this operation takes a long time.
                            KFreonLib.Debugging.DebugOutput.StartDebugger("DLC Editor 2");
                        }
                        //Simulate Unpack operation click.
                        SFAREditor2.unpackSFAR(dlc);
                        exitCode = 0;
                        return(true);
                    }
                    else
                    {
                        MessageBox.Show("Failed to autounpack: DLC file does not exist: " + sfarPath, "ME3Explorer DLCEditor2 Error", MessageBoxButton.OK, MessageBoxImage.Error);
                        exitCode = 1;
                        return(true);
                    }
                }
                else if (args[1].Equals("-toceditorupdate"))
                {
                    //Legacy command requested by FemShep
                    TOCeditor toc = new TOCeditor();
                    exitCode = toc.updateTOCFromCommandLine(args.Skip(2).ToList());
                    return(true);
                }
                else if (args[1].Equals("-autotoc"))
                {
                    if (args.Length == 2)
                    {
                        AutoTOC.GenerateAllTOCs();
                    }
                    else
                    {
                        AutoTOC.prepareToCreateTOC(args[2]);
                    }
                    exitCode = 0;
                    return(true);
                }
                else if (args[1].Equals("-sfarautotoc"))
                {
                    if (args.Length != 3)
                    {
                        MessageBox.Show("-sfarautotoc command line argument requires at least 1 parameter:\nSFARFILE.sfar", "Automated SFAR TOC Update Fail", MessageBoxButton.OK, MessageBoxImage.Error);
                        exitCode = 1;
                        return(true);
                    }

                    var result = Parallel.For(2, args.Length, i =>
                    {
                        if (args[i].EndsWith(".sfar") && File.Exists(args[i]))
                        {
                            DLCPackage DLC = new DLCPackage(args[2]);
                            DLC.UpdateTOCbin(true);
                        }
                    });
                    exitCode = result.IsCompleted ? 0 : 1;
                    return(true);
                }
                else if (args[1].Equals("-decompresspcc"))
                {
                    if (args.Length != 4)
                    {
                        MessageBox.Show("-decompresspcc command line argument requires 2 parameters:\ninputfile.pcc outputfile.pcc\nBoth arguments can be the same.", "Auto Decompression Error", MessageBoxButton.OK, MessageBoxImage.Error);

                        exitCode = 1;
                        return(true);
                    }
                    exitCode = PCCRepack.autoDecompressPcc(args[2], args[3]);
                    return(true);
                }
                else if (args[1].Equals("-compresspcc"))
                {
                    if (args.Length != 4)
                    {
                        MessageBox.Show("-compresspcc command line argument requires 2 parameters:\ninputfile.pcc outputfile.pcc\nBoth arguments can be the same.", "Auto Compression Error", MessageBoxButton.OK, MessageBoxImage.Error);

                        exitCode = 1;
                        return(true);
                    }
                    exitCode = PCCRepack.autoCompressPcc(args[2], args[3]);
                    return(true);
                }
            }
            catch
            {
                exitCode = 1;
                return(true);
            }

            string ending = Path.GetExtension(args[1]).ToLower();

            switch (ending)
            {
            case ".pcc":
                PackageEditor editor = new PackageEditor();
                editor.Show();
                editor.LoadFile(args[1]);
                break;
            }
            exitCode = 0;
            return(false);
        }
示例#4
0
 private void openInPackageEditorToolStripMenuItem_Click(object sender, EventArgs e)
 {
     int l = CurrentObjects[listBox1.SelectedIndex];
     if (l == -1)
         return;
     PackageEditor p = new PackageEditor();
     p.Show();
     p.LoadFile(CurrentFile);
     p.goToNumber(l);
 }
示例#5
0
        public static void Initialize()
        {
            HashSet<Tool> set = new HashSet<Tool>();

            #region Install Mods
            set.Add(new Tool
            {
                name = "AutoTOC",
                type = typeof(AutoTOC),
                icon = Application.Current.FindResource("iconAutoTOC") as ImageSource,
                open = () =>
                {
                    (new AutoTOC()).Show();
                },
                tags = new List<string> { "user", "toc", "tocing", "crash", "infinite", "loop", "loading" },
                description = "AutoTOC is a tool for ME3 that updates and/or creates the PCConsoleTOC.bin files associated with the base game and each DLC.\n\nRunning this tool upon mod installation is imperative to ensuring proper functionality of the game."
            });
            set.Add(new Tool
            {
                name = "ModMaker",
                type = typeof(ModMaker),
                icon = Application.Current.FindResource("iconModMaker") as ImageSource,
                open = () =>
                {
                    (new ModMaker()).Show();
                },
                tags = new List<string> { "user", "utility", ".mod", "mod", "mesh" },
                subCategory = "Mod Packagers",
                description = "ModMaker is a tool used to create and install files with the \".mod\" extension. MOD files are compatible with ME3 and may be packaged with meshes and other game resources.\n\nAttention: Installation of textures via MOD files is deprecated. Use MM to extract any textures, then install them with TPF Tools, instead."
            });
            set.Add(new Tool
            {
                name = "TPF Tools",
                type = typeof(KFreonTPFTools3),
                icon = Application.Current.FindResource("iconTPFTools") as ImageSource,
                open = () =>
                {
                    (new KFreonTPFTools3()).Show();
                },
                tags = new List<string> { "user", "utility", "texture", "tpf", "dds", "bmp", "jpg", "png" },
                subCategory = "Mod Packagers",
                description = "TPF Tools is the toolset’s primary texture installation utility for users. An alternative to Texmod, TPF Tools allows for permanent insertion of textures into game files. It’s compatible with a variety of texture formats, will help “repair” improperly-formatted textures, and has an assortment of other features.\n\nTPF Tools can also be used by modders to package textures into TPFs for distribution."
            });
            #endregion

            #region Utilities
            set.Add(new Tool
            {
                name = "Animation Explorer",
                type = typeof(AnimationExplorer.AnimationExplorer),
                icon = Application.Current.FindResource("iconAnimationExplorer") as ImageSource,
                open = () =>
                {
                    (new AnimationExplorer.AnimationExplorer()).Show();
                },
                tags = new List<string> { "utility", "animation", "gesture", "bones" },
                subCategory = "Explorers",
            });
            set.Add(new Tool
            {
                name = "Asset Explorer",
                type = typeof(AssetExplorer),
                icon = Application.Current.FindResource("iconAssetExplorer") as ImageSource,
                open = () =>
                {
                    AssetExplorer assExp = new AssetExplorer();
                    assExp.Show();
                    assExp.LoadMe();
                },
                tags = new List<string> { "utility", "novice", "friendly", "user-friendly" },
                subCategory = "Explorers",
                description = "Asset Explorer is a useful utility for newcomers to modding Mass Effect. It allows for the browsing of ME3 PCC files via a somewhat user-friendly GUI.\n\nAttention: this tool is in archival state and may contain features that no longer function.",
            });
            set.Add(new Tool
            {
                name = "Audio Extractor",
                type = typeof(AFCExtract),
                icon = Application.Current.FindResource("iconAudioExtractor") as ImageSource,
                open = () =>
                {
                    (new AFCExtract()).Show();
                },
                tags = new List<string> { "utility", "afc", "music", "ogg", "wav", "sound", "dialogue" },
                subCategory = "Extractors + Repackers",
                description = "Audio Extractor is a utility that extracts sound data from ME3 AFC files."
            });
            set.Add(new Tool
            {
                name = "Bik Movie Extractor",
                type = typeof(BIKExtract),
                icon = Application.Current.FindResource("iconBikExtractor") as ImageSource,
                open = () =>
                {
                    (new BIKExtract()).Show();
                },
                tags = new List<string> { "utility", "bik", "movie" },
                subCategory = "Extractors + Repackers",
                description = "BIK Movie Extractor is a utility for extracting BIK videos from the ME3 Movies.tfc. This file contains small resolution videos played during missions, such as footage of Miranda in Sanctuary.",
            });
            set.Add(new Tool
            {
                name = "Class Viewer",
                type = typeof(ClassViewer.ClassViewer),
                icon = Application.Current.FindResource("iconClassViewer") as ImageSource,
                open = () =>
                {
                    (new ClassViewer.ClassViewer()).Show();
                },
                tags = new List<string> { "utility", "import" },
                subCategory = "Explorers",
            });
            set.Add(new Tool
            {
                name = "Hex Converter",
                type = typeof(HexConverter.Hexconverter),
                icon = Application.Current.FindResource("iconHexConverter") as ImageSource,
                open = () =>
                {
                    string loc = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);
                    if (File.Exists(loc + "\\HexConverter.exe"))
                        Process.Start(loc + "\\HexConverter.exe");
                },
                tags = new List<string> { "utility", "code", "endian" },
                subCategory = "Converters",
                description = "Hex Converter is a utility that converts among floats, signed/unsigned integers, and hex code in big/little endian.",
            });
            set.Add(new Tool
            {
                name = "Image Engine",
                type = typeof(CSharpImageLibrary.MainWindow),
                icon = Application.Current.FindResource("iconImageEngine") as ImageSource,
                open = () =>
                {
                    (new CSharpImageLibrary.MainWindow()).Show();
                },
                tags = new List<string> { "utility", "texture", "convert", "dds", "bmp", "jpg", "png" },
                subCategory = "Converters",
                description = "Image Engine is a texture conversion utility. It supports BMP, JPG, PNG, TGA files, as well as a variety of DDS formats and compressions. Modification to mipmaps are also supported.",
            });
            set.Add(new Tool
            {
                name = "Interp Viewer",
                type = typeof(Matinee.InterpEditor),
                icon = Application.Current.FindResource("iconInterpViewer") as ImageSource,
                open = () =>
                {
                    (new Matinee.InterpEditor()).Show();
                },
                tags = new List<string> { "utility", "dialogue", "matinee", "cutscene", "animcutscene" },
                subCategory = "Explorers",
                description = "Interp Viewer is a simplified version of UDK’s Matinee Editor. It loads interpdata objects and displays their children as tracks on a timeline, allowing the user to visualize the game content associated with a specific scene.\n\nAttention: This tool is a utility; editing is not yet supported."
            });
            set.Add(new Tool
            {
                name = "Level Database",
                type = typeof(LevelExplorer.Levelbase),
                icon = Application.Current.FindResource("iconLevelDatabase") as ImageSource,
                open = () =>
                {
                    (new LevelExplorer.Levelbase()).Show();
                },
                tags = new List<string> { "utility" },
                subCategory = "Databases",
            });
            set.Add(new Tool
            {
                name = "Meshplorer",
                type = typeof(Meshplorer.Meshplorer),
                icon = Application.Current.FindResource("iconMeshplorer") as ImageSource,
                open = () =>
                {
                    (new Meshplorer.Meshplorer()).Show();
                },
                tags = new List<string> { "developer", "mesh" },
                subCategory = "Meshes + Textures",
            });
            set.Add(new Tool
            {
                name = "PCC Repacker",
                type = typeof(PCCRepack),
                icon = Application.Current.FindResource("iconPCCRepacker") as ImageSource,
                open = () =>
                {
                    (new PCCRepack()).Show();
                },
                tags = new List<string> { "utility", "compress", "decompress" },
                subCategory = "Extractors + Repackers",
            });
            set.Add(new Tool
            {
                name = "Plot Database",
                type = typeof(PlotVarDB.PlotVarDB),
                icon = Application.Current.FindResource("iconPlotDatabase") as ImageSource,
                open = () =>
                {
                    (new PlotVarDB.PlotVarDB()).Show();
                },
                tags = new List<string> { "utility", "bool", "boolean", "flag", "int", "integer" },
                subCategory = "Databases",
                description = "Plot Database is a cross-game utility used to store story data associated with plot IDs. The tool comes pre-loaded with a default .db file that can be customized by the user. Never look up a plot bool or integer again!",
            });
            set.Add(new Tool
            {
                name = "Property Database",
                type = typeof(Propertydb.PropertyDB),
                icon = Application.Current.FindResource("iconPropertyDatabase") as ImageSource,
                open = () =>
                {
                    (new Propertydb.PropertyDB()).Show();
                },
                tags = new List<string> { "utility" },
                subCategory = "Databases",
            });
            set.Add(new Tool
            {
                name = "Property Dumper",
                type = typeof(Property_Dumper.PropDumper),
                icon = Application.Current.FindResource("iconPropertyDumper") as ImageSource,
                open = () =>
                {
                    (new Property_Dumper.PropDumper()).Show();
                },
                tags = new List<string> { "utility" },
                subCategory = "Properties",
            });
            set.Add(new Tool
            {
                name = "Property Manager",
                type = typeof(PropertyManager),
                icon = Application.Current.FindResource("iconPropertyManager") as ImageSource,
                open = () =>
                {
                    (new PropertyManager()).Show();
                },
                tags = new List<string> { "utility" },
                subCategory = "Properties",
            });
            set.Add(new Tool
            {
                name = "PSA Viewer",
                type = typeof(PSAViewer),
                icon = Application.Current.FindResource("iconPSAViewer") as ImageSource,
                open = () =>
                {
                    (new PSAViewer()).Show();
                },
                tags = new List<string> { "utility", "mesh", "animation" },
                subCategory = "Explorers",
            });
            set.Add(new Tool
            {
                name = "PSK Viewer",
                type = typeof(PSKViewer.PSKViewer),
                icon = Application.Current.FindResource("iconPSKViewer") as ImageSource,
                open = () =>
                {
                    (new PSKViewer.PSKViewer()).Show();
                },
                tags = new List<string> { "utility", "mesh" },
                subCategory = "Explorers",
            });
            set.Add(new Tool
            {
                name = "ME1 Save Editor",
                type = typeof(ME1Explorer.SaveGameEditor.SaveEditor),
                icon = Application.Current.FindResource("iconSaveGameEditor") as ImageSource,
                open = () =>
                {
                    (new ME1Explorer.SaveGameEditor.SaveEditor()).Show();
                },
                tags = new List<string> { "utility" },
                subCategory = "Saved Games",
            });
            set.Add(new Tool
            {
                name = "ME1 Save Operator",
                type = typeof(ME1Explorer.SaveGameOperator.SaveGameOperator),
                icon = Application.Current.FindResource("iconSaveGameOperator") as ImageSource,
                open = () =>
                {
                    (new ME1Explorer.SaveGameOperator.SaveGameOperator()).Show();
                },
                tags = new List<string> { "utility" },
                subCategory = "Saved Games",
            });
            set.Add(new Tool
            {
                name = "Script Database",
                type = typeof(ScriptDB.ScriptDB),
                icon = Application.Current.FindResource("iconScriptDatabase") as ImageSource,
                open = () =>
                {
                    (new ScriptDB.ScriptDB()).Show();
                },
                tags = new List<string> { "utility" },
                subCategory = "Databases",
            });
            set.Add(new Tool
            {
                name = "Subtitle Scanner",
                type = typeof(SubtitleScanner.SubtitleScanner),
                icon = Application.Current.FindResource("iconSubtitleScanner") as ImageSource,
                open = () =>
                {
                    (new SubtitleScanner.SubtitleScanner()).Show();
                },
                tags = new List<string> { "utility", "dialogue", "text", "line" },
                subCategory = "Explorers",
                description = "Subtitle Scanner is a utility for ME3 that scans game files for all subtitles and displays the results in a searchable dialog.",
            });
            #endregion

            #region Create Mods
            set.Add(new Tool
            {
                name = "Coalesced Editor",
                type = typeof(MassEffect3.CoalesceTool.CoalescedEditor),
                icon = Application.Current.FindResource("iconCoalescedEditor") as ImageSource,
                open = () =>
                {
                    (new MassEffect3.CoalesceTool.CoalescedEditor()).Show();
                },
                tags = new List<string> { "developer", "coalesced", "ini", "bin" },
                subCategory = "Core",
                description = "Coalesced Editor converts between xml and bin formats for ME3 Coalesced.bin files for the base game and DLC. These are key game files that help control a large amount of content.",
            });
            set.Add(new Tool
            {
                name = "Conditionals Editor",
                type = typeof(Conditionals),
                icon = Application.Current.FindResource("iconConditionalsEditor") as ImageSource,
                open = () =>
                {
                    (new Conditionals()).Show();
                },
                tags = new List<string> { "developer", "conditional", "plot", "boolean", "flag", "int", "integer", "cnd" },
                subCategory = "Core",
                description = "Conditionals Editor is used to create and edit ME3 files with the .cnd extension. CND files control game story by checking for specific combinations of plot events.",
            });
            set.Add(new Tool
            {
                name = "Dialogue Editor",
                type = typeof(DialogEditor.DialogEditor),
                icon = Application.Current.FindResource("iconDialogueEditor") as ImageSource,
                open = () =>
                {
                    string result = InputComboBox.GetValue("Which game's files do you want to edit?", new string[] { "ME3", "ME2", "ME1" }, "ME3", true);
                    switch (result)
                    {
                        case "ME3":
                            (new DialogEditor.DialogEditor()).Show();
                            break;
                        case "ME2":
                            (new ME2Explorer.DialogEditor()).Show();
                            break;
                        case "ME1":
                            (new ME1Explorer.DialogEditor()).Show();
                            break;
                    }
                    
                },
                tags = new List<string> { "developer", "me1", "me2", "me3", "cutscene" },
                subCategory = "Scene Shop",
                description = "Dialogue Editor is a cross-game tool used to edit Bioconversation objects, which control the flow of dialogue during a conversation.",
            });
            set.Add(new Tool
            {
                name = "ME2 Dialogue Editor",
                type = typeof(ME2Explorer.DialogEditor),
                icon = Application.Current.FindResource("iconDialogueEditor") as ImageSource,
                tags = new List<string>(),
            });
            set.Add(new Tool
            {
                name = "ME3 Dialogue Editor",
                type = typeof(ME1Explorer.DialogEditor),
                icon = Application.Current.FindResource("iconDialogueEditor") as ImageSource,
                tags = new List<string>(),
            });
            set.Add(new Tool
            {
                name = "FaceFX Editor",
                type = typeof(FaceFX.FaceFXEditor),
                icon = Application.Current.FindResource("iconFaceFXEditor") as ImageSource,
                open = () =>
                {
                    (new FaceFX.FaceFXEditor()).Show();
                },
                tags = new List<string> { "developer", "fxa", "facefx", "lipsync", "fxe", "bones", "animation", "me3", "me3" },
                subCategory = "Scene Shop",
                description = "FaceFX Editor is the toolset’s highly-simplified version of FaceFX Studio. With this tool modders can edit ME3 and ME2 FaceFX AnimSets (FXEs).",
            });
            set.Add(new Tool
            {
                name = "FaceFXAnimSet Editor",
                type = typeof(FaceFX.FaceFXAnimSetEditor),
                icon = Application.Current.FindResource("iconFaceFXAnimSetEditor") as ImageSource,
                open = () =>
                {
                    (new FaceFX.FaceFXAnimSetEditor()).Show();
                    //string result = InputComboBox.GetValue("Which game's files do you want to edit?", new string[] { "ME3", "ME2" }, "ME3", true);
                    //switch (result)
                    //{
                    //    case "ME3":
                    //        (new FaceFX.FaceFXAnimSetEditor()).Show();
                    //        break;
                    //    case "ME2":
                    //        (new ME2Explorer.FaceFXAnimSetEditor()).Show();
                    //        break;
                    //}
                },
                tags = new List<string> { "developer", "fxa", "facefx", "lipsync", "fxe", "bones", "animation" },
                subCategory = "Scene Shop",
                description = "FaceFXAnimSetEditor is the original tool for manipulating FaceFXAnimsets. It will soon be completely replaced by the more complete FaceFX Editor.",
            });
            set.Add(new Tool
            {
                name = "GUID Cache Editor",
                type = typeof(GUIDCacheEditor.GUIDCacheEditor),
                icon = Application.Current.FindResource("iconGUIDCacheEditor") as ImageSource,
                open = () =>
                {
                    (new GUIDCacheEditor.GUIDCacheEditor()).Show();
                },
                tags = new List<string> { "developer" },
                subCategory = "Other",
            });
            set.Add(new Tool
            {
                name = "Interpreter",
                type = typeof(InterpreterHost),
                icon = Application.Current.FindResource("iconInterpreter") as ImageSource,
                tags = new List<string>(),
                subCategory = "Other",
            });
            set.Add(new Tool
            {
                name = "Curve Editor",
                type = typeof(CurveEd.CurveEditor),
                icon = Application.Current.FindResource("iconPlaceholder") as ImageSource,
                tags = new List<string>(),
                subCategory = "Other",
            });
            set.Add(new Tool
            {
                name = "Level Explorer",
                type = typeof(LevelExplorer.LevelEditor.Leveleditor),
                icon = Application.Current.FindResource("iconLevelEditor") as ImageSource,
                open = () =>
                {
                    (new LevelExplorer.LevelEditor.Leveleditor()).Show();
                },
                tags = new List<string> { "developer" },
                subCategory = "Other",
            });
            set.Add(new Tool
            {
                name = "ME3 Creator",
                type = typeof(ME3Creator.Form1),
                icon = Application.Current.FindResource("iconME3Creator") as ImageSource,
                open = () =>
                {
                    string loc = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);
                    if (File.Exists(loc + "\\ME3Creator.exe"))
                    {
                        Process.Start(loc + "\\ME3Creator.exe");
                    }
                },
                tags = new List<string> { "developer", "advanced", "cloning", "import", "export" },
                subCategory = "Core",
                description = "ME3Creator is the toolset’s most advanced modding tool for ME3. It allows for level viewing, intrafile and interfile import and export cloning, re-linking of game objects, and much more.",
            });
            set.Add(new Tool
            {
                name = "Meshplorer 2",
                type = typeof(Meshplorer2.Meshplorer2),
                icon = Application.Current.FindResource("iconMeshplorer2") as ImageSource,
                open = () =>
                {
                    (new Meshplorer2.Meshplorer2()).Show();
                },
                tags = new List<string> { "utility", "mesh" },
                subCategory = "Explorers",
            });
            set.Add(new Tool
            {
                name = "Package Editor",
                type = typeof(PackageEditor),
                icon = Application.Current.FindResource("iconPackageEditor") as ImageSource,
                open = () =>
                {
                    PackageEditor pck = new PackageEditor();
                    pck.Show();
                    pck.LoadMostRecent();
                },
                tags = new List<string> { "developer", "pcc", "cloning", "import", "export", "sfm", "upk", ".u", "me2", "me1", "me3" },
                subCategory = "Core",
                description = "Package Editor is the toolset’s main tool for editing trilogy package files in various formats (PCC, UPK, SFM). Properties, arrays, names, curve data, and more can all be easily added and edited."
            });
            set.Add(new Tool
            {
                name = "Plot Editor",
                type = typeof(MassEffect.NativesEditor.Views.ShellView),
                icon = Application.Current.FindResource("iconPlotEditor") as ImageSource,
                open = () =>
                {
                    var shellView = new MassEffect.NativesEditor.Views.ShellView();
                    shellView.Show();
                },
                tags = new List<string> { "developer", "codex", "state transition", "quest", "natives" },
                subCategory = "Core",
            });
            set.Add(new Tool
            {
                name = "Sequence Editor",
                type = typeof(SequenceEditor),
                icon = Application.Current.FindResource("iconSequenceEditor") as ImageSource,
                open = () =>
                { 
                    (new SequenceEditor()).Show();
                },
                tags = new List<string> { "developer", "kismet", "me1", "me2", "me3" },
                subCategory = "Core",
                description = "Sequence Editor is the toolset’s version of UDK’s UnrealKismet. With this cross-game tool, users can edit and create new sequences that control gameflow within and across levels.",
            });
            set.Add(new Tool
            {
                name = "SFAR Basic Editor",
                type = typeof(SFARBasicEditor),
                icon = Application.Current.FindResource("iconSFARBasicEditor") as ImageSource,
                open = () =>
                {
                    (new SFARBasicEditor()).Show();
                },
                tags = new List<string> { "developer", "dlc" },
                subCategory = "SFARS",
                description = "SFAR Basic Editor loads ME3 DLC SFARs, allowing for exploration and basic edits within a relatively user-friendly GUI.",
            });
            set.Add(new Tool
            {
                name = "SFAR Editor 2",
                type = typeof(SFAREditor2),
                icon = Application.Current.FindResource("iconSFAREditor2") as ImageSource,
                open = () =>
                {
                    (new SFAREditor2()).Show();
                },
                tags = new List<string> { "developer", "dlc" },
                subCategory = "SFARS",
                description = "SFAR Editor 2 is an advanced SFAR exploration and editing tool for ME3. It displays technical data absent from the Basic Editor and contains searching and unpack features.",
            });
            set.Add(new Tool
            {
                name = "Soundplorer",
                type = typeof(Soundplorer),
                icon = Application.Current.FindResource("iconSoundplorer") as ImageSource,
                open = () =>
                {
                    (new Soundplorer()).Show();
                },
                tags = new List<string> { "developer", "audio", "dialogue", "music", "wav", "ogg", "sound" },
                subCategory = "Scene Shop",
                description = "Soundplorer provides access to all Wwisestream and Wwisebank objects inside an ME3 PCC. Sounds can be played within the tool, exported, and changed via import.",
            });
            set.Add(new Tool
            {
                name = "Texplorer",
                type = typeof(Texplorer2),
                icon = Application.Current.FindResource("iconTexplorer") as ImageSource,
                open = () =>
                {
                    (new Texplorer2()).Show();
                },
                tags = new List<string> { "user" ,"developer", "texture", "tfc", "scan", "tree" },
                subCategory = "Meshes + Textures",
                description = "For users and modders alike, Texplorer is the toolset's primary texture tool for the trilogy. Textures are organized into a package tree, and each is displayed with its associated data. Textures can be searched, extracted/replaced, and exported into TPF Tools."
            });
            set.Add(new Tool
            {
                name = "ME3 + ME2 TLK Editor",
                type = typeof(TLKEditor),
                icon = Application.Current.FindResource("iconTLKEditor") as ImageSource,
                open = () =>
                {
                    (new TLKEditor()).Show();
                },
                tags = new List<string> { "developer", "dialogue", "subtitle", "text" },
                subCategory = "Scene Shop",
                description = "TLK Editor converts between XML and TLK formats, allowing users to edit the display of all game text in ME2 and ME3. Edits to the XML files themselves must be done in an external editor, such as Notepad++.",
            });
            set.Add(new Tool
            {
                name = "ME1 TLK Editor",
                type = typeof(TlkManager),
                icon = Application.Current.FindResource("iconTLKEditor") as ImageSource,
                open = () =>
                {
                    (new ME1Explorer.TlkManager(true)).Show();
                },
                tags = new List<string> { "developer", "dialogue", "subtitle", "text" },
                subCategory = "Scene Shop",
                description = "ME1 TLK Editor extracts tlk files from ME1 packages and converts them into xml, allowing users to edit the display of all game text. Edits to the XML files themselves must be done in an external editor, such as Notepad++.",
            });
            set.Add(new Tool
            {
                name = "WwiseBank Editor",
                type = typeof(WwiseBankEditor.WwiseEditor),
                icon = Application.Current.FindResource("iconWwiseBankEditor") as ImageSource,
                open = () =>
                {
                    (new WwiseBankEditor.WwiseEditor()).Show();
                },
                tags = new List<string> { "developer", "dialogue", "text", "line" },
                subCategory = "Scene Shop",
                description = "Wwisebank Editor edits ME3 Wwisebank objects, which contain data references to specific sets of Wwiseevents and Wwisestreams in the PCC. \n\nEditing “the bank” is often necessary when changing game music or when adding new dialogue.",
            });
            set.Add(new Tool
            {
                name = "UDK Explorer",
                type = typeof(UDKExplorer.MainWindow),
                icon = Application.Current.FindResource("iconUDKExplorer") as ImageSource,
                open = () =>
                {
                    string loc = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);
                    if (File.Exists(loc + "\\UDKExplorer.exe"))
                    {
                        Process.Start(loc + "\\UDKExplorer.exe");
                    }
                },
                tags = new List<string> { "developer" },
                subCategory = "Other",
                description = "Edits .udk and .upk files created by the UDK."
            });
            #endregion

            items = set;

            loadFavorites();
        }
示例#6
0
 private void openInPackageEditorToolStripMenuItem_Click(object sender, EventArgs e)
 {
     if (listView1.SelectedItems.Count == 0)
         return;
     ListViewItem item = listView1.SelectedItems[0];
     TreeNode t = TV1.SelectedNode;
     if (t == null)
         return;
     int l = Convert.ToInt32(item.Name);
     PackageEditor p = new PackageEditor();
     p.MdiParent = this.MdiParent;
     p.WindowState = FormWindowState.Maximized;
     p.Show();
     p.LoadFile(currentPCC);
     p.goToNumber(l);
 }
示例#7
0
        public static void Initialize()
        {
            HashSet <Tool> set = new HashSet <Tool>();

            #region Install Mods
            set.Add(new Tool
            {
                name = "AutoTOC",
                type = typeof(AutoTOC),
                icon = Application.Current.FindResource("iconAutoTOC") as ImageSource,
                open = () =>
                {
                    (new AutoTOC()).Show();
                },
                tags = new List <string> {
                    "user", "toc", "tocing", "crash", "infinite", "loop", "loading"
                },
                description = "AutoTOC is a tool for ME3 that updates and/or creates the PCConsoleTOC.bin files associated with the base game and each DLC.\n\nRunning this tool upon mod installation is imperative to ensuring proper functionality of the game."
            });
            set.Add(new Tool
            {
                name = "ModMaker",
                type = typeof(ModMaker),
                icon = Application.Current.FindResource("iconModMaker") as ImageSource,
                open = () =>
                {
                    (new ModMaker()).Show();
                },
                tags = new List <string> {
                    "user", "utility", ".mod", "mod", "mesh"
                },
                subCategory = "Mod Packagers",
                description = "ModMaker is a tool used to create and install files with the \".mod\" extension. MOD files are compatible with ME3 and may be packaged with meshes and other game resources.\n\nAttention: Installation of textures via MOD files is deprecated. Use MM to extract any textures, then install them with TPF Tools, instead."
            });
            set.Add(new Tool
            {
                name = "TPF Tools",
                type = typeof(KFreonTPFTools3),
                icon = Application.Current.FindResource("iconTPFTools") as ImageSource,
                open = () =>
                {
                    (new KFreonTPFTools3()).Show();
                },
                tags = new List <string> {
                    "user", "utility", "texture", "tpf", "dds", "bmp", "jpg", "png"
                },
                subCategory = "Mod Packagers",
                description = "TPF Tools is the toolset’s primary texture installation utility for users. An alternative to Texmod, TPF Tools allows for permanent insertion of textures into game files. It’s compatible with a variety of texture formats, will help “repair” improperly-formatted textures, and has an assortment of other features.\n\nTPF Tools can also be used by modders to package textures into TPFs for distribution."
            });
            #endregion

            #region Utilities
            set.Add(new Tool
            {
                name = "Animation Explorer",
                type = typeof(AnimationExplorer.AnimationExplorer),
                icon = Application.Current.FindResource("iconAnimationExplorer") as ImageSource,
                open = () =>
                {
                    (new AnimationExplorer.AnimationExplorer()).Show();
                },
                tags = new List <string> {
                    "utility", "animation", "gesture", "bones"
                },
                subCategory = "Explorers",
            });
            set.Add(new Tool
            {
                name = "Asset Explorer",
                type = typeof(AssetExplorer),
                icon = Application.Current.FindResource("iconAssetExplorer") as ImageSource,
                open = () =>
                {
                    AssetExplorer assExp = new AssetExplorer();
                    assExp.Show();
                    assExp.LoadMe();
                },
                tags = new List <string> {
                    "utility", "novice", "friendly", "user-friendly"
                },
                subCategory = "Explorers",
                description = "Asset Explorer is a useful utility for newcomers to modding Mass Effect. It allows for the browsing of ME3 PCC files via a somewhat user-friendly GUI.\n\nAttention: this tool is in archival state and may contain features that no longer function.",
            });
            set.Add(new Tool
            {
                name = "Audio Extractor",
                type = typeof(AFCExtract),
                icon = Application.Current.FindResource("iconAudioExtractor") as ImageSource,
                open = () =>
                {
                    (new AFCExtract()).Show();
                },
                tags = new List <string> {
                    "utility", "afc", "music", "ogg", "wav", "sound", "dialogue"
                },
                subCategory = "Extractors + Repackers",
                description = "Audio Extractor is a utility that extracts sound data from ME3 AFC files."
            });
            set.Add(new Tool
            {
                name = "Bik Movie Extractor",
                type = typeof(BIKExtract),
                icon = Application.Current.FindResource("iconBikExtractor") as ImageSource,
                open = () =>
                {
                    (new BIKExtract()).Show();
                },
                tags = new List <string> {
                    "utility", "bik", "movie"
                },
                subCategory = "Extractors + Repackers",
                description = "BIK Movie Extractor is a utility for extracting BIK videos from the ME3 Movies.tfc. This file contains small resolution videos played during missions, such as footage of Miranda in Sanctuary.",
            });
            set.Add(new Tool
            {
                name = "Class Viewer",
                type = typeof(ClassViewer.ClassViewer),
                icon = Application.Current.FindResource("iconClassViewer") as ImageSource,
                open = () =>
                {
                    (new ClassViewer.ClassViewer()).Show();
                },
                tags = new List <string> {
                    "utility", "import"
                },
                subCategory = "Explorers",
            });
            set.Add(new Tool
            {
                name = "Hex Converter",
                type = typeof(HexConverter.Hexconverter),
                icon = Application.Current.FindResource("iconHexConverter") as ImageSource,
                open = () =>
                {
                    string loc = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);
                    if (File.Exists(loc + "\\HexConverter.exe"))
                    {
                        Process.Start(loc + "\\HexConverter.exe");
                    }
                },
                tags = new List <string> {
                    "utility", "code", "endian"
                },
                subCategory = "Converters",
                description = "Hex Converter is a utility that converts among floats, signed/unsigned integers, and hex code in big/little endian.",
            });
            set.Add(new Tool
            {
                name = "Image Engine",
                type = typeof(CSharpImageLibrary.MainWindow),
                icon = Application.Current.FindResource("iconImageEngine") as ImageSource,
                open = () =>
                {
                    (new CSharpImageLibrary.MainWindow()).Show();
                },
                tags = new List <string> {
                    "utility", "texture", "convert", "dds", "bmp", "jpg", "png"
                },
                subCategory = "Converters",
                description = "Image Engine is a texture conversion utility. It supports BMP, JPG, PNG, TGA files, as well as a variety of DDS formats and compressions. Modification to mipmaps are also supported.",
            });
            set.Add(new Tool
            {
                name = "Interp Viewer",
                type = typeof(Matinee.InterpEditor),
                icon = Application.Current.FindResource("iconInterpViewer") as ImageSource,
                open = () =>
                {
                    (new Matinee.InterpEditor()).Show();
                },
                tags = new List <string> {
                    "utility", "dialogue", "matinee", "cutscene", "animcutscene"
                },
                subCategory = "Explorers",
                description = "Interp Viewer is a simplified version of UDK’s Matinee Editor. It loads interpdata objects and displays their children as tracks on a timeline, allowing the user to visualize the game content associated with a specific scene.\n\nAttention: This tool is a utility; editing is not yet supported."
            });
            set.Add(new Tool
            {
                name = "Level Database",
                type = typeof(LevelExplorer.Levelbase),
                icon = Application.Current.FindResource("iconLevelDatabase") as ImageSource,
                open = () =>
                {
                    (new LevelExplorer.Levelbase()).Show();
                },
                tags = new List <string> {
                    "utility"
                },
                subCategory = "Databases",
            });
            set.Add(new Tool
            {
                name = "Meshplorer",
                type = typeof(Meshplorer.Meshplorer),
                icon = Application.Current.FindResource("iconMeshplorer") as ImageSource,
                open = () =>
                {
                    (new Meshplorer.Meshplorer()).Show();
                },
                tags = new List <string> {
                    "developer", "mesh"
                },
                subCategory = "Meshes + Textures",
            });
            set.Add(new Tool
            {
                name = "PCC Repacker",
                type = typeof(PCCRepack),
                icon = Application.Current.FindResource("iconPCCRepacker") as ImageSource,
                open = () =>
                {
                    (new PCCRepack()).Show();
                },
                tags = new List <string> {
                    "utility", "compress", "decompress"
                },
                subCategory = "Extractors + Repackers",
            });
            set.Add(new Tool
            {
                name = "Plot Database",
                type = typeof(PlotVarDB.PlotVarDB),
                icon = Application.Current.FindResource("iconPlotDatabase") as ImageSource,
                open = () =>
                {
                    (new PlotVarDB.PlotVarDB()).Show();
                },
                tags = new List <string> {
                    "utility", "bool", "boolean", "flag", "int", "integer"
                },
                subCategory = "Databases",
                description = "Plot Database is a cross-game utility used to store story data associated with plot IDs. The tool comes pre-loaded with a default .db file that can be customized by the user. Never look up a plot bool or integer again!",
            });
            set.Add(new Tool
            {
                name = "Property Database",
                type = typeof(Propertydb.PropertyDB),
                icon = Application.Current.FindResource("iconPropertyDatabase") as ImageSource,
                open = () =>
                {
                    (new Propertydb.PropertyDB()).Show();
                },
                tags = new List <string> {
                    "utility"
                },
                subCategory = "Databases",
            });
            set.Add(new Tool
            {
                name = "Property Dumper",
                type = typeof(Property_Dumper.PropDumper),
                icon = Application.Current.FindResource("iconPropertyDumper") as ImageSource,
                open = () =>
                {
                    (new Property_Dumper.PropDumper()).Show();
                },
                tags = new List <string> {
                    "utility"
                },
                subCategory = "Properties",
            });
            set.Add(new Tool
            {
                name = "Property Manager",
                type = typeof(PropertyManager),
                icon = Application.Current.FindResource("iconPropertyManager") as ImageSource,
                open = () =>
                {
                    (new PropertyManager()).Show();
                },
                tags = new List <string> {
                    "utility"
                },
                subCategory = "Properties",
            });
            set.Add(new Tool
            {
                name = "PSA Viewer",
                type = typeof(PSAViewer),
                icon = Application.Current.FindResource("iconPSAViewer") as ImageSource,
                open = () =>
                {
                    (new PSAViewer()).Show();
                },
                tags = new List <string> {
                    "utility", "mesh", "animation"
                },
                subCategory = "Explorers",
            });
            set.Add(new Tool
            {
                name = "PSK Viewer",
                type = typeof(PSKViewer.PSKViewer),
                icon = Application.Current.FindResource("iconPSKViewer") as ImageSource,
                open = () =>
                {
                    (new PSKViewer.PSKViewer()).Show();
                },
                tags = new List <string> {
                    "utility", "mesh"
                },
                subCategory = "Explorers",
            });
            set.Add(new Tool
            {
                name = "ME1 Save Editor",
                type = typeof(ME1Explorer.SaveGameEditor.SaveEditor),
                icon = Application.Current.FindResource("iconSaveGameEditor") as ImageSource,
                open = () =>
                {
                    (new ME1Explorer.SaveGameEditor.SaveEditor()).Show();
                },
                tags = new List <string> {
                    "utility"
                },
                subCategory = "Saved Games",
            });
            set.Add(new Tool
            {
                name = "ME1 Save Operator",
                type = typeof(ME1Explorer.SaveGameOperator.SaveGameOperator),
                icon = Application.Current.FindResource("iconSaveGameOperator") as ImageSource,
                open = () =>
                {
                    (new ME1Explorer.SaveGameOperator.SaveGameOperator()).Show();
                },
                tags = new List <string> {
                    "utility"
                },
                subCategory = "Saved Games",
            });
            set.Add(new Tool
            {
                name = "Script Database",
                type = typeof(ScriptDB.ScriptDB),
                icon = Application.Current.FindResource("iconScriptDatabase") as ImageSource,
                open = () =>
                {
                    (new ScriptDB.ScriptDB()).Show();
                },
                tags = new List <string> {
                    "utility"
                },
                subCategory = "Databases",
            });
            set.Add(new Tool
            {
                name = "Subtitle Scanner",
                type = typeof(SubtitleScanner.SubtitleScanner),
                icon = Application.Current.FindResource("iconSubtitleScanner") as ImageSource,
                open = () =>
                {
                    (new SubtitleScanner.SubtitleScanner()).Show();
                },
                tags = new List <string> {
                    "utility", "dialogue", "text", "line"
                },
                subCategory = "Explorers",
                description = "Subtitle Scanner is a utility for ME3 that scans game files for all subtitles and displays the results in a searchable dialog.",
            });
            #endregion

            #region Create Mods
            set.Add(new Tool
            {
                name = "Coalesced Editor",
                type = typeof(MassEffect3.CoalesceTool.CoalescedEditor),
                icon = Application.Current.FindResource("iconCoalescedEditor") as ImageSource,
                open = () =>
                {
                    (new MassEffect3.CoalesceTool.CoalescedEditor()).Show();
                },
                tags = new List <string> {
                    "developer", "coalesced", "ini", "bin"
                },
                subCategory = "Core",
                description = "Coalesced Editor converts between xml and bin formats for ME3 Coalesced.bin files for the base game and DLC. These are key game files that help control a large amount of content.",
            });
            set.Add(new Tool
            {
                name = "Conditionals Editor",
                type = typeof(Conditionals),
                icon = Application.Current.FindResource("iconConditionalsEditor") as ImageSource,
                open = () =>
                {
                    (new Conditionals()).Show();
                },
                tags = new List <string> {
                    "developer", "conditional", "plot", "boolean", "flag", "int", "integer", "cnd"
                },
                subCategory = "Core",
                description = "Conditionals Editor is used to create and edit ME3 files with the .cnd extension. CND files control game story by checking for specific combinations of plot events.",
            });
            set.Add(new Tool
            {
                name = "Dialogue Editor",
                type = typeof(DialogEditor.DialogEditor),
                icon = Application.Current.FindResource("iconDialogueEditor") as ImageSource,
                open = () =>
                {
                    string result = InputComboBox.GetValue("Which game's files do you want to edit?", new string[] { "ME3", "ME2", "ME1" }, "ME3", true);
                    switch (result)
                    {
                    case "ME3":
                        (new DialogEditor.DialogEditor()).Show();
                        break;

                    case "ME2":
                        (new ME2Explorer.DialogEditor()).Show();
                        break;

                    case "ME1":
                        (new ME1Explorer.DialogEditor()).Show();
                        break;
                    }
                },
                tags = new List <string> {
                    "developer", "me1", "me2", "me3", "cutscene"
                },
                subCategory = "Scene Shop",
                description = "Dialogue Editor is a cross-game tool used to edit Bioconversation objects, which control the flow of dialogue during a conversation.",
            });
            set.Add(new Tool
            {
                name = "ME2 Dialogue Editor",
                type = typeof(ME2Explorer.DialogEditor),
                icon = Application.Current.FindResource("iconDialogueEditor") as ImageSource,
                tags = new List <string>(),
            });
            set.Add(new Tool
            {
                name = "ME3 Dialogue Editor",
                type = typeof(ME1Explorer.DialogEditor),
                icon = Application.Current.FindResource("iconDialogueEditor") as ImageSource,
                tags = new List <string>(),
            });
            set.Add(new Tool
            {
                name = "FaceFX Editor",
                type = typeof(FaceFX.FaceFXEditor),
                icon = Application.Current.FindResource("iconFaceFXEditor") as ImageSource,
                open = () =>
                {
                    (new FaceFX.FaceFXEditor()).Show();
                },
                tags = new List <string> {
                    "developer", "fxa", "facefx", "lipsync", "fxe", "bones", "animation", "me3", "me3"
                },
                subCategory = "Scene Shop",
                description = "FaceFX Editor is the toolset’s highly-simplified version of FaceFX Studio. With this tool modders can edit ME3 and ME2 FaceFX AnimSets (FXEs).",
            });
            set.Add(new Tool
            {
                name = "FaceFXAnimSet Editor",
                type = typeof(FaceFX.FaceFXAnimSetEditor),
                icon = Application.Current.FindResource("iconFaceFXAnimSetEditor") as ImageSource,
                open = () =>
                {
                    (new FaceFX.FaceFXAnimSetEditor()).Show();
                    //string result = InputComboBox.GetValue("Which game's files do you want to edit?", new string[] { "ME3", "ME2" }, "ME3", true);
                    //switch (result)
                    //{
                    //    case "ME3":
                    //        (new FaceFX.FaceFXAnimSetEditor()).Show();
                    //        break;
                    //    case "ME2":
                    //        (new ME2Explorer.FaceFXAnimSetEditor()).Show();
                    //        break;
                    //}
                },
                tags = new List <string> {
                    "developer", "fxa", "facefx", "lipsync", "fxe", "bones", "animation"
                },
                subCategory = "Scene Shop",
                description = "FaceFXAnimSetEditor is the original tool for manipulating FaceFXAnimsets. It will soon be completely replaced by the more complete FaceFX Editor.",
            });
            set.Add(new Tool
            {
                name = "GUID Cache Editor",
                type = typeof(GUIDCacheEditor.GUIDCacheEditor),
                icon = Application.Current.FindResource("iconGUIDCacheEditor") as ImageSource,
                open = () =>
                {
                    (new GUIDCacheEditor.GUIDCacheEditor()).Show();
                },
                tags = new List <string> {
                    "developer"
                },
                subCategory = "Other",
            });
            set.Add(new Tool
            {
                name        = "Interpreter",
                type        = typeof(InterpreterHost),
                icon        = Application.Current.FindResource("iconInterpreter") as ImageSource,
                tags        = new List <string>(),
                subCategory = "Other",
            });
            set.Add(new Tool
            {
                name        = "Curve Editor",
                type        = typeof(CurveEd.CurveEditor),
                icon        = Application.Current.FindResource("iconPlaceholder") as ImageSource,
                tags        = new List <string>(),
                subCategory = "Other",
            });
            set.Add(new Tool
            {
                name = "Level Explorer",
                type = typeof(LevelExplorer.LevelEditor.Leveleditor),
                icon = Application.Current.FindResource("iconLevelEditor") as ImageSource,
                open = () =>
                {
                    (new LevelExplorer.LevelEditor.Leveleditor()).Show();
                },
                tags = new List <string> {
                    "developer"
                },
                subCategory = "Other",
            });
            set.Add(new Tool
            {
                name = "ME3 Creator",
                type = typeof(ME3Creator.Form1),
                icon = Application.Current.FindResource("iconME3Creator") as ImageSource,
                open = () =>
                {
                    string loc = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);
                    if (File.Exists(loc + "\\ME3Creator.exe"))
                    {
                        Process.Start(loc + "\\ME3Creator.exe");
                    }
                },
                tags = new List <string> {
                    "developer", "advanced", "cloning", "import", "export"
                },
                subCategory = "Core",
                description = "ME3Creator is the toolset’s most advanced modding tool for ME3. It allows for level viewing, intrafile and interfile import and export cloning, re-linking of game objects, and much more.",
            });
            set.Add(new Tool
            {
                name = "Meshplorer 2",
                type = typeof(Meshplorer2.Meshplorer2),
                icon = Application.Current.FindResource("iconMeshplorer2") as ImageSource,
                open = () =>
                {
                    (new Meshplorer2.Meshplorer2()).Show();
                },
                tags = new List <string> {
                    "utility", "mesh"
                },
                subCategory = "Explorers",
            });
            set.Add(new Tool
            {
                name = "Package Editor",
                type = typeof(PackageEditor),
                icon = Application.Current.FindResource("iconPackageEditor") as ImageSource,
                open = () =>
                {
                    PackageEditor pck = new PackageEditor();
                    pck.Show();
                    pck.LoadMostRecent();
                },
                tags = new List <string> {
                    "developer", "pcc", "cloning", "import", "export", "sfm", "upk", ".u", "me2", "me1", "me3"
                },
                subCategory = "Core",
                description = "Package Editor is the toolset’s main tool for editing trilogy package files in various formats (PCC, UPK, SFM). Properties, arrays, names, curve data, and more can all be easily added and edited."
            });
            set.Add(new Tool
            {
                name = "Plot Editor",
                type = typeof(MassEffect.NativesEditor.Views.ShellView),
                icon = Application.Current.FindResource("iconPlotEditor") as ImageSource,
                open = () =>
                {
                    var shellView = new MassEffect.NativesEditor.Views.ShellView();
                    shellView.Show();
                },
                tags = new List <string> {
                    "developer", "codex", "state transition", "quest", "natives"
                },
                subCategory = "Core",
            });
            set.Add(new Tool
            {
                name = "Sequence Editor",
                type = typeof(SequenceEditor),
                icon = Application.Current.FindResource("iconSequenceEditor") as ImageSource,
                open = () =>
                {
                    (new SequenceEditor()).Show();
                },
                tags = new List <string> {
                    "developer", "kismet", "me1", "me2", "me3"
                },
                subCategory = "Core",
                description = "Sequence Editor is the toolset’s version of UDK’s UnrealKismet. With this cross-game tool, users can edit and create new sequences that control gameflow within and across levels.",
            });
            set.Add(new Tool
            {
                name = "SFAR Basic Editor",
                type = typeof(SFARBasicEditor),
                icon = Application.Current.FindResource("iconSFARBasicEditor") as ImageSource,
                open = () =>
                {
                    (new SFARBasicEditor()).Show();
                },
                tags = new List <string> {
                    "developer", "dlc"
                },
                subCategory = "SFARS",
                description = "SFAR Basic Editor loads ME3 DLC SFARs, allowing for exploration and basic edits within a relatively user-friendly GUI.",
            });
            set.Add(new Tool
            {
                name = "SFAR Editor 2",
                type = typeof(SFAREditor2),
                icon = Application.Current.FindResource("iconSFAREditor2") as ImageSource,
                open = () =>
                {
                    (new SFAREditor2()).Show();
                },
                tags = new List <string> {
                    "developer", "dlc"
                },
                subCategory = "SFARS",
                description = "SFAR Editor 2 is an advanced SFAR exploration and editing tool for ME3. It displays technical data absent from the Basic Editor and contains searching and unpack features.",
            });
            set.Add(new Tool
            {
                name = "Soundplorer",
                type = typeof(Soundplorer),
                icon = Application.Current.FindResource("iconSoundplorer") as ImageSource,
                open = () =>
                {
                    (new Soundplorer()).Show();
                },
                tags = new List <string> {
                    "developer", "audio", "dialogue", "music", "wav", "ogg", "sound"
                },
                subCategory = "Scene Shop",
                description = "Soundplorer provides access to all Wwisestream and Wwisebank objects inside an ME3 PCC. Sounds can be played within the tool, exported, and changed via import.",
            });
            set.Add(new Tool
            {
                name = "Texplorer",
                type = typeof(Texplorer2),
                icon = Application.Current.FindResource("iconTexplorer") as ImageSource,
                open = () =>
                {
                    (new Texplorer2()).Show();
                },
                tags = new List <string> {
                    "user", "developer", "texture", "tfc", "scan", "tree"
                },
                subCategory = "Meshes + Textures",
                description = "For users and modders alike, Texplorer is the toolset's primary texture tool for the trilogy. Textures are organized into a package tree, and each is displayed with its associated data. Textures can be searched, extracted/replaced, and exported into TPF Tools."
            });
            set.Add(new Tool
            {
                name = "ME3 + ME2 TLK Editor",
                type = typeof(TLKEditor),
                icon = Application.Current.FindResource("iconTLKEditor") as ImageSource,
                open = () =>
                {
                    (new TLKEditor()).Show();
                },
                tags = new List <string> {
                    "developer", "dialogue", "subtitle", "text"
                },
                subCategory = "Scene Shop",
                description = "TLK Editor converts between XML and TLK formats, allowing users to edit the display of all game text in ME2 and ME3. Edits to the XML files themselves must be done in an external editor, such as Notepad++.",
            });
            set.Add(new Tool
            {
                name = "ME1 TLK Editor",
                type = typeof(TlkManager),
                icon = Application.Current.FindResource("iconTLKEditor") as ImageSource,
                open = () =>
                {
                    (new ME1Explorer.TlkManager(true)).Show();
                },
                tags = new List <string> {
                    "developer", "dialogue", "subtitle", "text"
                },
                subCategory = "Scene Shop",
                description = "ME1 TLK Editor extracts tlk files from ME1 packages and converts them into xml, allowing users to edit the display of all game text. Edits to the XML files themselves must be done in an external editor, such as Notepad++.",
            });
            set.Add(new Tool
            {
                name = "WwiseBank Editor",
                type = typeof(WwiseBankEditor.WwiseEditor),
                icon = Application.Current.FindResource("iconWwiseBankEditor") as ImageSource,
                open = () =>
                {
                    (new WwiseBankEditor.WwiseEditor()).Show();
                },
                tags = new List <string> {
                    "developer", "dialogue", "text", "line"
                },
                subCategory = "Scene Shop",
                description = "Wwisebank Editor edits ME3 Wwisebank objects, which contain data references to specific sets of Wwiseevents and Wwisestreams in the PCC. \n\nEditing “the bank” is often necessary when changing game music or when adding new dialogue.",
            });
            set.Add(new Tool
            {
                name = "UDK Explorer",
                type = typeof(UDKExplorer.MainWindow),
                icon = Application.Current.FindResource("iconUDKExplorer") as ImageSource,
                open = () =>
                {
                    string loc = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);
                    if (File.Exists(loc + "\\UDKExplorer.exe"))
                    {
                        Process.Start(loc + "\\UDKExplorer.exe");
                    }
                },
                tags = new List <string> {
                    "developer"
                },
                subCategory = "Other",
                description = "Edits .udk and .upk files created by the UDK."
            });
            #endregion

            items = set;

            loadFavorites();
        }
示例#8
0
        private bool HandleCommandLineArgs(string[] args, out int exitCode)
        {
            if (args.Length < 2)
            {
                exitCode = 0;
                return false;
            }
            //automation
            try
            {
                if (args[1].Equals("-dlcinject"))
                {
                    if (args.Length % 2 != 1 || args.Length < 5)
                    {
                        MessageBox.Show("Wrong number of arguments for the -dlcinject switch.:\nSyntax is: <exe> -dlcinject SFARPATH SEARCHTERM NEWFILEPATH [SEARCHTERM2 NEWFILEPATH2]...", "ME3 DLCEditor2 Error", MessageBoxButton.OK, MessageBoxImage.Error);
                        exitCode = 1;
                        return true;
                    }
                    string dlcFileName = args[2];
                    int numfiles = (args.Length - 3) / 2;

                    string[] filesToReplace = new string[numfiles];
                    string[] newFiles = new string[numfiles];

                    int argnum = 3; //starts at 3
                    for (int i = 0; i < filesToReplace.Length; i++)
                    {
                        filesToReplace[i] = args[argnum];
                        argnum++;
                        newFiles[i] = args[argnum];
                        argnum++;
                    }
                    if (File.Exists(dlcFileName))
                    {
                        DLCPackage dlc = new DLCPackage(dlcFileName);
                        for (int i = 0; i < numfiles; i++)
                        {
                            int idx = dlc.FindFileEntry(filesToReplace[i]);
                            if (idx == -1)
                            {
                                MessageBox.Show("DLCEditor2 automator encountered an error: the file to replace does not exist.", "ME3 DLCEditor2 Error", MessageBoxButton.OK, MessageBoxImage.Error);
                                exitCode = 1;
                                return true;
                            }
                            dlc.ReplaceEntry(newFiles[i], idx);
                        }
                        exitCode = 0;
                        return true;
                    }
                    MessageBox.Show("Failed to autoinject: DLC file does not exist: " + dlcFileName, "ME3Explorer DLCEditor2 Error", MessageBoxButton.OK, MessageBoxImage.Error);
                    exitCode = 1;
                    return true;
                }
                else if (args[1].Equals("-dlcextract"))
                {
                    if (args.Length != 5)
                    {
                        //-2 for me3explorer & -dlcextract
                        MessageBox.Show("Wrong number of arguments for the -dlcextract switch.:\nSyntax is: <exe> -dlcextract SFARPATH SEARCHTERM EXTRACTIONPATH", "ME3 DLCEditor2 Error", MessageBoxButton.OK, MessageBoxImage.Error);
                        exitCode = 1;
                        return true;
                    }
                    string dlcFileName = args[2];
                    string searchTerm = args[3];
                    string extractionPath = args[4];
                    if (File.Exists(dlcFileName))
                    {
                        DLCPackage dlc = new DLCPackage(dlcFileName);
                        int idx = dlc.FindFileEntry(searchTerm);
                        if (idx == -1)
                        {
                            MessageBox.Show("DLCEditor2 extraction automator encountered an error:\nThe file to replace does not exist or the tree has not been initialized.", "DLCEditor2 Error", MessageBoxButton.OK, MessageBoxImage.Error);
                            exitCode = 1;
                            return true;
                        }
                        using (FileStream fs = new FileStream(extractionPath, FileMode.Create, FileAccess.Write, FileShare.None, 4096, useAsync: true))
                        {
                            dlc.DecompressEntryAsync(idx, fs).Wait();
                        }
                        exitCode = 0;
                        return true;
                    }
                    MessageBox.Show("Failed to autoextract: DLC file does not exist: " + dlcFileName, "ME3Explorer DLCEditor2 Error", MessageBoxButton.OK, MessageBoxImage.Error);
                    exitCode = 1;
                    return true;

                }
                else if (args[1].Equals("-dlcaddfiles"))
                {
                    if (args.Length % 2 != 1 || args.Length < 5)
                    {
                        MessageBox.Show("Wrong number of arguments for the -dlcaddfiles switch.:\nSyntax is: <exe> -dlcinject SFARPATH INTERNALPATH NEWFILEPATH [INTERNALPATH2 NEWFILEPATH2]...", "ME3 DLCEditor2 Error", MessageBoxButton.OK, MessageBoxImage.Error);
                        exitCode = 1;
                        return true;
                    }
                    
                    string dlcFileName = args[2];
                    int numfiles = (args.Length - 3) / 2;
                    string[] internalPaths = new string[numfiles];
                    string[] sourcePaths = new string[numfiles];

                    int argnum = 3; //starts at 3
                    for (int i = 0; i < internalPaths.Length; i++)
                    {
                        internalPaths[i] = args[argnum];
                        argnum++;
                        sourcePaths[i] = args[argnum];
                        argnum++;
                    }

                    if (File.Exists(dlcFileName))
                    {
                        DLCPackage dlc = new DLCPackage(dlcFileName);
                        for (int i = 0; i < internalPaths.Length; i++)
                        {
                            dlc.AddFileQuick(sourcePaths[i], internalPaths[i]);
                        }
                        exitCode = 0;
                        return true;
                    }
                    MessageBox.Show("Failed to autoadd: DLC file does not exist: " + dlcFileName, "ME3Explorer DLCEditor2 Error", MessageBoxButton.OK, MessageBoxImage.Error);
                    exitCode = 1;
                    return true;
                }
                else if (args[1].Equals("-dlcremovefiles"))
                {
                    if (args.Length < 4)
                    {
                        //-2 for me3explorer & -dlcextract
                        MessageBox.Show("Wrong number of arguments for the -dlcremovefiles switch.:\nSyntax is: <exe> -dlcinject SFARPATH INTERNALPATH [INTERNALPATH2]...", "ME3 DLCEditor2 Error", MessageBoxButton.OK, MessageBoxImage.Error);
                        exitCode = 1;
                        return true;
                    }
                    string dlcFileName = args[2];
                    int numfiles = (args.Length - 3);
                    string[] filesToRemove = new string[numfiles];
                    int argnum = 3; //starts at 3
                    for (int i = 0; i < filesToRemove.Length; i++)
                    {
                        filesToRemove[i] = args[argnum];
                        argnum++;
                    }

                    if (File.Exists(dlcFileName))
                    {
                        DLCPackage dlc = new DLCPackage(dlcFileName);
                        for (int i = 0; i < filesToRemove.Length; i++)
                        {
                            int idx = dlc.FindFileEntry(filesToRemove[i]);
                            if (idx == -1)
                            {
                                MessageBox.Show("DLCEditor2 file removal automator encountered an error:\nThe file to remove does not exist or the tree has not been initialized.", "DLCEditor2 Error", MessageBoxButton.OK, MessageBoxImage.Error);
                                exitCode = 1;
                                return true;
                            }
                            dlc.DeleteEntry(idx);
                        }
                        exitCode = 0;
                        return true;
                    }
                    MessageBox.Show("Failed to autoremove: DLC file does not exist: " + dlcFileName, "ME3Explorer DLCEditor2 Error", MessageBoxButton.OK, MessageBoxImage.Error);
                    exitCode = 1;
                    return true;

                }
                else if (args[1].Equals("-dlcunpack") || args[1].Equals("-dlcunpack-nodebug"))
                {
                    if (args.Length != 4)
                    {
                        MessageBox.Show("Wrong number of arguments for automated DLC unpacking:\nSyntax is: <exe> -dlcunpack SFARPATH EXTRACTIONPATH", "ME3 DLCEditor2 Error", MessageBoxButton.OK, MessageBoxImage.Error);
                        exitCode = 1;
                        return true;
                    }

                    string sfarPath = args[2];
                    string autoUnpackFolder = args[3];
                    
                    if (File.Exists(sfarPath))
                    {
                        DLCPackage dlc = new DLCPackage(sfarPath);
                        if (args[1].Equals("-dlcunpack"))
                        {
                            //open debugging window since this operation takes a long time.
                            KFreonLib.Debugging.DebugOutput.StartDebugger("DLC Editor 2");
                        }
                        //Simulate Unpack operation click.
                        SFAREditor2.unpackSFAR(dlc);
                        exitCode = 0;
                        return true;
                    }
                    else
                    {
                        MessageBox.Show("Failed to autounpack: DLC file does not exist: " + sfarPath, "ME3Explorer DLCEditor2 Error", MessageBoxButton.OK, MessageBoxImage.Error);
                        exitCode = 1;
                        return true;
                    }
                }
                else if (args[1].Equals("-toceditorupdate"))
                {
                    //Legacy command requested by FemShep
                    TOCeditor toc = new TOCeditor();
                    exitCode = toc.updateTOCFromCommandLine(args.Skip(2).ToList());
                    return true;
                }
                else if (args[1].Equals("-autotoc"))
                {
                    if (args.Length == 2)
                    {
                        AutoTOC.GenerateAllTOCs();
                    }
                    else
                    {
                        AutoTOC.prepareToCreateTOC(args[2]);
                    }
                    exitCode = 0;
                    return true;
                }
                else if (args[1].Equals("-sfarautotoc"))
                {
                    if (args.Length != 3)
                    {
                        MessageBox.Show("-sfarautotoc command line argument requires at least 1 parameter:\nSFARFILE.sfar", "Automated SFAR TOC Update Fail", MessageBoxButton.OK, MessageBoxImage.Error);
                        exitCode = 1;
                        return true;
                    }
                    
                    var result = Parallel.For(2, args.Length, i =>
                    {
                        if (args[i].EndsWith(".sfar") && File.Exists(args[i]))
                        {
                            DLCPackage DLC = new DLCPackage(args[2]);
                            DLC.UpdateTOCbin(true); 
                        }
                    });
                    exitCode = result.IsCompleted ? 0 : 1;
                    return true;
                }
                else if (args[1].Equals("-decompresspcc"))
                {
                    if (args.Length != 4)
                    {
                        MessageBox.Show("-decompresspcc command line argument requires 2 parameters:\ninputfile.pcc outputfile.pcc\nBoth arguments can be the same.", "Auto Decompression Error", MessageBoxButton.OK, MessageBoxImage.Error);

                        exitCode = 1;
                        return true;
                    }
                    exitCode = PCCRepack.autoDecompressPcc(args[2], args[3]);
                    return true;
                }
                else if (args[1].Equals("-compresspcc"))
                {
                    if (args.Length != 4)
                    {
                        MessageBox.Show("-compresspcc command line argument requires 2 parameters:\ninputfile.pcc outputfile.pcc\nBoth arguments can be the same.", "Auto Compression Error", MessageBoxButton.OK, MessageBoxImage.Error);

                        exitCode = 1;
                        return true;
                    }
                    exitCode = PCCRepack.autoCompressPcc(args[2], args[3]);
                    return true;
                }
            }
            catch
            {
                exitCode = 1;
                return true;
            }

            string ending = Path.GetExtension(args[1]).ToLower();
            switch (ending)
            {
                case ".pcc":
                    PackageEditor editor = new PackageEditor();
                    editor.Show();
                    editor.LoadFile(args[1]);
                    break;
            }
            exitCode = 0;
            return false;
        }