diff options
Diffstat (limited to 'engines/m4/mads_menus.h')
-rw-r--r-- | engines/m4/mads_menus.h | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/engines/m4/mads_menus.h b/engines/m4/mads_menus.h index 0fad0cfb76..5d3258ab46 100644 --- a/engines/m4/mads_menus.h +++ b/engines/m4/mads_menus.h @@ -104,15 +104,29 @@ public: #define DIALOG_LINES_SIZE 20 -class RexDialogView: public View { +enum MadsTextAlignment { ALIGN_CENTER = -1, ALIGN_CHAR_CENTER = -2, RIGHT_ALIGN = -3 }; + + +class RexDialogView: public MadsView { private: int _priorSceneId; - bool _initialised; + void initialiseLines(); void initialiseGraphics(); void loadBackground(); void loadMenuSprites(); protected: + int _word_8502C; + int _selectedLine; + int _lineIndex; + bool _enterFlag; + Common::StringArray _textLines; + + void setFrame(int frameNumber, int depth); + void initVars(); + void addLine(const char *msg_p, Font *font, MadsTextAlignment alignment, int left, int top); + void addQuote(Font *font, MadsTextAlignment alignment, int left, int top, int id1, int id2 = 0); +protected: M4Surface *_backgroundSurface; RGBList *_bgPalData; SpriteAsset *_menuSprites; @@ -131,8 +145,10 @@ public: }; class RexGameMenuDialog: public RexDialogView { +private: + void addLines(); public: - RexGameMenuDialog(): RexDialogView() {}; + RexGameMenuDialog(); virtual void onRefresh(RectList *rects, M4Surface *destSurface); }; |