#ifndef _ISPRITE_H_
#define _ISPRITE_H_
#include "Constants.h"
class ISprite
{
private:
int type, controlType, itemType;
int status;
SDL_Rect *rect;
//SDL_Surface *surface;
public:
ISprite();
virtual ~ISprite();
// Non virtual function prototypes
SDL_Surface* loadImage(string fileName);
void applySurface(int x, int y, SDL_Surface *souce, SDL_Surface *dest, SDL_Rect *clip);
void setType(const int &spriteType);
void setControlType(const int &cType);
void setItemType(const int &iType);
void setStatus(const int &newStatus);
void setLocation(const int &x, const int &y);
void setWH(const int &width, const int &height);
int getType();
int getControlType();
int getItemType();
int getStatus();
int getX();
int getY();
int getW();
int getH();
SDL_Rect* getRect();
// Virtual function prototypes
virtual void init();
virtual void draw(SDL_Surface *screen, SDL_Rect *camera);
virtual int handleInput(SDL_Event *event);
virtual void update();
};
#endif