Exemplo n.º 1
0
 public void Parse(GameBitBuffer buffer)
 {
     Field0 = buffer.ReadInt(32);
     Field1 = new IVector2D();
     Field1.Parse(buffer);
     arSnoLevelAreas = new int /* sno */[4];
     for (int i = 0; i < arSnoLevelAreas.Length; i++) arSnoLevelAreas[i] = buffer.ReadInt(32);
     snoPrevWorld = buffer.ReadInt(32);
     Field4 = buffer.ReadInt(32);
     snoPrevLevelArea = buffer.ReadInt(32);
     snoNextWorld = buffer.ReadInt(32);
     Field7 = buffer.ReadInt(32);
     snoNextLevelArea = buffer.ReadInt(32);
     snoMusic = buffer.ReadInt(32);
     snoCombatMusic = buffer.ReadInt(32);
     snoAmbient = buffer.ReadInt(32);
     snoReverb = buffer.ReadInt(32);
     snoWeather = buffer.ReadInt(32);
     snoPresetWorld = buffer.ReadInt(32);
     Field15 = buffer.ReadInt(32);
     Field16 = buffer.ReadInt(32);
     Field17 = buffer.ReadInt(32);
     Field18 = buffer.ReadInt(32);
     tCachedValues = new SceneCachedValues();
     tCachedValues.Parse(buffer);
 }
Exemplo n.º 2
0
 public void Parse(GameBitBuffer buffer)
 {
     Field0 = buffer.ReadInt(2);
     Field1 = buffer.ReadInt(32);
     Field2 = buffer.ReadInt(7);
     Field3 = buffer.ReadInt(32);
     Field4 = buffer.ReadBool();
     Field5 = buffer.ReadInt(32);
     Field6 = buffer.ReadInt(32);
     Field7 = buffer.ReadInt(32);
     Field8 = buffer.ReadInt(32);
 }
Exemplo n.º 3
0
 public override void Parse(GameBitBuffer buffer)
 {
     Field0 = buffer.ReadInt(32);
     Field1 = buffer.ReadInt(32);
 }
Exemplo n.º 4
0
 public void Parse(GameBitBuffer buffer)
 {
     Power = buffer.ReadInt(32);
     Field1 = buffer.ReadInt(32);
     Field2 = buffer.ReadInt(4);
 }
Exemplo n.º 5
0
 public void Parse(GameBitBuffer buffer)
 {
     Field0 = buffer.ReadInt(32);
     m_snoLoreLearned = new int /* sno */[256];
     for (int i = 0; i < m_snoLoreLearned.Length; i++) m_snoLoreLearned[i] = buffer.ReadInt(32);
 }
Exemplo n.º 6
0
 public void Parse(GameBitBuffer buffer)
 {
     snoQuest = buffer.ReadInt(32);
     Field1 = buffer.ReadInt(32);
     Field2 = (eField2)buffer.ReadInt(2);
 }
Exemplo n.º 7
0
 public override void Parse(GameBitBuffer buffer)
 {
     Field0 = buffer.ReadInt(3);
     Field1 = buffer.ReadCharArray(128);
     Field2 = buffer.ReadCharArray(101);
     Field3 = buffer.ReadInt(5) + (-1);
     Field4 = buffer.ReadInt(3) + (-1);
     snoActorPortrait = buffer.ReadInt(32);
     Field6 = buffer.ReadInt(7);
     Field7 = new HeroStateData();
     Field7.Parse(buffer);
     Field8 = buffer.ReadBool();
     Field9 = buffer.ReadInt(32);
     Field10 = buffer.ReadInt(32);
 }
Exemplo n.º 8
0
        public void Parse(GameBitBuffer buffer)
        {
            if (buffer.ReadBool())
            {
                Field0 = buffer.ReadInt(20);
            }
            int index = buffer.ReadInt(10) & 0xFFF;

            Attribute = GameAttribute.Attributes[index];
        }
Exemplo n.º 9
0
 public void ParseValue(GameBitBuffer buffer)
 {
     switch (Attribute.EncodingType)
     {
         case GameAttributeEncoding.Int:
             Int = buffer.ReadInt(Attribute.BitCount);
             break;
         case GameAttributeEncoding.IntMinMax:
             Int = buffer.ReadInt(Attribute.BitCount) + Attribute.Min;
             break;
         case GameAttributeEncoding.Float16:
             Float = buffer.ReadFloat16();
             break;
         case GameAttributeEncoding.Float16Or32:
             Float = buffer.ReadBool() ? buffer.ReadFloat16() : buffer.ReadFloat32();
             break;
         default:
             throw new Exception("bad voodoo");
     }
 }
Exemplo n.º 10
0
 public void Parse(GameBitBuffer buffer)
 {
     snoWorld = buffer.ReadInt(32);
     Field1 = buffer.ReadInt(32);
     snoDestLevelArea = buffer.ReadInt(32);
 }
Exemplo n.º 11
0
 public void Parse(GameBitBuffer buffer)
 {
     Field0 = buffer.ReadBool();
     snoAffixStringList = buffer.ReadInt(32);
     Field2 = buffer.ReadInt(32);
     Field3 = buffer.ReadInt(32);
 }
