Commit Graph
137148 Commits
Author SHA1 Message Date
Bastien Bouclet ee1b28ffdf MYST3: Use the engine_speed setting to contigure the frame limiter 2017-05-26 06:42:49 +02:00
Paul Gilbert 78f69e198c TITANIC: Fix calculating orientation transition matrixes 2017-05-25 22:27:19 -04:00
Colin Snover d0040dc8ef SCI32: Fix SCI3 object names > 0xFFFF 2017-05-25 19:25:50 -05:00
Bastien Bouclet efd4efe1ad STARK: Fix typo in constant 2017-05-25 22:00:42 +02:00
Bastien Bouclet 6909ea7c93 STARK: Switch to framerate independant fast forward 2017-05-25 21:31:21 +02:00
Bastien Bouclet f1ea81e5c3 STARK: Switch to framerate independant sound fading 2017-05-25 21:31:21 +02:00
Bastien Bouclet 1f9c20a6ea STARK: Switch to framerate independant rumble duration 2017-05-25 21:31:21 +02:00
Bastien Bouclet e6696fd5bc STARK: Switch to framerate independant fading 2017-05-25 21:31:21 +02:00
Bastien Bouclet 5577b3eece STARK: Pause the currently playing videos when ResidualVM pauses the engine
This way, the videos don't play too fast because they try to make up for the
pause time when resuming.
2017-05-25 21:31:21 +02:00
Bastien Bouclet 23f1222eec STARK: Implement the floatScene opcode 2017-05-25 21:31:17 +02:00
Bastien Bouclet 72b5b0c105 STARK: Introduce a frame rate limiter
Does its best to keep the framerate at 60 fps or at the vsync frequency if
iwait for vsync is enabled.
2017-05-25 21:30:07 +02:00
Bastien Bouclet 1bd4b2ccf9 STARK: Implement random idle action animations 2017-05-25 21:30:03 +02:00
Willem Jan Palenstijn dadf1dbe94 GUI: Fully hide GMM save/load buttons if not supported by engine
Previously, they were only greyed out. According to the discussion on
patch #8925, this was a limitation of the GUI layout engine when these
buttons were introduced in 2008. This no longer seems to be a problem.
2017-05-25 16:23:34 +02:00
Bastien Bouclet 052be38c96 STARK: Implement the swayScene opcode 2017-05-25 13:00:44 +02:00
Martin Kiewitz ad1cc613ef SCI32: Fix typo in script patch name 2017-05-24 18:49:55 +02:00
Martin Kiewitz 26fe96d637 SCI32: Add script patch for lsl7 cheese maker priority bug
This issue also happens when using the original interpreter.
2017-05-24 18:45:16 +02:00
Martin Kiewitz 97d4a9eff1 SCI32: Add script patch for cheese maker issue
Room 540, was game breaking, but effectively a script
bug, that just happened to work in SSCI.
2017-05-24 15:37:18 +02:00
Thierry Crozat dc9c121d77 I18N: Update translations templates 2017-05-24 06:16:56 +02:00
Hein-Pieter van Braam cffe01536e SCI32: Add 'music/' subdir to file path for LSL7 GOG
LSL7 originally came with music in two qualities in subdirectories of
the 'music' directory, 22s8 and 22s16. The gog.com release doesn't do
this and only ships the hq music in the root of 'music/'. This PR adds
it to the search path.

Closes gh-951.
2017-05-23 23:16:15 -05:00
Colin Snover fdb87619c6 SCI32: Fix selector search for SCI2/2.1 games with missing vocab.997
Fixes Trac#9796.
2017-05-23 22:41:56 -05:00
Paul Gilbert 31c2aa8d24 TITANIC: Rename DMatrix fn3 to loadTransform 2017-05-23 22:31:55 -04:00
Paul Gilbert bf3d66d46b TITANIC: Fix result of CMatrixTransform fn5 method 2017-05-23 22:14:45 -04:00
Paul Gilbert 9c28bcf043 TITANIC: Renamed CStarControlSub26 to CMatrixTransform 2017-05-22 19:58:49 -04:00
Lothar Serra Mari 44bd75c368 I18N: Update translation (German)
Currently translated at 100.0% (957 of 957 strings)
2017-05-22 17:13:09 +02:00
Ben Castricum d2882f430c I18N: Update translation (Dutch)
Currently translated at 100.0% (957 of 957 strings)
2017-05-22 07:36:02 +02:00
Paul Gilbert e6857b48d5 TITANIC: Further renamings for orientation changer use 2017-05-21 23:21:26 -04:00
Thierry Crozat 8983a82741 I18N: Regenerate translations data file 2017-05-22 05:05:03 +02:00
Paul Gilbert 4f10761db3 TITANIC: Rename transition percent fields in Starfield classes 2017-05-21 23:01:49 -04:00
Paul Gilbert 1ed01c2f7f TITANIC: Rename Sub25 class to COrientationChanger, fixes & cleanup 2017-05-21 22:58:31 -04:00
Colin Snover 63a87ac1f7 SCI32: Fix return value of kWebConnect
On macOS, the return code from OSystem::openUrl was the opposite
of what it was supposed to be; it is now fixed, so this caller
needs to be fixed too.
2017-05-21 19:37:42 -05:00
Colin Snover 2d3c86187f MACOSX: Fix flipped return value of openUrl 2017-05-21 19:37:14 -05:00
Colin Snover 159e5a97ce ENGINES: Allow detection entries to match on full paths
This allows an engine to match files that exist multiple times
in the same game directory with the same basename.

