diff options
-rw-r--r-- | engines/sci/event.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/engines/sci/event.cpp b/engines/sci/event.cpp index 7828bb5160..2700f54208 100644 --- a/engines/sci/event.cpp +++ b/engines/sci/event.cpp @@ -323,6 +323,16 @@ SciEvent EventManager::getScummVMEvent() { break; } } + + if (g_sci->getLanguage() == Common::RU_RUS) { + // Convert UTF16 to CP866 + if (input.character >= 0x400 && input.character <= 0x4ff) { + if (input.character >= 0x440) + input.character = input.character - 0x410 + 0xb0; + else + input.character = input.character - 0x410 + 0x80; + } + } } // TODO: Leaky abstractions from SDL should not be handled in game engines! |