public EngineStatus Free() { Critical.NoThrow(() => Engine.I.FS.Dispose()); Critical.NoThrow(() => Engine.I.Log.End()); // todo: check this int collectWaiting = I.Core.RM.CollectWaiting(x => true); return(collectWaiting == 0 ? (EngineStatus.Free) : (EngineStatus.FreeWithMemoryLeaks)); }
internal static void Free() { Critical.NoThrow(() => _user.Core.Log.Info("--- Application shutting down ---")); EngineStatus[] status = new EngineStatus[5]; status[4] = Proxy.Game.Free(); status[1] = Proxy.Physics.Free(); status[2] = Proxy.Scripting.Free(); status[3] = Proxy.Render.Free(); status[0] = Proxy.Core.Free(); Critical.NoThrow(() => Memory.Collect(false)); }
static void EngineFailed(string allText, string title) { #if !DEBUG MiniDump.Write(); #endif MessageBox.Show( allText, title, MessageBoxButtons.OK, MessageBoxIcon.Error ); Critical.NoThrow(() => { GameAPI.I.Core.Log.Error("--- " + title); GameAPI.I.Core.Log.Error(allText); GameAPI.I.Core.Log.End(); }); }
internal static EngineStatus Initialize() { EngineStatus[] status = new EngineStatus[5]; status[0] = Proxy.Core.Initialize(); status[4] = Proxy.Game.Initialize(); status[1] = Proxy.Physics.Initialize(); status[2] = Proxy.Scripting.Initialize(); // todo: order?? status[3] = Proxy.Render.Initialize(); _user.Initialize(); if (!status.Any(s => s == EngineStatus.CriticalFailed)) { GameAPI.I.Core.Log.Info("[Game] All systems were loaded."); return(EngineStatus.ReadyToUse); } Critical.NoThrow(() => _user.Core.Log.Error("Application Initialization failed!")); return(EngineStatus.Failed); }