public static void Serialize(GenericWriter writer, VirtueInfo info) { writer.Write((byte)1); // version if (info.m_Values == null) { writer.Write((byte)0); } else { int mask = 0; for (int i = 0; i < 8; ++i) { if (info.m_Values[i] != 0) { mask |= 1 << i; } } writer.Write((byte)mask); for (int i = 0; i < 8; ++i) { if (info.m_Values[i] != 0) { writer.Write(info.m_Values[i]); } } } }