FI.cs 954 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. using System.Runtime.InteropServices;
  2. // ReSharper disable InconsistentNaming
  3. namespace OpenVIII
  4. {
  5. [StructLayout(LayoutKind.Explicit, Size = 12, Pack = 1)]
  6. public class FI
  7. {
  8. //changed to int because libraries require casting to int anyway.
  9. [FieldOffset(0)]
  10. public int UncompressedSize;
  11. [FieldOffset(4)]
  12. public int Offset;
  13. [FieldOffset(8)]
  14. public CompressionType CompressionType;
  15. public FI()
  16. { }
  17. public FI(int offset, int uncompressedSize, CompressionType compressionType = 0)
  18. {
  19. UncompressedSize = uncompressedSize;
  20. Offset = offset;
  21. CompressionType = compressionType;
  22. }
  23. public override string ToString() => $"{{{UncompressedSize}, {Offset}, {CompressionType}}}";
  24. public FI Adjust(int offsetForFs)
  25. {
  26. Offset += offsetForFs;
  27. return this;
  28. }
  29. }
  30. }