aboutsummaryrefslogtreecommitdiff
path: root/engines/adl
diff options
context:
space:
mode:
authorWalter van Niftrik2018-08-02 10:56:49 +0200
committerWalter van Niftrik2019-07-16 16:24:19 +0200
commitce8a8409332ff28a80de918a5771baa20d6980d1 (patch)
tree99ce86ba7c7d343b8951490c41644e9383f342fe /engines/adl
parent0cd761086a72e9fd83c23f1c6267fe79829f3f07 (diff)
downloadscummvm-rg350-ce8a8409332ff28a80de918a5771baa20d6980d1.tar.gz
scummvm-rg350-ce8a8409332ff28a80de918a5771baa20d6980d1.tar.bz2
scummvm-rg350-ce8a8409332ff28a80de918a5771baa20d6980d1.zip
ADL: Remove APPLECHAR macro
Diffstat (limited to 'engines/adl')
-rw-r--r--engines/adl/adl.cpp19
-rw-r--r--engines/adl/adl_v2.cpp31
-rw-r--r--engines/adl/adl_v4.cpp6
-rw-r--r--engines/adl/adl_v5.cpp2
-rw-r--r--engines/adl/console.cpp22
-rw-r--r--engines/adl/console.h2
-rw-r--r--engines/adl/display.cpp4
-rw-r--r--engines/adl/display.h3
-rw-r--r--engines/adl/display_a2.cpp4
-rw-r--r--engines/adl/hires1.cpp14
-rw-r--r--engines/adl/hires4.cpp6
-rw-r--r--engines/adl/hires5.cpp2
-rw-r--r--engines/adl/hires6.cpp24
13 files changed, 75 insertions, 64 deletions
diff --git a/engines/adl/adl.cpp b/engines/adl/adl.cpp
index 5da587f391..f8d61e563d 100644
--- a/engines/adl/adl.cpp
+++ b/engines/adl/adl.cpp
@@ -182,7 +182,7 @@ Common::String AdlEngine::inputString(byte prompt) const {
Common::String native;
for (uint i = 0; i < line.size(); ++i)
- native += APPLECHAR(line[i]);
+ native += _display->asciiToNative(line[i]);
_display->printString(native);
// Set pause flag to activate regular behaviour of delay and inputKey
@@ -214,7 +214,7 @@ Common::String AdlEngine::inputString(byte prompt) const {
case Common::KEYCODE_BACKSPACE | 0x80:
if (!s.empty()) {
_display->moveCursorBackward();
- _display->setCharAtCursor(APPLECHAR(' '));
+ _display->setCharAtCursor(_display->asciiToNative(' '));
s.deleteLastChar();
}
break;
@@ -233,7 +233,7 @@ byte AdlEngine::inputKey(bool showCursor) const {
// If debug script is active, we fake a return press for the text overflow handling
if (_inputScript && !_scriptPaused)
- return APPLECHAR('\r');
+ return _display->asciiToNative('\r');
if (showCursor)
_display->showCursor(true);
@@ -257,7 +257,7 @@ byte AdlEngine::inputKey(bool showCursor) const {
// If debug script was activated in the meantime, abort input
if (_inputScript && !_scriptPaused)
- return APPLECHAR('\r');
+ return _display->asciiToNative('\r');
_display->copyTextSurface();
g_system->delayMillis(16);
@@ -991,7 +991,7 @@ byte AdlEngine::convertKey(uint16 ascii) const {
Common::String AdlEngine::getLine() {
while (1) {
- Common::String line = inputString(APPLECHAR('?'));
+ Common::String line = inputString(_display->asciiToNative('?'));
if (shouldQuit() || _isRestoring)
return Common::String();
@@ -1010,9 +1010,10 @@ Common::String AdlEngine::getLine() {
Common::String AdlEngine::getWord(const Common::String &line, uint &index) const {
Common::String str;
+ const char spaceChar = _display->asciiToNative(' ');
for (uint i = 0; i < 8; ++i)
- str += APPLECHAR(' ');
+ str += spaceChar;
int copied = 0;
@@ -1020,7 +1021,7 @@ Common::String AdlEngine::getWord(const Common::String &line, uint &index) const
while (1) {
if (index == line.size())
return str;
- if (line[index] != APPLECHAR(' '))
+ if (line[index] != spaceChar)
break;
++index;
}
@@ -1032,7 +1033,7 @@ Common::String AdlEngine::getWord(const Common::String &line, uint &index) const
index++;
- if (index == line.size() || line[index] == APPLECHAR(' '))
+ if (index == line.size() || line[index] == spaceChar)
return str;
}
}
@@ -1249,7 +1250,7 @@ int AdlEngine::o_restart(ScriptEnv &e) {
_display->printString(_strings.playAgain);
Common::String input = inputString();
- if (input.size() == 0 || input[0] != APPLECHAR('N')) {
+ if (input.size() == 0 || input[0] != _display->asciiToNative('N')) {
_isRestarting = true;
_graphics->clearScreen();
_display->copyGfxSurface();
diff --git a/engines/adl/adl_v2.cpp b/engines/adl/adl_v2.cpp
index aed38beaed..81ff145689 100644
--- a/engines/adl/adl_v2.cpp
+++ b/engines/adl/adl_v2.cpp
@@ -101,7 +101,7 @@ void AdlEngine_v2::advanceClock() {
}
void AdlEngine_v2::checkTextOverflow(char c) {
- if (c != APPLECHAR('\r'))
+ if (c != _display->asciiToNative('\r'))
return;
++_linesPrinted;
@@ -135,7 +135,7 @@ void AdlEngine_v2::handleTextOverflow() {
if (shouldQuit())
return;
- if (key == APPLECHAR('\r'))
+ if (key == _display->asciiToNative('\r'))
break;
bell(3);
@@ -158,16 +158,19 @@ void AdlEngine_v2::printString(const Common::String &str) {
uint startPos = 0;
uint pos = 0;
+ const char spaceChar = _display->asciiToNative(' ');
+ const char returnChar = _display->asciiToNative('\r');
+
while (pos < s.size()) {
- s.setChar(APPLECHAR(s[pos]), pos);
+ s.setChar(_display->asciiToNative(s[pos]), pos);
if (pos == endPos) {
- while (s[pos] != APPLECHAR(' ') && s[pos] != APPLECHAR('\r')) {
+ while (s[pos] != spaceChar && s[pos] != returnChar) {
if (pos-- == startPos)
error("Word wrapping failed");
}
- s.setChar(APPLECHAR('\r'), pos);
+ s.setChar(returnChar, pos);
endPos = pos + textWidth;
startPos = pos + 1;
}
@@ -180,8 +183,8 @@ void AdlEngine_v2::printString(const Common::String &str) {
_display->printChar(s[pos]);
}
- checkTextOverflow(APPLECHAR('\r'));
- _display->printChar(APPLECHAR('\r'));
+ checkTextOverflow(returnChar);
+ _display->printChar(returnChar);
_display->copyTextSurface();
}
@@ -565,10 +568,12 @@ int AdlEngine_v2::o_tellTime(ScriptEnv &e) {
Common::String time = _strings_v2.time;
- time.setChar(APPLECHAR('0') + _state.time.hours / 10, 12);
- time.setChar(APPLECHAR('0') + _state.time.hours % 10, 13);
- time.setChar(APPLECHAR('0') + _state.time.minutes / 10, 15);
- time.setChar(APPLECHAR('0') + _state.time.minutes % 10, 16);
+ const char zeroChar = _display->asciiToNative('0');
+
+ time.setChar(zeroChar + _state.time.hours / 10, 12);
+ time.setChar(zeroChar + _state.time.hours % 10, 13);
+ time.setChar(zeroChar + _state.time.minutes / 10, 15);
+ time.setChar(zeroChar + _state.time.minutes % 10, 16);
printString(time);
@@ -611,8 +616,8 @@ int AdlEngine_v2::askForSlot(const Common::String &question) {
if (shouldQuit())
return -1;
- if (input.size() > 0 && input[0] >= APPLECHAR('A') && input[0] <= APPLECHAR('O'))
- return input[0] - APPLECHAR('A');
+ if (input.size() > 0 && input[0] >= _display->asciiToNative('A') && input[0] <= _display->asciiToNative('O'))
+ return input[0] - _display->asciiToNative('A');
}
}
diff --git a/engines/adl/adl_v4.cpp b/engines/adl/adl_v4.cpp
index dabee63e1a..3571ec33c2 100644
--- a/engines/adl/adl_v4.cpp
+++ b/engines/adl/adl_v4.cpp
@@ -528,7 +528,7 @@ int AdlEngine_v4::o_save(ScriptEnv &e) {
if (shouldQuit())
return -1;
- if (key != APPLECHAR('Y'))
+ if (key != _display->asciiToNative('Y'))
return 0;
const int slot = askForSlot(_strings_v2.saveInsert);
@@ -569,9 +569,9 @@ int AdlEngine_v4::o_restart(ScriptEnv &e) {
if (shouldQuit())
return -1;
- if (input.firstChar() == APPLECHAR('N')) {
+ if (input.firstChar() == _display->asciiToNative('N')) {
return o_quit(e);
- } else if (input.firstChar() == APPLECHAR('Y')) {
+ } else if (input.firstChar() == _display->asciiToNative('Y')) {
// The original game loads a special save game from volume 3
initState();
// Long jump
diff --git a/engines/adl/adl_v5.cpp b/engines/adl/adl_v5.cpp
index 9a970d9fdc..a075356443 100644
--- a/engines/adl/adl_v5.cpp
+++ b/engines/adl/adl_v5.cpp
@@ -115,7 +115,7 @@ int AdlEngine_v5::o_setTextMode(ScriptEnv &e) {
switch (e.arg(1)) {
case 1:
if (_linesPrinted != 0) {
- _display->printChar(APPLECHAR(' '));
+ _display->printChar(_display->asciiToNative(' '));
handleTextOverflow();
_display->moveCursorTo(Common::Point(0, 23));
_maxLines = 4;
diff --git a/engines/adl/console.cpp b/engines/adl/console.cpp
index 777c0a92b9..876389c33a 100644
--- a/engines/adl/console.cpp
+++ b/engines/adl/console.cpp
@@ -58,20 +58,20 @@ Common::String Console::toAscii(const Common::String &str) {
return ascii;
}
-Common::String Console::toAppleWord(const Common::String &str) {
- Common::String apple(str);
+Common::String Console::toNative(const Common::String &str) {
+ Common::String native(str);
- if (apple.size() > IDI_WORD_SIZE)
- apple.erase(IDI_WORD_SIZE);
- apple.toUppercase();
+ if (native.size() > IDI_WORD_SIZE)
+ native.erase(IDI_WORD_SIZE);
+ native.toUppercase();
- for (uint i = 0; i < apple.size(); ++i)
- apple.setChar(APPLECHAR(apple[i]), i);
+ for (uint i = 0; i < native.size(); ++i)
+ native.setChar(_engine->_display->asciiToNative(native[i]), i);
- while (apple.size() < IDI_WORD_SIZE)
- apple += APPLECHAR(' ');
+ while (native.size() < IDI_WORD_SIZE)
+ native += _engine->_display->asciiToNative(' ');
- return apple;
+ return native;
}
bool Console::Cmd_Verbs(int argc, const char **argv) {
@@ -270,7 +270,7 @@ bool Console::Cmd_GiveItem(int argc, const char **argv) {
if (*end != 0) {
Common::Array<Item *> matches;
- Common::String name = toAppleWord(argv[1]);
+ Common::String name = toNative(argv[1]);
if (!_engine->_nouns.contains(name)) {
debugPrintf("Item '%s' not found\n", argv[1]);
diff --git a/engines/adl/console.h b/engines/adl/console.h
index db2e8ca0bf..df4b2aeacb 100644
--- a/engines/adl/console.h
+++ b/engines/adl/console.h
@@ -41,7 +41,7 @@ public:
Console(AdlEngine *engine);
static Common::String toAscii(const Common::String &str);
- static Common::String toAppleWord(const Common::String &str);
+ Common::String toNative(const Common::String &str);
private:
bool Cmd_Nouns(int argc, const char **argv);
diff --git a/engines/adl/display.cpp b/engines/adl/display.cpp
index f2285a7248..736b09497b 100644
--- a/engines/adl/display.cpp
+++ b/engines/adl/display.cpp
@@ -53,7 +53,7 @@ void Display::createTextBuffer(uint textWidth, uint textHeight) {
_textHeight = textHeight;
_textBuf = new byte[textWidth * textHeight];
- memset(_textBuf, asciiToNative(' '), textWidth * textHeight);
+ memset(_textBuf, (byte)asciiToNative(' '), textWidth * textHeight);
}
void Display::setMode(Display::Mode mode) {
@@ -88,7 +88,7 @@ void Display::copyGfxSurface() {
}
void Display::home() {
- memset(_textBuf, asciiToNative(' '), _textWidth * _textHeight);
+ memset(_textBuf, (byte)asciiToNative(' '), _textWidth * _textHeight);
_cursorPos = 0;
}
diff --git a/engines/adl/display.h b/engines/adl/display.h
index d4a30cfe78..a92993e2ec 100644
--- a/engines/adl/display.h
+++ b/engines/adl/display.h
@@ -23,9 +23,6 @@
#ifndef ADL_DISPLAY_H
#define ADL_DISPLAY_H
-// REMOVE
-#define APPLECHAR(C) (char)(C | 0x80)
-
#include "common/types.h"
namespace Common {
diff --git a/engines/adl/display_a2.cpp b/engines/adl/display_a2.cpp
index 393e38bab1..bb0e6d9b03 100644
--- a/engines/adl/display_a2.cpp
+++ b/engines/adl/display_a2.cpp
@@ -239,9 +239,9 @@ void Display_A2::clear(byte color) {
// FIXME: This does not currently update the surfaces
void Display_A2::printChar(char c) {
- if (c == APPLECHAR('\r'))
+ if (c == Display_A2::asciiToNative('\r'))
_cursorPos = (_cursorPos / Display_A2::kTextWidth + 1) * Display_A2::kTextWidth;
- else if (c == APPLECHAR('\a')) {
+ else if (c == Display_A2::asciiToNative('\a')) {
copyTextSurface();
static_cast<AdlEngine *>(g_engine)->bell();
} else if ((byte)c < 0x80 || (byte)c >= 0xa0) {
diff --git a/engines/adl/hires1.cpp b/engines/adl/hires1.cpp
index c045ce94ad..169a0ea7d9 100644
--- a/engines/adl/hires1.cpp
+++ b/engines/adl/hires1.cpp
@@ -214,10 +214,10 @@ void HiRes1Engine::runIntro() {
if (s.empty())
continue;
- if (s[0] == APPLECHAR('I')) {
+ if (s[0] == _display->asciiToNative('I')) {
instructions = true;
break;
- } else if (s[0] == APPLECHAR('G')) {
+ } else if (s[0] == _display->asciiToNative('G')) {
break;
}
}
@@ -397,8 +397,9 @@ void HiRes1Engine::printString(const Common::String &str) {
}
Common::String HiRes1Engine::loadMessage(uint idx) const {
+ const char returnChar = _display->asciiToNative('\r');
StreamPtr stream(_messages[idx]->createReadStream());
- return readString(*stream, APPLECHAR('\r')) + APPLECHAR('\r');
+ return readString(*stream, returnChar) + returnChar;
}
void HiRes1Engine::printMessage(uint idx) {
@@ -487,14 +488,17 @@ void HiRes1Engine::showRoom() {
void HiRes1Engine::wordWrap(Common::String &str) const {
uint end = 39;
+ const char spaceChar = _display->asciiToNative(' ');
+ const char returnChar = _display->asciiToNative('\r');
+
while (1) {
if (str.size() <= end)
return;
- while (str[end] != APPLECHAR(' '))
+ while (str[end] != spaceChar)
--end;
- str.setChar(APPLECHAR('\r'), end);
+ str.setChar(returnChar, end);
end += 40;
}
}
diff --git a/engines/adl/hires4.cpp b/engines/adl/hires4.cpp
index d914661f37..5171685175 100644
--- a/engines/adl/hires4.cpp
+++ b/engines/adl/hires4.cpp
@@ -244,7 +244,7 @@ void HiRes4Engine::runIntroAdvise(Common::SeekableReadStream &menu) {
}
_display->moveCursorTo(Common::Point(32, 18));
- _display->printChar(APPLECHAR(cursor[cursorIdx]));
+ _display->printChar(_display->asciiToNative(cursor[cursorIdx]));
_display->copyTextSurface();
g_system->delayMillis(25);
cursorIdx = (cursorIdx + 1) % cursor.size();
@@ -450,11 +450,11 @@ void HiRes4Engine::runIntro() {
if (shouldQuit())
return;
- if (key == APPLECHAR('1')) {
+ if (key == _display->asciiToNative('1')) {
StreamPtr instructions(files->createReadStream("INSTRUCTIONS"));
runIntroInstructions(*instructions);
break;
- } else if (key == APPLECHAR('2')) {
+ } else if (key == _display->asciiToNative('2')) {
StreamPtr adventure(files->createReadStream("THE ADVENTURE"));
runIntroLoading(*adventure);
return;
diff --git a/engines/adl/hires5.cpp b/engines/adl/hires5.cpp
index 2fdb9fd227..37093741b2 100644
--- a/engines/adl/hires5.cpp
+++ b/engines/adl/hires5.cpp
@@ -261,7 +261,7 @@ void HiRes5Engine::runIntro() {
Common::String cmd(inputString());
// We ignore the backup and format menu options
- if (!cmd.empty() && cmd[0] == APPLECHAR('1'))
+ if (!cmd.empty() && cmd[0] == _display->asciiToNative('1'))
break;
};
}
diff --git a/engines/adl/hires6.cpp b/engines/adl/hires6.cpp
index b34a53e2ad..29d7ea35c6 100644
--- a/engines/adl/hires6.cpp
+++ b/engines/adl/hires6.cpp
@@ -216,7 +216,7 @@ void HiRes6Engine::runIntro() {
error("Failed to open disk volume 0");
stream.reset(files->createReadStream("\010\010\010\010\010\010"));
- Common::String copyright(readStringAt(*stream, 0x103, APPLECHAR('\r')));
+ Common::String copyright(readStringAt(*stream, 0x103, _display->asciiToNative('\r')));
delete files;
@@ -339,13 +339,15 @@ Common::String HiRes6Engine::formatVerbError(const Common::String &verb) const {
for (uint i = 0; i < verb.size(); ++i)
err.setChar(verb[i], i + 24);
- err.setChar(APPLECHAR(' '), 32);
+ const char spaceChar = _display->asciiToNative(' ');
+
+ err.setChar(spaceChar, 32);
uint i = 24;
- while (err[i] != APPLECHAR(' '))
+ while (err[i] != spaceChar)
++i;
- err.setChar(APPLECHAR('.'), i);
+ err.setChar(_display->asciiToNative('.'), i);
return err;
}
@@ -356,16 +358,18 @@ Common::String HiRes6Engine::formatNounError(const Common::String &verb, const C
for (uint i = 0; i < noun.size(); ++i)
err.setChar(noun[i], i + 24);
+ const char spaceChar = _display->asciiToNative(' ');
+
for (uint i = 35; i > 31; --i)
- err.setChar(APPLECHAR(' '), i);
+ err.setChar(spaceChar, i);
uint i = 24;
- while (err[i] != APPLECHAR(' '))
+ while (err[i] != spaceChar)
++i;
- err.setChar(APPLECHAR('I'), i + 1);
- err.setChar(APPLECHAR('S'), i + 2);
- err.setChar(APPLECHAR('.'), i + 3);
+ err.setChar(_display->asciiToNative('I'), i + 1);
+ err.setChar(_display->asciiToNative('S'), i + 2);
+ err.setChar(_display->asciiToNative('.'), i + 3);
return err;
}
@@ -409,7 +413,7 @@ void HiRes6Engine::printString(const Common::String &str) {
if (getVar(2) == 0xff) {
if (getVar(26) == 0) {
// This checks for special room description string " "
- if (str.size() == 1 && APPLECHAR(str[0]) == APPLECHAR(' ')) {
+ if (str.size() == 1 && _display->asciiToNative(str[0]) == _display->asciiToNative(' ')) {
setVar(2, 160);
} else {
AdlEngine_v5::printString(s);