678 Commits

Author SHA1 Message Date
David Fioramonti
35d89e25a6 MYST3: Add RoomID enum to help working with Rooms
No behavior changes.

Not all rooms were given useful names, but the most used
were. More useful names for the more obscure rooms can be added
later.
2018-07-01 10:33:22 +02:00
Bastien Bouclet
2f756b92e7 MYST3: Don't allow clicking away modal dialogs
Also prevent escape from closing modal dialogs without executing any
action.

Fixes #1447, Fixes #1457.
2018-06-30 13:50:12 +02:00
Bastien Bouclet
98889a621c
Merge pull request #1449 from dafioram/myst3Cursor
MYST3: Minor cursor refactoring
2018-06-28 19:00:20 +02:00
David Fioramonti
ddf77597b9 MYST3: Debug warn instead of error for unknown var
When using the var command in the debug console warn
if the variable number is not in range rather than
error.
2018-06-28 05:47:40 -07:00
David Fioramonti
e284420b3f MYST3: Minor cursor refactoring
Added some comments and made a loop use the size
rather than hardcoded number.
2018-06-14 20:46:18 -07:00
David Fioramonti
b2bddb5b1f MYST3: Add Saving from GMM
The Menu object internally manage a thumbnail
for saved games. But now a function has been
added to Menu to have a new thumbnail generated.

Characters that are not safe to use as filenames
cannot be used as save descriptions.
2018-06-10 16:31:35 +02:00
Bastien Bouclet
6e4fe84f58 MYST3: Fix an out of bounds read in the magnet effect
Fixes #1249.
2018-06-09 08:41:23 +02:00
Bastien Bouclet
3b450c1d41
Merge pull request #1416 from ccawley2011/engine-features
CONFIGURE: Make Bink and GLEW engine dependencies
2018-05-30 13:11:23 +02:00
Bastien Bouclet
e338b1bb6d MYST3: Rework save thumbnail handling, simplify autosaving 2018-05-27 12:44:24 +02:00
David Fioramonti
006aaa2c43 MYST3: Add Autosave Support
This adds autosaving to a save named  Autosave.

Autosaving is enabled if the autosave file
doesn't exist or is an autosave.

The actual autosaving is done on exit or based
on the save interval specified in the config file.
2018-05-27 12:44:24 +02:00
Cameron Cawley
db58d4a6e6 CONFIGURE: Make Bink an engine dependency 2018-05-16 15:08:18 +01:00
Bastien Bouclet
1b9a28eb54 MYST3: Play lever drag scripts every frame if requested
Fixes #1400.
2018-03-17 13:15:47 +01:00
Bastien Bouclet
1e2651e4e1 COMMON: Introduce a charset encoding enumeration
This abstraction allows code to refer to charsets using an id instead
of their iconv names. Iconv names are implementation specific.
For example, libiconv names the Mac Central European charset
'maccentraleurope' while glibc-iconv uses 'mac-centraleurope'.

Fixes #1387.
2017-12-19 17:00:27 +01:00
dagashiya
7569c38b55 MYST3: added an appropriate encoding for Polish version which fixes subtitles 2017-12-13 11:51:16 +01:00
dagashiya
85c786ccec MYST3: add a proper checksum for Polish 4 CD release of Myst 3 2017-12-13 11:17:25 +01:00
Bastien Bouclet
3ec01653c3 ALL: Merge from ScummVM rev 3a933138ce9273724726efc0df051b8dcf92b7d8 2017-12-06 21:41:03 +01:00
Bastien Bouclet
89265016a8 MYST3: Fix inconsistent pixel format check for BE platforms
Fixes #1374
2017-11-26 10:21:18 +01:00
Bastien Bouclet
d75066d66a MYST3: Include ENGLISH.m3t in the detection entry for the DVD version
This way people don't get the "Unknown version" warning when they forget
to copy the language m3u file.

Refs #1357.
2017-11-23 06:53:56 +01:00
Bastien Bouclet
a7e4c6d748 MYST3: Fix original engine saves missing thumbnail in RVM menus
The original engine saved the thumbnail with the alpha value set to
fully transparent, and the ResidualVM GUI is rendering with alpha
blending enabled. Now the alpha bits from on-disk thumbnails are ignored.
2017-11-01 12:11:53 +01:00
Bastien Bouclet
25940d2f1f MYST3: Only run drag scripts when the position changed
Fixes lever dragging sounds looping while levers are beeing dragged on
Voltaic.

