From a81fbda3da5aa6b1960c22baf95359639b3fda20 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Fri, 6 Feb 2015 08:25:22 +0100 Subject: [PATCH] ACCESS: MM - Start implementing PRINTCHR and SPRINTCHR --- engines/access/access.cpp | 30 ++++++++++++++++++++++++++++++ engines/access/access.h | 3 +++ 2 files changed, 33 insertions(+) diff --git a/engines/access/access.cpp b/engines/access/access.cpp index f680eebec1a2..9749706c96ec 100644 --- a/engines/access/access.cpp +++ b/engines/access/access.cpp @@ -592,6 +592,36 @@ void AccessEngine::writeSavegameHeader(Common::OutSaveFile *out, AccessSavegameH out->writeUint32LE(_events->getFrameCounter()); } +void AccessEngine::SPRINTCHR(char c, int fontNum) { + warning("TODO: SPRINTCHR"); + _fonts._font1.drawChar(_screen, c, _screen->_printOrg); +} + +void AccessEngine::PRINTCHR(Common::String msg, int fontNum) { + _events->hideCursor(); + warning("TODO: PRINTCHR - Handle fontNum"); + + for (int i = 0; msg[i]; i++) { + if (!(_fonts._charSet._hi & 8)) { + _fonts._font1.drawChar(_screen, msg[i], _screen->_printOrg); + continue; + } else if (_fonts._charSet._hi & 2) { + Common::Point oldPos = _screen->_printOrg; + int oldFontLo = _fonts._charFor._lo; + + _fonts._charFor._lo = 0; + _screen->_printOrg.x++; + _screen->_printOrg.y++; + SPRINTCHR(msg[i], fontNum); + + _screen->_printOrg = oldPos; + _fonts._charFor._lo = oldFontLo; + } + SPRINTCHR(msg[i], fontNum); + } + _events->showCursor(); +} + bool AccessEngine::shouldQuitOrRestart() { return shouldQuit() || _restartFl; } diff --git a/engines/access/access.h b/engines/access/access.h index 51eb04070299..a53a659403d5 100644 --- a/engines/access/access.h +++ b/engines/access/access.h @@ -310,6 +310,9 @@ class AccessEngine : public Engine { * Write out a savegame header */ void writeSavegameHeader(Common::OutSaveFile *out, AccessSavegameHeader &header); + + void SPRINTCHR(char c, int fontNum); + void PRINTCHR(Common::String msg, int fontNum); }; } // End of namespace Access