/*
 * MKSoft SnakePit  Copyright (c) 1988  by Michael Sinz
 *
 * some 'stuff' program...
 */

#include	"Snake.h"

static	UBYTE	MyKeys[]="~1234567890-=\\0QWERTYUIOP[]123ASDFGHJKL;'456ZXCVBNM,./.789 ";

UBYTE	Convert_Key(Raw_Key)	USHORT	Raw_Key;
{
	Raw_Key&=0x7F;
	if (Raw_Key<0x41) return(MyKeys[Raw_Key]);
	if ((Raw_Key==0x41)||(Raw_Key==0x46)) return(8);
	if ((Raw_Key==0x43)||(Raw_Key==0x44)) return(13);
	if (Raw_Key==0x45) return(254);	/* gESC */
	return(0);
}

VOID	fix_KeyList()
{
register		short	loop;
register		short	tmp;
register		char	*new;

	for (loop=0;loop<4;loop++)
	{
		new=NULL;
		tmp=KeyList[loop].raw;
		switch (tmp)
		{
		case 0x40:	new="Sp";	break;
		case 0x43:	new="En";	break;
		case 0x44:	new="Cr";	break;

		case 0x4C:	new="UP";	break;
		case 0x4D:	new="DN";	break;
		case 0x4E:	new="RT";	break;
		case 0x4F:	new="LF";	break;

		case 0x59:	new="F0";	break;
		}
		if (new==NULL) if ((tmp>0x4F)&&(tmp<0x59)) sprintf(new="..","F%1x",tmp-0x4F);
		if (new==NULL) if (tmp<0x40) sprintf(new=".."," %c",Convert_Key(tmp));
		if (new==NULL) sprintf(new="..","%02x",tmp);
		strcpy(KeyList[loop].str,new);
	}
}

#define	Wait_Pointer_X	-9L
#define	Wait_Pointer_Y	-19L
#define	Wait_Pointer_W	16L
#define	Wait_Pointer_H	39L
static	short	Wait_Pointer[] =
{
	0x0000,0x0000,		/* All start with two zero words	*/
	0x0000,0x7FFF,	/* 2222222222222222 */
	0x0000,0x7FFF,	/* 2222222222222222 */
	0x0000,0x0000,	/*                  */
	0x0000,0x0000,	/*                  */
	0x07E0,0x0000,  /*      111111      */
	0x0210,0x0000,	/*       1    1     */
	0x0210,0x0000,	/*       1    1     */
	0x03E0,0x0000,	/*       11111      */
	0x0210,0x0000,	/*       1    1     */
	0x0210,0x0000,	/*       1    1     */
	0x07E0,0x0000,	/*      111111      */
	0x0000,0x0000,	/*                  */
	0x0410,0x0000,	/*      1     1     */
	0x0410,0x0000,	/*      1     1     */
	0x0410,0x0000,	/*      1     1     */
	0x0410,0x0000,	/*      1     1     */
	0x0410,0x0000,	/*      1     1     */
	0x0410,0x0000,	/*      1     1     */
	0x03E0,0x0000,	/*       11111      */
	0x0000,0x0000,	/*                  */
	0x03E0,0x0000,	/*       11111      */
	0x0410,0x0000,	/*      1     1     */
	0x0400,0x0000,	/*      1           */
	0x03E0,0x0000,	/*       11111      */
	0x0010,0x0000,	/*            1     */
	0x0410,0x0000,	/*      1     1     */
	0x03E0,0x0000,	/*       11111      */
	0x0000,0x0000,	/*                  */
	0x0410,0x0000,	/*      1     1     */
	0x0220,0x0000,	/*       1   1      */
	0x0140,0x0000,	/*        1 1       */
	0x0080,0x0000,	/*         1        */
	0x0080,0x0000,	/*         1        */
	0x0080,0x0000,	/*         1        */
	0x0080,0x0000,	/*         1        */
	0x0000,0x0000,	/*                  */
	0x0000,0x0000,	/*                  */
	0x0000,0x7FFF,	/* 2222222222222222 */
	0x0000,0x7FFF,	/* 2222222222222222 */
	0x0000,0x0000		/* All end with two more zero words	*/
};

/* This is the needed setup... */
VOID	ShowWait()
{
	SetPointer(MyWindow,Wait_Pointer,Wait_Pointer_H,Wait_Pointer_W,Wait_Pointer_X,Wait_Pointer_Y);
}
