Beispiel #1
0
        /// <summary>
        /// Starts build.
        /// </summary>
        public override void Start()
        {
            DateTime startTime = TimeHelper.Now;

            runHooks(HookType.Pre, HookEvent.AssetsMerge);

            new Merge(gothic, Merge.MergeOptions.All).MergeAssets();

            runHooks(HookType.Post, HookEvent.AssetsMerge);

            if (Program.Options.CommonTestBuildCompile.NoUpdateSubtitles == false)
            {
                runHooks(HookType.Pre, HookEvent.SubtitlesUpdate);

                UpdateDialogs();

                runHooks(HookType.Post, HookEvent.SubtitlesUpdate);
            }

            compilingAssetsWatcher.Start();

            ZSpy.Run();

            gothic.Start(GetGothicArguments()).WaitForExit();

            ZSpy.Abort();

            compilingAssetsWatcher.Stop();

            new VDF(gothic).RunBuilder();

            Logger.Minimal("CompletedIn".Translate((TimeHelper.Now - startTime).Minutes, (TimeHelper.Now - startTime).Seconds));
        }
Beispiel #2
0
        public Process RunSpacer()
        {
            var exeFile = gothic.Version == Gothic.GameVersion.Gothic1
                        ? gothic.GetGameFile(Gothic.GameFile.SpacerExe)
                        : gothic.GetGameFile(Gothic.GameFile.Spacer2Exe);

            if (Process.GetProcessesByName(Path.GetFileNameWithoutExtension(exeFile)).Length > 0)
            {
                Logger.Fatal("Spacer.Error.AlreadyRunning");
            }

            ZSpy.Run();

            ProcessStartInfo spacer = new ProcessStartInfo
            {
                FileName    = exeFile,
                WindowStyle = ProcessWindowStyle.Maximized,
            };

            spacer.Arguments = GetGothicArguments().ToString();

            Logger.Detailed("Spacer.RunningWithParameters".Translate(spacer.Arguments));

            if (Logger.Verbosity <= VerbosityLevel.Detailed)
            {
                Logger.Minimal("Spacer.Running".Translate());
            }

            spacerProcess           = new Process();
            spacerProcess.StartInfo = spacer;

            spacerProcess.Start();

            return(spacerProcess);
        }
Beispiel #3
0
        /// <summary>
        /// Starts test.
        /// </summary>
        public override void Start()
        {
            DetectIfWorldIsNotExists();

            if (Program.Options.CommonTestCompile.Merge != Merge.MergeOptions.None)
            {
                runHooks(HookType.Pre, HookEvent.AssetsMerge);

                new Merge(gothic, Program.Options.CommonTestCompile.Merge).MergeAssets();

                runHooks(HookType.Post, HookEvent.AssetsMerge);
            }

            if ((Program.Options.CommonTestCompile.Merge == Merge.MergeOptions.All) ||
                (Program.Options.CommonTestCompile.Merge.HasFlag(Merge.MergeOptions.Scripts)))
            {
                if (Program.Options.CommonTestBuildCompile.NoUpdateSubtitles == false)
                {
                    runHooks(HookType.Pre, HookEvent.SubtitlesUpdate);

                    UpdateDialogs();

                    runHooks(HookType.Post, HookEvent.SubtitlesUpdate);
                }
            }

            Logger.SetOnFatalEvent(() =>
            {
                gothic.Dispose();
            });

            if (Mode == TestMode.Full)
            {
                gothic.DisableVdfs();
            }

            compilingAssetsWatcher.Start();

            ZSpy.Run();

            gothic.Start(GetGothicArguments()).WaitForExit();

            assetsCompiled = true;

            if (Mode == TestMode.Full)
            {
                gothic.EnableVdfs();

                gothic.Start(GetGothicArguments()).WaitForExit();
            }

            ZSpy.Abort();

            compilingAssetsWatcher.Stop();
        }
Beispiel #4
0
        /// <summary>
        /// Starts compilation.
        /// </summary>
        public override void Start()
        {
            DateTime startTime = TimeHelper.Now;

            if (Program.Options.CommonTestCompile.Merge != Merge.MergeOptions.None)
            {
                runHooks(HookType.Pre, HookEvent.AssetsMerge);

                new Merge(gothic, Program.Options.CommonTestCompile.Merge).MergeAssets();

                runHooks(HookType.Post, HookEvent.AssetsMerge);
            }

            if ((Program.Options.CommonTestCompile.Merge == Merge.MergeOptions.All) ||
                (Program.Options.CommonTestCompile.Merge.HasFlag(Merge.MergeOptions.Scripts)))
            {
                if (Program.Options.CommonTestBuildCompile.NoUpdateSubtitles == false)
                {
                    runHooks(HookType.Pre, HookEvent.SubtitlesUpdate);

                    UpdateDialogs();

                    runHooks(HookType.Post, HookEvent.SubtitlesUpdate);
                }
            }

            Logger.SetOnFatalEvent(() =>
            {
                gothic.Dispose();
            });

            if (Mode == CompileMode.Full)
            {
                gothic.DisableVdfs();
            }

            compilingAssetsWatcher.Start();

            ZSpy.Run();

            gothic.Start(GetGothicArguments()).WaitForExit();

            ZSpy.Abort();

            compilingAssetsWatcher.Stop();

            Logger.Minimal("CompletedIn".Translate((TimeHelper.Now - startTime).Minutes, (TimeHelper.Now - startTime).Seconds));
        }