public void WriteToStream(PacketStream stream)
        {
            stream.WriteString((Window != null) ? Window : String.Empty);

            stream.WriteBool(HtmlSource != null);
            if (HtmlSource != null)
            {
                stream.WriteString(HtmlSource);
            }

            stream.WriteUInt16((UInt16)Size.Width);
            stream.WriteUInt16((UInt16)Size.Height);
        }
Exemple #2
0
        private void WriteAtomDeltasSection(PacketStream stream)
        {
            stream.WriteByte((byte)SectionID.AtomDeltas);
            stream.WriteUInt16((UInt16)DeltaState.AtomDeltas.Count);

            foreach (KeyValuePair <UInt32, DreamDeltaState.AtomDelta> atomDeltaPair in DeltaState.AtomDeltas)
            {
                UInt32 atomID = atomDeltaPair.Key;
                DreamDeltaState.AtomDelta atomDelta = atomDeltaPair.Value;

                stream.WriteUInt32(atomID);

                if (atomDelta.ScreenLocation.HasValue)
                {
                    stream.WriteByte((byte)AtomDeltaValueID.ScreenLocation);
                    stream.WriteScreenLocation(atomDelta.ScreenLocation.Value);
                }

                if (atomDelta.NewIconAppearanceID.HasValue)
                {
                    stream.WriteByte((byte)AtomDeltaValueID.IconAppearance);
                    stream.WriteUInt32((UInt32)atomDelta.NewIconAppearanceID.Value);
                }

                stream.WriteByte((byte)AtomDeltaValueID.End);
            }
        }
Exemple #3
0
        public void WriteToStream(PacketStream stream)
        {
            stream.WriteUInt16((UInt16)PromptId);

            stream.WriteUInt16((UInt16)Type);
            switch (Type)
            {
            case DMValueType.Null: break;

            case DMValueType.Text: stream.WriteString((string)Value); break;

            case DMValueType.Num: stream.WriteInt32((Int32)Value); break;

            case DMValueType.Message: stream.WriteString((string)Value); break;

            default: throw new Exception("Invalid prompt response type '" + Type + "'");
            }
        }
Exemple #4
0
        public void WriteToStream(PacketStream stream)
        {
            stream.WriteString((File != null) ? File : String.Empty);
            stream.WriteUInt16(Channel);

            if (File != null)
            {
                stream.WriteByte((byte)Volume);
            }
        }
Exemple #5
0
        private void WriteAtomDeletionsSection(PacketStream stream)
        {
            stream.WriteByte((byte)SectionID.AtomDeletions);
            stream.WriteUInt16((UInt16)DeltaState.AtomDeletions.Count);

            foreach (UInt32 atomDeletion in DeltaState.AtomDeletions)
            {
                stream.WriteUInt32(atomDeletion);
            }
        }
Exemple #6
0
        private void WriteMapSection(PacketStream stream)
        {
            int mapWidth  = FullState.Levels[0].Turfs.GetLength(0);
            int mapHeight = FullState.Levels[0].Turfs.GetLength(1);

            stream.WriteUInt16((UInt16)mapWidth);
            stream.WriteUInt16((UInt16)mapHeight);
            stream.WriteUInt16((UInt16)FullState.Levels.Count);

            foreach (DreamFullState.Level level in FullState.Levels)
            {
                for (int x = 0; x < mapWidth; x++)
                {
                    for (int y = 0; y < mapHeight; y++)
                    {
                        stream.WriteUInt32(level.Turfs[x, y]);
                    }
                }
            }
        }
