aboutsummaryrefslogtreecommitdiff
path: root/engines/m4/mads_views.h
diff options
context:
space:
mode:
authorPaul Gilbert2010-06-04 11:28:30 +0000
committerPaul Gilbert2010-06-04 11:28:30 +0000
commit86462c66a04fd208716f072d4ba0028a04bf9ad8 (patch)
tree73c6b9f090ab91a49e22b6a294afcf2adc34b8d1 /engines/m4/mads_views.h
parent997fdac4271aac6a345bbdd0782d55d48ed0b400 (diff)
downloadscummvm-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.h16
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;
};