public WarTableEntry Read(DAIIO io)
 {
     xLength = io.ReadBit2(LengthBits);
     IsEmpty = io.ReadBoolean();
     if (!IsEmpty)
     {
         WarTable = new WarTable().Read(io);
     }
     if (_isfirst)
     {
         ProgressTime = SStructure.ProjectVersion < 0x1A ? io.ReadInt32().ToUnixTime() : ((int)io.ReadInt64()).ToUnixTime();
     }
     return(this);
 }
        public bool Write(DAIIO io, bool skiplength = false)
        {
            try
            {
                if (!skiplength)
                {
                    io.WriteBits(Length, LengthBits);
                }
                io.WriteBoolean(IsEmpty);
                if (!IsEmpty)
                {
                    if (WarTable == null)
                    {
                        WarTable = new WarTable();
                    }
                    WarTable.Write(io);
                }
                if (_isfirst)
                {
                    if (SStructure.ProjectVersion < 0x1A)
                    {
                        io.WriteInt32(ProgressTime.ToUnixSecondsNoAdd());
                    }
                    else
                    {
                        io.WriteInt64(ProgressTime.ToUnixSecondsNoAdd());
                    }
                }

                return(true);
            }
            catch (Exception)
            {
                return(false);
            }
        }