//--------------------------------------------------------------------------- // // 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 QString &dir) { mPixmapDir = dir; } void reset() { mPixmapDir = "."; mPixmaps.clear(); } const QPixmap *load(const QString & img); const QPixmap *pixmap(const char *img) const { return mPixmaps.find(img); } static SpritePixmapManager *manager(); public: QString mPixmapDir; // get pixmaps from here QDict mPixmaps; // list of pixmaps static SpritePixmapManager *mManager; // static pointer to instance }; //--------------------------------------------------------------------------- // class SpritePixmapSequence : public QCanvasPixmapArray { public: SpritePixmapSequence(QPtrList pm, QPtrList hs, QMemArray d); int delay(int i) const { return mDelays[i]; } protected: QMemArray mDelays; }; //--------------------------------------------------------------------------- // // SpriteManager stores the animation sequences // class SpriteSequenceManager { public: SpriteSequenceManager(); ~SpriteSequenceManager(); SpritePixmapSequence *load(KConfigBase &config, const QString & name); SpritePixmapSequence *sprite(const char *name) { return mSprites.find(name); } static SpriteSequenceManager *manager(); protected: SpritePixmapSequence *read(KConfigBase &config); protected: QDict mSprites; static SpriteSequenceManager *mManager; }; #endif // SPRITEPM_H