diff options
author | Matthew Hoops | 2011-11-02 20:50:07 -0400 |
---|---|---|
committer | Matthew Hoops | 2011-11-02 20:50:07 -0400 |
commit | 57405cee9e715fb23ed8faf9fbc21f62d1c87393 (patch) | |
tree | cd1697430e5772b65e9b45ba3e268cddf34d5378 /engines/pegasus | |
parent | 476f4b513dd7d69a4d31b464dbc2981a353671c4 (diff) | |
download | scummvm-rg350-57405cee9e715fb23ed8faf9fbc21f62d1c87393.tar.gz scummvm-rg350-57405cee9e715fb23ed8faf9fbc21f62d1c87393.tar.bz2 scummvm-rg350-57405cee9e715fb23ed8faf9fbc21f62d1c87393.zip |
PEGASUS: Fix pressure door movie updates
Diffstat (limited to 'engines/pegasus')
-rwxr-xr-x | engines/pegasus/neighborhood/norad/pressuredoor.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/engines/pegasus/neighborhood/norad/pressuredoor.cpp b/engines/pegasus/neighborhood/norad/pressuredoor.cpp index 0fd5f45ded..59adb09e2e 100755 --- a/engines/pegasus/neighborhood/norad/pressuredoor.cpp +++ b/engines/pegasus/neighborhood/norad/pressuredoor.cpp @@ -135,6 +135,7 @@ void PressureDoor::openInteraction() { _levelsMovie.startDisplaying(); _levelsMovie.setSegment(kLevelsSplashStart * _levelsScale, kLevelsSplashStop * _levelsScale); _levelsMovie.setTime(kLevelsSplashStart * _levelsScale); + _levelsMovie.redrawMovieWorld(); _levelsMovie.show(); _pressureCallBack.setNotification(&_pressureNotification); @@ -156,6 +157,7 @@ void PressureDoor::openInteraction() { _typeMovie.setDisplayOrder(kPressureTypeOrder); _typeMovie.startDisplaying(); _typeMovie.setTime(kDoorSealedTime * _typeScale); + _typeMovie.redrawMovieWorld(); SpriteFrame *frame = new SpriteFrame(); if (_isUpperDoor) @@ -326,6 +328,7 @@ void PressureDoor::receiveNotification(Notification *notification, const tNotifi _typeMovie.stop(); _typeMovie.setSegment(0, _typeMovie.getDuration()); _typeMovie.setTime(kDecreasingPressureTime * _typeScale); + _typeMovie.redrawMovieWorld(); _typeMovie.show(); _downButton.show(); _downButton.setCurrentFrameIndex(1); @@ -346,6 +349,7 @@ void PressureDoor::receiveNotification(Notification *notification, const tNotifi switch (_gameState) { case kPlayingPressureMessage: _typeMovie.setTime(kEqualizeTime * _typeScale); + _typeMovie.redrawMovieWorld(); owner->requestDelay(1, 5, kFilterNoInput, 0); owner->requestSpotSound(_equalizeSoundIn, _equalizeSoundOut, kFilterNoInput, 0); owner->requestDelay(1, 5, kFilterNoInput, kDelayCompletedFlag); @@ -371,6 +375,7 @@ void PressureDoor::receiveNotification(Notification *notification, const tNotifi _levelsMovie.stop(); _levelsMovie.setSegment(0, _levelsMovie.getDuration()); _levelsMovie.setTime((GameState.getNoradSubRoomPressure() + kPressureBase) * _levelsScale); + _levelsMovie.redrawMovieWorld(); if (GameState.getNoradSubRoomPressure() != kNormalSubRoomPressure) { _typeMovie.show(); @@ -460,7 +465,9 @@ void PressureDoor::incrementPressure(const tHotSpotID id) { if (GameState.getNoradSubRoomPressure() < kMaxPressure) { GameState.setNoradSubRoomPressure(GameState.getNoradSubRoomPressure() + 1); _levelsMovie.setTime((GameState.getNoradSubRoomPressure() + kPressureBase) * _levelsScale); + _levelsMovie.redrawMovieWorld(); _typeMovie.setTime(kIncreasingPressureTime * _typeScale); + _typeMovie.redrawMovieWorld(); _typeMovie.show(); g_AIArea->checkMiddleArea(); } else { @@ -470,7 +477,9 @@ void PressureDoor::incrementPressure(const tHotSpotID id) { if (GameState.getNoradSubRoomPressure() > kMinPressure) { GameState.setNoradSubRoomPressure(GameState.getNoradSubRoomPressure() - 1); _levelsMovie.setTime((GameState.getNoradSubRoomPressure() + kPressureBase) * _levelsScale); + _levelsMovie.redrawMovieWorld(); _typeMovie.setTime(kDecreasingPressureTime * _typeScale); + _typeMovie.redrawMovieWorld(); _typeMovie.show(); g_AIArea->checkMiddleArea(); } else { @@ -521,6 +530,7 @@ void PressureDoor::doSolve() { if (_playingAgainstRobot) { GameState.setNoradSubRoomPressure(11); _levelsMovie.setTime((11 + kPressureBase) * _levelsScale); + _levelsMovie.redrawMovieWorld(); _typeMovie.setSegment(kMaxPressureLoopStart * _typeScale, kMaxPressureLoopStop * _typeScale); _typeMovie.setFlags(kLoopTimeBase); _typeMovie.show(); @@ -529,6 +539,7 @@ void PressureDoor::doSolve() { } else { GameState.setNoradSubRoomPressure(kNormalSubRoomPressure); _levelsMovie.setTime((kNormalSubRoomPressure + kPressureBase) * _levelsScale); + _levelsMovie.redrawMovieWorld(); _typeMovie.setSegment(kOpeningDoorLoopStart * _typeScale, kOpeningDoorLoopStop * _typeScale); _typeMovie.setFlags(kLoopTimeBase); _typeMovie.show(); |