Example #1
0
        public void ReadFromStream(SerializationReader r)
        {
            MatchId         = r.ReadUInt16();
            InProgress      = r.ReadBoolean();
            MultiType       = (MultiTypes)r.ReadByte();
            ActiveMods      = (Mods)r.ReadUInt32();
            GameName        = r.ReadString();
            GamePassword    = r.ReadString();
            BeatmapName     = r.ReadString();
            BeatmapId       = r.ReadInt32();
            BeatmapChecksum = r.ReadString();

            for (int i = 0; i < Constants.MultiplayerMaxPlayers; i++)
            {
                MultiSlotStatus[i] = (MultiSlotStatus)r.ReadByte();
            }

            for (int i = 0; i < Constants.MultiplayerMaxPlayers; i++)
            {
                SlotTeam[i] = (SlotTeams)r.ReadByte();
            }

            for (int i = 0; i < Constants.MultiplayerMaxPlayers; i++)
            {
                SlotId[i] = (MultiSlotStatus[i] & (MultiSlotStatus)0b01111100) > 0 ? r.ReadInt32() : -1;
            }

            HostId = r.ReadInt32();

            PlayMode = (GameMode)r.ReadByte();

            MultiWinCondition = (MultiWinConditions)r.ReadByte();
            MultiTeamType     = (MultiTeamTypes)r.ReadByte();

            SpecialModes = (MultiSpecialModes)r.ReadByte();

            if (GameName.Length > 50)
            {
                GameName = GameName.Remove(50);
            }

            if ((SpecialModes & MultiSpecialModes.FreeMod) > 0)
            {
                for (int i = 0; i < Constants.MultiplayerMaxPlayers; i++)
                {
                    SlotMods[i] = (Mods)r.ReadInt32();
                }
            }
            Seed = r.ReadInt32();
        }
        public void SetupItem(XmlNode items = null)
        {
            Parameters = new Dictionary <string, object>();

            if (items == null)
            {
                items = Items;
            }

            XmlDocument doc  = new XmlDocument();
            XmlNode     root = doc.CreateElement("MultiTypes");

            doc.AppendChild(root);
            XmlNode      xsltItem, xsltAlias;
            XmlAttribute xsltSort;

            if (items.HasChildNodes)
            {
                foreach (XmlNode xmlNode in items.ChildNodes)
                {
                    if (MultiTypes.ContainsKey(xmlNode.Name))
                    {
                        xsltAlias = doc.CreateElement(xmlNode.Name);

                        xsltItem           = doc.CreateElement("Name");
                        xsltItem.InnerText = MultiTypes[xmlNode.Name].Name;
                        xsltAlias.AppendChild(xsltItem);

                        xsltSort       = doc.CreateAttribute("sortId");
                        xsltSort.Value = MultiTypes[xmlNode.Name].SortId.ToString();
                        xsltAlias.Attributes.Append(xsltSort);

                        xsltItem           = doc.CreateElement("Value");
                        xsltItem.InnerText = xmlNode.InnerText;
                        xsltAlias.AppendChild(xsltItem);

                        root.AppendChild(xsltAlias);
                    }
                }

                Parameters.Add("MultiTypes", root.SelectSingleNode("/MultiTypes"));

                pnlMultiTypeItems.Controls.Add(new Literal()
                {
                    Text = umbraco.macro.GetXsltTransformResult(new XmlDocument(), umbraco.macro.getXslt(new Macro(MacroId).Xslt), Parameters)
                });
            }
        }