aboutsummaryrefslogtreecommitdiff
path: root/engines/kyra/kyra_v2.cpp
diff options
context:
space:
mode:
authorJohannes Schickel2008-03-18 13:01:33 +0000
committerJohannes Schickel2008-03-18 13:01:33 +0000
commitcaf1cc60debe628edfdb1b24c7cb4bb35d2ddad4 (patch)
tree216d0e3c942cde47ecaa20a3c8db3bf9a9a2a870 /engines/kyra/kyra_v2.cpp
parentb03c23ce5743844520f67a0891113cccab059361 (diff)
downloadscummvm-rg350-caf1cc60debe628edfdb1b24c7cb4bb35d2ddad4.tar.gz
scummvm-rg350-caf1cc60debe628edfdb1b24c7cb4bb35d2ddad4.tar.bz2
scummvm-rg350-caf1cc60debe628edfdb1b24c7cb4bb35d2ddad4.zip
Completed implementation of KyraEngine_v2::inputSceneChange.
svn-id: r31178
Diffstat (limited to 'engines/kyra/kyra_v2.cpp')
-rw-r--r--engines/kyra/kyra_v2.cpp20
1 files changed, 19 insertions, 1 deletions
diff --git a/engines/kyra/kyra_v2.cpp b/engines/kyra/kyra_v2.cpp
index d3fb41d01c..3c4aa30c0e 100644
--- a/engines/kyra/kyra_v2.cpp
+++ b/engines/kyra/kyra_v2.cpp
@@ -1375,7 +1375,25 @@ int KyraEngine_v2::inputSceneChange(int x, int y, int unk1, int unk2) {
if (wayLength != 0 && wayLength != 0x7D00)
refreshNPC = (trySceneChange(_movFacingTable, unk1, unk2) != 0);
- //XXX
+ int charLayer = _screen->getLayer(_mainCharacter.x1, _mainCharacter.y1);
+ if (_layerFlagTable[charLayer] != 0 && !queryGameFlag(0x163)) {
+ if (queryGameFlag(0x164)) {
+ //_screen->hideMouse();
+ _timer->disable(5);
+ runTemporaryScript("_ZANBURN.EMC", 0, 1, 1, 0);
+ _deathHandler = 7;
+ snd_playWanderScoreViaMap(0x53, 1);
+ } else {
+ objectChat(getTableString(0xFD, _cCodeBuffer, 1), 0, 0x83, 0xFD);
+ setGameFlag(0x164);
+ _timer->enable(5);
+ _timer->setCountdown(5, 120);
+ }
+ } else if (queryGameFlag(0x164)) {
+ objectChat(getTableString(0xFE, _cCodeBuffer, 1), 0, 0x83, 0xFE);
+ resetGameFlag(0x164);
+ _timer->disable(5);
+ }
if (refreshNPC)
enterNewSceneUnk2(0);