Beispiel #1
0
        public void BuildPacket(ref PacketWriter packet, bool create)
        {
            //Append the packets for each touched field type
            // - Order matters here so might need to reorder down the line
            if (isTouched(OBJECT_TYPES.TYPE_OBJECT))
            {
                AppendPacket(ref m_objectfields, ref m_objectvalues, ref packet, create);
            }
            if (isTouched(OBJECT_TYPES.TYPE_UNIT))
            {
                AppendPacket(ref m_unitfields, ref m_unitvalues, ref packet, create);
            }
            if (isTouched(OBJECT_TYPES.TYPE_PLAYER))
            {
                AppendPacket(ref m_playerfields, ref m_playervalues, ref packet, create);
            }
            if (isTouched(OBJECT_TYPES.TYPE_ITEM))
            {
                AppendPacket(ref m_itemfields, ref m_itemvalues, ref packet, create);
            }
            if (isTouched(OBJECT_TYPES.TYPE_CONTAINER))
            {
                AppendPacket(ref m_containerfields, ref m_containervalues, ref packet, create);
            }
            if (isTouched(OBJECT_TYPES.TYPE_GAMEOBJECT))
            {
                AppendPacket(ref m_gameobjectfields, ref m_gameobjectvalues, ref packet, create);
            }
            if (isTouched(OBJECT_TYPES.TYPE_DYNAMICOBJECT))
            {
                AppendPacket(ref m_dynamicobjectfields, ref m_dynamicobjectvalues, ref packet, create);
            }

            if (Opcodes.SMSG_UPDATE_OBJECT == packet.Opcode)
            {
                packet.Compress();
            }
        }