diff options
author | Paul Gilbert | 2010-06-04 11:28:30 +0000 |
---|---|---|
committer | Paul Gilbert | 2010-06-04 11:28:30 +0000 |
commit | 86462c66a04fd208716f072d4ba0028a04bf9ad8 (patch) | |
tree | 73c6b9f090ab91a49e22b6a294afcf2adc34b8d1 /engines/m4/mads_views.h | |
parent | 997fdac4271aac6a345bbdd0782d55d48ed0b400 (diff) | |
download | scummvm-rg350-86462c66a04fd208716f072d4ba0028a04bf9ad8.tar.gz scummvm-rg350-86462c66a04fd208716f072d4ba0028a04bf9ad8.tar.bz2 scummvm-rg350-86462c66a04fd208716f072d4ba0028a04bf9ad8.zip |
Added code and support routines for destroying animations correctly, which also necessitated changing the sprite list code
svn-id: r49426
Diffstat (limited to 'engines/m4/mads_views.h')
-rw-r--r-- | engines/m4/mads_views.h | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/engines/m4/mads_views.h b/engines/m4/mads_views.h index 31b8cd891f..98944e6468 100644 --- a/engines/m4/mads_views.h +++ b/engines/m4/mads_views.h @@ -72,17 +72,16 @@ enum SpriteIdSpecial { SPRITE_FOUR = 4 }; -typedef Common::Array<Common::SharedPtr<SpriteAsset> > SpriteList; - class MadsSpriteSlots { private: MadsView &_owner; Common::Array<MadsSpriteSlot> _entries; - SpriteList _sprites; + Common::Array<SpriteAsset *> _sprites; public: int startIndex; MadsSpriteSlots(MadsView &owner); + ~MadsSpriteSlots(); MadsSpriteSlot &operator[](int idx) { assert(idx < SPRITE_SLOTS_SIZE); @@ -90,11 +89,12 @@ public: } SpriteAsset &getSprite(int idx) { assert(idx < (int)_sprites.size()); - return *_sprites[idx].get(); + return *_sprites[idx]; } int getIndex(); int addSprites(const char *resName); + void deleteSprites(int listIndex); void clear(); void deleteTimer(int seqIndex); @@ -359,6 +359,7 @@ public: void tick(); void delay(uint32 v1, uint32 v2); void setAnimRange(int seqIndex, int startVal, int endVal); + void scan(); }; class Animation { @@ -367,10 +368,9 @@ protected: public: Animation(MadsM4Engine *vm); virtual ~Animation(); - virtual void load(const Common::String &filename, uint16 flags, M4Surface *walkSurface, M4Surface *sceneSurface) = 0; - virtual void start() = 0; - virtual bool update() = 0; - virtual void stop() = 0; + virtual void initialise(const Common::String &filename, uint16 flags, M4Surface *walkSurface, M4Surface *sceneSurface) = 0; + virtual void load(const Common::String &filename, int v0) = 0; + virtual void update() = 0; virtual void setCurrentFrame(int frameNumber) = 0; }; |