aboutsummaryrefslogtreecommitdiff
path: root/engines/dm
diff options
context:
space:
mode:
authorWinterGrascph2016-05-22 17:18:56 +0200
committerBendegúz Nagy2016-08-26 23:02:22 +0200
commit3a85c565815c58e6e6c9b007776b83ad942d7767 (patch)
treec5ed438c1b2588fd89c44d6d1743316fe2148505 /engines/dm
parent082e3fb37ccd97f9d8a782f4fb47adf9a0661ecb (diff)
downloadscummvm-rg350-3a85c565815c58e6e6c9b007776b83ad942d7767.tar.gz
scummvm-rg350-3a85c565815c58e6e6c9b007776b83ad942d7767.tar.bz2
scummvm-rg350-3a85c565815c58e6e6c9b007776b83ad942d7767.zip
DM: Add decodeText dependencies
Diffstat (limited to 'engines/dm')
-rw-r--r--engines/dm/dungeonman.cpp104
-rw-r--r--engines/dm/dungeonman.h15
2 files changed, 117 insertions, 2 deletions
diff --git a/engines/dm/dungeonman.cpp b/engines/dm/dungeonman.cpp
index af10338030..1da24e6b1d 100644
--- a/engines/dm/dungeonman.cpp
+++ b/engines/dm/dungeonman.cpp
@@ -604,3 +604,107 @@ Thing DungeonMan::getNextThing(Thing thing) {
return getThingData(thing)[0]; // :)
}
+char gMessageAndScrollEscReplacementStrings[32][8] = { // @ G0255_aac_Graphic559_MessageAndScrollEscapeReplacementStrings
+ {'x', 0, 0, 0, 0, 0, 0, 0}, /* Atari ST Version 1.0 1987-12-08 1987-12-11 1.1 1.2EN 1.2GE: { '?', 0, 0, 0, 0, 0, 0, 0 }, */
+ {'y', 0, 0, 0, 0, 0, 0, 0}, /* Atari ST Version 1.0 1987-12-08 1987-12-11 1.1 1.2EN 1.2GE: { '!', 0, 0, 0, 0, 0, 0, 0 }, */
+ {'T','H','E',' ', 0, 0, 0, 0},
+ {'Y','O','U',' ', 0, 0, 0, 0},
+ {'z', 0, 0, 0, 0, 0, 0, 0}, /* Atari ST Version 1.0 1987-12-08 1987-12-11 1.1 1.2EN 1.2GE: { 0, 0, 0, 0, 0, 0, 0, 0 }, */
+ {'{', 0, 0, 0, 0, 0, 0, 0}, /* Atari ST Version 1.0 1987-12-08 1987-12-11 1.1 1.2EN 1.2GE: { 0, 0, 0, 0, 0, 0, 0, 0 }, */
+ {'|', 0, 0, 0, 0, 0, 0, 0}, /* Atari ST Version 1.0 1987-12-08 1987-12-11 1.1 1.2EN 1.2GE: { 0, 0, 0, 0, 0, 0, 0, 0 }, */
+ {'}', 0, 0, 0, 0, 0, 0, 0}, /* Atari ST Version 1.0 1987-12-08 1987-12-11 1.1 1.2EN 1.2GE: { 0, 0, 0, 0, 0, 0, 0, 0 }, */
+ {'~', 0, 0, 0, 0, 0, 0, 0}, /* Atari ST Version 1.0 1987-12-08 1987-12-11 1.1 1.2EN 1.2GE: { 0, 0, 0, 0, 0, 0, 0, 0 }, */
+ {'', 0, 0, 0, 0, 0, 0, 0}, /* Atari ST Version 1.0 1987-12-08 1987-12-11 1.1 1.2EN 1.2GE: { 0, 0, 0, 0, 0, 0, 0, 0 }, */
+ {0, 0, 0, 0, 0, 0, 0, 0},
+ {0, 0, 0, 0, 0, 0, 0, 0},
+ {0, 0, 0, 0, 0, 0, 0, 0},
+ {0, 0, 0, 0, 0, 0, 0, 0},
+ {0, 0, 0, 0, 0, 0, 0, 0},
+ {0, 0, 0, 0, 0, 0, 0, 0},
+ {0, 0, 0, 0, 0, 0, 0, 0},
+ {0, 0, 0, 0, 0, 0, 0, 0},
+ {0, 0, 0, 0, 0, 0, 0, 0},
+ {0, 0, 0, 0, 0, 0, 0, 0},
+ {0, 0, 0, 0, 0, 0, 0, 0},
+ {0, 0, 0, 0, 0, 0, 0, 0},
+ {0, 0, 0, 0, 0, 0, 0, 0},
+ {0, 0, 0, 0, 0, 0, 0, 0},
+ {0, 0, 0, 0, 0, 0, 0, 0},
+ {0, 0, 0, 0, 0, 0, 0, 0},
+ {0, 0, 0, 0, 0, 0, 0, 0},
+ {0, 0, 0, 0, 0, 0, 0, 0},
+ {0, 0, 0, 0, 0, 0, 0, 0},
+ {0, 0, 0, 0, 0, 0, 0, 0},
+ {0, 0, 0, 0, 0, 0, 0, 0},
+ {0, 0, 0, 0, 0, 0, 0, 0}};
+char gEscReplacementCharacters[32][2] = { // @ G0256_aac_Graphic559_EscapeReplacementCharacters
+ {'a', 0},
+ {'b', 0},
+ {'c', 0},
+ {'d', 0},
+ {'e', 0},
+ {'f', 0},
+ {'g', 0},
+ {'h', 0},
+ {'i', 0},
+ {'j', 0},
+ {'k', 0},
+ {'l', 0},
+ {'m', 0},
+ {'n', 0},
+ {'o', 0},
+ {'p', 0},
+ {'q', 0},
+ {'r', 0},
+ {'s', 0},
+ {'t', 0},
+ {'u', 0},
+ {'v', 0},
+ {'w', 0},
+ {'x', 0},
+ {'0', 0},
+ {'1', 0},
+ {'2', 0},
+ {'3', 0},
+ {'4', 0},
+ {'5', 0},
+ {'6', 0},
+ {'7', 0}};
+char gInscriptionEscReplacementStrings[32][8] = { // @ G0257_aac_Graphic559_InscriptionEscapeReplacementStrings
+ {28, 0, 0, 0, 0, 0, 0, 0}, /* Atari ST Version 1.0 1987-12-08 1987-12-11 1.1 1.2EN 1.2GE: { 0, 0, 0, 0, 0, 0, 0, 0 }, */
+ {29, 0, 0, 0, 0, 0, 0, 0}, /* Atari ST Version 1.0 1987-12-08 1987-12-11 1.1 1.2EN 1.2GE: { 0, 0, 0, 0, 0, 0, 0, 0 }, */
+ {19, 7, 4, 26, 0, 0, 0, 0},
+ {24, 14, 20, 26, 0, 0, 0, 0},
+ {30, 0, 0, 0, 0, 0, 0, 0}, /* Atari ST Version 1.0 1987-12-08 1987-12-11 1.1 1.2EN 1.2GE: { 0, 0, 0, 0, 0, 0, 0, 0 }, */
+ {31, 0, 0, 0, 0, 0, 0, 0}, /* Atari ST Version 1.0 1987-12-08 1987-12-11 1.1 1.2EN 1.2GE: { 0, 0, 0, 0, 0, 0, 0, 0 }, */
+ {32, 0, 0, 0, 0, 0, 0, 0}, /* Atari ST Version 1.0 1987-12-08 1987-12-11 1.1 1.2EN 1.2GE: { 0, 0, 0, 0, 0, 0, 0, 0 }, */
+ {33, 0, 0, 0, 0, 0, 0, 0}, /* Atari ST Version 1.0 1987-12-08 1987-12-11 1.1 1.2EN 1.2GE: { 0, 0, 0, 0, 0, 0, 0, 0 }, */
+ {34, 0, 0, 0, 0, 0, 0, 0}, /* Atari ST Version 1.0 1987-12-08 1987-12-11 1.1 1.2EN 1.2GE: { 0, 0, 0, 0, 0, 0, 0, 0 }, */
+ {35, 0, 0, 0, 0, 0, 0, 0}, /* Atari ST Version 1.0 1987-12-08 1987-12-11 1.1 1.2EN 1.2GE: { 0, 0, 0, 0, 0, 0, 0, 0 }, */
+ {0, 0, 0, 0, 0, 0, 0, 0},
+ {0, 0, 0, 0, 0, 0, 0, 0},
+ {0, 0, 0, 0, 0, 0, 0, 0},
+ {0, 0, 0, 0, 0, 0, 0, 0},
+ {0, 0, 0, 0, 0, 0, 0, 0},
+ {0, 0, 0, 0, 0, 0, 0, 0},
+ {0, 0, 0, 0, 0, 0, 0, 0},
+ {0, 0, 0, 0, 0, 0, 0, 0},
+ {0, 0, 0, 0, 0, 0, 0, 0},
+ {0, 0, 0, 0, 0, 0, 0, 0},
+ {0, 0, 0, 0, 0, 0, 0, 0},
+ {0, 0, 0, 0, 0, 0, 0, 0},
+ {0, 0, 0, 0, 0, 0, 0, 0},
+ {0, 0, 0, 0, 0, 0, 0, 0},
+ {0, 0, 0, 0, 0, 0, 0, 0},
+ {0, 0, 0, 0, 0, 0, 0, 0},
+ {0, 0, 0, 0, 0, 0, 0, 0},
+ {0, 0, 0, 0, 0, 0, 0, 0},
+ {0, 0, 0, 0, 0, 0, 0, 0},
+ {0, 0, 0, 0, 0, 0, 0, 0},
+ {0, 0, 0, 0, 0, 0, 0, 0},
+ {0, 0, 0, 0, 0, 0, 0, 0}};
+
+
+void decodeText(char *destString, Thing thing, TextType type) {
+
+}
diff --git a/engines/dm/dungeonman.h b/engines/dm/dungeonman.h
index dbcb6fbcd8..4a5ff1786a 100644
--- a/engines/dm/dungeonman.h
+++ b/engines/dm/dungeonman.h
@@ -13,6 +13,15 @@ int16 ordinalToIndex(int16 val); // @ M01_ORDINAL_TO_INDEX
int16 indexToOrdinal(int16 val); // @ M00_INDEX_TO_ORDINAL
+enum TextType {
+ /* Used for text on walls */
+ kTextTypeInscription = 0, // @ C0_TEXT_TYPE_INSCRIPTION
+ /* Used for messages displayed when the party walks on a square */
+ kTextTypeMessage = 1, // @ C1_TEXT_TYPE_MESSAGE
+ /* Used for text on scrolls and champion information */
+ kTextTypeScroll = 2 // @ C2_TEXT_TYPE_SCROLL
+};
+
enum SquareAspectIndice {
kElemAspect = 0,
kFirstGroupOrObjectAspect = 1,
@@ -287,7 +296,8 @@ enum SquareMask {
kFakeWallImaginary = 0x1,
kFakeWallOpen = 0x4,
kFakeWallRandOrnOrFootPAllowed = 0x8,
- kThingListPresent = 0x10
+ kThingListPresent = 0x10,
+ kDecodeEvenIfInvisible = 0x8000
};
enum SquareType {
@@ -434,8 +444,9 @@ public:
return Square(getRelSquare(dir, stepsForward, stepsRight, posX, posY)).getType();
} // @ F0153_DUNGEON_GetRelativeSquareType
void setSquareAspect(uint16 *aspectArray, direction dir, int16 mapX, int16 mapY); // @ F0172_DUNGEON_SetSquareAspect
+ void decodeText(char *destString, Thing thing, TextType type); // F0168_DUNGEON_DecodeText
- uint32 _rawDunFileDataSize = 0; // @ probably NONE
+ uint32 _rawDunFileDataSize = 0; // @ probably NONE
byte *_rawDunFileData = NULL; // @ ???
DungeonFileHeader _fileHeader; // @ G0278_ps_DungeonHeader