Commit graph

180 commits

Author SHA1 Message Date
Bastien Bouclet
3a7f85971f MOHAWK: MYST: Add support for the localized 25th games 2018-07-30 20:13:16 +02:00
Bastien Bouclet
85a603fdff MOHAWK: MYST: Don't play the flyby movies when going back to Myst 2018-07-25 20:37:27 +02:00
Bastien Bouclet
9aeb4a356e MOHAWK: MYST: Always clear the screen before playing fullscreen movies
Fixes the broderbund logo movie being partially visible when the Cyan
logo is playing.

Fixes Trac#10595.
2018-07-02 21:48:19 +02:00
Bastien Bouclet
73b3a43b89 MOHAWK: MYST: Introduce a main menu stack
Used in the 25th Anniversary edition of Myst ME
2018-06-29 13:15:01 +02:00
Bastien Bouclet
c0fa7ceae5 MOHAWK: MYST: Clean up the options dialog
Also load and save games using ctrl-o / ctrl-s.
2018-06-14 21:04:44 +02:00
Bastien Bouclet
47ddd9c214 MOHAWK: MYST: Move the current stack id to ScriptParser 2018-06-13 07:55:55 +02:00
Bastien Bouclet
ea60aef8a8 MOHAWK: MYST: Simplify memory management of the active stack 2018-06-13 07:55:55 +02:00
Bastien Bouclet
13b3371f1a MOHAWK: MYST: Extract a Card class out of the main engine class
This is to allow having multiple cards loaded at the same time in the
future.
2018-06-13 07:55:55 +02:00
Bastien Bouclet
3b794d2633 MOHAWK: Display a GUI error message when no audio devices are available 2018-06-07 20:14:27 +02:00
Bastien Bouclet
5ee24f3970 MOHAWK: MYST: Fix repeatedly trying to autosave when not allowed
Fixes trying to open the save on slot 0 on each frame when it is not an
autosave.
2018-05-20 10:05:12 +02:00
Bastien Bouclet
4396b011ac MOHAWK: MYST: Fix the Wii/GameCube build 2018-05-19 18:23:45 +02:00
David Fioramonti
719c2b8374 MOHAWK: MYST: Autosave to Slot 0
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.
2018-05-19 17:56:05 +02:00
Bastien Bouclet
6798f9c77e MOHAWK: Don't allow displaying the map when the game is not interactive
Fixes Trac#10526 and Trac#10531.
2018-05-17 20:49:28 +02:00
David Fioramonti
52e247e239 MOHAWK: MYST: Make Dni/Atrus endings an enum
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.
2018-04-27 19:22:00 +02:00
Bastien Bouclet
e1c6d4485d MOHAWK: MYST: Don't play the credits when quitting in the middle of a script
Playing the credits unloads the data required by the rest of the script.

Fixes Trac#10502.
2018-04-26 22:14:37 +02:00
David Fioramonti
ab7cdc5907 MOHAWK: MYST: Make global currentAge an enum
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.
2018-04-26 22:09:46 +02:00
dafioram
519e02da47 MOHAWK: MYST: Turn held page state into an enum
Previously, the held page stage was an unsigned int 16
with values 0-13. The enum will make its state more clear.
2018-04-25 18:46:50 +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
Bastien Bouclet
84b2dc5cc8 MOHAWK: Fix some clang-tidy warnings 2018-03-31 13:36:09 +02: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
79102d87ec MOHAWK: Myst: Fix showing the white page after dropping it
Fixes #10065.
2017-08-10 21:02:10 +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
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
Bastien Bouclet
75040819c6 MOHAWK: Myst: Rewrite the sound code
It now more closely matches the original. Effect sounds are now stopped
when resuming background sounds.

Fixes #9574, Fixes #9920.
2017-07-22 20:38:56 +02:00
Bastien Bouclet
a2fc282e1c MOHAWK: Myst: Move the sound code to its own class 2017-07-22 20:38:56 +02:00
Bastien Bouclet
64303abb07 MOHAWK: Myst: Update the screen only once per frame
Change all inner loops to call the same frame function.

Remove the draw delay code. Now that we have proper frame pacing it is
not necessary anymore to wait before drawing to make sure the previous
frame stayed on the screen long enough.