For example, different releases of Torin's Passage in SCI engine
come with zero or more GERMAN, FRENCH, ENGLISH, etc. directories,
all containing files with the same basenames but with different
contents per language. Because the allFiles map used only the
basename of a file as a key, it could not match more than one of
these localization directories, which made it impossible to select
from all the possible languages.

Refs Trac#9772.
2017-05-21 15:56:42 -05:00
Thierry Crozat 8575c9d59f I18N: Update translations templates 2017-05-21 22:56:31 +02:00
Lothar Serra Mari 8cca1015ba I18N: Update translation (German)
Currently translated at 99.8% (956 of 957 strings)
2017-05-21 22:56:21 +02:00
Timo Mikkolainen fdb27c9106 I18N: Update translation (Finnish)
Currently translated at 100.0% (957 of 957 strings)
2017-05-21 22:56:21 +02:00
Colin Snover fa0bb7dd5a BACKENDS: Compress screenshots using PNG if available
Closes gh-948.
2017-05-21 15:55:39 -05:00
Paolo Bossi 71989715d0 I18N: Update translation (Italian)
Currently translated at 100.0% (957 of 957 strings)
2017-05-21 13:27:43 +02:00
Colin Snover c73bf1c0ce SCI: Add resource hash to resource_info debugger command
Bad resources that need to be blacklisted sometimes seem to have
the same size as good resources. In such cases, the bad resources
can be identified by hash instead. Adding a hash output to
resource_info will make it easy for users to provide the hash of
questionable resources inside of resource bundles that we do not
have access to.

Refs Trac#9797.
2017-05-20 21:52:00 -05:00
Thierry Crozat dd6cbaa318 I18N: Update translations templates 2017-05-21 04:20:47 +02:00
Colin Snover ef69a59467 SCI: Stop leaking locals segments during script reuse
When a game deletes a script and then loads the same script again
before it has been fully deallocated,
SegManager::instantiateScript tries to reuse the same script
& locals segments, but it was failing to reuse the old locals
segment because Script::freeScript would unconditionally clear
the old locals SegmentId, which meant the old locals segment would
just leak.

This patch does not fix old save games which may contain orphaned
locals segments, but should prevent the problem from occurring
going forward. (It is possible to clean up these old save games,
but this is not a big leak so it doesn't seem worth the extra
effort to do so.)
2017-05-20 21:14:18 -05:00
Colin Snover bc728a1c93 SCI: Fix warning about missing base object when loading save games
This situation occurs rarely, but normally, when unreachable but
not yet GC'd objects use a superclass which has already been GC'd.

Thanks to @wjp for looking at this with me and clarifying what
was going on.
2017-05-20 21:14:18 -05:00
Colin Snover eba1e883e9 SCI: Minor punctuation fix in buggy script alert 2017-05-20 21:14:18 -05:00
Colin Snover 4917330038 SCI: Find and store the original static names of objects
See code comment in Object::init for more details.

Fixes Trac#9780.
2017-05-20 21:14:18 -05:00
Colin Snover 1f29e6f241 SCI: Refactor relocation code
This groundwork enables an object to look up its static name
separately from the normal process that is used to populate
Object::_variables when an object is first constructed.

(The static name property needs to be able to be retrieved from
objects inside of earlier save games whose name properties may
have already been modified at runtime, so the code cannot simply
pluck the value out of Object::_variables when they are first
initialised and then persisted into the save game, as nice and
easy as that would have been.)

This commit also helps to clarify the situation with relocation
tables in SCI1 games that start with a zero entry.

Refs Trac#9780.
2017-05-20 21:14:18 -05:00
Colin Snover d09ae57fd8 SCI32: Remove bad assertion in relocateSci3
While extremely rare (only Rama script 64948 seems to have this
profile), it *is* possible for an object to have zero properties
(and thus, zero property offsets).
2017-05-20 21:14:18 -05:00
Colin Snover eda836f21a SCI: Nitpicky cleanup of some magic numbers and what-not-why comments 2017-05-20 21:14:18 -05:00
Colin Snover 71630a7cb2 SCI: Remove duplicate relocateBlock function 2017-05-20 21:14:18 -05:00
Colin Snover bc9835ba5e SCI: Always use SegManager::getObjectName to get object names
This ensures that all object name reading code works the same and
is in one place in the codebase.
2017-05-20 21:14:18 -05:00
Colin Snover 881be25fcd SCI: Stop making copies of ObjMap and remove related dead code
ObjMap owns Objects, so every time this map gets copied instead of
referenced, it creates a copy of every single object in the
associated script. This is expensive, and it breaks things like
the `Object::syncBaseObject` call in savegame.cpp, which hasn't
actually been doing anything since
58190c36b4 because it has been
operating on copies.
2017-05-20 21:14:18 -05:00
Colin Snover 66efb750a0 SCI: Add more support for >16-bit SCI3 offsets
Basically just grepped for getOffset calls being assigned to
uint16s and expanded those to uint32 when they looked trivial.

While some of these changes seem superfluous, at least for the
US/English SCI3 games where potentially impacted game scripts are
not large enough to have a problem with 16-bit offsets (e.g. when
feature detecting the sound type), at least some of these changes
are necessary for correct operation of the find_callk debugger
command in SCI3 games. There should not be a reason why any of
these variables need to be kept as uint16, in any case.
2017-05-20 21:14:18 -05:00