diff options
author | Bastien Bouclet | 2010-11-29 21:01:02 +0000 |
---|---|---|
committer | Bastien Bouclet | 2010-11-29 21:01:02 +0000 |
commit | 7ee7b9115752f85a47b23e06203cf905b105add0 (patch) | |
tree | 66e49e5bd29ec2731c35b28a26df8f8e5dd529db /engines/mohawk | |
parent | f8026bf852c5033dfd8ae0763d6a6a18ebfb2d7a (diff) | |
download | scummvm-rg350-7ee7b9115752f85a47b23e06203cf905b105add0.tar.gz scummvm-rg350-7ee7b9115752f85a47b23e06203cf905b105add0.tar.bz2 scummvm-rg350-7ee7b9115752f85a47b23e06203cf905b105add0.zip |
MOHAWK: Complete the list of stack / start cards.
Fix linking back from another age.
svn-id: r54637
Diffstat (limited to 'engines/mohawk')
-rw-r--r-- | engines/mohawk/myst_scripts.cpp | 30 |
1 files changed, 20 insertions, 10 deletions
diff --git a/engines/mohawk/myst_scripts.cpp b/engines/mohawk/myst_scripts.cpp index 85c90249d7..fccb2e253f 100644 --- a/engines/mohawk/myst_scripts.cpp +++ b/engines/mohawk/myst_scripts.cpp @@ -49,26 +49,32 @@ MystScriptEntry::~MystScriptEntry() { delete[] argv; } -const uint8 MystScriptParser::stack_map[8] = { +const uint8 MystScriptParser::stack_map[11] = { kSeleniticStack, kStoneshipStack, kMystStack, kMechanicalStack, kChannelwoodStack, - 0x0f, + kIntroStack, kDniStack, + kMystStack, + kCreditsStack, + kMystStack, kMystStack }; -const uint16 MystScriptParser::start_card[8] = { +const uint16 MystScriptParser::start_card[11] = { 1282, 2029, 4396, 6122, 3137, - 0, + 1, 5038, - 4134 + 4134, + 10000, + 4739, + 4741 }; // NOTE: Credits Start Card is 10000 @@ -854,12 +860,16 @@ void MystScriptParser::o_40_changeStack(uint16 op, uint16 var, uint16 argc, uint _vm->_system->delayMillis(10); // TODO: Play Flyby Entry Movie on Masterpiece Edition..? Only on Myst to Age Link? - _vm->changeToStack(stack_map[targetStack]); - _vm->changeToCard(start_card[targetStack], true); - handle = _vm->_sound->playSound(soundIdLinkDst); - while (_vm->_mixer->isSoundHandleActive(*handle)) - _vm->_system->delayMillis(10); + // TODO: Fix properly. Past this point the class may have been destroyed + // and thus class instance data is not available anymore + MohawkEngine_Myst *vm = _vm; + vm->changeToStack(stack_map[targetStack]); + vm->changeToCard(start_card[targetStack], true); + + handle = vm->_sound->playSound(soundIdLinkDst); + while (vm->_mixer->isSoundHandleActive(*handle)) + vm->_system->delayMillis(10); } } else unknown(op, var, argc, argv); |