Age | Commit message (Collapse) | Author |
|
Also load and save games using ctrl-o / ctrl-s.
|
|
|
|
|
|
|
|
This is to allow having multiple cards loaded at the same time in the
future.
|
|
|
|
ENGINES: Return unknown game variants with the list of detected games
|
|
When the lights are on, the open door image would not draw at the
correct position in Myst ME only.
This is due to the open door image being too small. The original has a
special case for that image. We reproduce that same hack.
Fixes Trac#7143.
|
|
MOHAWK: Fix decoding sounds with 16 bit samples
|
|
MOHAWK: README: Minor autosave changes and notes for autosaving
|
|
|
|
|
|
With the addition of autosaving support, deleting saves
(via the gui) to slot 0 was disabled, but for saves that
have been previousl created by the user it make sense
that they should be allowed to delete a save in slot 0.
Fixes Trac#10536.
|
|
The previous logic was enabling autosaving if the metadata
file was not present, but saves from the original
don't have metadata. Now it checks if the non-metadata
file can be loaded to determine if the slot is empty.
|
|
The game will autosave to slot 0 using the save
period given in the scummvm config file.
Or when the user quits.
Autosaves are only allowed when an autosave is
in slot 0, there is no save in slot 0, or there
is a save, but it is corrupt.
This will not override any saves the player
has previously put in save slot 0. If there
is a save in slot 0 that is not an autosave
then there will be no autosaving.
|
|
Fixes trying to open the save on slot 0 on each frame when it is not an
autosave.
|
|
|
|
The game will autosave to slot 0 using the save
period given in the scummvm config file
or when the user exits using the GMM.
Autosaves are only allowed when an autosave is
in slot 0 or there is no save in slot 0.
This will not override any saves the player
has previously put in save slot 0. If there
is a save in slot 0 that is not an autosave
then there will be no autosaving.
|
|
Fixes Trac#10525.
|
|
Fixes Trac#10532.
|
|
Fixes Trac#10526 and Trac#10531.
|
|
|
|
This was unused and not touched for many years
|
|
|
|
It now matches the behavior of the original engine.
Fixes #10521.
|
|
|
|
Fixes Trac#10516.
|
|
In D'ni, after giving the white page to Atrus, or after coming without a
page, too videos of Atrus would play on top of each other after waiting
long enough for the first video to loop.
Fixes #10503.
|
|
The global variable "ending" tracks various
states that Atrus can be in.
This variable determines what video of
Atrus will be playing and if the brother
books have been destroyed.
Despite this variable being called ending
there are other endings not captured by
this variable (like the brother endings).
Also change spelling of Dini to Dni for one
usage of ActiveAge from a previous commit.
|
|
Playing the credits unloads the data required by the rest of the script.
Fixes Trac#10502.
|
|
The credit stack does not have the data required to display all the
cursors, especially the page cursors.
Fixes Trac#10501.
|
|
This global basically tracks what age/book/stack
the player is in.
It is also used to change stacks via
MohawkEngine_Myst::changeToStack() by
being an index for MystScriptParser::_stackMap
and MystScriptParser::_startCard.
E.x., instead of _global.currentAge = 2
now _global.currentAge = kMystLibrary.
Also two of the endings are considered Ages
instead of being apart of _global.ending.
|
|
Previously, the held page stage was an unsigned int 16
with values 0-13. The enum will make its state more clear.
|
|
Fixes Trac#10499.
|
|
Fixes Achenar's door animation being mispositionned on Channelwood.
Fixes Trac#10498.
|
|
Without the fall-through, the function would unconditionally dereference
an uninitialized pointer.
|
|
Fall-throughs are used as a way to handle optional parameters in this
function.
|
|
Changing the background sound when switching cards could stop the effect
sound immediately after it started.
Fixes Trac#10493.
|
|
|
|
|
|
Fixes the sound receiver display stopping for a little while
every second or so when keeping a direction button pressed.
|
|
In the original the sound reciever would provide a hint of the
source sound direction when the user was less than 5 degrees
away. In ScummVM it was less than or equal to 5 degrees.
Now it matches the behavior of the original.
|
|
This slows down the Selentic age sound receiver spin rate
when fully depressing either of the turn buttons.
This is a deviation from the original and improves
the users experience.
In the original when the button is fully depressed
the receiver turns so fast that it is impossible
to predict what angle you full be at when you let go.
|
|
|
|
Fixes #Trac10486.
For 12 Hr format versions, in ScummVM when the hour was set to
what should be 12:XX it was displayed as 0:XX.
This differs with the original English versions which displays
the 12:xx.
I verified this fix in both Myst ME and Myst English CD.
|
|
Add delays to simulate running at a lower framerate.
|
|
Fixes #10489.
|
|
Fixes #10485.
|
|
* Keep playing the previously running background sound while playing the
flyby.
* Don't play the flyby after loading a save.
* Play the flyby before both linking sounds.
Fixes #10482, Fixes #10483.
|
|
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.
|