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);
        }
        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);
        }