Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
WindowsLaunch.cs
Go to the documentation of this file.
1using System;
2using System.IO;
6
7namespace Terraria;
8
9public static class WindowsLaunch
10{
11 public delegate bool HandlerRoutine(CtrlTypes ctrlType);
12
13 public enum CtrlTypes
14 {
15 CTRL_C_EVENT = 0,
20 }
21
23
24 private static bool ConsoleCtrlCheck(CtrlTypes ctrlType)
25 {
26 bool flag = false;
27 switch (ctrlType)
28 {
29 case CtrlTypes.CTRL_C_EVENT:
30 flag = true;
31 break;
32 case CtrlTypes.CTRL_BREAK_EVENT:
33 flag = true;
34 break;
35 case CtrlTypes.CTRL_CLOSE_EVENT:
36 flag = true;
37 break;
38 case CtrlTypes.CTRL_LOGOFF_EVENT:
39 case CtrlTypes.CTRL_SHUTDOWN_EVENT:
40 flag = true;
41 break;
42 }
43 if (flag)
44 {
46 }
47 return true;
48 }
49
50 [DllImport("Kernel32")]
51 public static extern bool SetConsoleCtrlHandler(HandlerRoutine handler, bool add);
52
53 [STAThread]
54 private static void Main(string[] args)
55 {
56 AppDomain.CurrentDomain.AssemblyResolve += delegate(object sender, ResolveEventArgs sargs)
57 {
58 string resourceName = new AssemblyName(sargs.Name).Name + ".dll";
59 string text = Array.Find(typeof(Program).Assembly.GetManifestResourceNames(), (string element) => element.EndsWith(resourceName));
60 if (text == null)
61 {
62 return (Assembly)null;
63 }
64 using Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(text);
65 byte[] array = new byte[stream.Length];
66 stream.Read(array, 0, array.Length);
67 return Assembly.Load(array);
68 };
69 Program.LaunchGame(args);
70 }
71}
static Assembly Load(string assemblyString)
Definition Assembly.cs:157
virtual string[] GetManifestResourceNames()
Definition Assembly.cs:279
static RuntimeAssembly GetExecutingAssembly(ref StackCrawlMark stackMark)
Definition Assembly.cs:198
static void LaunchGame(string[] args, bool monoArgs=false)
Definition Program.cs:181
static void Shutdown()
Definition SocialAPI.cs:60
static HandlerRoutine _handleRoutine
static bool ConsoleCtrlCheck(CtrlTypes ctrlType)
static void Main(string[] args)
static bool SetConsoleCtrlHandler(HandlerRoutine handler, bool add)
delegate bool HandlerRoutine(CtrlTypes ctrlType)