Пример #1
0
        public void Open(string filePath)
        {
            FileInfo fileInfo = new FileInfo(filePath);

            if (m_Indexes == null)
                m_Indexes = new Dictionary<int, int>();
            m_UnDiacriticalIndex = new Dictionary<int, int>();
            m_TextIndexes = new Dictionary<string, int>();
            m_TextIndexesOverride = new Dictionary<string, string>();
            m_TextSortIndex = new Dictionary<int, int>();

            byte[] fileContent = new byte[fileInfo.Length];
            FileStream fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read);
            fileStream.Read(fileContent, 0, fileContent.Length);
            fileStream.Dispose();

            m_Stream = new BigEndianReader(fileContent);

            int position = m_Stream.ReadInt();
            m_Stream.Seek(position);

            int indexCount = m_Stream.ReadInt();

            for (int index = 0; index < indexCount; index += 9)
            {
                int key = m_Stream.ReadInt();
                bool diacriticalText = m_Stream.ReadBoolean();
                int pointeur = m_Stream.ReadInt();
                m_Indexes.Add(key, pointeur);

                if (diacriticalText)
                {
                    index += 4;
                    m_UnDiacriticalIndex.Add(key, m_Stream.ReadInt());
                }
                else
                    m_UnDiacriticalIndex.Add(key, pointeur);
            }

            int textIndexesCount = m_Stream.ReadInt();

            while (textIndexesCount > 0)
            {
                position = (int)m_Stream.Position;
                m_TextIndexes.Add(m_Stream.ReadUTF(), m_Stream.ReadInt());
                textIndexesCount -= (int)(m_Stream.Position - position);
            }

            textIndexesCount = m_Stream.ReadInt();

            int i = 0;

            while (textIndexesCount > 0)
            {
                position = (int)m_Stream.Position;
                m_TextSortIndex.Add(m_Stream.ReadInt(), ++i);
                textIndexesCount -= (int)(m_Stream.Position - position);
            }
        }
Пример #2
0
 public override void Deserialize(BigEndianReader reader)
 {
     int serversCount = reader.ReadUShort();
     int serversIndex;
     m_servers = new System.Collections.Generic.List<GameServerInformations>();
     for (serversIndex = 0; (serversIndex < serversCount); serversIndex = (serversIndex + 1))
     {
         GameServerInformations objectToAdd = new GameServerInformations();
         objectToAdd.Deserialize(reader);
         m_servers.Add(objectToAdd);
     }
     m_alreadyConnectedToServerId = reader.ReadVarUhShort();
     m_canCreateNewCharacter = reader.ReadBoolean();
 }
Пример #3
0
 public override void Deserialize(BigEndianReader reader)
 {
     m_serverId = reader.ReadVarUShort();
     m_address = reader.ReadUTF();
     m_port = reader.ReadUShort();
     m_canCreateNewCharacter = reader.ReadBoolean();
     int ticketCount = reader.ReadUShort();
     int ticketIndex;
     m_ticket = new System.Collections.Generic.List<byte>();
     for (ticketIndex = 0; (ticketIndex < ticketCount); ticketIndex = (ticketIndex + 1))
     {
         m_ticket.Add(reader.ReadByte());
     }
 }
Пример #4
0
 public override void Deserialize(BigEndianReader reader)
 {
     m_ObjectId = reader.ReadVarUShort();
     m_status = reader.ReadByte();
     m_completion = reader.ReadByte();
     m_isSelectable = reader.ReadBoolean();
     m_charactersCount = reader.ReadByte();
     m_date = reader.ReadDouble();
 }