aboutsummaryrefslogtreecommitdiff
path: root/engines/m4/mads_menus.h
diff options
context:
space:
mode:
Diffstat (limited to 'engines/m4/mads_menus.h')
-rw-r--r--engines/m4/mads_menus.h22
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);
};