aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
Diffstat (limited to 'engines')
-rw-r--r--engines/sherlock/journal.cpp28
-rw-r--r--engines/sherlock/journal.h3
-rw-r--r--engines/sherlock/scene.cpp2
-rw-r--r--engines/sherlock/talk.cpp40
4 files changed, 40 insertions, 33 deletions
diff --git a/engines/sherlock/journal.cpp b/engines/sherlock/journal.cpp
index f288b43650..71d104e3f7 100644
--- a/engines/sherlock/journal.cpp
+++ b/engines/sherlock/journal.cpp
@@ -29,7 +29,7 @@ namespace Sherlock {
#define LINES_PER_PAGE 11
// Positioning of buttons in the journal view
-const int JOURNAL_POINTS[9][3] = {
+static const int JOURNAL_POINTS[9][3] = {
{ 6, 68, 37 },
{ 69, 131, 100 },
{ 132, 192, 162 },
@@ -41,7 +41,7 @@ const int JOURNAL_POINTS[9][3] = {
{ 237, 313, 275 }
};
-const int SEARCH_POINTS[3][3] = {
+static const int SEARCH_POINTS[3][3] = {
{ 51, 123, 86 },
{ 124, 196, 159 },
{ 197, 269, 232 }
@@ -146,6 +146,8 @@ void Journal::loadJournalFile(bool alreadyLoaded) {
Common::String dirFilename = _directory[journalEntry._converseNum];
bool replyOnly = journalEntry._replyOnly;
+
+ // Get the location number from within the filename
Common::String locStr(dirFilename.c_str() + 4, dirFilename.c_str() + 6);
int newLocation = atoi(locStr.c_str());
@@ -195,11 +197,11 @@ void Journal::loadJournalFile(bool alreadyLoaded) {
// See if title can fit into a single line, or requires splitting on 2 lines
int width = screen.stringWidth(journalString.c_str() + 1);
- if (width > 230) {
+ if (width > JOURNAL_MAX_WIDTH) {
// Scan backwards from end of title to find a space between a word
// where the width is less than the maximum allowed for the line
const char *lineP = journalString.c_str() + journalString.size() - 1;
- while (width > 230 || *lineP != ' ')
+ while (width > JOURNAL_MAX_WIDTH || *lineP != ' ')
width -= screen.charWidth(*lineP--);
// Split the header into two lines, and add a '@' prefix
@@ -249,7 +251,7 @@ void Journal::loadJournalFile(bool alreadyLoaded) {
byte c = *replyP++;
// Is it a control character?
- if (c < 128) {
+ if (c < SWITCH_SPEAKER) {
// Nope. Set flag for allowing control codes to insert spaces
ctrlSpace = true;
assert(c >= ' ');
@@ -296,7 +298,7 @@ void Journal::loadJournalFile(bool alreadyLoaded) {
byte v;
do {
v = *strP++;
- } while (v && (v < 128) && (v != '.') && (v != '!') && (v != '?'));
+ } while (v && (v < SWITCH_SPEAKER) && (v != '.') && (v != '!') && (v != '?'));
if (v == '?')
journalString += " asked, \"";
@@ -312,11 +314,11 @@ void Journal::loadJournalFile(bool alreadyLoaded) {
journalString += c;
do {
journalString += *replyP++;
- } while (*replyP && *replyP < 128 && *replyP != '{' && *replyP != '}');
+ } while (*replyP && *replyP < SWITCH_SPEAKER && *replyP != '{' && *replyP != '}');
commentJustPrinted = false;
}
- } else if (c == 128) {
+ } else if (c == SWITCH_SPEAKER) {
if (!startOfReply) {
if (!commentFlag && !commentJustPrinted)
journalString += "\"\n";
@@ -343,7 +345,7 @@ void Journal::loadJournalFile(bool alreadyLoaded) {
byte v;
do {
v = *strP++;
- } while (v && v < 128 && v != '.' && v != '!' && v != '?');
+ } while (v && v < SWITCH_SPEAKER && v != '.' && v != '!' && v != '?');
if (v == '?')
journalString += " asked, \"";
@@ -403,7 +405,7 @@ void Journal::loadJournalFile(bool alreadyLoaded) {
// Put a space in the output for a control character, unless it's
// immediately coming after another control character
- if (ctrlSpace && c != 130 && c != 161 && !commentJustPrinted) {
+ if (ctrlSpace && c != ASSIGN_PORTRAIT_LOCATION && c != CARRIAGE_RETURN && !commentJustPrinted) {
journalString += " ";
ctrlSpace = false;
}
@@ -429,11 +431,11 @@ void Journal::loadJournalFile(bool alreadyLoaded) {
// Build up chacters until a full line is found
int width = 0;
const char *endP = startP;
- while (width < 230 && *endP && *endP != '\n' && (endP - startP) < 79)
+ while (width < JOURNAL_MAX_WIDTH && *endP && *endP != '\n' && (endP - startP) < (JOURNAL_MAX_CHARS - 1))
width += screen.charWidth(*endP++);
// If word wrapping, move back to end of prior word
- if (width >= 230 || (endP - startP) >= 79) {
+ if (width >= JOURNAL_MAX_WIDTH || (endP - startP) >= (JOURNAL_MAX_CHARS - 1)) {
while (*--endP != ' ')
;
}
@@ -518,7 +520,7 @@ void Journal::drawInterface() {
drawJournalFrame();
- if (_journal.size() == 0) {
+ if (_journal.empty()) {
_up = _down = 0;
} else {
drawJournal(0, 0);
diff --git a/engines/sherlock/journal.h b/engines/sherlock/journal.h
index be5c4d77c3..97696ef74f 100644
--- a/engines/sherlock/journal.h
+++ b/engines/sherlock/journal.h
@@ -31,6 +31,9 @@
namespace Sherlock {
+#define JOURNAL_MAX_WIDTH 230
+#define JOURNAL_MAX_CHARS 80
+
struct JournalEntry {
int _converseNum;
bool _replyOnly;
diff --git a/engines/sherlock/scene.cpp b/engines/sherlock/scene.cpp
index b092bbce65..78858bc284 100644
--- a/engines/sherlock/scene.cpp
+++ b/engines/sherlock/scene.cpp
@@ -1364,7 +1364,7 @@ void Scene::doBgAnim() {
_animating = 0;
screen.slamRect(Common::Rect(0, 0, SHERLOCK_SCREEN_WIDTH, SHERLOCK_SCENE_HEIGHT));
} else {
- if (people[AL]._type != INVALID && ((_goToScene == -1 || _canimShapes.size() == 0))) {
+ if (people[AL]._type != INVALID && ((_goToScene == -1 || _canimShapes.empty()))) {
if (people[AL]._type == REMOVE) {
screen.slamRect(Common::Rect(
people[AL]._oldPosition.x, people[AL]._oldPosition.y,
diff --git a/engines/sherlock/talk.cpp b/engines/sherlock/talk.cpp
index dc5b9c5ba7..78b52bc7a5 100644
--- a/engines/sherlock/talk.cpp
+++ b/engines/sherlock/talk.cpp
@@ -26,6 +26,8 @@
namespace Sherlock {
+#define SPEAKER_REMOVE 0x80
+
SequenceEntry::SequenceEntry() {
_objNum = 0;
_frameNumber = 0;
@@ -221,7 +223,7 @@ void Talk::talkTo(const Common::String &filename) {
break;
case TALK_MODE:
- if (_speaker < 128)
+ if (_speaker < SPEAKER_REMOVE)
people.clearTalking();
if (_talkCounter)
return;
@@ -464,7 +466,7 @@ void Talk::talk(int objNum) {
ui._windowBounds.top = CONTROLS_Y;
ui._infoFlag = true;
- _speaker = 128;
+ _speaker = SPEAKER_REMOVE;
loadTalkFile(scene._bgShapes[objNum]._name);
// Find the first statement with the correct flags
@@ -769,11 +771,11 @@ int Talk::talkLine(int lineNum, int stateNum, byte color, int lineY, bool slamIt
bool numberFlag = false;
// Get the statement to display as well as optional number prefix
- if (idx < 128) {
+ if (idx < SPEAKER_REMOVE) {
number = Common::String::format("%d.", stateNum + 1);
numberFlag = true;
} else {
- idx -= 128;
+ idx -= SPEAKER_REMOVE;
}
msg = _statements[idx]._statement;
@@ -1019,7 +1021,7 @@ void Talk::doScript(const Common::String &script) {
// Check if the script begins with a Stealh Mode Active command
if (str[0] == STEALTH_MODE_ACTIVE || _talkStealth) {
_talkStealth = 2;
- _speaker |= 128;
+ _speaker |= SPEAKER_REMOVE;
} else {
pushSequence(_speaker);
ui.clearWindow();
@@ -1077,11 +1079,11 @@ void Talk::doScript(const Common::String &script) {
// Start of comment, so skip over it
while (*str++ != '}')
;
- } else if (c >= 128) {
+ } else if (c >= SWITCH_SPEAKER) {
// Handle control code
switch (c) {
case SWITCH_SPEAKER:
- if (!(_speaker & 128))
+ if (!(_speaker & SPEAKER_REMOVE))
people.clearTalking();
if (_talkToAbort)
return;
@@ -1099,7 +1101,7 @@ void Talk::doScript(const Common::String &script) {
case RUN_CANIMATION:
++str;
- scene.startCAnim((str[0] - 1) & 127, (str[0] & 128) ? -1 : 1);
+ scene.startCAnim((str[0] - 1) & 127, (str[0] & 0x80) ? -1 : 1);
if (_talkToAbort)
return;
@@ -1135,13 +1137,13 @@ void Talk::doScript(const Common::String &script) {
break;
case REMOVE_PORTRAIT:
- if (_speaker >= 0 && _speaker < 128)
+ if (_speaker >= 0 && _speaker < SPEAKER_REMOVE)
people.clearTalking();
pullSequence();
if (_talkToAbort)
return;
- _speaker |= 128;
+ _speaker |= SPEAKER_REMOVE;
break;
case CLEAR_WINDOW:
@@ -1167,7 +1169,7 @@ void Talk::doScript(const Common::String &script) {
error("Could not find object %s to change", tempString.c_str());
// Should the script be overwritten?
- if (str[0] > 128) {
+ if (str[0] > 0x80) {
// Save the current sequence
_savedSequences.push(SequenceEntry());
SequenceEntry &seqEntry = _savedSequences.top();
@@ -1216,14 +1218,14 @@ void Talk::doScript(const Common::String &script) {
break;
case BANISH_WINDOW:
- if (!(_speaker & 128))
+ if (!(_speaker & SPEAKER_REMOVE))
people.clearTalking();
pullSequence();
if (_talkToAbort)
return;
- _speaker |= 128;
+ _speaker |= SPEAKER_REMOVE;
ui.banishWindow();
ui._menuMode = TALK_MODE;
noTextYet = true;
@@ -1367,7 +1369,7 @@ void Talk::doScript(const Common::String &script) {
tempString += str[idx + 1];
// Set comparison state according to if we want to hide or unhide
- bool state = (str[0] >= 128);
+ bool state = (str[0] >= SPEAKER_REMOVE);
str += str[0] & 127;
for (uint idx = 0; idx < scene._bgShapes.size(); ++idx) {
@@ -1501,10 +1503,10 @@ void Talk::doScript(const Common::String &script) {
width += screen.charWidth(str[idx]);
++idx;
++charCount;
- } while (width < 298 && str[idx] && str[idx] != '{' && str[idx] < 128);
+ } while (width < 298 && str[idx] && str[idx] != '{' && str[idx] < SWITCH_SPEAKER);
if (str[idx] || width >= 298) {
- if (str[idx] < 128 && str[idx] != '{') {
+ if (str[idx] < SWITCH_SPEAKER && str[idx] != '{') {
--idx;
--charCount;
}
@@ -1544,7 +1546,7 @@ void Talk::doScript(const Common::String &script) {
str += idx;
// If line wrap occurred, then move to after the separating space between the words
- if (str[0] < 128 && str[0] != '{')
+ if (str[0] < SWITCH_SPEAKER && str[0] != '{')
++str;
yp += 9;
@@ -1574,7 +1576,7 @@ void Talk::doScript(const Common::String &script) {
}
// Open window if it wasn't already open, and text has already been printed
- if ((openTalkWindow && wait) || (openTalkWindow && str[0] >= 128 && str[0] != CARRIAGE_RETURN)) {
+ if ((openTalkWindow && wait) || (openTalkWindow && str[0] >= SWITCH_SPEAKER && str[0] != CARRIAGE_RETURN)) {
if (!ui._windowStyle) {
screen.slamRect(Common::Rect(0, CONTROLS_Y, SHERLOCK_SCREEN_WIDTH, SHERLOCK_SCREEN_HEIGHT));
} else {
@@ -1624,7 +1626,7 @@ void Talk::doScript(const Common::String &script) {
}
pullSequence();
- if (_speaker >= 0 && _speaker < 128)
+ if (_speaker >= 0 && _speaker < SPEAKER_REMOVE)
people.clearTalking();
}
}