aboutsummaryrefslogtreecommitdiff
path: root/saga/animation.h
diff options
context:
space:
mode:
authorTorbjörn Andersson2005-09-23 14:29:26 +0000
committerTorbjörn Andersson2005-09-23 14:29:26 +0000
commit1897e6046ba105d03c164c24b991558754db92fc (patch)
tree96aeca8d9617bc993927de5a0f7ba3bf0a5b0c27 /saga/animation.h
parent843399b9e8ca0faa2426a683c36898c9bb37ce21 (diff)
downloadscummvm-rg350-1897e6046ba105d03c164c24b991558754db92fc.tar.gz
scummvm-rg350-1897e6046ba105d03c164c24b991558754db92fc.tar.bz2
scummvm-rg350-1897e6046ba105d03c164c24b991558754db92fc.zip
Experimental loading of the cutaway list. Next step will be to get ScummVM
to actually *play* the cutaways. I'll look into that later. svn-id: r18865
Diffstat (limited to 'saga/animation.h')
-rw-r--r--saga/animation.h16
1 files changed, 14 insertions, 2 deletions
diff --git a/saga/animation.h b/saga/animation.h
index dc138eed31..e594a0ba80 100644
--- a/saga/animation.h
+++ b/saga/animation.h
@@ -33,7 +33,6 @@ namespace Saga {
#define MAX_ANIMATIONS 10
#define DEFAULT_FRAME_TIME 140
-
#define SAGA_FRAME_START 0xF
#define SAGA_FRAME_END 0x3F
#define SAGA_FRAME_NOOP 0x1F
@@ -52,6 +51,15 @@ enum AnimationState {
ANIM_ENDSCENE = 0x80 // When animation ends, dispatch scene end event
};
+// Cutaway info array member. Cutaways are basically animations with a really
+// bad attitude.
+struct Cutaway {
+ uint16 backgroundID;
+ uint16 frameID;
+ int16 maxFrame;
+ int16 frameRate;
+};
+
// Animation info array member
struct AnimationData {
byte *resourceData;
@@ -99,6 +107,9 @@ public:
Anim(SagaEngine *vm);
~Anim(void);
+ void loadCutawayList(const byte *resourcePointer, size_t resourceLength);
+ void freeCutawayList(void);
+
void load(uint16 animId, const byte *animResourceData, size_t animResourceLength);
void freeId(uint16 animId);
void play(uint16 animId, int vectorTime, bool playing = true);
@@ -156,7 +167,8 @@ private:
SagaEngine *_vm;
AnimationData *_animations[MAX_ANIMATIONS];
-
+ Cutaway *_cutawayList;
+ int _cutawayListLength;
};
} // End of namespace Saga