Exemple #7
0
        private void WriteAtomCreationsSection(PacketStream stream)
        {
            stream.WriteByte((byte)SectionID.AtomCreations);
            stream.WriteUInt16((UInt16)DeltaState.AtomCreations.Count);

            foreach (KeyValuePair <UInt32, DreamDeltaState.AtomCreation> atomCreationPair in DeltaState.AtomCreations)
            {
                DreamDeltaState.AtomCreation atomCreation = atomCreationPair.Value;

                stream.WriteUInt32(atomCreationPair.Key);
                stream.WriteByte((byte)atomCreation.Type);
                stream.WriteUInt32((UInt32)atomCreation.IconAppearanceID);
                stream.WriteUInt32(atomCreation.LocationID);
                if (atomCreation.Type == AtomType.Movable)
                {
                    stream.WriteScreenLocation(atomCreation.ScreenLocation);
                }
            }
        }
 public void WriteToStream(PacketStream stream)
 {
     stream.WriteUInt16((UInt16)PromptId);
     stream.WriteUInt16((UInt16)Types);
     stream.WriteString(Message);
 }
        public void WriteToStream(PacketStream stream)
        {
            stream.WriteByte((byte)InterfaceDescriptor.WindowDescriptors.Count);

            foreach (WindowDescriptor windowDescriptor in InterfaceDescriptor.WindowDescriptors)
            {
                stream.WriteString(windowDescriptor.Name);

                stream.WriteByte((byte)windowDescriptor.ElementDescriptors.Count);
                foreach (ElementDescriptor elementDescriptor in windowDescriptor.ElementDescriptors)
                {
                    stream.WriteString(elementDescriptor.Name);

                    if (elementDescriptor is ElementDescriptorMain)
                    {
                        stream.WriteByte((byte)DescriptorType.Main);
                    }
                    else if (elementDescriptor is ElementDescriptorChild)
                    {
                        stream.WriteByte((byte)DescriptorType.Child);
                    }
                    else if (elementDescriptor is ElementDescriptorInput)
                    {
                        stream.WriteByte((byte)DescriptorType.Input);
                    }
                    else if (elementDescriptor is ElementDescriptorButton)
                    {
                        stream.WriteByte((byte)DescriptorType.Button);
                    }
                    else if (elementDescriptor is ElementDescriptorOutput)
                    {
                        stream.WriteByte((byte)DescriptorType.Output);
                    }
                    else if (elementDescriptor is ElementDescriptorInfo)
                    {
                        stream.WriteByte((byte)DescriptorType.Info);
                    }
                    else if (elementDescriptor is ElementDescriptorMap)
                    {
                        stream.WriteByte((byte)DescriptorType.Map);
                    }
                    else if (elementDescriptor is ElementDescriptorBrowser)
                    {
                        stream.WriteByte((byte)DescriptorType.Browser);
                    }
                    else
                    {
                        throw new Exception("Invalid descriptor");
                    }

                    if (elementDescriptor.Pos.HasValue)
                    {
                        stream.WriteByte((byte)AttributeType.Pos);
                        stream.WriteUInt16((UInt16)elementDescriptor.Pos.Value.X);
                        stream.WriteUInt16((UInt16)elementDescriptor.Pos.Value.Y);
                    }

                    if (elementDescriptor.Size.HasValue)
                    {
                        stream.WriteByte((byte)AttributeType.Size);
                        stream.WriteUInt16((UInt16)elementDescriptor.Size.Value.Width);
                        stream.WriteUInt16((UInt16)elementDescriptor.Size.Value.Height);
                    }

                    if (elementDescriptor.Anchor1.HasValue)
                    {
                        stream.WriteByte((byte)AttributeType.Anchor1);
                        stream.WriteUInt16((UInt16)elementDescriptor.Anchor1.Value.X);
                        stream.WriteUInt16((UInt16)elementDescriptor.Anchor1.Value.Y);
                    }

                    if (elementDescriptor.Anchor2.HasValue)
                    {
                        stream.WriteByte((byte)AttributeType.Anchor2);
                        stream.WriteUInt16((UInt16)elementDescriptor.Anchor2.Value.X);
                        stream.WriteUInt16((UInt16)elementDescriptor.Anchor2.Value.Y);
                    }

                    if (elementDescriptor.BackgroundColor.HasValue)
                    {
                        stream.WriteByte((byte)AttributeType.BackgroundColor);
                        stream.WriteByte(elementDescriptor.BackgroundColor.Value.R);
                        stream.WriteByte(elementDescriptor.BackgroundColor.Value.G);
                        stream.WriteByte(elementDescriptor.BackgroundColor.Value.B);
                    }

                    if (elementDescriptor.IsVisible != default)
                    {
                        stream.WriteByte((byte)AttributeType.IsVisible);
                        stream.WriteBool(elementDescriptor.IsVisible.Value);
                    }

                    if (elementDescriptor.IsDefault != default)
                    {
                        stream.WriteByte((byte)AttributeType.IsDefault);
                        stream.WriteBool(elementDescriptor.IsDefault);
                    }

                    ElementDescriptorMain elementMainDescriptor = elementDescriptor as ElementDescriptorMain;
                    if (elementMainDescriptor != null)
                    {
                        if (elementMainDescriptor.IsPane != default)
                        {
                            stream.WriteByte((byte)AttributeType.IsPane);
                            stream.WriteBool(elementMainDescriptor.IsPane);
                        }
                    }

                    ElementDescriptorChild elementChildDescriptor = elementDescriptor as ElementDescriptorChild;
                    if (elementChildDescriptor != null)
                    {
                        if (elementChildDescriptor.Left != null)
                        {
                            stream.WriteByte((byte)AttributeType.Left);
                            stream.WriteString(elementChildDescriptor.Left);
                        }

                        if (elementChildDescriptor.Right != null)
                        {
                            stream.WriteByte((byte)AttributeType.Right);
                            stream.WriteString(elementChildDescriptor.Right);
                        }

                        if (elementChildDescriptor.IsVert != default)
                        {
                            stream.WriteByte((byte)AttributeType.IsVert);
                            stream.WriteBool(elementChildDescriptor.IsVert);
                        }
                    }

                    ElementDescriptorButton elementButtonDescriptor = elementDescriptor as ElementDescriptorButton;
                    if (elementButtonDescriptor != null)
                    {
                        if (elementButtonDescriptor.Text != null)
                        {
                            stream.WriteByte((byte)AttributeType.Text);
                            stream.WriteString(elementButtonDescriptor.Text);
                        }
                    }

                    stream.WriteByte((byte)AttributeType.End);
                }
            }
        }