diff options
| author | johndoe123 | 2014-04-08 19:43:17 +0200 |
|---|---|---|
| committer | Eugene Sandulenko | 2018-07-20 06:43:33 +0000 |
| commit | 67366aa04b723fadec300cc6ce1d5c6ee9241af7 (patch) | |
| tree | bd4783f6b6ebb6c25d52a1349a60c2fd10034e0b /engines/illusions/sequenceopcodes.cpp | |
| parent | 3f15233f78a264e45ce74ecd2db9ed3119b1b654 (diff) | |
| download | scummvm-rg350-67366aa04b723fadec300cc6ce1d5c6ee9241af7.tar.gz scummvm-rg350-67366aa04b723fadec300cc6ce1d5c6ee9241af7.tar.bz2 scummvm-rg350-67366aa04b723fadec300cc6ce1d5c6ee9241af7.zip | |
ILLUSIONS: More work on Duckman
Diffstat (limited to 'engines/illusions/sequenceopcodes.cpp')
| -rw-r--r-- | engines/illusions/sequenceopcodes.cpp | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/engines/illusions/sequenceopcodes.cpp b/engines/illusions/sequenceopcodes.cpp index f020423a1a..e00bb23722 100644 --- a/engines/illusions/sequenceopcodes.cpp +++ b/engines/illusions/sequenceopcodes.cpp @@ -74,11 +74,13 @@ void SequenceOpcodes::initOpcodes() { OPCODE(17, opDisappearActor); OPCODE(18, opAppearForeignActor); OPCODE(19, opDisappearForeignActor); + OPCODE(21, opMoveDelta); OPCODE(28, opNotifyThreadId1); OPCODE(29, opSetPathCtrY); OPCODE(33, opSetPathWalkPoints); OPCODE(35, opSetScale); OPCODE(36, opSetScaleLayer); + OPCODE(37, opDeactivatePathWalkRects); OPCODE(38, opSetPathWalkRects); OPCODE(39, opSetPriority); OPCODE(40, opSetPriorityLayer); @@ -243,6 +245,14 @@ void SequenceOpcodes::opDisappearForeignActor(Control *control, OpCall &opCall) foreignControl->disappearActor(); } +void SequenceOpcodes::opMoveDelta(Control *control, OpCall &opCall) { + ARG_SKIP(2); + ARG_INT16(deltaX); + ARG_INT16(deltaY); + control->_actor->_position.x += deltaX; + control->_actor->_position.y += deltaY; +} + void SequenceOpcodes::opNotifyThreadId1(Control *control, OpCall &opCall) { _vm->notifyThreadId(control->_actor->_notifyThreadId1); } @@ -274,10 +284,14 @@ void SequenceOpcodes::opSetScaleLayer(Control *control, OpCall &opCall) { control->setActorScale(scale); } +void SequenceOpcodes::opDeactivatePathWalkRects(Control *control, OpCall &opCall) { + control->_actor->_flags &= ~0x0010; +} + void SequenceOpcodes::opSetPathWalkRects(Control *control, OpCall &opCall) { ARG_INT16(pathWalkRectsIndex); BackgroundResource *bgRes = _vm->_backgroundItems->getActiveBgResource(); - control->_actor->_flags |= 0x10; + control->_actor->_flags |= 0x0010; // TODO control->_actor->_pathWalkRects = bgRes->getPathWalkRects(pathWalkRectsIndex - 1); } |