Exemplo n.º 12
0
 public void Parse(GameBitBuffer buffer)
 {
     Field0 = buffer.ReadInt(6) + (-2);
     Field1 = buffer.ReadInt(32);
 }
Exemplo n.º 13
0
 public void Parse(GameBitBuffer buffer)
 {
     Field0 = buffer.ReadInt(32);
     Field1 = buffer.ReadInt(5) + (-1);
     Field2 = new IVector2D();
     Field2.Parse(buffer);
 }
Exemplo n.º 14
0
 public void Parse(GameBitBuffer buffer)
 {
     Field0 = buffer.ReadFloat32();
     Field1 = new PRTransform();
     Field1.Parse(buffer);
     Field2 = buffer.ReadInt(32);
 }
Exemplo n.º 15
0
 public void Parse(GameBitBuffer buffer)
 {
     Field0 = (byte)buffer.ReadInt(8);
     Field1 = (byte)buffer.ReadInt(8);
     Field2 = (byte)buffer.ReadInt(8);
     Field3 = (byte)buffer.ReadInt(8);
 }
Exemplo n.º 16
0
 public void Parse(GameBitBuffer buffer)
 {
     Field0 = buffer.ReadInt(32);
     Field1 = buffer.ReadInt(32);
     Field2 = buffer.ReadInt(32);
     Field3 = buffer.ReadFloat32();
 }
Exemplo n.º 17
0
 public void Parse(GameBitBuffer buffer)
 {
     Field0 = new HotbarButtonData[9];
     for (int i = 0; i < Field0.Length; i++) { Field0[i] = new HotbarButtonData(); Field0[i].Parse(buffer); }
     Field1 = new SkillKeyMapping[15];
     for (int i = 0; i < Field1.Length; i++) { Field1[i] = new SkillKeyMapping(); Field1[i].Parse(buffer); }
     Field2 = buffer.ReadInt(32);
     Field3 = buffer.ReadInt(32);
     Field4 = new HirelingSavedData();
     Field4.Parse(buffer);
     Field5 = buffer.ReadInt(32);
     Field6 = new LearnedLore();
     Field6.Parse(buffer);
     snoActiveSkills = new int /* sno */[6];
     for (int i = 0; i < snoActiveSkills.Length; i++) snoActiveSkills[i] = buffer.ReadInt(32);
     snoTraits = new int /* sno */[3];
     for (int i = 0; i < snoTraits.Length; i++) snoTraits[i] = buffer.ReadInt(32);
     Field9 = new SavePointData();
     Field9.Parse(buffer);
     m_SeenTutorials = new int /* sno */[64];
     for (int i = 0; i < m_SeenTutorials.Length; i++) m_SeenTutorials[i] = buffer.ReadInt(32);
 }
Exemplo n.º 18
0
 public override void Parse(GameBitBuffer buffer)
 {
     SNOPackHash = buffer.ReadInt(32);
     ProtocolHash = buffer.ReadInt(32);
     Version = buffer.ReadCharArray(32);
 }
Exemplo n.º 19
0
 public void Parse(GameBitBuffer buffer)
 {
     Field0 = buffer.ReadInt(32);
     Field1 = buffer.ReadInt(32);
     Field2 = buffer.ReadInt(32);
     Field3 = new AABB();
     Field3.Parse(buffer);
     Field4 = new AABB();
     Field4.Parse(buffer);
     Field5 = new int[4];
     for (int i = 0; i < Field5.Length; i++) Field5[i] = buffer.ReadInt(32);
     Field6 = buffer.ReadInt(32);
 }
Exemplo n.º 20
0
 public void Parse(GameBitBuffer buffer)
 {
     Field0 = buffer.ReadBool();
     Field1 = buffer.ReadInt(32);
     Field2 = buffer.ReadInt(32);
     Field3 = buffer.ReadInt(32);
     Field4 = buffer.ReadInt(32);
     Field5 = buffer.ReadInt(32);
     Field6 = new int[2];
     for (int i = 0; i < Field6.Length; i++) Field6[i] = buffer.ReadInt(32);
     Field7 = new int[2];
     for (int i = 0; i < Field7.Length; i++) Field7[i] = buffer.ReadInt(32);
 }
Exemplo n.º 21
0
 public void Parse(GameBitBuffer buffer)
 {
     Field0 = buffer.ReadInt(32);
     Field1 = buffer.ReadInt(5);
     Field2 = buffer.ReadInt(4);
     Field3 = buffer.ReadInt(5) + (-1);
 }
Exemplo n.º 22
0
 public void Parse(GameBitBuffer buffer)
 {
     m_snoPower = buffer.ReadInt(32);
     m_gbidItem = buffer.ReadInt(32);
 }
Exemplo n.º 23
0
 public void Parse(GameBitBuffer buffer)
 {
     Field0 = new HirelingInfo[4];
     for (int i = 0; i < Field0.Length; i++) { Field0[i] = new HirelingInfo(); Field0[i].Parse(buffer); }
     Field1 = buffer.ReadInt(2);
     Field2 = buffer.ReadInt(32);
 }
