Commit Graph
1366 Commits
Author SHA1 Message Date
David Fioramonti 5a1fc8c230 MOHAWK: MYST: Enhance: slow down sound receiver max spin rate
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.
2018-04-21 07:27:54 -07:00
Eugene Sandulenko 0e02da6000 JANITORIAL: Fix code formatting 2018-04-15 23:55:07 +02:00
David Fioramonti 284f720830 MOHAWK: MYST: Fix Observatory displayed hour from 0:XX to 12:XX
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.
2018-04-15 18:33:04 +02:00
Bastien Bouclet 24956f0a56 MOHAWK: MYST: Fix observatory slider sounds repeating too quickly
Add delays to simulate running at a lower framerate.
2018-04-15 07:53:32 +02:00
Bastien Bouclet b1f927f105 MOHAWK: MYST: Make changeBackgroundSound wait for the effect to complete
Fixes #10489.
2018-04-15 06:17:45 +02:00
Bastien Bouclet 63592e6a0f MOHAWK: MYST: Fix missing sound effect when using the rocket slider
Fixes #10485.
2018-04-11 07:49:12 +02:00
Bastien Bouclet 3a8655bc81 MOHAWK: MYST: Fix flyby movies to behave more like the original
* 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.
2018-04-10 19:58:56 +02: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
Bastien Bouclet 066a14bd4c MOHAWK: MYST: Fix the myst flyby playing over the closed book
In older releases of Myst the flyby video had the play on card change
flag set to true, causing the bug. As a workaround patch the resource to
mach newer releases.

Fixes #10472.
2018-04-02 13:38:57 +02:00
Bastien Bouclet 5fec35d045 MOHAWK: MYST: Initialize more variables
To make static analysis tools quiet.
2018-04-02 13:38:57 +02:00
Bastien Bouclet 235893fb44 MOHAWK: MYST: Implement opcodes 178 and 179
Used when turning pages in the library. Some versions of the game appear
to use them.

Fixes #10474.
2018-04-02 08:00:59 +02:00
Bastien Bouclet 84b2dc5cc8 MOHAWK: Fix some clang-tidy warnings 2018-03-31 13:36:09 +02:00
Eugene Sandulenko f54e528677 MOHAWK: Added override clauses 2018-03-28 12:28:27 +02:00
rootfather dad0ea4dab MOHAWK: Fix indentation in detection_tables.h 2018-02-08 15:01:57 +01:00
rootfather 889c149c05 MOHAWK: Add detection for English Myst, Win 3.11, Version 1.0.1 2018-02-08 14:53:27 +01:00
Bastien Bouclet 5322606abe MOHAWK: RIVEN: Execute the stored opcode before resetting movies
Otherwise the movie position is zero which leads the comparison with the
stored opcode position to always be false.
Fixes #10426, a regression from cf1171d4d9.
2018-02-05 07:40:20 +01:00
Bastien Bouclet cf1171d4d9 MOHAWK: RIVEN: Rewind videos that are played until their end
When videos are skipped, they would sometimes not quite be seeked to the
last frame. In that case, when they are played again without being
restarted, they would end immediatly.

Now videos are automatically rewinded when they end or are skipped so
that they always start from the beginning when played again.

Fixes #10389.
2018-01-01 20:05:47 +01:00
Bastien Bouclet a33548c0d2 MOHAWK: RIVEN: Add keyboard shortcuts for loading and saving
Those shortcuts are documented in the original game manual.
2017-12-20 19:16:07 +01:00
Bastien Bouclet 1b0f1dafbb MOHAWK: RIVEN: Ignore key repeat events
This fixes keyboard book page turning being too fast when holding keys
2017-11-26 15:11:22 +01:00
Bastien Bouclet 83b27d263e MOHAWK: RIVEN: Allow turning book pages more quickly
Fixes #10075
2017-11-26 15:11:12 +01:00
Thierry Crozat 2b00829f09 Merge pull request #1041 from criezy/variadic-undefined
Fix undefined behaviour in variadic functions
2017-11-10 22:20:54 +00:00
Bastien Bouclet f4a0566e37 MOHAWK: RIVEN: Remove the testing flag 2017-11-02 19:49:43 +01:00
Bastien Bouclet 2ded98b482 MOHAWK: MYST: Add detection for a Russian version 2017-10-25 19:14:46 +02: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
Thierry Crozat a6caf3a951 MOHAWK: Fix undefined behaviour in variadic functions
Passing a type that undergoes default argument promotion as last
argument of a variadic function results in undefined behaviour.
2017-10-06 01:01:16 +01:00
Bastien Bouclet 661487c2b5 MOHAWK: Riven: Move the water effect to its own class
Fixes the per frame scripts being leaked.
Fixes #10215.
2017-09-20 07:16:20 +02:00
Bastien Bouclet 56b744f5f1 MOHAWK: Riven: Plug memory leak when saving
Fixes #10216.
2017-09-20 07:12:09 +02:00
Bastien Bouclet a99891c2f3 MOHAWK: Riven: Pause the engine while the load dialog is open 2017-08-20 10:01:24 +02:00
Torbjörn Andersson d99596d477 MOHAWK: Update transition mode after loading savegame 2017-08-14 17:35:32 +02:00
Bastien Bouclet e62e28732f MOHAWK: Myst: Fix one Atrus video being off position by one pixel
Fixes #10114.
2017-08-12 15:38:13 +02:00
Bastien Bouclet cafec8773d MOHAWK: Myst: Fix incorrect vault instructions using image patch
Thanks to dafioram for providing the replacement image.

