Esempio n. 1
0
 public void WriteFileType(EraSaveFileType type)
 {
     writer.Write((byte)type);
 }
 public void WriteFileType(EraSaveFileType type)
 {
     writer.Write((byte)type);
 }
Esempio n. 3
0
 public CheckdataMethod(string name, EraSaveFileType type)
 {
     ReturnType = typeof(Int64);
     argumentTypeArray = new Type[] { typeof(Int64) };
     CanRestructure = false;
     this.name = name;
     this.type = type;
 }
Esempio n. 4
0
 public EraDataResult CheckData(int saveIndex, EraSaveFileType type)
 {
     string filename = null;
     switch (type)
     {
         case EraSaveFileType.Normal:
             filename = getSaveDataPath(saveIndex); break;
         case EraSaveFileType.Global:
             filename = getSaveDataPathG(); break;
         case EraSaveFileType.Var:
             filename = getSaveDataPathV(saveIndex); break;
         case EraSaveFileType.CharVar:
             filename = getSaveDataPathC(saveIndex); break;
     }
     EraDataResult result = new EraDataResult();
     if (!File.Exists(filename))
     {
         result.State = EraDataState.FILENOTFOUND;
         result.DataMes = "----";
         return result;
     }
     FileStream fs = null;
     EraBinaryDataReader bReader = null;
     EraDataReader reader = null;
     Int64 version = 0;
     try
     {
         fs = new FileStream(filename, FileMode.Open, FileAccess.Read);
         bReader = EraBinaryDataReader.CreateReader(fs);
         if (bReader == null)//eramaker形式
         {
             reader = new EraDataReader(fs);
             if (!gamebase.UniqueCodeEqualTo(reader.ReadInt64()))
             {
                 result.State = EraDataState.GAME_ERROR;
                 result.DataMes = "異なるゲームのセーブデータです";
                 return result;
             }
             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;
             //result.State = EraDataState.ETC_ERROR;
             //result.DataMes = "セーブデータが壊れています";
             //return result;
         }
         EraSaveFileType fileType = bReader.ReadFileType();
         if (type != fileType)
         {
             result.State = EraDataState.ETC_ERROR;
             result.DataMes = "セーブデータが壊れています";
             return result;
         }
         if (!gamebase.UniqueCodeEqualTo(bReader.ReadInt64()))
         {
             result.State = EraDataState.GAME_ERROR;
             result.DataMes = "異なるゲームのセーブデータです";
             return result;
         }
         version = bReader.ReadInt64();
         if (!gamebase.CheckVersion(version))
         {
             result.State = EraDataState.VIRSION_ERROR;
             result.DataMes = "セーブデータのバーションが異なります";
             return result;
         }
         result.State = EraDataState.OK;
         result.DataMes = bReader.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();
         else if (bReader != null)
             bReader.Close();
         else if (fs != null)
             fs.Close();
     }
     return result;
 }