mirror of
https://github.com/libretro/scummvm.git
synced 2025-03-04 17:29:11 +00:00
SCUMM: Proper fix of Russian subtitles
Initial fix in 11a17b3 (r51211) led to chopped inventory items. No idea why it does not work with our code, as it seems to match the disassembly. Thus implementing this hackish workaround.
This commit is contained in:
parent
c39245b771
commit
c451ae639f
@ -1127,8 +1127,6 @@ int ScummEngine::convertMessageToString(const byte *msg, byte *dst, int dstSize)
|
||||
}
|
||||
num += (_game.version == 8) ? 4 : 2;
|
||||
}
|
||||
} else if (_game.id == GID_DIG && (chr == 1 || chr == 2 || chr == 3 || chr == 8)) {
|
||||
// Skip these characters
|
||||
} else {
|
||||
if ((chr != '@') || (_game.id == GID_CMI && _language == Common::ZH_TWN) ||
|
||||
(_game.id == GID_LOOM && _game.platform == Common::kPlatformPCEngine && _language == Common::JA_JPN) ||
|
||||
@ -1142,6 +1140,14 @@ int ScummEngine::convertMessageToString(const byte *msg, byte *dst, int dstSize)
|
||||
if (dst >= end)
|
||||
error("convertMessageToString: buffer overflow");
|
||||
}
|
||||
|
||||
// WORKAROUND: Russian The Dig pads messages with 03. No idea why
|
||||
// it does not work as is with our rendering code, thus fixing it
|
||||
// with a workaround.
|
||||
if (_game.id == GID_DIG) {
|
||||
while (*(dst - 1) == 0x03)
|
||||
dst--;
|
||||
}
|
||||
*dst = 0;
|
||||
|
||||
return dstSize - (end - dst);
|
||||
|
Loading…
x
Reference in New Issue
Block a user