142 Commits

Author SHA1 Message Date
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
Bastien Bouclet
a99891c2f3 MOHAWK: Riven: Pause the engine while the load dialog is open 2017-08-20 10:01:24 +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
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
51a342b9ec MOHAWK: Riven: Make sure to update the cursor when entering a card 2017-08-05 14:01:11 +02:00
Bastien Bouclet
69c1f70818 MOHAWK: Riven: Let the gameloop gracefully end when quitting
Prevents the quit confirmation dialog from being displayed at the end of
the game's ending if it is enabled.

Fixes #9943.
2017-07-29 18:20:45 +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
69dc56ad0f MOHAWK: Riven: Patch prison island dome switch sound change
Fixes #9958.
2017-07-14 08:16:01 +02:00
Bastien Bouclet
c3bbae041a MOHAWK: Riven: Improve save load error handling
A GUI error message is now displayed if an error occurs when loading a
save.
2017-07-12 22:00:33 +02:00
Bastien Bouclet
d6fd0ac626 MOHAWK: Riven: Fix card leave scripts when changing stacks
Card leave scripts were using data from the new stack, whereas they
should have been using data from the old stack to which they belong.

Fixes Trac#9928.
2017-07-11 08:29:59 +02:00
Bastien Bouclet
95951eebf7 MOHAWK: Get rid of refreshCard 2017-07-03 08:50:10 +02:00
Bastien Bouclet
b0ee5772fb MOHAWK: Remove unused / not working functions 2017-07-03 08:50:10 +02:00
Bastien Bouclet
8c6cd98067 MOHAWK: Fix the inventory being visible when scripts are running 2017-07-03 08:50:10 +02:00
Bastien Bouclet
64c1a1d2b2 MOHAWK: Switch enabling the debug rectangles to a console var 2017-07-03 08:50:10 +02:00
Bastien Bouclet
ea303ab682 MOHAWK: Switch timers to script commands 2017-07-03 08:50:10 +02:00
Bastien Bouclet
637a08bcf3 MOHAWK: Don't allow loading while a script is running
Scripts may have an inner game loop where loading is not working.
2017-07-03 08:50:10 +02:00
Bastien Bouclet
44943e1285 MOHAWK: Change the delay function not to have an event loop
Fixes events getting lost during delays
2017-07-03 08:50:10 +02:00
Bastien Bouclet
f977b57123 MOHAWK: Rewrite the Riven movie manager 2017-07-03 08:50:10 +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
1aa4233802 MOHAWK: Rework stack frame updates to work like the original 2017-07-03 08:50:10 +02:00
Bastien Bouclet
ad7f94f10f MOHAWK: Add a transition speed widget to the settings dialog 2017-07-03 08:50:10 +02:00
Bastien Bouclet
3900597996 MOHAWK: Implement card transitions for Riven 2017-07-03 08:50:10 +02:00
Bastien Bouclet
ae6f248616 MOHAWK: Move Riven's sunner alert handling to the jungle stack 2017-07-03 08:50:10 +02:00
Bastien Bouclet
f0267d542f MOHAWK: Keep turning pages while the mouse is pressed in Atrus' book 2017-07-03 08:50:10 +02:00
Bastien Bouclet
7a9b91dfcd MOHAWK: Improve script debug output 2017-07-03 08:50:10 +02:00
Bastien Bouclet
286cdef658 MOHAWK: Add basic mouse handling to RivenStack 2017-07-03 08:50:10 +02:00
Bastien Bouclet
0ba035eea6 MOHAWK: Move Riven inventory code to a new class 2017-07-03 08:50:10 +02:00
Bastien Bouclet
22926a1835 MOHAWK: Move the timer callbacks to the stacks 2017-07-03 08:50:10 +02:00
Bastien Bouclet
efcf38f95f MOHAWK: Factor out stack name-id mapping 2017-07-03 08:50:10 +02:00
Bastien Bouclet
c04edb8f54 MOHAWK: Change the back from book commands to use scripts 2017-07-03 08:50:10 +02:00
Bastien Bouclet
14bbf8aab4 MOHAWK: Move the external commands to their respective stacks 2017-07-03 08:50:10 +02:00
Bastien Bouclet
e2c5609e81 MOHAWK: Prepare empty classes for the Riven stacks 2017-07-03 08:50:10 +02:00
Bastien Bouclet
ab2d151541 MOHAWK: Implement the (fire)flies effect mainly used in jungle island 2017-07-03 08:50:10 +02:00
Bastien Bouclet
1a5b2a1e50 MOHAWK: Move MLST loading to RivenCard 2017-07-03 08:50:10 +02:00
Bastien Bouclet
3f1f407c14 MOHAWK: Remove VideoHandle usage 2017-07-03 08:50:10 +02:00
Bastien Bouclet
c623a76767 MOHAWK: Ensure constructing and deleting cards does not have side effects 2017-07-03 08:50:10 +02:00
Bastien Bouclet
05bed84a85 MOHAWK: Rename the card and stack accessors 2017-07-03 08:50:10 +02:00
Bastien Bouclet
670a3c4558 MOHAWK: Move card id remapping to RivenStack 2017-07-03 08:50:10 +02:00
Bastien Bouclet
3c8decec0a MOHAWK: Move the resource names to RivenStack 2017-07-03 08:50:10 +02:00
Bastien Bouclet
f752066a8e MOHAWK: Introduce a new RivenStack class 2017-07-03 08:50:10 +02:00
Bastien Bouclet
aa0c89da03 MOHAWK: Move running the card leave script to the RivenCard destructor 2017-07-03 08:50:10 +02:00
Bastien Bouclet
9b2c90c0b3 MOHAWK: The ignoreNextMouseUp workaround is not necessary anymore
We now check the mouse up event happens on the same hotspot as the
mouse down event.
2017-07-03 08:50:10 +02:00
Bastien Bouclet
c1331e124f MOHAWK: Move the current hotspot to RivenCard 2017-07-03 08:50:10 +02:00
Bastien Bouclet
4bdf88496d MOHAWK: Move Riven's name lists to a separate class 2017-07-03 08:50:10 +02:00
Bastien Bouclet
099b3b3d8f MOHAWK: Move the hotspot list to RivenCard
Also replace all hardcoded accesses to the hotspot array with hotspot queries.
2017-07-03 08:50:10 +02:00
Bastien Bouclet
67d9a3c71b MOHAWK: Make the RivenHotspot fields private 2017-07-03 08:50:10 +02:00
Bastien Bouclet
17f1903833 MOHAWK: Remove the RivenHotspot enabled field 2017-07-03 08:50:10 +02:00