aboutsummaryrefslogtreecommitdiff
path: root/engines/mohawk/myst_stacks/myst.h
diff options
context:
space:
mode:
authorBastien Bouclet2011-01-15 19:11:53 +0000
committerBastien Bouclet2011-01-15 19:11:53 +0000
commit09c35e99b8d06a883eeab10a4f3955c0a3777973 (patch)
treead23150e1ffea66a8cefa849d183b8975bfcb89f /engines/mohawk/myst_stacks/myst.h
parent295550b26c2261f371bc86950ec768b1ef460fbd (diff)
downloadscummvm-rg350-09c35e99b8d06a883eeab10a4f3955c0a3777973.tar.gz
scummvm-rg350-09c35e99b8d06a883eeab10a4f3955c0a3777973.tar.bz2
scummvm-rg350-09c35e99b8d06a883eeab10a4f3955c0a3777973.zip
MOHAWK: Implement Myst's clock tower gears puzzle
svn-id: r55253
Diffstat (limited to 'engines/mohawk/myst_stacks/myst.h')
-rw-r--r--engines/mohawk/myst_stacks/myst.h24
1 files changed, 23 insertions, 1 deletions
diff --git a/engines/mohawk/myst_stacks/myst.h b/engines/mohawk/myst_stacks/myst.h
index cbb81b2e07..1e70b9aaf2 100644
--- a/engines/mohawk/myst_stacks/myst.h
+++ b/engines/mohawk/myst_stacks/myst.h
@@ -71,6 +71,7 @@ private:
void observatoryYearChange_run();
void observatoryTimeChange_run();
void greenBook_run();
+ void clockGears_run();
DECLARE_OPCODE(o_libraryBookPageTurnLeft);
DECLARE_OPCODE(o_libraryBookPageTurnRight);
@@ -139,6 +140,13 @@ private:
DECLARE_OPCODE(o_clockMinuteWheelStartTurn);
DECLARE_OPCODE(o_clockWheelEndTurn);
DECLARE_OPCODE(o_clockHourWheelStartTurn);
+ DECLARE_OPCODE(o_clockLeverStartMove);
+ DECLARE_OPCODE(o_clockLeverMove);
+ DECLARE_OPCODE(o_clockLeverEndMove);
+ DECLARE_OPCODE(o_clockResetLeverStartMove);
+ DECLARE_OPCODE(o_clockResetLeverMove);
+ DECLARE_OPCODE(o_clockResetLeverEndMove);
+
DECLARE_OPCODE(o_libraryCombinationBookStartRight);
DECLARE_OPCODE(o_libraryCombinationBookStartLeft);
DECLARE_OPCODE(o_observatoryTimeChangeStart);
@@ -157,7 +165,7 @@ private:
DECLARE_OPCODE(o_libraryBookcaseTransform_init);
DECLARE_OPCODE(o_generatorControlRoom_init);
DECLARE_OPCODE(o_fireplace_init);
- DECLARE_OPCODE(opcode_212);
+ DECLARE_OPCODE(o_clockGears_init);
DECLARE_OPCODE(opcode_213);
DECLARE_OPCODE(o_observatory_init);
DECLARE_OPCODE(opcode_215);
@@ -216,6 +224,13 @@ private:
uint16 _clockTurningWheel;
+ VideoHandle _clockGearsVideos[3]; // 148 to 156
+ VideoHandle _clockWeightVideo; // 160
+ uint16 _clockGearsPositions[3]; // 164 to 168
+ uint16 _clockWeightPosition; // 172
+ bool _clockMiddleGearMovedAlone; // 176
+ bool _clockLeverPulled; // 328
+
uint16 _dockVaultState; // 92
bool _towerRotationMapRunning;
@@ -279,6 +294,13 @@ private:
void clockWheelStartTurn(uint16 wheel);
void clockWheelTurn(uint16 var);
+ void clockGearForwardOneStep(uint16 gear);
+ void clockWeightDownOneStep();
+ void clockGearsCheckSolution();
+ void clockReset();
+ void clockResetWeight();
+ void clockResetGear(uint16 gear);
+
void towerRotationMapRotate();
void towerRotationDrawBuildings();
uint16 towerRotationMapComputeAngle();