diff options
author | Peter Kohaut | 2019-03-06 20:32:45 +0100 |
---|---|---|
committer | Peter Kohaut | 2019-03-06 20:41:02 +0100 |
commit | d4e7e957b0ec43168e2bf663fb53bbbdf7752fcb (patch) | |
tree | e55f5c9a31069046c256fb9de44f04c8b2329a99 /engines/bladerunner/actor.cpp | |
parent | b8966ff1ad4fe95cdb7be33e94d18d757031f03a (diff) | |
download | scummvm-rg350-d4e7e957b0ec43168e2bf663fb53bbbdf7752fcb.tar.gz scummvm-rg350-d4e7e957b0ec43168e2bf663fb53bbbdf7752fcb.tar.bz2 scummvm-rg350-d4e7e957b0ec43168e2bf663fb53bbbdf7752fcb.zip |
BLADERUNNER: Fixed panning of speech
Cleanup of other sound pannings
Diffstat (limited to 'engines/bladerunner/actor.cpp')
-rw-r--r-- | engines/bladerunner/actor.cpp | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/engines/bladerunner/actor.cpp b/engines/bladerunner/actor.cpp index f616614ee0..44dd3a603e 100644 --- a/engines/bladerunner/actor.cpp +++ b/engines/bladerunner/actor.cpp @@ -1142,17 +1142,16 @@ int Actor::getGoal() const { void Actor::speechPlay(int sentenceId, bool voiceOver) { Common::String name = Common::String::format( "%02d-%04d%s.AUD", _id, sentenceId, _vm->_languageCode.c_str()); - int balance = 0; + int pan = 0; if (!voiceOver && _id != BladeRunnerEngine::kActorVoiceOver) { Vector3 screenPosition = _vm->_view->calculateScreenPosition(_position); - balance = (127 * (2 * screenPosition.x - 640)) / 640; - balance = CLIP<int>(balance, -127, 127); + pan = (75 * (2 * CLIP<int>(screenPosition.x, 0, 640) - 640)) / 640; // map [0..640] to [-75..75] } _vm->_subtitles->getInGameSubsText(_id, sentenceId); _vm->_subtitles->show(); - _vm->_audioSpeech->playSpeech(name, balance); + _vm->_audioSpeech->playSpeech(name, pan); } void Actor::speechStop() { @@ -1215,12 +1214,12 @@ void Actor::acquireCluesByRelations() { int Actor::soundVolume() const { float dist = distanceFromView(_vm->_view); - return 35.0f * CLIP(1.0f - (dist / 1200.0f), 0.0f, 1.0f); + return (35 * CLIP<int>(100 - (dist / 12), 0, 100)) / 100; // map [0..1200] to [35..0] } -int Actor::soundBalance() const { +int Actor::soundPan() const { Vector3 screenPosition = _vm->_view->calculateScreenPosition(_position); - return 35.0f * (CLIP(screenPosition.x / 640.0f, 0.0f, 1.0f) * 2.0f - 1.0f); + return (35 * (2 * CLIP<int>(screenPosition.x, 0, 640) - 640)) / 640; // map [0..640] to [-35..35] } bool Actor::isObstacleBetween(const Vector3 &target) { |