aboutsummaryrefslogtreecommitdiff
path: root/engines/bladerunner/dialogue_menu.h
diff options
context:
space:
mode:
Diffstat (limited to 'engines/bladerunner/dialogue_menu.h')
-rw-r--r--engines/bladerunner/dialogue_menu.h46
1 files changed, 25 insertions, 21 deletions
diff --git a/engines/bladerunner/dialogue_menu.h b/engines/bladerunner/dialogue_menu.h
index 61ddcf1ae0..63e23d8ada 100644
--- a/engines/bladerunner/dialogue_menu.h
+++ b/engines/bladerunner/dialogue_menu.h
@@ -35,17 +35,22 @@ namespace BladeRunner {
class BladeRunnerEngine;
class TextResource;
-struct DialogueItem {
- Common::String text;
- int answerValue;
- int colorIntensity;
- int priorityPolite;
- int priorityNormal;
- int prioritySurly;
- int isDone;
-};
-
class DialogueMenu {
+ static const int kMaxItems = 10;
+ static const int kMaxRepeatHistory = 100;
+ static const int kLineHeight = 9;
+ static const int kBorderSize = 10;
+
+ struct DialogueItem {
+ Common::String text;
+ int answerValue;
+ int colorIntensity;
+ int priorityPolite;
+ int priorityNormal;
+ int prioritySurly;
+ int isDone;
+ };
+
BladeRunnerEngine *_vm;
TextResource *_textResource;
@@ -58,15 +63,15 @@ class DialogueMenu {
// These track whether a dialogue option
// has previously been selected
int _neverRepeatListSize;
- int _neverRepeatValues[100];
- bool _neverRepeatWasSelected[100];
+ int _neverRepeatValues[kMaxRepeatHistory];
+ bool _neverRepeatWasSelected[kMaxRepeatHistory];
int _centerX;
int _centerY;
int _screenX;
int _screenY;
int _maxItemWidth;
- DialogueItem _items[10];
+ DialogueItem _items[kMaxItems];
int _fadeInItemIndex;
@@ -74,7 +79,7 @@ public:
DialogueMenu(BladeRunnerEngine *vm);
~DialogueMenu();
- bool loadText(const char *name);
+ bool loadText(const Common::String &name);
bool show();
bool hide();
@@ -82,22 +87,21 @@ public:
bool addToListNeverRepeatOnceSelected(int answer, int priorityPolite, int priorityNormal, int prioritySurly);
bool clearList();
int queryInput();
- int listSize();
- bool isVisible();
- bool isOpen();
+ int listSize() const;
+ bool isVisible() const;
+ bool isOpen() const;
void tick(int x, int y);
void draw(Graphics::Surface &s);
void mouseUp();
- bool waitingForInput();
+ bool waitingForInput() const;
private:
bool showAt(int x, int y);
- int getAnswerIndex(int answer);
- const char *getText(int id);
+ int getAnswerIndex(int answer) const;
+ const char *getText(int id) const;
void calculatePosition(int unusedX = 0, int unusedY = 0);
-
void clear();
void reset();