aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/sci/event.cpp10
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!