
#include "flicker.h"

extern char gemctable[];
extern char *aline;	/* aline pointer ... might as well be a char I guess */

WORD default_cursor[16] = {
		0x0000, 0x0000, 0x01C0, 0x0140, 0x0140, 0x0140, 0x0140, 0x3F7E,
		0x2002, 0x3F7E, 0x0140, 0x0140, 0x0140, 0x0140, 0x01C0, 0x0000,
		};

WORD spray1_cursor[16] = {
		0x0000, 0x0000, 0x0000, 0x0080, 0x0220, 0x0888, 0x2222, 0x0888, 
		0x2222, 0x0888, 0x2222, 0x0888, 0x0220, 0x0080, 0x0000, 0x0000,
		};

WORD spray2_cursor[16] = {
		0x0000, 0x0000, 0x0000, 0x0000, 0x02A0, 0x0000, 0x0AA8, 0x0000,
		0x0AA8, 0x0000, 0x02A0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
		};

WORD diagonal_cursor[16] = {
		0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0020, 0x0040,
		0x0080, 0x0100, 0x0200, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
		};

WORD box1_cursor[16] = {
		0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0180,
		0x0180, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
		};

WORD box2_cursor[16] = {
		0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x03C0, 0x03C0,
		0x03C0, 0x03C0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
		};

WORD box3_cursor[16] = {
		0x0000, 0x0000, 0x0000, 0x0000, 0x0FF0, 0x0FF0, 0x0FF0, 0x0FF0,
		0x0FF0, 0x0FF0, 0x0FF0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
		};

WORD box4_cursor[16] = {
		0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
		0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
		};

WORD circ1_cursor[16] = {
		0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0080,
		0x01C0, 0x0080, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
		};

WORD circ2_cursor[16] = {
		0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0180, 0x03C0,
		0x03C0, 0x0180, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
		};

WORD circ3_cursor[16] =  {
		0x0000, 0x0000, 0x0000, 0x03C0, 0x0FF0, 0x1FF8, 0x1FF8, 0x3FFC,
		0x3FFC, 0x3FFC,	0x1FF8, 0x1FF8,	0x0FF0,	0x03C0, 0x0000, 0x0000,
		};

WORD vline_cursor[16] = {
		0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0080, 0x0080,
		0x0080, 0x0080, 0x0080, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
		};

WORD cross_c[16] = {
		0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0xFFFE,
		0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0000,
		};

WORD poly_cursor[16] = {
		0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x07C0, 0x0820, 0x1010,
		0x2008, 0x1010, 0x0820, 0x07C0, 0x0000, 0x0000, 0x0000, 0x0000,
		};

WORD sharp_cursor[16] = {
		0x0000, 0x0000, 0x0220, 0x0220, 0x0220, 0x0220, 0x3FFE, 0x0220,
		0x0220, 0x0220, 0x3FFE, 0x0220, 0x0220, 0x0220, 0x0220, 0x0000,
		};

WORD hline_cursor[16] = {
		0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
		0x03E0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
		};


WORD brush_ix;

WORD *brushes[16] = {
	default_cursor, spray1_cursor, spray2_cursor, diagonal_cursor, 
	box1_cursor, box2_cursor, box3_cursor, box4_cursor,
	circ1_cursor, circ2_cursor, circ3_cursor, vline_cursor,
	cross_c, sharp_cursor, poly_cursor, hline_cursor,
	};

static WORD cursor_color;

set_brush(ix)
register WORD ix;
{
static last_ix;

brush_ix = ix;
pick_cursor();
}


pick_cursor()
{
static last_ix = -1;
WORD ix;

ix = brush_ix;
if (!use_brush_cursor)
	ix = 0;
if (ix != last_ix)
	{
	preshift(brushes[ix]);
	last_ix = ix;
	}
}

