72 Commits

Author SHA1 Message Date
D G Turner
2a4fa26d52 CRUISE: Fix Possible Invalid Thumbnail Pointer Access. 2018-07-31 09:22:26 +01:00
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
Strangerke
51184eab9d CRUISE: Remove some useless variables, use a boolean for a variable 2014-06-10 07:25:35 +02:00
Strangerke
ff93aef6ec CRUISE: Initialize some variables in the contractor, change some variables to boolean 2014-06-09 17:53:27 +02:00
Johannes Schickel
9e4dfe556e CRUISE: Directly use assert.
This fixes an ASSERT macro redefinition when compiling the Symbian port.
See bug #6622 "SYMBIAN: CRUISE: warning: `ASSERT' redefined".
2014-06-08 17:57:02 +02:00
Strangerke
ec17a7ece6 CRUISE: disable more efficiently some code 2014-06-06 07:19:56 +02:00
Strangerke
1dbcd74988 CRUISE: Reduce the scope of variables used in the for loops 2014-06-01 01:21:32 +02:00
Max Horn
4d02f67bd1 ALL: Resolve multiple clang warnings 2014-03-30 14:38:02 +02:00
Johannes Schickel
00b6dfe9cf CRUISE: Make GPL headers consistent in themselves. 2014-02-18 02:39:33 +01:00
Tarek Soliman
a4798602d7 JANITORIAL: Fix missing whitespace in pointer cast
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)
2012-02-15 10:07:10 -06:00
Paul Gilbert
1e80ac0885 CRUISE: Added explicit freeing of thumbnail surface pixels 2011-11-21 19:38:52 +11:00
Christoph Mallon
e35b4f20c1 GRAPHICS: Simplify the interface of Graphics::loadThumbnail().
Now it returns the Surface, so the caller does not need to create one and pass it.
2011-08-07 15:19:09 +02:00
strangerke
69b1485a22 GIT: Clean up: Suppress SVN tags, now useless 2011-05-12 01:16:22 +02:00
Ori Avtalion
9414d7a6e2 JANITORIAL: Reduce header dependencies in shared code
Some backends may break as I only compiled SDL
2011-04-28 15:08:58 +03:00
Max Horn
a905682cf8 LURE: Convert printf to debug/warning
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-11-07 01:03:58 +00:00
Eugene Sandulenko
15b881386a CRUISE: Eliminate global constructors
svn-id: r51936
2010-08-09 10:30:40 +00:00
Paul Gilbert
a57445e847 Put in a warning in case there is ever too long a background resource name when saving a game
svn-id: r48095
2010-02-20 10:37:08 +00:00
Johannes Schickel
aed02365ec Strip trailing spaces/tabs.
svn-id: r47541
2010-01-25 01:39:44 +00:00
Torbjörn Andersson
72eb9ec9ea Fixed a bunch of cppcheck warnings. Mostly about checking if a pointer is null
before freeing it, which isn't necessary.

