aboutsummaryrefslogtreecommitdiff
path: root/engines/agos/charset-fontdata.cpp
diff options
context:
space:
mode:
authorTravis Howell2010-03-07 11:46:03 +0000
committerTravis Howell2010-03-07 11:46:03 +0000
commit0e41ec67d15122a41c318191accbd10056569c5b (patch)
treec7e80dd663fbf66d885ce49617fb6915e242cae2 /engines/agos/charset-fontdata.cpp
parente7765c983a65168178b9e18dbbe10e711906ccbc (diff)
downloadscummvm-rg350-0e41ec67d15122a41c318191accbd10056569c5b.tar.gz
scummvm-rg350-0e41ec67d15122a41c318191accbd10056569c5b.tar.bz2
scummvm-rg350-0e41ec67d15122a41c318191accbd10056569c5b.zip
Exclude font data tables for The Feeble Files, when AGOS2 games are disabled.
svn-id: r48174
Diffstat (limited to 'engines/agos/charset-fontdata.cpp')
-rw-r--r--engines/agos/charset-fontdata.cpp72
1 files changed, 48 insertions, 24 deletions
diff --git a/engines/agos/charset-fontdata.cpp b/engines/agos/charset-fontdata.cpp
index 156baa663b..dbd61a3b46 100644
--- a/engines/agos/charset-fontdata.cpp
+++ b/engines/agos/charset-fontdata.cpp
@@ -89,6 +89,7 @@ uint AGOSEngine::getFeebleFontSize(byte chr) {
}
}
+#ifdef ENABLE_AGOS2
static const byte polish4CD_feeble_windowFont[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
@@ -683,6 +684,51 @@ static const byte feeble_windowFont[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
+void AGOSEngine_Feeble::windowDrawChar(WindowBlock *window, uint x, uint y, byte chr) {
+ const byte *src;
+ byte color, *dst;
+ uint dstPitch, h, w, i;
+
+ if (_noOracleScroll)
+ return;
+
+ _videoLockOut |= 0x8000;
+
+ dst = getBackGround();
+ dstPitch = _backGroundBuf->pitch;
+ h = 13;
+ w = getFeebleFontSize(chr);
+
+ if (_language == Common::PL_POL) {
+ if (!strcmp(getExtra(), "4CD"))
+ src = polish4CD_feeble_windowFont + (chr - 32) * 13;
+ else
+ src = polish2CD_feeble_windowFont + (chr - 32) * 13;
+ } else {
+ src = feeble_windowFont + (chr - 32) * 13;
+ }
+ dst += y * dstPitch + x + window->textColumnOffset;
+
+ color = window->textColor;
+
+ do {
+ int8 b = *src++;
+ i = 0;
+ do {
+ if (b < 0) {
+ if (dst[i] == 0)
+ dst[i] = color;
+ }
+
+ b <<= 1;
+ } while (++i != w);
+ dst += dstPitch;
+ } while (--h);
+
+ _videoLockOut &= ~0x8000;
+}
+#endif
+
static const byte czech_simonFont[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x20, 0x70, 0x70, 0x20, 0x20, 0x00, 0x20, 0x00,
@@ -2304,28 +2350,11 @@ void AGOSEngine::windowDrawChar(WindowBlock *window, uint x, uint y, byte chr) {
byte color, *dst;
uint dstPitch, h, w, i;
- if (_noOracleScroll)
- return;
-
_videoLockOut |= 0x8000;
Graphics::Surface *screen = _system->lockScreen();
- if (getGameType() == GType_FF || getGameType() == GType_PP) {
- dst = getBackGround();
- dstPitch = _backGroundBuf->pitch;
- h = 13;
- w = getFeebleFontSize(chr);
-
- if (_language == Common::PL_POL) {
- if (!strcmp(getExtra(), "4CD"))
- src = polish4CD_feeble_windowFont + (chr - 32) * 13;
- else
- src = polish2CD_feeble_windowFont + (chr - 32) * 13;
- } else {
- src = feeble_windowFont + (chr - 32) * 13;
- }
- } else if (getGameType() == GType_SIMON1 || getGameType() == GType_SIMON2) {
+ if (getGameType() == GType_SIMON1 || getGameType() == GType_SIMON2) {
dst = (byte *)screen->pixels;
dstPitch = screen->pitch;
h = 8;
@@ -2413,12 +2442,7 @@ void AGOSEngine::windowDrawChar(WindowBlock *window, uint x, uint y, byte chr) {
i = 0;
do {
if (b < 0) {
- if (getGameType() == GType_FF || getGameType() == GType_PP) {
- if (dst[i] == 0)
- dst[i] = color;
- } else {
- dst[i] = color;
- }
+ dst[i] = color;
}
b <<= 1;