diff options
Diffstat (limited to 'engines/tsage/ringworld2')
-rw-r--r-- | engines/tsage/ringworld2/ringworld2_logic.cpp | 5 | ||||
-rw-r--r-- | engines/tsage/ringworld2/ringworld2_speakers.cpp | 30 | ||||
-rw-r--r-- | engines/tsage/ringworld2/ringworld2_speakers.h | 6 |
3 files changed, 20 insertions, 21 deletions
diff --git a/engines/tsage/ringworld2/ringworld2_logic.cpp b/engines/tsage/ringworld2/ringworld2_logic.cpp index 90df72ab32..8e5537f2d1 100644 --- a/engines/tsage/ringworld2/ringworld2_logic.cpp +++ b/engines/tsage/ringworld2/ringworld2_logic.cpp @@ -622,9 +622,8 @@ void SceneHandlerExt::process(Event &event) { } void SceneHandlerExt::postLoad(int priorSceneBeforeLoad, int currentSceneBeforeLoad) { - if (priorSceneBeforeLoad == -1 || priorSceneBeforeLoad == 50 - || currentSceneBeforeLoad == 180 || priorSceneBeforeLoad == 205) - setupPaletteMaps(); + // Set up the shading maps used for showing the player in shadows + setupPaletteMaps(); if (currentSceneBeforeLoad == 2900) { R2_GLOBALS._gfxFontNumber = 50; diff --git a/engines/tsage/ringworld2/ringworld2_speakers.cpp b/engines/tsage/ringworld2/ringworld2_speakers.cpp index a43938230e..4be3212e77 100644 --- a/engines/tsage/ringworld2/ringworld2_speakers.cpp +++ b/engines/tsage/ringworld2/ringworld2_speakers.cpp @@ -36,6 +36,7 @@ namespace Ringworld2 { VisualSpeaker::VisualSpeaker(): Speaker() { _delayAmount = 0; + _voiceDelayAmount = 0; _frameNumber = R2_GLOBALS._events.getFrameNumber(); _color1 = 8; _color2 = 0; @@ -79,8 +80,7 @@ void VisualSpeaker::signal() { _sceneText.show(); if ((R2_GLOBALS._speechSubtitles & SPEECH_VOICE) && _soundId) { - // TODO: Check global that is passed - setFrame2(/* word_55F90 */ 1); + setVoiceFrame(1); } } else if (_action && _object2) { _action->setDelay(1); @@ -108,14 +108,14 @@ void VisualSpeaker::dispatch() { } // Delay check for voice - if (_delayAmount2) { - if (frameNumber >= _frameNumber2) { - _delayAmount2 = _delayAmount2 - (_frameNumber2 - frameNumber); - _frameNumber2 = frameNumber; - - if (_delayAmount2 <= 0) { - _delayAmount2 = 0; - if (R2_GLOBALS._playStream.play(0, NULL)) { + if (_voiceDelayAmount) { + if (frameNumber >= _voiceFrameNumber) { + _voiceDelayAmount = _voiceDelayAmount - (frameNumber - _voiceFrameNumber); + _voiceFrameNumber = frameNumber; + + if (_voiceDelayAmount <= 0) { + _voiceDelayAmount = 0; + if (R2_GLOBALS._playStream.play(_soundId, NULL)) { _numFrames = 2; _soundId = 0; } else { @@ -149,8 +149,8 @@ void VisualSpeaker::synchronize(Serializer &s) { s.syncAsSint16LE(_numFrames); s.syncAsSint16LE(_delayAmount); s.syncAsUint32LE(_frameNumber); - s.syncAsSint16LE(_delayAmount2); - s.syncAsUint32LE(_frameNumber2); + s.syncAsSint16LE(_voiceDelayAmount); + s.syncAsUint32LE(_voiceFrameNumber); } void VisualSpeaker::setText(const Common::String &msg) { @@ -266,9 +266,9 @@ void VisualSpeaker::setFrame(int numFrames) { _frameNumber = R2_GLOBALS._events.getFrameNumber(); } -void VisualSpeaker::setFrame2(int numFrames) { - _delayAmount2 = numFrames; - _frameNumber2 = R2_GLOBALS._events.getFrameNumber(); +void VisualSpeaker::setVoiceFrame(int numFrames) { + _voiceDelayAmount = numFrames; + _voiceFrameNumber = R2_GLOBALS._events.getFrameNumber(); } void VisualSpeaker::setDelay(int delay) { diff --git a/engines/tsage/ringworld2/ringworld2_speakers.h b/engines/tsage/ringworld2/ringworld2_speakers.h index 1b87606381..a49bb1d3e5 100644 --- a/engines/tsage/ringworld2/ringworld2_speakers.h +++ b/engines/tsage/ringworld2/ringworld2_speakers.h @@ -49,11 +49,11 @@ public: bool _removeObject; uint32 _frameNumber; int _numFrames; - int _delayAmount2; - uint32 _frameNumber2; + int _voiceDelayAmount; + uint32 _voiceFrameNumber; private: void setFrame(int numFrames); - void setFrame2(int numFrames); + void setVoiceFrame(int numFrames); public: VisualSpeaker(); |