diff options
author | Florian Kagerer | 2008-03-15 20:24:26 +0000 |
---|---|---|
committer | Florian Kagerer | 2008-03-15 20:24:26 +0000 |
commit | fd7ed046bb89f91c767b762dd1ea336b798a3bbf (patch) | |
tree | e835e3f0fd28ce533da27dea2ec606a9e55091c5 /engines/kyra/kyra_v2.cpp | |
parent | f88a2923cd45fa5ad597599c1fb68a9b6ecc6432 (diff) | |
download | scummvm-rg350-fd7ed046bb89f91c767b762dd1ea336b798a3bbf.tar.gz scummvm-rg350-fd7ed046bb89f91c767b762dd1ea336b798a3bbf.tar.bz2 scummvm-rg350-fd7ed046bb89f91c767b762dd1ea336b798a3bbf.zip |
- some more opcodes for wsa and tim sequences
- adding some code to inputSceneChange
svn-id: r31132
Diffstat (limited to 'engines/kyra/kyra_v2.cpp')
-rw-r--r-- | engines/kyra/kyra_v2.cpp | 36 |
1 files changed, 19 insertions, 17 deletions
diff --git a/engines/kyra/kyra_v2.cpp b/engines/kyra/kyra_v2.cpp index d0af3210a8..43a94201e8 100644 --- a/engines/kyra/kyra_v2.cpp +++ b/engines/kyra/kyra_v2.cpp @@ -1294,26 +1294,28 @@ int KyraEngine_v2::inputSceneChange(int x, int y, int unk1, int unk2) { } } + int strId = 0; + int vocH = _flags.isTalkie ? 131 : -1; + if (_pathfinderFlag) { - if (findItem(curScene, 13) >= 0 && _unk3 <= -3) { - //XXX - _pathfinderFlag = 0; - return 0; + if (findItem(curScene, 13) >= 0 && _unk3 <= -3) { + strId = 252; } else if (_itemInHand == 72) { - //XXX - _pathfinderFlag = 0; - return 0; + strId = 257; } else if (findItem(curScene, 72) >= 0 && _unk3 <= -3) { - //XXX - _pathfinderFlag = 0; - return 0; - } else if (0/*XXX*/) { - //XXX - _pathfinderFlag = 0; - return 0; + strId = 256; + } else if (getInventoryItemSlot(72) != -1 && _unk3 <= -3) { + strId = 257; } } + if (strId) { + updateCharFacing(); + objectChat(getTableString(strId, _cCodeBuffer, 1), 0, vocH, strId); + _pathfinderFlag = 0; + return 0; + } + if (ABS(_mainCharacter.x1 - x) < 4 || ABS(_mainCharacter.y1 - y) < 2) return 0; @@ -2111,9 +2113,9 @@ void KyraEngine_v2::setupOpcodeTable() { OpcodeUnImpl(), Opcode(o2_displayWsaFrame), // 0x18 - Opcode(o2_displayWsaSequentialFrames), + Opcode(o2_displayWsaSequentialFramesLooping), Opcode(o2_wsaOpen), - OpcodeUnImpl(), + Opcode(o2_displayWsaSequentialFrames), OpcodeUnImpl(), // 0x1c OpcodeUnImpl(), @@ -2257,7 +2259,7 @@ void KyraEngine_v2::setupOpcodeTable() { Opcode(o2_npcChat), // 0x8c Opcode(o2_deinitObject), - OpcodeUnImpl(), + Opcode(o2_playTimSequence), Opcode(o2_makeBookOrCauldronAppear), Opcode(o2_setSpecialSceneScriptState), // 0x90 |