#ifndef OGSPRITE_H
#define OGSPRITE_H
#include "objgfx40.h"
class ogSprite {
protected:
void * image; // image data
uInt32 imageSize; // memory size of the image pointer
ogRGBA8 * pal; // palette (used for 8bpp sprites)
uInt32 width, height; // width and height (in pixels)
uInt32 bitDepth; // make this 32-bit just for alignment purposes
uInt32 RFP; // red field position
uInt32 GFP; // green field position
uInt32 BFP; // blue field position
uInt32 AFP; // alpha field position
uInt32 rShift; // red shifter
uInt32 gShift; // green shifter
uInt32 bShift; // blue shifter
uInt32 aShift; // alpha shifter
uInt32 tColour; // original transparent colour
uInt32 pixelFmtID; // pixel format id
uInt32 bytesPerPixel; // bytes per pixel
uInt32 dAlpha; // default alpha
uInt32 GetPixel(void *);
void SetPixel(void *, uInt32);
void Unpack(uInt32, uInt8&, uInt8&, uInt8&, uInt8&);
public:
ogSprite & operator=(ogSprite const &);
ogSprite(void);
ogSprite(const ogSprite &);
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