Exemplo n.º 1
0
        public void LoadFromStream(EraDataReader reader)
        {
            if (!gamebase.UniqueCodeEqualTo(reader.ReadInt64()))
                throw new FileEE("異なるゲームのセーブデータです");
            Int64 version = reader.ReadInt64();
            if (!gamebase.CheckVersion(version))
                throw new FileEE("セーブデータのバーションが異なります");
            string text = reader.ReadString();//PUTFORM
            varData.SetDefaultValue(constant);
            varData.SetDefaultLocalValue();
            varData.LastLoadVersion = version;
            //varData.LastLoadNo = dataIndex;
            varData.LastLoadText = text;

            int charaCount = (int)reader.ReadInt64();
            varData.CharacterList.Clear();
            for (int i = 0; i < charaCount; i++)
            {
                CharacterData chara = new CharacterData(constant);
                varData.CharacterList.Add(chara);
                chara.LoadFromStream(reader);
            }
            varData.LoadFromStream(reader);
            if (reader.SeekEmuStart())
            {
                if (reader.DataVersion < 1803)//キャラ2次元配列追加以前
                    for (int i = 0; i < charaCount; i++)
                        varData.CharacterList[i].LoadFromStreamExtended_Old1802(reader);
                else
                    for (int i = 0; i < charaCount; i++)
                        varData.CharacterList[i].LoadFromStreamExtended(reader);
                varData.LoadFromStreamExtended(reader, reader.DataVersion);
            }
        }