aboutsummaryrefslogtreecommitdiff
path: root/engines/director
diff options
context:
space:
mode:
authorEugene Sandulenko2017-02-17 18:40:08 +0100
committerEugene Sandulenko2017-02-17 18:40:08 +0100
commitc5295a1e03c4fc917d87341918a515594fe89ba2 (patch)
tree5c48fcc220435b0c69b0ec44526cd0d72c657fc9 /engines/director
parente48dd540cc85823f8e33ad2195eef691f6515903 (diff)
downloadscummvm-rg350-c5295a1e03c4fc917d87341918a515594fe89ba2.tar.gz
scummvm-rg350-c5295a1e03c4fc917d87341918a515594fe89ba2.tar.bz2
scummvm-rg350-c5295a1e03c4fc917d87341918a515594fe89ba2.zip
DIRECTOR: Fix script references for D3 (now for real)
Diffstat (limited to 'engines/director')
-rw-r--r--engines/director/lingo/lingo.cpp4
-rw-r--r--engines/director/score.cpp6
2 files changed, 5 insertions, 5 deletions
diff --git a/engines/director/lingo/lingo.cpp b/engines/director/lingo/lingo.cpp
index 7639e6a607..a37b66f360 100644
--- a/engines/director/lingo/lingo.cpp
+++ b/engines/director/lingo/lingo.cpp
@@ -304,8 +304,8 @@ void Lingo::processEvent(LEvent event, ScriptType st, int entityId) {
if (_handlers.contains(ENTITY_INDEX(event, entityId))) {
call(_eventHandlerTypes[event], 0); // D4+ Events
pop();
- } else if (_scripts[st].contains(entityId + 1)) {
- executeScript(st, entityId + 1); // D3 list of scripts.
+ } else if (_scripts[st].contains(entityId)) {
+ executeScript(st, entityId); // D3 list of scripts.
} else {
debugC(8, kDebugLingoExec, "STUB: processEvent(%s) for %d", _eventHandlerTypes[event], entityId);
}
diff --git a/engines/director/score.cpp b/engines/director/score.cpp
index 53d15469b4..d4bebdc0fc 100644
--- a/engines/director/score.cpp
+++ b/engines/director/score.cpp
@@ -863,8 +863,8 @@ void Score::update() {
_surface->copyFrom(*_trailSurface);
// Enter and exit from previous frame (Director 4)
- _lingo->processEvent(kEventEnterFrame, kFrameScript, _frames[_currentFrame]->_actionId);
- _lingo->processEvent(kEventExitFrame, kFrameScript, _frames[_currentFrame]->_actionId);
+ _lingo->processEvent(kEventEnterFrame, kFrameScript, _frames[_currentFrame]->_actionId - 1);
+ _lingo->processEvent(kEventExitFrame, kFrameScript, _frames[_currentFrame]->_actionId - 1);
// TODO Director 6 - another order
// TODO Director 6 step: send beginSprite event to any sprites whose span begin in the upcoming frame
@@ -971,7 +971,7 @@ void Score::processEvents() {
_lingo->processEvent(kEventMouseUp, kSpriteScript, _frames[_currentFrame]->_sprites[spriteId]->_scriptId);
} else {
// D3 doesn't have cast member or sprite scripts. Just Frame Scripts.
- _lingo->processEvent(kEventMouseUp, kFrameScript, _frames[_currentFrame]->_sprites[spriteId]->_scriptId);
+ _lingo->processEvent(kEventMouseUp, kFrameScript, _frames[_currentFrame]->_sprites[spriteId]->_scriptId + 1);
}
}