Commit Graph
145 Commits
Author SHA1 Message Date
Bastien Bouclet 5dd38b8660 MOHAWK: MYST: Play complete audio clip when changing the boiler pressure
Fixes Trac#10607.
2018-07-08 21:55:09 +02:00
David Fioramonti a01babbd38 MOHAWK: MYST: Use degree conversion common math funcs 2018-07-03 23:08:48 +01: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
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 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 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
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
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
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 63592e6a0f MOHAWK: MYST: Fix missing sound effect when using the rocket slider
Fixes #10485.
2018-04-11 07:49:12 +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
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 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 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
Bastien Bouclet 7ac1bd9a57 MOHAWK: Myst: Fix error when checking the rocket sliders solution twice
The game was trying to start playing the linking book video in a
blocking way whereas it was set to loop by the first check.

Fixes #9914.
2017-07-22 20:38:56 +02:00
Bastien Bouclet 757459bd49 MOHAWK: Myst: Don't cast function pointers when registering commands 2017-07-22 20:38:56 +02:00
Bastien Bouclet a99397f126 MOHAWK: Myst: Improve script execution tracing 2017-07-22 20:38:56 +02:00
Bastien Bouclet 3e99dd8ccc MOHAWK: Myst: Switch to bounds checked opcode arguments 2017-07-22 20:38:56 +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 c5496e3206 MOHAWK: Get rid of VideoHandle 2017-07-22 20:38:56 +02:00
Bastien Bouclet 0b9bfb3d3c MOHAWK: Myst: Remove delayUntilMovieEnds
This will break movies called by scripts until event handling is
decorrelated from script calls.
2017-07-22 20:38:56 +02:00
Bastien Bouclet c4207ad3a3 MOHAWK: Myst: Fix the piano sound effect restarting when moving the mouse
Fixes #9916.
2017-07-09 06:55:42 +02:00
Bastien Bouclet 6f46b174df MOHAWK: Myst: Poll for events every 10ms when waiting 2017-07-05 20:35:26 +02:00
Bastien Bouclet b7b06e8399 MOHAWK: Allow the mouse cursor to move while drawing in a tight loop 2017-03-18 16:15:09 +01:00
Eugene Sandulenko dead4aa014 JANITORIAL: Remove trailing spaces 2016-10-09 14:59:58 +02:00
Bastien Bouclet 5de0eb9045 MOHAWK: Fix the tower rotation line to be white instead of black
This was a regression from the default palette change.
Fixes #9567.
2016-09-25 10:03:13 +02:00
Ori Avtalion 253e18c440 JANITORIAL: Reduce GUI header dependencies 2016-04-14 13:30:14 +03:00
Bastien Bouclet 77c2630049 MOHAWK: Play the gears sound when resetting the Myst clock puzzle
Fixes #7093.
2016-03-28 09:33:46 +02:00
Bastien Bouclet 0a0cf7a22f MOHAWK: Fix garbage being drawn when pressing the rockey piano keys
Was a regression introduced in 085f3700f7
2016-03-05 14:43:10 +01:00
Bastien Bouclet 3552a185f1 MOHAWK: Adjust the Myst gauge boiler movie to the new VideoHandle semantics
Fixes it not being updated.
2016-03-05 14:43:10 +01:00
Bastien Bouclet 9c99f74bda MOHAWK: Remove an unneeded TODO
The original did not set the argument to wait until the foreground
sound has finished before playing the background sound, so it's fine to
play both at the same time.
2016-02-20 14:00:59 +01:00
Bastien Bouclet fe7e58d0d1 MOHAWK: Play the handle going up anim when closing the Myst cabin safe 2016-02-14 09:58:43 +01:00
Bastien Bouclet de5015dce4 MOHAWK: Fix some incorrect MystArea casts 2016-02-07 15:27:03 +01:00
Bastien Bouclet 727ee86a44 MOHAWK: Don't use static_cast to downcast view resources 2016-02-07 15:27:03 +01:00
Bastien Bouclet 0463e00fb6 MOHAWK: Don't downcast _invokingResource using static_cast 2016-02-07 15:27:03 +01:00
Bastien Bouclet cddb5cd53a MOHAWK: Rename Myst's Area classes 2016-02-07 15:27:03 +01:00