diff options
author | Johannes Schickel | 2009-10-04 17:38:15 +0000 |
---|---|---|
committer | Johannes Schickel | 2009-10-04 17:38:15 +0000 |
commit | 41e4a1ddb6b515f932f445dabbbba28351472315 (patch) | |
tree | 922e42152b6c6c574d6e8f318324eb824f1aeb30 /engines/kyra/saveload_lol.cpp | |
parent | fc4d7b7d1dc22170b8223ce723cce9a219d84c59 (diff) | |
download | scummvm-rg350-41e4a1ddb6b515f932f445dabbbba28351472315.tar.gz scummvm-rg350-41e4a1ddb6b515f932f445dabbbba28351472315.tar.bz2 scummvm-rg350-41e4a1ddb6b515f932f445dabbbba28351472315.zip |
LoL PC98: Fix thumbnail creation for quick saves and autosave.
svn-id: r44623
Diffstat (limited to 'engines/kyra/saveload_lol.cpp')
-rw-r--r-- | engines/kyra/saveload_lol.cpp | 31 |
1 files changed, 28 insertions, 3 deletions
diff --git a/engines/kyra/saveload_lol.cpp b/engines/kyra/saveload_lol.cpp index 4e15c4495c..928cb508c7 100644 --- a/engines/kyra/saveload_lol.cpp +++ b/engines/kyra/saveload_lol.cpp @@ -25,13 +25,15 @@ #ifdef ENABLE_LOL +#include "kyra/lol.h" +#include "kyra/screen_lol.h" +#include "kyra/resource.h" + #include "common/endian.h" #include "common/savefile.h" #include "common/system.h" -#include "kyra/lol.h" -#include "kyra/screen_lol.h" -#include "kyra/resource.h" +#include "graphics/scaler.h" namespace Kyra { @@ -449,6 +451,29 @@ Common::Error LoLEngine::saveGameState(int slot, const char *saveName, const Gra return Common::kNoError; } +Graphics::Surface *LoLEngine::generateSaveThumbnail() const { + if (_flags.platform != Common::kPlatformPC98) + return 0; + + uint8 *screenPal = new uint8[16 * 3]; + assert(screenPal); + _screen->getRealPalette(0, screenPal); + + uint8 *screenBuf = new uint8[Screen::SCREEN_W * Screen::SCREEN_H]; + assert(screenBuf); + + Graphics::Surface *dst = new Graphics::Surface(); + assert(dst); + + _screen->copyRegionToBuffer(0, 0, 0, 320, 200, screenBuf); + Screen_LoL::convertPC98Gfx(screenBuf, Screen::SCREEN_W, Screen::SCREEN_H, Screen::SCREEN_W); + ::createThumbnail(dst, screenBuf, Screen::SCREEN_W, Screen::SCREEN_H, screenPal); + + delete[] screenBuf; + delete[] screenPal; + return dst; +} + } // end of namespace Kyra #endif // ENABLE_LOL |