diff options
Diffstat (limited to 'engines/scumm/script_v0.cpp')
-rw-r--r-- | engines/scumm/script_v0.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/engines/scumm/script_v0.cpp b/engines/scumm/script_v0.cpp index cf44ee195e..d3f256c951 100644 --- a/engines/scumm/script_v0.cpp +++ b/engines/scumm/script_v0.cpp @@ -829,6 +829,8 @@ void ScummEngine_v0::o_setActorBitVar() { // This flag causes the actor to stop moving (used by script #158, Green Tentacle 'Oomph!') if (a->_miscflags & 0x40) a->stopActorMoving(); + if (a->_miscflags & 0x80) + a->setActorCostume(0); debug(0, "o_setActorBitVar(%d, %d, %d)", act, mask, mod); } @@ -987,7 +989,10 @@ void ScummEngine_v0::o_setOwnerOf() { void ScummEngine_v0::resetSentence(bool walking) { _activeVerb = 13; - if (!walking) { + // If the actor is walking, or the screen is a keypad (no sentence verbs/objects are drawn) + // Then reset all active objects (stops the radio crash, bug #3077966) + if (!walking || !(_userState & 32)) { + _v0ObjectFlag = 0; _activeInventory = 0; _activeObject = 0; _activeObject2 = 0; |