hostile-takeover/game/sprite.h
2014-07-06 17:47:28 -07:00

55 lines
1.3 KiB
C++

#ifndef __SPRITE_H__
#define __SPRITE_H__
#include "game/ht.h"
namespace wi {
class Palette;
class Animation;
class AnimSprite;
class SelectionSprite;
class Sprite;
class SpriteManager {
public:
virtual void SetClipRects(Rect *prc1, Rect *prc2) = 0;
virtual AnimSprite *CreateAnimSprite() = 0;
virtual SelectionSprite *CreateSelectionSprite() = 0;
virtual void Add(Sprite *pspr) = 0;
virtual void Remove(Sprite *pspr) = 0;
virtual void Update(Sprite *pspr) = 0;
};
class Sprite : public PlatformSprite {
public:
virtual ~Sprite() {}
virtual SpriteManager *GetManager() = 0;
virtual void SetScale(float scale) = 0;
virtual void SetPosition(int x, int y) = 0;
virtual void Show(bool fShow) = 0;
virtual bool IsVisible() = 0;
virtual void GetBounds(Rect *prc) = 0;
};
class UnitGob;
class AnimSprite : public Sprite {
public:
virtual void SetPalette(Palette *ppal) = 0;
virtual void CaptureFrame(UnitGob *pgob) = 0;
virtual void SetScaleAnimation(float nScaleStart, float nScaleEnd,
dword cms, dword cmsRate, bool fAutoDestroy) = 0;
};
class DragRect;
class SelectionSprite : public Sprite {
public:
virtual void SetDragRect(const DragRect& drc) = 0;
virtual const DragRect& GetDragRect() = 0;
};
} // namespace wi
#endif // __SPRITE_H__