#ifndef OGSPRITE_H
#define OGSPRITE_H

#include "objgfx30.h"

class ogSprite {
  protected:
   void *       image;
   uInt32       imageSize;
   ogRGBA*      pal;
   uInt32       width, height;
   uInt32       bitDepth;            // make this 32-bit just for alignment purposes
   uInt32       RFP;
   uInt32       GFP;
   uInt32       BFP;
   uInt32       AFP;
   uInt32       RShift;
   uInt32       GShift;
   uInt32       BShift;
   uInt32       AShift;
   uInt32       tColour;             // original transparent colour
   uInt32       getPixel(void *);
   void         setPixel(void *, uInt32);
   void         unpackRGB(uInt32, uInt8&, uInt8&, uInt8&);
  public:
                ogSprite(void);
   void         get(ogSurface&, int32, int32, int32, int32);
   uInt32       getHeight(void) { return height; }
   uInt32       getSize(void);
   uInt32       getWidth(void) { return width; }
   bool         load(const char *);
   virtual bool loadFrom(const char *, uInt32);
   virtual void put(ogSurface&, int32, int32);
   bool         save(const char *);
   virtual bool saveTo(const char *, int32);
   virtual      ~ogSprite(void);
   
}; // ogSprite
#endif
