aboutsummaryrefslogtreecommitdiff
path: root/engines/m4/mads_menus.h
diff options
context:
space:
mode:
authorPaul Gilbert2010-03-23 12:02:23 +0000
committerPaul Gilbert2010-03-23 12:02:23 +0000
commitb46a2b4e100e3018d604da240cecf936c629e8a0 (patch)
treec9cd258d0e9181a2cbaea51611971ee94d58b6b6 /engines/m4/mads_menus.h
parent9571c817c7b7f30ed33ff5d4a07d80b8cea4f8c1 (diff)
downloadscummvm-rg350-b46a2b4e100e3018d604da240cecf936c629e8a0.tar.gz
scummvm-rg350-b46a2b4e100e3018d604da240cecf936c629e8a0.tar.bz2
scummvm-rg350-b46a2b4e100e3018d604da240cecf936c629e8a0.zip
Added further code for the game dialog framework
svn-id: r48368
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);
};