示例#1
0
        public void TestMultiTargetReqHS()
        {
            var         multiID = 0x1024;
            var         p       = new Point3D(1000, 100, 10);
            MultiTarget t       = new TestMultiTarget(multiID, p);

            var expected = new MultiTargetReqHS(t).Compile();

            using var ns        = PacketTestUtilities.CreateTestNetState();
            ns.ProtocolChanges |= ProtocolChanges.HighSeas;
            ns.SendMultiTargetReq(t);

            var result = ns.SendPipe.Reader.TryRead();

            AssertThat.Equal(result.Buffer[0].AsSpan(0), expected);
        }
        public void TestMultiTargetReqHS()
        {
            var         multiID = 0x1024;
            var         p       = new Point3D(1000, 100, 10);
            MultiTarget t       = new TestMultiTarget(multiID, p);

            var data = new MultiTargetReqHS(t).Compile();

            Span <byte> expectedData = stackalloc byte[30];
            var         pos          = 0;

            expectedData.Write(ref pos, (byte)0x99); // Packet ID
            expectedData.Write(ref pos, t.AllowGround);
            expectedData.Write(ref pos, t.TargetID);

#if NO_LOCAL_INIT
            expectedData.Write(ref pos, 0);
            expectedData.Write(ref pos, (ushort)0);
            expectedData.Write(ref pos, (ushort)0);
            expectedData.Write(ref pos, (byte)0);
            expectedData.Write(ref pos, (byte)0);
            expectedData.Write(ref pos, (ushort)0);
#else
            pos += 12;
#endif

            expectedData.Write(ref pos, (short)t.MultiID);
            expectedData.Write(ref pos, (ushort)t.Offset.X);
            expectedData.Write(ref pos, (ushort)t.Offset.Y);
            expectedData.Write(ref pos, (short)t.Offset.Z);

#if NO_LOCAL_INIT
            // Hue (4 bytes)
            expectedData.Write(ref pos, 0);
#endif

            AssertThat.Equal(data, expectedData);
        }