[Scummvm-git-logs] scummvm master -> eef9e18340b1e9c0f9c2ee66f7f2f97edf220d48
criezy
criezy at scummvm.org
Mon Jan 22 00:03:15 CET 2018
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
eef9e18340 AUDIO: Fixes Protracker Portamento effect
Commit: eef9e18340b1e9c0f9c2ee66f7f2f97edf220d48
https://github.com/scummvm/scummvm/commit/eef9e18340b1e9c0f9c2ee66f7f2f97edf220d48
Author: Joseph-Eugene Winzer (joewinzer at googlemail.com)
Date: 2018-01-21T23:03:12Z
Commit Message:
AUDIO: Fixes Protracker Portamento effect
.period overflowed if .portaToNoteSpeed > .period in the else if case
Changed paths:
audio/mods/protracker.cpp
diff --git a/audio/mods/protracker.cpp b/audio/mods/protracker.cpp
index ce52b61..d486f02 100644
--- a/audio/mods/protracker.cpp
+++ b/audio/mods/protracker.cpp
@@ -101,15 +101,13 @@ private:
void doPorta(int track) {
if (_track[track].portaToNote && _track[track].portaToNoteSpeed) {
- if (_track[track].period < _track[track].portaToNote) {
- _track[track].period += _track[track].portaToNoteSpeed;
- if (_track[track].period > _track[track].portaToNote)
- _track[track].period = _track[track].portaToNote;
- } else if (_track[track].period > _track[track].portaToNote) {
- _track[track].period -= _track[track].portaToNoteSpeed;
- if (_track[track].period < _track[track].portaToNote)
- _track[track].period = _track[track].portaToNote;
- }
+ int distance = _track[track].period - _track[track].portaToNote;
+ int sign = distance > 0 ? 1 : -1;
+
+ if ((sign * distance) > _track[track].portaToNoteSpeed)
+ _track[track].period -= sign * _track[track].portaToNoteSpeed;
+ else
+ _track[track].period = _track[track].portaToNote;
}
}
void doVibrato(int track) {
More information about the Scummvm-git-logs
mailing list