Exemplo n.º 24
0
 public void Parse(GameBitBuffer buffer)
 {
     snoConversation = buffer.ReadInt(32);
     Field1 = buffer.ReadInt(32);
     Field2 = buffer.ReadBool();
     Field3 = buffer.ReadInt(32);
     Field4 = buffer.ReadInt(32);
     Field5 = buffer.ReadInt(32);
     Field6 = buffer.ReadInt(32);
     Field7 = buffer.ReadInt(32);
     Field8 = buffer.ReadInt(32);
     snoSpeakerActor = buffer.ReadInt(32);
     Field10 = buffer.ReadCharArray(49);
     Field11 = buffer.ReadInt(32);
     Field12 = buffer.ReadInt(32);
     Field13 = buffer.ReadInt(32);
     Field14 = buffer.ReadInt(32);
     Field15 = buffer.ReadInt(32);
 }
Exemplo n.º 25
0
 public void Parse(GameBitBuffer buffer)
 {
     snoWorld = buffer.ReadInt(32);
     Field1 = buffer.ReadInt(32);
 }
Exemplo n.º 26
0
 public override void Parse(GameBitBuffer buffer)
 {
     Field0 = buffer.ReadInt(4) + (-1);
 }
Exemplo n.º 27
0
 public override void Parse(GameBitBuffer buffer)
 {
     Field0 = new Vector3D();
     Field0.Parse(buffer);
     Field1 = buffer.ReadInt(32);
     Field2 = buffer.ReadInt(32);
 }
Exemplo n.º 28
0
 public void Parse(GameBitBuffer buffer)
 {
     snoTimedEvent = buffer.ReadInt(32);
     Field1 = buffer.ReadInt(32);
     Field2 = buffer.ReadInt(32);
 }
Exemplo n.º 29
0
        public static void Identify(IConnection connection, MemoryStream stream)
        {
            //We Should move this part to a more central position
            if (gameMessages == null)
            {
                gameMessages = new Dictionary<Type, Action<GameMessage, GameBitBuffer, IConnection>>();
                var actionInfos = typeof(GameRouter).GetMethods().Where(o => o.GetParameters().Where(a => a.ParameterType == typeof(GameMessage)).Count() == 1 && 
                        o.GetParameters().Where(a => a.ParameterType == typeof(IConnection)).Count() == 1 &&
                        o.GetParameters().Where(a => a.ParameterType == typeof(GameBitBuffer)).Count() == 1
                    ).ToList();
                foreach (var actionInfo in actionInfos)
                {
                    Action<GameMessage, GameBitBuffer, IConnection> action = (Action<GameMessage, GameBitBuffer, IConnection>)Delegate.CreateDelegate(typeof(Action<GameMessage, GameBitBuffer, IConnection>), actionInfo);
                    Type typ = Type.GetType("D3Sharp.Net.Game.Packets." + actionInfo.Name);
                    gameMessages.Add(typ, action);
                }
            }
            //

            GameBitBuffer _incomingBuffer = new GameBitBuffer(512);
            GameBitBuffer _outgoingBuffer = new GameBitBuffer(ushort.MaxValue);

            _outgoingBuffer.WriteInt(32, 0);

            var header = new GameHeader(stream);
            var payload = new byte[header.Length - 6];

            stream.Read(payload, 0, (int)header.Length - 6);

            _incomingBuffer.AppendData(header.Data);
            _incomingBuffer.AppendData(payload);

            while (_incomingBuffer.IsPacketAvailable())
            {
                int end = _incomingBuffer.Position;
                end += _incomingBuffer.ReadInt(32) * 8;

                while ((end - _incomingBuffer.Position) >= 9)
                {
                    GameMessage msg = _incomingBuffer.ParseMessage();

                    Logger.LogIncoming(msg);
                    try
                    {
                        if (gameMessages.ContainsKey(GetMessageType(msg.Id)))
                            gameMessages[GetMessageType(msg.Id)](msg, _outgoingBuffer, connection);
                        else
                            Logger.Debug("Unhandled game message: 0x{0:X4} {1}", msg.Id, msg.GetType().Name);
                    }
                    catch (NotImplementedException)
                    {
                        Logger.Debug("Unhandled game message: 0x{0:X4} {1}", msg.Id, msg.GetType().Name);
                    }
                }

                _incomingBuffer.Position = end;
            }
        }
Exemplo n.º 30
0
 public void Parse(GameBitBuffer buffer)
 {
     Field0 = buffer.ReadInt(32);
     Field1 = buffer.ReadInt(32);
     Field2 = buffer.ReadInt(32);
     Field3 = buffer.ReadInt(29);
     Field4 = new PlayerSavedData();
     Field4.Parse(buffer);
     Field5 = buffer.ReadInt(32);
     tQuestRewardHistory = new PlayerQuestRewardHistoryEntry[buffer.ReadInt(7)];
     for (int i = 0; i < tQuestRewardHistory.Length; i++) { tQuestRewardHistory[i] = new PlayerQuestRewardHistoryEntry(); tQuestRewardHistory[i].Parse(buffer); }
 }