diff options
author | Johannes Schickel | 2008-04-12 23:17:21 +0000 |
---|---|---|
committer | Johannes Schickel | 2008-04-12 23:17:21 +0000 |
commit | 1f91dc03846caecc0651101f54ad25f1864ae132 (patch) | |
tree | bcb81be8cb19781ef4098810f8aacafe755cbf48 /engines/kyra/gui.h | |
parent | 91e1a6b7be34e2cbb52826c28ce210b15bb19f1e (diff) | |
download | scummvm-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.h | 51 |
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 |