diff options
author | Torbjörn Andersson | 2008-11-09 14:32:24 +0000 |
---|---|---|
committer | Torbjörn Andersson | 2008-11-09 14:32:24 +0000 |
commit | d896c892e5e78614b2faec9c175cfd1330a0bc55 (patch) | |
tree | 785adb7a8b7c6f365cc41a199914d12354c24f85 /engines/sword2/palette.cpp | |
parent | 2e9e68fc8e1ebcfd017500165f64b97c6b6a72a8 (diff) | |
download | scummvm-rg350-d896c892e5e78614b2faec9c175cfd1330a0bc55.tar.gz scummvm-rg350-d896c892e5e78614b2faec9c175cfd1330a0bc55.tar.bz2 scummvm-rg350-d896c892e5e78614b2faec9c175cfd1330a0bc55.zip |
Allow pausing (from the outside) during credits and palette fades. Refactored the
code to distinguish outside pausing from in-game pausing, to avoid cursor-related
problems. The screen is now only dimmed during in-game pausing.
svn-id: r34957
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; |