svn-id: r46941
2010-01-03 19:37:43 +00:00
Max Horn
51933629d1 Changed foo(void) to foo() in almost all non-backend source files
svn-id: r45616
2009-11-02 21:54:57 +00:00
Paul Gilbert
a4fbc73ee6 Fixed memory leaks in savegame restoring
svn-id: r44863
2009-10-10 05:08:56 +00:00
Paul Gilbert
857a35f748 Fixed all memory leaks as far as the initial title screen
svn-id: r44814
2009-10-09 10:32:33 +00:00
Paul Gilbert
8694b48ae3 Set up a basic tracing system for all memory allocations to help track down memory leaks
svn-id: r44808
2009-10-09 08:15:30 +00:00
Paul Gilbert
3190bf68f2 Bugfix for loading savegames where the active resource file database isn't completely filled
svn-id: r42047
2009-07-03 06:19:20 +00:00
Paul Gilbert
4f622ab295 Added proper saving of music state to savegames so music resumes when a savegame is loaded.
svn-id: r41702
2009-06-20 08:15:01 +00:00
Paul Gilbert
2f3e5f11cb Beginnings of music support for Cruise, based on the cine engine sound code (note that the music played isn't yet correct, though)
svn-id: r41506
2009-06-14 03:39:30 +00:00
Paul Gilbert
f2c1b18242 Added variable to savegame format so that savegames can be correctly loaded from the ScummVM launcher
svn-id: r41423
2009-06-10 12:15:50 +00:00
Paul Gilbert
5bb449b2bf Removed the remaining two FIXME's - my analysis of the data indicates no issues with structure packing, and all multi-byte data accesses are wrapped using loadShort/saveShort, which is endian safe
svn-id: r41096
2009-06-01 08:46:39 +00:00
Paul Gilbert
4269c3a4ea Converted the saving of perso structure data to proper endian-safe serialisation
svn-id: r41093
2009-06-01 03:27:54 +00:00
Paul Gilbert
f0e69a7d0b Replaced the original implementation of walk box handling with a cleaner, structure array based one
svn-id: r40954
2009-05-28 08:49:56 +00:00
Johannes Schickel
b3c6751b9b Strip trailing whitespaces in the whole code base.
svn-id: r40867
2009-05-24 15:17:42 +00:00
Max Horn
65b5d31814 COMMON: Removed Stream::ioFailed() and clearIOFailed(), as they are deprecated; however, retained ioFailed in SeekableReadStream and File for now (so for now this mainly affects WriteStream subclasses)
svn-id: r40725
2009-05-19 11:42:14 +00:00
Max Horn
42cd218400 Improved Common::Serializer in several ways:
* 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-19 11:23:13 +00:00
Paul Gilbert
dcca3197fc Properly named the script structure offset field, and fixed an endian bug
svn-id: r40634
2009-05-17 06:59:19 +00:00
Paul Gilbert
358be385b5 Replaced value with proper constant, and named a previously un-named structure field
svn-id: r40616
2009-05-16 04:03:37 +00:00
Paul Gilbert
adaa0472c5 Bugfix to saving the width of a cached background area - the previous code 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-15 07:03:56 +00:00
Paul Gilbert
464b8cc7f3 Corrected saving/loading of cached background areas
svn-id: r40594
2009-05-15 06:46:56 +00:00
Paul Gilbert
15252ad83c Added support for the global menu save/loading, and changed the savegame format to store the savegame name and thumbnail
svn-id: r39979
2009-04-18 10:16:08 +00:00
Paul Gilbert
07fb7735b5 Replaced all occurrences of the constant '257' with the existing constant 'NUM_FILE_ENTRIES'
svn-id: r39824
2009-04-04 01:21:25 +00:00
Paul Gilbert
d42d6122d9 Laid the basics for music handling
svn-id: r39786
2009-04-01 10:43:24 +00:00
Max Horn
48d73ff6bf CRUISE: Fixed bug when loading backgroundIncrustStruct::saveWidth (don't divide by 2, rather *multiply* by 2); also some cleanup
svn-id: r39657
2009-03-24 11:30:37 +00:00
Paul Gilbert
57b0038e5e Converted the Cruise engine to use the new Common::Serializer class
svn-id: r39443
2009-03-16 09:17:49 +00:00
Paul Gilbert
41eaf2c575 Removed deprecated method
svn-id: r36258
2009-02-11 09:02:30 +00:00
Paul Gilbert
7238358e6e Changed the save/load process to use a common serialiser
svn-id: r36253
2009-02-09 11:30:18 +00:00
Max Horn
ac59693be2 A ton of code formatting fixes; also fixed warnings about single line loops like 'while(cond);' by inserting newlines
svn-id: r36127
2009-01-29 05:26:12 +00:00
Max Horn
4c5efaecf4 Code formatting fixes, automatically performed by astyle
svn-id: r35870
2009-01-16 02:43:41 +00:00
Max Horn
42c46aa5a1 Mark cruise save/load code as not endian safe
svn-id: r35869
2009-01-16 01:48:55 +00:00
Eugene Sandulenko
297d4228d3 Patch #2054467: CRUISE: 64bits fixes
svn-id: r34622
2008-09-21 10:23:22 +00:00
Jordi Vilalta Prat
66e9d4f5e8 Removed trailing spaces.
svn-id: r30664
2008-01-27 19:47:41 +00:00
Vincent Hamm
f953ed4dde Early pathfinding
svn-id: r30012
2007-12-27 12:05:43 +00:00