Commit Graph
48 Commits
Author SHA1 Message Date
Adrian Frühwirth 00e59a3122 ALL: Load savegame thumbnail only when necessary
This commit introduces the following changes:

1. Graphics::loadThumbnail()

   Now returns a boolean and takes a new argument skipThumbnail which
   defaults to false. In case of true, loadThumbnail() reads past the
   thumbnail data in the input stream instead of actually loading the
   thumbnail. This simplifies savegame handling where, up until now,
   many engines always read the whole savegame metadata (including
   the thumbnail) and then threw away the thumbnail when not needed
   (which is in almost all cases, the most common exception being
   MetaEngine::querySaveMetaInfos() which is responsible for loading
   savegame metadata for displaying it in the GUI launcher.

2. readSavegameHeader()

   Engines which already implement such a method (name varies) now take
   a new argument skipThumbnail (default: true) which is passed
   through to loadThumbnail(). This means that the default case for
   readSavegameHeader() is now _not_ loading the thumbnail from a
   savegame and just reading past it. In those cases, e.g.
   querySaveMetaInfos(), where we actually are interested in loading
   the thumbnail readSavegameHeader() needs to explicitely be called
   with skipThumbnail == false.

   Engines whose readSavegameHeader() (name varies) already takes an
   argument loadThumbnail have been adapted to have a similar
   prototype and semantics.
   I.e. readSaveHeader(in, loadThumbnail, header) now is
   readSaveHeader(in, header, skipThumbnail).

3. Error handling

   Engines which previously did not check the return value of
   readSavegameHeader() (name varies) now do so ensuring that possibly
   broken savegames (be it a broken thumbnail or something else) don't
   make it into the GUI launcher list in the first place.
2018-04-07 09:26:20 +02:00
Eugene Sandulenko 1f2290cd30 FULLPIPE: Fix bug #10317: Save game metadata is missing 2017-12-02 00:53:57 +01:00
Colin Snover c9327f2985 FULLPIPE: Fix memory leaks of PreloadItems 2017-11-18 22:35:12 +01:00
Colin Snover bb26bf7994 FULLPIPE: Fix memory leaks and unnecessary indirect allocations in Motion and Sc2 2017-11-18 22:35:12 +01:00
Colin Snover e2367f3ed2 FULLPIPE: Remove unnecessary and unsafe C-style casts 2017-11-18 22:35:12 +01:00
Colin Snover 5c89c39325 FULLPIPE: Fix memory leak of save game thumbnail 2017-11-18 22:35:12 +01:00
Colin Snover ff96db23df FULLPIPE: Fix leaks and unnecessary extra allocations in FullpipeEngine 2017-11-18 22:35:12 +01:00
Filippos Karapetis c3a3d7ef98 FULLPIPE: Change _gameName into a Common::String 2016-12-20 01:55:51 +02:00
Eugene Sandulenko a62d29ab86 FULLPIPE: Revert memory leak fixing as that introduced tons of regressions 2016-12-13 18:15:41 +01:00
Eugene Sandulenko c5e55878ad FULLPIPE: Plug more memory leaks 2016-12-12 23:35:32 +01:00
Eugene Sandulenko ffe52deeed FULLPIPE: Implement switching scenes from the map 2016-12-09 16:58:31 +01:00
Eugene Sandulenko a687ae3daf FULLPIPE: Add support loading/saving from GMM 2016-09-27 19:10:07 +02:00
Eugene Sandulenko cf4452388c FULLPIPE: Save ScummVM-specific header with the saves 2016-09-20 19:34:48 +02:00
Eugene Sandulenko ca1eb70fd8 FULLPIPE: Read playtime and save date from save headers 2016-09-20 19:34:48 +02:00
Eugene Sandulenko 61d8ec8b7f FULLPIPE: Implemented savefile loading 2016-09-18 22:45:37 +02:00
Eugene Sandulenko a6d71c941d FULLPIPE: Moved save-related functions to statesaver.cpp 2016-09-18 09:37:37 +02:00
Eugene Sandulenko b413d01113 FULLPIPE: Implement map saving and save obfuscation 2016-09-18 09:37:37 +02:00
Eugene Sandulenko 60e3b9fd64 FULLPIPE: Further work on game saving 2016-09-16 22:15:24 +02:00
Eugene Sandulenko 7e07e01963 FULLPIPE: Renames in PreloadItem 2016-09-05 00:03:14 +02:00
Eugene Sandulenko 9552dabaab FULLPIPE: Implement GameLoader::saveScenePicAniInfos(). Now object states are restored 2016-09-04 00:57:43 +02:00
Eugene Sandulenko 9630e28bd9 FULLPIPE: Implement FullpipeEngine::restartGame() 2014-05-03 11:37:13 +03:00
Eugene Sandulenko c7d017e166 FULLPIPE: Implement ModalSaveGame::getFileInfo() and stubbed saveload support 2014-05-01 12:06:40 +03:00
Eugene Sandulenko 39f771a3c5 FULLPIPE: Implement ModalSaveGame::saveload() 2014-05-01 09:44:47 +03:00
Johannes Schickel 387fe8c141 FULLPIPE: Make GPL headers consistent in themselves. 2014-02-18 02:39:34 +01:00
Eugene Sandulenko f710418ae5 FULLPIPE: Implement preloadCallback() 2014-01-10 21:31:18 +02:00
Eugene Sandulenko ea66761b04 FULLPIPE: Implement sceneHandler11_hitMan() 2013-12-27 21:23:59 +02:00
Eugene Sandulenko 5fc18c023d FULLPIPE: Implement sceneHandler06() 2013-12-16 22:28:11 +02:00
Eugene Sandulenko 4a6ede35e7 FULLPIPE: CGameLoader -> GameLoader 2013-09-18 19:39:54 +04:00
Eugene Sandulenko 918d2f175a FULLPIPE: CGameVar -> GameVar 2013-09-18 19:39:54 +04:00
Eugene Sandulenko 1ce1712b7b FULLPIPE: Remove C* prefix from inventory classes 2013-09-18 19:39:53 +04:00
Eugene Sandulenko c354981037 FULLPIPE: Remove C* prefix from input classes 2013-09-18 19:39:53 +04:00
Eugene Sandulenko 3bd3431ad4 FULLPIPE: Remove C* prefixes from interaction classes 2013-09-18 19:39:53 +04:00
Eugene Sandulenko 5d25dd3b36 FULLPIPE: Remove C* prefixes from motion classes 2013-09-18 19:39:53 +04:00
Eugene Sandulenko 4db215a511 FULLPIPE: Move PreloadItem methods where they belong 2013-09-14 00:14:49 +03:00
Eugene Sandulenko e8f4c28d10 FULLPIPE: Move Sc2 to gameloader.h 2013-09-12 22:51:21 +03:00
Eugene Sandulenko 6cd830fb1b FULLPIPE: Implement CGameLoader::preloadScene() 2013-09-12 22:51:21 +03:00
Eugene Sandulenko 7e08d4f6b2 FULLPIPE: Move PreloadItems to gameloader.h 2013-09-12 22:51:21 +03:00
Eugene Sandulenko 4db2d7e21b FULLPIPE: Fix crash 2013-09-06 14:51:14 +03:00
Eugene Sandulenko cee12678dc FULLPIPE: Implement sceneHandler01() 2013-09-06 14:51:12 +03:00
Eugene Sandulenko 6e64897e72 FULLPIPE: Rename some CGameLoader members 2013-09-06 14:51:09 +03:00
Eugene Sandulenko 856eb1b0fa FULLPIPE: Implemented FullpipeEngine::updateScreen() 2013-09-06 14:51:09 +03:00
Eugene Sandulenko 94fedf0128 FULLPIPE: Finished stubbing loadGam() 2013-09-06 14:51:07 +03:00
Eugene Sandulenko 4dc3481ec1 FULLPIPE: Moved Messge class to messages.cpp 2013-09-06 14:51:06 +03:00
Eugene Sandulenko aaf5bae026 FULLPIPE: Fixed initial scene drawing. Scene bg is shown 2013-09-06 14:51:05 +03:00
Eugene Sandulenko 7aa2377bf7 FULLPIPE: Initial stubs for input system 2013-09-06 14:51:04 +03:00
Eugene Sandulenko 82b596a31e FULLPIPE: Several methods for motion controller 2013-09-06 14:51:04 +03:00
Eugene Sandulenko c4499bb4b2 FULLPIPE: Further work on sceneSwitcher 2013-09-06 14:51:04 +03:00
Eugene Sandulenko 62cbdd81f0 FULLPIPE: Further work on sceneSwitcher.
Reduced header dependency.
Put CGameLoader into separate files.
2013-09-06 14:51:03 +03:00