using System.Runtime.InteropServices;
namespace SabreTools.Data.Models.WAD3
{
///
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
public sealed class Font : FileEntry
{
///
/// Dimensions of the texture (must be divisible by 16)
///
public uint Width;
///
/// Dimensions of the texture (must be divisible by 16)
///
public uint Height;
public uint RowCount;
public uint RowHeight;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)]
public CharInfo[] FontInfo = new CharInfo[256];
/// [width][height]
public byte[][]? Data;
///
/// Number of colors used in the palette (always 256 for GoldSrc)
///
public ushort ColorsUsed;
///
/// The color palette for the mipmaps (always 256 * 3 = 768 for GoldSrc)
///
/// [ColorsUsed][3]
public byte[][] Palette { get; set; } = [];
}
}