aboutsummaryrefslogtreecommitdiff
path: root/engines/kyra/kyra.cpp
diff options
context:
space:
mode:
authorJohannes Schickel2007-02-12 18:01:51 +0000
committerJohannes Schickel2007-02-12 18:01:51 +0000
commit7af17382b5e85f48412b2b44733ac3d5431b31a9 (patch)
treef63cdc6932d49d25ff3ff3e6457240d2db0204f2 /engines/kyra/kyra.cpp
parent7107fcc2c693a077689a0969011e0e164f75b382 (diff)
downloadscummvm-rg350-7af17382b5e85f48412b2b44733ac3d5431b31a9.tar.gz
scummvm-rg350-7af17382b5e85f48412b2b44733ac3d5431b31a9.tar.bz2
scummvm-rg350-7af17382b5e85f48412b2b44733ac3d5431b31a9.zip
Support for Japanese FM-Towns version. (code contributed by Florian Kagerer, modified a bit)
svn-id: r25530
Diffstat (limited to 'engines/kyra/kyra.cpp')
-rw-r--r--engines/kyra/kyra.cpp63
1 files changed, 37 insertions, 26 deletions
diff --git a/engines/kyra/kyra.cpp b/engines/kyra/kyra.cpp
index 84e4a32c7e..ab6dad32cb 100644
--- a/engines/kyra/kyra.cpp
+++ b/engines/kyra/kyra.cpp
@@ -195,7 +195,7 @@ int KyraEngine::init() {
assert(_animator);
_animator->init(5, 11, 12);
assert(*_animator);
- _text = new TextDisplayer(_screen);
+ _text = new TextDisplayer(this, _screen);
assert(_text);
_staticres = new StaticResource(this);
@@ -337,25 +337,27 @@ int KyraEngine::init() {
_lang = 0;
Common::Language lang = Common::parseLanguage(ConfMan.get("language"));
- switch (lang) {
- case Common::EN_ANY:
- case Common::EN_USA:
- case Common::EN_GRB:
- _lang = 0;
- break;
-
- case Common::FR_FRA:
- _lang = 1;
- break;
-
- case Common::DE_DEU:
- _lang = 2;
- break;
-
- default:
- warning("unsupported language, switching back to English");
- _lang = 0;
- break;
+ if (_flags.gameID == GI_KYRA2 || _flags.gameID == GI_KYRA3) {
+ switch (lang) {
+ case Common::EN_ANY:
+ case Common::EN_USA:
+ case Common::EN_GRB:
+ _lang = 0;
+ break;
+
+ case Common::FR_FRA:
+ _lang = 1;
+ break;
+
+ case Common::DE_DEU:
+ _lang = 2;
+ break;
+
+ default:
+ warning("unsupported language, switching back to English");
+ _lang = 0;
+ break;
+ }
}
return 0;
@@ -634,6 +636,10 @@ void KyraEngine::delay(uint32 amount, bool update, bool isMainLoop) {
case OSystem::EVENT_MOUSEMOVE:
_mouseX = event.mouse.x;
_mouseY = event.mouse.y;
+ if (_flags.useHiResOverlay) {
+ _mouseX >>= 1;
+ _mouseY >>= 1;
+ }
_animator->_updateScreen = true;
break;
case OSystem::EVENT_QUIT:
@@ -644,19 +650,24 @@ void KyraEngine::delay(uint32 amount, bool update, bool isMainLoop) {
break;
case OSystem::EVENT_LBUTTONUP:
_mousePressFlag = false;
- if (_abortWalkFlag2) {
- _abortWalkFlag = true;
- _mouseX = event.mouse.x;
- _mouseY = event.mouse.y;
+
+ _mouseX = event.mouse.x;
+ _mouseY = event.mouse.y;
+ if (_flags.useHiResOverlay) {
+ _mouseX >>= 1;
+ _mouseY >>= 1;
}
+
+ if (_abortWalkFlag2)
+ _abortWalkFlag = true;
+
if (_handleInput) {
- _mouseX = event.mouse.x;
- _mouseY = event.mouse.y;
_handleInput = false;
processInput(_mouseX, _mouseY);
_handleInput = true;
} else
_skipFlag = true;
+
break;
default:
break;