//中身をコピーした新しいインスタンスを作成 public AdvCustomSaveData Clone() { AdvCustomSaveData clone = new AdvCustomSaveData(); foreach (string key in Buffers.Keys) { clone.Buffers.Add(key, Buffers[key]); } return(clone); }
/// <summary> /// ゲームのデータをセーブ /// </summary> /// <param name="engine">ADVエンジン</param> /// <param name="tex">セーブアイコン</param> public void SaveGameData(AdvEngine engine, Texture2D tex, List <IAdvCustomSaveDataIO> customSaveIoList, List <IAdvCustomSaveDataIO> verstionUpSaveIoList) { Clear(); currentSenarioLabel = engine.Page.ScenarioLabel; currentPage = engine.Page.PageNo; currentGallerySceneLabel = engine.ScenarioPlayer.CurrentGallerySceneLabel; paramBuf = engine.Param.ToSaveDataBuffer(); graphicManagerBuf = engine.GraphicManager.ToSaveDataBuffer(); soundManagerBuf = SoundManager.GetInstance().ToSaveDataBuffer(); selectionManagerBuf = engine.SelectionManager.ToSaveDataBuffer(); JumpMangerBuffer = BinaryUtil.BinaryWrite(engine.ScenarioPlayer.JumpManager.Write); CustomBuffer = new AdvCustomSaveData(); CustomBuffer.WriteCustomSaveData(customSaveIoList); VersionUpBuffer = new AdvCustomSaveData(); VersionUpBuffer.WriteCustomSaveData(verstionUpSaveIoList); title = engine.Page.SaveDataTitle; Texture = tex; date = System.DateTime.Now; }
/// <summary> /// バイナリ読み込み /// </summary> /// <param name="reader"></param> public void Read(BinaryReader reader) { Clear(); int magicID = reader.ReadInt32(); if (magicID != MagicID) { throw new System.Exception("Read File Id Error"); } this.fileVersion = reader.ReadInt32(); if (fileVersion >= Version1) { title = reader.ReadString(); date = new System.DateTime(reader.ReadInt64()); currentSenarioLabel = reader.ReadString(); currentPage = reader.ReadInt32(); if (fileVersion > Version1) { currentGallerySceneLabel = reader.ReadString(); } int captureMemLen = reader.ReadInt32(); if (captureMemLen > 0) { byte[] captureMem = reader.ReadBytes(captureMemLen); Texture2D tex = new Texture2D(1, 1, TextureFormat.RGB24, false); tex.LoadImage(captureMem); Texture = tex; } else { Texture = null; } paramBuf = reader.ReadBytes(reader.ReadInt32()); graphicManagerBuf = reader.ReadBytes(reader.ReadInt32()); soundManagerBuf = reader.ReadBytes(reader.ReadInt32()); selectionManagerBuf = reader.ReadBytes(reader.ReadInt32()); if (fileVersion > Version3) { JumpMangerBuffer = reader.ReadBytes(reader.ReadInt32()); } else { JumpMangerBuffer = new byte[0]; } if (fileVersion > Version4) { CustomBuffer = new AdvCustomSaveData(reader); } else { CustomBuffer = new AdvCustomSaveData(); } if (fileVersion > Version5) { VersionUpBuffer = new AdvCustomSaveData(reader); } else { VersionUpBuffer = new AdvCustomSaveData(); } } else { throw new System.Exception(LanguageErrorMsg.LocalizeTextFormat(ErrorMsg.UnknownVersion, fileVersion)); } }