22 #ifndef MADS_CONVERSATIONS_H 23 #define MADS_CONVERSATIONS_H 25 #include "common/scummsys.h" 26 #include "common/array.h" 27 #include "common/str-array.h" 28 #include "mads/nebular/core/screen.h" 29 #include "mads/nebular/core/dialogs.h" 34 #define MAX_CONVERSATIONS 5 35 #define MAX_SPEAKERS 5 37 enum ConversationMode {
40 CONVMODE_WAIT_AUTO = 1,
41 CONVMODE_WAIT_ENTRY = 2,
68 ENTRYFLAG_4000 = 0x4000,
69 ENTRYFLAG_8000 = 0x8000
72 enum ConditionalOperation {
91 class RexNebularEngine;
118 return _isPtr ? _valPtr : &_val;
150 ConditionalOperation _operation;
168 int get(
int paramNum)
const;
173 int evaluate()
const;
184 DialogCommand _command;
220 DialogCommand _command;
223 int16 _textLineIndex;
225 uint16 _scriptOffset;
261 uint16 _messageCount;
262 uint16 _textLineCount;
265 uint16 _speakerCount;
270 int _speakerFrame[MAX_SPEAKERS];
327 bool _speakerActive[MAX_SPEAKERS];
328 int _speakerSeries[MAX_SPEAKERS];
329 int _speakerFrame[MAX_SPEAKERS];
330 int _popupX[MAX_SPEAKERS];
331 int _popupY[MAX_SPEAKERS];
332 int _popupMaxLen[MAX_SPEAKERS];
333 InputMode _inputMode;
335 ConversationMode _currentMode;
336 ConversationMode _priorMode;
340 TriggerMode _heroTriggerMode;
341 int _interlocutorTrigger;
342 TriggerMode _interlocutorTriggerMode;
346 uint32 _startFrameNumber;
350 int _dialogNodeOffset, _dialogNodeSize;
368 void removeActiveWindow();
373 void flagEntry(DialogCommand mode,
int entryIndex);
378 ConversationMode generateMenu();
398 int executeEntry(
int index);
435 void setVariable(uint idx,
int val);
440 void setVariable(uint idx,
int *val);
445 void setStartNode(uint nodeIndex);
450 void setHeroTrigger(
int val);
455 void setInterlocutorTrigger(
int val);
461 int *getVariable(
int idx);
481 void exportPointer(
int *ptr);
486 void exportValue(
int val);
493 void update(
bool flag);
499 return _runningConv !=
nullptr;
506 return !active() ? -1 : _runningConv->_convId;
513 return _restoreRunning;
bool isNumeric() const
Definition: conversations.h:131
int * getValue()
Definition: conversations.h:117
Conditional()
Definition: conversations.h:157
CondtionalParamEntry()
Definition: conversations.h:145
int restoreRunning() const
Definition: conversations.h:512
Definition: conversations.h:258
Definition: conversations.h:136
Definition: conversations.h:218
Definition: conversations.h:93
ConversationVar()
Definition: conversations.h:101
ScriptEntry()
Definition: conversations.h:195
Definition: conversations.h:247
Definition: conversations.h:138
ConversationMode currentMode() const
Definition: conversations.h:519
bool active() const
Definition: conversations.h:498
Definition: conversations.h:234
Definition: conversations.h:219
Definition: dialogs.h:104
Definition: conversations.h:312
Definition: conversations.h:176
Definition: conversations.h:286
Definition: mps_installer.h:31
Definition: conversations.h:207
int activeConvId() const
Definition: conversations.h:505
Definition: conversations.h:323
bool isPtr() const
Definition: conversations.h:124
Definition: conversations.h:137