//--------------------------------------------------------------------------- // // spritepm.h // // Copyright (c) 1999 Martin R. Jones // #ifndef SPRITEPM_H #define SPRITEPM_H #ifdef HAVE_CONFIG_H #include #endif #include #include #include #include #include //--------------------------------------------------------------------------- // // SpritePixmapManager stores the frames used in animations. // class SpritePixmapManager { public: SpritePixmapManager(); virtual ~SpritePixmapManager(); void setPixmapDir(const TQString &dir) { mPixmapDir = dir; } void reset() { mPixmapDir = "."; mPixmaps.clear(); } const TQPixmap *load(const TQString & img); const TQPixmap *pixmap(const char *img) const { return mPixmaps.find(img); } static SpritePixmapManager *manager(); public: TQString mPixmapDir; // get pixmaps from here TQDict mPixmaps; // list of pixmaps static SpritePixmapManager *mManager; // static pointer to instance }; //--------------------------------------------------------------------------- // class SpritePixmapSequence : public TQCanvasPixmapArray { public: SpritePixmapSequence(TQPtrList pm, TQPtrList hs, TQMemArray d); int delay(int i) const { return mDelays[i]; } protected: TQMemArray mDelays; }; //--------------------------------------------------------------------------- // // SpriteManager stores the animation sequences // class SpriteSequenceManager { public: SpriteSequenceManager(); ~SpriteSequenceManager(); SpritePixmapSequence *load(KConfigBase &config, const TQString & name); SpritePixmapSequence *sprite(const char *name) { return mSprites.find(name); } static SpriteSequenceManager *manager(); protected: SpritePixmapSequence *read(KConfigBase &config); protected: TQDict mSprites; static SpriteSequenceManager *mManager; }; #endif // SPRITEPM_H