예제 #1
0
        public void Deserialize(MemoryEndianBinaryReader reader)
        {
            FieldMark fm = new FieldMark(1);

            reader.Read(fm.getData());
            if (fm.ReadMark())
            {
                int __1__ = SerializationUtil.ReadVariableLength(reader);
                byteArray = new sbyte[__1__];
                for (int i = 0; i < __1__; i++)
                {
                    byteArray[i] = reader.ReadByte();
                }
            }
            if (fm.ReadMark())
            {
                int __2__ = SerializationUtil.ReadVariableLength(reader);
                shortArray = new Int16[__2__];
                for (int i = 0; i < __2__; i++)
                {
                    shortArray[i] = reader.ReadInt16();
                }
            }
            if (fm.ReadMark())
            {
                int __3__ = SerializationUtil.ReadVariableLength(reader);
                intArray = new Int32[__3__];
                for (int i = 0; i < __3__; i++)
                {
                    intArray[i] = reader.ReadInt32();
                }
            }
            if (fm.ReadMark())
            {
                int __4__ = SerializationUtil.ReadVariableLength(reader);
                longArray = new Int64[__4__];
                for (int i = 0; i < __4__; i++)
                {
                    longArray[i] = reader.ReadInt64();
                }
            }
            if (fm.ReadMark())
            {
                int __5__ = SerializationUtil.ReadVariableLength(reader);
                floatArray = new single[__5__];
                for (int i = 0; i < __5__; i++)
                {
                    floatArray[i] = reader.ReadSingle();
                }
            }
            if (fm.ReadMark())
            {
                int __6__ = SerializationUtil.ReadVariableLength(reader);
                doubleArray = new double[__6__];
                for (int i = 0; i < __6__; i++)
                {
                    doubleArray[i] = reader.ReadDouble();
                }
            }
        }
예제 #2
0
        public void Deserialize(MemoryEndianBinaryReader reader)
        {
            FieldMark fm = new FieldMark(1);

            reader.Read(fm.getData());
            if (fm.ReadMark())
            {
                name = reader.ReadUTF();
            }
            if (fm.ReadMark())
            {
                id = reader.ReadByte();
            }
            if (fm.ReadMark())
            {
                int __0__ = SerializationUtil.ReadVariableLength(reader);
                itemInsts = new ItemInst[__0__];
                for (int i = 0; i < itemInsts.Length; i++)
                {
                    itemInsts[i] = new ItemInst();
                    itemInsts[i].Deserialize(reader);
                }
            }
            if (fm.ReadMark())
            {
                position = new Point3d();
                position.Deserialize(reader);
            }
        }
예제 #3
0
        public static void Dispatch(MemoryEndianBinaryReader reader, PlayerToBattleProxy proxy)
        {
            int fid = reader.ReadByte();

            switch (fid)
            {
            case 0:
            {
                playerPing(reader, proxy);
            }
            break;

            case 1:
            {
                playerPong(reader, proxy);
            }
            break;

            case 2:
            {
                play(reader, proxy);
            }
            break;

            case 3:
            {
                moveTo(reader, proxy);
            }
            break;
            }
        }
예제 #4
0
        protected static void sync(MemoryEndianBinaryReader reader, BattleToPlayerProxy proxy)
        {
            Sync sync;

            sync = new Sync();
            sync.Deserialize(reader);
            proxy.sync(sync);
        }
예제 #5
0
        public MessageReader(IMessageListener listener)
        {
            this.listener = listener;

            buf = new MemoryStream(64 * 1024);
            //		this.proxy = proxy;
            binaryReader = new MemoryEndianBinaryReader(EndianBitConverter.Big, buf);
        }
예제 #6
0
        public static void Dispatch(MemoryEndianBinaryReader reader, MatchToBattleProxy proxy)
        {
            int fid = reader.ReadByte();

            switch (fid)
            {
            }
        }
예제 #7
0
        protected static void moveTo(MemoryEndianBinaryReader reader, PlayerToBattleProxy proxy)
        {
            Single x;
            Single z;

            x = reader.ReadSingle();
            z = reader.ReadSingle();
            proxy.moveTo(x, z);
        }
