diff options
Diffstat (limited to 'engines/titanic/game')
53 files changed, 267 insertions, 284 deletions
diff --git a/engines/titanic/game/arboretum_gate.cpp b/engines/titanic/game/arboretum_gate.cpp index 2a79c31339..1b13b1a65e 100644 --- a/engines/titanic/game/arboretum_gate.cpp +++ b/engines/titanic/game/arboretum_gate.cpp @@ -275,27 +275,27 @@ bool CArboretumGate::TurnOff(CTurnOff *msg) { if (!_disabled) { switch (_seasonNum) { case SEASON_SUMMER: - playMovie(_startFrameSummerOff, _endFrameSummerOff, MOVIE_GAMESTATE | MOVIE_NOTIFY_OBJECT); + playMovie(_startFrameSummerOff, _endFrameSummerOff, MOVIE_WAIT_FOR_FINISH | MOVIE_NOTIFY_OBJECT); break; case SEASON_AUTUMN: if (_gotSpeechCentre) { - playMovie(_startFrameAutumnOff2, _endFrameAutumnOff2, MOVIE_GAMESTATE | MOVIE_NOTIFY_OBJECT); + playMovie(_startFrameAutumnOff2, _endFrameAutumnOff2, MOVIE_WAIT_FOR_FINISH | MOVIE_NOTIFY_OBJECT); } else { - playMovie(_startFrameAutumnOff1, _endFrameAutumnOff1, MOVIE_GAMESTATE | MOVIE_NOTIFY_OBJECT); + playMovie(_startFrameAutumnOff1, _endFrameAutumnOff1, MOVIE_WAIT_FOR_FINISH | MOVIE_NOTIFY_OBJECT); } break; case SEASON_WINTER: if (_gotSpeechCentre) { - playMovie(_startFrameWinterOff2, _endFrameWinterOff2, MOVIE_GAMESTATE | MOVIE_NOTIFY_OBJECT); + playMovie(_startFrameWinterOff2, _endFrameWinterOff2, MOVIE_WAIT_FOR_FINISH | MOVIE_NOTIFY_OBJECT); } else { - playMovie(_startFrameWinterOff1, _endFrameWinterOff1, MOVIE_GAMESTATE | MOVIE_NOTIFY_OBJECT); + playMovie(_startFrameWinterOff1, _endFrameWinterOff1, MOVIE_WAIT_FOR_FINISH | MOVIE_NOTIFY_OBJECT); } break; case SEASON_SPRING: - playMovie(_startFrameSpringOff, _endFrameSpringOff, MOVIE_GAMESTATE | MOVIE_NOTIFY_OBJECT); + playMovie(_startFrameSpringOff, _endFrameSpringOff, MOVIE_WAIT_FOR_FINISH | MOVIE_NOTIFY_OBJECT); break; default: @@ -318,27 +318,27 @@ bool CArboretumGate::TurnOn(CTurnOn *msg) { switch (_seasonNum) { case SEASON_SUMMER: - playMovie(_startFrameSummerOn, _endFrameSummerOn, MOVIE_GAMESTATE | MOVIE_NOTIFY_OBJECT); + playMovie(_startFrameSummerOn, _endFrameSummerOn, MOVIE_WAIT_FOR_FINISH | MOVIE_NOTIFY_OBJECT); break; case SEASON_AUTUMN: if (_gotSpeechCentre) { - playMovie(_startFrameAutumnOn2, _endFrameAutumnOn2, MOVIE_GAMESTATE | MOVIE_NOTIFY_OBJECT); + playMovie(_startFrameAutumnOn2, _endFrameAutumnOn2, MOVIE_WAIT_FOR_FINISH | MOVIE_NOTIFY_OBJECT); } else { - playMovie(_startFrameAutumnOn1, _endFrameAutumnOn1, MOVIE_GAMESTATE | MOVIE_NOTIFY_OBJECT); + playMovie(_startFrameAutumnOn1, _endFrameAutumnOn1, MOVIE_WAIT_FOR_FINISH | MOVIE_NOTIFY_OBJECT); } break; case SEASON_WINTER: if (_gotSpeechCentre) { - playMovie(_startFrameWinterOn2, _endFrameWinterOn2, MOVIE_GAMESTATE | MOVIE_NOTIFY_OBJECT); + playMovie(_startFrameWinterOn2, _endFrameWinterOn2, MOVIE_WAIT_FOR_FINISH | MOVIE_NOTIFY_OBJECT); } else { - playMovie(_startFrameWinterOn1, _endFrameWinterOn1, MOVIE_GAMESTATE | MOVIE_NOTIFY_OBJECT); + playMovie(_startFrameWinterOn1, _endFrameWinterOn1, MOVIE_WAIT_FOR_FINISH | MOVIE_NOTIFY_OBJECT); } break; case SEASON_SPRING: - playMovie(_startFrameSpringOn, _endFrameSpringOn, MOVIE_GAMESTATE | MOVIE_NOTIFY_OBJECT); + playMovie(_startFrameSpringOn, _endFrameSpringOn, MOVIE_WAIT_FOR_FINISH | MOVIE_NOTIFY_OBJECT); break; default: diff --git a/engines/titanic/game/captains_wheel.cpp b/engines/titanic/game/captains_wheel.cpp index 72d3cf70d9..7a21047908 100644 --- a/engines/titanic/game/captains_wheel.cpp +++ b/engines/titanic/game/captains_wheel.cpp @@ -80,7 +80,7 @@ bool CCaptainsWheel::LeaveViewMsg(CLeaveViewMsg *msg) { _fieldE0 = false; CTurnOff offMsg; offMsg.execute(this); - playMovie(162, 168, MOVIE_GAMESTATE); + playMovie(162, 168, MOVIE_WAIT_FOR_FINISH); } return true; @@ -91,11 +91,11 @@ bool CCaptainsWheel::ActMsg(CActMsg *msg) { if (_fieldE0) { CTurnOn onMsg; onMsg.execute("RatchetySound"); - playMovie(8, 142, MOVIE_NOTIFY_OBJECT | MOVIE_GAMESTATE); + playMovie(8, 142, MOVIE_NOTIFY_OBJECT | MOVIE_WAIT_FOR_FINISH); } } else if (msg->_action == "Honk") { if (_fieldE0) { - playMovie(150, 160, MOVIE_NOTIFY_OBJECT | MOVIE_GAMESTATE); + playMovie(150, 160, MOVIE_NOTIFY_OBJECT | MOVIE_WAIT_FOR_FINISH); } } else if (msg->_action == "Go") { if (!_fieldE0) { @@ -105,7 +105,7 @@ bool CCaptainsWheel::ActMsg(CActMsg *msg) { CTurnOff offMsg; offMsg.execute(this); - playMovie(162, 168, MOVIE_NOTIFY_OBJECT | MOVIE_GAMESTATE); + playMovie(162, 168, MOVIE_NOTIFY_OBJECT | MOVIE_WAIT_FOR_FINISH); } } else if (msg->_action == "Cruise") { if (_fieldE0) { @@ -115,7 +115,7 @@ bool CCaptainsWheel::ActMsg(CActMsg *msg) { CTurnOff offMsg; offMsg.execute(this); - playMovie(162, 168, MOVIE_NOTIFY_OBJECT | MOVIE_GAMESTATE); + playMovie(162, 168, MOVIE_NOTIFY_OBJECT | MOVIE_WAIT_FOR_FINISH); } } else if (msg->_action == "SetDestin") { playSound("a#44.wav"); diff --git a/engines/titanic/game/cdrom.cpp b/engines/titanic/game/cdrom.cpp index 0d1cd3a6f2..d8d31ecc1a 100644 --- a/engines/titanic/game/cdrom.cpp +++ b/engines/titanic/game/cdrom.cpp @@ -38,21 +38,21 @@ CCDROM::CCDROM() : CGameObject() { void CCDROM::save(SimpleFile *file, int indent) { file->writeNumberLine(1, indent); - file->writePoint(_tempPos, indent); + file->writePoint(_centroid, indent); CGameObject::save(file, indent); } void CCDROM::load(SimpleFile *file) { file->readNumber(); - _tempPos = file->readPoint(); + _centroid = file->readPoint(); CGameObject::load(file); } bool CCDROM::MouseDragStartMsg(CMouseDragStartMsg *msg) { if (checkStartDragging(msg)) { hideMouse(); - _tempPos = msg->_mousePos - _bounds; - setPosition(msg->_mousePos - _tempPos); + _centroid = msg->_mousePos - _bounds; + setPosition(msg->_mousePos - _centroid); return true; } else { return false; @@ -77,7 +77,7 @@ bool CCDROM::MouseDragEndMsg(CMouseDragEndMsg *msg) { } bool CCDROM::MouseDragMoveMsg(CMouseDragMoveMsg *msg) { - setPosition(msg->_mousePos - _tempPos); + setPosition(msg->_mousePos - _centroid); return true; } diff --git a/engines/titanic/game/cdrom.h b/engines/titanic/game/cdrom.h index 017914830c..12175f6450 100644 --- a/engines/titanic/game/cdrom.h +++ b/engines/titanic/game/cdrom.h @@ -36,7 +36,7 @@ class CCDROM : public CGameObject { bool MouseDragMoveMsg(CMouseDragMoveMsg *msg); bool ActMsg(CActMsg *msg); private: - Point _tempPos; + Point _centroid; public: CLASSDEF; CCDROM(); diff --git a/engines/titanic/game/chicken_dispensor.cpp b/engines/titanic/game/chicken_dispensor.cpp index 8a56f43fff..89873dcc4d 100644 --- a/engines/titanic/game/chicken_dispensor.cpp +++ b/engines/titanic/game/chicken_dispensor.cpp @@ -89,10 +89,10 @@ bool CChickenDispensor::StatusChangeMsg(CStatusChangeMsg *msg) { setVisible(true); if (_disabled) { - playMovie(0, 12, MOVIE_NOTIFY_OBJECT | MOVIE_GAMESTATE); + playMovie(0, 12, MOVIE_NOTIFY_OBJECT | MOVIE_WAIT_FOR_FINISH); playSound("z#400.wav"); } else { - playMovie(12, 16, MOVIE_NOTIFY_OBJECT | MOVIE_GAMESTATE); + playMovie(12, 16, MOVIE_NOTIFY_OBJECT | MOVIE_WAIT_FOR_FINISH); } break; @@ -186,7 +186,7 @@ bool CChickenDispensor::MouseDragStartMsg(CMouseDragStartMsg *msg) { bool CChickenDispensor::TurnOff(CTurnOff *msg) { if (getMovieFrame() != 16) setVisible(false); - playMovie(16, 12, MOVIE_NOTIFY_OBJECT | MOVIE_GAMESTATE); + playMovie(16, 12, MOVIE_NOTIFY_OBJECT | MOVIE_WAIT_FOR_FINISH); _dispensed = false; return true; diff --git a/engines/titanic/game/code_wheel.cpp b/engines/titanic/game/code_wheel.cpp index 441fddec02..ebffd3b570 100644 --- a/engines/titanic/game/code_wheel.cpp +++ b/engines/titanic/game/code_wheel.cpp @@ -77,13 +77,13 @@ bool CodeWheel::MouseButtonDownMsg(CMouseButtonDownMsg *msg) { _state = (_state + 1) % 15; playMovie(START_FRAMES[_state], END_FRAMES[_state], - MOVIE_GAMESTATE | MOVIE_NOTIFY_OBJECT); + MOVIE_WAIT_FOR_FINISH | MOVIE_NOTIFY_OBJECT); } else { if (_state == _field108) _field110 = true; playMovie(START_FRAMES[14 - _state] + 68, END_FRAMES[14 - _state] + 68, - MOVIE_GAMESTATE | MOVIE_NOTIFY_OBJECT); + MOVIE_WAIT_FOR_FINISH | MOVIE_NOTIFY_OBJECT); _state = (_state <= 0) ? 14 : _state - 1; } diff --git a/engines/titanic/game/computer_screen.cpp b/engines/titanic/game/computer_screen.cpp index 98bef6eb63..7d549d0497 100644 --- a/engines/titanic/game/computer_screen.cpp +++ b/engines/titanic/game/computer_screen.cpp @@ -47,10 +47,10 @@ void CComputerScreen::load(SimpleFile *file) { bool CComputerScreen::ActMsg(CActMsg *msg) { if (msg->_action == "newCD1" || msg->_action == "newCD2") { - playMovie(27, 53, MOVIE_GAMESTATE); - playMovie(19, 26, MOVIE_GAMESTATE); + playMovie(27, 53, MOVIE_WAIT_FOR_FINISH); + playMovie(19, 26, MOVIE_WAIT_FOR_FINISH); } else if (msg->_action == "newSTCD") { - playMovie(0, 18, MOVIE_GAMESTATE | MOVIE_NOTIFY_OBJECT); + playMovie(0, 18, MOVIE_WAIT_FOR_FINISH | MOVIE_NOTIFY_OBJECT); } return true; diff --git a/engines/titanic/game/end_sequence_control.cpp b/engines/titanic/game/end_sequence_control.cpp index 033a7752a3..0f3a97c3a2 100644 --- a/engines/titanic/game/end_sequence_control.cpp +++ b/engines/titanic/game/end_sequence_control.cpp @@ -77,7 +77,7 @@ bool CEndSequenceControl::EnterRoomMsg(CEnterRoomMsg *msg) { bool CEndSequenceControl::EnterViewMsg(CEnterViewMsg *msg) { movieSetAudioTiming(true); - playMovie(MOVIE_NOTIFY_OBJECT | MOVIE_GAMESTATE); + playMovie(MOVIE_NOTIFY_OBJECT | MOVIE_WAIT_FOR_FINISH); return true; } diff --git a/engines/titanic/game/fan_control.cpp b/engines/titanic/game/fan_control.cpp index ca664764ea..7ed22fd560 100644 --- a/engines/titanic/game/fan_control.cpp +++ b/engines/titanic/game/fan_control.cpp @@ -121,7 +121,7 @@ bool CFanControl::StatusChangeMsg(CStatusChangeMsg *msg) { // It's puret time incTransitions(); _starlingsDying = true; - playMovie(12, 18, MOVIE_NOTIFY_OBJECT | MOVIE_GAMESTATE); + playMovie(12, 18, MOVIE_NOTIFY_OBJECT | MOVIE_WAIT_FOR_FINISH); } else { playMovie(12, 18, 0); } diff --git a/engines/titanic/game/games_console.cpp b/engines/titanic/game/games_console.cpp index 40311f70ee..6c13f4b862 100644 --- a/engines/titanic/game/games_console.cpp +++ b/engines/titanic/game/games_console.cpp @@ -56,7 +56,7 @@ bool CGamesConsole::MouseButtonDownMsg(CMouseButtonDownMsg *msg) { bool CGamesConsole::LeaveViewMsg(CLeaveViewMsg *msg) { if (_active) { _active = false; - playMovie(23, 44, MOVIE_GAMESTATE); + playMovie(23, 44, MOVIE_WAIT_FOR_FINISH); } return true; diff --git a/engines/titanic/game/glass_smasher.cpp b/engines/titanic/game/glass_smasher.cpp index 2123f2dfd0..7de034c2ee 100644 --- a/engines/titanic/game/glass_smasher.cpp +++ b/engines/titanic/game/glass_smasher.cpp @@ -42,7 +42,7 @@ void CGlassSmasher::load(SimpleFile *file) { bool CGlassSmasher::StatusChangeMsg(CStatusChangeMsg *msg) { setVisible(true); playSound("b#40.wav"); - playMovie(MOVIE_NOTIFY_OBJECT | MOVIE_GAMESTATE); + playMovie(MOVIE_NOTIFY_OBJECT | MOVIE_WAIT_FOR_FINISH); return true; } diff --git a/engines/titanic/game/gondolier/gondolier_base.cpp b/engines/titanic/game/gondolier/gondolier_base.cpp index f3dc31c9f5..8b753ec264 100644 --- a/engines/titanic/game/gondolier/gondolier_base.cpp +++ b/engines/titanic/game/gondolier/gondolier_base.cpp @@ -28,45 +28,45 @@ BEGIN_MESSAGE_MAP(CGondolierBase, CGameObject) ON_MESSAGE(PuzzleSolvedMsg) END_MESSAGE_MAP() -int CGondolierBase::_v1; +bool CGondolierBase::_chestOpen; bool CGondolierBase::_puzzleSolved; int CGondolierBase::_volume1; int CGondolierBase::_v4; -int CGondolierBase::_v5; int CGondolierBase::_volume2; int CGondolierBase::_v7; -int CGondolierBase::_v8; -int CGondolierBase::_v9; -int CGondolierBase::_v10; +bool CGondolierBase::_rightSliderHooked; +bool CGondolierBase::_leftSliderHooked; +bool CGondolierBase::_priorLeftSliderHooked; +bool CGondolierBase::_priorRightSliderHooked; void CGondolierBase::save(SimpleFile *file, int indent) { file->writeNumberLine(1, indent); - file->writeNumberLine(_v1, indent); + file->writeNumberLine(_chestOpen, indent); file->writeNumberLine(_puzzleSolved, indent); file->writeNumberLine(_volume1, indent); file->writeNumberLine(_v4, indent); - file->writeNumberLine(_v5, indent); + file->writeNumberLine(_rightSliderHooked, indent); file->writeNumberLine(_volume2, indent); file->writeNumberLine(_v7, indent); - file->writeNumberLine(_v8, indent); - file->writeNumberLine(_v9, indent); - file->writeNumberLine(_v10, indent); + file->writeNumberLine(_leftSliderHooked, indent); + file->writeNumberLine(_priorLeftSliderHooked, indent); + file->writeNumberLine(_priorRightSliderHooked, indent); CGameObject::save(file, indent); } void CGondolierBase::load(SimpleFile *file) { file->readNumber(); - _v1 = file->readNumber(); + _chestOpen = file->readNumber(); _puzzleSolved = file->readNumber(); _volume1 = file->readNumber(); _v4 = file->readNumber(); - _v5 = file->readNumber(); + _rightSliderHooked = file->readNumber(); _volume2 = file->readNumber(); _v7 = file->readNumber(); - _v8 = file->readNumber(); - _v9 = file->readNumber(); - _v10 = file->readNumber(); + _leftSliderHooked = file->readNumber(); + _priorLeftSliderHooked = file->readNumber(); + _priorRightSliderHooked = file->readNumber(); CGameObject::load(file); } diff --git a/engines/titanic/game/gondolier/gondolier_base.h b/engines/titanic/game/gondolier/gondolier_base.h index 06d77ba85f..3b5df9f371 100644 --- a/engines/titanic/game/gondolier/gondolier_base.h +++ b/engines/titanic/game/gondolier/gondolier_base.h @@ -31,16 +31,16 @@ class CGondolierBase : public CGameObject { DECLARE_MESSAGE_MAP; bool PuzzleSolvedMsg(CPuzzleSolvedMsg *msg); protected: - static int _v1; + static bool _chestOpen; static bool _puzzleSolved; static int _volume1; static int _v4; - static int _v5; static int _volume2; static int _v7; - static int _v8; - static int _v9; - static int _v10; + static bool _leftSliderHooked; + static bool _rightSliderHooked; + static bool _priorLeftSliderHooked; + static bool _priorRightSliderHooked; public: CLASSDEF; diff --git a/engines/titanic/game/gondolier/gondolier_chest.cpp b/engines/titanic/game/gondolier/gondolier_chest.cpp index cf6656732b..6058b582f7 100644 --- a/engines/titanic/game/gondolier/gondolier_chest.cpp +++ b/engines/titanic/game/gondolier/gondolier_chest.cpp @@ -41,13 +41,13 @@ void CGondolierChest::load(SimpleFile *file) { } bool CGondolierChest::MouseButtonDownMsg(CMouseButtonDownMsg *msg) { - if (!_v1) + if (!_chestOpen) playMovie(0, 14, MOVIE_NOTIFY_OBJECT); else if (msg->_mousePos.y < 330) return false; - else if (!_v8 && !_v5) { + else if (!_leftSliderHooked && !_rightSliderHooked) { playMovie(14, 29, 0); - _v1 = 0; + _chestOpen = false; } return true; @@ -55,7 +55,7 @@ bool CGondolierChest::MouseButtonDownMsg(CMouseButtonDownMsg *msg) { bool CGondolierChest::MovieEndMsg(CMovieEndMsg *msg) { if (msg->_endFrame == 14) - _v1 = 1; + _chestOpen = true; return true; } diff --git a/engines/titanic/game/gondolier/gondolier_mixer.cpp b/engines/titanic/game/gondolier/gondolier_mixer.cpp index fc71ddd357..205d1f42da 100644 --- a/engines/titanic/game/gondolier/gondolier_mixer.cpp +++ b/engines/titanic/game/gondolier/gondolier_mixer.cpp @@ -141,7 +141,7 @@ bool CGondolierMixer::SignalObject(CSignalObject *msg) { if (msg->_strValue == "Fly") { _v4 = CLIP(msg->_numValue, 0, 10); - if (!_v8) { + if (!_leftSliderHooked) { _v7 = 10 - _v4; CStatusChangeMsg statusMsg; statusMsg._newStatus = _v7; @@ -152,7 +152,7 @@ bool CGondolierMixer::SignalObject(CSignalObject *msg) { if (msg->_strValue == "Tos") { _v7 = CLIP(msg->_numValue, 0, 10); - if (!_v5) { + if (!_rightSliderHooked) { _v4 = 10 - _v7; CStatusChangeMsg statusMsg; statusMsg._newStatus = _v4; @@ -160,7 +160,7 @@ bool CGondolierMixer::SignalObject(CSignalObject *msg) { } } - if (!_v4 && !_v7 && _v5 && _v8) { + if (!_v4 && !_v7 && _rightSliderHooked && _leftSliderHooked) { _puzzleSolved = true; CStatusChangeMsg statusMsg; statusMsg._newStatus = 1; diff --git a/engines/titanic/game/gondolier/gondolier_slider.cpp b/engines/titanic/game/gondolier/gondolier_slider.cpp index e7ca61de9c..b5edac57d4 100644 --- a/engines/titanic/game/gondolier/gondolier_slider.cpp +++ b/engines/titanic/game/gondolier/gondolier_slider.cpp @@ -24,7 +24,10 @@ namespace Titanic { -static const int ARRAY[11] = { 0, 0, 1, 4, 9, 15, 21, 27, 32, 35, 36 }; +/** + * Y offsets within slider for each successive thumbnail position + */ +static const int Y_OFFSETS[11] = { 0, 0, 1, 4, 9, 15, 21, 27, 32, 35, 36 }; BEGIN_MESSAGE_MAP(CGondolierSlider, CGondolierBase) ON_MESSAGE(MouseButtonDownMsg) @@ -40,86 +43,66 @@ BEGIN_MESSAGE_MAP(CGondolierSlider, CGondolierBase) END_MESSAGE_MAP() CGondolierSlider::CGondolierSlider() : CGondolierBase(), - _fieldBC(0), _fieldC0(0), _fieldC4(0), _fieldC8(0), - _arrayIndex(0), _string1("NULL"), _fieldFC(0), _field118(0) { + _sliderIndex(0), _stringUnused("NULL"), _sliderNum(0), _dragging(false) { } void CGondolierSlider::save(SimpleFile *file, int indent) { file->writeNumberLine(1, indent); - file->writeNumberLine(_fieldBC, indent); - file->writeNumberLine(_fieldC0, indent); - file->writeNumberLine(_fieldC4, indent); - file->writeNumberLine(_fieldC8, indent); - file->writeNumberLine(_sliderRect1.left, indent); - file->writeNumberLine(_sliderRect1.top, indent); - file->writeNumberLine(_sliderRect1.right, indent); - file->writeNumberLine(_sliderRect1.bottom, indent); - file->writeNumberLine(_sliderRect2.left, indent); - file->writeNumberLine(_sliderRect2.top, indent); - file->writeNumberLine(_sliderRect2.right, indent); - file->writeNumberLine(_sliderRect2.bottom, indent); - file->writeNumberLine(_sliderRect1.left, indent); - file->writeQuotedLine(_string1, indent); - file->writeNumberLine(_fieldFC, indent); - file->writeQuotedLine(_string2, indent); - file->writeQuotedLine(_string3, indent); - file->writeNumberLine(_field118, indent); + file->writeRect(_rectUnused, indent); + file->writeRect(_thumbRect, indent); + file->writeRect(_defaultThumbRect, indent); + file->writeNumberLine(_sliderIndex, indent); + file->writeQuotedLine(_stringUnused, indent); + file->writeNumberLine(_sliderNum, indent); + file->writeQuotedLine(_armName, indent); + file->writeQuotedLine(_signalTarget, indent); + file->writeNumberLine(_dragging, indent); CGondolierBase::save(file, indent); } void CGondolierSlider::load(SimpleFile *file) { file->readNumber(); - _fieldBC = file->readNumber(); - _fieldC0 = file->readNumber(); - _fieldC4 = file->readNumber(); - _fieldC8 = file->readNumber(); - _sliderRect1.left = file->readNumber(); - _sliderRect1.top = file->readNumber(); - _sliderRect1.right = file->readNumber(); - _sliderRect1.bottom = file->readNumber(); - _sliderRect2.left = file->readNumber(); - _sliderRect2.top = file->readNumber(); - _sliderRect2.right = file->readNumber(); - _sliderRect2.bottom = file->readNumber(); - _arrayIndex = file->readNumber(); - _string1 = file->readString(); - _fieldFC = file->readNumber(); - _string2 = file->readString(); - _string3 = file->readString(); - _field118 = file->readNumber(); + _rectUnused = file->readRect(); + _thumbRect = file->readRect(); + _defaultThumbRect = file->readRect(); + _sliderIndex = file->readNumber(); + _stringUnused = file->readString(); + _sliderNum = file->readNumber(); + _armName = file->readString(); + _signalTarget = file->readString(); + _dragging = file->readNumber(); CGondolierBase::load(file); } bool CGondolierSlider::MouseButtonDownMsg(CMouseButtonDownMsg *msg) { - if (!_v1) + if (!_chestOpen) return false; - if (_fieldFC ? _v5 : _v8) + if (_sliderNum ? _rightSliderHooked : _leftSliderHooked) return false; - return _sliderRect1.contains(msg->_mousePos); + return _thumbRect.contains(msg->_mousePos); } bool CGondolierSlider::MouseDragMoveMsg(CMouseDragMoveMsg *msg) { - if (!(_fieldFC ? _v5 : _v8)) { + if (!(_sliderNum ? _rightSliderHooked : _leftSliderHooked)) { int minVal = 0x7FFFFFFF; int foundIndex = -1; - int yp = (_sliderRect2.top + _sliderRect2.bottom) / 2 + int yp = (_defaultThumbRect.top + _defaultThumbRect.bottom) / 2 + _bounds.top - msg->_mousePos.y; for (int idx = 0; idx < 11; ++idx) { - int yv = yp + ARRAY[idx]; - if (yv < 0) - yv = -yv; - if (yv < minVal) { - minVal = yv; + int yDiff = ABS(yp + Y_OFFSETS[idx]); + + if (yDiff < minVal) { + minVal = yDiff; foundIndex = idx; } } if (foundIndex >= 0) { - _arrayIndex = foundIndex; + _sliderIndex = foundIndex; CSignalObject signalMsg; signalMsg.execute(this); } @@ -135,70 +118,70 @@ bool CGondolierSlider::EnterViewMsg(CEnterViewMsg *msg) { } bool CGondolierSlider::MouseDragStartMsg(CMouseDragStartMsg *msg) { - if (!_v1) + if (!_chestOpen) return false; - if (_fieldFC ? _v5 : _v8) + if (_sliderNum ? _rightSliderHooked : _leftSliderHooked) return false; - _field118 = checkStartDragging(msg); - return _field118; + _dragging = checkStartDragging(msg); + return _dragging; } bool CGondolierSlider::StatusChangeMsg(CStatusChangeMsg *msg) { - _arrayIndex = CLIP(10 - msg->_newStatus, 0, 10); - _sliderRect1 = _sliderRect2; - _sliderRect1.translate(_bounds.left, _bounds.top); - _sliderRect1.translate(0, ARRAY[_arrayIndex]); + _sliderIndex = CLIP(10 - msg->_newStatus, 0, 10); + _thumbRect = _defaultThumbRect; + _thumbRect.translate(_bounds.left, _bounds.top); + _thumbRect.translate(0, Y_OFFSETS[_sliderIndex]); - loadFrame(_arrayIndex); + loadFrame(_sliderIndex); return true; } bool CGondolierSlider::MouseDragEndMsg(CMouseDragEndMsg *msg) { - _field118 = false; + _dragging = false; return true; } bool CGondolierSlider::IsHookedOnMsg(CIsHookedOnMsg *msg) { - if (_fieldFC ? _v5 : _v8) + if (_sliderNum ? _rightSliderHooked : _leftSliderHooked) return false; - if (!_sliderRect1.intersects(msg->_rect)) { - _string2 = CString(); - msg->_result = false; + if (!_thumbRect.intersects(msg->_rect)) { + _armName = CString(); + msg->_isHooked = false; } else { - _string2 = _string1; - if (_fieldFC) { - _v5 = _v9 = 1; + _armName = msg->_armName; + if (_sliderNum) { + _rightSliderHooked = _priorLeftSliderHooked = true; } else { - _v8 = _v10 = 1; + _leftSliderHooked = _priorRightSliderHooked = true; } - msg->_result = true; + msg->_isHooked = true; } return true; } bool CGondolierSlider::FrameMsg(CFrameMsg *msg) { - if (_fieldFC ? _v5 : _v8) { - if (_arrayIndex < 10) { - ++_arrayIndex; + if (_sliderNum ? _rightSliderHooked : _leftSliderHooked) { + if (_sliderIndex < 10) { + ++_sliderIndex; CSignalObject signalMsg; signalMsg.execute(this); int yp = 0; - if (_arrayIndex > 0) - yp = ARRAY[_arrayIndex] - ARRAY[_arrayIndex - 1]; + if (_sliderIndex > 0) + yp = Y_OFFSETS[_sliderIndex] - Y_OFFSETS[_sliderIndex - 1]; - if (!_string2.empty()) { + if (!_armName.empty()) { CTranslateObjectMsg transMsg; transMsg._delta = Point(0, yp); - transMsg.execute(_string2); + transMsg.execute(_armName); } } - } else if (_fieldFC ? _v10 : _v9) { - if (!_field118 && !_puzzleSolved && _arrayIndex > 0) { + } else if (_sliderNum ? _priorRightSliderHooked : _priorLeftSliderHooked) { + if (!_dragging && !_puzzleSolved && _sliderIndex > 0) { CSignalObject signalMsg; signalMsg.execute(this); } @@ -208,28 +191,28 @@ bool CGondolierSlider::FrameMsg(CFrameMsg *msg) { } bool CGondolierSlider::SignalObject(CSignalObject *msg) { - _arrayIndex = CLIP(_arrayIndex, 0, 10); - _sliderRect1 = _sliderRect2; - _sliderRect1.translate(_bounds.left, _bounds.top); - _sliderRect1.translate(0, ARRAY[_arrayIndex]); - loadFrame(_arrayIndex); + _sliderIndex = CLIP(_sliderIndex, 0, 10); + _thumbRect = _defaultThumbRect; + _thumbRect.translate(_bounds.left, _bounds.top); + _thumbRect.translate(0, Y_OFFSETS[_sliderIndex]); + loadFrame(_sliderIndex); CSignalObject signalMsg; - signalMsg._numValue = 10 - _arrayIndex; - signalMsg._strValue = _fieldFC ? "Fly" : "Tos"; - signalMsg.execute(_string3); + signalMsg._numValue = 10 - _sliderIndex; + signalMsg._strValue = _sliderNum ? "Fly" : "Tos"; + signalMsg.execute(_signalTarget); return true; } bool CGondolierSlider::ActMsg(CActMsg *msg) { if (msg->_action == "Unhook") { - if (_fieldFC) { - _v5 = _v9 = 0; - _v10 = _v8; + if (_sliderNum) { + _rightSliderHooked = _priorLeftSliderHooked = false; + _priorRightSliderHooked = _leftSliderHooked; } else { - _v8 = _v10 = 0; - _v9 = _v5; + _leftSliderHooked = _priorRightSliderHooked = false; + _priorLeftSliderHooked = _rightSliderHooked; } } diff --git a/engines/titanic/game/gondolier/gondolier_slider.h b/engines/titanic/game/gondolier/gondolier_slider.h index d1562f5b2d..0679c0d993 100644 --- a/engines/titanic/game/gondolier/gondolier_slider.h +++ b/engines/titanic/game/gondolier/gondolier_slider.h @@ -40,18 +40,15 @@ class CGondolierSlider : public CGondolierBase { bool SignalObject(CSignalObject *msg); bool ActMsg(CActMsg *msg); private: - int _fieldBC; - int _fieldC0; - int _fieldC4; - int _fieldC8; - Rect _sliderRect1; - Rect _sliderRect2; - int _arrayIndex; - CString _string1; - int _fieldFC; - CString _string2; - CString _string3; - bool _field118; + Rect _rectUnused; + Rect _thumbRect; + Rect _defaultThumbRect; + int _sliderIndex; + CString _stringUnused; + int _sliderNum; + CString _armName; + CString _signalTarget; + bool _dragging; public: CLASSDEF; CGondolierSlider(); diff --git a/engines/titanic/game/hammer_dispensor.cpp b/engines/titanic/game/hammer_dispensor.cpp index 2450868b14..82aeec12cb 100644 --- a/engines/titanic/game/hammer_dispensor.cpp +++ b/engines/titanic/game/hammer_dispensor.cpp @@ -77,9 +77,9 @@ bool CHammerDispensor::EnterViewMsg(CEnterViewMsg *msg) { bool CHammerDispensor::LeaveViewMsg(CLeaveViewMsg *msg) { if (_isOpen) - playMovie(32, 50, MOVIE_NOTIFY_OBJECT | MOVIE_GAMESTATE); + playMovie(32, 50, MOVIE_NOTIFY_OBJECT | MOVIE_WAIT_FOR_FINISH); else - playMovie(0, 7, MOVIE_NOTIFY_OBJECT | MOVIE_GAMESTATE); + playMovie(0, 7, MOVIE_NOTIFY_OBJECT | MOVIE_WAIT_FOR_FINISH); _panUp = true; _isOpen = false; diff --git a/engines/titanic/game/head_slot.cpp b/engines/titanic/game/head_slot.cpp index 06c366abd6..b0b7ee14be 100644 --- a/engines/titanic/game/head_slot.cpp +++ b/engines/titanic/game/head_slot.cpp @@ -101,13 +101,13 @@ bool CHeadSlot::EnterViewMsg(CEnterViewMsg *msg) { _cursorId = CURSOR_ARROW; if (_v1 == 1 || _string1 == "Working") { - playMovie(_fieldE0, _fieldE4, MOVIE_GAMESTATE); + playMovie(_fieldE0, _fieldE4, MOVIE_WAIT_FOR_FINISH); _fieldEC = true; } else if (_fieldBC) { - playMovie(_fieldE0, _fieldE8, MOVIE_GAMESTATE); + playMovie(_fieldE0, _fieldE8, MOVIE_WAIT_FOR_FINISH); _fieldEC = false; } else { - playMovie(0, _fieldDC, MOVIE_GAMESTATE); + playMovie(0, _fieldDC, MOVIE_WAIT_FOR_FINISH); } addTimer(5000 + getRandomNumber(3000)); @@ -120,11 +120,11 @@ bool CHeadSlot::LeaveViewMsg(CLeaveViewMsg *msg) { if (_fieldBC) { loadFrame(_fieldE0); - playMovie(_fieldE0, _fieldE8, MOVIE_GAMESTATE); + playMovie(_fieldE0, _fieldE8, MOVIE_WAIT_FOR_FINISH); _fieldEC = false; } else { loadFrame(_fieldDC); - playMovie(_fieldDC, _fieldE0, MOVIE_GAMESTATE); + playMovie(_fieldDC, _fieldE0, MOVIE_WAIT_FOR_FINISH); } _fieldEC = false; diff --git a/engines/titanic/game/head_smash_event.cpp b/engines/titanic/game/head_smash_event.cpp index 5ec3d299d5..dd5e516b0d 100644 --- a/engines/titanic/game/head_smash_event.cpp +++ b/engines/titanic/game/head_smash_event.cpp @@ -42,7 +42,7 @@ void CHeadSmashEvent::load(SimpleFile *file) { bool CHeadSmashEvent::ActMsg(CActMsg *msg) { if (msg->_action == "PlayToEnd") { setVisible(true); - playMovie(MOVIE_NOTIFY_OBJECT | MOVIE_GAMESTATE); + playMovie(MOVIE_NOTIFY_OBJECT | MOVIE_WAIT_FOR_FINISH); } return true; diff --git a/engines/titanic/game/long_stick_dispenser.cpp b/engines/titanic/game/long_stick_dispenser.cpp index bf2dae53be..c340cae75b 100644 --- a/engines/titanic/game/long_stick_dispenser.cpp +++ b/engines/titanic/game/long_stick_dispenser.cpp @@ -109,9 +109,9 @@ bool CLongStickDispenser::MouseButtonDownMsg(CMouseButtonDownMsg *msg) { bool CLongStickDispenser::LeaveViewMsg(CLeaveViewMsg *msg) { if (_fieldC0 == 1) { if (_fieldC4) { - playMovie(19, 38, MOVIE_GAMESTATE); + playMovie(19, 38, MOVIE_WAIT_FOR_FINISH); } else { - playMovie(0, 18, MOVIE_GAMESTATE); + playMovie(0, 18, MOVIE_WAIT_FOR_FINISH); _fieldBC = 1; } diff --git a/engines/titanic/game/nut_replacer.cpp b/engines/titanic/game/nut_replacer.cpp index 6b05d1d0e9..3b1247fd8c 100644 --- a/engines/titanic/game/nut_replacer.cpp +++ b/engines/titanic/game/nut_replacer.cpp @@ -41,7 +41,7 @@ void CNutReplacer::load(SimpleFile *file) { bool CNutReplacer::ReplaceBowlAndNutsMsg(CReplaceBowlAndNutsMsg *msg) { setVisible(true); - playMovie(MOVIE_GAMESTATE | MOVIE_NOTIFY_OBJECT); + playMovie(MOVIE_WAIT_FOR_FINISH | MOVIE_NOTIFY_OBJECT); return true; } diff --git a/engines/titanic/game/parrot/parrot_nut_eater.cpp b/engines/titanic/game/parrot/parrot_nut_eater.cpp index b9697d7b61..7196d76ccb 100644 --- a/engines/titanic/game/parrot/parrot_nut_eater.cpp +++ b/engines/titanic/game/parrot/parrot_nut_eater.cpp @@ -67,7 +67,7 @@ bool CParrotNutEater::ReplaceBowlAndNutsMsg(CReplaceBowlAndNutsMsg *msg) { bool CParrotNutEater::NutPuzzleMsg(CNutPuzzleMsg *msg) { if (msg->_value == "Jiggle") { setVisible(true); - playMovie(MOVIE_NOTIFY_OBJECT | MOVIE_GAMESTATE); + playMovie(MOVIE_NOTIFY_OBJECT | MOVIE_WAIT_FOR_FINISH); movieEvent(68); movieEvent(132); playSound("z#215.wav"); diff --git a/engines/titanic/game/phonograph.cpp b/engines/titanic/game/phonograph.cpp index 2b7bc98244..b86fa0b6e0 100644 --- a/engines/titanic/game/phonograph.cpp +++ b/engines/titanic/game/phonograph.cpp @@ -34,8 +34,8 @@ BEGIN_MESSAGE_MAP(CPhonograph, CMusicPlayer) END_MESSAGE_MAP() CPhonograph::CPhonograph() : CMusicPlayer(), - _isPlaying(false), _isRecording(false), _isDisabled(false), _fieldEC(0), - _fieldF0(0), _fieldF4(0) { + _isPlaying(false), _isRecording(false), _isDisabled(false), + _playUnpressedFrame(false), _playPressedFrame(false), _unused5(0) { } void CPhonograph::save(SimpleFile *file, int indent) { @@ -44,9 +44,9 @@ void CPhonograph::save(SimpleFile *file, int indent) { file->writeNumberLine(_isPlaying, indent); file->writeNumberLine(_isRecording, indent); file->writeNumberLine(_isDisabled, indent); - file->writeNumberLine(_fieldEC, indent); - file->writeNumberLine(_fieldF0, indent); - file->writeNumberLine(_fieldF4, indent); + file->writeNumberLine(_playUnpressedFrame, indent); + file->writeNumberLine(_playPressedFrame, indent); + file->writeNumberLine(_unused5, indent); CMusicPlayer::save(file, indent); } @@ -57,9 +57,9 @@ void CPhonograph::load(SimpleFile *file) { _isPlaying = file->readNumber(); _isRecording = file->readNumber(); _isDisabled = file->readNumber(); - _fieldEC = file->readNumber(); - _fieldF0 = file->readNumber(); - _fieldF4 = file->readNumber(); + _playUnpressedFrame = file->readNumber(); + _playPressedFrame = file->readNumber(); + _unused5 = file->readNumber(); CMusicPlayer::load(file); } @@ -98,7 +98,6 @@ bool CPhonograph::PhonographStopMsg(CPhonographStopMsg *msg) { if (!holderMsg._isPresent) return true; - _isPlaying = false; CQueryCylinderMsg cylinderMsg; cylinderMsg.execute(holderMsg._target); diff --git a/engines/titanic/game/phonograph.h b/engines/titanic/game/phonograph.h index 4cce6ecefd..6630a18f27 100644 --- a/engines/titanic/game/phonograph.h +++ b/engines/titanic/game/phonograph.h @@ -41,9 +41,9 @@ protected: bool _isPlaying; bool _isRecording; bool _isDisabled; - int _fieldEC; - int _fieldF0; - int _fieldF4; + int _playUnpressedFrame; + int _playPressedFrame; + int _unused5; public: CLASSDEF; CPhonograph(); diff --git a/engines/titanic/game/phonograph_lid.cpp b/engines/titanic/game/phonograph_lid.cpp index e4e5f4882c..cde9415e02 100644 --- a/engines/titanic/game/phonograph_lid.cpp +++ b/engines/titanic/game/phonograph_lid.cpp @@ -76,7 +76,7 @@ bool CPhonographLid::LockPhonographMsg(CLockPhonographMsg *msg) { bool CPhonographLid::LeaveViewMsg(CLeaveViewMsg *msg) { if (_open) { - playMovie(27, 55, MOVIE_GAMESTATE); + playMovie(27, 55, MOVIE_WAIT_FOR_FINISH); _open = false; } diff --git a/engines/titanic/game/play_on_act.cpp b/engines/titanic/game/play_on_act.cpp index 9c368c335d..ffed45c11f 100644 --- a/engines/titanic/game/play_on_act.cpp +++ b/engines/titanic/game/play_on_act.cpp @@ -45,7 +45,7 @@ bool CPlayOnAct::ActMsg(CActMsg *msg) { playMovie(0); } else if (msg->_action == "PlayToEnd") { setVisible(true); - playMovie(MOVIE_GAMESTATE); + playMovie(MOVIE_WAIT_FOR_FINISH); } return true; diff --git a/engines/titanic/game/port_hole.cpp b/engines/titanic/game/port_hole.cpp index 25807b1b1d..9111561588 100644 --- a/engines/titanic/game/port_hole.cpp +++ b/engines/titanic/game/port_hole.cpp @@ -79,7 +79,7 @@ bool CPortHole::MovieEndMsg(CMovieEndMsg *msg) { bool CPortHole::LeaveViewMsg(CLeaveViewMsg *msg) { if (_open) { playSound(_closeSoundName); - playMovie(14, 26, MOVIE_NOTIFY_OBJECT | MOVIE_GAMESTATE); + playMovie(14, 26, MOVIE_NOTIFY_OBJECT | MOVIE_WAIT_FOR_FINISH); _open = false; } diff --git a/engines/titanic/game/replacement_ear.cpp b/engines/titanic/game/replacement_ear.cpp index e8bd384207..d1274e92db 100644 --- a/engines/titanic/game/replacement_ear.cpp +++ b/engines/titanic/game/replacement_ear.cpp @@ -40,7 +40,7 @@ void CReplacementEar::load(SimpleFile *file) { bool CReplacementEar::VisibleMsg(CVisibleMsg *msg) { setVisible(true); - playMovie(MOVIE_GAMESTATE); + playMovie(MOVIE_WAIT_FOR_FINISH); playSound("z#64.wav"); return true; } diff --git a/engines/titanic/game/restaurant_cylinder_holder.cpp b/engines/titanic/game/restaurant_cylinder_holder.cpp index 8a2581b32b..eddd4d2288 100644 --- a/engines/titanic/game/restaurant_cylinder_holder.cpp +++ b/engines/titanic/game/restaurant_cylinder_holder.cpp @@ -70,11 +70,11 @@ bool CRestaurantCylinderHolder::EjectCylinderMsg(CEjectCylinderMsg *msg) { if (_isOpen) { playClip(hasCylinder ? "CloseHolder_Full" : "CloseHolder_Empty", - MOVIE_NOTIFY_OBJECT | MOVIE_GAMESTATE); + MOVIE_NOTIFY_OBJECT | MOVIE_WAIT_FOR_FINISH); _dropEnabled = true; } else { playClip(hasCylinder ? "OpenHolder_Full" : "OpenHolder_Empty", - MOVIE_NOTIFY_OBJECT | MOVIE_GAMESTATE); + MOVIE_NOTIFY_OBJECT | MOVIE_WAIT_FOR_FINISH); } playSound(_ejectSoundName, 50); diff --git a/engines/titanic/game/restaurant_phonograph.cpp b/engines/titanic/game/restaurant_phonograph.cpp index a2c8892201..3b35514a52 100644 --- a/engines/titanic/game/restaurant_phonograph.cpp +++ b/engines/titanic/game/restaurant_phonograph.cpp @@ -36,11 +36,11 @@ BEGIN_MESSAGE_MAP(CRestaurantPhonograph, CPhonograph) END_MESSAGE_MAP() CRestaurantPhonograph::CRestaurantPhonograph() : CPhonograph(), - _fieldF8(1), _field114(0) {} + _isLocked(true), _field114(0) {} void CRestaurantPhonograph::save(SimpleFile *file, int indent) { file->writeNumberLine(1, indent); - file->writeNumberLine(_fieldF8, indent); + file->writeNumberLine(_isLocked, indent); file->writeQuotedLine(_ejectSoundName, indent); file->writeQuotedLine(_stopSoundName, indent); @@ -51,7 +51,7 @@ void CRestaurantPhonograph::save(SimpleFile *file, int indent) { void CRestaurantPhonograph::load(SimpleFile *file) { file->readNumber(); - _fieldF8 = file->readNumber(); + _isLocked = file->readNumber(); _ejectSoundName = file->readString(); _stopSoundName = file->readString(); _field114 = file->readNumber(); @@ -60,20 +60,22 @@ void CRestaurantPhonograph::load(SimpleFile *file) { } bool CRestaurantPhonograph::MouseButtonDownMsg(CMouseButtonDownMsg *msg) { - if (!_fieldF8 && !_isPlaying) { + if (!_isLocked && !_isPlaying) { CQueryCylinderHolderMsg holderMsg; holderMsg.execute(this); if (!holderMsg._isOpen) { + // Start playing immediately CPhonographPlayMsg playMsg; playMsg.execute(this); } else if (holderMsg._isPresent) { + // Need to close the cylinder holder before playing CEjectCylinderMsg ejectMsg; - ejectMsg.execute(this); + ejectMsg.execute(this, nullptr, MSGFLAG_SCAN); _isDisabled = true; if (_field114) { - loadFrame(_fieldEC); + loadFrame(_playUnpressedFrame); playSound(_ejectSoundName); } } @@ -83,9 +85,11 @@ bool CRestaurantPhonograph::MouseButtonDownMsg(CMouseButtonDownMsg *msg) { } bool CRestaurantPhonograph::PhonographPlayMsg(CPhonographPlayMsg *msg) { + CPhonograph::PhonographPlayMsg(msg); + if (_isPlaying) { if (findView() == getView() && (!_isDisabled || !_field114)) { - loadFrame(_fieldEC); + loadFrame(_playUnpressedFrame); playSound(_ejectSoundName); } @@ -94,7 +98,7 @@ bool CRestaurantPhonograph::PhonographPlayMsg(CPhonographPlayMsg *msg) { CRestaurantMusicChanged musicMsg(nameMsg._name); musicMsg.execute(findRoom()); } else { - loadFrame(_fieldF0); + loadFrame(_playPressedFrame); } return true; @@ -105,11 +109,11 @@ bool CRestaurantPhonograph::PhonographStopMsg(CPhonographStopMsg *msg) { CPhonograph::PhonographStopMsg(msg); if (_isPlaying) { - loadFrame(_fieldF0); + loadFrame(_playUnpressedFrame); + } else { + loadFrame(_playPressedFrame); if (flag) playSound(_stopSoundName); - } else { - loadFrame(_fieldEC); } return true; @@ -135,12 +139,12 @@ bool CRestaurantPhonograph::EjectCylinderMsg(CEjectCylinderMsg *msg) { } bool CRestaurantPhonograph::QueryPhonographState(CQueryPhonographState *msg) { - msg->_value = _fieldF8; + msg->_value = _isLocked; return true; } bool CRestaurantPhonograph::LockPhonographMsg(CLockPhonographMsg *msg) { - _fieldF8 = msg->_value; + _isLocked = msg->_value; return true; } diff --git a/engines/titanic/game/restaurant_phonograph.h b/engines/titanic/game/restaurant_phonograph.h index 8f72eaf58f..67248447ab 100644 --- a/engines/titanic/game/restaurant_phonograph.h +++ b/engines/titanic/game/restaurant_phonograph.h @@ -37,7 +37,7 @@ class CRestaurantPhonograph : public CPhonograph { bool QueryPhonographState(CQueryPhonographState *msg); bool LockPhonographMsg(CLockPhonographMsg *msg); private: - int _fieldF8; + bool _isLocked; CString _ejectSoundName; CString _stopSoundName; int _field114; diff --git a/engines/titanic/game/season_background.cpp b/engines/titanic/game/season_background.cpp index 20ad6aca1d..d663c405ce 100644 --- a/engines/titanic/game/season_background.cpp +++ b/engines/titanic/game/season_background.cpp @@ -65,39 +65,39 @@ bool CSeasonBackground::ChangeSeasonMsg(CChangeSeasonMsg *msg) { switch (_seasonNum) { case SEASON_SUMMER: - playMovie(0, 45, MOVIE_NOTIFY_OBJECT | MOVIE_GAMESTATE); + playMovie(0, 45, MOVIE_NOTIFY_OBJECT | MOVIE_WAIT_FOR_FINISH); _defaultFrame = 45; break; case SEASON_AUTUMN: if (_flag) { - playMovie(232, 278, MOVIE_NOTIFY_OBJECT | MOVIE_GAMESTATE); + playMovie(232, 278, MOVIE_NOTIFY_OBJECT | MOVIE_WAIT_FOR_FINISH); _defaultFrame = 278; } else { - playMovie(45, 91, MOVIE_NOTIFY_OBJECT | MOVIE_GAMESTATE); + playMovie(45, 91, MOVIE_NOTIFY_OBJECT | MOVIE_WAIT_FOR_FINISH); _defaultFrame = 91; } break; case SEASON_WINTER: if (_flag) { - playMovie(278, 326, MOVIE_NOTIFY_OBJECT | MOVIE_GAMESTATE); + playMovie(278, 326, MOVIE_NOTIFY_OBJECT | MOVIE_WAIT_FOR_FINISH); _defaultFrame = 326; } else { CStatusChangeMsg changeMsg; changeMsg._newStatus = 0; changeMsg.execute("PickUpSpeechCentre"); - playMovie(91, 139, MOVIE_NOTIFY_OBJECT | MOVIE_GAMESTATE); + playMovie(91, 139, MOVIE_NOTIFY_OBJECT | MOVIE_WAIT_FOR_FINISH); _defaultFrame = 139; } break; case SEASON_SPRING: if (_flag) { - playMovie(326, 417, MOVIE_NOTIFY_OBJECT | MOVIE_GAMESTATE); + playMovie(326, 417, MOVIE_NOTIFY_OBJECT | MOVIE_WAIT_FOR_FINISH); _defaultFrame = 417; } else { - playMovie(139, 228, MOVIE_NOTIFY_OBJECT | MOVIE_GAMESTATE); + playMovie(139, 228, MOVIE_NOTIFY_OBJECT | MOVIE_WAIT_FOR_FINISH); _defaultFrame = 228; } break; diff --git a/engines/titanic/game/sgt/armchair.cpp b/engines/titanic/game/sgt/armchair.cpp index 681b1ae61d..6c0e7fe0ca 100644 --- a/engines/titanic/game/sgt/armchair.cpp +++ b/engines/titanic/game/sgt/armchair.cpp @@ -55,7 +55,7 @@ bool CArmchair::TurnOn(CTurnOn *msg) { _endFrame = 10; } - playMovie(_startFrame, _endFrame, MOVIE_GAMESTATE); + playMovie(_startFrame, _endFrame, MOVIE_WAIT_FOR_FINISH); playSound("b#0.wav"); _statics->_armchair = "Open"; _isClosed = false; @@ -70,7 +70,7 @@ bool CArmchair::TurnOff(CTurnOff *msg) { _startFrame = 11; _endFrame = 21; _isClosed = true; - playMovie(11, 21, MOVIE_GAMESTATE | MOVIE_NOTIFY_OBJECT); + playMovie(11, 21, MOVIE_WAIT_FOR_FINISH | MOVIE_NOTIFY_OBJECT); playSound("b#0.wav"); } diff --git a/engines/titanic/game/sgt/basin.cpp b/engines/titanic/game/sgt/basin.cpp index ce34a49250..fe3216e002 100644 --- a/engines/titanic/game/sgt/basin.cpp +++ b/engines/titanic/game/sgt/basin.cpp @@ -48,7 +48,7 @@ bool CBasin::TurnOn(CTurnOn *msg) { _isClosed = false; _startFrame = 0; _endFrame = 6; - playMovie(0, 6, MOVIE_GAMESTATE); + playMovie(0, 6, MOVIE_WAIT_FOR_FINISH); playSound("b#13.wav"); } @@ -61,7 +61,7 @@ bool CBasin::TurnOff(CTurnOff *msg) { _isClosed = true; _startFrame = 8; _endFrame = 14; - playMovie(8, 14, MOVIE_NOTIFY_OBJECT | MOVIE_GAMESTATE); + playMovie(8, 14, MOVIE_NOTIFY_OBJECT | MOVIE_WAIT_FOR_FINISH); playSound("b#13.wav"); } diff --git a/engines/titanic/game/sgt/bedfoot.cpp b/engines/titanic/game/sgt/bedfoot.cpp index d84a73f0a5..8f90e0f100 100644 --- a/engines/titanic/game/sgt/bedfoot.cpp +++ b/engines/titanic/game/sgt/bedfoot.cpp @@ -53,7 +53,7 @@ bool CBedfoot::TurnOn(CTurnOn *msg) { playSound("b#4.wav"); } - playMovie(_startFrame, _endFrame, MOVIE_GAMESTATE); + playMovie(_startFrame, _endFrame, MOVIE_WAIT_FOR_FINISH); } else if (_statics->_bedfoot == "RestingUnderTV") { _isClosed = false; _startFrame = 8; @@ -65,7 +65,7 @@ bool CBedfoot::TurnOn(CTurnOn *msg) { playSound("192_436_bed hits floor.wav"); } - playMovie(_startFrame, _endFrame, MOVIE_GAMESTATE); + playMovie(_startFrame, _endFrame, MOVIE_WAIT_FOR_FINISH); } if (_statics->_bedfoot == "Open") @@ -94,7 +94,7 @@ bool CBedfoot::TurnOff(CTurnOff *msg) { _endFrame = 25; } - playMovie(_startFrame, _endFrame, MOVIE_GAMESTATE); + playMovie(_startFrame, _endFrame, MOVIE_WAIT_FOR_FINISH); playSound("b#7.wav"); } else if (_statics->_bedfoot == "NotOnWashstand" && _statics->_bedhead == "ClosedWrong") { @@ -109,14 +109,14 @@ bool CBedfoot::TurnOff(CTurnOff *msg) { _endFrame = 25; } - playMovie(_startFrame, _endFrame, MOVIE_GAMESTATE); + playMovie(_startFrame, _endFrame, MOVIE_WAIT_FOR_FINISH); playSound("b#7.wav"); } else if (_statics->_bedfoot == "RestingUTV" && _statics->_tv == "Closed") { _statics->_bedfoot = "Closed"; _startFrame = 25; _endFrame = 30; - playMovie(25, 30, MOVIE_GAMESTATE); + playMovie(25, 30, MOVIE_WAIT_FOR_FINISH); playSound("b#7.wav"); } diff --git a/engines/titanic/game/sgt/bedhead.cpp b/engines/titanic/game/sgt/bedhead.cpp index b42c1c1146..1356afea83 100644 --- a/engines/titanic/game/sgt/bedhead.cpp +++ b/engines/titanic/game/sgt/bedhead.cpp @@ -110,7 +110,7 @@ bool CBedhead::TurnOn(CTurnOn *msg) { setVisible(true); _statics->_bedhead = entry._name4; - playMovie(entry._startFrame, entry._endFrame, MOVIE_NOTIFY_OBJECT | MOVIE_GAMESTATE); + playMovie(entry._startFrame, entry._endFrame, MOVIE_NOTIFY_OBJECT | MOVIE_WAIT_FOR_FINISH); playSound("b#6.wav"); _isClosed = false; } @@ -157,7 +157,7 @@ bool CBedhead::TurnOff(CTurnOff *msg) { setVisible(true); _statics->_bedhead = entry._name4; - playMovie(entry._startFrame, entry._endFrame, MOVIE_NOTIFY_OBJECT | MOVIE_GAMESTATE); + playMovie(entry._startFrame, entry._endFrame, MOVIE_NOTIFY_OBJECT | MOVIE_WAIT_FOR_FINISH); playSound("193_436_bed fold up 1.wav"); _isClosed = false; } diff --git a/engines/titanic/game/sgt/chest_of_drawers.cpp b/engines/titanic/game/sgt/chest_of_drawers.cpp index 9e00d4fde7..648308fc8f 100644 --- a/engines/titanic/game/sgt/chest_of_drawers.cpp +++ b/engines/titanic/game/sgt/chest_of_drawers.cpp @@ -46,7 +46,7 @@ bool CChestOfDrawers::TurnOn(CTurnOn *msg) { _statics->_chestOfDrawers = "Open"; _startFrame = 1; _endFrame = 14; - playMovie(1, 14, MOVIE_NOTIFY_OBJECT | MOVIE_GAMESTATE); + playMovie(1, 14, MOVIE_NOTIFY_OBJECT | MOVIE_WAIT_FOR_FINISH); playSound("b#11.wav"); } @@ -62,7 +62,7 @@ bool CChestOfDrawers::TurnOff(CTurnOff *msg) { _startFrame = 14; _endFrame = 27; - playMovie(14, 27, MOVIE_NOTIFY_OBJECT | MOVIE_GAMESTATE); + playMovie(14, 27, MOVIE_NOTIFY_OBJECT | MOVIE_WAIT_FOR_FINISH); playSound("b#11.wav"); } diff --git a/engines/titanic/game/sgt/desk.cpp b/engines/titanic/game/sgt/desk.cpp index a31efe9e5d..1aea9a8ab3 100644 --- a/engines/titanic/game/sgt/desk.cpp +++ b/engines/titanic/game/sgt/desk.cpp @@ -47,7 +47,7 @@ bool CDesk::TurnOn(CTurnOn *msg) { _isClosed = false; _startFrame = 1; _endFrame = 26; - playMovie(1, 26, MOVIE_NOTIFY_OBJECT | MOVIE_GAMESTATE); + playMovie(1, 26, MOVIE_NOTIFY_OBJECT | MOVIE_WAIT_FOR_FINISH); playSound("b#12.wav"); } @@ -64,7 +64,7 @@ bool CDesk::TurnOff(CTurnOff *msg) { _isClosed = true; _startFrame = 26; _endFrame = 51; - playMovie(26, 51, MOVIE_GAMESTATE); + playMovie(26, 51, MOVIE_WAIT_FOR_FINISH); playSound("b#9.wav"); } diff --git a/engines/titanic/game/sgt/deskchair.cpp b/engines/titanic/game/sgt/deskchair.cpp index 2b25f57d03..23b6ad64d7 100644 --- a/engines/titanic/game/sgt/deskchair.cpp +++ b/engines/titanic/game/sgt/deskchair.cpp @@ -48,7 +48,7 @@ bool CDeskchair::TurnOn(CTurnOn *msg) { _isClosed = false; _startFrame = 0; _endFrame = 16; - playMovie(0, 16, MOVIE_GAMESTATE); + playMovie(0, 16, MOVIE_WAIT_FOR_FINISH); playSound("b#8.wav"); } @@ -61,7 +61,7 @@ bool CDeskchair::TurnOff(CTurnOff *msg) { _isClosed = true; _startFrame = 16; _endFrame = 32; - playMovie(16, 32, MOVIE_NOTIFY_OBJECT | MOVIE_GAMESTATE); + playMovie(16, 32, MOVIE_NOTIFY_OBJECT | MOVIE_WAIT_FOR_FINISH); playSound("b#2.wav"); } diff --git a/engines/titanic/game/sgt/drawer.cpp b/engines/titanic/game/sgt/drawer.cpp index 68752b3d2f..7288bbdc61 100644 --- a/engines/titanic/game/sgt/drawer.cpp +++ b/engines/titanic/game/sgt/drawer.cpp @@ -53,7 +53,7 @@ bool CDrawer::TurnOn(CTurnOn *msg) { _endFrame = 75; setVisible(true); _statics->_drawer = "Open"; - playMovie(_startFrame, _endFrame, MOVIE_NOTIFY_OBJECT | MOVIE_GAMESTATE); + playMovie(_startFrame, _endFrame, MOVIE_NOTIFY_OBJECT | MOVIE_WAIT_FOR_FINISH); playSound("b#10.wav"); } @@ -66,7 +66,7 @@ bool CDrawer::TurnOff(CTurnOff *msg) { _startFrame = 75; _endFrame = 100; _isClosed = true; - playMovie(_startFrame, _endFrame, MOVIE_NOTIFY_OBJECT | MOVIE_GAMESTATE); + playMovie(_startFrame, _endFrame, MOVIE_NOTIFY_OBJECT | MOVIE_WAIT_FOR_FINISH); playSound("b#10.wav"); } diff --git a/engines/titanic/game/sgt/sgt_doors.cpp b/engines/titanic/game/sgt/sgt_doors.cpp index 71eae9800c..2dabd21077 100644 --- a/engines/titanic/game/sgt/sgt_doors.cpp +++ b/engines/titanic/game/sgt/sgt_doors.cpp @@ -60,9 +60,9 @@ bool CSGTDoors::EnterViewMsg(CEnterViewMsg *msg) { if (pet->getRooms1CC() == 1) playMovie(START_FRAMES[roomNum], END_FRAMES[roomNum], - MOVIE_NOTIFY_OBJECT | MOVIE_GAMESTATE); + MOVIE_NOTIFY_OBJECT | MOVIE_WAIT_FOR_FINISH); else - playMovie(0, 12, MOVIE_NOTIFY_OBJECT | MOVIE_GAMESTATE); + playMovie(0, 12, MOVIE_NOTIFY_OBJECT | MOVIE_WAIT_FOR_FINISH); } return true; @@ -89,9 +89,9 @@ bool CSGTDoors::LeaveRoomMsg(CLeaveRoomMsg *msg) { if (pet->getRooms1CC() == 1) playMovie(START_FRAMES[roomNum], END_FRAMES[roomNum], - MOVIE_NOTIFY_OBJECT | MOVIE_GAMESTATE); + MOVIE_NOTIFY_OBJECT | MOVIE_WAIT_FOR_FINISH); else - playMovie(12, 25, MOVIE_NOTIFY_OBJECT | MOVIE_GAMESTATE); + playMovie(12, 25, MOVIE_NOTIFY_OBJECT | MOVIE_WAIT_FOR_FINISH); } return true; diff --git a/engines/titanic/game/sgt/sgt_navigation.cpp b/engines/titanic/game/sgt/sgt_navigation.cpp index 031226226f..d0b57ba1ec 100644 --- a/engines/titanic/game/sgt/sgt_navigation.cpp +++ b/engines/titanic/game/sgt/sgt_navigation.cpp @@ -71,9 +71,9 @@ bool CSGTNavigation::StatusChangeMsg(CStatusChangeMsg *msg) { int startVal = pet->getRooms1CC(); if (startVal > _statics->_changeViewNum) - playMovie(FRAMES[startVal], FRAMES[_statics->_changeViewNum], MOVIE_GAMESTATE); + playMovie(FRAMES[startVal], FRAMES[_statics->_changeViewNum], MOVIE_WAIT_FOR_FINISH); else - playMovie(FRAMES[startVal + 3], FRAMES[_statics->_changeViewNum + 3], MOVIE_GAMESTATE); + playMovie(FRAMES[startVal + 3], FRAMES[_statics->_changeViewNum + 3], MOVIE_WAIT_FOR_FINISH); _cursorId = _statics->_changeViewNum != 1 ? CURSOR_MOVE_FORWARD : CURSOR_INVALID; diff --git a/engines/titanic/game/sgt/sgt_tv.cpp b/engines/titanic/game/sgt/sgt_tv.cpp index ebec334781..5ce7c5b20e 100644 --- a/engines/titanic/game/sgt/sgt_tv.cpp +++ b/engines/titanic/game/sgt/sgt_tv.cpp @@ -46,7 +46,7 @@ bool CSGTTV::TurnOff(CTurnOff *msg) { _isClosed = true; _startFrame = 6; _endFrame = 12; - playMovie(6, 12, MOVIE_NOTIFY_OBJECT | MOVIE_GAMESTATE); + playMovie(6, 12, MOVIE_NOTIFY_OBJECT | MOVIE_WAIT_FOR_FINISH); } return true; @@ -60,7 +60,7 @@ bool CSGTTV::TurnOn(CTurnOn *msg) { _isClosed = false; _startFrame = 1; _endFrame = 6; - playMovie(1, 6, MOVIE_GAMESTATE); + playMovie(1, 6, MOVIE_WAIT_FOR_FINISH); } return true; diff --git a/engines/titanic/game/sgt/toilet.cpp b/engines/titanic/game/sgt/toilet.cpp index 544cdda0c6..0f796c2b9d 100644 --- a/engines/titanic/game/sgt/toilet.cpp +++ b/engines/titanic/game/sgt/toilet.cpp @@ -50,7 +50,7 @@ bool CToilet::TurnOn(CTurnOn *msg) { _isClosed = false; _startFrame = 0; _endFrame = 11; - playMovie(0, 11, MOVIE_GAMESTATE); + playMovie(0, 11, MOVIE_WAIT_FOR_FINISH); playSound("b#1.wav"); } @@ -64,7 +64,7 @@ bool CToilet::TurnOff(CTurnOff *msg) { _isClosed = true; _startFrame = 11; _endFrame = 18; - playMovie(11, 18, MOVIE_GAMESTATE); + playMovie(11, 18, MOVIE_WAIT_FOR_FINISH); playSound("b#1.wav"); } diff --git a/engines/titanic/game/sgt/vase.cpp b/engines/titanic/game/sgt/vase.cpp index f9ee292be2..e7b427c28f 100644 --- a/engines/titanic/game/sgt/vase.cpp +++ b/engines/titanic/game/sgt/vase.cpp @@ -47,7 +47,7 @@ bool CVase::TurnOn(CTurnOn *msg) { _isClosed = false; _startFrame = 1; _endFrame = 12; - playMovie(1, 12, MOVIE_GAMESTATE); + playMovie(1, 12, MOVIE_WAIT_FOR_FINISH); } return true; @@ -61,7 +61,7 @@ bool CVase::TurnOff(CTurnOff *msg) { _isClosed = true; _startFrame = 12; _endFrame = 25; - playMovie(12, 25, MOVIE_NOTIFY_OBJECT | MOVIE_GAMESTATE); + playMovie(12, 25, MOVIE_NOTIFY_OBJECT | MOVIE_WAIT_FOR_FINISH); } return true; diff --git a/engines/titanic/game/sgt/washstand.cpp b/engines/titanic/game/sgt/washstand.cpp index 5be722bec4..217e36c1e9 100644 --- a/engines/titanic/game/sgt/washstand.cpp +++ b/engines/titanic/game/sgt/washstand.cpp @@ -47,7 +47,7 @@ bool CWashstand::TurnOn(CTurnOn *msg) { _isClosed = false; _startFrame = 0; _endFrame = 14; - playMovie(0, 14, MOVIE_GAMESTATE); + playMovie(0, 14, MOVIE_WAIT_FOR_FINISH); playSound("b#14.wav"); } @@ -61,7 +61,7 @@ bool CWashstand::TurnOff(CTurnOff *msg) { _isClosed = true; _startFrame = 14; _endFrame = 28; - playMovie(14, 28, MOVIE_GAMESTATE | MOVIE_NOTIFY_OBJECT); + playMovie(14, 28, MOVIE_WAIT_FOR_FINISH | MOVIE_NOTIFY_OBJECT); playSound("b#14.wav"); } diff --git a/engines/titanic/game/starling_puret.cpp b/engines/titanic/game/starling_puret.cpp index 2f1909d963..f598f134ba 100644 --- a/engines/titanic/game/starling_puret.cpp +++ b/engines/titanic/game/starling_puret.cpp @@ -59,7 +59,7 @@ bool CStarlingPuret::EnterViewMsg(CEnterViewMsg *msg) { changeMsg._newStatus = 1; changeMsg.execute("PromDeckStarlings"); - playMovie(MOVIE_NOTIFY_OBJECT | MOVIE_GAMESTATE); + playMovie(MOVIE_NOTIFY_OBJECT | MOVIE_WAIT_FOR_FINISH); CSignalObject signalMsg; signalMsg._numValue = 4; signalMsg.execute("PromDeckStarlings"); diff --git a/engines/titanic/game/sub_glass.cpp b/engines/titanic/game/sub_glass.cpp index 041f49097d..48cc84815a 100644 --- a/engines/titanic/game/sub_glass.cpp +++ b/engines/titanic/game/sub_glass.cpp @@ -88,7 +88,7 @@ bool CSUBGlass::SignalObject(CSignalObject *msg) { setVisible(true); if (_signalStartFrame >= 0) { - playMovie(_signalStartFrame, _signalEndFrame, MOVIE_GAMESTATE); + playMovie(_signalStartFrame, _signalEndFrame, MOVIE_WAIT_FOR_FINISH); playSound("z#30.wav"); _fieldBC = false; } diff --git a/engines/titanic/game/sweet_bowl.cpp b/engines/titanic/game/sweet_bowl.cpp index 7a3832e7c2..a1d0dc2b01 100644 --- a/engines/titanic/game/sweet_bowl.cpp +++ b/engines/titanic/game/sweet_bowl.cpp @@ -55,7 +55,7 @@ bool CSweetBowl::EnterViewMsg(CEnterViewMsg *msg) { bool CSweetBowl::ActMsg(CActMsg *msg) { if (msg->_action == "Jiggle") { setVisible(true); - playMovie(MOVIE_GAMESTATE | MOVIE_NOTIFY_OBJECT); + playMovie(MOVIE_WAIT_FOR_FINISH | MOVIE_NOTIFY_OBJECT); playSound(getRandomNumber(1) == 1 ? "b#42.wav" : "b#43.wav"); } diff --git a/engines/titanic/game/throw_tv_down_well.cpp b/engines/titanic/game/throw_tv_down_well.cpp index be61f6e9ab..680fc7e29f 100644 --- a/engines/titanic/game/throw_tv_down_well.cpp +++ b/engines/titanic/game/throw_tv_down_well.cpp @@ -60,7 +60,7 @@ bool CThrowTVDownWell::ActMsg(CActMsg *msg) { } bool CThrowTVDownWell::EnterViewMsg(CEnterViewMsg *msg) { - playMovie(MOVIE_NOTIFY_OBJECT | MOVIE_GAMESTATE); + playMovie(MOVIE_NOTIFY_OBJECT | MOVIE_WAIT_FOR_FINISH); movieEvent(49); return true; } diff --git a/engines/titanic/game/transport/lift.cpp b/engines/titanic/game/transport/lift.cpp index a6f45bda98..8dfc55905a 100644 --- a/engines/titanic/game/transport/lift.cpp +++ b/engines/titanic/game/transport/lift.cpp @@ -120,20 +120,20 @@ bool CLift::StatusChangeMsg(CStatusChangeMsg *msg) { if (oldClass == newClass) { debugStr = CString::format("Same (%d-%d)", _startFrame, _endFrame); - playMovie(_startFrame, _endFrame, MOVIE_NOTIFY_OBJECT | MOVIE_GAMESTATE); + playMovie(_startFrame, _endFrame, MOVIE_NOTIFY_OBJECT | MOVIE_WAIT_FOR_FINISH); } else if (oldClass == 1 && newClass == 2) { debugStr = CString::format("1 to 2 (%d-108, 108-%d)", _startFrame, _endFrame); - playMovie(_startFrame, 108, MOVIE_NOTIFY_OBJECT | MOVIE_GAMESTATE); - playMovie(108, _endFrame, MOVIE_NOTIFY_OBJECT | MOVIE_GAMESTATE); + playMovie(_startFrame, 108, MOVIE_NOTIFY_OBJECT | MOVIE_WAIT_FOR_FINISH); + playMovie(108, _endFrame, MOVIE_NOTIFY_OBJECT | MOVIE_WAIT_FOR_FINISH); } else if (oldClass == 1 && newClass == 3) { debugStr = CString::format("1 to 3 (%d-108, 108-190, 190-%d)", _startFrame, _endFrame); - playMovie(_startFrame, 108, MOVIE_NOTIFY_OBJECT | MOVIE_GAMESTATE); - playMovie(108, 190, MOVIE_NOTIFY_OBJECT | MOVIE_GAMESTATE); - playMovie(190, _endFrame, MOVIE_NOTIFY_OBJECT | MOVIE_GAMESTATE); + playMovie(_startFrame, 108, MOVIE_NOTIFY_OBJECT | MOVIE_WAIT_FOR_FINISH); + playMovie(108, 190, MOVIE_NOTIFY_OBJECT | MOVIE_WAIT_FOR_FINISH); + playMovie(190, _endFrame, MOVIE_NOTIFY_OBJECT | MOVIE_WAIT_FOR_FINISH); } else { debugStr = CString::format("2 to 3 (%d-190, 190-%d)", _startFrame, _endFrame); - playMovie(_startFrame, 190, MOVIE_NOTIFY_OBJECT | MOVIE_GAMESTATE); - playMovie(190, _endFrame, MOVIE_NOTIFY_OBJECT | MOVIE_GAMESTATE); + playMovie(_startFrame, 190, MOVIE_NOTIFY_OBJECT | MOVIE_WAIT_FOR_FINISH); + playMovie(190, _endFrame, MOVIE_NOTIFY_OBJECT | MOVIE_WAIT_FOR_FINISH); } } @@ -144,20 +144,20 @@ bool CLift::StatusChangeMsg(CStatusChangeMsg *msg) { if (oldClass == newClass) { debugStr = CString::format("Same (%d-%d)", _startFrame, _endFrame); - playMovie(_startFrame, _endFrame, MOVIE_NOTIFY_OBJECT | MOVIE_GAMESTATE); + playMovie(_startFrame, _endFrame, MOVIE_NOTIFY_OBJECT | MOVIE_WAIT_FOR_FINISH); } else if (oldClass == 3 && newClass == 2) { debugStr = CString::format("3 to 2 (%d-407, 407-%d)", _startFrame, _endFrame); - playMovie(_startFrame, 407, MOVIE_NOTIFY_OBJECT | MOVIE_GAMESTATE); - playMovie(407, _endFrame, MOVIE_NOTIFY_OBJECT | MOVIE_GAMESTATE); + playMovie(_startFrame, 407, MOVIE_NOTIFY_OBJECT | MOVIE_WAIT_FOR_FINISH); + playMovie(407, _endFrame, MOVIE_NOTIFY_OBJECT | MOVIE_WAIT_FOR_FINISH); } else if (oldClass == 3 && newClass == 1) { debugStr = CString::format("3 to 1 (%d-407, 407-489, 489-%d)", _startFrame, _endFrame); - playMovie(_startFrame, 407, MOVIE_NOTIFY_OBJECT | MOVIE_GAMESTATE); - playMovie(407, 489, MOVIE_NOTIFY_OBJECT | MOVIE_GAMESTATE); - playMovie(489, _endFrame, MOVIE_NOTIFY_OBJECT | MOVIE_GAMESTATE); + playMovie(_startFrame, 407, MOVIE_NOTIFY_OBJECT | MOVIE_WAIT_FOR_FINISH); + playMovie(407, 489, MOVIE_NOTIFY_OBJECT | MOVIE_WAIT_FOR_FINISH); + playMovie(489, _endFrame, MOVIE_NOTIFY_OBJECT | MOVIE_WAIT_FOR_FINISH); } else { debugStr = CString::format("2 to 1 (%d-489, 489-%d)", _startFrame, _endFrame); - playMovie(_startFrame, 489, MOVIE_NOTIFY_OBJECT | MOVIE_GAMESTATE); - playMovie(489, _endFrame, MOVIE_NOTIFY_OBJECT | MOVIE_GAMESTATE); + playMovie(_startFrame, 489, MOVIE_NOTIFY_OBJECT | MOVIE_WAIT_FOR_FINISH); + playMovie(489, _endFrame, MOVIE_NOTIFY_OBJECT | MOVIE_WAIT_FOR_FINISH); } } diff --git a/engines/titanic/game/transport/pellerator.cpp b/engines/titanic/game/transport/pellerator.cpp index 095202d176..0228f9bc8b 100644 --- a/engines/titanic/game/transport/pellerator.cpp +++ b/engines/titanic/game/transport/pellerator.cpp @@ -83,7 +83,7 @@ bool CPellerator::StatusChangeMsg(CStatusChangeMsg *msg) { playMovie(315, 323, 0); for (int idx = 0; idx < 3; ++idx) playMovie(299, 304, 0); - playMovie(305, 313, MOVIE_GAMESTATE); + playMovie(305, 313, MOVIE_WAIT_FOR_FINISH); break; case 2: @@ -95,7 +95,7 @@ bool CPellerator::StatusChangeMsg(CStatusChangeMsg *msg) { playMovie(153, 197, 0); for (int idx = 0; idx < 5; ++idx) playMovie(253, 263, 0); - playMovie(290, 293, MOVIE_GAMESTATE); + playMovie(290, 293, MOVIE_WAIT_FOR_FINISH); break; case 4: @@ -107,7 +107,7 @@ bool CPellerator::StatusChangeMsg(CStatusChangeMsg *msg) { playMovie(253, 263, 0); for (int idx = 0; idx < 7; ++idx) playMovie(336, 341, 0); - playMovie(342, 348, MOVIE_GAMESTATE); + playMovie(342, 348, MOVIE_WAIT_FOR_FINISH); break; case 5: @@ -130,7 +130,7 @@ bool CPellerator::StatusChangeMsg(CStatusChangeMsg *msg) { playMovie(315, 323, 0); for (int idx = 0; idx < 3; ++idx) playMovie(299, 304, 0); - playMovie(305, 313, MOVIE_GAMESTATE); + playMovie(305, 313, MOVIE_WAIT_FOR_FINISH); break; case 2: @@ -139,7 +139,7 @@ bool CPellerator::StatusChangeMsg(CStatusChangeMsg *msg) { playMovie(299, 304, 0); for (int idx = 0; idx < 15; ++idx) playMovie(245, 255, 0); - playMovie(264, 267, MOVIE_GAMESTATE); + playMovie(264, 267, MOVIE_WAIT_FOR_FINISH); ++_destination; break; @@ -149,7 +149,7 @@ bool CPellerator::StatusChangeMsg(CStatusChangeMsg *msg) { playMovie(245, 255, 0); for (int idx = 0; idx < 7; ++idx) playMovie(336, 341, 0); - playMovie(342, 348, MOVIE_GAMESTATE); + playMovie(342, 348, MOVIE_WAIT_FOR_FINISH); break; case 5: @@ -160,7 +160,7 @@ bool CPellerator::StatusChangeMsg(CStatusChangeMsg *msg) { playMovie(245, 255, 0); for (int idx = 0; idx < 3; ++idx) playMovie(299, 304, 0); - playMovie(305, 313, MOVIE_GAMESTATE); + playMovie(305, 313, MOVIE_WAIT_FOR_FINISH); break; default: @@ -184,7 +184,7 @@ bool CPellerator::StatusChangeMsg(CStatusChangeMsg *msg) { playMovie(351, 359, 0); for (int idx = 0; idx < 3; ++idx) playMovie(336, 341, 0); - playMovie(342, 348, MOVIE_GAMESTATE); + playMovie(342, 348, MOVIE_WAIT_FOR_FINISH); break; case 3: @@ -196,7 +196,7 @@ bool CPellerator::StatusChangeMsg(CStatusChangeMsg *msg) { playMovie(245, 255, 0); for (int idx = 0; idx < 3; ++idx) playMovie(336, 341, 0); - playMovie(342, 348, MOVIE_GAMESTATE); + playMovie(342, 348, MOVIE_WAIT_FOR_FINISH); --_destination; break; @@ -209,7 +209,7 @@ bool CPellerator::StatusChangeMsg(CStatusChangeMsg *msg) { playMovie(78, 149, 0); for (int idx = 0; idx < 5; ++idx) playMovie(245, 255, 0); - playMovie(264, 267, MOVIE_GAMESTATE); + playMovie(264, 267, MOVIE_WAIT_FOR_FINISH); break; case 5: @@ -221,7 +221,7 @@ bool CPellerator::StatusChangeMsg(CStatusChangeMsg *msg) { playMovie(78, 149, 0); for (int idx = 0; idx < 3; ++idx) playMovie(336, 341, 0); - playMovie(342, 348, MOVIE_GAMESTATE); + playMovie(342, 348, MOVIE_WAIT_FOR_FINISH); break; default: @@ -236,7 +236,7 @@ bool CPellerator::StatusChangeMsg(CStatusChangeMsg *msg) { playMovie(351, 359, 0); for (int idx = 0; idx < 3; ++idx) playMovie(336, 341, 0); - playMovie(342, 348, MOVIE_GAMESTATE); + playMovie(342, 348, MOVIE_WAIT_FOR_FINISH); break; case 3: @@ -245,7 +245,7 @@ bool CPellerator::StatusChangeMsg(CStatusChangeMsg *msg) { playMovie(253, 263, 0); for (int idx = 0; idx < 3; ++idx) playMovie(336, 341, 0); - playMovie(342, 348, MOVIE_GAMESTATE); + playMovie(342, 348, MOVIE_WAIT_FOR_FINISH); --_destination; break; @@ -255,7 +255,7 @@ bool CPellerator::StatusChangeMsg(CStatusChangeMsg *msg) { playMovie(299, 304, 0); for (int idx = 0; idx < 15; ++idx) playMovie(253, 263, 0); - playMovie(290, 293, MOVIE_GAMESTATE); + playMovie(290, 293, MOVIE_WAIT_FOR_FINISH); break; case 5: @@ -266,7 +266,7 @@ bool CPellerator::StatusChangeMsg(CStatusChangeMsg *msg) { playMovie(253, 263, 0); for (int idx = 0; idx < 3; ++idx) playMovie(336, 341, 0); - playMovie(342, 348, MOVIE_GAMESTATE); + playMovie(342, 348, MOVIE_WAIT_FOR_FINISH); break; default: |