Commit Graph

571 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
Colin Snover
a5bc89102e ALL: Remove obsolete register keyword
The register keyword was deprecated from the C++11 standard,
<http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4193.html#809>,
and removed from the C++17 standard,
<http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4340>, so
cannot exist in a well-formed C++17 program.

It has never done anything in GCC
<https://gcc.gnu.org/ml/gcc/2010-05/msg00113.html>
and because of the way it is specified in the standard, it is “as
meaningful as whitespace”
<http://www.drdobbs.com/keywords-that-arent-or-comments-by-anoth/184403859>.

The one remaining use of the register keyword is in the DS backend,
where it is used to create a local register variable using the
non-standard GCC Extended Asm feature.

Closes gh-1079.
2017-12-03 20:27:42 -06:00
Colin Snover
432fd522d2 ENGINES: Remove default1x scaler flag
This flag is removed for a few reasons:

* Engines universally set this flag to true for widths > 320,
  which made it redundant everywhere;
* This flag functioned primarily as a "force 1x scaler" flag,
  since its behaviour was almost completely undocumented and users
  would need to figure out that they'd need an explicit non-default
  scaler set to get a scaler to operate at widths > 320;
* (Most importantly) engines should not be in the business of
  deciding how the backend may choose to render its virtual screen.
  The choice of rendering behaviour belongs to the user, and the
  backend, in that order.

A nearby future commit restores the default1x scaler behaviour in
the SDL backend code for the moment, but in the future it is my
hope that there will be a better configuration UI to allow users
to specify how they want scaling to work for high resolutions.
2017-10-07 12:30:29 -05:00
Willem Jan Palenstijn
3108957812 CGE2: Clean up SearchMan after fallbackDetect 2017-09-20 20:53:14 +02:00
Torbjörn Andersson
462f1c9859 JANITORIAL: Silence more GCC 7 warnings
There were all flagged as intentional fall throughs. I simply changed
the comments to something GCC would recognize.
2017-08-06 12:26:05 +02:00
Eugene Sandulenko
fab199d37e JANITORIAL: Make GPL headers uniform 2016-09-03 12:46:38 +02:00
Alexander Tkachev
b665fc933d ALL: Make simpleSaveNames() a MetaEngineFeature
Added it into hasFeature() of all engines which returned `true` in
simpleSaveNames() before.

