aboutsummaryrefslogtreecommitdiff
path: root/engines/scumm
diff options
context:
space:
mode:
Diffstat (limited to 'engines/scumm')
-rw-r--r--engines/scumm/nut_renderer.cpp13
1 files changed, 8 insertions, 5 deletions
diff --git a/engines/scumm/nut_renderer.cpp b/engines/scumm/nut_renderer.cpp
index cc0b632a89..6a78e4dd95 100644
--- a/engines/scumm/nut_renderer.cpp
+++ b/engines/scumm/nut_renderer.cpp
@@ -294,11 +294,14 @@ void NutRenderer::drawShadowChar(const Graphics::Surface &s, int c, int x, int y
return;
}
- // HACK: we draw the character a total of 7 times: 6 times shifted
- // and in black for the shadow, and once in the right color and position.
- // This way we achieve the exact look as the original CMI had. However,
- // the question remains whether they did it this way, too, or if there is
- // some "font shadow" resource we don't know yet.
+ // We draw the character a total of 7 times: 6 times shifted and in black
+ // for the shadow, and once in the right color and position. This way we
+ // achieve the exact look as the original CMI had.
+ // However, this is not how the original engine handled it. Char glyphs
+ // were compressed with codec 44. In the decoding routine, transparent
+ // pixels are skipped. Other pixels are just filled with the decoded color
+ // which can be equal to 0 (==shadow), 1 (==char color) or another value
+ // (255, 224) which is just copied as-is in the destination buffer.
static const int offsetX[7] = { -1, 0, 1, 0, 1, 2, 0 };
static const int offsetY[7] = { 0, -1, 0, 1, 2, 1, 0 };