aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
Diffstat (limited to 'engines')
-rw-r--r--engines/saga/script.cpp27
1 files changed, 15 insertions, 12 deletions
diff --git a/engines/saga/script.cpp b/engines/saga/script.cpp
index 7c203605ee..97804666d2 100644
--- a/engines/saga/script.cpp
+++ b/engines/saga/script.cpp
@@ -479,18 +479,21 @@ void Script::doVerb() {
if (scriptEntrypointNumber > 0) {
- event.type = kEvTOneshot;
- event.code = kScriptEvent;
- event.op = kEventExecNonBlocking;
- event.time = 0;
- event.param = scriptModuleNumber;
- event.param2 = scriptEntrypointNumber;
- event.param3 = _pendingVerb; // Action
- event.param4 = _pendingObject[0]; // Object
- event.param5 = _pendingObject[1]; // With Object
- event.param6 = (objectType == kGameObjectActor) ? _pendingObject[0] : ID_PROTAG; // Actor
-
- _vm->_events->queue(&event);
+ // WORKAROUND: Fixes bug #1690045 "ITE: Item description missing / ScummVM crash"
+ if (!(_vm->_scene->currentSceneNumber() == 278 && (_pendingObject[0] == 16419 || _pendingObject[1] == 16419))) {
+ event.type = kEvTOneshot;
+ event.code = kScriptEvent;
+ event.op = kEventExecNonBlocking;
+ event.time = 0;
+ event.param = scriptModuleNumber;
+ event.param2 = scriptEntrypointNumber;
+ event.param3 = _pendingVerb; // Action
+ event.param4 = _pendingObject[0]; // Object
+ event.param5 = _pendingObject[1]; // With Object
+ event.param6 = (objectType == kGameObjectActor) ? _pendingObject[0] : ID_PROTAG; // Actor
+
+ _vm->_events->queue(&event);
+ }
} else {
_vm->getExcuseInfo(_pendingVerb, excuseText, excuseSampleResourceId);