diff options
Diffstat (limited to 'engines/sword2/palette.cpp')
-rw-r--r-- | engines/sword2/palette.cpp | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/engines/sword2/palette.cpp b/engines/sword2/palette.cpp index b020359e36..35a7aea11d 100644 --- a/engines/sword2/palette.cpp +++ b/engines/sword2/palette.cpp @@ -164,8 +164,11 @@ void Screen::setPalette(int16 startEntry, int16 noEntries, byte *colourTable, ui void Screen::dimPalette(bool dim) { if (dim != _dimPalette) { _dimPalette = dim; - setSystemPalette(_palette, 0, 256); - setNeedFullRedraw(); + // If the palette is in the middle of fading, don't update it. + if (_fadeStatus != RDFADE_DOWN && _fadeStatus != RDFADE_UP) { + setSystemPalette(_palette, 0, 256); + setNeedFullRedraw(); + } } } @@ -180,7 +183,7 @@ int32 Screen::fadeUp(float time) { _fadeTotalTime = (int32)(time * 1000); _fadeStatus = RDFADE_UP; - _fadeStartTime = _vm->_system->getMillis(); + _fadeStartTime = getTick(); return RD_OK; } @@ -196,7 +199,7 @@ int32 Screen::fadeDown(float time) { _fadeTotalTime = (int32)(time * 1000); _fadeStatus = RDFADE_DOWN; - _fadeStartTime = _vm->_system->getMillis(); + _fadeStartTime = getTick(); return RD_OK; } @@ -232,7 +235,7 @@ void Screen::fadeServer() { // I don't know if this is necessary, but let's limit how often the // palette is updated, just to be safe. - currentTime = _vm->_system->getMillis(); + currentTime = getTick(); if (currentTime - previousTime <= 25) return; |