Commit Graph
86814 Commits
Author SHA1 Message Date
Colin Snover dbdbb9b5b3 SCI32: Match 4-language MGDX extra save game data 2017-07-24 19:36:36 -05:00
Colin Snover bfa6ad5155 SCI32: Use dynamic selector in QFG4 trap script patch 2017-07-24 19:36:35 -05:00
Colin Snover 40e9963baa SCI32: Deduplicate volume reset script patches & add to MGDX 2017-07-24 19:36:34 -05:00
Colin Snover f88bcb3ee9 SCI32: Add deflang (default language) kGetConfig key for MGDX 2017-07-24 19:36:32 -05:00
Colin Snover 4c316d45fd SCI32: Fix ResourceManager::changeAudioDirectory
Fixes Trac#9577.
2017-07-24 19:36:28 -05:00
Paul Gilbert 64cbcba420 TITANIC: Workaround Conversation area corruption when dragging items
When dragging an item, the bounds for the area of the screen affected
goes from the dragged item to the blinking cursor when the conversation
tab is active. This rect overlapping the conversation area somehow
starts erasing some of the conversation log. Despite some effort, I
haven't been able to track down the exact cause. So the easiest
workaround is simply to make the entire PET as dirty each frame when
dragging an item, which seems to fix the problem. Though it would be
nice, at some point, if the rooot cause could still be identified.
2017-07-24 08:09:00 -04:00
Colin Snover 2005ed79d6 SCI32: Emit a warning when an audio resource cannot be found
Refs Trac#9976.
2017-07-23 16:01:19 -05:00
Colin Snover d38704e16d SCI: Blacklist certain audio map patch files
Refs Trac#9976.
2017-07-23 16:01:19 -05:00
Colin Snover 4d52b018a2 SCI: Keep audio maps out of the LRU cache 2017-07-23 16:01:19 -05:00
Paul Gilbert d3f3da4d15 TITANIC: Fix delay before Bellbot & Doorbot appears 2017-07-23 15:04:20 -04:00
Colin Snover 580f3875c0 SCI32: Fix explicit mouse position changes
This was broken by 9f33f2b3df.
2017-07-23 11:42:55 -05:00
Colin Snover dabcacb0ca SCI32: Add missing method documentation 2017-07-23 10:35:13 -05:00
Colin Snover 8d32353394 SCI32: Stop throttling of kFrameOut during interactive VMD playback
Refs Trac#9974, Trac#9975.
2017-07-23 10:35:13 -05:00
Colin Snover 2004aecb05 SCI32: Make stop flag condition more explicit 2017-07-23 10:35:13 -05:00
Colin Snover 2ed18b86db SCI32: Check for stop events before rendering the next frame
This should make things slightly more responsive and avoids
unnecessary rendering of frames that are just going to disappear
in a moment.
2017-07-23 10:35:13 -05:00
Colin Snover 0beb259278 SCI32: Improve performance when flushing events during video playback
Calling through EventManager::getSciEvent to flush events is
pretty inefficient and created stalls that lead to dropped
frames during the chapter 7 chase in Phantasmagoria 1.

If necessary, performance could be improved further by extending
Common::EventManager to expose SDL_FlushEvents, but this seems to
finish in 0-1ms so should be OK for now.

Refs Trac#9974, Trac#9975.
2017-07-23 10:35:13 -05:00
Colin Snover 6b87b13ab1 SCI: Minor cleanups in kGetEvent 2017-07-23 10:35:13 -05:00
Colin Snover 3d92f05261 SCI32: Fix hot rectangle events
This fixes delayed mouse cursor updates during the chase scene in
Phant1.

Refs Trac#9975.
2017-07-23 10:35:13 -05:00
Colin Snover 8bab5a3467 SCI: Resolve offset names when disassembling object methods 2017-07-23 10:35:13 -05:00
Colin Snover 5b166a5173 SCI32: Avoid extra cursor paints when the cursor has not moved 2017-07-23 10:35:13 -05:00
Colin Snover 9f33f2b3df SCI32: Don't warp the mouse when it doesn't need to be warped 2017-07-23 10:35:13 -05:00
Colin Snover 970c312e76 SCI32: Detect multi-disc audio by RESSCI files instead of RESAUD
If a user fails to rename audio files in the required manner when
copying them, detecting multi-disc audio by looking for a renamed
audio file does not work very well. Looking at RESSCI.00n is a
better choice, though this is not completely valid since e.g.
Rama 1.0 US has only one RESOURCE.SFX volume which its installer
copies to the hard drive, so a little more work will need to be
done in the future to find and fix these kinds of edge cases.

Refs Trac#9976.
2017-07-23 10:35:13 -05:00
Paul Gilbert 807fecf0f2 TITANIC: Add missing break lines to switch statements
Thanks to bgK for providing a gcc output
2017-07-23 10:01:16 -04:00
Willem Jan Palenstijn 7fcfb4214e MOHAWK: Remove unnecessary include that was breaking some builds
This was breaking builds with the Myst sub-engine disabled.
2017-07-23 15:14:08 +02:00
Bastien Bouclet bc952807ec TITANIC: Adjust the switch/case fall-through comments
This way, GCC 7 does not generate a warning for those cases when
-Wimplicit-fallthrough=3 is enabled, which is now the default.
2017-07-23 11:12:12 +02:00
Paul Gilbert 96a1b70700 TITANIC: Fixes for CIdleSummoner to summon Bellbot or Doorbot 2017-07-22 21:56:46 -04:00
Paul Gilbert 371a594b8d VIDEO: Fix AVIDecoder skipping alternate frames in reverse playback 2017-07-22 21:02:26 -04:00
Thierry Crozat 7e12a62ce8 I18N: Update translations templates 2017-07-22 20:42:14 +02:00
Bastien Bouclet 2597e69f29 MOHAWK: Myst: Fix Selenitic sound receiver buttons not flashing
The new screen update strategy does not allow scripts to draw twice at
the same location for blinking.
2017-07-22 20:38:56 +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 01480f9a00 MOHAWK: Myst: Fix the quickTest debug command 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 3dd4da0c37 MOHAWK: Myst: Change the delay opcode 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 a106dc8dd4 MOHAWK: Remove unused parameters VideoManager 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 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
Simei Yin a1be6d4209 SLUDGE: Move sprite bank to graphics manager 2017-07-21 14:00:24 +02:00