public static void Write(this CacheWriter f, ImageFile e) { UxlImageFileFlags flags = 0; if (e.Condition != null) { flags |= UxlImageFileFlags.HasCondition; } if (e.TargetName != null) { flags |= UxlImageFileFlags.HasTargetName; } if (e.TargetWidth != null) { flags |= UxlImageFileFlags.HasTargetWidth; } if (e.TargetHeight != null) { flags |= UxlImageFileFlags.HasTargetHeight; } f.Write((byte)flags); f.WriteGlobal(e.SourceName); if (flags.HasFlag(UxlImageFileFlags.HasCondition)) { f.WriteGlobal(e.Condition.Value); } if (flags.HasFlag(UxlImageFileFlags.HasTargetName)) { f.WriteGlobal(e.TargetName.Value); } if (flags.HasFlag(UxlImageFileFlags.HasTargetWidth)) { f.WriteCompressed(e.TargetWidth.Value); } if (flags.HasFlag(UxlImageFileFlags.HasTargetHeight)) { f.WriteCompressed(e.TargetHeight.Value); } }