aboutsummaryrefslogtreecommitdiff
path: root/engines/gob/mult.h
diff options
context:
space:
mode:
authorSven Hesse2006-04-12 09:49:08 +0000
committerSven Hesse2006-04-12 09:49:08 +0000
commitadbafccc64fba8f314a302042b78c2a36a61619f (patch)
tree0f5d1f58cf50c15cf4475b6a432e58bb4481d72a /engines/gob/mult.h
parent2ca3831777e091d74510e9c0244b88458d0e363d (diff)
downloadscummvm-rg350-adbafccc64fba8f314a302042b78c2a36a61619f.tar.gz
scummvm-rg350-adbafccc64fba8f314a302042b78c2a36a61619f.tar.bz2
scummvm-rg350-adbafccc64fba8f314a302042b78c2a36a61619f.zip
- Fixed the mistake in Mult_v2::loadMult() that caused Gob2 floppy to
have a messed up script-pointer afterwards - Added/Changed parts of Mult_v2::playMult() et al. so that the intro works for a few seconds (with glitches) before getting killed while trying to draw text (CD) or trying to play sounds (floppy) svn-id: r21823
Diffstat (limited to 'engines/gob/mult.h')
-rw-r--r--engines/gob/mult.h61
1 files changed, 51 insertions, 10 deletions
diff --git a/engines/gob/mult.h b/engines/gob/mult.h
index d69ee3b6c1..415675865a 100644
--- a/engines/gob/mult.h
+++ b/engines/gob/mult.h
@@ -45,6 +45,11 @@ public:
int8 newAnimation;
byte intersected;
int8 newCycle;
+ int8 somethingAnimation; // New in GOB2
+ int8 somethingLayer; // New in GOB2
+ int8 somethingFrame; // New in GOB2
+ int8 someFlag; // New in GOB2
+ int8 field_F; // New in GOB2
} GCC_PACK;
struct Mult_Object {
@@ -56,6 +61,11 @@ public:
int16 lastRight;
int16 lastTop;
int16 lastBottom;
+ int8 someFlag; // New in GOB2
+ int16 somethingLeft; // New in GOB2
+ int16 somethingTop; // New in GOB2
+ int16 somethingRight; // New in GOB2
+ int16 somethingBottom; // New in GOB2
};
struct Mult_StaticKey {
@@ -110,6 +120,7 @@ public:
Mult_Object *_objects;
int16 *_renderData;
+ Mult_Object **_renderData2;
int16 _objCount;
Video::SurfaceDesc *_underAnimSurf;
@@ -173,12 +184,11 @@ public:
int16 _sndKeysCount;
Mult_SndKey *_sndKeys;
+ int8 *_orderArray;
+
void zeroMultData(void);
void freeMultKeys(void);
void checkFreeMult(void);
- void playMult(int16 startFrame, int16 endFrame, char checkEscape,
- char handleMouse);
- void animate(void);
void interGetObjAnimSize(void);
void freeMult(void);
void interLoadMult(void);
@@ -189,6 +199,9 @@ public:
virtual void setMultData(uint16 multindex) = 0;
virtual void loadMult(int16 resId) = 0;
+ virtual void playMult(int16 startFrame, int16 endFrame, char checkEscape,
+ char handleMouse) = 0;
+ virtual void animate(void) = 0;
Mult(GobEngine *vm);
virtual ~Mult() {};
@@ -197,13 +210,13 @@ protected:
Video::Color _fadePal[5][16];
GobEngine *_vm;
- char drawStatics(char stop);
- void drawAnims(void);
- void drawText(char *pStop, char *pStopNoClear);
- char prepPalAnim(char stop);
- void doPalAnim(void);
- char doFadeAnim(char stop);
- char doSoundAnim(char stop);
+ virtual char drawStatics(char stop) = 0;
+ virtual char drawAnims(char stop) = 0;
+ virtual void drawText(char *pStop, char *pStopNoClear) = 0;
+ virtual char prepPalAnim(char stop) = 0;
+ virtual void doPalAnim(void) = 0;
+ virtual char doFadeAnim(char stop) = 0;
+ virtual char doSoundAnim(char stop) = 0;
};
class Mult_v1 : public Mult {
@@ -213,6 +226,18 @@ public:
virtual void setMultData(uint16 multindex);
virtual void loadMult(int16 resId);
+ virtual void playMult(int16 startFrame, int16 endFrame, char checkEscape,
+ char handleMouse);
+ virtual void animate(void);
+
+protected:
+ virtual char drawStatics(char stop);
+ virtual char drawAnims(char stop);
+ virtual void drawText(char *pStop, char *pStopNoClear);
+ virtual char prepPalAnim(char stop);
+ virtual void doPalAnim(void);
+ virtual char doFadeAnim(char stop);
+ virtual char doSoundAnim(char stop);
};
class Mult_v2 : public Mult_v1 {
@@ -250,6 +275,7 @@ public:
int16 frameRate;
Video::Color fadePal[5][16];
+ int16 field_124[4][4]; // Not sure here either
int16 palAnimIndices[4]; // Not sure here either
int16 frameStart;
@@ -278,6 +304,21 @@ public:
virtual void setMultData(uint16 multindex);
virtual void loadMult(int16 resId);
+ virtual void playMult(int16 startFrame, int16 endFrame, char checkEscape,
+ char handleMouse);
+ virtual void animate(void);
+
+protected:
+ virtual char drawStatics(char stop);
+ virtual char drawAnims(char stop);
+ virtual void drawText(char *pStop, char *pStopNoClear);
+ virtual char prepPalAnim(char stop);
+ virtual void doPalAnim(void);
+ virtual char doFadeAnim(char stop);
+ virtual char doSoundAnim(char stop);
+
+ void sub_62DD(int16 index);
+ void sub_6A35(void);
};
} // End of namespace Gob