#ifndef GAMES_GMSBASE_H
#define GAMES_GMSBASE_H

/*
**  $VER: gamesbase.h V0.7B
**
**  (C) Copyright 1996-1997 DreamWorld Productions.
**      All Rights Reserved
*/

#ifndef GMS_TYPES_H
#include <games/types.h>
#endif

#ifndef EXEC_LIBRARIES_H
#include <exec/libraries.h>
#endif

 /* All GMSBase fields are private.  This file is included in the GMS
 ** distribution for GPI writers and debugging purposes only.
 */


struct GMSBase {
  struct Library LibNode;
  UWORD  gemp;              /* Private */
  ULONG  games_SegList;     /* Private */
  
  WORD   OldMouseX1;        /* Private */
  WORD   OldMouseY1;        /* Private */
  WORD   OldMouseX2;        /* Private */
  WORD   OldMouseY2;        /* Private */
  UWORD  VBLPosition;       /* Private */
  UBYTE  ScrSwitch;         /* Private */
  UBYTE  Destruct;          /* Private */
  ULONG  RandomSeed;        /* Random seed */
  UWORD  BlitterUsed;       /* 0 = Free, 1 = Grabbed */
  UWORD  BlitterPriority;   /* 0 = NoPriority, 1 = Priority */
  APTR   CurrentScreen;     /* Currently displayed screen */
  APTR   GMSTaskList;       /* Pointer to list of all current GMS tasks */
  UWORD  HSync;             /* Private */
  ULONG  gemp2;             /* Minimum memory size for resource tracking */
  UBYTE  DebugActive;       /* Set if debugger is currently active */
  UBYTE  ScrBlanked;        /* Set if screen is currently blanked */
  UWORD  Version;           /* The version of this GMS */
  UWORD  Revision;          /* The revision of this GMS */
  APTR   ScreenList;
};

#endif /* GAMES_GMSBASE_H */
