diff options
Diffstat (limited to 'engines/neverhood/palette.cpp')
-rw-r--r-- | engines/neverhood/palette.cpp | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/engines/neverhood/palette.cpp b/engines/neverhood/palette.cpp index c381f46671..134fec7163 100644 --- a/engines/neverhood/palette.cpp +++ b/engines/neverhood/palette.cpp @@ -66,6 +66,11 @@ void Palette::init() { _status = 0; _palette = new byte[1024]; _basePalette = new byte[1024]; + _palCounter = 0; + _fadeToR = 0; + _fadeToG = 0; + _fadeToB = 0; + _fadeStep = 0; } void Palette::usePalette() { @@ -114,7 +119,7 @@ void Palette::startFadeToBlack(int counter) { _fadeToG = 0; _fadeToB = 0; _palCounter = counter; - _fadeStep = 255 / counter; + _fadeStep = calculateFadeStep(counter); _status = 1; } @@ -126,7 +131,7 @@ void Palette::startFadeToWhite(int counter) { _fadeToG = 255; _fadeToB = 255; _palCounter = counter; - _fadeStep = 255 / counter; + _fadeStep = calculateFadeStep(counter); _status = 1; } @@ -135,7 +140,7 @@ void Palette::startFadeToPalette(int counter) { if (counter == 0) counter = 1; _palCounter = counter; - _fadeStep = 255 / counter; + _fadeStep = calculateFadeStep(counter); _status = 2; } @@ -198,4 +203,11 @@ void Palette::fadeColor(byte *rgb, byte toR, byte toG, byte toB) { #undef FADE } +int Palette::calculateFadeStep(int counter) { + int fadeStep = 255 / counter; + if (255 % counter) + fadeStep++; + return fadeStep; +} + } // End of namespace Neverhood |