/// <summary> /// 另存当前游戏 /// isSetDirty=true 刷新存储文件(会卡) ,否则不刷新,比如自动存储的时候不需要刷新 /// isSnapshot=true 通过最近的一次快照存储游戏 /// </summary> /// <param name="ID"></param> /// <returns></returns> public virtual TGameData SaveCurGameAs(string ID, bool isSnapshot = false, bool isSetDirty = true, bool isHide = false, bool forceLocalArchive = false) { //保存 if (ID != BaseConstMgr.DBTempSaveName) { PrefsMgr.SetLastAchiveID(ID); PrefsMgr.SetLastAchiveLocal(IsCurArchivesLocal()); SettingsMgr.Save(); } ArchiveFile <TGameData> archiveFile; if (isSnapshot) { //使用最近的一次快照 if (!HasSnapshot) { throw new NotImplementedException("最近一次没有快照,请手动调用Sanpshot"); } } else { //临时快照 Snapshot(false); } if (forceLocalArchive) { archiveFile = LocalArchiveMgr.SaveFromRuntimeData(ID, CurGameData, isSetDirty, isHide); } else { archiveFile = CurArchiveMgr.SaveFromRuntimeData(ID, CurGameData, isSetDirty, isHide); } Callback_OnSaveGame?.Invoke(archiveFile); return(CurGameData); }
// 另存当前游戏 // isSetDirty=true 刷新存储文件(会卡) ,否则不刷新,比如自动存储的时候不需要刷新 // isSnapshot=true 通过最近的一次快照存储游戏 public virtual DBBaseGame SaveCurGameAs(string id, bool useSnapshot, bool isAsyn, bool isDirtyList, bool isHide, bool forceLocalArchive) { //保存 if (id != Const.STR_DBTempSaveName) { Prefers.SetLastAchiveID(id); Prefers.SetLastAchiveLocal(IsCurArchivesLocal()); } ArchiveFile <TGameData> archiveFile; if (useSnapshot) { //使用最近的一次快照 if (!HasSnapshot) { throw new NotImplementedException("最近一次没有快照,请手动调用Sanpshot"); } } else { //临时快照 Snapshot(false); } if (forceLocalArchive) { archiveFile = LocalArchiveMgr.SaveData(id, CurGameData, isAsyn, isDirtyList, isHide); } else { archiveFile = CurArchiveMgr.SaveData(id, CurGameData, isAsyn, isDirtyList, isHide); } Callback_OnSaveGame?.Invoke(archiveFile); return(CurGameData); }