From 0da18320af79b6ca8a47248442d106674b5ab860 Mon Sep 17 00:00:00 2001 From: Peter Kohaut Date: Thu, 24 Aug 2017 23:43:47 +0200 Subject: BLADERUNNER: Added audio mixer & various fixes Audio mixer is supporting fading and pan animation Added support for skipping speech by pressing Return Added proper support for ambient sounds Added more code to the dialogue menu Added tooltips to the Spinner Fixed calculation of volume and pan of walk steps Code cleanup & formatting --- engines/bladerunner/dialogue_menu.h | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) (limited to 'engines/bladerunner/dialogue_menu.h') diff --git a/engines/bladerunner/dialogue_menu.h b/engines/bladerunner/dialogue_menu.h index 7a6b99e967..1ab90fdac0 100644 --- a/engines/bladerunner/dialogue_menu.h +++ b/engines/bladerunner/dialogue_menu.h @@ -26,7 +26,7 @@ #include "bladerunner/shape.h" #include "common/array.h" - +#include "common/str.h" #include "graphics/surface.h" namespace BladeRunner { @@ -35,13 +35,13 @@ class BladeRunnerEngine; class TextResource; struct DialogueItem { - char text[50]; + Common::String text; int answerValue; - int field_36; - int field_3A; - int field_3E; - int field_42; - int field_46; + int colorIntensity; + int priorityPolite; + int priorityNormal; + int prioritySurly; + int isDone; }; class DialogueMenu { @@ -67,6 +67,8 @@ class DialogueMenu { int _maxItemWidth; DialogueItem _items[10]; + int _fadeInItemIndex; + public: DialogueMenu(BladeRunnerEngine *vm); ~DialogueMenu(); @@ -74,23 +76,26 @@ public: bool loadText(const char *name); bool show(); - bool showAt(int x, int y); bool hide(); + bool addToList(int answer, bool done, int priorityPolite, int priorityNormal, int prioritySurly); + bool addToListNeverRepeatOnceSelected(int answer, int priorityPolite, int priorityNormal, int prioritySurly); bool clearList(); - bool addToList(int answer, int a3, int a4, int a5, int a6); - bool addToListNeverRepeatOnceSelected(int answer, int a3, int a4, int a5); int queryInput(); int listSize(); bool isVisible(); bool isOpen(); void tick(int x, int y); - void draw(); + void draw(Graphics::Surface &s); + + void mouseUp(); + bool waitingForInput(); + +private: + bool showAt(int x, int y); int getAnswerIndex(int answer); const char *getText(int id); void calculatePosition(int unusedX = 0, int unusedY = 0); - void mouseUp(); - bool waitingForInput(); void clear(); void reset(); -- cgit v1.2.3