diff options
Diffstat (limited to 'engines/kyra/kyra_hof.h')
-rw-r--r-- | engines/kyra/kyra_hof.h | 144 |
1 files changed, 62 insertions, 82 deletions
diff --git a/engines/kyra/kyra_hof.h b/engines/kyra/kyra_hof.h index 1e6c23331e..866dd55d16 100644 --- a/engines/kyra/kyra_hof.h +++ b/engines/kyra/kyra_hof.h @@ -97,22 +97,17 @@ enum kNestedSequencesDemo { kSequenceDemoDig }; -class WSAMovieV2; +class WSAMovie_v2; class KyraEngine_HoF; class TextDisplayer_HoF; struct TIM; -typedef int (KyraEngine_HoF::*SeqProc)(WSAMovieV2*, int, int, int); - -struct FrameControl { - uint16 index; - uint16 delay; -}; +typedef int (KyraEngine_HoF::*SeqProc)(WSAMovie_v2*, int, int, int); struct ActiveWSA { int16 flags; - WSAMovieV2 *movie; + WSAMovie_v2 *movie; uint16 startFrame; uint16 endFrame; uint16 frameDelay; @@ -179,17 +174,6 @@ struct ItemAnimData_v1 { const uint16 *frames; }; -struct ItemAnimData_v2 { - int16 itemIndex; - uint8 numFrames; - const FrameControl *frames; -}; - -struct ActiveItemAnim { - uint16 currentFrame; - uint32 nextFrame; -}; - class KyraEngine_HoF : public KyraEngine_v2 { friend class Debugger_HoF; friend class TextDisplayer_HoF; @@ -198,6 +182,8 @@ public: KyraEngine_HoF(OSystem *system, const GameFlags &flags); ~KyraEngine_HoF(); + void pauseEngineIntern(bool pause); + Screen *screen() { return _screen; } Screen_v2 *screen_v2() const { return _screen; } GUI_v2 *gui_v2() const { return _gui; } @@ -209,52 +195,52 @@ protected: // intro/outro void seq_playSequences(int startSeq, int endSeq = -1); - int seq_introWestwood(WSAMovieV2 *wsaObj, int x, int y, int frm); - int seq_introTitle(WSAMovieV2 *wsaObj, int x, int y, int frm); - int seq_introOverview(WSAMovieV2 *wsaObj, int x, int y, int frm); - int seq_introLibrary(WSAMovieV2 *wsaObj, int x, int y, int frm); - int seq_introHand(WSAMovieV2 *wsaObj, int x, int y, int frm); - int seq_introPoint(WSAMovieV2 *wsaObj, int x, int y, int frm); - int seq_introZanfaun(WSAMovieV2 *wsaObj, int x, int y, int frm); - - int seq_introOver1(WSAMovieV2 *wsaObj, int x, int y, int frm); - int seq_introOver2(WSAMovieV2 *wsaObj, int x, int y, int frm); - int seq_introForest(WSAMovieV2 *wsaObj, int x, int y, int frm); - int seq_introDragon(WSAMovieV2 *wsaObj, int x, int y, int frm); - int seq_introDarm(WSAMovieV2 *wsaObj, int x, int y, int frm); - int seq_introLibrary2(WSAMovieV2 *wsaObj, int x, int y, int frm); - int seq_introMarco(WSAMovieV2 *wsaObj, int x, int y, int frm); - int seq_introHand1a(WSAMovieV2 *wsaObj, int x, int y, int frm); - int seq_introHand1b(WSAMovieV2 *wsaObj, int x, int y, int frm); - int seq_introHand1c(WSAMovieV2 *wsaObj, int x, int y, int frm); - int seq_introHand2(WSAMovieV2 *wsaObj, int x, int y, int frm); - int seq_introHand3(WSAMovieV2 *wsaObj, int x, int y, int frm); - - int seq_finaleFunters(WSAMovieV2 *wsaObj, int x, int y, int frm); - int seq_finaleFerb(WSAMovieV2 *wsaObj, int x, int y, int frm); - int seq_finaleFish(WSAMovieV2 *wsaObj, int x, int y, int frm); - int seq_finaleFheep(WSAMovieV2 *wsaObj, int x, int y, int frm); - int seq_finaleFarmer(WSAMovieV2 *wsaObj, int x, int y, int frm); - int seq_finaleFuards(WSAMovieV2 *wsaObj, int x, int y, int frm); - int seq_finaleFirates(WSAMovieV2 *wsaObj, int x, int y, int frm); - int seq_finaleFrash(WSAMovieV2 *wsaObj, int x, int y, int frm); - - int seq_finaleFiggle(WSAMovieV2 *wsaObj, int x, int y, int frm); - - int seq_demoVirgin(WSAMovieV2 *wsaObj, int x, int y, int frm); - int seq_demoWestwood(WSAMovieV2 *wsaObj, int x, int y, int frm); - int seq_demoTitle(WSAMovieV2 *wsaObj, int x, int y, int frm); - int seq_demoHill(WSAMovieV2 *wsaObj, int x, int y, int frm); - int seq_demoOuthome(WSAMovieV2 *wsaObj, int x, int y, int frm); - int seq_demoWharf(WSAMovieV2 *wsaObj, int x, int y, int frm); - int seq_demoDinob(WSAMovieV2 *wsaObj, int x, int y, int frm); - int seq_demoFisher(WSAMovieV2 *wsaObj, int x, int y, int frm); - - int seq_demoWharf2(WSAMovieV2 *wsaObj, int x, int y, int frm); - int seq_demoDinob2(WSAMovieV2 *wsaObj, int x, int y, int frm); - int seq_demoWater(WSAMovieV2 *wsaObj, int x, int y, int frm); - int seq_demoBail(WSAMovieV2 *wsaObj, int x, int y, int frm); - int seq_demoDig(WSAMovieV2 *wsaObj, int x, int y, int frm); + int seq_introWestwood(WSAMovie_v2 *wsaObj, int x, int y, int frm); + int seq_introTitle(WSAMovie_v2 *wsaObj, int x, int y, int frm); + int seq_introOverview(WSAMovie_v2 *wsaObj, int x, int y, int frm); + int seq_introLibrary(WSAMovie_v2 *wsaObj, int x, int y, int frm); + int seq_introHand(WSAMovie_v2 *wsaObj, int x, int y, int frm); + int seq_introPoint(WSAMovie_v2 *wsaObj, int x, int y, int frm); + int seq_introZanfaun(WSAMovie_v2 *wsaObj, int x, int y, int frm); + + int seq_introOver1(WSAMovie_v2 *wsaObj, int x, int y, int frm); + int seq_introOver2(WSAMovie_v2 *wsaObj, int x, int y, int frm); + int seq_introForest(WSAMovie_v2 *wsaObj, int x, int y, int frm); + int seq_introDragon(WSAMovie_v2 *wsaObj, int x, int y, int frm); + int seq_introDarm(WSAMovie_v2 *wsaObj, int x, int y, int frm); + int seq_introLibrary2(WSAMovie_v2 *wsaObj, int x, int y, int frm); + int seq_introMarco(WSAMovie_v2 *wsaObj, int x, int y, int frm); + int seq_introHand1a(WSAMovie_v2 *wsaObj, int x, int y, int frm); + int seq_introHand1b(WSAMovie_v2 *wsaObj, int x, int y, int frm); + int seq_introHand1c(WSAMovie_v2 *wsaObj, int x, int y, int frm); + int seq_introHand2(WSAMovie_v2 *wsaObj, int x, int y, int frm); + int seq_introHand3(WSAMovie_v2 *wsaObj, int x, int y, int frm); + + int seq_finaleFunters(WSAMovie_v2 *wsaObj, int x, int y, int frm); + int seq_finaleFerb(WSAMovie_v2 *wsaObj, int x, int y, int frm); + int seq_finaleFish(WSAMovie_v2 *wsaObj, int x, int y, int frm); + int seq_finaleFheep(WSAMovie_v2 *wsaObj, int x, int y, int frm); + int seq_finaleFarmer(WSAMovie_v2 *wsaObj, int x, int y, int frm); + int seq_finaleFuards(WSAMovie_v2 *wsaObj, int x, int y, int frm); + int seq_finaleFirates(WSAMovie_v2 *wsaObj, int x, int y, int frm); + int seq_finaleFrash(WSAMovie_v2 *wsaObj, int x, int y, int frm); + + int seq_finaleFiggle(WSAMovie_v2 *wsaObj, int x, int y, int frm); + + int seq_demoVirgin(WSAMovie_v2 *wsaObj, int x, int y, int frm); + int seq_demoWestwood(WSAMovie_v2 *wsaObj, int x, int y, int frm); + int seq_demoTitle(WSAMovie_v2 *wsaObj, int x, int y, int frm); + int seq_demoHill(WSAMovie_v2 *wsaObj, int x, int y, int frm); + int seq_demoOuthome(WSAMovie_v2 *wsaObj, int x, int y, int frm); + int seq_demoWharf(WSAMovie_v2 *wsaObj, int x, int y, int frm); + int seq_demoDinob(WSAMovie_v2 *wsaObj, int x, int y, int frm); + int seq_demoFisher(WSAMovie_v2 *wsaObj, int x, int y, int frm); + + int seq_demoWharf2(WSAMovie_v2 *wsaObj, int x, int y, int frm); + int seq_demoDinob2(WSAMovie_v2 *wsaObj, int x, int y, int frm); + int seq_demoWater(WSAMovie_v2 *wsaObj, int x, int y, int frm); + int seq_demoBail(WSAMovie_v2 *wsaObj, int x, int y, int frm); + int seq_demoDig(WSAMovie_v2 *wsaObj, int x, int y, int frm); void seq_sequenceCommand(int command); void seq_loadNestedSequence(int wsaNum, int seqNum); @@ -275,7 +261,7 @@ protected: char *seq_preprocessString(const char *str, int width); void seq_printCreditsString(uint16 strIndex, int x, int y, const uint8 *colorMap, uint8 textcolor); void seq_playWsaSyncDialogue(uint16 strIndex, uint16 vocIndex, int textColor, int x, int y, int width, - WSAMovieV2 * wsa, int firstframe, int lastframe, int wsaXpos, int wsaYpos); + WSAMovie_v2 * wsa, int firstframe, int lastframe, int wsaXpos, int wsaYpos); void seq_finaleActorScreen(); void seq_displayScrollText(uint8 *data, const ScreenDim *d, int tempPage1, int tempPage2, int speed, int step, Screen::FontId fid1, Screen::FontId fid2, const uint8 *shapeData = 0, const char *const *specialData = 0); void seq_scrollPage(); @@ -291,8 +277,6 @@ protected: TextDisplayer_HoF *_text; TIMInterpreter *_tim; - uint8 *_mouseSHPBuf; - static const int8 _dosTrackMap[]; static const int _dosTrackMapSize; @@ -329,8 +313,6 @@ protected: void dinoRide(); - int _mouseState; - void handleInput(int x, int y); bool handleInputUnkSub(int x, int y); @@ -350,7 +332,7 @@ protected: uint8 *_sceneShapeTable[50]; - WSAMovieV2 *_wsaSlots[10]; + WSAMovie_v2 *_wsaSlots[10]; void freeSceneShapePtrs(); @@ -675,9 +657,6 @@ protected: void setWalkspeed(uint8 speed); - // delay - void delay(uint32 millis, bool updateGame = false, bool isMainLoop = false); - // ingame static sequence handling void seq_makeBookOrCauldronAppear(int type); void seq_makeBookAppear(); @@ -690,7 +669,7 @@ protected: int delay; bool running; uint32 timer; - WSAMovieV2 *wsa; + WSAMovie_v2 *wsa; } _invWsa; // TODO: move inside KyraEngine_HoF::InventoryWsa? @@ -732,7 +711,6 @@ protected: int o2_wipeDownMouseItem(EMCState *script); int o2_getElapsedSecs(EMCState *script); int o2_getTimerDelay(EMCState *script); - //int o2_playSoundEffect(EMCState *script); int o2_delaySecs(EMCState *script); int o2_setTimerDelay(EMCState *script); int o2_setScaleTableItem(EMCState *script); @@ -759,17 +737,14 @@ protected: int o2_setLayerFlag(EMCState *script); int o2_setZanthiaPos(EMCState *script); int o2_loadMusicTrack(EMCState *script); - int o2_playSoundEffect(EMCState *script); int o2_setSceneAnimPos(EMCState *script); - int o2_blockInRegion(EMCState *script); - int o2_blockOutRegion(EMCState *script); int o2_setCauldronState(EMCState *script); int o2_showItemString(EMCState *script); int o2_isAnySoundPlaying(EMCState *script); int o2_setDrawNoShapeFlag(EMCState *script); int o2_setRunFlag(EMCState *script); int o2_showLetter(EMCState *script); - int o2_fillRect(EMCState *script); + int o2_playFireflyScore(EMCState *script); int o2_encodeShape(EMCState *script); int o2_defineSceneAnim(EMCState *script); int o2_updateSceneAnim(EMCState *script); @@ -805,7 +780,7 @@ protected: int o2_updateTwoSceneAnims(EMCState *script); int o2_getRainbowRoomData(EMCState *script); int o2_drawSceneShapeEx(EMCState *script); - int o2_getBoolFromStack(EMCState *script); + int o2_midiSoundFadeout(EMCState *script); int o2_getSfxDriver(EMCState *script); int o2_getVocSupport(EMCState *script); int o2_getMusicDriver(EMCState *script); @@ -876,14 +851,19 @@ protected: static const uint8 _seqTextColorPresets[]; char *_seqProcessedString; - WSAMovieV2 *_seqWsa; + WSAMovie_v2 *_seqWsa; bool _abortIntroFlag; int _menuChoice; uint32 _seqFrameDelay; uint32 _seqStartTime; + uint32 _seqSubFrameStartTime; uint32 _seqEndTime; + uint32 _seqSubFrameEndTimeInternal; + uint32 _seqWsaChatTimeout; + uint32 _seqWsaChatFrameTimeout; + int _seqFrameCounter; int _seqScrollTextCounter; int _seqWsaCurrentFrame; |