aboutsummaryrefslogtreecommitdiff
path: root/engines/kyra/kyra_v2.cpp
diff options
context:
space:
mode:
authorFlorian Kagerer2008-03-15 20:24:26 +0000
committerFlorian Kagerer2008-03-15 20:24:26 +0000
commitfd7ed046bb89f91c767b762dd1ea336b798a3bbf (patch)
treee835e3f0fd28ce533da27dea2ec606a9e55091c5 /engines/kyra/kyra_v2.cpp
parentf88a2923cd45fa5ad597599c1fb68a9b6ecc6432 (diff)
downloadscummvm-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.cpp36
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