/* $Filename:    WormWars/Source/diff.h $
 * $VER:         WormWars 5.6 $
 * $Description: Header file for Worm Wars 5.6 for Amiga $
 *
 * © Copyright 2000 James R. Jacobs.
 */

#include <exec/types.h>

/* SAME ON EACH PLATFORM --------------------------------------------------

types */

typedef signed char  ABOOL;  /* 8-bit signed quantity (replaces ABOOL) */
typedef signed char  SBYTE;  /* 8-bit signed quantity (replaces Amiga BYTE) */
typedef signed short SWORD;  /* 16-bit signed quantity (replaces Amiga WORD) */
typedef signed long  SLONG;  /* 32-bit signed quantity (same as LONG)

DIFFERING ON EACH PLATFORM ------------------------------------------------

types */

typedef signed char             COLOUR;         /* 8-bit signed */
typedef unsigned char		SCANCODE;	/* 8-bit unsigned

miscellaneous */

#define DEFAULTSET              "PROGDIR:WormWars.fset"
#define DELAY_MAX               16000L
#define DELAY_DEC                1000L
#define DELAY_MIN                6000L
#define FONTX                       8  /* in pixels... */
#define FONTY                       8
#define HISCOREDISTANCE		   13
#define SCREENXPIXEL		  639
#define SCREENYPIXEL		  245
#define STARTXPIXEL                83
#define STARTYPIXEL                11

/* scancodes */

#define ALPHAONE			0x01	/* row 1. alphabetic 1 */
#define ALPHATWO			0x02	/* row 1. alphabetic 2 */
#define ALPHATHREE			0x03	/* row 1. alphabetic 3 */
#define ALPHAFOUR			0x04	/* row 1. alphabetic 4 */
#define ALPHAFIVE			0x05	/* row 1. alphabetic 5 */
#define ALPHASIX			0x06	/* row 1. alphabetic 6 */
#define ALPHASEVEN			0x07	/* row 1. alphabetic 7 */
#define ALPHAEIGHT			0x08	/* row 1. alphabetic 8 */
#define ALPHANINE			0x09	/* row 1. alphabetic 9 */
#define NUMERICZERO			0x0F	/* row 5. numeric 0 */
#define Q					0x10	/* row 2. */
#define W					0x11	/* row 2. */
#define E					0x12	/* row 2. erase */
#define R                                       0x13    /* row 2. revert */
#define I					0x17	/* row 2. create icons? */
#define O					0x18	/* row 2. open... */
#define P					0x19	/* row 2. */
#define NUMERICONE              0x1D    /* row 5. numeric 1 */
#define NUMERICTWO              0x1E    /* row 5. numeric 2 */
#define NUMERICTHREE		0x1F	/* row 5. numeric 3 */
#define A					0x20	/* row 3. save as... */
#define S					0x21	/* row 3. save */
#define D					0x22	/* row 3. delete */
#define F					0x23	/* row 3. effects */
#define K		 			0x27	/* row 3. */
#define INTERNATIONALONE	0x2B	/* row 3. international key adj. to
										Return (on some keyboards) */
#define NUMERICFOUR             0x2D    /* row 5. numeric 4 */
#define NUMERICFIVE             0x2E    /* row 5. numeric 5 */
#define NUMERICSIX              0x2F    /* row 5. numeric 6 */
#define INTERNATIONALTWO	0x30	/* row 4. international key adj. to
										Left Shift (on some keyboards) */
#define Z                       0x31    /* row 4. undo */
#define KEY_X                   0x32    /* row 4. */
#define C					0x33	/* row 4. */
#define V					0x34	/* row 4. */
#define N					0x36	/* row 4. new */
#define M					0x37	/* row 4. music */
#define NUMERICDOT			0x3C	/* row 5. numeric . */
#define NUMERICSEVEN		0x3D	/* row 5. numeric 7 */
#define NUMERICEIGHT		0x3E	/* row 5. numeric 8 */
#define NUMERICNINE			0x3F	/* row 5. numeric 9 */
#define SPACEBAR			0x40	/* row 4. */
#define ENTER				0x43	/* row 5. numeric Enter */
#define RETURN				0x44	/* row 2. alphabetic Return */
#define ESCAPE				0x45	/* row 0. */
#define DELETE				0x46	/* row 3. */
#define NUMERICMINUS		0x4A	/* row 5. numeric - */
#define UP                      0x4C    /* row 1. */
#define DOWN				0x4D	/* row 4. */
#define RIGHT				0x4E	/* row 3. */
#define LEFT				0x4F	/* row 2. */
#define F1					0x50	/* row 0. */
#define F2					0x51	/* row 0. */
#define F3					0x52	/* row 0. */
#define F4					0x53	/* row 0. */
#define F5					0x54	/* row 0. */
#define F6					0x55	/* row 0. */
#define F7					0x56	/* row 0. */
#define F8					0x57	/* row 0. */
#define F9					0x58	/* row 0. */
#define NUMERICOPEN             0x5A    /* row 0. numeric ( */
#define NUMERICCLOSE		0x5B	/* row 0. numeric ) */
#define NUMERICSLASH		0x5C	/* row 5. numeric / */
#define NUMERICASTERISK		0x5D	/* row 5. numeric * */
#define NUMERICPLUS             0x5E    /* row 5. numeric + */
#define HELP                    0x5F    /* row 0. */
#define FIRSTQUALIFIER		0x61
#define LASTQUALIFIER		0x67
#define KEYUP                   0x80    /* key release */

/* colours */

#define BLACK		 0
#define WHITE		 1
#define DARKGREY	 2
#define MEDIUMGREY	 3
#define LIGHTGREY	 4
#define ORANGE		 5
#define PURPLE		 6
#define DARKGREEN	 8
#define GREEN		 9
#define DARKRED		10
#define RED             11
#define DARKBLUE	12
#define BLUE		13
#define DARKYELLOW	14
#define YELLOW		15

/* Must have blank line at EOF. */
