aboutsummaryrefslogtreecommitdiff
path: root/engines/mohawk/myst_stacks
diff options
context:
space:
mode:
Diffstat (limited to 'engines/mohawk/myst_stacks')
-rw-r--r--engines/mohawk/myst_stacks/channelwood.cpp12
-rw-r--r--engines/mohawk/myst_stacks/credits.cpp1
-rw-r--r--engines/mohawk/myst_stacks/mechanical.cpp20
-rw-r--r--engines/mohawk/myst_stacks/myst.cpp23
-rw-r--r--engines/mohawk/myst_stacks/stoneship.cpp5
5 files changed, 13 insertions, 48 deletions
diff --git a/engines/mohawk/myst_stacks/channelwood.cpp b/engines/mohawk/myst_stacks/channelwood.cpp
index 7e91dbb2c1..b8cdb599be 100644
--- a/engines/mohawk/myst_stacks/channelwood.cpp
+++ b/engines/mohawk/myst_stacks/channelwood.cpp
@@ -350,7 +350,7 @@ void Channelwood::o_drawImageChangeCardAndVolume(uint16 op, uint16 var, uint16 a
debugC(kDebugScript, "\tcardId: %d", cardId);
_vm->_gfx->copyImageToScreen(imageId, Common::Rect(0, 0, 544, 333));
- _vm->_system->updateScreen();
+ _vm->wait(200);
_vm->changeToCard(cardId, kTransitionPartToLeft);
@@ -368,8 +368,7 @@ void Channelwood::o_waterTankValveOpen(uint16 op, uint16 var, uint16 argc, uint1
for (uint i = 0; i < 2; i++)
for (uint16 imageId = 3601; imageId >= 3595; imageId--) {
_vm->_gfx->copyImageToScreen(imageId, rect);
- _vm->pollAndDiscardEvents();
- _vm->_system->updateScreen();
+ _vm->doFrame();
}
pipeChangeValve(true, 0x80);
@@ -448,14 +447,14 @@ void Channelwood::o_leverEndMoveWithSound(uint16 op, uint16 var, uint16 argc, ui
void Channelwood::o_leverElev3StartMove(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
_vm->_gfx->copyImageToScreen(3970, Common::Rect(544, 333));
- _vm->_system->updateScreen();
+ _vm->doFrame();
o_leverStartMove(op, var, argc, argv);
}
void Channelwood::o_leverElev3EndMove(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
o_leverEndMove(op, var, argc, argv);
_vm->_gfx->copyImageToScreen(3265, Common::Rect(544, 333));
- _vm->_system->updateScreen();
+ _vm->doFrame();
_vm->_sound->replaceSoundMyst(5265);
}
@@ -700,8 +699,7 @@ void Channelwood::o_waterTankValveClose(uint16 op, uint16 var, uint16 argc, uint
for (uint i = 0; i < 2; i++)
for (uint16 imageId = 3595; imageId <= 3601; imageId++) {
_vm->_gfx->copyImageToScreen(imageId, rect);
- _vm->pollAndDiscardEvents();
- _vm->_system->updateScreen();
+ _vm->doFrame();
}
pipeChangeValve(false, 0x80);
diff --git a/engines/mohawk/myst_stacks/credits.cpp b/engines/mohawk/myst_stacks/credits.cpp
index c382263f7c..b295255dfb 100644
--- a/engines/mohawk/myst_stacks/credits.cpp
+++ b/engines/mohawk/myst_stacks/credits.cpp
@@ -74,7 +74,6 @@ void Credits::runPersistentScripts() {
// Draw next image
_vm->drawCardBackground();
_vm->_gfx->copyBackBufferToScreen(Common::Rect(544, 333));
- _vm->_system->updateScreen();
_startTime = _vm->_system->getMillis();
}
diff --git a/engines/mohawk/myst_stacks/mechanical.cpp b/engines/mohawk/myst_stacks/mechanical.cpp
index 3bbf749c1f..5f49e694d1 100644
--- a/engines/mohawk/myst_stacks/mechanical.cpp
+++ b/engines/mohawk/myst_stacks/mechanical.cpp
@@ -381,7 +381,7 @@ void Mechanical::o_elevatorRotationStop(uint16 op, uint16 var, uint16 argc, uint
// Release lever
for (int i = step; i >= 0; i--) {
lever->drawFrame(i);
- _vm->_system->delayMillis(10);
+ _vm->doFrame();
}
// Stop persistent script
@@ -449,7 +449,7 @@ void Mechanical::o_fortressRotationSpeedStop(uint16 op, uint16 var, uint16 argc,
// Release lever
for (int i = _fortressRotationSpeed; i >= 0; i--) {
lever->drawFrame(i);
- _vm->_system->delayMillis(10);
+ _vm->doFrame();
}
_fortressRotationSpeed = 0;
@@ -528,7 +528,7 @@ void Mechanical::o_fortressSimulationSpeedStop(uint16 op, uint16 var, uint16 arg
// Release lever
for (int i = _fortressSimulationSpeed; i >= 0; i--) {
lever->drawFrame(i);
- _vm->_system->delayMillis(10);
+ _vm->doFrame();
}
_fortressSimulationSpeed = 0;
@@ -607,7 +607,6 @@ void Mechanical::elevatorGoMiddle_run() {
// Draw button pressed
if (_elevatorInCabin) {
_vm->_gfx->copyImageSectionToScreen(6332, Common::Rect(0, 35, 51, 63), Common::Rect(10, 137, 61, 165));
- _vm->_system->updateScreen();
}
// Blip
@@ -616,7 +615,6 @@ void Mechanical::elevatorGoMiddle_run() {
// Restore button
if (_elevatorInCabin) {
_vm->_gfx->copyBackBufferToScreen(Common::Rect(10, 137, 61, 165));
- _vm->_system->updateScreen();
}
} else {
_elevatorTooLate = true;
@@ -690,7 +688,7 @@ void Mechanical::o_elevatorWaitTimeout(uint16 op, uint16 var, uint16 argc, uint1
// Wait while the elevator times out
while (_elevatorGoingMiddle) {
runPersistentScripts();
- _vm->_system->delayMillis(10);
+ _vm->doFrame();
}
}
@@ -914,16 +912,9 @@ void Mechanical::fortressSimulation_run() {
// Init sequence
_vm->_sound->replaceBackgroundMyst(_fortressSimulationStartSound1, 65535);
_vm->wait(5000, true);
- _vm->_sound->replaceSoundMyst(_fortressSimulationStartSound2);
- // Update movie while the sound is playing
VideoEntryPtr startup = _fortressSimulationStartup->playMovie();
- while (_vm->_sound->isPlaying(_fortressSimulationStartSound2)) {
- if (_vm->_video->updateMovies())
- _vm->_system->updateScreen();
-
- _vm->_system->delayMillis(10);
- }
+ _vm->playSoundBlocking(_fortressSimulationStartSound2);
_vm->_sound->replaceBackgroundMyst(_fortressSimulationStartSound1, 65535);
_vm->waitUntilMovieEnds(startup);
_vm->_sound->stopBackgroundMyst();
@@ -934,7 +925,6 @@ void Mechanical::fortressSimulation_run() {
Common::Rect dst = Common::Rect(187, 3, 363, 179);
_vm->_gfx->copyImageSectionToBackBuffer(6046, src, dst);
_vm->_gfx->copyBackBufferToScreen(dst);
- _vm->_system->updateScreen();
_fortressSimulationStartup->pauseMovie(true);
VideoEntryPtr holo = _fortressSimulationHolo->playMovie();
diff --git a/engines/mohawk/myst_stacks/myst.cpp b/engines/mohawk/myst_stacks/myst.cpp
index 8e130c8c62..d5e3fe25c2 100644
--- a/engines/mohawk/myst_stacks/myst.cpp
+++ b/engines/mohawk/myst_stacks/myst.cpp
@@ -828,8 +828,6 @@ void Myst::o_libraryBookPageTurnLeft(uint16 op, uint16 var, uint16 argc, uint16
_vm->_sound->replaceSoundMyst(_libraryBookSound1);
else
_vm->_sound->replaceSoundMyst(_libraryBookSound2);
-
- _vm->_system->updateScreen();
}
}
@@ -846,8 +844,6 @@ void Myst::o_libraryBookPageTurnRight(uint16 op, uint16 var, uint16 argc, uint16
_vm->_sound->replaceSoundMyst(_libraryBookSound1);
else
_vm->_sound->replaceSoundMyst(_libraryBookSound2);
-
- _vm->_system->updateScreen();
}
}
@@ -865,16 +861,14 @@ void Myst::o_fireplaceToggleButton(uint16 op, uint16 var, uint16 argc, uint16 *a
// Unset button
for (uint i = 4795; i >= 4779; i--) {
_vm->_gfx->copyImageToScreen(i, getInvokingResource<MystArea>()->getRect());
- _vm->pollAndDiscardEvents();
- _vm->_system->updateScreen();
+ _vm->doFrame();
}
_fireplaceLines[var - 17] &= ~bitmask;
} else {
// Set button
for (uint i = 4779; i <= 4795; i++) {
_vm->_gfx->copyImageToScreen(i, getInvokingResource<MystArea>()->getRect());
- _vm->pollAndDiscardEvents();
- _vm->_system->updateScreen();
+ _vm->doFrame();
}
_fireplaceLines[var - 17] |= bitmask;
}
@@ -1178,12 +1172,11 @@ void Myst::o_imagerPlayButton(uint16 op, uint16 var, uint16 argc, uint16 *argv)
Common::Rect src = Common::Rect(0, 0, 32, 75);
Common::Rect dest = Common::Rect(261, 257, 293, 332);
_vm->_gfx->copyImageSectionToScreen(4699, src, dest);
- _vm->_system->updateScreen();
_vm->wait(200);
_vm->_gfx->copyBackBufferToScreen(dest);
- _vm->_system->updateScreen();
+ _vm->doFrame();
_vm->_cursor->hideCursor();
@@ -2316,7 +2309,6 @@ void Myst::o_rocketPianoStart(uint16 op, uint16 var, uint16 argc, uint16 *argv)
// Draw pressed piano key
_vm->_gfx->copyImageSectionToScreen(key->getSubImage(1).wdib, src, dest);
- _vm->_system->updateScreen();
// Play note
_rocketPianoSound = 0;
@@ -2386,7 +2378,6 @@ void Myst::o_rocketPianoStop(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
// Draw unpressed piano key
_vm->_gfx->copyImageSectionToScreen(key->getSubImage(0).wdib, src, dest);
- _vm->_system->updateScreen();
_vm->_sound->stopSound();
_vm->_sound->resumeBackgroundMyst();
@@ -2469,7 +2460,6 @@ void Myst::o_treePressureReleaseStart(uint16 op, uint16 var, uint16 argc, uint16
Common::Rect src = Common::Rect(0, 0, 49, 86);
Common::Rect dest = Common::Rect(78, 46, 127, 132);
_vm->_gfx->copyImageSectionToScreen(4631, src, dest);
- _vm->_system->updateScreen();
_tempVar = _state.cabinValvePosition;
@@ -2485,7 +2475,6 @@ void Myst::o_treePressureReleaseStop(uint16 op, uint16 var, uint16 argc, uint16
Common::Rect rect = Common::Rect(78, 46, 127, 132);
_vm->_gfx->copyBackBufferToScreen(rect);
- _vm->_system->updateScreen();
_state.cabinValvePosition = _tempVar;
_treeMinPosition = 0;
@@ -2789,8 +2778,6 @@ void Myst::libraryCombinationBookTurnLeft() {
_vm->_sound->replaceSoundMyst(_libraryBookSound1);
else
_vm->_sound->replaceSoundMyst(_libraryBookSound2);
-
- _vm->_system->updateScreen();
}
}
@@ -2815,8 +2802,6 @@ void Myst::libraryCombinationBookTurnRight() {
_vm->_sound->replaceSoundMyst(_libraryBookSound1);
else
_vm->_sound->replaceSoundMyst(_libraryBookSound2);
-
- _vm->_system->updateScreen();
}
}
@@ -3166,7 +3151,6 @@ void Myst::towerRotationMap_run() {
// Draw to screen
_vm->_gfx->copyBackBufferToScreen(Common::Rect(106, 42, 459, 273));
- _vm->_system->updateScreen();
}
uint32 time = _vm->_system->getMillis();
@@ -3305,7 +3289,6 @@ void Myst::towerRotationMapDrawLine(const Common::Point &center, const Common::P
// Draw line
_vm->_gfx->drawLine(center, end, color);
_vm->_gfx->copyBackBufferToScreen(rect);
- _vm->_system->updateScreen();
}
void Myst::towerRotationMapRotate() {
diff --git a/engines/mohawk/myst_stacks/stoneship.cpp b/engines/mohawk/myst_stacks/stoneship.cpp
index 5fbb664d7b..26c38f2a4f 100644
--- a/engines/mohawk/myst_stacks/stoneship.cpp
+++ b/engines/mohawk/myst_stacks/stoneship.cpp
@@ -481,7 +481,6 @@ void Stoneship::o_telescopeMove(uint16 op, uint16 var, uint16 argc, uint16 *argv
// Draw lighthouse
telescopeLighthouseDraw();
- _vm->_system->updateScreen();
}
void Stoneship::o_telescopeStop(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
@@ -890,7 +889,6 @@ void Stoneship::batteryGauge_run() {
_vm->drawCardBackground();
_vm->drawResourceImages();
_vm->_gfx->copyBackBufferToScreen(Common::Rect(544, 333));
- _vm->_system->updateScreen();
}
}
@@ -920,7 +918,6 @@ void Stoneship::tunnel_run() {
// Draw tunnel black
if (_tunnelImagesCount) {
_vm->_gfx->copyImageToScreen(_tunnelImages[1], Common::Rect(544, 333));
- _vm->_system->updateScreen();
}
_vm->_sound->replaceSoundMyst(_tunnelAlarmSound);
@@ -928,7 +925,6 @@ void Stoneship::tunnel_run() {
// Draw tunnel dark
if (_tunnelImagesCount) {
_vm->_gfx->copyImageToScreen(_tunnelImages[0], Common::Rect(544, 333));
- _vm->_system->updateScreen();
}
}
}
@@ -969,7 +965,6 @@ void Stoneship::telescope_run() {
_telescopeLighthouseState = !_telescopeLighthouseState;
telescopeLighthouseDraw();
- _vm->_system->updateScreen();
}
}