示例#1
0
        public void Read(BinaryReader p_reader)
        {
            ReadMetaData(p_reader);
            Int32 num = p_reader.ReadInt32();

            for (Int32 i = 0; i < num; i++)
            {
                String       text         = p_reader.ReadString();
                SaveGameData saveGameData = new SaveGameData(text);
                saveGameData.Read(p_reader);
                m_saveGameData.Add(text, saveGameData);
            }
        }
        public void LoadSaveGameData(SaveGameData p_saveGameData, String p_file)
        {
            String path = Path.Combine(GamePaths.UserGamePath, p_file);

            if (File.Exists(path))
            {
                using (FileStream fileStream = File.OpenRead(path))
                {
                    using (BinaryReader binaryReader = new BinaryReader(fileStream))
                    {
                        p_saveGameData.Read(binaryReader);
                    }
                }
            }
        }
示例#3
0
        private static EDifficulty GetDifficulty(BinaryReader p_reader)
        {
            p_reader.ReadInt32();
            String text = p_reader.ReadString();

            if (text != "MainData")
            {
                LegacyLogger.Log("Not MainData: " + text);
                return(EDifficulty.NORMAL);
            }
            SaveGameData saveGameData = new SaveGameData(text);

            saveGameData.Read(p_reader);
            return(saveGameData.Get <EDifficulty>("Difficulty", EDifficulty.NORMAL));
        }
示例#4
0
        public void Read(BinaryReader p_reader)
        {
            m_sealed = true;
            Int32 num = p_reader.ReadInt32();

            if (num > 0 && m_bools == null)
            {
                m_bools = new Dictionary <String, Boolean>(num);
            }
            for (Int32 i = 0; i < num; i++)
            {
                String text = p_reader.ReadString();
                m_bools.Add(text, p_reader.ReadBoolean());
                m_mapping.Add(text, TypeCode.Boolean);
            }
            num = p_reader.ReadInt32();
            if (num > 0 && m_bytes == null)
            {
                m_bytes = new Dictionary <String, Byte>(num);
            }
            for (Int32 i = 0; i < num; i++)
            {
                String text = p_reader.ReadString();
                m_bytes.Add(text, p_reader.ReadByte());
                m_mapping.Add(text, TypeCode.Byte);
            }
            num = p_reader.ReadInt32();
            if (num > 0 && m_shorts == null)
            {
                m_shorts = new Dictionary <String, Int16>(num);
            }
            for (Int32 i = 0; i < num; i++)
            {
                String text = p_reader.ReadString();
                m_shorts.Add(text, p_reader.ReadInt16());
                m_mapping.Add(text, TypeCode.Int16);
            }
            num = p_reader.ReadInt32();
            if (num > 0 && m_ushorts == null)
            {
                m_ushorts = new Dictionary <String, UInt16>(num);
            }
            for (Int32 i = 0; i < num; i++)
            {
                String text = p_reader.ReadString();
                m_ushorts.Add(text, p_reader.ReadUInt16());
                m_mapping.Add(text, TypeCode.UInt16);
            }
            num = p_reader.ReadInt32();
            if (num > 0 && m_ints == null)
            {
                m_ints = new Dictionary <String, Int32>(num);
            }
            for (Int32 i = 0; i < num; i++)
            {
                String text = p_reader.ReadString();
                m_ints.Add(text, p_reader.ReadInt32());
                m_mapping.Add(text, TypeCode.Int32);
            }
            num = p_reader.ReadInt32();
            if (num > 0 && m_uints == null)
            {
                m_uints = new Dictionary <String, UInt32>(num);
            }
            for (Int32 i = 0; i < num; i++)
            {
                String text = p_reader.ReadString();
                m_uints.Add(text, p_reader.ReadUInt32());
                m_mapping.Add(text, TypeCode.UInt32);
            }
            num = p_reader.ReadInt32();
            if (num > 0 && m_longs == null)
            {
                m_longs = new Dictionary <String, Int64>(num);
            }
            for (Int32 i = 0; i < num; i++)
            {
                String text = p_reader.ReadString();
                m_longs.Add(text, p_reader.ReadInt64());
                m_mapping.Add(text, TypeCode.Int64);
            }
            num = p_reader.ReadInt32();
            if (num > 0 && m_ulongs == null)
            {
                m_ulongs = new Dictionary <String, UInt64>(num);
            }
            for (Int32 i = 0; i < num; i++)
            {
                String text = p_reader.ReadString();
                m_ulongs.Add(text, p_reader.ReadUInt64());
                m_mapping.Add(text, TypeCode.UInt64);
            }
            num = p_reader.ReadInt32();
            if (num > 0 && m_floats == null)
            {
                m_floats = new Dictionary <String, Single>(num);
            }
            for (Int32 i = 0; i < num; i++)
            {
                String text = p_reader.ReadString();
                m_floats.Add(text, p_reader.ReadSingle());
                m_mapping.Add(text, TypeCode.Single);
            }
            num = p_reader.ReadInt32();
            if (num > 0 && m_doubles == null)
            {
                m_doubles = new Dictionary <String, Double>(num);
            }
            for (Int32 i = 0; i < num; i++)
            {
                String text = p_reader.ReadString();
                m_doubles.Add(text, p_reader.ReadDouble());
                m_mapping.Add(text, TypeCode.Double);
            }
            num = p_reader.ReadInt32();
            if (num > 0 && m_strings == null)
            {
                m_strings = new Dictionary <String, String>(num);
            }
            for (Int32 i = 0; i < num; i++)
            {
                String text = p_reader.ReadString();
                m_strings.Add(text, p_reader.ReadString());
                m_mapping.Add(text, TypeCode.String);
            }
            num = p_reader.ReadInt32();
            if (num > 0 && m_dataObjects == null)
            {
                m_dataObjects = new Dictionary <String, SaveGameData>(num);
            }
            for (Int32 i = 0; i < num; i++)
            {
                String       text         = p_reader.ReadString();
                SaveGameData saveGameData = new SaveGameData(text);
                saveGameData.Read(p_reader);
                m_dataObjects.Add(text, saveGameData);
                m_mapping.Add(text, TypeCode.Object);
            }
        }