aboutsummaryrefslogtreecommitdiff
path: root/engines/agi/agi.h
diff options
context:
space:
mode:
Diffstat (limited to 'engines/agi/agi.h')
-rw-r--r--engines/agi/agi.h21
1 files changed, 15 insertions, 6 deletions
diff --git a/engines/agi/agi.h b/engines/agi/agi.h
index 0167609514..56ae1288b8 100644
--- a/engines/agi/agi.h
+++ b/engines/agi/agi.h
@@ -371,7 +371,14 @@ struct AgiGame {
char cursorChar;
unsigned int colorFg;
unsigned int colorBg;
- uint8 *sbuf; /**< 160x168 AGI screen buffer */
+#define SBUF16_OFFSET 0
+#define SBUF256_OFFSET ((_WIDTH) * (_HEIGHT))
+#define FROM_SBUF16_TO_SBUF256_OFFSET ((SBUF256_OFFSET) - (SBUF16_OFFSET))
+#define FROM_SBUF256_TO_SBUF16_OFFSET ((SBUF16_OFFSET) - (SBUF256_OFFSET))
+ uint8 *sbufOrig; /**< Pointer to the 160x336 AGI screen buffer that contains vertically two 160x168 screens (16 color and 256 color). */
+ uint8 *sbuf16c; /**< 160x168 16 color (+control line & priority information) AGI screen buffer. Points at sbufOrig + SBUF16_OFFSET. */
+ uint8 *sbuf256c; /**< 160x168 256 color AGI screen buffer (For AGI256 and AGI256-2 support). Points at sbufOrig + SBUF256_OFFSET. */
+ uint8 *sbuf; /**< Currently chosen AGI screen buffer (sbuf256c if AGI256 or AGI256-2 is used, otherwise sbuf16c). */
/* player command line */
AgiWord egoWords[MAX_WORDS];
@@ -767,14 +774,16 @@ private:
void loadDict(void);
bool matchWord(void);
- SearchTree *_searchTreeRoot;
- SearchTree *_activeTreeNode;
-
- void insertSearchNode(const char *word);
-
+ // Predictive dialog
+ // TODO: Move this to a separate class
+ char *_predictiveDictText;
+ char **_predictiveDictLine;
+ int32 _predictiveDictLineCount;
+ char *_predictiveDictActLine;
String _currentCode;
String _currentWord;
int _wordNumber;
+ bool _predictiveDialogRunning;
public:
char _predictiveResult[40];
};