Пример #1
0
        public BlockDBEntry Unpack(BlockDBCacheEntry cEntry)
        {
            BlockDBEntry entry;

            entry.PlayerID  = (int)((uint)cEntry.Packed >> 8);
            entry.Index     = cEntry.Index;
            entry.TimeDelta = BaseTimeDelta + cEntry.TimeDelta;

            entry.OldRaw = cEntry.OldRaw; entry.NewRaw = cEntry.NewRaw;
            entry.Flags  = (ushort)(1 << (cEntry.Packed & 0x0F));
            entry.Flags |= (ushort)((cEntry.Packed & 0xF0) << 8);
            return(entry);
        }
Пример #2
0
        public BlockDBEntry Unpack(BlockDBCacheEntry cEntry)
        {
            BlockDBEntry entry;

            entry.PlayerID = (int)(cEntry.Packed1 & idMask);
            entry.Index    = cEntry.Index;
            entry.NewRaw   = cEntry.NewRaw;
            entry.OldRaw   = cEntry.OldRaw;

            const int hiTimeBits = 7 << 11;

            entry.Flags     = (ushort)(cEntry.Flags & ~hiTimeBits); // hi 3 bits for time
            entry.TimeDelta = BaseTimeDelta;

            // offset from base delta
            entry.TimeDelta += (int)(cEntry.Packed1 >> idShift); // lo 8 bits for time
            entry.TimeDelta += (cEntry.Flags & hiTimeBits) >> 3; // hi 3 bits for time
            return(entry);
        }