mirror of
https://github.com/libretro/scummvm.git
synced 2025-02-12 22:51:11 +00:00
SCUMM: (COMI/CJK) - fix smush font glyph shadows
I have confirmed that this type of shadow (one shadow pixel to the left, one to the right and one to the bottom) is drawn for all CJK characters in COMI.
This commit is contained in:
parent
e665730d3d
commit
1266fdeb0d
@ -159,35 +159,17 @@ int SmushFont::draw2byte(byte *buffer, int dst_width, int x, int y, int idx) {
|
||||
kNone,
|
||||
kNormalShadowMode,
|
||||
kCJKv7ShadowMode,
|
||||
kKoreanV8ShadowMode
|
||||
kCJKv8ShadowMode
|
||||
};
|
||||
|
||||
ShadowMode shadowMode = kNone;
|
||||
|
||||
if (_vm->_useCJKMode) {
|
||||
// TODO: Check Chinese and Japanese COMI
|
||||
// For now the kKoreanV8ShadowMode is limited to Korean, because it isn't known yet
|
||||
// how Chinese and Japanese COMI is supposed to look like (I suspect that this gets
|
||||
// rendered the same way, just as it is done in DIG).
|
||||
if (_vm->_game.version == 8 && _vm->_language == Common::KO_KOR)
|
||||
shadowMode = kKoreanV8ShadowMode;
|
||||
else if (_vm->_game.version != 8)
|
||||
shadowMode = kCJKv7ShadowMode;
|
||||
}
|
||||
ShadowMode shadowMode = _vm->_useCJKMode ? (_vm->_game.version == 8 ? kCJKv8ShadowMode : kCJKv7ShadowMode) : kNone;
|
||||
|
||||
int shadowOffsetXTable[4] = { -1, 0, 1, 0 };
|
||||
int shadowOffsetYTable[4] = { 0, 1, 0, 0 };
|
||||
int shadowOffsetColorTable[4] = { 0, 0, 0, color };
|
||||
|
||||
int shadowIdx = 3;
|
||||
if (shadowMode == kKoreanV8ShadowMode)
|
||||
shadowIdx = 0;
|
||||
else if (shadowMode == kCJKv7ShadowMode)
|
||||
shadowIdx = 2;
|
||||
|
||||
const byte *origSrc = src;
|
||||
|
||||
for (; shadowIdx < 4; shadowIdx++) {
|
||||
for (int shadowIdx = (shadowMode == kCJKv8ShadowMode) ? 0 : (shadowMode == kCJKv7ShadowMode ? 2 : 3); shadowIdx < 4; shadowIdx++) {
|
||||
int offX = x + shadowOffsetXTable[shadowIdx];
|
||||
int offY = y + shadowOffsetYTable[shadowIdx];
|
||||
byte drawColor = shadowOffsetColorTable[shadowIdx];
|
||||
|
Loading…
x
Reference in New Issue
Block a user