Пример #1
0
        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();
            }
        }
Пример #2
0
 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();
 }
Пример #3
0
        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;
        }
Пример #4
0
 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();
     }
 }
Пример #5
0
 ////これは理屈上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();
     }
 }