aboutsummaryrefslogtreecommitdiff
path: root/engines/mohawk/myst_stacks
diff options
context:
space:
mode:
authorBastien Bouclet2017-07-22 13:53:32 +0200
committerBastien Bouclet2017-07-22 20:38:56 +0200
commit757459bd49d9c2aeae1b346d58c033891f668875 (patch)
treed514541e35111539b6d5d43bc7a50baf15bd9652 /engines/mohawk/myst_stacks
parenta99397f12667657d2c360695d7243f8541c1cdf3 (diff)
downloadscummvm-rg350-757459bd49d9c2aeae1b346d58c033891f668875.tar.gz
scummvm-rg350-757459bd49d9c2aeae1b346d58c033891f668875.tar.bz2
scummvm-rg350-757459bd49d9c2aeae1b346d58c033891f668875.zip
MOHAWK: Myst: Don't cast function pointers when registering commands
Diffstat (limited to 'engines/mohawk/myst_stacks')
-rw-r--r--engines/mohawk/myst_stacks/channelwood.cpp70
-rw-r--r--engines/mohawk/myst_stacks/credits.cpp8
-rw-r--r--engines/mohawk/myst_stacks/demo.cpp21
-rw-r--r--engines/mohawk/myst_stacks/dni.cpp12
-rw-r--r--engines/mohawk/myst_stacks/intro.cpp12
-rw-r--r--engines/mohawk/myst_stacks/makingof.cpp6
-rw-r--r--engines/mohawk/myst_stacks/mechanical.cpp88
-rw-r--r--engines/mohawk/myst_stacks/myst.cpp270
-rw-r--r--engines/mohawk/myst_stacks/preview.cpp27
-rw-r--r--engines/mohawk/myst_stacks/selenitic.cpp54
-rw-r--r--engines/mohawk/myst_stacks/slides.cpp8
-rw-r--r--engines/mohawk/myst_stacks/stoneship.cpp76
12 files changed, 293 insertions, 359 deletions
diff --git a/engines/mohawk/myst_stacks/channelwood.cpp b/engines/mohawk/myst_stacks/channelwood.cpp
index 208275d851..4777e92899 100644
--- a/engines/mohawk/myst_stacks/channelwood.cpp
+++ b/engines/mohawk/myst_stacks/channelwood.cpp
@@ -44,51 +44,47 @@ Channelwood::Channelwood(MohawkEngine_Myst *vm) :
Channelwood::~Channelwood() {
}
-#define OPCODE(op, x) _opcodes.push_back(new MystOpcode(op, (OpcodeProcMyst) &Channelwood::x, #x))
-
void Channelwood::setupOpcodes() {
// "Stack-Specific" Opcodes
- OPCODE(100, o_bridgeToggle);
- OPCODE(101, o_pipeExtend);
- OPCODE(102, o_drawImageChangeCardAndVolume);
- OPCODE(104, o_waterTankValveOpen);
- OPCODE(105, o_leverStartMove);
- OPCODE(106, o_leverEndMove);
- OPCODE(107, o_leverMoveFail);
- OPCODE(108, o_leverMove);
- OPCODE(109, o_stairsDoorToggle);
- OPCODE(110, o_valveHandleMove1);
- OPCODE(111, o_valveHandleMoveStart1);
- OPCODE(112, o_valveHandleMoveStop);
- OPCODE(113, o_valveHandleMove2);
- OPCODE(114, o_valveHandleMoveStart2);
- OPCODE(115, o_valveHandleMove3);
- OPCODE(116, o_valveHandleMoveStart3);
- OPCODE(117, o_hologramMonitor);
- OPCODE(118, o_drawerOpen);
- OPCODE(119, o_hologramTemple);
- OPCODE(120, o_leverElev3StartMove);
- OPCODE(121, o_leverElev3EndMove);
- OPCODE(122, o_waterTankValveClose);
- OPCODE(123, o_executeMouseUp);
- OPCODE(124, o_leverEndMoveWithSound);
- OPCODE(125, o_pumpLeverMove);
- OPCODE(126, o_pumpLeverEndMove);
- OPCODE(127, o_elevatorMovies);
- OPCODE(128, o_leverEndMoveResumeBackground);
- OPCODE(129, o_soundReplace);
+ REGISTER_OPCODE(100, Channelwood, o_bridgeToggle);
+ REGISTER_OPCODE(101, Channelwood, o_pipeExtend);
+ REGISTER_OPCODE(102, Channelwood, o_drawImageChangeCardAndVolume);
+ REGISTER_OPCODE(104, Channelwood, o_waterTankValveOpen);
+ REGISTER_OPCODE(105, Channelwood, o_leverStartMove);
+ REGISTER_OPCODE(106, Channelwood, o_leverEndMove);
+ REGISTER_OPCODE(107, Channelwood, o_leverMoveFail);
+ REGISTER_OPCODE(108, Channelwood, o_leverMove);
+ REGISTER_OPCODE(109, Channelwood, o_stairsDoorToggle);
+ REGISTER_OPCODE(110, Channelwood, o_valveHandleMove1);
+ REGISTER_OPCODE(111, Channelwood, o_valveHandleMoveStart1);
+ REGISTER_OPCODE(112, Channelwood, o_valveHandleMoveStop);
+ REGISTER_OPCODE(113, Channelwood, o_valveHandleMove2);
+ REGISTER_OPCODE(114, Channelwood, o_valveHandleMoveStart2);
+ REGISTER_OPCODE(115, Channelwood, o_valveHandleMove3);
+ REGISTER_OPCODE(116, Channelwood, o_valveHandleMoveStart3);
+ REGISTER_OPCODE(117, Channelwood, o_hologramMonitor);
+ REGISTER_OPCODE(118, Channelwood, o_drawerOpen);
+ REGISTER_OPCODE(119, Channelwood, o_hologramTemple);
+ REGISTER_OPCODE(120, Channelwood, o_leverElev3StartMove);
+ REGISTER_OPCODE(121, Channelwood, o_leverElev3EndMove);
+ REGISTER_OPCODE(122, Channelwood, o_waterTankValveClose);
+ REGISTER_OPCODE(123, Channelwood, o_executeMouseUp);
+ REGISTER_OPCODE(124, Channelwood, o_leverEndMoveWithSound);
+ REGISTER_OPCODE(125, Channelwood, o_pumpLeverMove);
+ REGISTER_OPCODE(126, Channelwood, o_pumpLeverEndMove);
+ REGISTER_OPCODE(127, Channelwood, o_elevatorMovies);
+ REGISTER_OPCODE(128, Channelwood, o_leverEndMoveResumeBackground);
+ REGISTER_OPCODE(129, Channelwood, o_soundReplace);
// "Init" Opcodes
- OPCODE(201, o_lever_init);
- OPCODE(202, o_pipeValve_init);
- OPCODE(203, o_drawer_init);
+ REGISTER_OPCODE(201, Channelwood, o_lever_init);
+ REGISTER_OPCODE(202, Channelwood, o_pipeValve_init);
+ REGISTER_OPCODE(203, Channelwood, o_drawer_init);
// "Exit" Opcodes
- OPCODE(300, NOP);
+ REGISTER_OPCODE(300, Channelwood, NOP);
}
-#undef OPCODE
-
void Channelwood::disablePersistentScripts() {
}
diff --git a/engines/mohawk/myst_stacks/credits.cpp b/engines/mohawk/myst_stacks/credits.cpp
index 752e624c68..ba49ac2201 100644
--- a/engines/mohawk/myst_stacks/credits.cpp
+++ b/engines/mohawk/myst_stacks/credits.cpp
@@ -42,18 +42,14 @@ Credits::Credits(MohawkEngine_Myst *vm) : MystScriptParser(vm) {
Credits::~Credits() {
}
-#define OPCODE(op, x) _opcodes.push_back(new MystOpcode(op, (OpcodeProcMyst) &Credits::x, #x))
-
void Credits::setupOpcodes() {
// "Stack-Specific" Opcodes
- OPCODE(100, o_quit);
+ REGISTER_OPCODE(100, Credits, o_quit);
// "Init" Opcodes
- OPCODE(200, o_runCredits);
+ REGISTER_OPCODE(200, Credits, o_runCredits);
}
-#undef OPCODE
-
void Credits::disablePersistentScripts() {
_creditsRunning = false;
}
diff --git a/engines/mohawk/myst_stacks/demo.cpp b/engines/mohawk/myst_stacks/demo.cpp
index 92c1dc7631..7ae55686c5 100644
--- a/engines/mohawk/myst_stacks/demo.cpp
+++ b/engines/mohawk/myst_stacks/demo.cpp
@@ -39,29 +39,16 @@ Demo::Demo(MohawkEngine_Myst *vm) : Intro(vm) {
Demo::~Demo() {
}
-#define OPCODE(op, x) _opcodes.push_back(new MystOpcode(op, (OpcodeProcMyst) &Demo::x, #x))
-
-#define OVERRIDE_OPCODE(opcode, x) \
- for (uint32 i = 0; i < _opcodes.size(); i++) \
- if (_opcodes[i]->op == opcode) { \
- _opcodes[i]->proc = (OpcodeProcMyst) &Demo::x; \
- _opcodes[i]->desc = #x; \
- break; \
- }
-
void Demo::setupOpcodes() {
// "Stack-Specific" Opcodes
- OVERRIDE_OPCODE(100, o_stopIntro);
- OPCODE(101, o_fadeFromBlack);
- OPCODE(102, o_fadeToBlack);
+ OVERRIDE_OPCODE(100, Demo, o_stopIntro);
+ REGISTER_OPCODE(101, Demo, o_fadeFromBlack);
+ REGISTER_OPCODE(102, Demo, o_fadeToBlack);
// "Init" Opcodes
- OVERRIDE_OPCODE(201, o_returnToMenu_init);
+ OVERRIDE_OPCODE(201, Demo, o_returnToMenu_init);
}
-#undef OPCODE
-#undef OVERRIDE_OPCODE
-
void Demo::disablePersistentScripts() {
Intro::disablePersistentScripts();
diff --git a/engines/mohawk/myst_stacks/dni.cpp b/engines/mohawk/myst_stacks/dni.cpp
index b0b485b3cc..c668a8c37e 100644
--- a/engines/mohawk/myst_stacks/dni.cpp
+++ b/engines/mohawk/myst_stacks/dni.cpp
@@ -42,22 +42,18 @@ Dni::Dni(MohawkEngine_Myst *vm) :
Dni::~Dni() {
}
-#define OPCODE(op, x) _opcodes.push_back(new MystOpcode(op, (OpcodeProcMyst) &Dni::x, #x))
-
void Dni::setupOpcodes() {
// "Stack-Specific" Opcodes
- OPCODE(100, NOP);
- OPCODE(101, o_handPage);
+ REGISTER_OPCODE(100, Dni, NOP);
+ REGISTER_OPCODE(101, Dni, o_handPage);
// "Init" Opcodes
- OPCODE(200, o_atrus_init);
+ REGISTER_OPCODE(200, Dni, o_atrus_init);
// "Exit" Opcodes
- OPCODE(300, NOP);
+ REGISTER_OPCODE(300, Dni, NOP);
}
-#undef OPCODE
-
void Dni::disablePersistentScripts() {
_atrusRunning = false;
_waitForLoop = false;
diff --git a/engines/mohawk/myst_stacks/intro.cpp b/engines/mohawk/myst_stacks/intro.cpp
index c4cd2096c4..b77fa0851d 100644
--- a/engines/mohawk/myst_stacks/intro.cpp
+++ b/engines/mohawk/myst_stacks/intro.cpp
@@ -38,22 +38,18 @@ Intro::Intro(MohawkEngine_Myst *vm) : MystScriptParser(vm) {
Intro::~Intro() {
}
-#define OPCODE(op, x) _opcodes.push_back(new MystOpcode(op, (OpcodeProcMyst) &Intro::x, #x))
-
void Intro::setupOpcodes() {
// "Stack-Specific" Opcodes
- OPCODE(100, o_useLinkBook);
+ REGISTER_OPCODE(100, Intro, o_useLinkBook);
// "Init" Opcodes
- OPCODE(200, o_playIntroMovies);
- OPCODE(201, o_mystLinkBook_init);
+ REGISTER_OPCODE(200, Intro, o_playIntroMovies);
+ REGISTER_OPCODE(201, Intro, o_mystLinkBook_init);
// "Exit" Opcodes
- OPCODE(300, NOP);
+ REGISTER_OPCODE(300, Intro, NOP);
}
-#undef OPCODE
-
void Intro::disablePersistentScripts() {
_introMoviesRunning = false;
_linkBookRunning = false;
diff --git a/engines/mohawk/myst_stacks/makingof.cpp b/engines/mohawk/myst_stacks/makingof.cpp
index a0a1f359ba..2907c53231 100644
--- a/engines/mohawk/myst_stacks/makingof.cpp
+++ b/engines/mohawk/myst_stacks/makingof.cpp
@@ -37,15 +37,11 @@ MakingOf::MakingOf(MohawkEngine_Myst *vm) : MystScriptParser(vm) {
MakingOf::~MakingOf() {
}
-#define OPCODE(op, x) _opcodes.push_back(new MystOpcode(op, (OpcodeProcMyst) &MakingOf::x, #x))
-
void MakingOf::setupOpcodes() {
// "Stack-Specific" Opcodes
- OPCODE(100, o_quit);
+ REGISTER_OPCODE(100, MakingOf, o_quit);
}
-#undef OPCODE
-
void MakingOf::disablePersistentScripts() {
}
diff --git a/engines/mohawk/myst_stacks/mechanical.cpp b/engines/mohawk/myst_stacks/mechanical.cpp
index fb109acc17..0f07e8be29 100644
--- a/engines/mohawk/myst_stacks/mechanical.cpp
+++ b/engines/mohawk/myst_stacks/mechanical.cpp
@@ -58,60 +58,56 @@ Mechanical::Mechanical(MohawkEngine_Myst *vm) :
Mechanical::~Mechanical() {
}
-#define OPCODE(op, x) _opcodes.push_back(new MystOpcode(op, (OpcodeProcMyst) &Mechanical::x, #x))
-
void Mechanical::setupOpcodes() {
// "Stack-Specific" Opcodes
- OPCODE(100, o_throneEnablePassage);
- OPCODE(101, o_birdCrankStart);
- OPCODE(102, NOP);
- OPCODE(103, o_birdCrankStop);
- OPCODE(104, o_snakeBoxTrigger);
- OPCODE(105, o_fortressStaircaseMovie);
- OPCODE(106, o_elevatorRotationStart);
- OPCODE(107, o_elevatorRotationMove);
- OPCODE(108, o_elevatorRotationStop);
- OPCODE(109, o_fortressRotationSpeedStart);
- OPCODE(110, o_fortressRotationSpeedMove);
- OPCODE(111, o_fortressRotationSpeedStop);
- OPCODE(112, o_fortressRotationBrakeStart);
- OPCODE(113, o_fortressRotationBrakeMove);
- OPCODE(114, o_fortressRotationBrakeStop);
- OPCODE(115, o_fortressSimulationSpeedStart);
- OPCODE(116, o_fortressSimulationSpeedMove);
- OPCODE(117, o_fortressSimulationSpeedStop);
- OPCODE(118, o_fortressSimulationBrakeStart);
- OPCODE(119, o_fortressSimulationBrakeMove);
- OPCODE(120, o_fortressSimulationBrakeStop);
- OPCODE(121, o_elevatorWindowMovie);
- OPCODE(122, o_elevatorGoMiddle);
- OPCODE(123, o_elevatorTopMovie);
- OPCODE(124, o_fortressRotationSetPosition);
- OPCODE(125, o_mystStaircaseMovie);
- OPCODE(126, o_elevatorWaitTimeout);
- OPCODE(127, o_crystalEnterYellow);
- OPCODE(128, o_crystalLeaveYellow);
- OPCODE(129, o_crystalEnterGreen);
- OPCODE(130, o_crystalLeaveGreen);
- OPCODE(131, o_crystalEnterRed);
- OPCODE(132, o_crystalLeaveRed);
+ REGISTER_OPCODE(100, Mechanical, o_throneEnablePassage);
+ REGISTER_OPCODE(101, Mechanical, o_birdCrankStart);
+ REGISTER_OPCODE(102, Mechanical, NOP);
+ REGISTER_OPCODE(103, Mechanical, o_birdCrankStop);
+ REGISTER_OPCODE(104, Mechanical, o_snakeBoxTrigger);
+ REGISTER_OPCODE(105, Mechanical, o_fortressStaircaseMovie);
+ REGISTER_OPCODE(106, Mechanical, o_elevatorRotationStart);
+ REGISTER_OPCODE(107, Mechanical, o_elevatorRotationMove);
+ REGISTER_OPCODE(108, Mechanical, o_elevatorRotationStop);
+ REGISTER_OPCODE(109, Mechanical, o_fortressRotationSpeedStart);
+ REGISTER_OPCODE(110, Mechanical, o_fortressRotationSpeedMove);
+ REGISTER_OPCODE(111, Mechanical, o_fortressRotationSpeedStop);
+ REGISTER_OPCODE(112, Mechanical, o_fortressRotationBrakeStart);
+ REGISTER_OPCODE(113, Mechanical, o_fortressRotationBrakeMove);
+ REGISTER_OPCODE(114, Mechanical, o_fortressRotationBrakeStop);
+ REGISTER_OPCODE(115, Mechanical, o_fortressSimulationSpeedStart);
+ REGISTER_OPCODE(116, Mechanical, o_fortressSimulationSpeedMove);
+ REGISTER_OPCODE(117, Mechanical, o_fortressSimulationSpeedStop);
+ REGISTER_OPCODE(118, Mechanical, o_fortressSimulationBrakeStart);
+ REGISTER_OPCODE(119, Mechanical, o_fortressSimulationBrakeMove);
+ REGISTER_OPCODE(120, Mechanical, o_fortressSimulationBrakeStop);
+ REGISTER_OPCODE(121, Mechanical, o_elevatorWindowMovie);
+ REGISTER_OPCODE(122, Mechanical, o_elevatorGoMiddle);
+ REGISTER_OPCODE(123, Mechanical, o_elevatorTopMovie);
+ REGISTER_OPCODE(124, Mechanical, o_fortressRotationSetPosition);
+ REGISTER_OPCODE(125, Mechanical, o_mystStaircaseMovie);
+ REGISTER_OPCODE(126, Mechanical, o_elevatorWaitTimeout);
+ REGISTER_OPCODE(127, Mechanical, o_crystalEnterYellow);
+ REGISTER_OPCODE(128, Mechanical, o_crystalLeaveYellow);
+ REGISTER_OPCODE(129, Mechanical, o_crystalEnterGreen);
+ REGISTER_OPCODE(130, Mechanical, o_crystalLeaveGreen);
+ REGISTER_OPCODE(131, Mechanical, o_crystalEnterRed);
+ REGISTER_OPCODE(132, Mechanical, o_crystalLeaveRed);
// "Init" Opcodes
- OPCODE(200, o_throne_init);
- OPCODE(201, o_fortressStaircase_init);
- OPCODE(202, o_bird_init);
- OPCODE(203, o_snakeBox_init);
- OPCODE(204, o_elevatorRotation_init);
- OPCODE(205, o_fortressRotation_init);
- OPCODE(206, o_fortressSimulation_init);
- OPCODE(209, o_fortressSimulationStartup_init);
+ REGISTER_OPCODE(200, Mechanical, o_throne_init);
+ REGISTER_OPCODE(201, Mechanical, o_fortressStaircase_init);
+ REGISTER_OPCODE(202, Mechanical, o_bird_init);
+ REGISTER_OPCODE(203, Mechanical, o_snakeBox_init);
+ REGISTER_OPCODE(204, Mechanical, o_elevatorRotation_init);
+ REGISTER_OPCODE(205, Mechanical, o_fortressRotation_init);
+ REGISTER_OPCODE(206, Mechanical, o_fortressSimulation_init);
+ REGISTER_OPCODE(209, Mechanical, o_fortressSimulationStartup_init);
// "Exit" Opcodes
- OPCODE(300, NOP);
+ REGISTER_OPCODE(300, Mechanical, NOP);
}
-#undef OPCODE
-
void Mechanical::disablePersistentScripts() {
_fortressSimulationRunning = false;
_elevatorRotationLeverMoving = false;
diff --git a/engines/mohawk/myst_stacks/myst.cpp b/engines/mohawk/myst_stacks/myst.cpp
index 1a6fc3e8bf..8bf759666f 100644
--- a/engines/mohawk/myst_stacks/myst.cpp
+++ b/engines/mohawk/myst_stacks/myst.cpp
@@ -66,151 +66,147 @@ Myst::Myst(MohawkEngine_Myst *vm) :
Myst::~Myst() {
}
-#define OPCODE(op, x) _opcodes.push_back(new MystOpcode(op, (OpcodeProcMyst) &Myst::x, #x))
-
void Myst::setupOpcodes() {
// "Stack-Specific" Opcodes
- OPCODE(100, NOP);
- OPCODE(101, o_libraryBookPageTurnLeft);
- OPCODE(102, o_libraryBookPageTurnRight);
- OPCODE(103, o_fireplaceToggleButton);
- OPCODE(104, o_fireplaceRotation);
- OPCODE(105, o_courtyardBoxesCheckSolution);
- OPCODE(106, o_towerRotationStart);
- OPCODE(107, NOP);
- OPCODE(108, o_towerRotationEnd);
- OPCODE(109, o_imagerChangeSelection);
- OPCODE(113, o_dockVaultOpen);
- OPCODE(114, o_dockVaultClose);
- OPCODE(115, o_bookGivePage);
- OPCODE(116, o_clockWheelsExecute);
- OPCODE(117, o_imagerPlayButton);
- OPCODE(118, o_imagerEraseButton);
- OPCODE(119, o_towerElevatorAnimation);
- OPCODE(120, o_generatorButtonPressed);
- OPCODE(121, o_cabinSafeChangeDigit);
- OPCODE(122, o_cabinSafeHandleStartMove);
- OPCODE(123, o_cabinSafeHandleMove);
- OPCODE(124, o_cabinSafeHandleEndMove);
- OPCODE(126, o_clockLeverStartMove);
- OPCODE(127, o_clockLeverEndMove);
- OPCODE(128, o_treePressureReleaseStart);
+ REGISTER_OPCODE(100, Myst, NOP);
+ REGISTER_OPCODE(101, Myst, o_libraryBookPageTurnLeft);
+ REGISTER_OPCODE(102, Myst, o_libraryBookPageTurnRight);
+ REGISTER_OPCODE(103, Myst, o_fireplaceToggleButton);
+ REGISTER_OPCODE(104, Myst, o_fireplaceRotation);
+ REGISTER_OPCODE(105, Myst, o_courtyardBoxesCheckSolution);
+ REGISTER_OPCODE(106, Myst, o_towerRotationStart);
+ REGISTER_OPCODE(107, Myst, NOP);
+ REGISTER_OPCODE(108, Myst, o_towerRotationEnd);
+ REGISTER_OPCODE(109, Myst, o_imagerChangeSelection);
+ REGISTER_OPCODE(113, Myst, o_dockVaultOpen);
+ REGISTER_OPCODE(114, Myst, o_dockVaultClose);
+ REGISTER_OPCODE(115, Myst, o_bookGivePage);
+ REGISTER_OPCODE(116, Myst, o_clockWheelsExecute);
+ REGISTER_OPCODE(117, Myst, o_imagerPlayButton);
+ REGISTER_OPCODE(118, Myst, o_imagerEraseButton);
+ REGISTER_OPCODE(119, Myst, o_towerElevatorAnimation);
+ REGISTER_OPCODE(120, Myst, o_generatorButtonPressed);
+ REGISTER_OPCODE(121, Myst, o_cabinSafeChangeDigit);
+ REGISTER_OPCODE(122, Myst, o_cabinSafeHandleStartMove);
+ REGISTER_OPCODE(123, Myst, o_cabinSafeHandleMove);
+ REGISTER_OPCODE(124, Myst, o_cabinSafeHandleEndMove);
+ REGISTER_OPCODE(126, Myst, o_clockLeverStartMove);
+ REGISTER_OPCODE(127, Myst, o_clockLeverEndMove);
+ REGISTER_OPCODE(128, Myst, o_treePressureReleaseStart);
if (!observatoryIsDDMMYYYY2400()) {
- OPCODE(129, o_observatoryMonthChangeStartIncrease);
- OPCODE(130, o_observatoryMonthChangeStartDecrease);
- OPCODE(131, o_observatoryDayChangeStartIncrease);
- OPCODE(132, o_observatoryDayChangeStartDecrease);
+ REGISTER_OPCODE(129, Myst, o_observatoryMonthChangeStartIncrease);
+ REGISTER_OPCODE(130, Myst, o_observatoryMonthChangeStartDecrease);
+ REGISTER_OPCODE(131, Myst, o_observatoryDayChangeStartIncrease);
+ REGISTER_OPCODE(132, Myst, o_observatoryDayChangeStartDecrease);
} else {
- OPCODE(129, o_observatoryDayChangeStartIncrease);
- OPCODE(130, o_observatoryDayChangeStartDecrease);
- OPCODE(131, o_observatoryMonthChangeStartIncrease);
- OPCODE(132, o_observatoryMonthChangeStartDecrease);
- }
- OPCODE(133, o_observatoryGoButton);
- OPCODE(134, o_observatoryMonthSliderMove);
- OPCODE(135, o_observatoryDaySliderMove);
- OPCODE(136, o_observatoryYearSliderMove);
- OPCODE(137, o_observatoryTimeSliderMove);
- OPCODE(138, o_clockResetLeverStartMove);
- OPCODE(139, o_clockResetLeverMove);
- OPCODE(140, o_clockResetLeverEndMove);
- OPCODE(141, o_circuitBreakerStartMove);
- OPCODE(142, o_circuitBreakerMove);
- OPCODE(143, o_circuitBreakerEndMove);
- OPCODE(144, o_clockLeverMoveLeft);
- OPCODE(145, o_clockLeverMoveRight);
- OPCODE(146, o_boilerIncreasePressureStart);
- OPCODE(147, o_boilerLightPilot);
- OPCODE(148, NOP);
- OPCODE(149, o_boilerIncreasePressureStop);
- OPCODE(150, o_boilerDecreasePressureStart);
- OPCODE(151, o_boilerDecreasePressureStop);
- OPCODE(152, NOP);
- OPCODE(153, o_basementIncreasePressureStart);
- OPCODE(154, o_basementIncreasePressureStop);
- OPCODE(155, o_basementDecreasePressureStart);
- OPCODE(156, o_basementDecreasePressureStop);
- OPCODE(157, o_rocketPianoMove);
- OPCODE(158, o_rocketSoundSliderStartMove);
- OPCODE(159, o_rocketSoundSliderMove);
- OPCODE(160, o_rocketSoundSliderEndMove);
- OPCODE(161, o_rocketPianoStart);
- OPCODE(162, o_rocketPianoStop);
- OPCODE(163, o_rocketLeverStartMove);
- OPCODE(164, o_rocketOpenBook);
- OPCODE(165, o_rocketLeverMove);
- OPCODE(166, o_rocketLeverEndMove);
- OPCODE(167, NOP);
- OPCODE(168, o_treePressureReleaseStop);
- OPCODE(169, o_cabinLeave);
- OPCODE(170, o_observatoryMonthSliderStartMove);
- OPCODE(171, o_observatoryMonthSliderEndMove);
- OPCODE(172, o_observatoryDaySliderStartMove);
- OPCODE(173, o_observatoryDaySliderEndMove);
- OPCODE(174, o_observatoryYearSliderStartMove);
- OPCODE(175, o_observatoryYearSliderEndMove);
- OPCODE(176, o_observatoryTimeSliderStartMove);
- OPCODE(177, o_observatoryTimeSliderEndMove);
- OPCODE(180, o_libraryCombinationBookStop);
- OPCODE(181, NOP);
- OPCODE(182, o_cabinMatchLight);
- OPCODE(183, o_courtyardBoxEnter);
- OPCODE(184, o_courtyardBoxLeave);
- OPCODE(185, NOP);
- OPCODE(186, o_clockMinuteWheelStartTurn);
- OPCODE(187, NOP);
- OPCODE(188, o_clockWheelEndTurn);
- OPCODE(189, o_clockHourWheelStartTurn);
- OPCODE(190, o_libraryCombinationBookStartRight);
- OPCODE(191, o_libraryCombinationBookStartLeft);
- OPCODE(192, o_observatoryTimeChangeStartIncrease);
- OPCODE(193, NOP);
- OPCODE(194, o_observatoryChangeSettingStop);
- OPCODE(195, o_observatoryTimeChangeStartDecrease);
- OPCODE(196, o_observatoryYearChangeStartIncrease);
- OPCODE(197, o_observatoryYearChangeStartDecrease);
- OPCODE(198, o_dockVaultForceClose);
- OPCODE(199, o_imagerEraseStop);
+ REGISTER_OPCODE(129, Myst, o_observatoryDayChangeStartIncrease);
+ REGISTER_OPCODE(130, Myst, o_observatoryDayChangeStartDecrease);
+ REGISTER_OPCODE(131, Myst, o_observatoryMonthChangeStartIncrease);
+ REGISTER_OPCODE(132, Myst, o_observatoryMonthChangeStartDecrease);
+ }
+ REGISTER_OPCODE(133, Myst, o_observatoryGoButton);
+ REGISTER_OPCODE(134, Myst, o_observatoryMonthSliderMove);
+ REGISTER_OPCODE(135, Myst, o_observatoryDaySliderMove);
+ REGISTER_OPCODE(136, Myst, o_observatoryYearSliderMove);
+ REGISTER_OPCODE(137, Myst, o_observatoryTimeSliderMove);
+ REGISTER_OPCODE(138, Myst, o_clockResetLeverStartMove);
+ REGISTER_OPCODE(139, Myst, o_clockResetLeverMove);
+ REGISTER_OPCODE(140, Myst, o_clockResetLeverEndMove);
+ REGISTER_OPCODE(141, Myst, o_circuitBreakerStartMove);
+ REGISTER_OPCODE(142, Myst, o_circuitBreakerMove);
+ REGISTER_OPCODE(143, Myst, o_circuitBreakerEndMove);
+ REGISTER_OPCODE(144, Myst, o_clockLeverMoveLeft);
+ REGISTER_OPCODE(145, Myst, o_clockLeverMoveRight);
+ REGISTER_OPCODE(146, Myst, o_boilerIncreasePressureStart);
+ REGISTER_OPCODE(147, Myst, o_boilerLightPilot);
+ REGISTER_OPCODE(148, Myst, NOP);
+ REGISTER_OPCODE(149, Myst, o_boilerIncreasePressureStop);
+ REGISTER_OPCODE(150, Myst, o_boilerDecreasePressureStart);
+ REGISTER_OPCODE(151, Myst, o_boilerDecreasePressureStop);
+ REGISTER_OPCODE(152, Myst, NOP);
+ REGISTER_OPCODE(153, Myst, o_basementIncreasePressureStart);
+ REGISTER_OPCODE(154, Myst, o_basementIncreasePressureStop);
+ REGISTER_OPCODE(155, Myst, o_basementDecreasePressureStart);
+ REGISTER_OPCODE(156, Myst, o_basementDecreasePressureStop);
+ REGISTER_OPCODE(157, Myst, o_rocketPianoMove);
+ REGISTER_OPCODE(158, Myst, o_rocketSoundSliderStartMove);
+ REGISTER_OPCODE(159, Myst, o_rocketSoundSliderMove);
+ REGISTER_OPCODE(160, Myst, o_rocketSoundSliderEndMove);
+ REGISTER_OPCODE(161, Myst, o_rocketPianoStart);
+ REGISTER_OPCODE(162, Myst, o_rocketPianoStop);
+ REGISTER_OPCODE(163, Myst, o_rocketLeverStartMove);
+ REGISTER_OPCODE(164, Myst, o_rocketOpenBook);
+ REGISTER_OPCODE(165, Myst, o_rocketLeverMove);
+ REGISTER_OPCODE(166, Myst, o_rocketLeverEndMove);
+ REGISTER_OPCODE(167, Myst, NOP);
+ REGISTER_OPCODE(168, Myst, o_treePressureReleaseStop);
+ REGISTER_OPCODE(169, Myst, o_cabinLeave);
+ REGISTER_OPCODE(170, Myst, o_observatoryMonthSliderStartMove);
+ REGISTER_OPCODE(171, Myst, o_observatoryMonthSliderEndMove);
+ REGISTER_OPCODE(172, Myst, o_observatoryDaySliderStartMove);
+ REGISTER_OPCODE(173, Myst, o_observatoryDaySliderEndMove);
+ REGISTER_OPCODE(174, Myst, o_observatoryYearSliderStartMove);
+ REGISTER_OPCODE(175, Myst, o_observatoryYearSliderEndMove);
+ REGISTER_OPCODE(176, Myst, o_observatoryTimeSliderStartMove);
+ REGISTER_OPCODE(177, Myst, o_observatoryTimeSliderEndMove);
+ REGISTER_OPCODE(180, Myst, o_libraryCombinationBookStop);
+ REGISTER_OPCODE(181, Myst, NOP);
+ REGISTER_OPCODE(182, Myst, o_cabinMatchLight);
+ REGISTER_OPCODE(183, Myst, o_courtyardBoxEnter);
+ REGISTER_OPCODE(184, Myst, o_courtyardBoxLeave);
+ REGISTER_OPCODE(185, Myst, NOP);
+ REGISTER_OPCODE(186, Myst, o_clockMinuteWheelStartTurn);
+ REGISTER_OPCODE(187, Myst, NOP);
+ REGISTER_OPCODE(188, Myst, o_clockWheelEndTurn);
+ REGISTER_OPCODE(189, Myst, o_clockHourWheelStartTurn);
+ REGISTER_OPCODE(190, Myst, o_libraryCombinationBookStartRight);
+ REGISTER_OPCODE(191, Myst, o_libraryCombinationBookStartLeft);
+ REGISTER_OPCODE(192, Myst, o_observatoryTimeChangeStartIncrease);
+ REGISTER_OPCODE(193, Myst, NOP);
+ REGISTER_OPCODE(194, Myst, o_observatoryChangeSettingStop);
+ REGISTER_OPCODE(195, Myst, o_observatoryTimeChangeStartDecrease);
+ REGISTER_OPCODE(196, Myst, o_observatoryYearChangeStartIncrease);
+ REGISTER_OPCODE(197, Myst, o_observatoryYearChangeStartDecrease);
+ REGISTER_OPCODE(198, Myst, o_dockVaultForceClose);
+ REGISTER_OPCODE(199, Myst, o_imagerEraseStop);
// "Init" Opcodes
- OPCODE(200, o_libraryBook_init);
- OPCODE(201, o_courtyardBox_init);
- OPCODE(202, o_towerRotationMap_init);
- OPCODE(203, o_forechamberDoor_init);
- OPCODE(204, o_shipAccess_init);
- OPCODE(205, NOP);
- OPCODE(206, o_butterflies_init);
- OPCODE(208, o_imager_init);
- OPCODE(209, o_libraryBookcaseTransform_init);
- OPCODE(210, o_generatorControlRoom_init);
- OPCODE(211, o_fireplace_init);
- OPCODE(212, o_clockGears_init);
- OPCODE(213, o_gulls1_init);
- OPCODE(214, o_observatory_init);
- OPCODE(215, o_gulls2_init);
- OPCODE(216, o_treeCard_init);
- OPCODE(217, o_treeEntry_init);
- OPCODE(218, o_boilerMovies_init);
- OPCODE(219, o_rocketSliders_init);
- OPCODE(220, o_rocketLinkVideo_init);
- OPCODE(221, o_greenBook_init);
- OPCODE(222, o_gulls3_init);
+ REGISTER_OPCODE(200, Myst, o_libraryBook_init);
+ REGISTER_OPCODE(201, Myst, o_courtyardBox_init);
+ REGISTER_OPCODE(202, Myst, o_towerRotationMap_init);
+ REGISTER_OPCODE(203, Myst, o_forechamberDoor_init);
+ REGISTER_OPCODE(204, Myst, o_shipAccess_init);
+ REGISTER_OPCODE(205, Myst, NOP);
+ REGISTER_OPCODE(206, Myst, o_butterflies_init);
+ REGISTER_OPCODE(208, Myst, o_imager_init);
+ REGISTER_OPCODE(209, Myst, o_libraryBookcaseTransform_init);
+ REGISTER_OPCODE(210, Myst, o_generatorControlRoom_init);
+ REGISTER_OPCODE(211, Myst, o_fireplace_init);
+ REGISTER_OPCODE(212, Myst, o_clockGears_init);
+ REGISTER_OPCODE(213, Myst, o_gulls1_init);
+ REGISTER_OPCODE(214, Myst, o_observatory_init);
+ REGISTER_OPCODE(215, Myst, o_gulls2_init);
+ REGISTER_OPCODE(216, Myst, o_treeCard_init);
+ REGISTER_OPCODE(217, Myst, o_treeEntry_init);
+ REGISTER_OPCODE(218, Myst, o_boilerMovies_init);
+ REGISTER_OPCODE(219, Myst, o_rocketSliders_init);
+ REGISTER_OPCODE(220, Myst, o_rocketLinkVideo_init);
+ REGISTER_OPCODE(221, Myst, o_greenBook_init);
+ REGISTER_OPCODE(222, Myst, o_gulls3_init);
// "Exit" Opcodes
- OPCODE(300, o_bookAddSpecialPage_exit);
- OPCODE(301, NOP);
- OPCODE(302, NOP);
- OPCODE(303, NOP);
- OPCODE(304, o_treeCard_exit);
- OPCODE(305, o_treeEntry_exit);
- OPCODE(306, o_boiler_exit);
- OPCODE(307, o_generatorControlRoom_exit);
- OPCODE(308, NOP);
- OPCODE(309, NOP);
- OPCODE(312, NOP);
-}
-
-#undef OPCODE
+ REGISTER_OPCODE(300, Myst, o_bookAddSpecialPage_exit);
+ REGISTER_OPCODE(301, Myst, NOP);
+ REGISTER_OPCODE(302, Myst, NOP);
+ REGISTER_OPCODE(303, Myst, NOP);
+ REGISTER_OPCODE(304, Myst, o_treeCard_exit);
+ REGISTER_OPCODE(305, Myst, o_treeEntry_exit);
+ REGISTER_OPCODE(306, Myst, o_boiler_exit);
+ REGISTER_OPCODE(307, Myst, o_generatorControlRoom_exit);
+ REGISTER_OPCODE(308, Myst, NOP);
+ REGISTER_OPCODE(309, Myst, NOP);
+ REGISTER_OPCODE(312, Myst, NOP);
+}
void Myst::disablePersistentScripts() {
_libraryBookcaseMoving = false;
diff --git a/engines/mohawk/myst_stacks/preview.cpp b/engines/mohawk/myst_stacks/preview.cpp
index 9ad40b0f46..bc0dd04360 100644
--- a/engines/mohawk/myst_stacks/preview.cpp
+++ b/engines/mohawk/myst_stacks/preview.cpp
@@ -42,32 +42,19 @@ Preview::Preview(MohawkEngine_Myst *vm) : Myst(vm) {
Preview::~Preview() {
}
-#define OPCODE(op, x) _opcodes.push_back(new MystOpcode(op, (OpcodeProcMyst) &Preview::x, #x))
-
-#define OVERRIDE_OPCODE(opcode, x) \
- for (uint32 i = 0; i < _opcodes.size(); i++) \
- if (_opcodes[i]->op == opcode) { \
- _opcodes[i]->proc = (OpcodeProcMyst) &Preview::x; \
- _opcodes[i]->desc = #x; \
- break; \
- }
-
void Preview::setupOpcodes() {
// "Stack-Specific" Opcodes
- OVERRIDE_OPCODE(196, o_fadeToBlack);
- OVERRIDE_OPCODE(197, o_fadeFromBlack);
- OVERRIDE_OPCODE(198, o_stayHere);
- OVERRIDE_OPCODE(199, o_speechStop);
+ OVERRIDE_OPCODE(196, Preview, o_fadeToBlack);
+ OVERRIDE_OPCODE(197, Preview, o_fadeFromBlack);
+ OVERRIDE_OPCODE(198, Preview, o_stayHere);
+ OVERRIDE_OPCODE(199, Preview, o_speechStop);
// "Init" Opcodes
- OVERRIDE_OPCODE(209, o_libraryBookcaseTransformDemo_init);
- OPCODE(298, o_speech_init);
- OPCODE(299, o_library_init);
+ OVERRIDE_OPCODE(209, Preview, o_libraryBookcaseTransformDemo_init);
+ REGISTER_OPCODE(298, Preview, o_speech_init);
+ REGISTER_OPCODE(299, Preview, o_library_init);
}
-#undef OPCODE
-#undef OVERRIDE_OPCODE
-
void Preview::disablePersistentScripts() {
Myst::disablePersistentScripts();
}
diff --git a/engines/mohawk/myst_stacks/selenitic.cpp b/engines/mohawk/myst_stacks/selenitic.cpp
index 427635b94c..087143abfc 100644
--- a/engines/mohawk/myst_stacks/selenitic.cpp
+++ b/engines/mohawk/myst_stacks/selenitic.cpp
@@ -49,41 +49,37 @@ Selenitic::Selenitic(MohawkEngine_Myst *vm) :
Selenitic::~Selenitic() {
}
-#define OPCODE(op, x) _opcodes.push_back(new MystOpcode(op, (OpcodeProcMyst) &Selenitic::x, #x))
-
void Selenitic::setupOpcodes() {
// "Stack-Specific" Opcodes
- OPCODE(100, o_mazeRunnerMove);
- OPCODE(101, o_mazeRunnerSoundRepeat);
- OPCODE(102, o_soundReceiverSigma);
- OPCODE(103, o_soundReceiverRight);
- OPCODE(104, o_soundReceiverLeft);
- OPCODE(105, o_soundReceiverSource);
- OPCODE(106, o_soundReceiverSource);
- OPCODE(107, o_soundReceiverSource);
- OPCODE(108, o_soundReceiverSource);
- OPCODE(109, o_soundReceiverSource);
- OPCODE(110, o_mazeRunnerDoorButton);
- OPCODE(111, o_soundReceiverUpdateSound);
- OPCODE(112, o_soundLockMove);
- OPCODE(113, o_soundLockStartMove);
- OPCODE(114, o_soundLockEndMove);
- OPCODE(115, o_soundLockButton);
- OPCODE(116, NOP);
- OPCODE(117, o_soundReceiverEndMove);
+ REGISTER_OPCODE(100, Selenitic, o_mazeRunnerMove);
+ REGISTER_OPCODE(101, Selenitic, o_mazeRunnerSoundRepeat);
+ REGISTER_OPCODE(102, Selenitic, o_soundReceiverSigma);
+ REGISTER_OPCODE(103, Selenitic, o_soundReceiverRight);
+ REGISTER_OPCODE(104, Selenitic, o_soundReceiverLeft);
+ REGISTER_OPCODE(105, Selenitic, o_soundReceiverSource);
+ REGISTER_OPCODE(106, Selenitic, o_soundReceiverSource);
+ REGISTER_OPCODE(107, Selenitic, o_soundReceiverSource);
+ REGISTER_OPCODE(108, Selenitic, o_soundReceiverSource);
+ REGISTER_OPCODE(109, Selenitic, o_soundReceiverSource);
+ REGISTER_OPCODE(110, Selenitic, o_mazeRunnerDoorButton);
+ REGISTER_OPCODE(111, Selenitic, o_soundReceiverUpdateSound);
+ REGISTER_OPCODE(112, Selenitic, o_soundLockMove);
+ REGISTER_OPCODE(113, Selenitic, o_soundLockStartMove);
+ REGISTER_OPCODE(114, Selenitic, o_soundLockEndMove);
+ REGISTER_OPCODE(115, Selenitic, o_soundLockButton);
+ REGISTER_OPCODE(116, Selenitic, NOP);
+ REGISTER_OPCODE(117, Selenitic, o_soundReceiverEndMove);
// "Init" Opcodes
- OPCODE(200, o_mazeRunnerCompass_init);
- OPCODE(201, o_mazeRunnerWindow_init);
- OPCODE(202, o_mazeRunnerLight_init);
- OPCODE(203, o_soundReceiver_init);
- OPCODE(204, o_soundLock_init);
- OPCODE(205, o_mazeRunnerRight_init);
- OPCODE(206, o_mazeRunnerLeft_init);
+ REGISTER_OPCODE(200, Selenitic, o_mazeRunnerCompass_init);
+ REGISTER_OPCODE(201, Selenitic, o_mazeRunnerWindow_init);
+ REGISTER_OPCODE(202, Selenitic, o_mazeRunnerLight_init);
+ REGISTER_OPCODE(203, Selenitic, o_soundReceiver_init);
+ REGISTER_OPCODE(204, Selenitic, o_soundLock_init);
+ REGISTER_OPCODE(205, Selenitic, o_mazeRunnerRight_init);
+ REGISTER_OPCODE(206, Selenitic, o_mazeRunnerLeft_init);
}
-#undef OPCODE
-
void Selenitic::disablePersistentScripts() {
_soundReceiverRunning = false;
}
diff --git a/engines/mohawk/myst_stacks/slides.cpp b/engines/mohawk/myst_stacks/slides.cpp
index 070724c221..f8c388d7bc 100644
--- a/engines/mohawk/myst_stacks/slides.cpp
+++ b/engines/mohawk/myst_stacks/slides.cpp
@@ -41,18 +41,14 @@ Slides::Slides(MohawkEngine_Myst *vm) : MystScriptParser(vm) {
Slides::~Slides() {
}
-#define OPCODE(op, x) _opcodes.push_back(new MystOpcode(op, (OpcodeProcMyst) &Slides::x, #x))
-
void Slides::setupOpcodes() {
// "Stack-Specific" Opcodes
- OPCODE(100, o_returnToMenu);
+ REGISTER_OPCODE(100, Slides, o_returnToMenu);
// "Init" Opcodes
- OPCODE(200, o_setCardSwap);
+ REGISTER_OPCODE(200, Slides, o_setCardSwap);
}
-#undef OPCODE
-
void Slides::disablePersistentScripts() {
_cardSwapEnabled = false;
}
diff --git a/engines/mohawk/myst_stacks/stoneship.cpp b/engines/mohawk/myst_stacks/stoneship.cpp
index bfe1b19329..f4b38305f2 100644
--- a/engines/mohawk/myst_stacks/stoneship.cpp
+++ b/engines/mohawk/myst_stacks/stoneship.cpp
@@ -66,54 +66,50 @@ Stoneship::Stoneship(MohawkEngine_Myst *vm) :
Stoneship::~Stoneship() {
}
-#define OPCODE(op, x) _opcodes.push_back(new MystOpcode(op, (OpcodeProcMyst) &Stoneship::x, #x))
-
void Stoneship::setupOpcodes() {
// "Stack-Specific" Opcodes
- OPCODE(100, o_pumpTurnOff);
- OPCODE(101, o_brotherDoorOpen);
- OPCODE(102, o_cabinBookMovie);
- OPCODE(103, o_drawerOpenSirius);
- OPCODE(104, o_drawerClose);
- OPCODE(105, o_telescopeStart);
- OPCODE(106, o_telescopeMove);
- OPCODE(107, o_telescopeStop);
- OPCODE(108, o_generatorStart);
- OPCODE(109, NOP);
- OPCODE(110, o_generatorStop);
- OPCODE(111, o_drawerOpenAchenar);
- OPCODE(112, o_hologramPlayback);
- OPCODE(113, o_hologramSelectionStart);
- OPCODE(114, o_hologramSelectionMove);
- OPCODE(115, o_hologramSelectionStop);
- OPCODE(116, o_compassButton);
- OPCODE(117, o_chestValveVideos);
- OPCODE(118, o_chestDropKey);
- OPCODE(119, o_trapLockOpen);
- OPCODE(120, o_sideDoorsMovies);
- OPCODE(121, o_cloudOrbEnter);
- OPCODE(122, o_cloudOrbLeave);
- OPCODE(125, o_drawerCloseOpened);
+ REGISTER_OPCODE(100, Stoneship, o_pumpTurnOff);
+ REGISTER_OPCODE(101, Stoneship, o_brotherDoorOpen);
+ REGISTER_OPCODE(102, Stoneship, o_cabinBookMovie);
+ REGISTER_OPCODE(103, Stoneship, o_drawerOpenSirius);
+ REGISTER_OPCODE(104, Stoneship, o_drawerClose);
+ REGISTER_OPCODE(105, Stoneship, o_telescopeStart);
+ REGISTER_OPCODE(106, Stoneship, o_telescopeMove);
+ REGISTER_OPCODE(107, Stoneship, o_telescopeStop);
+ REGISTER_OPCODE(108, Stoneship, o_generatorStart);
+ REGISTER_OPCODE(109, Stoneship, NOP);
+ REGISTER_OPCODE(110, Stoneship, o_generatorStop);
+ REGISTER_OPCODE(111, Stoneship, o_drawerOpenAchenar);
+ REGISTER_OPCODE(112, Stoneship, o_hologramPlayback);
+ REGISTER_OPCODE(113, Stoneship, o_hologramSelectionStart);
+ REGISTER_OPCODE(114, Stoneship, o_hologramSelectionMove);
+ REGISTER_OPCODE(115, Stoneship, o_hologramSelectionStop);
+ REGISTER_OPCODE(116, Stoneship, o_compassButton);
+ REGISTER_OPCODE(117, Stoneship, o_chestValveVideos);
+ REGISTER_OPCODE(118, Stoneship, o_chestDropKey);
+ REGISTER_OPCODE(119, Stoneship, o_trapLockOpen);
+ REGISTER_OPCODE(120, Stoneship, o_sideDoorsMovies);
+ REGISTER_OPCODE(121, Stoneship, o_cloudOrbEnter);
+ REGISTER_OPCODE(122, Stoneship, o_cloudOrbLeave);
+ REGISTER_OPCODE(125, Stoneship, o_drawerCloseOpened);
// "Init" Opcodes
- OPCODE(200, o_hologramDisplay_init);
- OPCODE(201, o_hologramSelection_init);
- OPCODE(202, o_battery_init);
- OPCODE(203, o_tunnelEnter_init);
- OPCODE(204, o_batteryGauge_init);
- OPCODE(205, o_tunnel_init);
- OPCODE(206, o_tunnelLeave_init);
- OPCODE(207, o_chest_init);
- OPCODE(208, o_telescope_init);
- OPCODE(209, o_achenarDrawers_init);
- OPCODE(210, o_cloudOrb_init);
+ REGISTER_OPCODE(200, Stoneship, o_hologramDisplay_init);
+ REGISTER_OPCODE(201, Stoneship, o_hologramSelection_init);
+ REGISTER_OPCODE(202, Stoneship, o_battery_init);
+ REGISTER_OPCODE(203, Stoneship, o_tunnelEnter_init);
+ REGISTER_OPCODE(204, Stoneship, o_batteryGauge_init);
+ REGISTER_OPCODE(205, Stoneship, o_tunnel_init);
+ REGISTER_OPCODE(206, Stoneship, o_tunnelLeave_init);
+ REGISTER_OPCODE(207, Stoneship, o_chest_init);
+ REGISTER_OPCODE(208, Stoneship, o_telescope_init);
+ REGISTER_OPCODE(209, Stoneship, o_achenarDrawers_init);
+ REGISTER_OPCODE(210, Stoneship, o_cloudOrb_init);
// "Exit" Opcodes
- OPCODE(300, NOP);
+ REGISTER_OPCODE(300, Stoneship, NOP);
}
-#undef OPCODE
-
void Stoneship::disablePersistentScripts() {
_batteryCharging = false;
_batteryDepleting = false;