mirror of
https://github.com/spiffcode/hostile-takeover.git
synced 2026-03-27 15:29:39 -06:00
55 lines
1.3 KiB
C++
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__
|