Fixes #9915, #9922, #9923.
2017-07-22 20:38:56 +02:00
Bastien Bouclet
9cb6c872b7 MOHAWK: Myst: Decorrelate hotspot handling from event handling
This makes sure doFrame can be called from anywhere, including scripts.
2017-07-22 20:38:56 +02:00
Bastien Bouclet
8f0fa86fbc MOHAWK: Myst: Change blocking sounds to use the main loop 2017-07-22 20:38:56 +02:00
Bastien Bouclet
49fa0bdd68 MOHAWK: Myst: Change blocking movies and waits to use the main loop 2017-07-22 20:38:56 +02:00
Bastien Bouclet
8f59348ec3 MOHAWK: Myst: Start reworking mainloop detection 2017-07-22 20:38:56 +02:00
Bastien Bouclet
ee9328323b MOHAWK: Myst: Move frame handling to a separate method 2017-07-22 20:38:56 +02:00
Bastien Bouclet
3c04ad0227 MOHAWK: Myst: Keep track of the resource being clicked 2017-07-22 20:38:56 +02:00
Bastien Bouclet
49f48a5b8d MOHAWK: Myst: Turn the currently active resource into a pointer 2017-07-22 20:38:56 +02:00
Bastien Bouclet
9ac98d0fc9 MOHAWK: Myst: Always update the screen during the gameloop 2017-07-22 20:38:56 +02:00
Bastien Bouclet
6f46b174df MOHAWK: Myst: Poll for events every 10ms when waiting 2017-07-05 20:35:26 +02:00
Bastien Bouclet
9153393219 MOHAWK: Allow games to opt out of the default video manager 2017-07-03 08:50:10 +02:00
Bastien Bouclet
fd794bd4a3 MOHAWK: Poll the events while drawing Myst transitions
Fixes #9594, the mouse cursor was hanging while transitions were drawn.
2016-12-10 17:34:24 +01:00
Bastien Bouclet
6dae7a33ce MOHAWK: Hide some warnings
Fixes #9571, fixes #9572.
2016-09-26 05:51:07 +02:00
Bastien Bouclet
aeee4888be MOHAWK: Allow the games to have a different sound manager 2016-08-11 19:53:20 +02:00
Thierry Crozat
191a9a0c64 MOHAWK: Load games from outside the options dialog loop
Loading games from inside the dialog loop may cause cursor
glitches. This commits applies the same fix to the
MohawkOptionsDialog as the one that already existed for
the global main menu. This finished to fix bug #7164.
2016-08-03 22:50:06 +01:00
Bastien Bouclet
76e2867c07 MOHAWK: Update the screen immediatly when changing stacks
This fixes the linking sound being played before the new age is displayed.

Thanks to rootfather for noticing.
2016-04-17 11:55:49 +02:00
Bastien Bouclet
9db3f69f5e MOHAWK: Switch to slot based save file naming for Myst
Myst previously used the user provided description as the save filename.
This was not working when the user entered chacacters forbidden by the
filesystem.

The actual save format has not changed. Old saves are still compatible,
but must be renamed to 'myst-###.mys' and 'myst-###.mym'.

Fixes 7106.
2016-04-03 08:11:56 +02:00
Bastien Bouclet
f427fccc03 MOHAWK: Make the Quit button show the credits 2016-03-05 20:49:12 +01:00
Bastien Bouclet
833b800a32 MOHAWK: Add an engine specific option to play the Myst fly by movie
It is disabled by default since the original engine never plays it.
When enabled, it is only played when first arriving on Myst.
2016-03-05 14:43:10 +01:00
Bastien Bouclet
5aeda50f58 MOHAWK: Fix the drawing time simulation
Was broken when adding transition support.
Fixes scripted card changes not displaying for a long enough time.
2016-02-26 07:22:30 +01:00
Bastien Bouclet
faff49d001 MOHAWK: Fix loading a save from the launcher
Was broken by d6881100dd
2016-02-26 07:22:30 +01:00
Bastien Bouclet
d6881100dd MOHAWK: Only allow saving/loading from the main event loop 2016-02-22 09:58:41 +01:00
Bastien Bouclet
7044996cd5 MOHAWK: Add support for the ScummVM save metadata features
The metadata is saved in a separate file to keep compatibility with
the original engine saves.
2016-02-22 08:44:55 +01:00
Bastien Bouclet
f0e416a034 MOHAWK: Add a console command that does random clicks in all the cards
A surprisingly effective way of finding bugs
2016-02-14 09:58:43 +01:00
Bastien Bouclet
94e5804b84 MOHAWK: Fix the cursor staying black when changing of Myst stack 2016-02-13 18:13:33 +01:00