diff options
author | johndoe123 | 2014-04-14 12:04:58 +0200 |
---|---|---|
committer | Eugene Sandulenko | 2018-07-20 06:43:33 +0000 |
commit | e131362590a768240454cc2b27f4548ba481ebfb (patch) | |
tree | 93a00e8354286fcac119c1f9be724c235cbd8617 /engines/illusions/actor.cpp | |
parent | 998744608f27802526b085ebe94215719ef9f28d (diff) | |
download | scummvm-rg350-e131362590a768240454cc2b27f4548ba481ebfb.tar.gz scummvm-rg350-e131362590a768240454cc2b27f4548ba481ebfb.tar.bz2 scummvm-rg350-e131362590a768240454cc2b27f4548ba481ebfb.zip |
ILLUSIONS: More work on Duckman
- Implement inventory
- Ad more script and sequence opcodes
- Adjust existing code
Diffstat (limited to 'engines/illusions/actor.cpp')
-rw-r--r-- | engines/illusions/actor.cpp | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/engines/illusions/actor.cpp b/engines/illusions/actor.cpp index a67f5b92a9..83fd748496 100644 --- a/engines/illusions/actor.cpp +++ b/engines/illusions/actor.cpp @@ -638,7 +638,8 @@ void Control::sequenceActor() { if (_actor->_newFrameIndex != 0) { debug(1, "New frame %d", _actor->_newFrameIndex); setActorFrameIndex(_actor->_newFrameIndex); - if (!(_actor->_flags & 1) && (_actor->_flags & 0x1000) && (_objectId != 0x40004)) { + if (_vm->getGameId() == kGameIdBBDOU && + !(_actor->_flags & 1) && (_actor->_flags & 0x1000) && (_objectId != 0x40004)) { appearActor(); _actor->_flags &= ~0x1000; } @@ -752,7 +753,13 @@ void Control::startMoveActor(uint32 sequenceId, Common::Point destPt, uint32 cal _vm->notifyThreadId(_actor->_notifyId3C); _actor->_notifyId3C = callerThreadId2; _actor->_pathPointIndex = 0; - _vm->_input->discardButtons(0x10); + + if (_vm->getGameId() == kGameIdBBDOU) { + _vm->_input->discardButtons(0x10); + } else if (_vm->getGameId() == kGameIdDuckman) { + _vm->_input->discardButtons(0x20); + } + } } @@ -1071,11 +1078,16 @@ void Controls::placeActor(uint32 actorTypeId, Common::Point placePt, uint32 sequ _controls.push_back(control); _vm->_dict->setObjectControl(objectId, control); + if (_vm->getGameId() == kGameIdDuckman) { + control->appearActor(); + } else if (_vm->getGameId() == kGameIdBBDOU) { + control->_flags |= 0x01; + actor->_flags |= 0x1000; + } + if (_vm->isCursorObject(actorTypeId, objectId)) _vm->placeCursorControl(control, sequenceId); - control->_flags |= 0x01; - actor->_flags |= 0x1000; control->startSequenceActor(sequenceId, 2, notifyThreadId); } |