void Update() { if (fbd.state == myFileBrowserDialog.BrowserState.Selected) { if (isNewProject) { InputField IFnewProject = transform.Find("Panel_LoadSaveMenu").Find("InputField_SelectOSM").GetComponent <InputField>(); IFnewProject.text = fbd.selectedPath; isNewProject = false; } else if (isLoadProject) { InputField IFloadProject = transform.Find("Panel_LoadSaveMenu").Find("InputField_SelectProject").GetComponent <InputField>(); IFloadProject.text = fbd.selectedPath; isLoadProject = false; } else if (isSaveProject) { string path = fbd.selectedPath + "/" + fbd.saveName; string osmPath = scene.OSMPath; SaveConfig save = new SaveConfig(path, scene); save.saveConfigurations(); Debug.Log("Successfully Saved"); isSaveProject = false; } } }
public void Save(Document input, Stream output, SaveConfig token, Surface scratchSurface, ProgressEventHandler callback, bool rememberToken) { if (!this.SupportsSaving) { throw new NotImplementedException("Saving is not supported by this FileType"); } else { Surface disposeMe = null; if (scratchSurface == null) { disposeMe = new Surface(input.Size); scratchSurface = disposeMe; } else if (scratchSurface.Size != input.Size) { throw new ArgumentException("scratchSurface.Size must equal input.Size"); } OnSave(input, output, token, scratchSurface, callback); if (disposeMe != null) { disposeMe.Dispose(); } } }
protected virtual void OnSaveConfig() { SaveConfig?.Invoke(this, EventArgs.Empty); try { var log = SB.Logger.Entries.LastOrDefault(); if (log == null || !log.LogString.StartsWith("Failed to save the config. Reason:") && log.LogLevel != LogLevel.Error) { //green iconSave.Foreground = bc.ConvertFrom("#FF5DF5A7") as Brush; RestoreForegroundIconSave(); } else { //red iconSave.Foreground = bc.ConvertFrom("#FFF5645D") as Brush; RestoreForegroundIconSave(); } } catch { try { iconSave.Foreground = Brushes.White; } catch { } } }
public void Save(Bitmap BmpFile, string key, SaveConfig config, bool temp = false) { try { switch (config) { case SaveConfig.QRCode: if (!temp) { BmpFile.Save(TempFolder + key + @".tmp", ImageFormat.Bmp); } if (temp) { BmpFile.Save(TempFolder + @"tmp.bmp", ImageFormat.Bmp); } break; default: break; } } catch (Exception e) { Console.WriteLine(e); } }
public void Load() { if (PlayerPrefs.HasKey("Save")) { var str = PlayerPrefs.GetString("Save"); Cfg = JsonMapper.ToObject <SaveConfig>(str); } }
Enemy InstatiateUnitRandom(string name, Vector2 radius, Vector2 speed, Vector2 cellSize, Side side) //спавн конкретного юнита с рандомными пар-ми { SaveConfig unitConfig = new SaveConfig(); unitConfig.id = name; unitConfig.radius = Random.Range(radius.x, radius.y); unitConfig.speed = Random.Range(speed.x, speed.y); unitConfig.pos = GetRandomPos(unitConfig.radius); unitConfig.side = side; return(InstatiateUnit(unitConfig, cellSize)); }
// Use this for initialization void Start() { sc = GetComponent <SaveConfig> (); if (save) { Save(); } else { } }
/** * <summary>Saves the current events to the player's save file.</summary> * <remarks> * This should be called after every player save. * </remarks> * * <param name="helper">The ModHelper to use for saving.</param> */ public void SaveEvents(IModHelper helper) { // NOTE: In earlier versions of SMAPI, SaveEvents is called at the // end of "Day 0" - the intro date. Luckily, this isn't a big deal. var config = new SaveConfig() { Version = ModEntry.ModVersion, Events = this.currentEvents ?? new List <EconEvent>(), }; var filename = ModEntry.GetPerGameConfigFileName("events"); config.Save(helper, filename); }
public static void WriteConfig(SaveConfig config) { string savePath = $"{Application.persistentDataPath}/{configFileName}{fileExtentionName}"; Log($"Saving game configuration to : {savePath}"); using (var writer = new BinaryWriter(File.Open(savePath, FileMode.Create))) { writer.Write(JsonUtility.ToJson(config)); } #if UNITY_WEBGL && !UNITY_EDITOR SyncFiles(); #endif }
protected override void Initialize() { if (IsHasSave) { Load(); } else { Cfg = new SaveConfig(); Cfg.IsSkip = false; Cfg.BgmVolume = 100; Cfg.CharSpeed = (int)(GlobalConfig.Instance.CharSpeed * 1000); Cfg.ForceTextWait = (int)(GlobalConfig.Instance.ForceTextWait * 1000); } }
/** * <summary>Attempts to load and apply the events last saved for the player's save.</summary> * <remarks> * This should be called after the player loads the game, shortly after * construction of this manager and before the first call to * <see cref="UpdateEvents"/>. * </remarks> * * <param name="helper">The ModHelper to use for loading.</param> * <returns>True if the events were successfully loaded. False otherwise.</returns> */ public bool LoadPlayerEvents(IModHelper helper) { // NOTE: This is called on Day 1 of Spring when gameplay starts. var filename = ModEntry.GetPerGameConfigFileName("events"); var config = SaveConfig.Load(helper, filename); if (config != null) { this.currentEvents = new List <EconEvent>(config.Events); this.currentEvents.ForEach(this.ApplyEvent); return(true); } else { return(false); } }
public static SaveConfig LoadOrCreateConfig() { #if UNITY_WEBGL && !UNITY_EDITOR SyncFiles(); #endif if (cachedSaveConfig != null) { return(cachedSaveConfig); } string[] filePaths = Directory.GetFiles(Application.persistentDataPath); string configPath = filePaths.FirstOrDefault(path => path.EndsWith($"{configFileName}{fileExtentionName}")); if (!string.IsNullOrEmpty(configPath)) { using (var reader = new BinaryReader(File.Open(configPath, FileMode.Open))) { SaveConfig getSaveConfig = JsonUtility.FromJson <SaveConfig>(reader.ReadString()); if (getSaveConfig != null) { Log($"Loaded configuration from {configPath}"); cachedSaveConfig = getSaveConfig; } else { getSaveConfig = new SaveConfig(); } return(getSaveConfig); } } else { cachedSaveConfig = new SaveConfig(); return(cachedSaveConfig); } }
Enemy InstatiateUnit(SaveConfig unitConfig, Vector2 cellSize) //спавн конкретного юнита с конкретными пар-ми { GameObject unit = Instantiate(_unitPref, _gameArea, false); unit.name = unitConfig.id; unit.transform.rotation = Quaternion.identity; Enemy enemy = unit.GetComponent <Enemy>(); enemy.Init( unitConfig.radius, unitConfig.speed, unitConfig.side, unitConfig.pos, _areaSize, cellSize); unit.GetComponent <SpriteRenderer>().color = (enemy.Side == Side.Blue) ? Color.blue : Color.red; _units.Add(enemy); return(unit.GetComponent <Enemy>()); }
public void Save(string JsonFile, string key, SaveConfig config) { try { switch (config) { case SaveConfig.CustomerList: File.WriteAllText(TempFolder + "b2y2dbqd87sa" + @".datxx", JsonFile); break; case SaveConfig.CustomerInfomation: File.WriteAllText(TempFolder + key + @".datxx", JsonFile); break; case SaveConfig.CustomerLabels: File.WriteAllText(TempFolder + key + @".datx", JsonFile); break; } } catch (Exception e) { Console.WriteLine(e); } }
protected override void OnSave(Document input, Stream output, SaveConfig token, Surface scratchSurface, ProgressEventHandler callback) { base.OnSave(input, output, token, scratchSurface, callback); }
private void MBtnConfigSaveConnectionString_Click(object sender, EventArgs e) { ConnectionString = mTxtConfigConnectionString.Text; SaveConfig?.Invoke(this, null); }
public override void Execute() { RetCode rc; Globals.RevealContentCounter--; SaveFilesetsCount = Globals.Database.GetFilesetsCount(); Debug.Assert(SaveFilesetsCount <= gEngine.NumSaveSlots); Debug.Assert(SaveSlot >= 1 && SaveSlot <= Math.Min(SaveFilesetsCount + 1, gEngine.NumSaveSlots)); Debug.Assert(SaveName != null); if (SaveSlot == SaveFilesetsCount + 1) { SaveFileset = Globals.CreateInstance <IFileset>(x => { x.Uid = Globals.Database.GetFilesetUid(); x.Name = "(none)"; }); rc = Globals.Database.AddFileset(SaveFileset); Debug.Assert(gEngine.IsSuccess(rc)); } SaveFilesetList = Globals.Database.FilesetTable.Records.OrderBy(f => f.Uid).ToList(); SaveFileset = SaveFilesetList[(int)SaveSlot - 1]; if (SaveName.Length == 0) { if (!SaveFileset.Name.Equals("(none)", StringComparison.OrdinalIgnoreCase)) { gOut.Write("{0}Change name of save (Y/N): ", Environment.NewLine); Globals.Buf.Clear(); rc = Globals.In.ReadField(Globals.Buf, Constants.BufSize02, null, ' ', '\0', false, null, gEngine.ModifyCharToUpper, gEngine.IsCharYOrN, null); Debug.Assert(gEngine.IsSuccess(rc)); if (Globals.Buf.Length > 0 && Globals.Buf[0] == 'Y') { SaveFileset.Name = "(none)"; } } while (SaveFileset.Name.Equals("(none)", StringComparison.OrdinalIgnoreCase)) { gOut.Write("{0}Enter new name: ", Environment.NewLine); Globals.Buf.Clear(); rc = Globals.In.ReadField(Globals.Buf, Constants.FsNameLen, null, ' ', '\0', false, null, null, null, null); Debug.Assert(gEngine.IsSuccess(rc)); Globals.Buf.SetFormat("{0}", Regex.Replace(Globals.Buf.ToString(), @"\s+", " ").Trim()); SaveFileset.Name = gEngine.Capitalize(Globals.Buf.ToString()); if (SaveFileset.Name.Length == 0) { SaveFileset.Name = "(none)"; } } } else { if (!SaveFileset.Name.Equals("(none)", StringComparison.OrdinalIgnoreCase) && SaveName.Equals("Quick Saved Game", StringComparison.OrdinalIgnoreCase)) { SaveName = Globals.CloneInstance(SaveFileset.Name); } SaveName = gEngine.Capitalize(SaveName); SaveFileset.Name = Globals.CloneInstance(SaveName); gOut.Print("[QUICK SAVE {0}: {1}]", SaveSlot, SaveName); } SaveConfig = Globals.CreateInstance <IConfig>(); SaveSlotString = SaveSlot.ToString("D3"); SaveFileset.WorkDir = "NONE"; SaveFileset.PluginFileName = "NONE"; SaveFilePath = ""; SaveFileName = ""; SaveFileExtension = ""; rc = gEngine.SplitPath(Globals.ConfigFileName, ref _saveFilePath, ref _saveFileName, ref _saveFileExtension); Debug.Assert(gEngine.IsSuccess(rc)); SaveFileNameIndex = SaveFileName.IndexOf('_'); if (SaveFileNameIndex >= 0) { SaveFileName = SaveFileName.Substring(0, (int)SaveFileNameIndex); } Globals.Buf.SetFormat("{0}{1}_{2}{3}", SaveFilePath, SaveFileName, SaveSlotString, SaveFileExtension); SaveFileset.ConfigFileName = Globals.Buf.ToString().Truncate(Constants.FsFileNameLen); SaveFileset.FilesetFileName = "NONE"; rc = gEngine.SplitPath(Globals.Config.RtCharacterFileName, ref _saveFilePath, ref _saveFileName, ref _saveFileExtension); Debug.Assert(gEngine.IsSuccess(rc)); Globals.Buf.SetFormat("{0}{1}_{2}{3}", SaveFilePath, SaveFileName, SaveSlotString, SaveFileExtension); SaveFileset.CharacterFileName = Globals.Buf.ToString().Truncate(Constants.FsFileNameLen); rc = gEngine.SplitPath(Globals.Config.RtModuleFileName, ref _saveFilePath, ref _saveFileName, ref _saveFileExtension); Debug.Assert(gEngine.IsSuccess(rc)); Globals.Buf.SetFormat("{0}{1}_{2}{3}", SaveFilePath, SaveFileName, SaveSlotString, SaveFileExtension); SaveFileset.ModuleFileName = Globals.Buf.ToString().Truncate(Constants.FsFileNameLen); rc = gEngine.SplitPath(Globals.Config.RtRoomFileName, ref _saveFilePath, ref _saveFileName, ref _saveFileExtension); Debug.Assert(gEngine.IsSuccess(rc)); Globals.Buf.SetFormat("{0}{1}_{2}{3}", SaveFilePath, SaveFileName, SaveSlotString, SaveFileExtension); SaveFileset.RoomFileName = Globals.Buf.ToString().Truncate(Constants.FsFileNameLen); rc = gEngine.SplitPath(Globals.Config.RtArtifactFileName, ref _saveFilePath, ref _saveFileName, ref _saveFileExtension); Debug.Assert(gEngine.IsSuccess(rc)); Globals.Buf.SetFormat("{0}{1}_{2}{3}", SaveFilePath, SaveFileName, SaveSlotString, SaveFileExtension); SaveFileset.ArtifactFileName = Globals.Buf.ToString().Truncate(Constants.FsFileNameLen); rc = gEngine.SplitPath(Globals.Config.RtEffectFileName, ref _saveFilePath, ref _saveFileName, ref _saveFileExtension); Debug.Assert(gEngine.IsSuccess(rc)); Globals.Buf.SetFormat("{0}{1}_{2}{3}", SaveFilePath, SaveFileName, SaveSlotString, SaveFileExtension); SaveFileset.EffectFileName = Globals.Buf.ToString().Truncate(Constants.FsFileNameLen); rc = gEngine.SplitPath(Globals.Config.RtMonsterFileName, ref _saveFilePath, ref _saveFileName, ref _saveFileExtension); Debug.Assert(gEngine.IsSuccess(rc)); Globals.Buf.SetFormat("{0}{1}_{2}{3}", SaveFilePath, SaveFileName, SaveSlotString, SaveFileExtension); SaveFileset.MonsterFileName = Globals.Buf.ToString().Truncate(Constants.FsFileNameLen); rc = gEngine.SplitPath(Globals.Config.RtHintFileName, ref _saveFilePath, ref _saveFileName, ref _saveFileExtension); Debug.Assert(gEngine.IsSuccess(rc)); Globals.Buf.SetFormat("{0}{1}_{2}{3}", SaveFilePath, SaveFileName, SaveSlotString, SaveFileExtension); SaveFileset.HintFileName = Globals.Buf.ToString().Truncate(Constants.FsFileNameLen); if (!string.IsNullOrWhiteSpace(Globals.Config.RtTriggerFileName)) // TODO: remove this check at some point { rc = gEngine.SplitPath(Globals.Config.RtTriggerFileName, ref _saveFilePath, ref _saveFileName, ref _saveFileExtension); Debug.Assert(gEngine.IsSuccess(rc)); Globals.Buf.SetFormat("{0}{1}_{2}{3}", SaveFilePath, SaveFileName, SaveSlotString, SaveFileExtension); SaveFileset.TriggerFileName = Globals.Buf.ToString().Truncate(Constants.FsFileNameLen); } if (!string.IsNullOrWhiteSpace(Globals.Config.RtScriptFileName)) // TODO: remove this check at some point { rc = gEngine.SplitPath(Globals.Config.RtScriptFileName, ref _saveFilePath, ref _saveFileName, ref _saveFileExtension); Debug.Assert(gEngine.IsSuccess(rc)); Globals.Buf.SetFormat("{0}{1}_{2}{3}", SaveFilePath, SaveFileName, SaveSlotString, SaveFileExtension); SaveFileset.ScriptFileName = Globals.Buf.ToString().Truncate(Constants.FsFileNameLen); } rc = gEngine.SplitPath(Globals.Config.RtGameStateFileName, ref _saveFilePath, ref _saveFileName, ref _saveFileExtension); Debug.Assert(gEngine.IsSuccess(rc)); Globals.Buf.SetFormat("{0}{1}_{2}{3}", SaveFilePath, SaveFileName, SaveSlotString, SaveFileExtension); SaveFileset.GameStateFileName = Globals.Buf.ToString().Truncate(Constants.FsFileNameLen); SaveConfig.RtFilesetFileName = Globals.CloneInstance(Globals.Config.RtFilesetFileName); SaveConfig.RtCharacterFileName = Globals.CloneInstance(SaveFileset.CharacterFileName); SaveConfig.RtModuleFileName = Globals.CloneInstance(SaveFileset.ModuleFileName); SaveConfig.RtRoomFileName = Globals.CloneInstance(SaveFileset.RoomFileName); SaveConfig.RtArtifactFileName = Globals.CloneInstance(SaveFileset.ArtifactFileName); SaveConfig.RtEffectFileName = Globals.CloneInstance(SaveFileset.EffectFileName); SaveConfig.RtMonsterFileName = Globals.CloneInstance(SaveFileset.MonsterFileName); SaveConfig.RtHintFileName = Globals.CloneInstance(SaveFileset.HintFileName); SaveConfig.RtTriggerFileName = Globals.CloneInstance(SaveFileset.TriggerFileName); SaveConfig.RtScriptFileName = Globals.CloneInstance(SaveFileset.ScriptFileName); SaveConfig.RtGameStateFileName = Globals.CloneInstance(SaveFileset.GameStateFileName); Globals.Config.DdFilesetFileName = SaveConfig.RtFilesetFileName; Globals.Config.DdCharacterFileName = SaveConfig.RtCharacterFileName; Globals.Config.DdModuleFileName = SaveConfig.RtModuleFileName; Globals.Config.DdRoomFileName = SaveConfig.RtRoomFileName; Globals.Config.DdArtifactFileName = SaveConfig.RtArtifactFileName; Globals.Config.DdEffectFileName = SaveConfig.RtEffectFileName; Globals.Config.DdMonsterFileName = SaveConfig.RtMonsterFileName; Globals.Config.DdHintFileName = SaveConfig.RtHintFileName; Globals.Config.DdTriggerFileName = SaveConfig.RtTriggerFileName; Globals.Config.DdScriptFileName = SaveConfig.RtScriptFileName; Globals.Config.DdEditingFilesets = true; Globals.Config.DdEditingCharacters = true; Globals.Config.DdEditingModules = true; Globals.Config.DdEditingRooms = true; Globals.Config.DdEditingArtifacts = true; Globals.Config.DdEditingEffects = true; Globals.Config.DdEditingMonsters = true; Globals.Config.DdEditingHints = true; Globals.Config.DdEditingTriggers = true; Globals.Config.DdEditingScripts = true; FullArtifactList = Globals.Database.ArtifactTable.Records.ToList(); foreach (var artifact in FullArtifactList) { if (artifact.IsCarriedByCharacter()) { artifact.SetCarriedByMonsterUid(gGameState.Cm); } else if (artifact.IsWornByCharacter()) { artifact.SetWornByMonsterUid(gGameState.Cm); } } GameSaved = true; rc = SaveConfig.SaveGameDatabase(false); if (gEngine.IsFailure(rc)) { Globals.Error.WriteLine("Error: SaveGameDatabase function call failed"); GameSaved = false; } foreach (var artifact in FullArtifactList) { if (artifact.IsCarriedByMonsterUid(gGameState.Cm)) { artifact.SetCarriedByCharacter(); } else if (artifact.IsWornByMonsterUid(gGameState.Cm)) { artifact.SetWornByCharacter(); } } rc = Globals.Database.SaveConfigs(SaveFileset.ConfigFileName, false); if (gEngine.IsFailure(rc)) { Globals.Error.WriteLine("Error: SaveConfigs function call failed"); GameSaved = false; } SaveConfig.Dispose(); gOut.Print(GameSaved ? "Game saved." : "Game not saved."); if (NextState == null) { NextState = Globals.CreateInstance <IStartState>(); } Globals.RevealContentCounter++; }
protected virtual void OnSave(Document input, Stream output, SaveConfig token, Surface scratchSurface, ProgressEventHandler callback) { }
protected override void OnSave(Document input, Stream output, SaveConfig token, Surface scratchSurface, ProgressEventHandler callback) { Save(input, output, scratchSurface, this.ImageFormat, callback); }
void Update() { if(fbd.state == myFileBrowserDialog.BrowserState.Selected) { if(isNewProject) { InputField IFnewProject = transform.Find("Panel_LoadSaveMenu").Find("InputField_SelectOSM").GetComponent<InputField>(); IFnewProject.text = fbd.selectedPath; isNewProject = false; } else if(isLoadProject) { InputField IFloadProject = transform.Find("Panel_LoadSaveMenu").Find("InputField_SelectProject").GetComponent<InputField>(); IFloadProject.text = fbd.selectedPath; isLoadProject = false; } else if(isSaveProject) { string path = fbd.selectedPath + "/" + fbd.saveName; string osmPath = scene.OSMPath; SaveConfig save = new SaveConfig(path, scene); save.saveConfigurations(); Debug.Log("Successfully Saved"); isSaveProject = false; } } }
protected virtual void OnSaveConfig() { SaveConfig?.Invoke(this, EventArgs.Empty); }
public override void Execute() { RetCode rc; Globals.RevealContentCounter--; OrigCurrState = Globals.CurrState; SaveFilesetsCount = Globals.Database.GetFilesetsCount(); Debug.Assert(SaveFilesetsCount <= gEngine.NumSaveSlots); Debug.Assert(SaveSlot >= 1 && SaveSlot <= SaveFilesetsCount); SaveFilesetList = Globals.Database.FilesetTable.Records.OrderBy(f => f.Uid).ToList(); SaveFileset = SaveFilesetList[(int)SaveSlot - 1]; SaveConfig = Globals.CreateInstance <IConfig>(); try { rc = Globals.Database.LoadConfigs(SaveFileset.ConfigFileName, printOutput: false); if (gEngine.IsFailure(rc)) { Globals.Error.Write("Error: LoadConfigs function call failed"); Globals.ExitType = ExitType.Error; Globals.MainLoop.ShouldShutdown = false; goto Cleanup; } Globals.Config = gEngine.GetConfig(); if (Globals.Config == null || Globals.Config.Uid <= 0) { Globals.Error.Write("{0}Error: {1}", Environment.NewLine, Globals.Config == null ? "Globals.Config == null" : "Globals.Config.Uid <= 0"); Globals.ExitType = ExitType.Error; Globals.MainLoop.ShouldShutdown = false; goto Cleanup; } SaveConfig.RtFilesetFileName = Globals.CloneInstance(Globals.Config.RtFilesetFileName); SaveConfig.RtCharacterFileName = Globals.CloneInstance(SaveFileset.CharacterFileName); SaveConfig.RtModuleFileName = Globals.CloneInstance(SaveFileset.ModuleFileName); SaveConfig.RtRoomFileName = Globals.CloneInstance(SaveFileset.RoomFileName); SaveConfig.RtArtifactFileName = Globals.CloneInstance(SaveFileset.ArtifactFileName); SaveConfig.RtEffectFileName = Globals.CloneInstance(SaveFileset.EffectFileName); SaveConfig.RtMonsterFileName = Globals.CloneInstance(SaveFileset.MonsterFileName); SaveConfig.RtHintFileName = Globals.CloneInstance(SaveFileset.HintFileName); SaveConfig.RtTriggerFileName = Globals.CloneInstance(SaveFileset.TriggerFileName); SaveConfig.RtScriptFileName = Globals.CloneInstance(SaveFileset.ScriptFileName); SaveConfig.RtGameStateFileName = Globals.CloneInstance(SaveFileset.GameStateFileName); rc = SaveConfig.LoadGameDatabase(printOutput: false); if (gEngine.IsFailure(rc)) { Globals.Error.Write("Error: LoadGameDatabase function call failed"); Globals.ExitType = ExitType.Error; Globals.MainLoop.ShouldShutdown = false; goto Cleanup; } // fileset is now invalid Globals.Character = Globals.Database.CharacterTable.Records.FirstOrDefault(); if (gCharacter == null || gCharacter.Uid <= 0 || gCharacter.Status != Status.Adventuring || string.IsNullOrWhiteSpace(gCharacter.Name) || gCharacter.Name.Equals("NONE", StringComparison.OrdinalIgnoreCase)) { Globals.Error.Write("{0}Error: {1}", Environment.NewLine, gCharacter == null ? "gCharacter == null" : gCharacter.Uid <= 0 ? "gCharacter.Uid <= 0" : gCharacter.Status != Status.Adventuring ? "gCharacter.Status != Status.Adventuring" : string.IsNullOrWhiteSpace(gCharacter.Name) ? "string.IsNullOrWhiteSpace(gCharacter.Name)" : "gCharacter.Name.Equals(\"NONE\", StringComparison.OrdinalIgnoreCase)"); Globals.ExitType = ExitType.Error; Globals.MainLoop.ShouldShutdown = false; goto Cleanup; } Globals.Module = gEngine.GetModule(); if (Globals.Module == null || Globals.Module.Uid <= 0) { Globals.Error.Write("{0}Error: {1}", Environment.NewLine, Globals.Module == null ? "Globals.Module == null" : "Globals.Module.Uid <= 0"); Globals.ExitType = ExitType.Error; Globals.MainLoop.ShouldShutdown = false; goto Cleanup; } Globals.GameState = gEngine.GetGameState(); if (gGameState == null || gGameState.Uid <= 0) { Globals.Error.Write("{0}Error: {1}", Environment.NewLine, gGameState == null ? "gGameState == null" : "gGameState.Uid <= 0"); Globals.ExitType = ExitType.Error; Globals.MainLoop.ShouldShutdown = false; goto Cleanup; } CharacterRoom = gRDB[gGameState.Ro]; if (CharacterRoom == null) { Globals.Error.Write("{0}Error: room == null", Environment.NewLine); Globals.ExitType = ExitType.Error; Globals.MainLoop.ShouldShutdown = false; goto Cleanup; } FullArtifactList = Globals.Database.ArtifactTable.Records.ToList(); foreach (var artifact in FullArtifactList) { if (artifact.IsCarriedByMonsterUid(gGameState.Cm)) { artifact.SetCarriedByCharacter(); } else if (artifact.IsWornByMonsterUid(gGameState.Cm)) { artifact.SetWornByCharacter(); } } FullMonsterList = Globals.Database.MonsterTable.Records.ToList(); foreach (var monster in FullMonsterList) { monster.InitGroupCount = monster.CurrGroupCount; if (!Enum.IsDefined(typeof(Friendliness), monster.Reaction)) { monster.ResolveReaction(gCharacter); } } rc = gEngine.ValidateRecordsAfterDatabaseLoaded(); if (gEngine.IsFailure(rc)) { Globals.Error.Write("Error: ValidateRecordsAfterDatabaseLoaded function call failed"); Globals.ExitType = ExitType.Error; Globals.MainLoop.ShouldShutdown = false; goto Cleanup; } } finally { SaveConfig.Dispose(); } gSentenceParser.LastInputStr = ""; gSentenceParser.Clear(); gCommandParser.LastInputStr = ""; gCommandParser.LastHimNameStr = ""; gCommandParser.LastHerNameStr = ""; gCommandParser.LastItNameStr = ""; gCommandParser.LastThemNameStr = ""; gGameState.R2 = gGameState.Ro; gOut.Print("Game restored."); gEngine.CreateInitialState(true); NextState = Globals.CurrState; Globals.CurrState = OrigCurrState; Cleanup: Globals.RevealContentCounter++; }