Fixes #10115.
2017-08-12 09:02:51 +02:00
Bastien Bouclet efddaf84eb MOHAWK: Riven: b_Data1.mhk is not required to play the CD version 2017-08-11 19:05:55 +02:00
Bastien Bouclet ee588a8c33 MOHAWK: Riven: Patch an invalid card change when entering Gehn's office
Fixes #10118.
2017-08-11 19:05:55 +02:00
Bastien Bouclet 3fba660210 MOHAWK: Riven: Fix pin rotation handle sometimes disappearing
It was due to inaccurate rotation movie bounds.

Fixes #10086.
2017-08-11 08:24:34 +02:00
Bastien Bouclet 79102d87ec MOHAWK: Myst: Fix showing the white page after dropping it
Fixes #10065.
2017-08-10 21:02:10 +02:00
Bastien Bouclet fb26a42aad MOHAWK: Myst: Restore the backbuffer after toggling off fireplace buttons
Fixes #10064
2017-08-10 20:52:23 +02:00
Bastien Bouclet 22ed7eb399 MOHAWK: Riven: Neutralize the timer when moving the Ytram trap up
Fixes #10103.
2017-08-10 20:07:34 +02:00
Bastien Bouclet cf9646e72b MOHAWK: Myst: Stop gears video before calling elevator on mechanical
Fixes #10108.
2017-08-10 19:02:10 +02:00
Bastien Bouclet 18fe4cebe4 MOHAWK: Riven: Trigger the try to open the back rotating room door
When using keyboard navigation
2017-08-10 19:02:10 +02:00
Bastien Bouclet 5a4400e390 MOHAWK: Riven: Stop using varargs to list hotspot names
One call to va_end was missing when returning early. This stuff is too
dangerous for me to use.
2017-08-10 19:02:10 +02:00
Bastien Bouclet 09be9b2c2d MOHAWK: Myst: Fix off by one pixel map position when rotating the tower
Fixes #10081.
2017-08-08 20:11:22 +02:00
Bastien Bouclet 8e5ac98a4b MOHAWK: Riven: Add keyboard navigation 2017-08-06 17:36:27 +02:00
Bastien Bouclet 3007bbe178 MOHAWK: Riven: Load only the data files for the current game version
The Steam version is a DVD version, but also has files from the CD
version in the data folder. We need to load only the files from the DVD
version to prevent data inconsistencies.

Also check on startup that all the required datafiles are present.

Possibly fixes #10052.
2017-08-06 13:13:28 +02:00
Bastien Bouclet c6e6d0b3df MOHAWK: Riven: Ensure the entire view is drawn when pan transitions complete
Fixes #10063.
2017-08-05 14:14:37 +02:00
Bastien Bouclet 51a342b9ec MOHAWK: Riven: Make sure to update the cursor when entering a card 2017-08-05 14:01:11 +02:00
Bastien Bouclet e5869ecdc9 MOHAWK: Riven: Remove the DVD flag from some versions
Those are obviously repackaged CD versions
2017-08-05 10:50:31 +02:00
Bastien Bouclet 550306fc05 MOHAWK: Riven: Set the ADGF_TESTING flag 2017-08-05 10:50:04 +02:00
Bastien Bouclet d6de8e52c3 MOHAWK: Myst: Set the clicked resource only if the active resource was updated
Fixes #10053.
2017-08-05 08:36:32 +02:00
Bastien Bouclet cd6a4423ef MOHAWK: Myst: Display every second fireplace button animation frame
The animation is too slow when displaying each frame at 60 fps.

Fixes #10053
2017-08-05 08:36:32 +02:00
Bastien Bouclet 07aaed5659 MOHAWK: Myst: Set the mixer sound type to SFX for videos
Also simplify video filename construction.
2017-07-30 17:42:01 +02:00