public bool SaveTo(int saveIndex, string saveText) { string filepath = getSaveDataPath(saveIndex); FileStream fs = null; EraDataWriter writer = null; EraBinaryDataWriter bWriter = null; try { Config.CreateSavDir(); fs = new FileStream(filepath, FileMode.Create, FileAccess.Write); if (Config.SystemSaveInBinary) { bWriter = new EraBinaryDataWriter(fs); SaveToStreamBinary(bWriter, saveText); } else { writer = new EraDataWriter(fs); SaveToStream(writer, saveText); } return true; } catch (Exception) { return false; } finally { if (writer != null) writer.Close(); else if (bWriter != null) bWriter.Close(); else if (fs != null) fs.Close(); } }
public void SaveToStream(EraDataWriter writer, string saveDataText) { writer.Write(gamebase.ScriptUniqueCode); writer.Write(gamebase.ScriptVersion); writer.Write(saveDataText); writer.Write(varData.CharacterList.Count); for (int i = 0; i < varData.CharacterList.Count; i++) { varData.CharacterList[i].SaveToStream(writer); } varData.SaveToStream(writer); writer.EmuStart(); for (int i = 0; i < varData.CharacterList.Count; i++) { varData.CharacterList[i].SaveToStreamExtended(writer); } varData.SaveToStreamExtended(writer); }
public bool SaveGlobal() { string filepath = getSaveDataPathG(); EraDataWriter writer = null; EraBinaryDataWriter bWriter = null; FileStream fs = null; try { Config.CreateSavDir(); fs = new FileStream(filepath, FileMode.Create, FileAccess.Write); if (Config.SystemSaveInBinary) { bWriter = new EraBinaryDataWriter(fs); bWriter.WriteHeader(); bWriter.WriteFileType(EraSaveFileType.Global); bWriter.WriteInt64(gamebase.ScriptUniqueCode); bWriter.WriteInt64(gamebase.ScriptVersion); bWriter.WriteString("");//saveMes varData.SaveGlobalToStreamBinary(bWriter); bWriter.WriteEOF(); } else { writer = new EraDataWriter(fs); writer.Write(gamebase.ScriptUniqueCode); writer.Write(gamebase.ScriptVersion); varData.SaveGlobalToStream(writer); writer.EmuStart(); varData.SaveGlobalToStream1808(writer); } } catch(SystemException) { throw new CodeEE("グローバルデータの保存中にエラーが発生しました"); //console.PrintError( //console.NewLine(); //return false; } finally { if (writer != null) writer.Close(); else if (bWriter != null) bWriter.Close(); else if (fs != null) fs.Close(); } return true; }