diff options
-rw-r--r-- | engines/sword1/screen.cpp | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/engines/sword1/screen.cpp b/engines/sword1/screen.cpp index 985c62b52d..15df92b021 100644 --- a/engines/sword1/screen.cpp +++ b/engines/sword1/screen.cpp @@ -372,11 +372,11 @@ void Screen::draw(void) { renderParallax(_parallax[0]); uint8 *src = _layerBlocks[0]; uint8 *dest = _screenBuf; - uint8 *indxScreen = NULL; if(SwordEngine::isPsx()) { - indxScreen = psxShrinkedBackgroundToIndexed(_layerBlocks[0], _scrnSizeX, _scrnSizeY); - src = indxScreen; + if (!_psxCache.decodedBackground) + _psxCache.decodedBackground = psxShrinkedBackgroundToIndexed(_layerBlocks[0], _scrnSizeX, _scrnSizeY); + src = _psxCache.decodedBackground; } for (uint16 cnty = 0; cnty < _scrnSizeY; cnty++) @@ -388,8 +388,6 @@ void Screen::draw(void) { src++; } - free(indxScreen); - } else if (!(SwordEngine::isPsx())) { memcpy(_screenBuf, _layerBlocks[0], _scrnSizeX * _scrnSizeY); } else { //We are using PSX version |