public static void LoadOnCurrentApplicationDomain( IntPtr gameDllNameAsPointer, IntPtr gameTypeNameAsPointer, int currentPlatformAsInteger) { Platform currentPlatform = (Platform)currentPlatformAsInteger; ApplicationPlatform.Initialize(currentPlatform, Controller.RuntimeLibrary); string stringAnsi1 = Marshal.PtrToStringAnsi(gameDllNameAsPointer); string stringAnsi2 = Marshal.PtrToStringAnsi(gameTypeNameAsPointer); Debug.Print("Appending private path to current application domain."); AppDomain.CurrentDomain.AppendPrivatePath(ManagedDllFolder.Name); Debug.Print("Creating GameApplicationDomainController on current application domain."); GameApplicationDomainController domainController = new GameApplicationDomainController(false); if (domainController == null) { Console.WriteLine("GameApplicationDomainController is NULL!"); Console.WriteLine("Press a key to continue..."); Console.ReadKey(); } if (Controller.RuntimeLibrary == TaleWorlds.Library.Runtime.Mono) { Debug.Print("Initializing GameApplicationDomainController as Mono."); domainController.LoadAsMono(Controller._passManagedInitializeMethodPointer, Controller._passManagedCallbackMethodPointer, stringAnsi1, stringAnsi2, currentPlatform); } else { Debug.Print("Initializing GameApplicationDomainController as Dot Net."); domainController.Load(Controller._passManagedInitializeMethod, Controller._passManagedCallbackMethod, stringAnsi1, stringAnsi2, currentPlatform); } }
public GameApplicationDomainController() { Debug.Print("Constructing GameApplicationDomainController."); GameApplicationDomainController._instance = this; this._newApplicationDomain = true; }