aboutsummaryrefslogtreecommitdiff
path: root/engines/agos/agos.h
diff options
context:
space:
mode:
authorTravis Howell2009-05-16 05:34:16 +0000
committerTravis Howell2009-05-16 05:34:16 +0000
commitbce47e7eb68d62476fd2fcd6cc4ec1bf33618d51 (patch)
tree2acd4be22f7831560177835c0ca2397b6de9d5d7 /engines/agos/agos.h
parente994b94c814ece7285228598c408b9939e2d3398 (diff)
downloadscummvm-rg350-bce47e7eb68d62476fd2fcd6cc4ec1bf33618d51.tar.gz
scummvm-rg350-bce47e7eb68d62476fd2fcd6cc4ec1bf33618d51.tar.bz2
scummvm-rg350-bce47e7eb68d62476fd2fcd6cc4ec1bf33618d51.zip
Add initial support for DOS non-interactive demos of The Feeble Files.
svn-id: r40619
Diffstat (limited to 'engines/agos/agos.h')
-rw-r--r--engines/agos/agos.h42
1 files changed, 35 insertions, 7 deletions
diff --git a/engines/agos/agos.h b/engines/agos/agos.h
index b48866d33c..3c03ea7be4 100644
--- a/engines/agos/agos.h
+++ b/engines/agos/agos.h
@@ -165,9 +165,6 @@ class Debugger;
class AGOSEngine : public Engine {
friend class Debugger;
- friend class MoviePlayer;
- friend class MoviePlayerDXA;
- friend class MoviePlayerSMK;
// Engine APIs
Common::Error init();
@@ -286,7 +283,6 @@ protected:
uint32 _lastVgaTick;
uint16 _marks;
- bool _omniTV;
bool _scanFlag;
bool _scriptVar2;
@@ -550,7 +546,6 @@ protected:
int _vgaTickCounter;
- MoviePlayer *_moviePlayer;
Audio::SoundHandle _modHandle;
Sound *_sound;
@@ -791,7 +786,7 @@ protected:
void killAllTimers();
void endCutscene();
- void runSubroutine101();
+ virtual void runSubroutine101();
virtual void inventoryUp(WindowBlock *window);
virtual void inventoryDown(WindowBlock *window);
@@ -1877,7 +1872,7 @@ protected:
class AGOSEngine_Feeble : public AGOSEngine_Simon2 {
public:
AGOSEngine_Feeble(OSystem *system);
- //~AGOSEngine_Feeble();
+ ~AGOSEngine_Feeble();
virtual void setupGame();
virtual void setupOpcodes();
@@ -1920,6 +1915,10 @@ public:
void off_b3NotZero();
protected:
+ friend class MoviePlayer;
+ friend class MoviePlayerDXA;
+ friend class MoviePlayerSMK;
+
typedef void (AGOSEngine_Feeble::*OpcodeProcFeeble) ();
struct OpcodeEntryFeeble {
OpcodeProcFeeble proc;
@@ -1928,12 +1927,18 @@ protected:
const OpcodeEntryFeeble *_opcodesFeeble;
+ MoviePlayer *_moviePlayer;
+
+ uint8 _interactiveVideo;
uint16 _vgaCurSpritePriority;
virtual uint16 to16Wrapper(uint value);
virtual uint16 readUint16Wrapper(const void *src);
virtual uint32 readUint32Wrapper(const void *src);
+ void playVideo(const char *filename, bool lastSceneUsed = false);
+ void stopInteractiveVideo();
+
virtual void drawImage(VC10_state *state);
void scaleClip(int16 h, int16 w, int16 y, int16 x, int16 scrollY);
@@ -1979,6 +1984,8 @@ protected:
void linksUp();
void linksDown();
+ virtual void runSubroutine101();
+
void checkUp(WindowBlock *window);
void checkDown(WindowBlock *window);
virtual void inventoryUp(WindowBlock *window);
@@ -1997,6 +2004,27 @@ protected:
virtual char *genSaveName(int slot);
};
+class AGOSEngine_FeebleDemo : public AGOSEngine_Feeble {
+public:
+ AGOSEngine_FeebleDemo(OSystem *system);
+
+protected:
+ bool _filmMenuUsed;
+
+ virtual Common::Error go();
+
+ virtual void initMouse();
+ virtual void drawMousePointer();
+
+ void exitMenu();
+ void filmMenu();
+ void handleText();
+ void handleWobble();
+ void mainMenu();
+ void startInteractiveVideo(const char *filename);
+ void waitForSpace();
+};
+
class AGOSEngine_PuzzlePack : public AGOSEngine_Feeble {
public:
AGOSEngine_PuzzlePack(OSystem *system);