/* yb2.h (c)1988 Ali T. Ozer
** The header file for YaBoing II.
** Freely distributable
*/

#include <exec/types.h>
#include <exec/memory.h>
#include <intuition/intuition.h>
#include <graphics/sprite.h>
#include <graphics/gfxbase.h>
#include <hardware/custom.h>
#include <functions.h>

#define true  1
#define false 0

#define COPYRIGHT "YaBoing II (C)1988 Ali T. Ozer  (Ali@score.stanford.edu)"

struct sprrec {
  struct SimpleSprite actualsprite;
  unsigned short *sprmem;    /* Pointer to chip memory reserved for image */
  int vx, vy, ax, ay, px, py, mode, value, type;
  unsigned long lastchange;  /* Time at which sprite last changed */
};

/* For convenience sake --- We usually use spr as sprrec pointer.
*/
#define PX      (spr->px)
#define PY      (spr->py)
#define AX      (spr->ax)
#define AY      (spr->ay)
#define VX      (spr->vx)
#define VY      (spr->vy)
#define VAL     (spr->value)
#define MODE    (spr->mode)
#define TYPE    (spr->type)
#define SPRMEM  (spr->sprmem)
#define CHANGE  (spr->lastchange)

/* Modes */
#define SPRITEALIVE 0
#define SPRITEHIT1  1
#define SPRITEHIT2  2
#define SPRITEDEAD  3

/* Types */
#define NUMSPRITE   1
#define OPSPRITE    2

/* Values */
#define DIGITVALUE  0
#define DIGITVALUES 10
#define OPVALUE     10
#define OPVALUES    7
#define OPADD 10
#define OPPOP 11
#define OPMUL 12
#define OPDIV 13
#define OPSWP 14
#define OPSUB 15
#define OPCHK 16

/* Default values for the YaBoing window.
*/
#define WINDOWX 25
#define WINDOWY 25
#define WINDOWWIDTH  168
#define WINDOWHEIGHT 54

