diff options
Diffstat (limited to 'engines')
-rw-r--r-- | engines/tsage/ringworld2/ringworld2_speakers.cpp | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/engines/tsage/ringworld2/ringworld2_speakers.cpp b/engines/tsage/ringworld2/ringworld2_speakers.cpp index 3091086980..a43938230e 100644 --- a/engines/tsage/ringworld2/ringworld2_speakers.cpp +++ b/engines/tsage/ringworld2/ringworld2_speakers.cpp @@ -44,6 +44,10 @@ VisualSpeaker::VisualSpeaker(): Speaker() { } void VisualSpeaker::remove() { + _numFrames = 0; + _delayAmount = 0; + R2_GLOBALS._playStream.stop(); + if (_object2) { if (_fieldF8) { _fieldF8 = 0; @@ -1176,7 +1180,7 @@ void SpeakerQuinn300::proc15() { int v = _speakerMode; if (!_object2) { - if (R2_GLOBALS._player._characterIndex == R2_MIRANDA) { + if (R2_GLOBALS._player._characterIndex == R2_QUINN) { _object2 = &R2_GLOBALS._player; } else { assert(R2_GLOBALS._sceneManager._sceneNumber == 300); @@ -1187,9 +1191,6 @@ void SpeakerQuinn300::proc15() { _object2->hide(); _object1.postInit(); _object1.setPosition(_object2->_position); - - if (_object2->_mover) - _object2->addMover(NULL); } if (v == 0) { @@ -1205,7 +1206,7 @@ void SpeakerQuinn300::proc15() { ((SceneItem *)_action)->_sceneRegionId = 0; switch (_object2->_visage) { - case 10: + case 10: _object1.setup((v - 1) / 4 + 4010, ((v - ((v - 1) / 4 * 4) - 1) % 8) * 2 + 1, 1); break; case 302: @@ -1214,6 +1215,8 @@ void SpeakerQuinn300::proc15() { case 308: _object1.setup(308, 5, 1); break; + default: + break; } _object1.animate(ANIM_MODE_5, this); |