As mentioned in #788, SCI is not always using simple names, so it
doesn't have such feature now.
2016-08-24 16:07:55 +06:00
Alexander Tkachev
ab1d160ec8 ALL: Add MetaEngine::simpleSaveNames()
Engines with "simple" savenames would support "Run in background" in
save/load dialog and gradual save slots unlocking. Other engines
save/load feature would be locked until save sync is over.
2016-08-24 16:07:55 +06:00
Hubert Maier
3a3cc647d7 Fix CGE2 copyright sign 2016-05-29 15:11:57 +03:00
Eugene Sandulenko
33abb6118f ALL: Change main engine header guard defines to <directory>_<engine>_H
Recently we started to use this as new semantics, although in the past
we used simly <engine>_H. Now these guard defines are consistent with
rest of the files which are used in the engines.
2016-05-17 18:21:30 +02:00
Eugene Sandulenko
31514f8164 CGE2: More portable way of getting max long value 2016-05-02 17:50:15 +02:00
Ori Avtalion
3564032330 JANITORIAL: Reduce audio header dependencies 2016-04-14 16:10:21 +03:00
Ori Avtalion
253e18c440 JANITORIAL: Reduce GUI header dependencies 2016-04-14 13:30:14 +03:00
Johannes Schickel
0b6befdcc5 ENGINES: Make variable names of AdvancedMetaEngine conform to our guidelines.
_singleid   -> _singleId
_gameids    -> _gameIds
_guioptions -> _guiOptions
2016-03-08 19:01:13 +01:00
Strangerke
83fcab050c CGE2: Fix a couple of boolean values 2016-02-25 22:15:32 +01:00
Johannes Schickel
8fce4b5f19 CGE2: Let listSaves return list sorted on slot numbers. 2016-02-25 21:39:45 +01:00
Thierry Crozat
849f4f2d49 CGE2: Add events.cpp to POTFILE 2016-02-20 21:24:49 +00:00
Thierry Crozat
369d23dc3f CGE2: Translate buttons in load and save dialogs. 2016-02-20 21:08:34 +00:00
Johannes Schickel
1e64b4dd53 CGE2: Only request actual save slots in listSaves. 2016-01-26 16:35:30 +01:00
Eugene Sandulenko
6e9fe0052c CGE2: Fix rounding error 2015-11-27 22:34:26 +01:00
Strangerke
751183a269 CGE2: Silent a CppCheck warning 2015-11-27 15:06:10 +01:00
Thierry Crozat
0433eda4de CGE2: Add detection for new English freeware version 2014-12-21 18:25:57 +00:00
uruk
0aba59b460 CGE2: Add support for Sfinx. 2014-12-01 14:45:18 +01:00
Filippos Karapetis
c76c72c799 CGE2: Remove trailing whitespace 2014-10-28 16:06:07 +02:00
Thierry Crozat
c4a829a7c6 CGE2: Add detection for English v1.0 version of the game 2014-10-14 21:44:14 +01:00
uruk
601918c917 CGE2: Fix bug #6733.
The problem was that the engine used the SFX volume for later parts of speeches longer than one sound file.
2014-10-10 15:02:29 +02:00
Thierry Crozat
7a431ecb2c CGE2: Add list of files that contain translatable strings 2014-10-04 01:01:13 +01:00
Strangerke
1fe9038918 CGE2: Initialize a variable 2014-09-29 00:35:09 +02:00
Strangerke
9a927d7fd1 CGE2: Initialize some variables 2014-09-29 00:23:42 +02:00
Willem Jan Palenstijn
2c61e80d7e CGE2: Constify strings 2014-09-28 23:57:26 +02:00
Strangerke
9ee78d1e4c CGE2: Fix the case of a couple of constants, remove a useless variable 2014-09-28 23:43:07 +02:00
Strangerke
cd86ccb73e CGE2: Remove unused constants 2014-09-28 23:39:18 +02:00
Matthew Hoops
cbfa8bfccd CGE2: Silence gcc warnings 2014-09-28 15:29:49 -04:00
Strangerke
b5ad4eedb3 CGE2: Fix a crash when detecting an empty set of VOL files 2014-09-26 23:41:31 +02:00
Strangerke
a78b2c867d CGE2: Add some comment concerning the fallback detection in CGE2 2014-09-18 21:54:35 +02:00
Strangerke
0b81ffedd4 CGE2: Reduce the scope of a variable 2014-09-17 23:10:25 +02:00
Strangerke
1769003a9b CGE2: Implement fallbackDetect 2014-09-17 23:10:03 +02:00
Peter Bozsó
a418481a3c CGE2: Remove fallback detection for English translation. 2014-09-15 15:02:01 +02:00
Strangerke
ccdb9c8d6b CGE2: Add detection for the freeware v0.3 English 2014-09-11 21:37:24 +02:00
unknown
5c8129a1dd CGE2: Refactor _startupMode. 2014-09-07 11:01:23 +02:00
Peter Bozsó
da1b76be4d Revert "CGE2: Make the intro skippable."
This reverts commit 5e099e90bc.
There's no need for this addition, since the intro was skippable before that too, by hitting the ESC key.
See System::touch().
2014-09-07 10:45:29 +02:00
Peter Bozsó
5e099e90bc CGE2: Make the intro skippable. 2014-09-06 22:52:24 +02:00
Peter Bozsó
6201ddf63e CGE2: Update English autodetection. 2014-09-06 22:26:39 +02:00
Strangerke
4be8aa8906 CGE2: Update Polish detection v1.0 freeware 2014-09-03 20:53:37 +02:00
Strangerke
5b6d520009 CGE2: Add detection for Sfinx v1.0 Freeware Polish 2014-09-01 22:14:21 +02:00
uruk
606f80ef36 CGE2: Silence warning about uninitialized variable. 2014-08-22 14:55:13 +02:00
uruk
e545a0afc4 CGE2: Update version in the fallback detection. 2014-08-20 11:13:54 +02:00
uruk
e525878444 CGE2: Silence GCC warning. 2014-08-13 21:18:34 +02:00
uruk
12a894a803 CGE2: Add checkMute().
This keeps the "Mute All" option of ScummVM and the music on/off and speech on/off buttons of Sfinx's toolbar in sync.
2014-08-13 21:16:20 +02:00
uruk
d7a9ea9e2a CGE2: Rework sound system. 2014-08-13 20:58:22 +02:00
uruk
c247125469 CGE2: Rename _soundHandle to _sfxHandle. 2014-08-13 20:35:31 +02:00
uruk
28a450982a CGE2: Fix initVolumeSwitch(). 2014-08-13 20:25:38 +02:00
uruk
2eddd72fbf CGE2: Initialize _startGameSlot. 2014-08-13 20:00:48 +02:00
uruk
e52c14b8d9 CGE2: Remove unused variable from System. 2014-08-13 19:58:58 +02:00
uruk
547ad696f2 CGE2: Initialize _h and _w in every constuctor of Bitmap. 2014-08-13 19:57:09 +02:00
uruk
277f844f09 CGE2: Initialize _maxDist in Hero's constructor. 2014-08-13 19:54:59 +02:00
uruk
fecabc039e CGE2: Initialize every member in Talk's every constructor. 2014-08-13 19:53:28 +02:00
uruk
8e22ef9b6d CGE2: Fix possible string overflow in Hero::expand(). 2014-08-13 19:49:56 +02:00
uruk
8b1ffab95b CGE2: Fix possible string overflow in Bitmap's constructor. 2014-08-13 19:40:15 +02:00
uruk
8e7279f5ac CGE2: Fix possible string overflow in setEye(). 2014-08-13 18:18:26 +02:00
uruk
45e8078dab CGE2: Don't allow Sprite::step() to dereference nullptr-s. 2014-08-13 17:54:35 +02:00
uruk
3e8041d54b CGE2: Fix comparing _spr->file against null in runCommand(). 2014-08-13 17:43:52 +02:00
uruk
3b342a21c6 CGE2: Eliminate inferred misuse of enums in Sprite::labVal(). 2014-08-13 17:39:09 +02:00
uruk
528ed79575 CGE2: Make impossible to dereference nullptr in sndDigiStart(). 2014-08-13 17:30:40 +02:00
Johannes Schickel
f35889713c CGE2: Get rid of superflous game name in extra field. 2014-08-12 17:42:04 +02:00
uruk
be859276d2 CGE2: Fix fallback detection. 2014-08-12 17:33:36 +02:00
Eugene Sandulenko
148793cadd CGE2: Fix compilation 2014-08-12 10:52:38 +02:00
uruk
5b9c51d4b4 CGE2: Repair FXP's operator=(). 2014-08-12 10:05:51 +02:00
uruk
ae037b2315 CGE2: Use snprintf() instead of sprintf(). 2014-08-11 20:43:08 +02:00
uruk
e488da5757 CGE2: Remove unnecessary commented out code. 2014-08-11 20:34:18 +02:00
uruk
02f3418d6f CGE2: Fix some more formatting in vga13h.h. 2014-08-11 20:32:56 +02:00
uruk
3e3430ed5d CGE2: Fix EncryptedStream::err(). 2014-08-11 16:10:14 +02:00
uruk
235e3d396e CGE2: Fix formatting in events.cpp. 2014-08-11 16:09:04 +02:00
uruk
9c5bdc6dde CGE2: Fix formatting in bitmap.h. 2014-08-11 16:07:29 +02:00
uruk
5e375d0796 CGE2: Fix formatting of operators' return values in vga13h.h. 2014-08-11 16:06:10 +02:00
uruk
b3fed6c369 CGE2: Return value instead of reference in FXP's operator=. 2014-08-11 16:03:38 +02:00
uruk
7dfd108f68 CGE2: Remove unused functions from V2D. 2014-08-11 15:56:20 +02:00
uruk
25ebfe461f CGE2: Remove unnecessary comments from vga13h.h. 2014-08-11 15:54:38 +02:00
uruk
0d47893d51 CGE2: Make matrixes static constants in makeSpeechBubbleTail(). 2014-08-11 15:44:55 +02:00
uruk
f8e60e467f CGE2: Make movie() safer. 2014-08-11 15:42:55 +02:00
uruk
c3a5a9177b CGE2: Fix comment in runGame(). 2014-08-11 15:38:28 +02:00
uruk
8510152545 CGE2: Rename XCrpyt() to xCrypt(). 2014-08-11 15:31:34 +02:00
uruk
854849f57a CGE2: Get rid of detection.h, move things to detection.cpp. 2014-08-11 15:28:43 +02:00
uruk
eb13d6ece1 CGE2: Add necessary tabs in detection.cpp. 2014-08-11 15:13:24 +02:00
uruk
411e8ac5c8 CGE2: Change return type of readSint16LE(). 2014-08-11 15:03:24 +02:00
uruk
1224d79e53 CGE2: Fix typo in detection.cpp. 2014-08-11 14:54:47 +02:00
uruk
e709be446c CGE2: Remove unnecessary #pragma before Sprite::touch(). 2014-08-11 14:53:49 +02:00
uruk
01950e1b1c CGE2: Remove unused function from vga13h.cpp. 2014-08-11 14:48:33 +02:00
uruk
0ea1268940 CGE2: Fix canSaveGameStateCurrently(). 2014-08-09 17:22:19 +02:00
uruk
58822b47a7 CGE2: Use spaces instead of tabs. 2014-08-09 13:54:20 +02:00
uruk
895f8a5e59 CGE2: Remove commented out code from text.cpp. 2014-08-09 13:51:31 +02:00
uruk
59bc45e79f CGE2: Get rid of _keyAlt. 2014-08-06 17:44:12 +02:00
uruk
010a806a19 CGE2: Rework canSaveGameStateCurrently(). 2014-08-03 22:50:16 +02:00
uruk
69b9a3fdff CGE2: Properly fade out if the player exits during the intro too. 2014-08-03 22:49:43 +02:00
uruk
11d2cf66b6 CGE2: Rework the handling of the sound buttons on the toolbar.
Also keep in sync the volume settings and the audio mode of the game and the settings in the Launcher.
2014-08-03 22:23:55 +02:00
uruk
07fc3fb3c3 CGE2: Some repair in Bitmap::code(). 2014-08-03 19:16:18 +02:00
Strangerke
b8b3e5af04 CGE2: Some more minor cleanup 2014-08-03 15:44:20 +02:00
uruk
41fece6487 CGE2: Remove #if 0-s. 2014-08-03 15:18:44 +02:00
uruk
7dfb2b01f1 CGE2: Rearrange content of saveload.cpp and cge2.h a bit. 2014-08-03 15:04:00 +02:00
Strangerke
2697c71301 CGE2: Misc cleanup 2014-08-03 14:47:25 +02:00