diff options
Diffstat (limited to 'engines')
-rw-r--r-- | engines/mohawk/graphics.cpp | 3 | ||||
-rw-r--r-- | engines/mohawk/livingbooks.cpp | 2 | ||||
-rw-r--r-- | engines/mohawk/myst.cpp | 25 | ||||
-rw-r--r-- | engines/mohawk/myst.h | 4 | ||||
-rw-r--r-- | engines/mohawk/myst_areas.cpp | 84 | ||||
-rw-r--r-- | engines/mohawk/myst_scripts.cpp | 18 | ||||
-rw-r--r-- | engines/mohawk/myst_stacks/myst.cpp | 133 | ||||
-rw-r--r-- | engines/mohawk/myst_stacks/selenitic.cpp | 1368 |
8 files changed, 786 insertions, 851 deletions
diff --git a/engines/mohawk/graphics.cpp b/engines/mohawk/graphics.cpp index 3c8262d165..c13738689f 100644 --- a/engines/mohawk/graphics.cpp +++ b/engines/mohawk/graphics.cpp @@ -385,9 +385,8 @@ void MystGraphics::copyImageSectionToScreen(uint16 image, Common::Rect src, Comm uint16 top = surface->h - (src.top + MIN<int>(surface->h, dest.height())); // Do not draw the top pixels if the image is too tall - if (dest.height() > _viewport.height()) { + if (dest.height() > _viewport.height()) top += dest.height() - _viewport.height(); - } // Clip the destination rect to the screen if (dest.right > _vm->_system->getWidth() || dest.bottom > _vm->_system->getHeight()) diff --git a/engines/mohawk/livingbooks.cpp b/engines/mohawk/livingbooks.cpp index 8133c51ff7..1b88bf16f8 100644 --- a/engines/mohawk/livingbooks.cpp +++ b/engines/mohawk/livingbooks.cpp @@ -2862,7 +2862,7 @@ void LBPaletteItem::readData(uint16 type, uint16 size, Common::SeekableSubReadSt _drawStart = stream->readUint16(); _drawCount = stream->readUint16(); if (_drawStart + _drawCount > 256) - error("encountered palette trying to set more than 256 colours"); + error("encountered palette trying to set more than 256 colors"); assert(size == 8 + _drawCount * 4); _palette = new byte[_drawCount * 4]; stream->read(_palette, _drawCount * 4); diff --git a/engines/mohawk/myst.cpp b/engines/mohawk/myst.cpp index 74e2c46b89..b4d035bdfb 100644 --- a/engines/mohawk/myst.cpp +++ b/engines/mohawk/myst.cpp @@ -71,7 +71,7 @@ MohawkEngine_Myst::MohawkEngine_Myst(OSystem *syst, const MohawkGameDescription _transitionsEnabled = false; // Engine tweaks - // Disabling this makes engine behaviour as per + // Disabling this makes engine behavior as per // original, including bugs, missing bits etc. :) _tweaksEnabled = true; @@ -127,11 +127,10 @@ MohawkEngine_Myst::~MohawkEngine_Myst() { delete[] _view.conditionalImages; delete[] _view.scriptResources; - while(!_resources.empty()) { - MystResource *temp = _resources.back(); - _resources.pop_back(); - delete temp; - } + for (uint32 i = 0; i < _resources.size(); i++) + delete _resources[i]; + + _resources.clear(); } // Uses cached data objects in preference to disk access @@ -989,8 +988,8 @@ void MohawkEngine_Myst::drawResourceImages() { _resources[i]->drawDataToScreen(); } -void MohawkEngine_Myst::redrawResource(MystResourceType8 *_resource, bool update) { - _resource->drawConditionalDataToScreen(_scriptParser->getVar(_resource->getType8Var()), update); +void MohawkEngine_Myst::redrawResource(MystResourceType8 *resource, bool update) { + resource->drawConditionalDataToScreen(_scriptParser->getVar(resource->getType8Var()), update); } void MohawkEngine_Myst::redrawArea(uint16 var, bool update) { @@ -1042,11 +1041,10 @@ MystResource *MohawkEngine_Myst::loadResource(Common::SeekableReadStream *rlstSt } void MohawkEngine_Myst::loadResources() { - while(!_resources.empty()) { - MystResource *temp = _resources.back(); - _resources.pop_back(); - delete temp; - } + for (uint32 i = 0; i < _resources.size(); i++) + delete _resources[i]; + + _resources.clear(); if (!_view.rlst) { debugC(kDebugResource, "No RLST present"); @@ -1061,6 +1059,7 @@ void MohawkEngine_Myst::loadResources() { debugC(kDebugResource, "Resource #%d:", i); _resources.push_back(loadResource(rlstStream, NULL)); } + delete rlstStream; } diff --git a/engines/mohawk/myst.h b/engines/mohawk/myst.h index d7a6528f68..082aacab59 100644 --- a/engines/mohawk/myst.h +++ b/engines/mohawk/myst.h @@ -183,13 +183,13 @@ public: MystResource *loadResource(Common::SeekableReadStream *rlstStream, MystResource *parent); void setResourceEnabled(uint16 resourceId, bool enable); void redrawArea(uint16 var, bool update = true); - void redrawResource(MystResourceType8 *_resource, bool update = true); + void redrawResource(MystResourceType8 *resource, bool update = true); void drawResourceImages(); void drawCardBackground(); uint16 getCardBackgroundId(); void setCacheState(bool state) { _cache.enabled = state; } - bool getCacheState(void) { return _cache.enabled; } + bool getCacheState() { return _cache.enabled; } GUI::Debugger *getDebugger() { return _console; } diff --git a/engines/mohawk/myst_areas.cpp b/engines/mohawk/myst_areas.cpp index fcbca38b83..f83e2790db 100644 --- a/engines/mohawk/myst_areas.cpp +++ b/engines/mohawk/myst_areas.cpp @@ -88,11 +88,10 @@ bool MystResource::isEnabled() { } void MystResource::setEnabled(bool enabled) { - if (enabled) { + if (enabled) _flags |= kMystHotspotEnableFlag; - } else { + else _flags &= ~kMystHotspotEnableFlag; - } } const Common::String MystResource::describe() { @@ -132,9 +131,8 @@ const Common::String MystResourceType5::describe() { if (_script->size() != 0) { desc += " ops:"; - for (uint i = 0; i < _script->size(); i++) { + for (uint i = 0; i < _script->size(); i++) desc += " " + _vm->_scriptParser->getOpcodeDesc(_script->operator[](i).opcode); - } } return desc; @@ -214,9 +212,8 @@ void MystResourceType6::playMovie() { } void MystResourceType6::handleCardChange() { - if (_playOnCardChange) { + if (_playOnCardChange) playMovie(); - } } MystResourceType7::MystResourceType7(MohawkEngine_Myst *vm, Common::SeekableReadStream *rlstStream, MystResource *parent) : MystResource(vm, rlstStream, parent) { @@ -230,11 +227,10 @@ MystResourceType7::MystResourceType7(MohawkEngine_Myst *vm, Common::SeekableRead } MystResourceType7::~MystResourceType7() { - while(!_subResources.empty()) { - MystResource *temp = _subResources.back(); - _subResources.pop_back(); - delete temp; - } + for (uint32 i = 0; i < _subResources.size(); i++) + delete _subResources[i]; + + _subResources.clear(); } // TODO: All these functions to switch subresource are very similar. @@ -326,6 +322,7 @@ MystResourceType8::MystResourceType8(MohawkEngine_Myst *vm, Common::SeekableRead debugC(kDebugResource, "\tnumSubImages: %d", _numSubImages); _subImages = new MystResourceType8::SubImage[_numSubImages]; + for (uint16 i = 0; i < _numSubImages; i++) { debugC(kDebugResource, "\tSubimage %d:", i); @@ -390,9 +387,8 @@ void MystResourceType8::drawDataToScreen() { uint16 imageToDraw = _subImages[subImageId].wdib; // This special case means redraw background - if (imageToDraw == 0xFFFF) { + if (imageToDraw == 0xFFFF) imageToDraw = _vm->getCardBackgroundId(); - } _vm->_gfx->copyImageSectionToBackBuffer(imageToDraw, _subImages[subImageId].rect, _rect); } @@ -419,9 +415,8 @@ void MystResourceType8::drawConditionalDataToScreen(uint16 state, bool update) { uint16 imageToDraw = _subImages[subImageId].wdib; // This special case means redraw background - if (imageToDraw == 0xFFFF) { + if (imageToDraw == 0xFFFF) imageToDraw = _vm->getCardBackgroundId(); - } // Draw to screen if (update) { @@ -443,9 +438,9 @@ const Common::String MystResourceType8::describe() { if (_numSubImages > 0) { desc += " subImgs:"; - for (uint i = 0; i < _numSubImages; i++) { + + for (uint i = 0; i < _numSubImages; i++) desc += Common::String::format(" %d", (int16)_subImages[i].wdib); - } } return desc; @@ -537,18 +532,17 @@ void MystResourceType10::handleMouseUp(const Common::Point &mouse) { // Save slider value uint16 value = 0; if (_flagHV & 2) { - if (_stepsV) { + if (_stepsV) value = (_pos.y - _minV) / _stepV; - } else { + else value = _pos.y; - } } else if (_flagHV & 1) { - if (_stepsH) { + if (_stepsH) value = (_pos.x - _minH) / _stepH; - } else { + else value = _pos.x; - } } + _vm->_scriptParser->setVarValue(_var8, value); MystResourceType11::handleMouseUp(mouse); @@ -579,6 +573,7 @@ void MystResourceType10::updatePosition(const Common::Point &mouse) { if (_stepV) { uint16 center = _minV + _stepV * (mouseClipped.y - _minV) / _stepV; uint16 top = center - _sliderHeight / 2; + if (_rect.top != top || _pos.y != center) { positionChanged = true; _pos.y = center; @@ -589,6 +584,7 @@ void MystResourceType10::updatePosition(const Common::Point &mouse) { _pos.y = mouseClipped.y; _rect.top = mouseClipped.y - _sliderHeight / 2; } + if (positionChanged) { _rect.bottom = _rect.top + _sliderHeight; _subImages[0].rect.top = 333 - _rect.bottom - 1; @@ -600,6 +596,7 @@ void MystResourceType10::updatePosition(const Common::Point &mouse) { if (_stepH) { uint16 center = _minH + _stepH * (mouseClipped.x - _minH) / _stepH; uint16 left = center - _sliderWidth / 2; + if (_rect.left != left || _pos.x != center) { positionChanged = true; _pos.x = center; @@ -610,14 +607,13 @@ void MystResourceType10::updatePosition(const Common::Point &mouse) { _pos.x = mouseClipped.x; _rect.left = mouseClipped.x - _sliderWidth / 2; } - if (positionChanged) { + + if (positionChanged) _rect.right = _rect.left + _sliderWidth; - } } - if (positionChanged && _dragSound) { + if (positionChanged && _dragSound) _vm->_sound->replaceSound(_dragSound); - } } MystResourceType11::MystResourceType11(MohawkEngine_Myst *vm, Common::SeekableReadStream *rlstStream, MystResource *parent) : MystResourceType8(vm, rlstStream, parent) { @@ -663,13 +659,11 @@ MystResourceType11::MystResourceType11(MohawkEngine_Myst *vm, Common::SeekableRe _stepH = 0; _stepV = 0; - if (_stepsH) { + if (_stepsH) _stepH = (_maxH - _minH) / (_stepsH - 1); - } - if (_stepsV) { + if (_stepsV) _stepV = (_maxV - _minV) / (_stepsV - 1); - } } MystResourceType11::~MystResourceType11() { @@ -707,36 +701,23 @@ const Common::String MystResourceType11::describe() { } void MystResourceType11::setPositionClipping(const Common::Point &mouse, Common::Point &dest) { - if (_flagHV & 2) { + if (_flagHV & 2) dest.y = CLIP<uint16>(mouse.y, _minV, _maxV); - } - if (_flagHV & 1) { + + if (_flagHV & 1) dest.x = CLIP<uint16>(mouse.x, _minH, _maxH); - } } uint16 MystResourceType11::getList1(uint16 index) { - if (index < _lists[0].listCount) { - return _lists[0].list[index]; - } - - return 0; + return (index < _lists[0].listCount) ? _lists[0].list[index] : 0; } uint16 MystResourceType11::getList2(uint16 index) { - if (index < _lists[1].listCount) { - return _lists[1].list[index]; - } - - return 0; + return (index < _lists[1].listCount) ? _lists[1].list[index] : 0; } uint16 MystResourceType11::getList3(uint16 index) { - if (index < _lists[2].listCount) { - return _lists[2].list[index]; - } - - return 0; + return (index < _lists[2].listCount) ? _lists[2].list[index] : 0; } MystResourceType12::MystResourceType12(MohawkEngine_Myst *vm, Common::SeekableReadStream *rlstStream, MystResource *parent) : MystResourceType11(vm, rlstStream, parent) { @@ -761,7 +742,6 @@ MystResourceType12::MystResourceType12(MohawkEngine_Myst *vm, Common::SeekableRe } MystResourceType12::~MystResourceType12() { - } void MystResourceType12::drawFrame(uint16 frame) { diff --git a/engines/mohawk/myst_scripts.cpp b/engines/mohawk/myst_scripts.cpp index f463014e61..7e481c9c1a 100644 --- a/engines/mohawk/myst_scripts.cpp +++ b/engines/mohawk/myst_scripts.cpp @@ -289,12 +289,14 @@ void MystScriptParser::unknown(uint16 op, uint16 var, uint16 argc, uint16 *argv) warning("Unimplemented opcode 0x%02x (%d)", op, op); warning("\tUses var %d", var); warning("\tArg count = %d", argc); + if (argc) { Common::String str; str += Common::String::format("%d", argv[0]); - for (uint16 i = 1; i < argc; i++) { + + for (uint16 i = 1; i < argc; i++) str += Common::String::format(", %d", argv[i]); - } + warning("\tArgs: %s\n", str.c_str()); } } @@ -312,9 +314,8 @@ void MystScriptParser::o_toggleVar(uint16 op, uint16 var, uint16 argc, uint16 *a void MystScriptParser::o_setVar(uint16 op, uint16 var, uint16 argc, uint16 *argv) { debugC(kDebugScript, "Opcode %d: Set var %d: %d", op, var, argv[0]); - if (setVarValue(var, argv[0])) { + if (setVarValue(var, argv[0])) _vm->redrawArea(var); - } } void MystScriptParser::o_changeCardSwitch(uint16 op, uint16 var, uint16 argc, uint16 *argv) { @@ -376,9 +377,9 @@ void MystScriptParser::o_triggerMovie(uint16 op, uint16 var, uint16 argc, uint16 // TODO: If movie has sound, pause background music int16 direction = 1; - if (argc == 1) { + if (argc == 1) direction = argv[0]; - } + debugC(kDebugScript, "\tDirection: %d", direction); // Trigger resource 6 movie overriding play direction @@ -630,8 +631,8 @@ void MystScriptParser::o_copyImageToBackBuffer(uint16 op, uint16 var, uint16 arg // for use by this opcode and VIEW sound block. // TODO: Though the playSound and PlaySoundBlocking opcodes play sounds immediately, // this opcode changes the main background sound playing.. -// Current behaviour here and with VIEW sound block is not right as demonstrated -// by Channelwood Card 3280 (Tank Valve) and water flow sound behaviour in pipe +// Current behavior here and with VIEW sound block is not right as demonstrated +// by Channelwood Card 3280 (Tank Valve) and water flow sound behavior in pipe // on cards leading from shed... void MystScriptParser::o_changeBackgroundSound(uint16 op, uint16 var, uint16 argc, uint16 *argv) { varUnusedCheck(op, var); @@ -710,6 +711,7 @@ void MystScriptParser::o_soundPlaySwitch(uint16 op, uint16 var, uint16 argc, uin debugC(kDebugScript, "Opcode %d: Switch Choice of Play Sound", op); uint16 value = getVar(var); + if (value < argc) { uint16 soundId = argv[value]; debugC(kDebugScript, "\tvar: %d", var); diff --git a/engines/mohawk/myst_stacks/myst.cpp b/engines/mohawk/myst_stacks/myst.cpp index 58354f7568..d4d5a9169f 100644 --- a/engines/mohawk/myst_stacks/myst.cpp +++ b/engines/mohawk/myst_stacks/myst.cpp @@ -283,13 +283,12 @@ uint16 MystScriptParser_Myst::getVar(uint16 var) { case 0: // Myst Library Bookcase Closed return _state.libraryBookcaseDoor; case 1: - if (_globals.ending != 4) { + if (_globals.ending != 4) return _state.libraryBookcaseDoor != 1; - } else if (_state.libraryBookcaseDoor == 1) { + else if (_state.libraryBookcaseDoor == 1) return 2; - } else { + else return 3; - } case 2: // Marker Switch Near Cabin return _state.cabinMarkerSwitch; case 3: // Marker Switch Near Clock Tower @@ -350,17 +349,13 @@ uint16 MystScriptParser_Myst::getVar(uint16 var) { return 0; } case 16: // Tower Window (Book) View From Ladder Top - if (_state.towerRotationAngle != 271 - && _state.towerRotationAngle != 83 - && _state.towerRotationAngle != 129) { + if (_state.towerRotationAngle != 271 && _state.towerRotationAngle != 83 && _state.towerRotationAngle != 129) { if (_state.towerRotationAngle == 152) return 2; else return 0; - } else { + } else return 1; - } - case 23: // Fireplace Pattern Correct return _fireplaceLines[0] == 195 && _fireplaceLines[1] == 107 @@ -369,17 +364,15 @@ uint16 MystScriptParser_Myst::getVar(uint16 var) { && _fireplaceLines[4] == 204 && _fireplaceLines[5] == 250; case 24: // Fireplace Blue Page Present - if (_globals.ending != 4) { + if (_globals.ending != 4) return !(_globals.bluePagesInBook & 32) && (_globals.heldPage != 6); - } else { + else return 0; - } case 25: // Fireplace Red Page Present - if (_globals.ending != 4) { + if (_globals.ending != 4) return !(_globals.redPagesInBook & 32) && (_globals.heldPage != 12); - } else { + else return 0; - } case 26: // Courtyard Image Box - Cross case 27: // Courtyard Image Box - Leaf case 28: // Courtyard Image Box - Arrow @@ -388,13 +381,12 @@ uint16 MystScriptParser_Myst::getVar(uint16 var) { case 31: // Courtyard Image Box - Spider case 32: // Courtyard Image Box - Anchor case 33: // Courtyard Image Box - Ostrich - if (!_tempVar) { + if (!_tempVar) return 0; - } else if (_state.courtyardImageBoxes & (0x01 << (var - 26))) { + else if (_state.courtyardImageBoxes & (0x01 << (var - 26))) return 2; - } else { + else return 1; - } case 34: // Sound Control In Dock forechamber if (_state.imagerActive) { if (_state.imagerSelection == 40 && !_state.imagerMountainErased) @@ -403,9 +395,9 @@ uint16 MystScriptParser_Myst::getVar(uint16 var) { return 2; else return 0; - } else { - return 0; } + + return 0; case 35: // Dock Forechamber Imager Control Left Digit if (_state.imagerSelection > 9) return _state.imagerSelection / 10 - 1; @@ -575,17 +567,15 @@ uint16 MystScriptParser_Myst::getVar(uint16 var) { case 99: // Cabin Boiler Gas Valve Position return _state.cabinValvePosition % 6; case 102: // Red page - if (_globals.ending != 4) { + if (_globals.ending != 4) return !(_globals.redPagesInBook & 1) && (_globals.heldPage != 7); - } else { + else return 0; - } case 103: // Blue page - if (_globals.ending != 4) { + if (_globals.ending != 4) return !(_globals.bluePagesInBook & 1) && (_globals.heldPage != 1); - } else { + else return 0; - } case 300: // Rocket Ship Music Puzzle Slider State return 1; case 302: // Green Book Opened Before Flag @@ -600,10 +590,10 @@ uint16 MystScriptParser_Myst::getVar(uint16 var) { return 26; else return 27; - } else { - return _state.cabinValvePosition; } - case 307: // Cabin Boiler Fully Pressurised + + return _state.cabinValvePosition; + case 307: // Cabin Boiler Fully Pressurized return _state.cabinPilotLightLit == 1 && _state.cabinValvePosition > 12; default: return MystScriptParser::getVar(var); @@ -640,18 +630,16 @@ void MystScriptParser_Myst::toggleVar(uint16 var) { if (_globals.ending != 4 && !(_globals.bluePagesInBook & 32)) { if (_globals.heldPage == 6) _globals.heldPage = 0; - else { + else _globals.heldPage = 6; - } } break; case 25: // Fireplace Red page if (_globals.ending != 4 && !(_globals.redPagesInBook & 32)) { if (_globals.heldPage == 12) _globals.heldPage = 0; - else { + else _globals.heldPage = 12; - } } break; case 26: // Courtyard Image Box - Cross @@ -684,18 +672,16 @@ void MystScriptParser_Myst::toggleVar(uint16 var) { if (_globals.ending != 4 && !(_globals.redPagesInBook & 1)) { if (_globals.heldPage == 7) _globals.heldPage = 0; - else { + else _globals.heldPage = 7; - } } break; case 103: // Blue page if (_globals.ending != 4 && !(_globals.bluePagesInBook & 1)) { if (_globals.heldPage == 1) _globals.heldPage = 0; - else { + else _globals.heldPage = 1; - } } break; default: @@ -1518,6 +1504,7 @@ void MystScriptParser_Myst::observatoryIncrementMonth(int16 increment) { _observatoryMonthSlider->drawConditionalDataToScreen(2); _state.observatoryMonthSlider = _observatoryMonthSlider->_pos.y; } + _vm->_sound->replaceSound(8500); } @@ -1577,6 +1564,7 @@ void MystScriptParser_Myst::observatoryIncrementDay(int16 increment) { _observatoryDaySlider->drawConditionalDataToScreen(2); _state.observatoryDaySlider = _observatoryDaySlider->_pos.y; } + _vm->_sound->replaceSound(8500); } @@ -1630,6 +1618,7 @@ void MystScriptParser_Myst::observatoryIncrementYear(int16 increment) { _observatoryYearSlider->drawConditionalDataToScreen(2); _state.observatoryYearSlider = _observatoryYearSlider->_pos.y; } + _vm->_sound->replaceSound(8500); } @@ -1688,6 +1677,7 @@ void MystScriptParser_Myst::observatoryIncrementTime(int16 increment) { _observatoryTimeSlider->drawConditionalDataToScreen(2); _state.observatoryTimeSlider = _observatoryTimeSlider->_pos.y; } + _vm->_sound->replaceSound(8500); } @@ -1708,11 +1698,10 @@ void MystScriptParser_Myst::o_observatoryGoButton(uint16 op, uint16 var, uint16 _vm->_sound->replaceSound(soundId); int16 distance = _state.observatoryYearTarget - _state.observatoryYearSetting; - uint32 end = _vm->_system->getMillis() + 32 * abs(distance) / 50 + 800; - uint16 delay = 50; + uint32 end = _vm->_system->getMillis() + 32 * ABS(distance) / 50 + 800; while (end > _vm->_system->getMillis()) { - _vm->_system->delayMillis(delay); + _vm->_system->delayMillis(50); observatoryUpdateVisualizer(_vm->_rnd->getRandomNumber(409), _vm->_rnd->getRandomNumber(409)); @@ -1780,10 +1769,8 @@ void MystScriptParser_Myst::o_circuitBreakerMove(uint16 op, uint16 var, uint16 a // Breaker switched if (step == maxStep) { - // Choose breaker if (breaker->getType8Var() == 93) { - // Voltage is still too high or not broken if (_state.generatorVoltage > 59 || _state.generatorBreakers != 1) { uint16 soundId = breaker->getList2(1); @@ -1867,10 +1854,8 @@ void MystScriptParser_Myst::o_boilerIncreasePressureStop(uint16 op, uint16 var, _vm->_sound->replaceBackground(8098, 49152); // TODO: Play movies - } else { - if (_state.cabinValvePosition > 0) - _vm->_sound->replaceBackground(4098, _state.cabinValvePosition << 10); - } + } else if (_state.cabinValvePosition > 0) + _vm->_sound->replaceBackground(4098, _state.cabinValvePosition << 10); } void MystScriptParser_Myst::boilerPressureIncrease_run() { @@ -2083,22 +2068,19 @@ void MystScriptParser_Myst::o_rocketSoundSliderEndMove(uint16 op, uint16 var, ui _vm->checkCursorHints(); - if (_state.generatorVoltage == 59 && !_state.generatorBreakers) { - if (_rocketSliderSound) - _vm->_sound->stopSound(); - } + if (_state.generatorVoltage == 59 && !_state.generatorBreakers && _rocketSliderSound) + _vm->_sound->stopSound(); - if (_invokingResource == _rocketSlider1) { + if (_invokingResource == _rocketSlider1) _state.rocketSliderPosition[0] = _rocketSlider1->_pos.y; - } else if (_invokingResource == _rocketSlider2) { + else if (_invokingResource == _rocketSlider2) _state.rocketSliderPosition[1] = _rocketSlider2->_pos.y; - } else if (_invokingResource == _rocketSlider3) { + else if (_invokingResource == _rocketSlider3) _state.rocketSliderPosition[2] = _rocketSlider3->_pos.y; - } else if (_invokingResource == _rocketSlider4) { + else if (_invokingResource == _rocketSlider4) _state.rocketSliderPosition[3] = _rocketSlider4->_pos.y; - } else if (_invokingResource == _rocketSlider5) { + else if (_invokingResource == _rocketSlider5) _state.rocketSliderPosition[4] = _rocketSlider5->_pos.y; - } _vm->_sound->resumeBackground(); } @@ -2186,7 +2168,7 @@ void MystScriptParser_Myst::o_rocketPianoStart(uint16 op, uint16 var, uint16 arg MystResourceType11 *key = static_cast<MystResourceType11 *>(_invokingResource); - // What the hell ?? + // What the hell?? Common::Rect src = key->_subImages[1].rect; Common::Rect rect = key->_subImages[0].rect; Common::Rect dest = rect; @@ -2304,13 +2286,13 @@ void MystScriptParser_Myst::o_rocketLeverMove(uint16 op, uint16 var, uint16 argc // If lever pulled if (step == maxStep && step != _rocketLeverPosition) { uint16 soundId = lever->getList2(0); + if (soundId) _vm->_sound->replaceSound(soundId); // If rocket correctly powered - if (_state.generatorVoltage == 59 && !_state.generatorBreakers) { + if (_state.generatorVoltage == 59 && !_state.generatorBreakers) rocketCheckSolution(); - } } _rocketLeverPosition = step; @@ -2496,9 +2478,8 @@ void MystScriptParser_Myst::observatoryUpdateTime() { _vm->redrawArea(83); // Draw AM/PM - if (!observatoryIsDDMMYYYY2400()) { + if (!observatoryIsDDMMYYYY2400()) _vm->redrawArea(88); - } } } @@ -2583,31 +2564,32 @@ void MystScriptParser_Myst::o_clockHourWheelStartTurn(uint16 op, uint16 var, uin void MystScriptParser_Myst::clockWheel_run() { // Turn wheel one step each second uint32 time = _vm->_system->getMillis(); + if (time > _startTime + 1000) { _startTime = time; - if (_clockTurningWheel == 1) { + if (_clockTurningWheel == 1) clockWheelTurn(39); - } else { + else clockWheelTurn(38); - } + _vm->redrawArea(37); } - } void MystScriptParser_Myst::clockWheelStartTurn(uint16 wheel) { MystResourceType11 *resource = static_cast<MystResourceType11 *>(_invokingResource); uint16 soundId = resource->getList1(0); + if (soundId) _vm->_sound->replaceSound(soundId); // Turn wheel one step - if (wheel == 1) { + if (wheel == 1) clockWheelTurn(39); - } else { + else clockWheelTurn(38); - } + _vm->redrawArea(37); // Continue turning wheel until mouse button is released @@ -2645,7 +2627,7 @@ void MystScriptParser_Myst::o_libraryCombinationBookStartLeft(uint16 op, uint16 void MystScriptParser_Myst::libraryCombinationBookTurnLeft() { // Turn page left - if (_libraryBookPage - 1 >= 0) { + if (_libraryBookPage - 1 >= 0) { _tempVar--; if (_tempVar >= -5) { @@ -3070,6 +3052,7 @@ void MystScriptParser_Myst::o_observatory_init(uint16 op, uint16 var, uint16 arg } bool MystScriptParser_Myst::observatoryIsDDMMYYYY2400() { + // TODO: Auto-detect based on the month rect position return !(_vm->getFeatures() & GF_ME) && (_vm->getLanguage() == Common::FR_FRA || _vm->getLanguage() == Common::DE_DEU); } @@ -3151,7 +3134,7 @@ void MystScriptParser_Myst::observatory_run() { || _state.observatoryYearTarget != _state.observatoryYearSetting || _state.observatoryTimeTarget != _state.observatoryTimeSetting) { - // Blink go button + // Blink the go button uint32 time = _vm->_system->getMillis(); if (time > _observatoryLastTime + 250) { _tempVar = (_tempVar + 1) % 2; @@ -3170,9 +3153,9 @@ void MystScriptParser_Myst::opcode_215(uint16 op, uint16 var, uint16 argc, uint1 // to run in sequence with opcode215_run() process... if (false) { // All birds(x) videos are 120x48 and played in top right corner of card - _vm->_video->playMovie(_vm->wrapMovieFilename("birds1", kMystStack), 544-120-1, 0); - _vm->_video->playMovie(_vm->wrapMovieFilename("birds2", kMystStack), 544-120-1, 0); - _vm->_video->playMovie(_vm->wrapMovieFilename("birds3", kMystStack), 544-120-1, 0); + _vm->_video->playMovie(_vm->wrapMovieFilename("birds1", kMystStack), 544 - 120 - 1, 0); + _vm->_video->playMovie(_vm->wrapMovieFilename("birds2", kMystStack), 544 - 120 - 1, 0); + _vm->_video->playMovie(_vm->wrapMovieFilename("birds3", kMystStack), 544 - 120 - 1, 0); } } diff --git a/engines/mohawk/myst_stacks/selenitic.cpp b/engines/mohawk/myst_stacks/selenitic.cpp index 8baffea707..1fd76480c0 100644 --- a/engines/mohawk/myst_stacks/selenitic.cpp +++ b/engines/mohawk/myst_stacks/selenitic.cpp @@ -108,15 +108,14 @@ uint16 MystScriptParser_Selenitic::getVar(uint16 var) { case 6: // Tunnel lights return _state.tunnelLightsSwitchedOn; case 7:// Maze runner display - if (_mazeRunnerPosition == 288) { + if (_mazeRunnerPosition == 288) return 0; - } else if (_mazeRunnerPosition == 289) { + else if (_mazeRunnerPosition == 289) return 1; - } else if (!mazeRunnerForwardAllowed(_mazeRunnerPosition)) { + else if (!mazeRunnerForwardAllowed(_mazeRunnerPosition)) return 2; - } else { + else return 3; - } case 8: // Viewer return 0; case 9: // Sound receiver selected source @@ -194,18 +193,16 @@ void MystScriptParser_Selenitic::toggleVar(uint16 var) { if (!(_globals.redPagesInBook & 2)) { if (_globals.heldPage == 8) _globals.heldPage = 0; - else { + else _globals.heldPage = 8; - } } break; case 103: // Blue page if (!(_globals.bluePagesInBook & 2)) { if (_globals.heldPage == 2) _globals.heldPage = 0; - else { + else _globals.heldPage = 2; - } } break; default: @@ -313,28 +310,26 @@ void MystScriptParser_Selenitic::mazeRunnerBacktrack(uint16 &oldPosition) { uint16 targetDirection = _mazeRunnerPosition % 8; - if (_mazeRunnerPosition == 289) { + if (_mazeRunnerPosition == 289) targetDirection = 3; - } else if (_mazeRunnerPosition == 288) { + else if (_mazeRunnerPosition == 288) targetDirection = 0; - } else if (_mazeRunnerPosition == 252) { + else if (_mazeRunnerPosition == 252) targetDirection = 6; - } else if (_mazeRunnerPosition == 212) { + else if (_mazeRunnerPosition == 212) targetDirection = 2; - } else if (_mazeRunnerPosition == 171) { + else if (_mazeRunnerPosition == 171) targetDirection = 7; - } else if (_mazeRunnerPosition == 150) { + else if (_mazeRunnerPosition == 150) targetDirection = 4; - } else if (_mazeRunnerPosition == 116) { + else if (_mazeRunnerPosition == 116) targetDirection = 2; - } uint16 moves = 0; - if (targetDirection >= _mazeRunnerDirection) { + if (targetDirection >= _mazeRunnerDirection) moves = targetDirection - _mazeRunnerDirection; - } else { + else moves = targetDirection + 8 - _mazeRunnerDirection; - } bool goLeft = false; if (moves > 4) @@ -342,6 +337,7 @@ void MystScriptParser_Selenitic::mazeRunnerBacktrack(uint16 &oldPosition) { while (targetDirection != _mazeRunnerDirection) { _mazeRunnerCompass->drawConditionalDataToScreen(8); + if (goLeft) { _mazeRunnerLeftButton->drawConditionalDataToScreen(2); @@ -363,6 +359,7 @@ void MystScriptParser_Selenitic::mazeRunnerBacktrack(uint16 &oldPosition) { _mazeRunnerRightButton->drawConditionalDataToScreen(1); } + _mazeRunnerCompass->drawConditionalDataToScreen(_mazeRunnerDirection); _vm->_system->delayMillis(150); } @@ -379,11 +376,10 @@ void MystScriptParser_Selenitic::mazeRunnerPlayVideo(uint16 video, uint16 pos) { file = _vm->wrapMovieFilename("forwe0", kSeleniticStack); break; case 3: - if (mazeRunnerForwardAllowed(_mazeRunnerPosition)) { + if (mazeRunnerForwardAllowed(_mazeRunnerPosition)) file = _vm->wrapMovieFilename("forwf1", kSeleniticStack); - } else { + else file = _vm->wrapMovieFilename("forwf0", kSeleniticStack); - } break; case 4: file = _vm->wrapMovieFilename("left00", kSeleniticStack); @@ -410,39 +406,34 @@ void MystScriptParser_Selenitic::mazeRunnerPlayVideo(uint16 video, uint16 pos) { file = _vm->wrapMovieFilename("right11", kSeleniticStack); break; case 12: - if (mazeRunnerForwardAllowed(_mazeRunnerPosition)) { + if (mazeRunnerForwardAllowed(_mazeRunnerPosition)) file = _vm->wrapMovieFilename("forwo1", kSeleniticStack); - } else { + else file = _vm->wrapMovieFilename("forwo0", kSeleniticStack); - } break; case 13: - if (mazeRunnerForwardAllowed(_mazeRunnerPosition)) { + if (mazeRunnerForwardAllowed(_mazeRunnerPosition)) file = _vm->wrapMovieFilename("forwp1", kSeleniticStack); - } else { + else file = _vm->wrapMovieFilename("forwp0", kSeleniticStack); - } break; case 14: - if (mazeRunnerForwardAllowed(_mazeRunnerPosition)) { + if (mazeRunnerForwardAllowed(_mazeRunnerPosition)) file = _vm->wrapMovieFilename("forws1", kSeleniticStack); - } else { + else file = _vm->wrapMovieFilename("forws0", kSeleniticStack); - } break; case 15: - if (mazeRunnerForwardAllowed(_mazeRunnerPosition)) { + if (mazeRunnerForwardAllowed(_mazeRunnerPosition)) file = _vm->wrapMovieFilename("forwr1", kSeleniticStack); - } else { + else file = _vm->wrapMovieFilename("forwr0", kSeleniticStack); - } break; case 16: - if (mazeRunnerForwardAllowed(_mazeRunnerPosition)) { + if (mazeRunnerForwardAllowed(_mazeRunnerPosition)) file = _vm->wrapMovieFilename("forwl1", kSeleniticStack); - } else { + else file = _vm->wrapMovieFilename("forwl0", kSeleniticStack); - } break; case 17: file = _vm->wrapMovieFilename("backa1", kSeleniticStack); @@ -451,25 +442,22 @@ void MystScriptParser_Selenitic::mazeRunnerPlayVideo(uint16 video, uint16 pos) { file = _vm->wrapMovieFilename("backe1", kSeleniticStack); break; case 19: - if (mazeRunnerForwardAllowed(pos)) { + if (mazeRunnerForwardAllowed(pos)) file = _vm->wrapMovieFilename("backf1", kSeleniticStack); - } else { + else file = _vm->wrapMovieFilename("backf0", kSeleniticStack); - } break; case 20: - if (mazeRunnerForwardAllowed(pos)) { + if (mazeRunnerForwardAllowed(pos)) file = _vm->wrapMovieFilename("backo1", kSeleniticStack); - } else { + else file = _vm->wrapMovieFilename("backo0", kSeleniticStack); - } break; case 21: - if (mazeRunnerForwardAllowed(pos)) { + if (mazeRunnerForwardAllowed(pos)) file = _vm->wrapMovieFilename("backp1", kSeleniticStack); - } else { + else file = _vm->wrapMovieFilename("backp0", kSeleniticStack); - } break; case 22: if (mazeRunnerForwardAllowed(pos)) { @@ -479,33 +467,31 @@ void MystScriptParser_Selenitic::mazeRunnerPlayVideo(uint16 video, uint16 pos) { } break; case 23: - if (mazeRunnerForwardAllowed(pos)) { + if (mazeRunnerForwardAllowed(pos)) file = _vm->wrapMovieFilename("backr1", kSeleniticStack); - } else { + else file = _vm->wrapMovieFilename("backr0", kSeleniticStack); - } break; case 24: - if (mazeRunnerForwardAllowed(pos)) { + if (mazeRunnerForwardAllowed(pos)) file = _vm->wrapMovieFilename("backl1", kSeleniticStack); - } else { + else file = _vm->wrapMovieFilename("backl0", kSeleniticStack); - } break; } - if (file != "") { + if (!file.empty()) { const Common::Rect &dest = _mazeRunnerWindow->getRect(); _vm->_video->playMovie(file, dest.left, dest.top, false); } } void MystScriptParser_Selenitic::mazeRunnerUpdateCompass() { - if (_mazeRunnerPosition == 288 || _mazeRunnerPosition == 289) { + if (_mazeRunnerPosition == 288 || _mazeRunnerPosition == 289) _mazeRunnerDirection = 8; - } else { + else _mazeRunnerDirection = _mazeRunnerPosition % 8; - } + _mazeRunnerCompass->drawConditionalDataToScreen(_mazeRunnerDirection); } @@ -659,11 +645,10 @@ void MystScriptParser_Selenitic::soundReceiverLeftRight(uint direction) { _soundReceiverSigmaPressed = false; } - if (direction == 1) { + if (direction == 1) _soundReceiverRightButton->drawConditionalDataToScreen(1); - } else { + else _soundReceiverLeftButton->drawConditionalDataToScreen(1); - } _vm->_sound->stopSound(); @@ -675,11 +660,10 @@ void MystScriptParser_Selenitic::soundReceiverLeftRight(uint direction) { } void MystScriptParser_Selenitic::soundReceiverUpdate() { - if (_soundReceiverDirection == 1) { + if (_soundReceiverDirection == 1) *_soundReceiverPosition = ((*_soundReceiverPosition) + _soundReceiverSpeed) % 3600; - } else if (_soundReceiverDirection == 2) { + else if (_soundReceiverDirection == 2) *_soundReceiverPosition = ((*_soundReceiverPosition) + 3600 - _soundReceiverSpeed) % 3600; - } soundReceiverDrawView(); } @@ -762,29 +746,28 @@ void MystScriptParser_Selenitic::o_soundReceiverUpdateSound(uint16 op, uint16 va } uint16 MystScriptParser_Selenitic::soundLockCurrentSound(uint16 position, bool pixels) { - if ((pixels && position < 96) || (!pixels && position == 0)) { + if ((pixels && position < 96) || (!pixels && position == 0)) return 289; - } else if ((pixels && position < 108) || (!pixels && position == 1)) { + else if ((pixels && position < 108) || (!pixels && position == 1)) return 1289; - } else if ((pixels && position < 120) || (!pixels && position == 2)) { + else if ((pixels && position < 120) || (!pixels && position == 2)) return 2289; - } else if ((pixels && position < 132) || (!pixels && position == 3)) { + else if ((pixels && position < 132) || (!pixels && position == 3)) return 3289; - } else if ((pixels && position < 144) || (!pixels && position == 4)) { + else if ((pixels && position < 144) || (!pixels && position == 4)) return 4289; - } else if ((pixels && position < 156) || (!pixels && position == 5)) { + else if ((pixels && position < 156) || (!pixels && position == 5)) return 5289; - } else if ((pixels && position < 168) || (!pixels && position == 6)) { + else if ((pixels && position < 168) || (!pixels && position == 6)) return 6289; - } else if ((pixels && position < 180) || (!pixels && position == 7)) { + else if ((pixels && position < 180) || (!pixels && position == 7)) return 7289; - } else if ((pixels && position < 192) || (!pixels && position == 8)) { + else if ((pixels && position < 192) || (!pixels && position == 8)) return 8289; - } else if (pixels || (!pixels && position == 9)) { + else if (pixels || (!pixels && position == 9)) return 9289; - } else { - return 0; - } + + return 0; } MystResourceType10 *MystScriptParser_Selenitic::soundLockSliderFromVar(uint16 var) { @@ -877,9 +860,8 @@ void MystScriptParser_Selenitic::soundLockCheckSolution(MystResourceType10 *slid _vm->_sound->replaceSound(soundLockCurrentSound(value / 12, false)); _vm->_system->delayMillis(1500); - if (value / 12 != solution) { + if (value / 12 != solution) solved = false; - } slider->drawConditionalDataToScreen(1); _vm->_sound->stopSound(); @@ -933,12 +915,10 @@ void MystScriptParser_Selenitic::o_soundReceiverEndMove(uint16 op, uint16 var, u soundReceiverUpdateSound(); - if (oldDirection == 1) { + if (oldDirection == 1) _soundReceiverRightButton->drawConditionalDataToScreen(0); - } else { + else _soundReceiverLeftButton->drawConditionalDataToScreen(0); - } - } } @@ -959,20 +939,13 @@ void MystScriptParser_Selenitic::soundReceiver_run() { if (_soundReceiverDirection) { uint32 currentTime = _vm->_system->getMillis(); - if (_soundReceiverSpeed == 50) { - if (currentTime > _soundReceiverStartTime + 500) { + if (_soundReceiverSpeed == 50 && currentTime > _soundReceiverStartTime + 500) soundReceiverIncreaseSpeed(); - } - } else { - if (currentTime > _soundReceiverStartTime + 1000) { + else if (currentTime > _soundReceiverStartTime + 1000) soundReceiverIncreaseSpeed(); - } - } - if (currentTime > _soundReceiverStartTime + 100) { + if (currentTime > _soundReceiverStartTime + 100) soundReceiverUpdate(); - } - } else if (!_soundReceiverSigmaPressed) { soundReceiverUpdateSound(); } @@ -1128,10 +1101,8 @@ void MystScriptParser_Selenitic::o_soundLock_init(uint16 op, uint16 var, uint16 _soundLockSlider5->setStep(_state.soundLockSliderPositions[4]); break; } - } else if (_vm->_resources[i]->type == kMystConditionalImage) { - if (_vm->_resources[i]->getType8Var() == 28) { - _soundLockButton = static_cast<MystResourceType8 *>(_vm->_resources[i]); - } + } else if (_vm->_resources[i]->type == kMystConditionalImage && _vm->_resources[i]->getType8Var() == 28) { + _soundLockButton = static_cast<MystResourceType8 *>(_vm->_resources[i]); } } @@ -1147,608 +1118,609 @@ void MystScriptParser_Selenitic::o_mazeRunnerLeft_init(uint16 op, uint16 var, ui } const uint16 MystScriptParser_Selenitic::_mazeRunnerMap[300][4] = { - {8, 7, 1, 288}, - {1, 0, 2, 288}, - {2, 1, 3, 288}, - {3, 2, 4, 288}, - {4, 3, 5, 288}, - {5, 4, 6, 288}, - {6, 5, 7, 288}, - {7, 6, 0, 288}, - {8, 15, 9, 0}, - {9, 8, 10, 0}, - {10, 9, 11, 0}, - {11, 10, 12, 0}, - {4, 11, 13, 0}, - {13, 12, 14, 0}, - {22, 13, 15, 0}, - {15, 14, 8, 0}, - {24, 23, 17, 14}, - {17, 16, 18, 14}, - {10, 17, 19, 14}, - {19, 18, 20, 14}, - {20, 19, 21, 14}, - {21, 20, 22, 14}, - {22, 21, 23, 14}, - {23, 22, 16, 14}, - {112, 31, 25, 16}, - {25, 24, 26, 16}, - {34, 25, 27, 16}, - {27, 26, 28, 16}, - {20, 27, 29, 16}, - {29, 28, 30, 16}, - {30, 29, 31, 16}, - {31, 30, 24, 16}, - {120, 39, 33, 26}, - {33, 32, 34, 26}, - {42, 33, 35, 26}, - {35, 34, 36, 26}, - {36, 35, 37, 26}, - {37, 36, 38, 26}, - {30, 37, 39, 26}, - {39, 38, 32, 26}, - {40, 47, 41, 34}, - {143, 40, 42, 34}, - {42, 41, 43, 34}, - {43, 42, 44, 34}, - {52, 43, 45, 34}, - {45, 44, 46, 34}, - {38, 45, 47, 34}, - {47, 46, 40, 34}, - {40, 55, 49, 44}, - {49, 48, 50, 44}, - {146, 49, 51, 44}, - {51, 50, 52, 44}, - {60, 51, 53, 44}, - {53, 52, 54, 44}, - {54, 53, 55, 44}, - {55, 54, 48, 44}, - {48, 63, 57, 52}, - {57, 56, 58, 52}, - {58, 57, 59, 52}, - {171, 58, 60, 52}, - {60, 59, 61, 52}, - {61, 60, 62, 52}, - {68, 61, 63, 52}, - {63, 62, 56, 52}, - {58, 71, 65, 62}, - {65, 64, 66, 62}, - {66, 65, 67, 62}, - {67, 66, 68, 62}, - {68, 67, 69, 62}, - {77, 68, 70, 62}, - {70, 69, 71, 62}, - {71, 70, 64, 62}, - {72, 79, 73, 69}, - {65, 72, 74, 69}, - {186, 73, 75, 69}, - {75, 74, 76, 69}, - {196, 75, 77, 69}, - {77, 76, 78, 69}, - {86, 77, 79, 69}, - {79, 78, 72, 69}, - {80, 87, 81, 78}, - {81, 80, 82, 78}, - {74, 81, 83, 78}, - {83, 82, 84, 78}, - {212, 83, 85, 78}, - {229, 84, 86, 78}, - {86, 85, 87, 78}, - {95, 86, 80, 78}, - {88, 95, 89, 87}, - {97, 88, 90, 87}, - {90, 89, 91, 87}, - {83, 90, 92, 87}, - {92, 91, 93, 87}, - {93, 92, 94, 87}, - {254, 93, 95, 87}, - {95, 94, 88, 87}, - {106, 103, 97, 89}, - {97, 96, 98, 89}, - {98, 97, 99, 89}, - {99, 98, 100, 89}, - {100, 99, 101, 89}, - {93, 100, 102, 89}, - {102, 101, 103, 89}, - {271, 102, 96, 89}, - {104, 111, 105, 96}, - {105, 104, 106, 96}, - {106, 105, 107, 96}, - {289, 106, 108, 96}, - {108, 107, 109, 96}, - {109, 108, 110, 96}, - {100, 109, 111, 96}, - {111, 110, 104, 96}, - {112, 119, 113, 24}, - {113, 112, 114, 24}, - {114, 113, 115, 24}, - {115, 114, 116, 24}, - {28, 115, 117, 24}, - {117, 116, 118, 24}, - {118, 117, 119, 24}, - {119, 118, 112, 24}, - {120, 127, 121, 32}, - {121, 120, 122, 32}, - {122, 121, 123, 32}, - {123, 122, 124, 32}, - {36, 123, 125, 32}, - {125, 124, 126, 32}, - {126, 125, 127, 32}, - {127, 126, 120, 32}, - {128, 135, 129, 136}, - {129, 128, 130, 136}, - {130, 129, 131, 136}, - {131, 130, 132, 136}, - {140, 131, 133, 136}, - {133, 132, 134, 136}, - {134, 133, 135, 136}, - {135, 134, 128, 136}, - {128, 143, 137, 41}, - {137, 136, 138, 41}, - {138, 137, 139, 41}, - {45, 138, 140, 41}, - {140, 139, 141, 41}, - {141, 140, 142, 41}, - {142, 141, 143, 41}, - {143, 142, 136, 41}, - {144, 151, 145, 50}, - {145, 144, 146, 50}, - {146, 145, 147, 50}, - {147, 146, 148, 50}, - {148, 147, 149, 50}, - {157, 148, 150, 50}, - {54, 149, 151, 50}, - {151, 150, 144, 50}, - {152, 159, 153, 149}, - {145, 152, 154, 149}, - {154, 153, 155, 149}, - {155, 154, 156, 149}, - {156, 155, 157, 149}, - {157, 156, 158, 149}, - {158, 157, 159, 149}, - {159, 158, 152, 149}, - {160, 167, 161, 168}, - {161, 160, 162, 168}, - {162, 161, 163, 168}, - {163, 162, 164, 168}, - {172, 163, 165, 168}, - {165, 164, 166, 168}, - {166, 165, 167, 168}, - {167, 166, 160, 168}, - {160, 175, 169, 59}, - {169, 168, 170, 59}, - {170, 169, 171, 59}, - {171, 170, 172, 59}, - {172, 171, 173, 59}, - {181, 172, 174, 59}, - {174, 173, 175, 59}, - {63, 174, 168, 59}, - {176, 183, 177, 173}, - {169, 176, 178, 173}, - {178, 177, 179, 173}, - {179, 178, 180, 173}, - {180, 179, 181, 173}, - {181, 180, 182, 173}, - {182, 181, 183, 173}, - {183, 182, 176, 173}, - {184, 191, 185, 74}, - {185, 184, 186, 74}, - {186, 185, 187, 74}, - {187, 186, 188, 74}, - {188, 187, 189, 74}, - {189, 188, 190, 74}, - {78, 189, 191, 74}, - {191, 190, 184, 74}, - {72, 199, 193, 76}, - {193, 192, 194, 76}, - {194, 193, 195, 76}, - {195, 194, 196, 76}, - {196, 195, 197, 76}, - {197, 196, 198, 76}, - {198, 197, 199, 76}, - {199, 198, 192, 76}, - {200, 207, 201, 212}, - {201, 200, 202, 212}, - {202, 201, 203, 212}, - {203, 202, 204, 212}, - {204, 203, 205, 212}, - {205, 204, 206, 212}, - {208, 205, 207, 212}, - {207, 206, 200, 212}, - {80, 215, 209, 84}, - {209, 208, 210, 84}, - {210, 209, 211, 84}, - {211, 210, 212, 84}, - {202, 211, 213, 84}, - {213, 212, 214, 84}, - {208, 213, 215, 84}, - {215, 214, 208, 84}, - {224, 223, 217, 228}, - {217, 216, 218, 228}, - {218, 217, 219, 228}, - {219, 218, 220, 228}, - {220, 219, 221, 228}, - {221, 220, 222, 228}, - {216, 221, 223, 228}, - {223, 222, 216, 228}, - {224, 231, 225, 85}, - {81, 224, 226, 85}, - {226, 225, 227, 85}, - {227, 226, 228, 85}, - {220, 227, 229, 85}, - {229, 228, 230, 85}, - {238, 229, 231, 85}, - {231, 230, 224, 85}, - {232, 239, 233, 230}, - {233, 232, 234, 230}, - {226, 233, 235, 230}, - {235, 234, 236, 230}, - {236, 235, 237, 230}, - {237, 236, 238, 230}, - {232, 237, 239, 230}, - {239, 238, 232, 230}, - {240, 247, 241, 252}, - {241, 240, 242, 252}, - {248, 241, 243, 252}, - {243, 242, 244, 252}, - {244, 243, 245, 252}, - {245, 244, 246, 252}, - {240, 245, 247, 252}, - {247, 246, 240, 252}, - {256, 255, 249, 94}, - {249, 248, 250, 94}, - {90, 249, 251, 94}, - {251, 250, 252, 94}, - {246, 251, 253, 94}, - {253, 252, 254, 94}, - {248, 253, 255, 94}, - {255, 254, 248, 94}, - {256, 263, 257, 248}, - {257, 256, 258, 248}, - {258, 257, 259, 248}, - {259, 258, 260, 248}, - {252, 259, 261, 248}, - {261, 260, 262, 248}, - {256, 261, 263, 248}, - {263, 262, 256, 248}, - {280, 271, 265, 103}, - {265, 264, 266, 103}, - {266, 265, 267, 103}, - {99, 266, 268, 103}, - {268, 267, 269, 103}, - {269, 268, 270, 103}, - {278, 269, 271, 103}, - {271, 270, 264, 103}, - {272, 279, 273, 270}, - {273, 272, 274, 270}, - {266, 273, 275, 270}, - {275, 274, 276, 270}, - {276, 275, 277, 270}, - {277, 276, 278, 270}, - {272, 277, 279, 270}, - {279, 278, 272, 270}, - {280, 287, 281, 264}, - {281, 280, 282, 264}, - {282, 281, 283, 264}, - {283, 282, 284, 264}, - {268, 283, 285, 264}, - {285, 284, 286, 264}, - {280, 285, 287, 264}, - {287, 286, 280, 264}, - {0, 288, 288, 288}, - {289, 289, 289, 107}, - { 0, 0, 0, 0}, - { 0, 0, 0, 0}, - { 0, 0, 0, 0}, - { 0, 0, 0, 0}, - { 0, 0, 0, 0}, - { 0, 0, 0, 0}, - { 0, 0, 0, 0}, - { 0, 0, 0, 0}, - { 0, 0, 0, 0}, - { 0, 0, 0, 0} - }; + {8, 7, 1, 288}, + {1, 0, 2, 288}, + {2, 1, 3, 288}, + {3, 2, 4, 288}, + {4, 3, 5, 288}, + {5, 4, 6, 288}, + {6, 5, 7, 288}, + {7, 6, 0, 288}, + {8, 15, 9, 0}, + {9, 8, 10, 0}, + {10, 9, 11, 0}, + {11, 10, 12, 0}, + {4, 11, 13, 0}, + {13, 12, 14, 0}, + {22, 13, 15, 0}, + {15, 14, 8, 0}, + {24, 23, 17, 14}, + {17, 16, 18, 14}, + {10, 17, 19, 14}, + {19, 18, 20, 14}, + {20, 19, 21, 14}, + {21, 20, 22, 14}, + {22, 21, 23, 14}, + {23, 22, 16, 14}, + {112, 31, 25, 16}, + {25, 24, 26, 16}, + {34, 25, 27, 16}, + {27, 26, 28, 16}, + {20, 27, 29, 16}, + {29, 28, 30, 16}, + {30, 29, 31, 16}, + {31, 30, 24, 16}, + {120, 39, 33, 26}, + {33, 32, 34, 26}, + {42, 33, 35, 26}, + {35, 34, 36, 26}, + {36, 35, 37, 26}, + {37, 36, 38, 26}, + {30, 37, 39, 26}, + {39, 38, 32, 26}, + {40, 47, 41, 34}, + {143, 40, 42, 34}, + {42, 41, 43, 34}, + {43, 42, 44, 34}, + {52, 43, 45, 34}, + {45, 44, 46, 34}, + {38, 45, 47, 34}, + {47, 46, 40, 34}, + {40, 55, 49, 44}, + {49, 48, 50, 44}, + {146, 49, 51, 44}, + {51, 50, 52, 44}, + {60, 51, 53, 44}, + {53, 52, 54, 44}, + {54, 53, 55, 44}, + {55, 54, 48, 44}, + {48, 63, 57, 52}, + {57, 56, 58, 52}, + {58, 57, 59, 52}, + {171, 58, 60, 52}, + {60, 59, 61, 52}, + {61, 60, 62, 52}, + {68, 61, 63, 52}, + {63, 62, 56, 52}, + {58, 71, 65, 62}, + {65, 64, 66, 62}, + {66, 65, 67, 62}, + {67, 66, 68, 62}, + {68, 67, 69, 62}, + {77, 68, 70, 62}, + {70, 69, 71, 62}, + {71, 70, 64, 62}, + {72, 79, 73, 69}, + {65, 72, 74, 69}, + {186, 73, 75, 69}, + {75, 74, 76, 69}, + {196, 75, 77, 69}, + {77, 76, 78, 69}, + {86, 77, 79, 69}, + {79, 78, 72, 69}, + {80, 87, 81, 78}, + {81, 80, 82, 78}, + {74, 81, 83, 78}, + {83, 82, 84, 78}, + {212, 83, 85, 78}, + {229, 84, 86, 78}, + {86, 85, 87, 78}, + {95, 86, 80, 78}, + {88, 95, 89, 87}, + {97, 88, 90, 87}, + {90, 89, 91, 87}, + {83, 90, 92, 87}, + {92, 91, 93, 87}, + {93, 92, 94, 87}, + {254, 93, 95, 87}, + {95, 94, 88, 87}, + {106, 103, 97, 89}, + {97, 96, 98, 89}, + {98, 97, 99, 89}, + {99, 98, 100, 89}, + {100, 99, 101, 89}, + {93, 100, 102, 89}, + {102, 101, 103, 89}, + {271, 102, 96, 89}, + {104, 111, 105, 96}, + {105, 104, 106, 96}, + {106, 105, 107, 96}, + {289, 106, 108, 96}, + {108, 107, 109, 96}, + {109, 108, 110, 96}, + {100, 109, 111, 96}, + {111, 110, 104, 96}, + {112, 119, 113, 24}, + {113, 112, 114, 24}, + {114, 113, 115, 24}, + {115, 114, 116, 24}, + {28, 115, 117, 24}, + {117, 116, 118, 24}, + {118, 117, 119, 24}, + {119, 118, 112, 24}, + {120, 127, 121, 32}, + {121, 120, 122, 32}, + {122, 121, 123, 32}, + {123, 122, 124, 32}, + {36, 123, 125, 32}, + {125, 124, 126, 32}, + {126, 125, 127, 32}, + {127, 126, 120, 32}, + {128, 135, 129, 136}, + {129, 128, 130, 136}, + {130, 129, 131, 136}, + {131, 130, 132, 136}, + {140, 131, 133, 136}, + {133, 132, 134, 136}, + {134, 133, 135, 136}, + {135, 134, 128, 136}, + {128, 143, 137, 41}, + {137, 136, 138, 41}, + {138, 137, 139, 41}, + {45, 138, 140, 41}, + {140, 139, 141, 41}, + {141, 140, 142, 41}, + {142, 141, 143, 41}, + {143, 142, 136, 41}, + {144, 151, 145, 50}, + {145, 144, 146, 50}, + {146, 145, 147, 50}, + {147, 146, 148, 50}, + {148, 147, 149, 50}, + {157, 148, 150, 50}, + {54, 149, 151, 50}, + {151, 150, 144, 50}, + {152, 159, 153, 149}, + {145, 152, 154, 149}, + {154, 153, 155, 149}, + {155, 154, 156, 149}, + {156, 155, 157, 149}, + {157, 156, 158, 149}, + {158, 157, 159, 149}, + {159, 158, 152, 149}, + {160, 167, 161, 168}, + {161, 160, 162, 168}, + {162, 161, 163, 168}, + {163, 162, 164, 168}, + {172, 163, 165, 168}, + {165, 164, 166, 168}, + {166, 165, 167, 168}, + {167, 166, 160, 168}, + {160, 175, 169, 59}, + {169, 168, 170, 59}, + {170, 169, 171, 59}, + {171, 170, 172, 59}, + {172, 171, 173, 59}, + {181, 172, 174, 59}, + {174, 173, 175, 59}, + {63, 174, 168, 59}, + {176, 183, 177, 173}, + {169, 176, 178, 173}, + {178, 177, 179, 173}, + {179, 178, 180, 173}, + {180, 179, 181, 173}, + {181, 180, 182, 173}, + {182, 181, 183, 173}, + {183, 182, 176, 173}, + {184, 191, 185, 74}, + {185, 184, 186, 74}, + {186, 185, 187, 74}, + {187, 186, 188, 74}, + {188, 187, 189, 74}, + {189, 188, 190, 74}, + {78, 189, 191, 74}, + {191, 190, 184, 74}, + {72, 199, 193, 76}, + {193, 192, 194, 76}, + {194, 193, 195, 76}, + {195, 194, 196, 76}, + {196, 195, 197, 76}, + {197, 196, 198, 76}, + {198, 197, 199, 76}, + {199, 198, 192, 76}, + {200, 207, 201, 212}, + {201, 200, 202, 212}, + {202, 201, 203, 212}, + {203, 202, 204, 212}, + {204, 203, 205, 212}, + {205, 204, 206, 212}, + {208, 205, 207, 212}, + {207, 206, 200, 212}, + {80, 215, 209, 84}, + {209, 208, 210, 84}, + {210, 209, 211, 84}, + {211, 210, 212, 84}, + {202, 211, 213, 84}, + {213, 212, 214, 84}, + {208, 213, 215, 84}, + {215, 214, 208, 84}, + {224, 223, 217, 228}, + {217, 216, 218, 228}, + {218, 217, 219, 228}, + {219, 218, 220, 228}, + {220, 219, 221, 228}, + {221, 220, 222, 228}, + {216, 221, 223, 228}, + {223, 222, 216, 228}, + {224, 231, 225, 85}, + {81, 224, 226, 85}, + {226, 225, 227, 85}, + {227, 226, 228, 85}, + {220, 227, 229, 85}, + {229, 228, 230, 85}, + {238, 229, 231, 85}, + {231, 230, 224, 85}, + {232, 239, 233, 230}, + {233, 232, 234, 230}, + {226, 233, 235, 230}, + {235, 234, 236, 230}, + {236, 235, 237, 230}, + {237, 236, 238, 230}, + {232, 237, 239, 230}, + {239, 238, 232, 230}, + {240, 247, 241, 252}, + {241, 240, 242, 252}, + {248, 241, 243, 252}, + {243, 242, 244, 252}, + {244, 243, 245, 252}, + {245, 244, 246, 252}, + {240, 245, 247, 252}, + {247, 246, 240, 252}, + {256, 255, 249, 94}, + {249, 248, 250, 94}, + {90, 249, 251, 94}, + {251, 250, 252, 94}, + {246, 251, 253, 94}, + {253, 252, 254, 94}, + {248, 253, 255, 94}, + {255, 254, 248, 94}, + {256, 263, 257, 248}, + {257, 256, 258, 248}, + {258, 257, 259, 248}, + {259, 258, 260, 248}, + {252, 259, 261, 248}, + {261, 260, 262, 248}, + {256, 261, 263, 248}, + {263, 262, 256, 248}, + {280, 271, 265, 103}, + {265, 264, 266, 103}, + {266, 265, 267, 103}, + {99, 266, 268, 103}, + {268, 267, 269, 103}, + {269, 268, 270, 103}, + {278, 269, 271, 103}, + {271, 270, 264, 103}, + {272, 279, 273, 270}, + {273, 272, 274, 270}, + {266, 273, 275, 270}, + {275, 274, 276, 270}, + {276, 275, 277, 270}, + {277, 276, 278, 270}, + {272, 277, 279, 270}, + {279, 278, 272, 270}, + {280, 287, 281, 264}, + {281, 280, 282, 264}, + {282, 281, 283, 264}, + {283, 282, 284, 264}, + {268, 283, 285, 264}, + {285, 284, 286, 264}, + {280, 285, 287, 264}, + {287, 286, 280, 264}, + {0, 288, 288, 288}, + {289, 289, 289, 107}, + { 0, 0, 0, 0}, + { 0, 0, 0, 0}, + { 0, 0, 0, 0}, + { 0, 0, 0, 0}, + { 0, 0, 0, 0}, + { 0, 0, 0, 0}, + { 0, 0, 0, 0}, + { 0, 0, 0, 0}, + { 0, 0, 0, 0}, + { 0, 0, 0, 0} +}; const uint8 MystScriptParser_Selenitic::_mazeRunnerVideos[300][4] = { - {3, 6, 10, 17}, - {0, 5, 8, 17}, - {0, 4, 8, 17}, - {0, 4, 8, 17}, - {0, 4, 8, 17}, - {0, 4, 8, 17}, - {0, 4, 8, 17}, - {0, 4, 9, 17}, - {0, 4, 8, 19}, - {0, 4, 8, 19}, - {0, 4, 8, 19}, - {0, 4, 9, 19}, - {3, 6, 10, 19}, - {0, 5, 9, 19}, - {3, 6, 10, 19}, - {0, 5, 8, 19}, - {12, 6, 10, 19}, - {0, 5, 9, 19}, - {3, 6, 10, 19}, - {0, 5, 8, 19}, - {0, 4, 8, 19}, - {0, 4, 8, 19}, - {0, 4, 8, 19}, - {0, 4, 9, 19}, - {14, 6, 10, 20}, - {0, 5, 9, 20}, - {13, 6, 10, 20}, - {0, 5, 9, 20}, - {12, 6, 10, 20}, - {0, 5, 8, 20}, - {0, 4, 8, 20}, - {0, 4, 9, 20}, - {12, 6, 10, 21}, - {0, 5, 9, 21}, - {3, 6, 10, 21}, - {0, 5, 8, 21}, - {12, 4, 8, 21}, - {0, 4, 9, 21}, - {13, 6, 10, 21}, - {0, 5, 9, 21}, - {0, 4, 9, 19}, - {16, 6, 10, 19}, - {0, 5, 8, 19}, - {0, 4, 9, 19}, - {12, 6, 10, 19}, - {0, 5, 9, 19}, - {3, 6, 10, 19}, - {0, 5, 8, 19}, - {3, 6, 10, 20}, - {0, 5, 9, 20}, - {13, 6, 10, 20}, - {0, 5, 9, 20}, - {14, 6, 10, 20}, - {0, 5, 8, 20}, - {0, 4, 8, 20}, - {0, 4, 9, 20}, - {14, 6, 10, 22}, - {0, 5, 8, 22}, - {0, 4, 9, 22}, - {3, 6, 10, 22}, - {0, 5, 8, 22}, - {0, 4, 9, 22}, - {16, 6, 10, 22}, - {0, 5, 9, 22}, - {15, 6, 10, 24}, - {0, 5, 8, 24}, - {0, 4, 8, 24}, - {0, 4, 8, 24}, - {0, 4, 9, 24}, - {14, 6, 10, 24}, - {0, 5, 8, 24}, - {0, 4, 9, 24}, - {0, 4, 9, 22}, - {14, 6, 11, 22}, - {12, 7, 10, 22}, - {0, 5, 9, 22}, - {13, 6, 10, 22}, - {0, 5, 9, 22}, - {3, 6, 10, 22}, - {0, 5, 8, 22}, - {0, 5, 8, 19}, - {0, 4, 9, 19}, - {3, 6, 10, 19}, - {0, 5, 9, 19}, - {14, 6, 11, 19}, - {3, 7, 10, 19}, - {0, 5, 9, 19}, - {14, 6, 10, 19}, - {0, 4, 9, 22}, - {3, 6, 10, 22}, - {0, 5, 9, 22}, - {14, 6, 10, 22}, - {0, 5, 8, 22}, - {0, 4, 9, 22}, - {3, 6, 10, 22}, - {0, 5, 8, 22}, - {15, 7, 10, 19}, - {0, 5, 8, 19}, - {0, 4, 8, 19}, - {0, 4, 8, 19}, - {0, 4, 9, 19}, - {3, 6, 10, 19}, - {0, 5, 9, 19}, - {14, 6, 11, 19}, - {0, 4, 8, 23}, - {0, 4, 8, 23}, - {0, 4, 9, 23}, - {2, 6, 10, 23}, - {0, 5, 8, 23}, - {0, 4, 9, 23}, - {16, 6, 10, 23}, - {0, 5, 8, 23}, - {0, 4, 8, 22}, - {0, 4, 8, 22}, - {0, 4, 8, 22}, - {0, 4, 9, 22}, - {14, 6, 10, 22}, - {0, 5, 8, 22}, - {0, 4, 8, 22}, - {0, 4, 8, 22}, - {0, 4, 8, 20}, - {0, 4, 8, 20}, - {0, 4, 8, 20}, - {0, 4, 9, 20}, - {12, 6, 10, 20}, - {0, 5, 8, 20}, - {0, 4, 8, 20}, - {0, 4, 8, 20}, - {0, 4, 8, 19}, - {0, 4, 8, 19}, - {0, 4, 8, 19}, - {0, 4, 9, 19}, - {3, 6, 10, 19}, - {0, 5, 8, 19}, - {0, 4, 8, 19}, - {0, 4, 8, 19}, - {3, 6, 10, 24}, - {0, 5, 8, 24}, - {0, 4, 9, 24}, - {15, 6, 10, 24}, - {0, 5, 8, 24}, - {0, 4, 8, 24}, - {0, 4, 8, 24}, - {0, 4, 9, 24}, - {0, 4, 8, 21}, - {0, 4, 8, 21}, - {0, 4, 8, 21}, - {0, 4, 8, 21}, - {0, 4, 9, 21}, - {3, 6, 11, 21}, - {13, 7, 10, 21}, - {0, 5, 8, 21}, - {0, 4, 9, 19}, - {3, 6, 10, 19}, - {0, 5, 8, 19}, - {0, 4, 8, 19}, - {0, 4, 8, 19}, - {0, 4, 8, 19}, - {0, 4, 8, 19}, - {0, 4, 8, 19}, - {0, 4, 8, 22}, - {0, 4, 8, 22}, - {0, 4, 8, 22}, - {0, 4, 9, 22}, - {14, 6, 10, 22}, - {0, 5, 8, 22}, - {0, 4, 8, 22}, - {0, 4, 8, 22}, - {14, 7, 10, 19}, - {0, 5, 8, 19}, - {0, 4, 8, 19}, - {0, 4, 8, 19}, - {0, 4, 9, 19}, - {3, 6, 10, 19}, - {0, 5, 9, 19}, - {3, 6, 11, 19}, - {0, 4, 9, 19}, - {3, 6, 10, 19}, - {0, 5, 8, 19}, - {0, 4, 8, 19}, - {0, 4, 8, 19}, - {0, 4, 8, 19}, - {0, 4, 8, 19}, - {0, 4, 8, 19}, - {0, 4, 8, 20}, - {0, 4, 8, 20}, - {0, 4, 8, 20}, - {0, 4, 8, 20}, - {0, 4, 8, 20}, - {0, 4, 9, 20}, - {12, 6, 10, 20}, - {0, 5, 8, 20}, - {13, 6, 10, 21}, - {0, 5, 8, 21}, - {0, 4, 8, 21}, - {0, 4, 8, 21}, - {0, 4, 8, 21}, - {0, 4, 8, 21}, - {0, 4, 8, 21}, - {0, 4, 9, 21}, - {0, 4, 8, 24}, - {0, 4, 8, 24}, - {0, 4, 8, 24}, - {0, 4, 8, 24}, - {0, 4, 8, 24}, - {0, 4, 9, 24}, - {15, 6, 10, 24}, - {0, 5, 8, 24}, - {14, 6, 10, 22}, - {0, 5, 8, 22}, - {0, 4, 8, 22}, - {0, 4, 9, 22}, - {16, 6, 10, 22}, - {0, 5, 8, 22}, - {0, 4, 8, 22}, - {0, 4, 9, 22}, - {12, 6, 10, 20}, - {0, 5, 8, 20}, - {0, 4, 8, 20}, - {0, 4, 8, 20}, - {0, 4, 8, 20}, - {0, 4, 8, 20}, - {0, 4, 8, 20}, - {0, 4, 9, 20}, - {0, 4, 9, 19}, - {3, 6, 10, 19}, - {0, 5, 8, 19}, - {0, 4, 9, 19}, - {12, 6, 10, 19}, - {0, 5, 9, 19}, - {3, 6, 10, 19}, - {0, 5, 8, 19}, - {0, 4, 8, 19}, - {0, 4, 9, 19}, - {3, 6, 10, 19}, - {0, 5, 8, 19}, - {0, 4, 8, 19}, - {0, 4, 8, 19}, - {0, 4, 8, 19}, - {0, 4, 8, 19}, - {0, 4, 8, 23}, - {0, 4, 9, 23}, - {16, 6, 10, 23}, - {0, 5, 8, 23}, - {0, 4, 8, 23}, - {0, 4, 8, 23}, - {0, 4, 8, 23}, - {0, 4, 8, 23}, - {14, 6, 10, 19}, - {0, 5, 9, 19}, - {3, 6, 10, 19}, - {0, 5, 9, 19}, - {15, 6, 10, 19}, - {0, 5, 8, 19}, - {0, 4, 8, 19}, - {0, 4, 9, 19}, - {0, 4, 8, 22}, - {0, 4, 8, 22}, - {0, 4, 8, 22}, - {0, 4, 9, 22}, - {14, 6, 10, 22}, - {0, 5, 8, 22}, - {0, 4, 8, 22}, - {0, 4, 8, 22}, - {3, 6, 10, 22}, - {0, 5, 8, 22}, - {0, 4, 9, 22}, - {14, 6, 10, 22}, - {0, 5, 8, 22}, - {0, 4, 9, 22}, - {13, 6, 10, 22}, - {0, 5, 9, 22}, - {0, 4, 8, 21}, - {0, 4, 9, 21}, - {12, 6, 10, 21}, - {0, 5, 8, 21}, - {0, 4, 8, 21}, - {0, 4, 8, 21}, - {0, 4, 8, 21}, - {0, 4, 8, 21}, - {0, 4, 8, 19}, - {0, 4, 8, 19}, - {0, 4, 8, 19}, - {0, 4, 9, 19}, - {3, 6, 10, 19}, - {0, 5, 8, 19}, - {0, 4, 8, 19}, - {0, 4, 8, 19}, - {1, 0, 0, 0}, - {0, 0, 0, 18}, - {0, 0, 0, 0}, - {0, 0, 0, 0}, - {0, 0, 0, 0}, - {0, 0, 0, 0}, - {0, 0, 0, 0}, - {0, 0, 0, 0}, - {0, 0, 0, 0}, - {0, 0, 0, 0}, - {0, 0, 0, 0}, - {0, 0, 0, 0} - }; + {3, 6, 10, 17}, + {0, 5, 8, 17}, + {0, 4, 8, 17}, + {0, 4, 8, 17}, + {0, 4, 8, 17}, + {0, 4, 8, 17}, + {0, 4, 8, 17}, + {0, 4, 9, 17}, + {0, 4, 8, 19}, + {0, 4, 8, 19}, + {0, 4, 8, 19}, + {0, 4, 9, 19}, + {3, 6, 10, 19}, + {0, 5, 9, 19}, + {3, 6, 10, 19}, + {0, 5, 8, 19}, + {12, 6, 10, 19}, + {0, 5, 9, 19}, + {3, 6, 10, 19}, + {0, 5, 8, 19}, + {0, 4, 8, 19}, + {0, 4, 8, 19}, + {0, 4, 8, 19}, + {0, 4, 9, 19}, + {14, 6, 10, 20}, + {0, 5, 9, 20}, + {13, 6, 10, 20}, + {0, 5, 9, 20}, + {12, 6, 10, 20}, + {0, 5, 8, 20}, + {0, 4, 8, 20}, + {0, 4, 9, 20}, + {12, 6, 10, 21}, + {0, 5, 9, 21}, + {3, 6, 10, 21}, + {0, 5, 8, 21}, + {12, 4, 8, 21}, + {0, 4, 9, 21}, + {13, 6, 10, 21}, + {0, 5, 9, 21}, + {0, 4, 9, 19}, + {16, 6, 10, 19}, + {0, 5, 8, 19}, + {0, 4, 9, 19}, + {12, 6, 10, 19}, + {0, 5, 9, 19}, + {3, 6, 10, 19}, + {0, 5, 8, 19}, + {3, 6, 10, 20}, + {0, 5, 9, 20}, + {13, 6, 10, 20}, + {0, 5, 9, 20}, + {14, 6, 10, 20}, + {0, 5, 8, 20}, + {0, 4, 8, 20}, + {0, 4, 9, 20}, + {14, 6, 10, 22}, + {0, 5, 8, 22}, + {0, 4, 9, 22}, + {3, 6, 10, 22}, + {0, 5, 8, 22}, + {0, 4, 9, 22}, + {16, 6, 10, 22}, + {0, 5, 9, 22}, + {15, 6, 10, 24}, + {0, 5, 8, 24}, + {0, 4, 8, 24}, + {0, 4, 8, 24}, + {0, 4, 9, 24}, + {14, 6, 10, 24}, + {0, 5, 8, 24}, + {0, 4, 9, 24}, + {0, 4, 9, 22}, + {14, 6, 11, 22}, + {12, 7, 10, 22}, + {0, 5, 9, 22}, + {13, 6, 10, 22}, + {0, 5, 9, 22}, + {3, 6, 10, 22}, + {0, 5, 8, 22}, + {0, 5, 8, 19}, + {0, 4, 9, 19}, + {3, 6, 10, 19}, + {0, 5, 9, 19}, + {14, 6, 11, 19}, + {3, 7, 10, 19}, + {0, 5, 9, 19}, + {14, 6, 10, 19}, + {0, 4, 9, 22}, + {3, 6, 10, 22}, + {0, 5, 9, 22}, + {14, 6, 10, 22}, + {0, 5, 8, 22}, + {0, 4, 9, 22}, + {3, 6, 10, 22}, + {0, 5, 8, 22}, + {15, 7, 10, 19}, + {0, 5, 8, 19}, + {0, 4, 8, 19}, + {0, 4, 8, 19}, + {0, 4, 9, 19}, + {3, 6, 10, 19}, + {0, 5, 9, 19}, + {14, 6, 11, 19}, + {0, 4, 8, 23}, + {0, 4, 8, 23}, + {0, 4, 9, 23}, + {2, 6, 10, 23}, + {0, 5, 8, 23}, + {0, 4, 9, 23}, + {16, 6, 10, 23}, + {0, 5, 8, 23}, + {0, 4, 8, 22}, + {0, 4, 8, 22}, + {0, 4, 8, 22}, + {0, 4, 9, 22}, + {14, 6, 10, 22}, + {0, 5, 8, 22}, + {0, 4, 8, 22}, + {0, 4, 8, 22}, + {0, 4, 8, 20}, + {0, 4, 8, 20}, + {0, 4, 8, 20}, + {0, 4, 9, 20}, + {12, 6, 10, 20}, + {0, 5, 8, 20}, + {0, 4, 8, 20}, + {0, 4, 8, 20}, + {0, 4, 8, 19}, + {0, 4, 8, 19}, + {0, 4, 8, 19}, + {0, 4, 9, 19}, + {3, 6, 10, 19}, + {0, 5, 8, 19}, + {0, 4, 8, 19}, + {0, 4, 8, 19}, + {3, 6, 10, 24}, + {0, 5, 8, 24}, + {0, 4, 9, 24}, + {15, 6, 10, 24}, + {0, 5, 8, 24}, + {0, 4, 8, 24}, + {0, 4, 8, 24}, + {0, 4, 9, 24}, + {0, 4, 8, 21}, + {0, 4, 8, 21}, + {0, 4, 8, 21}, + {0, 4, 8, 21}, + {0, 4, 9, 21}, + {3, 6, 11, 21}, + {13, 7, 10, 21}, + {0, 5, 8, 21}, + {0, 4, 9, 19}, + {3, 6, 10, 19}, + {0, 5, 8, 19}, + {0, 4, 8, 19}, + {0, 4, 8, 19}, + {0, 4, 8, 19}, + {0, 4, 8, 19}, + {0, 4, 8, 19}, + {0, 4, 8, 22}, + {0, 4, 8, 22}, + {0, 4, 8, 22}, + {0, 4, 9, 22}, + {14, 6, 10, 22}, + {0, 5, 8, 22}, + {0, 4, 8, 22}, + {0, 4, 8, 22}, + {14, 7, 10, 19}, + {0, 5, 8, 19}, + {0, 4, 8, 19}, + {0, 4, 8, 19}, + {0, 4, 9, 19}, + {3, 6, 10, 19}, + {0, 5, 9, 19}, + {3, 6, 11, 19}, + {0, 4, 9, 19}, + {3, 6, 10, 19}, + {0, 5, 8, 19}, + {0, 4, 8, 19}, + {0, 4, 8, 19}, + {0, 4, 8, 19}, + {0, 4, 8, 19}, + {0, 4, 8, 19}, + {0, 4, 8, 20}, + {0, 4, 8, 20}, + {0, 4, 8, 20}, + {0, 4, 8, 20}, + {0, 4, 8, 20}, + {0, 4, 9, 20}, + {12, 6, 10, 20}, + {0, 5, 8, 20}, + {13, 6, 10, 21}, + {0, 5, 8, 21}, + {0, 4, 8, 21}, + {0, 4, 8, 21}, + {0, 4, 8, 21}, + {0, 4, 8, 21}, + {0, 4, 8, 21}, + {0, 4, 9, 21}, + {0, 4, 8, 24}, + {0, 4, 8, 24}, + {0, 4, 8, 24}, + {0, 4, 8, 24}, + {0, 4, 8, 24}, + {0, 4, 9, 24}, + {15, 6, 10, 24}, + {0, 5, 8, 24}, + {14, 6, 10, 22}, + {0, 5, 8, 22}, + {0, 4, 8, 22}, + {0, 4, 9, 22}, + {16, 6, 10, 22}, + {0, 5, 8, 22}, + {0, 4, 8, 22}, + {0, 4, 9, 22}, + {12, 6, 10, 20}, + {0, 5, 8, 20}, + {0, 4, 8, 20}, + {0, 4, 8, 20}, + {0, 4, 8, 20}, + {0, 4, 8, 20}, + {0, 4, 8, 20}, + {0, 4, 9, 20}, + {0, 4, 9, 19}, + {3, 6, 10, 19}, + {0, 5, 8, 19}, + {0, 4, 9, 19}, + {12, 6, 10, 19}, + {0, 5, 9, 19}, + {3, 6, 10, 19}, + {0, 5, 8, 19}, + {0, 4, 8, 19}, + {0, 4, 9, 19}, + {3, 6, 10, 19}, + {0, 5, 8, 19}, + {0, 4, 8, 19}, + {0, 4, 8, 19}, + {0, 4, 8, 19}, + {0, 4, 8, 19}, + {0, 4, 8, 23}, + {0, 4, 9, 23}, + {16, 6, 10, 23}, + {0, 5, 8, 23}, + {0, 4, 8, 23}, + {0, 4, 8, 23}, + {0, 4, 8, 23}, + {0, 4, 8, 23}, + {14, 6, 10, 19}, + {0, 5, 9, 19}, + {3, 6, 10, 19}, + {0, 5, 9, 19}, + {15, 6, 10, 19}, + {0, 5, 8, 19}, + {0, 4, 8, 19}, + {0, 4, 9, 19}, + {0, 4, 8, 22}, + {0, 4, 8, 22}, + {0, 4, 8, 22}, + {0, 4, 9, 22}, + {14, 6, 10, 22}, + {0, 5, 8, 22}, + {0, 4, 8, 22}, + {0, 4, 8, 22}, + {3, 6, 10, 22}, + {0, 5, 8, 22}, + {0, 4, 9, 22}, + {14, 6, 10, 22}, + {0, 5, 8, 22}, + {0, 4, 9, 22}, + {13, 6, 10, 22}, + {0, 5, 9, 22}, + {0, 4, 8, 21}, + {0, 4, 9, 21}, + {12, 6, 10, 21}, + {0, 5, 8, 21}, + {0, 4, 8, 21}, + {0, 4, 8, 21}, + {0, 4, 8, 21}, + {0, 4, 8, 21}, + {0, 4, 8, 19}, + {0, 4, 8, 19}, + {0, 4, 8, 19}, + {0, 4, 9, 19}, + {3, 6, 10, 19}, + {0, 5, 8, 19}, + {0, 4, 8, 19}, + {0, 4, 8, 19}, + {1, 0, 0, 0}, + {0, 0, 0, 18}, + {0, 0, 0, 0}, + {0, 0, 0, 0}, + {0, 0, 0, 0}, + {0, 0, 0, 0}, + {0, 0, 0, 0}, + {0, 0, 0, 0}, + {0, 0, 0, 0}, + {0, 0, 0, 0}, + {0, 0, 0, 0}, + {0, 0, 0, 0} +}; + } // End of namespace Mohawk |