#ifndef GRAPHICS_PICTURES_H
#define GRAPHICS_PICTURES_H TRUE

/*
**  $VER: pictures.h V0.8B
**
**  Picture Definitions.
**
**  (C) Copyright 1996-1997 DreamWorld Productions.
**      All Rights Reserved
*/

#ifndef DPKERNEL_H
#include <games/dpkernel.h>
#endif

/***************************************************************************
** The picture structure for loading and depacking of pictures
*/

#define PICVERSION   1
#define TAGS_PICTURE ((ID_SPCTAGS<<16)|ID_PICTURE)

struct Picture {
  struct Head Head;    /* Standard header structure */
  APTR   Data;         /* Destination or Source */
  WORD   Width;        /* Picture width in pixels */
  WORD   ByteWidth;    /* Picture width in bytes */
  WORD   Height;       /* Height */
  WORD   Planes;       /* Amount of planes */
  LONG   AmtColours;   /* Amount of colours */
  LONG   *Palette;     /* Original palette */
  WORD   ScrMode;      /* Intended screen mode for picture */
  WORD   ScrType;      /* Interleaved/Chunky/Planar */
  LONG   Options;      /* GETPALETTE/VIDEOMEM/REMAP */
  APTR   Source;       /* Filename for this picture, if any */
  WORD   ScrWidth;     /* Screen width */
  WORD   ScrHeight;    /* Screen height */

  /*** Private flags below ***/

  BYTE prvAFlags;      /* Private */
  BYTE prvPad;         /* Private */
};

#define PCA_Data       (12|TAPTR) /* Source */
#define PCA_Width      (16|TWORD) /* Picture width in pixels */
#define PCA_ByteWidth  (18|TWORD) /* Picture width in bytes */
#define PCA_Height     (20|TWORD) /* Picture height */
#define PCA_Planes     (22|TWORD) /* Amount of planes */
#define PCA_AmtColours (24|TLONG) /* Amount of colours */
#define PCA_Palette    (28|TAPTR) /* Ptr to Palette */
#define PCA_ScrMode    (32|TWORD) /* Intended screen mode for picture */
#define PCA_ScrType    (34|TWORD) /* Interleaved/Chunky/Planar */
#define PCA_Options    (36|TLONG) /* Special flags */
#define PCA_Source     (40|TAPTR) /* Where this picture comes from */
#define PCA_ScrWidth   (44|TWORD) /* Screen width */
#define PCA_ScrHeight  (46|TWORD) /* Screen height */

#define IMG_RESIZEX     0x00000001   /* Allow resize on X axis */
#define IMG_VIDEOMEM    0x00000002   /* Unpack to/Obtain chipram only */
#define IMG_REMAP       0x00000004   /* Allow remapping */
#define IMG_RESIZEY     0x00000008   /* Allow resize on Y axis */
#define IMG_BLITMEM     0x00000010   /* Unpack to blitter mem only */
#define IMG_INITIALISED 0x80000000   /* This structure has been initialised */

#define IMG_RESIZE     (IMG_RESIZEX|IMG_RESIZEY)
#define IMG_BLITTERMEM IMG_BLITMEM

#endif /* GRAPHICS_PICTURES_H */
