25 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
Johannes Schickel
8b9afc9d92 TOLTECS: Make GPL headers consistent in themselves. 2014-02-18 02:39:39 +01:00
Strangerke
30441cc7c1 TOLTECS: Fix spacing errors 2013-11-24 18:52:45 +01:00
Johannes Schickel
89abab97e3 JANITORIAL: Remove trailing whitespaces.
Powered by:
git ls-files "*.cpp" "*.h" "*.m" "*.mm" | xargs sed -i -e 's/[ \t]*$//'
2012-09-26 04:17:55 +02:00
Filippos Karapetis
c0a1d78e0e TOLTECS: Store channel volume/panning information in saved games 2012-09-11 00:34:28 +03:00
Filippos Karapetis
0b4a022018 TOLTECS: Save music in saved games
Also, move all music resource related code into its own class
2011-11-24 00:03:01 +02:00
Filippos Karapetis
18fd59939f TOLTECS: Sync scene sounds when saving/loading 2011-11-21 23:47:47 +02:00
Filippos Karapetis
8880c7c94c TOLTECS: Savegame changes
- Add support for savegame removal
- Remove kyra-specific code
- Add save play time and creation date
2011-11-21 22:29:44 +02:00
Filippos Karapetis
8940d7348a TOLTECS: Add finalize() calls to file output code 2011-11-20 22:43:12 +01:00
David Turner
86e6ec89ef TOLTECS: Fix Compilation due to Graphics::loadThumbnail() API change. 2011-11-20 22:43:11 +01:00
David Turner
c545a8b176 TOLTECS: Fix saveGameState signature to match Engine's virtual method. 2011-11-20 22:43:11 +01:00
Benjamin Haisch
acd4d4098f TOLTECS: Fix bugs
- Save scene parameters before playing a movie and restore them afterwards (fixes crash)
- Fix text disappearing too fast
- Implement script function sfGetCameraChanged
- Replace nop script functions with stubs which print debug info when called
- Some cleanup, remove obsolete TODOs
2011-11-20 22:43:10 +01:00
Filippos Karapetis
a9f7094a68 TOLTECS: Reduced header dependencies 2011-11-20 22:43:10 +01:00
Filippos Karapetis
e9dc055089 TOLTECS: Reduced header dependencies 2011-11-20 22:43:10 +01:00
Filippos Karapetis
99bd410cb3 TOLTECS: Sync with the latest ScummVM changes (renamed skipThumbnailHeader to skipThumbnail) 2011-11-20 22:43:09 +01:00
Benjamin Haisch
fc324073d5 TOLTECS: Rename savegame version define 2011-11-20 22:43:09 +01:00
Filippos Karapetis
cb5c0e6986 TOLTECS: Sync with ScummVM rev. 46379 2011-11-20 22:43:08 +01:00
Benjamin Haisch
1f4764ad1c TOLTECS: - Implemented RTL
- Fixed return values in savegame/loadgame
- Some minor cleanup
2011-11-20 22:43:07 +01:00
Benjamin Haisch
9e78b5d393 TOLTECS: - Listing savestates via command line or Launcher
- Loading/Saving during run time
Other savestate functions yet todo.
I'll probably remove the "original" in-game menu and move everything to the GMM.
2011-11-20 22:43:07 +01:00
Benjamin Haisch
7b97e8cd93 TOLTECS: A lot of changes in the graphics code:
- Optimized drawing code; now only items (sprites, text, screen masks) which have changed from the previous frame are redrawn, this speeds up things a lot
- Implemented dirty rectangles using a microtile array
- The previously committed Microtile Array implementation from SEL seemed buggy so I wrote my own version which works nicely so far (and is less code and GPL), only MicroTileArray::getRectangles uses parts from the old version, this will be changed later
- One known bug related to dirty rectangles remains: Sometimes the background isn't restored correctly and gfx artifacts are visible
2011-11-20 22:43:06 +01:00
Benjamin Haisch
8f3e598f85 TOLTECS: Cleanup. 2011-11-20 22:43:06 +01:00
Benjamin Haisch
74c05f6aa8 TOLTECS: - Merged input.cpp with toltecs.cpp
- Kernel function 5 returns a random value; use ScummVM's RNG
2011-11-20 22:43:05 +01:00
Benjamin Haisch
03cae51129 TOLTECS: - Made game "quittable"
- Save/load mouse position and if the cursor is enabled
2011-11-20 22:43:05 +01:00
Benjamin Haisch
51214a461a TOLTECS: Saving/loading is working; it still needs work but will suffice to make debugging somewhat easier. 2011-11-20 22:43:05 +01:00
Benjamin Haisch
dd5567613f TOLTECS: - Renamed stuff and cleanups
- Beginnings of the saveload system (incomplete)
2011-11-20 22:43:05 +01:00