aboutsummaryrefslogtreecommitdiff
path: root/engines/kyra/kyra_mr.h
diff options
context:
space:
mode:
authorJohannes Schickel2008-05-11 15:24:25 +0000
committerJohannes Schickel2008-05-11 15:24:25 +0000
commit4932660f13b08aa30a88d53c1948c1df190201b7 (patch)
tree3ece7a7c9c96e0b95ef9d0f95ee5a5d01ba89f7a /engines/kyra/kyra_mr.h
parent57dfdbc6c865bfc804fd93b813982b9ca41931e4 (diff)
downloadscummvm-rg350-4932660f13b08aa30a88d53c1948c1df190201b7.tar.gz
scummvm-rg350-4932660f13b08aa30a88d53c1948c1df190201b7.tar.bz2
scummvm-rg350-4932660f13b08aa30a88d53c1948c1df190201b7.zip
- Implemented kyra3 album (page switch animation not yet implemented)
- Implemented opcode 25: o3_showAlbum svn-id: r32022
Diffstat (limited to 'engines/kyra/kyra_mr.h')
-rw-r--r--engines/kyra/kyra_mr.h55
1 files changed, 55 insertions, 0 deletions
diff --git a/engines/kyra/kyra_mr.h b/engines/kyra/kyra_mr.h
index 306438ac1b..2921ab7abc 100644
--- a/engines/kyra/kyra_mr.h
+++ b/engines/kyra/kyra_mr.h
@@ -428,6 +428,11 @@ private:
void goodConscienceChat(const char *str, int vocHigh, int vocLow);
void goodConscienceChatWaitToFinish();
+ bool _albumChatActive;
+ void albumChat(const char *str, int vocHigh, int vocLow);
+ void albumChatInit(const char *str, int object, int vocHigh, int vocLow);
+ void albumChatWaitToFinish();
+
void malcolmSceneStartupChat();
byte _newSceneDlgState[40];
@@ -524,6 +529,55 @@ private:
void eelScript();
+ // Album
+ struct Album {
+ uint8 *backUpPage;
+ uint8 *file;
+ WSAMovieV2 *wsa;
+ uint8 *backUpRect;
+
+ struct PageMovie {
+ WSAMovieV2 *wsa;
+ int curFrame;
+ int maxFrame;
+ uint32 timer;
+ };
+
+ PageMovie leftPage, rightPage;
+
+ int curPage, nextPage;
+ bool running;
+ bool isPage14;
+ } _album;
+
+ static const int8 _albumWSAX[];
+ static const int8 _albumWSAY[];
+
+ void showAlbum();
+
+ void loadAlbumPage();
+ void loadAlbumPageWSA();
+
+ void printAlbumPageText();
+ void printAlbumText(int page, const char *str, int x, int y, uint8 c0);
+
+ void processAlbum();
+
+ void albumNewPage();
+ void albumUpdateAnims();
+ void albumAnim1();
+ void albumAnim2();
+
+ void albumBackUpRect();
+ void albumRestoreRect();
+ void albumUpdateRect();
+
+ void albumSwitchPages(int oldPage, int newPage, int unk);
+
+ int albumNextPage(Button *caller);
+ int albumPrevPage(Button *caller);
+ int albumClose(Button *caller);
+
// save/load
void saveGame(const char *fileName, const char *saveName);
void loadGame(const char *fileName);
@@ -540,6 +594,7 @@ private:
int o3_setCharacterAnimFrameFromFacing(EMCState *script);
int o3_showBadConscience(EMCState *script);
int o3_hideBadConscience(EMCState *script);
+ int o3_showAlbum(EMCState *script);
int o3_setInventorySlot(EMCState *script);
int o3_getInventorySlot(EMCState *script);
int o3_addItemToInventory(EMCState *script);