aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Kagerer2008-03-09 15:26:06 +0000
committerFlorian Kagerer2008-03-09 15:26:06 +0000
commit4712089f18e521605bc08152fe02e5aeb4b78dd7 (patch)
treeebb8bec15e64f0bef525ca6ee234340820bf7191
parentd2bbfbcc35a1ab8cc3be52dba690a07cbabdf632 (diff)
downloadscummvm-rg350-4712089f18e521605bc08152fe02e5aeb4b78dd7.tar.gz
scummvm-rg350-4712089f18e521605bc08152fe02e5aeb4b78dd7.tar.bz2
scummvm-rg350-4712089f18e521605bc08152fe02e5aeb4b78dd7.zip
floppy/fm-towns implementation for spell book
svn-id: r31089
-rw-r--r--engines/kyra/gui_v2.cpp63
1 files changed, 38 insertions, 25 deletions
diff --git a/engines/kyra/gui_v2.cpp b/engines/kyra/gui_v2.cpp
index 1f997564b7..f81ae309c5 100644
--- a/engines/kyra/gui_v2.cpp
+++ b/engines/kyra/gui_v2.cpp
@@ -846,31 +846,43 @@ int KyraEngine_v2::bookButton(Button *button) {
void KyraEngine_v2::loadBookBkgd() {
char filename[16];
- strcpy(filename, (_bookBkgd == 0) ? "_XBOOKD.CPS" : "_XBOOKC.CPS");
- _bookBkgd ^= 1;
- if (!_bookCurPage)
- strcpy(filename, "_XBOOKB.CPS");
- if (_bookCurPage == _bookMaxPage)
- strcpy(filename, "_XBOOKA.CPS");
+ if (_flags.isTalkie)
+ strcpy(filename, (_bookBkgd == 0) ? "_XBOOKD.CPS" : "_XBOOKC.CPS");
+ else
+ strcpy(filename, (_bookBkgd == 0) ? "_BOOKD.CPS" : "_BOOKC.CPS");
- switch (_lang) {
- case 0:
- filename[1] = 'E';
- break;
+ _bookBkgd ^= 1;
+
+ if (_flags.isTalkie) {
+ if (!_bookCurPage)
+ strcpy(filename, "_XBOOKB.CPS");
+ if (_bookCurPage == _bookMaxPage)
+ strcpy(filename, "_XBOOKA.CPS");
+
+ switch (_lang) {
+ case 0:
+ filename[1] = 'E';
+ break;
- case 1:
- filename[1] = 'F';
- break;
+ case 1:
+ filename[1] = 'F';
+ break;
- case 2:
- filename[2] = 'G';
- break;
+ case 2:
+ filename[2] = 'G';
+ break;
- default:
- warning("loadBookBkgd unsupported language");
- filename[1] = 'E';
- break;
+ default:
+ warning("loadBookBkgd unsupported language");
+ filename[1] = 'E';
+ break;
+ }
+ } else {
+ if (!_bookCurPage)
+ strcpy(filename, "_BOOKB.CPS");
+ if (_bookCurPage == _bookMaxPage)
+ strcpy(filename, "_BOOKA.CPS");
}
_screen->loadBitmap(filename, 3, 3, 0);
@@ -906,10 +918,10 @@ void KyraEngine_v2::showBookPage() {
void KyraEngine_v2::bookLoop() {
static Button bookButtons[] = {
- { 0, 0x25, 0, 0, 1, 1, 1, 0x4487, 0, 0, 0, 0, 0x82, 0xBE, 0x0A, 0x0A, 0xC7, 0xCF, 0xC7, 0xCF, 0xC7, 0xCF, 0, &KyraEngine_v2::bookPrevPage },
- { 0, 0x26, 0, 0, 1, 1, 1, 0x4487, 0, 0, 0, 0, 0xB1, 0xBE, 0x0A, 0x0A, 0xC7, 0xCF, 0xC7, 0xCF, 0xC7, 0xCF, 0, &KyraEngine_v2::bookNextPage },
- { 0, 0x27, 0, 0, 1, 1, 1, 0x4487, 0, 0, 0, 0, 0x8F, 0xBE, 0x21, 0x0A, 0xC7, 0xCF, 0xC7, 0xCF, 0xC7, 0xCF, 0, &KyraEngine_v2::bookClose },
- { 0, 0x28, 0, 0, 1, 1, 1, 0x4487, 0, 0, 0, 0, 0x08, 0x08, 0x90, 0xB4, 0xC7, 0xCF, 0xC7, 0xCF, 0xC7, 0xCF, 0, &KyraEngine_v2::bookPrevPage },
+ { 0, 0x24, 0, 0, 1, 1, 1, 0x4487, 0, 0, 0, 0, 0x82, 0xBE, 0x0A, 0x0A, 0xC7, 0xCF, 0xC7, 0xCF, 0xC7, 0xCF, 0, &KyraEngine_v2::bookPrevPage },
+ { 0, 0x25, 0, 0, 1, 1, 1, 0x4487, 0, 0, 0, 0, 0xB1, 0xBE, 0x0A, 0x0A, 0xC7, 0xCF, 0xC7, 0xCF, 0xC7, 0xCF, 0, &KyraEngine_v2::bookNextPage },
+ { 0, 0x26, 0, 0, 1, 1, 1, 0x4487, 0, 0, 0, 0, 0x8F, 0xBE, 0x21, 0x0A, 0xC7, 0xCF, 0xC7, 0xCF, 0xC7, 0xCF, 0, &KyraEngine_v2::bookClose },
+ { 0, 0x27, 0, 0, 1, 1, 1, 0x4487, 0, 0, 0, 0, 0x08, 0x08, 0x90, 0xB4, 0xC7, 0xCF, 0xC7, 0xCF, 0xC7, 0xCF, 0, &KyraEngine_v2::bookPrevPage },
{ 0, 0x28, 0, 0, 1, 1, 1, 0x4487, 0, 0, 0, 0, 0xAA, 0x08, 0x8E, 0xB4, 0xC7, 0xCF, 0xC7, 0xCF, 0xC7, 0xCF, 0, &KyraEngine_v2::bookNextPage }
};
@@ -926,6 +938,7 @@ void KyraEngine_v2::bookLoop() {
if (_bookCurPage != _bookNewPage) {
_bookCurPage = _bookNewPage;
+ _screen->clearPage(2);
loadBookBkgd();
showBookPage();
snd_playSoundEffect(0x64);
@@ -961,7 +974,7 @@ void KyraEngine_v2::bookPrintText(int dstPage, const uint8 *str, int x, int y, u
_screen->_charWidth = -2;
_screen->hideMouse();
- _screen->printText((const char*)str, x, y, color, 0);
+ _screen->printText((const char*)str, x, y, color, (_flags.lang == Common::JA_JPN) ? 0x80 : 0);
_screen->showMouse();
_screen->_charWidth = 0;