예제 #8
0
        protected static void playerSpawned(MemoryEndianBinaryReader reader, BattleToPlayerProxy proxy)
        {
            Int32    entityId;
            SyncItem item;

            entityId = reader.ReadInt32();
            item     = new SyncItem();
            item.Deserialize(reader);
            proxy.playerSpawned(entityId, item);
        }
예제 #9
0
        protected static void onJoinArena(MemoryEndianBinaryReader reader, BattleToPlayerProxy proxy)
        {
            Int32 arenaId;
            Sync  sync;
            Int32 entityId;

            arenaId = reader.ReadInt32();
            sync    = new Sync();
            sync.Deserialize(reader);
            entityId = reader.ReadInt32();
            proxy.onJoinArena(arenaId, sync, entityId);
        }
예제 #10
0
        public void Deserialize(MemoryEndianBinaryReader reader)
        {
            FieldMark fm = new FieldMark(1);

            reader.Read(fm.GetData(), 0, fm.GetData().Length);
            if (fm.ReadMark())
            {
                x = reader.ReadSingle();
            }
            if (fm.ReadMark())
            {
                z = reader.ReadSingle();
            }
        }
예제 #11
0
        public void Deserialize(MemoryEndianBinaryReader reader)
        {
            FieldMark fm = new FieldMark(1);

            reader.Read(fm.getData());
            if (fm.ReadMark())
            {
                id = reader.ReadByte();
            }
            if (fm.ReadMark())
            {
                name = reader.ReadUTF();
            }
        }
예제 #12
0
파일: Snapshot.cs 프로젝트: brucelevis/moba
        public void Deserialize(MemoryEndianBinaryReader reader)
        {
            FieldMark fm = new FieldMark(1);

            reader.Read(fm.GetData(), 0, fm.GetData().Length);
            if (fm.ReadMark())
            {
                int __0__ = SerializationUtil.ReadVariableLength(reader);
                items = new SyncItem[__0__];
                for (int i = 0; i < items.Length; i++)
                {
                    items[i] = new SyncItem();
                    items[i].Deserialize(reader);
                }
            }
        }
예제 #13
0
파일: ItemInst.cs 프로젝트: newcl/talky
        public void Deserialize(MemoryEndianBinaryReader reader)
        {
            FieldMark fm = new FieldMark(1);

            reader.Read(fm.getData());
            if (fm.ReadMark())
            {
                seq = reader.ReadByte();
            }
            if (fm.ReadMark())
            {
                itemId = reader.ReadByte();
            }
            if (fm.ReadMark())
            {
                count = reader.ReadByte();
            }
        }
예제 #14
0
        public static void Dispatch(MemoryEndianBinaryReader reader, Client2ServerProxy proxy)
        {
            int fid = reader.ReadByte();

            switch (fid)
            {
            case 0:
            {
                fire(reader, proxy);
            }
            break;

            case 1:
            {
                useItem(reader, proxy);
            }
            break;
            }
        }
예제 #15
0
        public static void Dispatch(MemoryEndianBinaryReader reader, Server2ClientProxy proxy)
        {
            int fid = reader.ReadByte();

            switch (fid)
            {
            case 0:
            {
                onHit(reader, proxy);
            }
            break;

            case 1:
            {
                onSync(reader, proxy);
            }
            break;
            }
        }
예제 #16
0
        public static void Dispatch(MemoryEndianBinaryReader reader, BattleToPlayerProxy proxy)
        {
            int fid = reader.ReadByte();

            switch (fid)
            {
            case 0:
            {
                battlePing(reader, proxy);
            }
            break;

            case 1:
            {
                battlePong(reader, proxy);
            }
            break;

            case 2:
            {
                onJoinArena(reader, proxy);
            }
            break;

            case 3:
            {
                sync(reader, proxy);
            }
            break;

            case 4:
            {
                playerSpawned(reader, proxy);
            }
            break;
            }
        }
