/***************************************************************************
 *
 * font.h
 *
 ***************************************************************************
 *
 * some handy font types for rendering player names, etc..
 *
 ***************************************************************************/

#ifndef FONT_H_INCLUDED
#define FONT_H_INCLUDED

/*
 * includes
 */

/*
 * defines
 */

/*
 * typedefs
 */

/*
 * structures
 */

typedef struct _spr
{
        signed short	sx,sy;
	unsigned long	flags;
	void		**pal;	// unused!
	unsigned char	data[1];
} spr;

typedef struct _sprIdxEntry
{
	spr		**sprHandle;
	signed char	x,y;
	signed char	dx,dy;
} sprIdxEntry;

typedef struct _sprIdx
{
	unsigned long	numEntries;
	unsigned long	pad;
	sprIdxEntry	entries[1];
} sprIdx;

typedef struct _fnt
{
	sprIdx		**idx;
	unsigned char	flags;
	unsigned char	pad0;
	unsigned char	chr0;
	unsigned char	chrN;
	unsigned char	xSpc;
	unsigned char	ySpc;
	unsigned char	xLft;
	unsigned char	xRgt;
	unsigned char	yTop;
	unsigned char	yBtm;
	unsigned char	yCap;
	unsigned char	yOvr;
} fnt;

/*
 * globals
 */

/*
 * function prototypes
 */

extern void FontRender(fnt *f,char *s,int x,int y,unsigned char *buffer,int bsx,int bsy,int bmod,int col);
extern int FontGetWidth(fnt *f,char *s);

#endif
