Commit Graph
1366 Commits
Author SHA1 Message Date
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
Lothar Serra Mari c808f33f52 CREDITS: Change nickname for Lothar Serra Mari 2018-06-26 09:15:24 +02:00
Bastien Bouclet 1d731cb6c0 Merge pull request #1220 from dafioram/mystDaySlider
MOHAWK: MYST: Increment y_pos of observatory day slider faster
2018-06-24 17:17:54 +02:00
David Fioramonti f5e26d22b2 MOHAWK: MYST: Turn FortressRotation into a Direction enum 2018-06-24 16:49:56 +02:00
Bastien Bouclet 18fd6f603d MOHAWK: MYST: Fix incorrect door close sound for the cablin
Fixes Trac#10580.
2018-06-23 08:12:03 +02:00
Bastien Bouclet b0681082a9 MOHAWK: RIVEN: Fix out of bounds write in the flies effect
Fixes Trac#10579.
2018-06-22 06:35:24 +02:00
Bastien Bouclet 6237bc6e7b MOHAWK: MYST: Fix out of bounds read when redrawing the observatory
The observatory go button computes random 105x106 rectangles in the
512x512 star image. The previous code would allow to go out of bounds by
3 pixels. Interestingly the bug is in the original engine disassembly
perhaps it could crash as well.

Fixes Trac#10576.
2018-06-19 20:21:53 +02:00
David Fioramonti bfeb2d48e2 MOHAWK: MYST: Increment y_pos of observatory day slider faster
Fixes Trac#10572.

The day slider does not go all the way to the bottom (day 31st)
when the down arrow is used to increment the day. This change
increases how much y displacement happens with each change
in the day so that the bottom is reach on day 31st.

This is just a graphical bug and doesn't affect the logic
of the puzzle. The day slider can also be dragged to the bottom
without using the buttons.
2018-06-19 05:23:59 -07: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 2de359f23d MOHAWK: MYST: Make the scripts time accounting pause safe 2018-06-13 08:00:29 +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 61f9398b04 Merge pull request #1187 from bgK/detection-refactor-unknown
ENGINES: Return unknown game variants with the list of detected games
2018-05-28 18:43:15 +02:00
Bastien Bouclet 8d654285cb MOHAWK: MYST: Fix drawing the Stoneship red page open door
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.
2018-05-28 15:20:09 +02:00
Bastien Bouclet 35f4983ca1 Merge pull request #1201 from ccawley2011/mohawk-sound
MOHAWK: Fix decoding sounds with 16 bit samples
2018-05-28 10:44:21 +02:00
Bastien Bouclet 2925d2ef2f Merge pull request #1198 from dafioram/mohawk10536
MOHAWK: README: Minor autosave changes and notes for autosaving
2018-05-26 09:01:57 +02:00
Cameron Cawley 8f1d1836f3 MOHAWK: Fix decoding sounds with 16 bit samples 2018-05-24 17:22:15 +01:00
Adrian Frühwirth cee4d6b853 JANITORIAL: Fix trailing whitespace 2018-05-24 15:30:55 +02:00
David Fioramonti 6041e4aca1 MOHAWK: Allow non-autosaves in autosave slot to be deletable
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.
2018-05-22 19:47:00 -07:00
David Fioramonti 0500096703 MOHAWK: MYST: Do not autosave over saves from the original
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.
2018-05-22 19:47:00 -07:00
David Fioramonti 37791c4bd3 MOHAWK: RIVEN: Add Autosave Support
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.
2018-05-20 15:17:14 +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 43babaeef8 MOHAWK: RIVEN: Always release the prison combination buttons
Fixes Trac#10525.
2018-05-18 19:28:27 +02:00
Bastien Bouclet 4e77445086 MOHAWK: MYST: Opcode 102 in Channelwood can only set the volume to non 0 values
Fixes Trac#10532.
2018-05-17 20:49:28 +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
Bastien Bouclet 44fd44ccc9 MOHAWK: Remove detection entries for games not supported by the engines 2018-05-17 20:49:28 +02:00
Bastien Bouclet 2a02e0311d MOHAWK: Remove midi playback
This was unused and not touched for many years
2018-05-17 20:49:28 +02:00
Bastien Bouclet 77f24f36ac MOHAWK: RIVEN: Add a detection entry for another DVD version 2018-05-10 16:18:07 +02:00
Bastien Bouclet b2ba147d96 MOHAWK: RIVEN: Hide the mouse cursor after pressing a prison code button
It now matches the behavior of the original engine.

Fixes #10521.
2018-05-10 16:06:40 +02:00
Bastien Bouclet cf1ebf2951 ENGINES: Add unknown game variants to the game detector results 2018-05-10 09:04:23 +02:00
Bastien Bouclet 25736a0b5d MOHAWK: RIVEN: Add a script patch fixing incorrect steam sound in a view
Fixes Trac#10516.
2018-05-08 06:55:24 +02:00
Bastien Bouclet 4ce71f3922 MOHAWK: MYST: Fix two Atrus videos playing at the same time in D'ni
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.
2018-04-27 19:29:18 +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
Bastien Bouclet 3d2509a89c MOHAWK: MYST: Reset the main cursor when starting the credits
The credit stack does not have the data required to display all the
cursors, especially the page cursors.

Fixes Trac#10501.
2018-04-26 22:12:58 +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 c1a12c2475 MOHAWK: MYST: Redraw the tower angle line after the rotation completes
Fixes Trac#10499.
2018-04-24 20:12:29 +02:00
Bastien Bouclet 366fbf5d2a MOHAWK: MYST: Clip one coordinate at a time in o_copyImageToBackBuffer
Fixes Achenar's door animation being mispositionned on Channelwood.

Fixes Trac#10498.
2018-04-23 13:04:05 +02:00
Bastien Bouclet 086ab443c0 MOHAWK: LB: Mark a switch fall-trough as intentional
Without the fall-through, the function would unconditionally dereference
an uninitialized pointer.
2018-04-22 08:30:08 +02:00
Bastien Bouclet a992dcc91a MOHAWK: LB: Mark some switch fall-throughs as intentional
Fall-throughs are used as a way to handle optional parameters in this
function.
2018-04-22 08:17:50 +02:00
Bastien Bouclet 0ebf04520a MOHAWK: MYST: Fix the sound effect not playing in opcode 41
Changing the background sound when switching cards could stop the effect
sound immediately after it started.

Fixes Trac#10493.
2018-04-22 08:15:14 +02:00
Bastien Bouclet dd425413b5 MOHAWK: Remove extra coma 2018-04-21 17:50:30 +02:00
Bastien Bouclet e421b18c38 Merge branch 'dafioram-myst_soundrecvrChanges' 2018-04-21 17:36:46 +02:00
Bastien Bouclet 7c7010204b MOHAWK: MYST: Always redraw the sound receiver at constant speeds
Fixes the sound receiver display stopping for a little while
every second or so when keeping a direction button pressed.
2018-04-21 17:32:11 +02:00
David Fioramonti bfa97d8f7a MOHAWK: MYST: Make sound receiver hint boundary line up with orig
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.
2018-04-21 07:27:59 -07:00