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/core/screen.h" 29 #include "mads/core/dialogs.h" 33 #define MAX_CONVERSATIONS 5 34 #define MAX_SPEAKERS 5 36 enum ConversationMode {
39 CONVMODE_WAIT_AUTO = 1,
40 CONVMODE_WAIT_ENTRY = 2,
67 ENTRYFLAG_4000 = 0x4000,
68 ENTRYFLAG_8000 = 0x8000
71 enum ConditionalOperation {
90 class RexNebularEngine;
115 int *
getValue() {
return _isPtr ? _valPtr : &_val; }
120 bool isPtr()
const {
return _isPtr; }
141 ConditionalOperation _operation;
158 int get(
int paramNum)
const;
163 int evaluate()
const;
173 DialogCommand _command;
208 DialogCommand _command;
211 int16 _textLineIndex;
213 uint16 _scriptOffset;
248 uint16 _messageCount;
249 uint16 _textLineCount;
252 uint16 _speakerCount;
257 int _speakerFrame[MAX_SPEAKERS];
314 bool _speakerActive[MAX_SPEAKERS];
315 int _speakerSeries[MAX_SPEAKERS];
316 int _speakerFrame[MAX_SPEAKERS];
317 int _popupX[MAX_SPEAKERS];
318 int _popupY[MAX_SPEAKERS];
319 int _popupMaxLen[MAX_SPEAKERS];
320 InputMode _inputMode;
322 ConversationMode _currentMode;
323 ConversationMode _priorMode;
327 TriggerMode _heroTriggerMode;
328 int _interlocutorTrigger;
329 TriggerMode _interlocutorTriggerMode;
333 uint32 _startFrameNumber;
337 int _dialogNodeOffset, _dialogNodeSize;
355 void removeActiveWindow();
360 void flagEntry(DialogCommand mode,
int entryIndex);
365 ConversationMode generateMenu();
385 int executeEntry(
int index);
422 void setVariable(uint idx,
int val);
427 void setVariable(uint idx,
int *val);
432 void setStartNode(uint nodeIndex);
437 void setHeroTrigger(
int val);
442 void setInterlocutorTrigger(
int val);
448 int *getVariable(
int idx);
468 void exportPointer(
int *ptr);
473 void exportValue(
int val);
480 void update(
bool flag);
485 bool active()
const {
return _runningConv !=
nullptr; }
490 int activeConvId()
const {
return !active() ? -1 : _runningConv->_convId; }
Conditional()
Definition: conversations.h:148
bool isPtr() const
Definition: conversations.h:120
Definition: conversations.h:299
Definition: conversations.h:235
Definition: dialogs.h:103
Definition: conversations.h:273
int * getValue()
Definition: conversations.h:115
int restoreRunning() const
Definition: conversations.h:495
Definition: conversations.h:245
Definition: conversations.h:206
ScriptEntry()
Definition: conversations.h:184
Definition: conversations.h:222
Definition: conversations.h:207
bool isNumeric() const
Definition: conversations.h:125
Definition: conversations.h:128
ConversationMode currentMode() const
Definition: conversations.h:500
ConversationVar()
Definition: conversations.h:100
CondtionalParamEntry()
Definition: conversations.h:137
bool active() const
Definition: conversations.h:485
Definition: conversations.h:195
Definition: conversations.h:129
int activeConvId() const
Definition: conversations.h:490
Definition: conversations.h:310
Definition: conversations.h:130
Definition: conversations.h:92
Definition: conversations.h:166