Age | Commit message (Collapse) | Author |
|
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.
|
|
|
|
|
|
|
|
|
|
These changes were suggested by bgK.
|
|
This code was supplied by Darknior (hugues.fabien@gmail.com).
|
|
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.
|
|
Abort any scene entry protagonist animations and auto-cue speeches when
loading saved games, as the protagonist can get stuck in scene entry
animations
|
|
|
|
|
|
The original check was incorrectly disabled for IHNM in commit
ab6fb8e9c3. The check has been enabled again, with an added condition
for actors that can be used, like the jukebox in Gorrister's
|
|
This has been added in commit 5624ba23d0 and is no longer needed.
The gem is shown correctly over the compact disk in that scene,
and the behavior is the same as the original
|
|
|
|
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.
|
|
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.
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
If we have _statusTextInputPos as 256, we're doing incrementing to 257
and storing 0 there. This will lead to memory overwrite.
|
|
|
|
|
|
|
|
|
|
|
|
Fixes bug #7092
|
|
This fix applies to drawPanelText(), where we used to hard-code
the text positions. Now we define the dimensions of the area where
the text is drawn (like we do for button texts) and calculate the
position based on the dimensions of the text string.
The drawPanelText() function is used for the Save, Quit, Protect
and Option dialogs, but for everything except the Option dialog it
already centered the text to the dialog. I decided to use this
centering mechanism for the title of the ITE Option dialog, even
though that changes the X coordinate by one pixel. Other than that,
it only affects the following texts:
ITE: Show Dialog / Reading Speed, Music and Sound
IHNM: Reading Speed, Music, Sound, Voices
I have verified that this looks at least ok for the English and
German versions of ITE, and the English, German, French and
Spanish versions of IHNM, so I'm reasonably confident that this
change is ok.
|
|
|
|
The same fix that had already been applied to the Spanish version
also applies to the French and German versions. (Judging by the
detection entries, there aren't any alternative versions so the
ones I got from GOG should be representative.)
The palettes aren't quite identical to the Spanish one, but I
think the remaining difference is for the spiritual barometer, so
the special case for that remains Spanish-only.
|
|
_singleid -> _singleId
_gameids -> _gameIds
_guioptions -> _guiOptions
|
|
Some backends like GCW0 do no support graphics >320x240 due to
the hardware limitation (downscaling is possible but it will ruin
the pixel hunting which is often part of the gameplay).
Instead of manually updating the list of engines, we now introduce
a new dependency.
I marked all relevant engines, but some, like tinsel, require more
work with putting their relevant high-res games under USE_HIGHRES
define.
|
|
|
|
(cherry picked from commit 93f627441ac68e7a4c3e7f748a7b6f999bd9c96a)
|
|
|
|
Released about 2 years ago and is translating the subtitles
in contrast to the version released on CD which has only
poorly done voice-overs.
|
|
|
|
Only the DOS version of ITE uses the Miles audio driver
|
|
This may happen for example if the Miles Adlib driver errors out
because of missing instrument data files (*.AD)
|
|
This is the German Windows/Mac version distributed by GoG
|
|
|
|
|
|
|
|
|
|
This wasn't a regression. The music has always been cut off at an
awkward point.
|
|
Note that this breaks the IHNM demo, as provided on the ScummVM web
page, since it doesn't have the sample.ad and sample.opl files
needed, but I have a feeling that this is a packaging error on
our part.
I don't have the original release of ITE, so I can't test that.
|
|
All callers requiring SeekableAudioStream have been adapted by using dynamic_cast
|
|
|