aboutsummaryrefslogtreecommitdiff
path: root/engines/cruise/saveload.cpp
AgeCommit message (Collapse)Author
2018-07-31CRUISE: Fix Possible Invalid Thumbnail Pointer Access.D G Turner
2018-04-07ALL: Load savegame thumbnail only when necessaryAdrian Frühwirth
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.
2014-06-10CRUISE: Remove some useless variables, use a boolean for a variableStrangerke
2014-06-09CRUISE: Initialize some variables in the contractor, change some variables ↵Strangerke
to boolean
2014-06-08CRUISE: Directly use assert.Johannes Schickel
This fixes an ASSERT macro redefinition when compiling the Symbian port. See bug #6622 "SYMBIAN: CRUISE: warning: `ASSERT' redefined".
2014-06-06CRUISE: disable more efficiently some codeStrangerke
2014-06-01CRUISE: Reduce the scope of variables used in the for loopsStrangerke
2014-03-30ALL: Resolve multiple clang warningsMax Horn
2014-02-18CRUISE: Make GPL headers consistent in themselves.Johannes Schickel
2012-02-15JANITORIAL: Fix missing whitespace in pointer castTarek Soliman
find -name '*.h' -or -name '*.cpp' | xargs sed -r -i 's@\(([A-Za-z0-9]+)\*\)@(\1 *)@g' This seems to have caught some params as well which is not undesirable IMO. It also caught some strings containing this which is undesirable so I excluded them manually. (engines/sci/engine/kernel_tables.h)
2011-11-21CRUISE: Added explicit freeing of thumbnail surface pixelsPaul Gilbert
2011-08-07GRAPHICS: Simplify the interface of Graphics::loadThumbnail().Christoph Mallon
Now it returns the Surface, so the caller does not need to create one and pass it.
2011-05-12GIT: Clean up: Suppress SVN tags, now uselessstrangerke
2011-04-28JANITORIAL: Reduce header dependencies in shared codeOri Avtalion
Some backends may break as I only compiled SDL
2010-11-07LURE: Convert printf to debug/warningMax Horn
Exception: The "decompiler" code still uses fopen/fprintf etc. but it is disabled by default, hence I am ignoring it for now. svn-id: r54108
2010-08-09CRUISE: Eliminate global constructorsEugene Sandulenko
svn-id: r51936
2010-02-20Put in a warning in case there is ever too long a background resource name ↵Paul Gilbert
when saving a game svn-id: r48095
2010-01-25Strip trailing spaces/tabs.Johannes Schickel
svn-id: r47541
2010-01-03Fixed a bunch of cppcheck warnings. Mostly about checking if a pointer is nullTorbjörn Andersson
before freeing it, which isn't necessary. svn-id: r46941
2009-11-02Changed foo(void) to foo() in almost all non-backend source filesMax Horn
svn-id: r45616
2009-10-10Fixed memory leaks in savegame restoringPaul Gilbert
svn-id: r44863
2009-10-09Fixed all memory leaks as far as the initial title screenPaul Gilbert
svn-id: r44814
2009-10-09Set up a basic tracing system for all memory allocations to help track down ↵Paul Gilbert
memory leaks svn-id: r44808
2009-07-03Bugfix for loading savegames where the active resource file database isn't ↵Paul Gilbert
completely filled svn-id: r42047
2009-06-20Added proper saving of music state to savegames so music resumes when a ↵Paul Gilbert
savegame is loaded. svn-id: r41702
2009-06-14Beginnings of music support for Cruise, based on the cine engine sound code ↵Paul Gilbert
(note that the music played isn't yet correct, though) svn-id: r41506
2009-06-10Added variable to savegame format so that savegames can be correctly loaded ↵Paul Gilbert
from the ScummVM launcher svn-id: r41423
2009-06-01Removed the remaining two FIXME's - my analysis of the data indicates no ↵Paul Gilbert
issues with structure packing, and all multi-byte data accesses are wrapped using loadShort/saveShort, which is endian safe svn-id: r41096
2009-06-01Converted the saving of perso structure data to proper endian-safe serialisationPaul Gilbert
svn-id: r41093
2009-05-28Replaced the original implementation of walk box handling with a cleaner, ↵Paul Gilbert
structure array based one svn-id: r40954
2009-05-24Strip trailing whitespaces in the whole code base.Johannes Schickel
svn-id: r40867
2009-05-19COMMON: Removed Stream::ioFailed() and clearIOFailed(), as they are ↵Max Horn
deprecated; however, retained ioFailed in SeekableReadStream and File for now (so for now this mainly affects WriteStream subclasses) svn-id: r40725
2009-05-19Improved Common::Serializer in several ways:Max Horn
* Added support versioned serialization * Added a convenience API for handling 'magic IDs' transparently * Exposed the err()/clearErr() methods of the underlying streams * Added a basic unit test for versioned loading (more should be added, in particular for saving) * Removed the syncString(char *, uint16) alias for syncBytes(byte *buf, uint32 size) svn-id: r40723
2009-05-17Properly named the script structure offset field, and fixed an endian bugPaul Gilbert
svn-id: r40634
2009-05-16Replaced value with proper constant, and named a previously un-named ↵Paul Gilbert
structure field svn-id: r40616
2009-05-15Bugfix to saving the width of a cached background area - the previous code ↵Paul Gilbert
was, for some reason, saving the width divided by 2.. this was causing corruptions during reload for cached areas with an odd horizontal width svn-id: r40595
2009-05-15Corrected saving/loading of cached background areasPaul Gilbert
svn-id: r40594
2009-04-18Added support for the global menu save/loading, and changed the savegame ↵Paul Gilbert
format to store the savegame name and thumbnail svn-id: r39979
2009-04-04Replaced all occurrences of the constant '257' with the existing constant ↵Paul Gilbert
'NUM_FILE_ENTRIES' svn-id: r39824
2009-04-01Laid the basics for music handlingPaul Gilbert
svn-id: r39786
2009-03-24CRUISE: Fixed bug when loading backgroundIncrustStruct::saveWidth (don't ↵Max Horn
divide by 2, rather *multiply* by 2); also some cleanup svn-id: r39657
2009-03-16Converted the Cruise engine to use the new Common::Serializer classPaul Gilbert
svn-id: r39443
2009-02-11Removed deprecated methodPaul Gilbert
svn-id: r36258
2009-02-09Changed the save/load process to use a common serialiserPaul Gilbert
svn-id: r36253
2009-01-29A ton of code formatting fixes; also fixed warnings about single line loops ↵Max Horn
like 'while(cond);' by inserting newlines svn-id: r36127
2009-01-16Code formatting fixes, automatically performed by astyleMax Horn
svn-id: r35870
2009-01-16Mark cruise save/load code as not endian safeMax Horn
svn-id: r35869
2008-09-21Patch #2054467: CRUISE: 64bits fixesEugene Sandulenko
svn-id: r34622
2008-01-27Removed trailing spaces.Jordi Vilalta Prat
svn-id: r30664
2007-12-27Early pathfindingVincent Hamm
svn-id: r30012