Fixes #1368.
2017-11-01 11:06:50 +01:00
Bastien Bouclet
9484bbdd21 MYST3: Sort the files alphabetically in ResidualVM's load dialog 2017-10-01 15:29:27 +02:00
Bastien Bouclet
d7896defae MYST3: Clear the screen with solid black
Fixes unintentional transparency when loading games from the menu
2017-10-01 15:19:08 +02:00
Bastien Bouclet
b12ea8b8c8 MYST3: Play the last frame of simple movies for their entire duration
Fixes #1351.
2017-10-01 14:22:10 +02:00
Bastien Bouclet
a13e3f7bdd MYST3: Prevent loading from the GMM while the game is not interactive
Also honor quit requests while in inner loops.
Fixes #1369.
2017-09-24 17:08:41 +02:00
Bastien Bouclet
8843400444 MYST3: Reset the input state after transitions
Fixes #1362.
2017-09-23 20:37:24 +02:00
Bastien Bouclet
ef2b09f798 MYST3: Fix incorrectly evicting common rooms from the cache
Fixes #1366.
2017-09-23 17:54:40 +02:00
Bastien Bouclet
289f962faf MYST3: Plug memory leak when loading a save
Fixes #1364.
2017-09-22 07:21:00 +02:00
Bastien Bouclet
d48d890ef5 MYST3: Fix visual inconsistency in the lever/ball puzzle
When the ball goes through the door it changes position, and yet has no
ball frames to play. Trying to play those frames anyway would set the
ball frame to zero, resulting in a visual inconsistency when resetting
the node.

Fixes #1363.
2017-09-19 07:10:43 +02:00
Bastien Bouclet
eff56897ea MYST3: Set the sound type for Bink movies 2017-09-03 15:50:15 +02:00
Bastien Bouclet
5d490eed92 MYST3: Clear the screen early in the initialization
Avoids drawing a frame of garbage when the debug console updates the
screen ia bit later (for some reason).
2017-09-02 07:45:37 +02:00
Bastien Bouclet
9ad31268fa MYST3: Use the main event loop for simple movies 2017-09-01 09:26:57 +02:00
Bastien Bouclet
125ccf3b4d MYST3: Implement fullscreen toggling 2017-09-01 09:26:57 +02:00
Bastien Bouclet
b97e49c3ee MYST3: Change surface data to always be in the RGBA byte order
This eases uploading the textures to OpenGL, and will hopefully fix
endianness issues.
2017-08-20 09:36:31 +02:00
Bastien Bouclet
6aee542a1d MYST3: Cache the value of the water effect parameters
Improves the speed of the water effect update.
2017-08-19 23:11:46 +02:00
Bastien Bouclet
142b914eb5 MYST3: Fix some transitions after movies using the wrong source image
Fixes #1353.
2017-08-19 18:10:22 +02:00
Bastien Bouclet
3ec5f050ce MYST3: Refresh the ambient sounds when running playMovieChangeNode
Fixes #1337, Fixes #1350.
2017-07-19 06:54:45 +02:00
Bastien Bouclet
e29c7ded48 MYST3: Add minimal BiDi processing for the Hebrew version
Fixes rendering the subtitles from right to left
2017-06-20 14:03:55 +02:00
Bastien Bouclet
c6e11c3691 MYST3: Switch file misc metadata to a Common::Array
Should fix failure to load one of the files in the Hebrew version,
as seen in bug #1348
2017-06-20 14:01:44 +02:00
Bastien Bouclet
c197adfa46 MYST3: Force the Hebrew subtitles to use the cp1255 encoding 2017-06-16 19:00:49 +02:00
Bastien Bouclet
2f7bb9228a MYST3: Add a subtitle font mapping for the Hebrew version
It's unknown what font the "Arial2" font face actually is.
Users should provide a font with Hebrew glyphs as "hebrew.ttf".
2017-06-14 21:46:29 +02:00
Bastien Bouclet
3dab2b5d95 MYST3: Fix incorrect Hebrew language file name 2017-06-14 08:41:27 +02:00
Bastien Bouclet
68cf4e929f MYST3: Also load the menu language file for the Hebrew version 2017-06-14 07:38:11 +02:00
Bastien Bouclet
9cb43c21f5 MYST3: Add detection for the Hebrew version
Refs #1348.
2017-06-14 07:17:05 +02:00
Bastien Bouclet
ee1b28ffdf MYST3: Use the engine_speed setting to contigure the frame limiter 2017-05-26 06:42:49 +02:00
Vincent Pelletier
e7073dc037 ALL: Add an option to control dirty rectangless TinyGL optimisation
Exposed to command line via --[no-]dirtyrects.
As dirty rectangles make the workload vary a lot between frames, it makes
performance regressions harder to spot. Disabling it produces lower, but
much more regular FPS counts.
2017-05-03 16:52:36 +00:00
Bastien Bouclet
f11e25f129 MYST3: Don't crash when myst3.dat is not found
Fixes #1333.
2017-04-20 17:38:56 +02:00
Bastien Bouclet
192b85af32 MYST3: Use a full 3D intersection test for hotspots
Cube hotspots are now fully accurate when compared to the original engine.
Fixes #1329.
2017-04-17 08:52:36 +02:00
Bastien Bouclet
c421e8305c MYST3: Add a script patch for the water effects in room LEOF
Fixes #1330.
2017-04-15 06:56:42 +02:00
Bastien Bouclet
2632f11c8a MYST3: Minor cleanup 2017-04-14 06:20:52 +02:00
Bastien Bouclet
62fb8d2875 MYST3: Fix incorrect logic in the ifOneVarSetInRange opcode
The test was never true due to in incorrect precondition check

Fixes #1328.
2017-04-10 19:13:44 +02:00