protected override void ReadData(ESPReader reader)
 {
     using (MemoryStream stream = new MemoryStream(reader.ReadBytes(size)))
         using (ESPReader subReader = new ESPReader(stream, reader.Plugin))
         {
             try
             {
                 DecksPercentBeforeShuffle = subReader.ReadSingle();
                 BlackjackPayoutRatio      = subReader.ReadSingle();
                 SlotReelStop1             = subReader.ReadUInt32();
                 SlotReelStop2             = subReader.ReadUInt32();
                 SlotReelStop3             = subReader.ReadUInt32();
                 SlotReelStop4             = subReader.ReadUInt32();
                 SlotReelStop5             = subReader.ReadUInt32();
                 SlotReelStop6             = subReader.ReadUInt32();
                 SlotReelStopW             = subReader.ReadUInt32();
                 NumberOfDecks             = subReader.ReadUInt32();
                 MaxWinnings = subReader.ReadUInt32();
                 Currency.ReadBinary(subReader);
                 WinningsQuest.ReadBinary(subReader);
                 DealerStayOnSoft17 = subReader.ReadEnum <NoYes>();
             }
             catch
             {
                 return;
             }
         }
 }
        protected override void WriteDataXML(XElement ele, ElderScrollsPlugin master)
        {
            XElement subEle;

            ele.TryPathTo("DecksPercentBeforeShuffle", true, out subEle);
            subEle.Value = DecksPercentBeforeShuffle.ToString("G15");

            ele.TryPathTo("BlackjackPayoutRatio", true, out subEle);
            subEle.Value = BlackjackPayoutRatio.ToString("G15");

            ele.TryPathTo("SlotReelStop/Symbol1", true, out subEle);
            subEle.Value = SlotReelStop1.ToString();

            ele.TryPathTo("SlotReelStop/Symbol2", true, out subEle);
            subEle.Value = SlotReelStop2.ToString();

            ele.TryPathTo("SlotReelStop/Symbol3", true, out subEle);
            subEle.Value = SlotReelStop3.ToString();

            ele.TryPathTo("SlotReelStop/Symbol4", true, out subEle);
            subEle.Value = SlotReelStop4.ToString();

            ele.TryPathTo("SlotReelStop/Symbol5", true, out subEle);
            subEle.Value = SlotReelStop5.ToString();

            ele.TryPathTo("SlotReelStop/Symbol6", true, out subEle);
            subEle.Value = SlotReelStop6.ToString();

            ele.TryPathTo("SlotReelStop/SymbolW", true, out subEle);
            subEle.Value = SlotReelStopW.ToString();

            ele.TryPathTo("NumberOfDecks", true, out subEle);
            subEle.Value = NumberOfDecks.ToString();

            ele.TryPathTo("MaxWinnings", true, out subEle);
            subEle.Value = MaxWinnings.ToString();

            ele.TryPathTo("Currency", true, out subEle);
            Currency.WriteXML(subEle, master);

            ele.TryPathTo("WinningsQuest", true, out subEle);
            WinningsQuest.WriteXML(subEle, master);

            ele.TryPathTo("DealerStayOnSoft17", true, out subEle);
            subEle.Value = DealerStayOnSoft17.ToString();
        }
 protected override void WriteData(ESPWriter writer)
 {
     writer.Write(DecksPercentBeforeShuffle);
     writer.Write(BlackjackPayoutRatio);
     writer.Write(SlotReelStop1);
     writer.Write(SlotReelStop2);
     writer.Write(SlotReelStop3);
     writer.Write(SlotReelStop4);
     writer.Write(SlotReelStop5);
     writer.Write(SlotReelStop6);
     writer.Write(SlotReelStopW);
     writer.Write(NumberOfDecks);
     writer.Write(MaxWinnings);
     Currency.WriteBinary(writer);
     WinningsQuest.WriteBinary(writer);
     writer.Write((UInt32)DealerStayOnSoft17);
 }
 public override int GetHashCode()
 {
     return(WinningsQuest.GetHashCode());
 }
        protected override void ReadDataXML(XElement ele, ElderScrollsPlugin master)
        {
            XElement subEle;

            if (ele.TryPathTo("DecksPercentBeforeShuffle", false, out subEle))
            {
                DecksPercentBeforeShuffle = subEle.ToSingle();
            }

            if (ele.TryPathTo("BlackjackPayoutRatio", false, out subEle))
            {
                BlackjackPayoutRatio = subEle.ToSingle();
            }

            if (ele.TryPathTo("SlotReelStop/Symbol1", false, out subEle))
            {
                SlotReelStop1 = subEle.ToUInt32();
            }

            if (ele.TryPathTo("SlotReelStop/Symbol2", false, out subEle))
            {
                SlotReelStop2 = subEle.ToUInt32();
            }

            if (ele.TryPathTo("SlotReelStop/Symbol3", false, out subEle))
            {
                SlotReelStop3 = subEle.ToUInt32();
            }

            if (ele.TryPathTo("SlotReelStop/Symbol4", false, out subEle))
            {
                SlotReelStop4 = subEle.ToUInt32();
            }

            if (ele.TryPathTo("SlotReelStop/Symbol5", false, out subEle))
            {
                SlotReelStop5 = subEle.ToUInt32();
            }

            if (ele.TryPathTo("SlotReelStop/Symbol6", false, out subEle))
            {
                SlotReelStop6 = subEle.ToUInt32();
            }

            if (ele.TryPathTo("SlotReelStop/SymbolW", false, out subEle))
            {
                SlotReelStopW = subEle.ToUInt32();
            }

            if (ele.TryPathTo("NumberOfDecks", false, out subEle))
            {
                NumberOfDecks = subEle.ToUInt32();
            }

            if (ele.TryPathTo("MaxWinnings", false, out subEle))
            {
                MaxWinnings = subEle.ToUInt32();
            }

            if (ele.TryPathTo("Currency", false, out subEle))
            {
                Currency.ReadXML(subEle, master);
            }

            if (ele.TryPathTo("WinningsQuest", false, out subEle))
            {
                WinningsQuest.ReadXML(subEle, master);
            }

            if (ele.TryPathTo("DealerStayOnSoft17", false, out subEle))
            {
                DealerStayOnSoft17 = subEle.ToEnum <NoYes>();
            }
        }