예제 #17
0
파일: SyncItem.cs 프로젝트: brucelevis/moba
        public void Deserialize(MemoryEndianBinaryReader reader)
        {
            FieldMark fm = new FieldMark(1);

            reader.Read(fm.GetData(), 0, fm.GetData().Length);
            if (fm.ReadMark())
            {
                entityId = reader.ReadUInt32();
            }
            if (fm.ReadMark())
            {
                timestamp = reader.ReadUInt32();
            }
            if (fm.ReadMark())
            {
                idleTime = reader.ReadUInt16();
            }
            if (fm.ReadMark())
            {
                int __1__ = SerializationUtil.ReadVariableLength(reader);
                fields = new UInt32[__1__];
                for (int i = 0; i < __1__; i++)
                {
                    fields[i] = reader.ReadUInt32();
                }
            }
            if (fm.ReadMark())
            {
                int __2__ = SerializationUtil.ReadVariableLength(reader);
                values = new Single[__2__];
                for (int i = 0; i < __2__; i++)
                {
                    values[i] = reader.ReadSingle();
                }
            }
        }
예제 #18
0
 protected static void fire(MemoryEndianBinaryReader reader, Client2ServerProxy proxy) throws Exception
예제 #19
0
 protected static void play(MemoryEndianBinaryReader reader, PlayerToBattleProxy proxy)
 {
     proxy.play();
 }
예제 #20
0
        public void read(Stream stream)
        {
            // read as mch as possible
            int bytesRead = stream.Read(buf.GetBuffer(), (int)buf.Length, (int)(buf.Capacity - buf.Length));

            //		buf.Write (buf.GetBuffer(), (int)buf.Length, (int)(bytesRead));
            //		DEBUG.Info("old length="+buf.Length+" bytesRead="+bytesRead+" new length=" + (buf.Length + bytesRead));


            buf.SetLength(buf.Length + bytesRead);

            //		if (bytesRead > 0) {
            //			DEBUG.Info ("read = " + bytesRead + " pos = " + buf.Position + " len=" + buf.Length + " remaining=" + (buf.Capacity - buf.Length));
            //		}

            buf.Position = 0;

            //		DEBUG.Info (BitConverter.ToString(buf.GetBuffer(), (int)buf.Position, (int)buf.Length));
//			bool messageRead = false;
            while (true)
            {
                if (buf.Length - buf.Position < 2)
                {
                    //no message avilable now
                    break;
                }

                UInt16 length = binaryReader.GetUInt16((int)buf.Position);
                if (buf.Length - buf.Position < length + 2)
                {
                    break;
                }

                // skip the length field
                UInt16 lengthRead = binaryReader.ReadUInt16();

                int pid = binaryReader.GetByte((int)buf.Position);
                //			DEBUG.Info ("pid=" + pid + " length=" + lengthRead + " expected=" + length);
                MemoryStream tmpStream = new MemoryStream(length);
                buf.Read(tmpStream.GetBuffer(), 0, (int)(length));
                tmpStream.SetLength(length);

                //			MemoryEndianBinaryReader tmpReader = new MemoryEndianBinaryReader (EndianBitConverter.Big, tmpStream);

                if (listener != null)
                {
                    Message message = new Message(tmpStream);
                    listener.OnMessage(message);
                }

                //			BattleToPlayerDispatcher.Dispatch(tmpReader, proxy);
            }

            MemoryStream newBuf = new MemoryStream(64 * 1024);

            if (buf.Length - buf.Position > 0)
            {
                newBuf.Write(buf.GetBuffer(), (int)buf.Position, (int)(buf.Length - buf.Position));
            }

            buf          = newBuf;
            binaryReader = new MemoryEndianBinaryReader(EndianBitConverter.Big, buf);
        }
예제 #21
0
        public void Deserialize(MemoryEndianBinaryReader reader)
        {
            FieldMark fm = new FieldMark(0);

            reader.Read(fm.GetData(), 0, fm.GetData().Length);
        }
예제 #22
0
 protected static void battlePong(MemoryEndianBinaryReader reader, BattleToPlayerProxy proxy)
 {
     proxy.battlePong();
 }
예제 #23
0
 protected static void onHit(MemoryEndianBinaryReader reader, Server2ClientProxy proxy) throws Exception