public static SaveOutput SaveGame(TaleWorlds.Core.Game game, ISaveDriver driver) { EntitySystem <GameHandler> entitySystem = Utils.GetPrivateField <EntitySystem <GameHandler> >( typeof(TaleWorlds.Core.Game), "_gameEntitySystem", game); MetaData metaData = GetMetaData(); // Code copied from TaleWorlds.Game.Save(MetaData, ISaveDriver) foreach (GameHandler gameHandler in entitySystem.Components) { gameHandler.OnBeforeSave(); } SaveOutput saveOutput = SaveManager.Save(game, metaData, driver); saveOutput.PrintStatus(); foreach (GameHandler gameHandler2 in entitySystem.Components) { gameHandler2.OnAfterSave(); } // End code copy return(saveOutput); }
public static LoadGameResult LoadSaveGameData( string saveName, string[] loadedModuleNames) { List <ModuleInfo> modules = MBSaveLoad.GetModules(loadedModuleNames); MBSaveLoad.InitializeAutoSaveIndex(saveName); string fileName = saveName + ".sav"; ISaveDriver driver = MBSaveLoad._saveDriver; driver.SetFileName(fileName); ApplicationVersion applicationVersion = driver.LoadMetaData().GetApplicationVersion(); if (applicationVersion.Major <= 1 && applicationVersion.Minor <= 4 && applicationVersion.Revision < 2) { driver = (ISaveDriver) new OldFileDriver(); driver.SetFileName(fileName); } LoadResult loadResult = SaveManager.Load(driver, true); if (loadResult.Successful) { MBSaveLoad.ActiveSaveSlotName = !MBSaveLoad.IsSaveFileNameReserved(saveName) ? saveName : (string)null; return(new LoadGameResult(loadResult, MBSaveLoad.CheckModules(loadResult.MetaData, modules))); } Debug.Print("Error: Could not load the game!"); return((LoadGameResult)null); }
public static LoadResult Load(ISaveDriver driver, bool loadAsLateInitialize) { DefinitionContext definitionContext = new DefinitionContext(); definitionContext.FillWithCurrentTypes(); LoadContext loadContext = new LoadContext(definitionContext, driver); LoadData loadData = driver.Load(); LoadResult loadResult; if (loadContext.Load(loadData, loadAsLateInitialize)) { LoadCallbackInitializator loadCallbackInitializator = (LoadCallbackInitializator)null; if (loadAsLateInitialize) { loadCallbackInitializator = loadContext.CreateLoadCallbackInitializator(loadData); } loadResult = LoadResult.CreateSuccessful(loadContext.RootObject, loadData.MetaData, loadCallbackInitializator); } else { loadResult = LoadResult.CreateFailed((IEnumerable <LoadError>) new LoadError[1] { new LoadError("Not implemented") }); } return(loadResult); }
public LoadContext(DefinitionContext definitionContext, ISaveDriver driver) { this.DefinitionContext = definitionContext; this._objectHeaderLoadDatas = (ObjectHeaderLoadData[])null; this._containerHeaderLoadDatas = (ContainerHeaderLoadData[])null; this._strings = (string[])null; this.Driver = driver; }
public static LoadGameResult LoadSaveGameData(ISaveDriver driver) { List <ModuleInfo> currentModules = GetModules(); LoadResult loadResult = SaveManager.Load(driver, true); if (loadResult.Successful) { return(new LoadGameResult( loadResult, CheckModules(driver.LoadMetaData(), currentModules))); } return(null); }
public static SaveOutput Save(object target, MetaData metaData, ISaveDriver driver) { if (SaveManager._definitionContext == null) { SaveManager.InitializeGlobalDefinitionContext(); } if (SaveManager._definitionContext.GotError) { List <SaveError> saveErrorList = new List <SaveError>(); foreach (string error in SaveManager._definitionContext.Errors) { saveErrorList.Add(new SaveError(error)); } return(SaveOutput.CreateFailed((IEnumerable <SaveError>)saveErrorList)); } using (new PerformanceTestBlock("Save Context")) { Debug.Print("Saving with new context"); SaveContext saveContext = new SaveContext(SaveManager._definitionContext); if (saveContext.Save(target, metaData)) { try { driver.Save(1, metaData, saveContext.SaveData); return(SaveOutput.CreateSuccessful(saveContext.SaveData)); } catch (Exception ex) { return(SaveOutput.CreateFailed((IEnumerable <SaveError>) new SaveError[1] { new SaveError(ex.Message) })); } } else { return(SaveOutput.CreateFailed((IEnumerable <SaveError>) new SaveError[1] { new SaveError("Not implemented") })); } } }
private static bool SaveGame(string saveName, MetaData metaData) { string fileName = saveName + ".sav"; ISaveDriver saveDriver = MBSaveLoad._saveDriver; saveDriver.SetFileName(fileName); bool flag = false; try { flag = Game.Current.Save(metaData, saveDriver); } catch (Exception ex) { Debug.Print("Unable to create save game data"); Debug.Print(ex.Message); Debug.SilentAssert(ModuleHelper.GetModules().Any <ModuleInfo>((Func <ModuleInfo, bool>)(m => !m.IsOfficial)), ex.Message, callerFile: "C:\\Develop\\mb3\\Source\\Bannerlord\\TaleWorlds.Core\\MBSaveLoad.cs", callerMethod: nameof(SaveGame), callerLine: 334); } return(flag); }
public static SaveGameData SaveGame(Game game, ISaveDriver driver) { EntitySystem <GameHandler> entitySystem = Utils.GetPrivateField <EntitySystem <GameHandler> >( typeof(Game), "_gameEntitySystem", game); MetaData metaData = GetMetaData(); foreach (GameHandler gameHandler in entitySystem.Components) { gameHandler.OnBeforeSave(); } SaveOutput saveOutput = SaveManager.Save(game, metaData, driver); saveOutput.PrintStatus(); foreach (GameHandler gameHandler2 in entitySystem.Components) { gameHandler2.OnAfterSave(); } return(new SaveGameData(metaData, saveOutput)); }
public static void SetSaveDriver(ISaveDriver saveDriver) => MBSaveLoad._saveDriver = saveDriver;
public static LoadResult Load(ISaveDriver driver) => SaveManager.Load(driver, false);
public static MetaData LoadMetaData(ISaveDriver driver) => driver.LoadMetaData();