diff --git a/engines/draci/music.cpp b/engines/draci/music.cpp index 7e5e4066e4f..a46d7d402fd 100644 --- a/engines/draci/music.cpp +++ b/engines/draci/music.cpp @@ -125,6 +125,8 @@ void MusicPlayer::send(uint32 b) { if (!_channel[channel]) { _channel[channel] = (channel == 9) ? _driver->getPercussionChannel() : _driver->allocateChannel(); + // If a new channel is allocated during the playback, make sure + // its volume is correctly initialized. setChannelVolume(channel); } @@ -232,12 +234,6 @@ void MusicPlayer::syncVolume() { int volume = ConfMan.getInt("music_volume"); debugC(2, kDraciSoundDebugLevel, "Syncing music volume to %d", volume); setVolume(volume); - - // TODO: doesn't work in the beginning when no music is playing yet. - // It goes through all active channels (= none) and stops. Only after - // actual instruments have played in the channels, this has an effect. - // As a consequence, music is very loud in the beginning until Ctrl-F5 - // is pressed for the first time. } } // End of namespace Draci diff --git a/engines/draci/screen.cpp b/engines/draci/screen.cpp index 70e0faa40ae..8e301c0c888 100644 --- a/engines/draci/screen.cpp +++ b/engines/draci/screen.cpp @@ -88,7 +88,6 @@ void Screen::interpolatePalettes(const byte *first, const byte *second, uint16 s _palette[i * 4 + 3] = 0; } - // TODO: Investigate why this is needed // Shift the palette two bits to the left to make it brighter for (int i = start * 4; i < (start + num) * 4; ++i) { _palette[i] <<= 2; diff --git a/engines/draci/script.cpp b/engines/draci/script.cpp index 11ac5d3bd0b..59a09776ce6 100644 --- a/engines/draci/script.cpp +++ b/engines/draci/script.cpp @@ -572,6 +572,7 @@ void Script::icoStat(Common::Queue ¶ms) { } if (_vm->_mouse->getCursorType() == kNormalCursor) { + // TODO: is this correct? if (_vm->_game->getLoopStatus() == kStatusInventory) { _vm->_mouse->cursorOff(); } diff --git a/engines/draci/sprite.cpp b/engines/draci/sprite.cpp index 64374e70e3e..2b966c51a10 100644 --- a/engines/draci/sprite.cpp +++ b/engines/draci/sprite.cpp @@ -307,8 +307,8 @@ void Text::draw(Surface *surface, bool markDirty, int relX, int relY) const { _font->drawString(surface, _text, _x + relX, _y + relY, _colour, _spacing, true); } -// TODO: Handle scaled parameter properly by implementing Text scaling Common::Rect Text::getRect(const Displacement &displacement) const { + // Texts are never scaled return Common::Rect(_x + displacement.relX, _y + displacement.relY, _x + displacement.relX + _width, _y + displacement.relY + _height); } diff --git a/engines/draci/walking.cpp b/engines/draci/walking.cpp index 6f2e2950007..932259d2130 100644 --- a/engines/draci/walking.cpp +++ b/engines/draci/walking.cpp @@ -645,7 +645,7 @@ bool WalkingState::walkOnNextEdge() { Movement nextAnim = directionForNextPhase(); _lastAnimPhase = _vm->_game->playHeroAnimation(nextAnim); - // TODO: do we need to clear this callback for the animation? + // TODO: do we need to clear the callback for the turning animation? debugC(2, kDraciWalkingDebugLevel, "Turned for edge %d, starting animation %d with phase %d", _segment, nextAnim, _lastAnimPhase);