diff options
Diffstat (limited to 'engines/bladerunner/dialogue_menu.h')
-rw-r--r-- | engines/bladerunner/dialogue_menu.h | 46 |
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(); |