scummvm/engines/fullpipe
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
..
scenes FULLPIPE: fix #10321 "Hardlock when stepping onto stool" 2018-03-26 21:00:16 +02:00
anihandler.cpp FULLPIPE: Renames in ExCommand 2017-12-03 23:04:58 +01:00
anihandler.h FULLPIPE: Fix memory leaks, ownership issues with various point lists 2017-11-18 22:35:12 +01:00
behavior.cpp FULLPIPE: Fix leaks of MessageQueues 2017-11-18 22:35:12 +01:00
behavior.h FULLPIPE: Fix memory leaks and ownership problems with Behavior objects 2017-11-18 22:35:12 +01:00
configure.engine FULLPIPE: Enable engine by default 2016-12-04 20:34:55 +01:00
console.cpp ALL: Rename Debugger::DCmd_Register to Debugger::registerCmd. 2014-05-27 02:04:08 +02:00
console.h FULLPIPE: Make GPL headers consistent in themselves. 2014-02-18 02:39:34 +01:00
constants.h FULLPIPE: Implemented support for German demo 2016-12-10 17:15:49 +01:00
detection.cpp ALL: Load savegame thumbnail only when necessary 2018-04-07 09:26:20 +02:00
floaters.cpp FULLPIPE: Fix memory leaks, ownership issues with various point lists 2017-11-18 22:35:12 +01:00
floaters.h FULLPIPE: Fix memory leaks, ownership issues with various point lists 2017-11-18 22:35:12 +01:00
fullpipe.cpp FULLPIPE: Load gameobj.h 2017-12-08 23:57:48 +01:00
fullpipe.h FULLPIPE: Load gameobj.h 2017-12-08 23:57:48 +01:00
gameloader.cpp FULLPIPE: Renames in ExCommand 2017-12-03 23:04:58 +01:00
gameloader.h ALL: Load savegame thumbnail only when necessary 2018-04-07 09:26:20 +02:00
gfx.cpp FULLPIPE: Load gameobj.h 2017-12-08 23:57:48 +01:00
gfx.h FULLPIPE: Added debug output for GameObject 2017-12-08 23:57:48 +01:00
init.cpp FULLPIPE: Fix memory leaks in PictureObject, Background 2017-11-18 22:35:12 +01:00
input.cpp FULLPIPE: Fix memory leaks of arcade keys 2017-11-18 22:35:12 +01:00
input.h FULLPIPE: Remove unnecessary constructors 2017-11-18 22:35:12 +01:00
interaction.cpp FULLPIPE: Renames in ExCommand 2017-12-03 23:04:58 +01:00
interaction.h FULLPIPE: Remove unneeded variable 2018-03-28 12:07:10 +02:00
inventory.cpp FULLPIPE: Renames in ExCommand 2017-12-03 23:04:58 +01:00
inventory.h FULLPIPE: Fix memory leaks of InventoryPoolItem 2017-11-18 22:35:12 +01:00
lift.cpp FULLPIPE: Renames in ExCommand 2017-12-03 23:04:58 +01:00
messagehandlers.cpp FULLPIPE: Renames in ExCommand 2017-12-03 23:04:58 +01:00
messages.cpp FULLPIPE: More debug output to loading 2017-12-08 23:57:48 +01:00
messages.h FULLPIPE: Renames in ExCommand 2017-12-03 23:04:58 +01:00
modal.cpp ALL: Load savegame thumbnail only when necessary 2018-04-07 09:26:20 +02:00
modal.h FULLPIPE: Fix bug #9673: Unable to move after loading a save from the title screen 2017-12-01 22:43:16 +01:00
module.mk FULLPIPE: Initial support for Russian Demo. The demo starts 2016-12-11 15:58:11 +01:00
motion.cpp FULLPIPE: Renames in ExCommand 2017-12-03 23:04:58 +01:00
motion.h FULLPIPE: Fix memory leaks of MctlItems in MctlCompound 2017-11-18 22:35:12 +01:00
ngiarchive.cpp FULLPIPE: Improve memory safety and typing of NGIArchive 2017-11-18 22:35:12 +01:00
ngiarchive.h FULLPIPE: Improve memory safety and typing of NGIArchive 2017-11-18 22:35:12 +01:00
objectnames.h FULLPIPE: Implement Russian demo differences 2016-12-11 18:36:08 +01:00
objects.h FULLPIPE: Fix memory leaks and unnecessary indirect allocations in Motion and Sc2 2017-11-18 22:35:12 +01:00
scene.cpp FULLPIPE: Attempt to crash when calling paletteless scenes 2017-11-27 21:20:24 +01:00
scene.h FULLPIPE: Fix memory leaks in PictureObject, Background 2017-11-18 22:35:12 +01:00
scenes.cpp FULLPIPE: Fix memory leaks and unnecessary indirect allocations in Motion and Sc2 2017-11-18 22:35:12 +01:00
scenes.h FULLPIPE: Initial support for Russian Demo. The demo starts 2016-12-11 15:58:11 +01:00
sound.cpp FULLPIPE: Renames in ExCommand 2017-12-03 23:04:58 +01:00
sound.h FULLPIPE: Improve memory safety and fix leaks in sound code 2017-11-18 22:35:12 +01:00
stateloader.cpp ALL: Load savegame thumbnail only when necessary 2018-04-07 09:26:20 +02:00
statesaver.cpp FULLPIPE: Fix bug #10317: Save game metadata is missing 2017-12-02 00:53:57 +01:00
statics.cpp FULLPIPE: Load gameobj.h 2017-12-08 23:57:48 +01:00
statics.h FULLPIPE: More debug output to loading 2017-12-08 23:57:48 +01:00
utils.cpp FULLPIPE: Load gameobj.h 2017-12-08 23:57:48 +01:00
utils.h FULLPIPE: Annotate ownership rule of MfcArchive::readClass 2017-11-18 22:35:12 +01:00