aboutsummaryrefslogtreecommitdiff
path: root/engines/kyra/gui.h
diff options
context:
space:
mode:
authorJohannes Schickel2008-04-12 23:17:21 +0000
committerJohannes Schickel2008-04-12 23:17:21 +0000
commit1f91dc03846caecc0651101f54ad25f1864ae132 (patch)
treebcb81be8cb19781ef4098810f8aacafe755cbf48 /engines/kyra/gui.h
parent91e1a6b7be34e2cbb52826c28ce210b15bb19f1e (diff)
downloadscummvm-rg350-1f91dc03846caecc0651101f54ad25f1864ae132.tar.gz
scummvm-rg350-1f91dc03846caecc0651101f54ad25f1864ae132.tar.bz2
scummvm-rg350-1f91dc03846caecc0651101f54ad25f1864ae132.zip
- some refactoring for Kyra3
- removed unneeded map code in KyraEngine_v3 svn-id: r31488
Diffstat (limited to 'engines/kyra/gui.h')
-rw-r--r--engines/kyra/gui.h51
1 files changed, 51 insertions, 0 deletions
diff --git a/engines/kyra/gui.h b/engines/kyra/gui.h
index 17f13469e9..214f112995 100644
--- a/engines/kyra/gui.h
+++ b/engines/kyra/gui.h
@@ -191,6 +191,57 @@ protected:
int getNextSavegameSlot();
};
+class Movie;
+
+class MainMenu {
+public:
+ MainMenu(KyraEngine *vm);
+ virtual ~MainMenu() {}
+
+ struct Animation {
+ Animation() : anim(0), startFrame(0), endFrame(0), delay(0) {}
+
+ Movie *anim;
+ int startFrame;
+ int endFrame;
+ int delay;
+ };
+
+ struct StaticData {
+ const char *strings[4];
+
+ uint8 menuTable[11];
+ uint8 colorTable[4];
+ uint8 colorNormal, colorFlash;
+ };
+
+ void init(StaticData data, Animation anim);
+ int handle(int dim);
+private:
+ KyraEngine *_vm;
+ Screen *_screen;
+ OSystem *_system;
+
+ bool _quitFlag;
+
+ StaticData _static;
+ struct AnimIntern {
+ int curFrame;
+ int direction;
+ };
+ Animation _anim;
+ AnimIntern _animIntern;
+
+ uint32 _nextUpdate;
+
+ void updateAnimation();
+ void draw(int select);
+ void drawBox(int x, int y, int w, int h, int fill);
+ bool getInput();
+
+ void printString(const char *string, int x, int y, int col1, int col2, int flags, ...);
+};
+
} // end of namesapce Kyra
#endif