

/* XFA_PackMode flags / bitfields */
#define	XFA_MODE16		0x0L			/* 00 compression 16 Bit */
#define	XFA_MODE16I		0x1L			/* 01 compression 16 Bit Interlace */
#define	XFA_MODE32		0x2L			/* 10 compression 32 Bit */
#define	XFA_MODE32I		0x3L			/* 11 compression 32 Bit Interlace */
#define	XFA_MODEI		0x1L			/* 01 mask for lace cunning mode */

/* XFA close mode definitions */
#define	CLOSE_BLANK		0L			/* close animation with blank frame */
#define	CLOSE_LOOP		1L			/* close animation with loop frame */


struct rgb					/* RGB colour triplet */
{
	SHORT	r;					/* 16 bit right-justified red (0-255) */
	SHORT	g;					/* 16 bit right-justified red (0-255) */
	SHORT	b;					/* 16 bit right-justified red (0-255) */
};


struct Mem				/* memory chunk addressing struct */
{
	VOID *Ptr;			/* pointer to chunk */
	LONG Size;			/* chunk size in bytes */
};


struct XFA_Head			/* header of IFF-XFA file */
{
	SHORT	BytesPerRow;	/* bytes per rasterline */
	SHORT	Rows;				/* bitmap rasterlines */
	LONG	ModeID;			/* graphics display mode */
	UBYTE	Depth;			/* n. of bitplanes for bitmap */
	UBYTE Flags;			/* compression mode (XFA_MODE#?) */
	LONG	NFrames;			/* number of animation frames */
};


struct XFA_CMap			/* colormap of IFF-XFA file */
{
	SHORT	NumCols;			/* n. of used colours */
	SHORT	FirstCol;		/* id of first colour */
	struct rgb Pal[256];	/* colour registers */
	LONG	Zero;				/* set to 0 */
};


