/* $Filename:    WormWars/Source/diff.h $
 * $VER:         WormWars 6.0 $
 *
 * © 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 APPEAR_CONSTANT           50
#define FWIDTH                 (FIELDX + 1)
#define FHEIGHT                (FIELDY + 1)
#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 ISOSQUAREX                 9
#define ISOSQUAREY                 6
#define HISCOREDISTANCE           13
#define SCREENXPIXEL             639
#define SCREENYPIXEL             245
#define SQUAREX                    9
#define SQUAREY                    6
#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 undo
#define Z                       0x31    /* row 4. */
#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. */
