/************************************************************************
 *                                                                      *
 * def.h                                                                *
 *                                                                      *
 * def.h is the genral include routine for all game programs. It        *
 * contains a definition of include files plus parameters and external  *
 * declaration                                                          *
 ************************************************************************/
 
/* General include files */

#define SCREEN_WIDTH           320L
#define SCREEN_HEIGHT          200L
#define SCREEN_DEPTH             5L
#define SCREEN_OFFSETX           0
#define SCREEN_OFFSETY           0
#define NO_OF_COLORS            32L

#define MAXBUF 30000

#define JOYSTICK1          0xdff00a
#define JOYSTICK2          0xdff00c
#define BUTTONS            0xbfe001
#define DOWN                  0x001
#define UP                    0x004
#define RIGHT                 0x008
#define LEFT                  0x002
#define BUTTON                0x400

typedef struct {
       short                   XOffset,YOffset;
       short                   Width,Height;
       struct Layer    *Layer;
       struct BitMap   *BitMap[2];
       struct RastPort *Rp;
       short                   XLoc,YLoc,XFrac,YFrac;
       short                   Xpos,Ypos;
       short                   Xmov,Ymov;
} PLAYER_WINDOW;

typedef struct {
    short           XOffset,YOffset;
    short           Width,Height;
    short           Flags;
    short           Background;
    short           CurX,CurY;
}   TEXT_WINDOW;

#define SCREEN1     1
#define SCREEN2     2
#define BOTHSCREENS 3
#define CURSOR      4
#define SCROLL      8
#define BACKSCREEN  0x10


/* external function declarations */

       extern void     *OpenLibrary(), *AllocRaster(), *AllocMem(), 
                       *GetColorMap(),*CreateStdIO(), *CreatePort(), 
                       *CopySBitMap(),*SyncSBitMap(), *SetRGB4();

       extern long     OpenDevice(), DoIO();

       extern struct ViewPort *ViewPortAddress();
       extern struct Layer_Info *layerinfo, *NewLayerInfo();
       extern struct Window *OpenWindow();
       extern struct Screen *OpenScreen();
       extern struct Layer     *CreateUpfrontLayer();

	extern Enable_Abort;
/* external definition for the routine.c file */



#ifndef ROUTINES
       extern struct IntuitionBase *IntuitionBase;
       extern struct GfxBase *GfxBase;
       extern struct LayersBase *LayersBase;

       extern BOOL             OpenLibs();
       void                    CloseLibs();
       extern struct BitMap    *MakeBitMap();
       void                    RemoveBitMap();
       short                   ReadJoystick();
       extern long             FileLength();
#endif

/* external definitions for the View.c file */

#ifndef VIEW
       extern struct RastPort Srp1,Srp2;
       extern BOOL ViewSetup(); /* Sets up ALL of the View and Player
                                   Window Information */
       /* ViewRemove()             Removes ALL of the stuff that 
                                   ViewSetup allocates */

       /* ToggleFrame(): Toggles between one frame and the other 
                          and keeps up the book work */

       /* GLOBAL varables for View.c */
       
       extern struct View      View;      /* The main View node for the screen display */
       extern struct View      *OldView;  /* Pointer to the old view to restore at exit*/
       extern struct ViewPort  ViewP;
       extern struct ColorMap  *cm;
       extern struct RasInfo   RasInfo;
       extern struct BitMap    *Screenbm[2];
       extern struct RastPort  Srp;
       extern struct cprlist   *LOFCprList[2];

       extern int              Display_Frame,Draw_Frame;

       extern struct Layer_Info *LayerInfo[2];


                         
                       /* Other Routines are */
       /* RemoveView() : Removes the View Structures allocated by OpenView

          FillWindow(PLAYER_WINDOW,RastPort) : Takes the X and Y
               Corrdinates, and draws the proper tiles into the screen
       */
       extern BOOL             OpenView(); /* Opens the ViewPorts */

#endif


