예제 #1
0
        protected override void OnExit(ExitEventArgs e)
        {
            base.OnExit(e);

            MgloBlamGameRequiredSystems.DisposeFromOldProgram();

            KSoft.Blam.Program.DisposeCoreSystems();
            KSoft.Blam.Program.Dispose();
            KSoft.Program.Dispose();
        }
        public ReverseEngineerFilesProcessBase(MainWindowViewModel mainViewModel)
        {
            ViewModel  = mainViewModel;
            Dispatcher = System.Windows.Application.Current.Dispatcher;
            DontOverwriteExistingFiles = ViewModel.Flags.Test(MiscFlags.DontOverwriteExistingFiles);
            IgnoreOutputPaths          = ViewModel.Flags.Test(MiscFlags.IgnoreOutputPaths);

            mGameBuildAndTarget = ViewModel.SelectedGameBuildAndTargetHandle;
            mRequiredSystems    = ViewModel.SelectGameBuildRequiredSystems;
        }
예제 #3
0
        public static MgloBlamGameRequiredSystems GetOrCreateFromSelectableGameBuildName(string name)
        {
            MgloBlamGameRequiredSystems instance;

            lock (gCachedGames)
            {
                if (!gCachedGames.TryGetValue(name, out instance))
                {
                    KBlam.Engine.EngineBuildRevision build_revision = KBlam.Engine.EngineRegistry.TryParseExportedBuildName(name);
                    if (build_revision == null)
                    {
                        throw new ArgumentOutOfRangeException(nameof(name), name, "Not a valid build name");
                    }

                    instance = new MgloBlamGameRequiredSystems(build_revision.BuildHandle.ToEngineTargetHandle());
                    gCachedGames.Add(name, instance);
                }
            }

            return(instance);
        }