diff options
author | Bastien Bouclet | 2012-12-15 11:49:41 +0100 |
---|---|---|
committer | Bastien Bouclet | 2012-12-16 06:54:13 +0100 |
commit | 07ee25c87df1aa7599664ec97ea5fb277b0c4f89 (patch) | |
tree | 345e4437d5979635ec5dbec8d6d2730cd65a18fd /engines/mohawk/myst_areas.cpp | |
parent | 0358a44738f1f1567156dc8e90025dd89414605f (diff) | |
download | scummvm-rg350-07ee25c87df1aa7599664ec97ea5fb277b0c4f89.tar.gz scummvm-rg350-07ee25c87df1aa7599664ec97ea5fb277b0c4f89.tar.bz2 scummvm-rg350-07ee25c87df1aa7599664ec97ea5fb277b0c4f89.zip |
MOHAWK: Implement most of Myst's transition system
Diffstat (limited to 'engines/mohawk/myst_areas.cpp')
-rw-r--r-- | engines/mohawk/myst_areas.cpp | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/engines/mohawk/myst_areas.cpp b/engines/mohawk/myst_areas.cpp index a1f965a25f..12a2c7f44c 100644 --- a/engines/mohawk/myst_areas.cpp +++ b/engines/mohawk/myst_areas.cpp @@ -70,10 +70,30 @@ MystResource::~MystResource() { } void MystResource::handleMouseUp() { - if (_dest != 0) - _vm->changeToCard(_dest, true); - else + if (_dest == 0) { warning("Movement type resource with null destination at position (%d, %d), (%d, %d)", _rect.left, _rect.top, _rect.right, _rect.bottom); + return; + } + + uint16 opcode; + + switch (type) { + case kMystForwardArea: + opcode = 6; + break; + case kMystLeftArea: + opcode = 8; + break; + case kMystRightArea: + opcode = 7; + break; + default: + opcode = 48; + break; + } + + _vm->_scriptParser->setInvokingResource(this); + _vm->_scriptParser->runOpcode(opcode, 0); } bool MystResource::canBecomeActive() { |