public void SaveVariable(int saveIndex, string savMes, VariableToken[] vars) { string filepath = getSaveDataPathV(saveIndex); EraBinaryDataWriter bWriter = null; FileStream fs = null; try { Config.CreateSavDir(); fs = new FileStream(filepath, FileMode.Create, FileAccess.Write); bWriter = new EraBinaryDataWriter(fs); bWriter.WriteHeader(); bWriter.WriteFileType(EraSaveFileType.Var); bWriter.WriteInt64(gamebase.ScriptUniqueCode); bWriter.WriteInt64(gamebase.ScriptVersion); bWriter.WriteString(savMes); for(int i = 0; i < vars.Length; i++) bWriter.WriteWithKey(vars[i].Name, vars[i].GetArray()); bWriter.WriteEOF(); RESULT = 1; return; } catch (Exception) { RESULT = 0; return; } finally { if (bWriter != null) bWriter.Close(); else if (fs != null) fs.Close(); } }
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; }
public void SaveToStreamBinary(EraBinaryDataWriter bWriter, string saveDataText) { bWriter.WriteHeader(); bWriter.WriteFileType(EraSaveFileType.Normal); bWriter.WriteInt64(gamebase.ScriptUniqueCode); bWriter.WriteInt64(gamebase.ScriptVersion); bWriter.WriteString(saveDataText); bWriter.WriteInt64(varData.CharacterList.Count); for (int i = 0; i < varData.CharacterList.Count; i++) { varData.CharacterList[i].SaveToStreamBinary(bWriter, varData); } varData.SaveToStreamBinary(bWriter); bWriter.WriteEOF(); }
////これは理屈上VariableEvaluator上で動くはず //public EraDataResult checkData(int saveIndex) //{ // string filename = getSaveDataPath(saveIndex); // EraDataResult result = new EraDataResult(); // EraDataReader reader = null; // try // { // if (!File.Exists(filename)) // { // result.State = EraDataState.FILENOTFOUND; // result.DataMes = "----"; // return result; // } // reader = new EraDataReader(filename); // if (!gamebase.UniqueCodeEqualTo(reader.ReadInt64())) // { // result.State = EraDataState.GAME_ERROR; // result.DataMes = "異なるゲームのセーブデータです"; // return result; // } // Int64 version = reader.ReadInt64(); // if (!gamebase.CheckVersion(version)) // { // result.State = EraDataState.VIRSION_ERROR; // result.DataMes = "セーブデータのバーションが異なります"; // return result; // } // result.State = EraDataState.OK; // result.DataMes = reader.ReadString(); // return result; // } // catch (FileEE fee) // { // result.State = EraDataState.ETC_ERROR; // result.DataMes = fee.Message; // } // catch (Exception) // { // result.State = EraDataState.ETC_ERROR; // result.DataMes = "読み込み中にエラーが発生しました"; // } // finally // { // if (reader != null) // reader.Close(); // } // return result; //} public void SaveChara(int saveIndex, string savMes, int[] charas) { string filepath = getSaveDataPathC(saveIndex); EraBinaryDataWriter bWriter = null; FileStream fs = null; try { Config.CreateSavDir(); fs = new FileStream(filepath, FileMode.Create, FileAccess.Write); bWriter = new EraBinaryDataWriter(fs); bWriter.WriteHeader(); bWriter.WriteFileType(EraSaveFileType.CharVar); bWriter.WriteInt64(gamebase.ScriptUniqueCode); bWriter.WriteInt64(gamebase.ScriptVersion); bWriter.WriteString(savMes); bWriter.WriteInt64(charas.Length);//保存するキャラ数 for (int i = 0; i < charas.Length; i++) { varData.CharacterList[i].SaveToStreamBinary(bWriter, varData); } bWriter.WriteEOF(); RESULT = 1; return; } catch (SystemException) { RESULT = 0; return; } finally { if (bWriter != null) bWriter.Close(); else if (fs != null) fs.Close(); } }