diff options
author | Johannes Schickel | 2008-03-18 13:01:33 +0000 |
---|---|---|
committer | Johannes Schickel | 2008-03-18 13:01:33 +0000 |
commit | caf1cc60debe628edfdb1b24c7cb4bb35d2ddad4 (patch) | |
tree | 216d0e3c942cde47ecaa20a3c8db3bf9a9a2a870 /engines | |
parent | b03c23ce5743844520f67a0891113cccab059361 (diff) | |
download | scummvm-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')
-rw-r--r-- | engines/kyra/kyra_v2.cpp | 20 |
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); |