/*
** includes + classbase definition for the bmp.datatype
*/

#if !defined(__GNUC__)
#define REG(x)
#else
#define REG(x) asm(#x)
#endif

#include <exec/memory.h>
#include <dos/dos.h>
#include <graphics/gfx.h>
#include <datatypes/pictureclass.h>

struct ClassBase {
  struct Library          cb_Library;
  UWORD                   cb_Pad1;
  BPTR                    cb_SegList;
  struct ExecBase        *cb_SysBase;
  struct DosLibrary      *cb_DOSBase;
  struct IntuitionBase   *cb_IntuitionBase;
  struct GfxBase         *cb_GfxBase;
  struct UtilityBase     *cb_UtilityBase;
  struct Library         *cb_DataTypesBase;
  struct Library         *cb_SuperClassBase;
  struct IClass          *cb_BMPClass;
  struct SignalSemaphore  cb_Lock;
  UWORD                   cb_Pad2;
};

register struct ClassBase *cb REG(a4);

#define BASE_NAME cb->cb_DataTypesBase
#include <proto/datatypes.h>
#undef BASE_NAME

#define BASE_NAME cb->cb_GfxBase
#include <proto/graphics.h>
#undef BASE_NAME

#define BASE_NAME cb->cb_UtilityBase
#include <proto/utility.h>
#undef BASE_NAME

#define BASE_NAME cb->cb_SysBase
#include <proto/exec.h>
#undef BASE_NAME

#define BASE_NAME cb->cb_DOSBase
#include <proto/dos.h>
#undef BASE_NAME
