Commit Graph
86814 Commits
Author SHA1 Message Date
Hein-Pieter van Braam 04fb40be2d SCI32: Fix kArrayFill
The ScummVM implementation of class SciArray::fill() has a bug where it
will overwrite the array[index] with the value count times, rather than
fill the array starting from index count times.

This patch fixes that behavior. This was noticed because the LSL7 dice
game was broken, it was impossible to lose. After this patch the dice
game works as expected.

Closes gh-953.
2017-05-26 12:21:43 -05: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
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
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
Colin Snover 14a521a211 SCI32: Fix kPlatform operation for SCI2 through SCI2.1early
Fixes Trac#9795.
2017-05-20 21:14:18 -05:00
Colin Snover cb657c0c0f SCI: Ignore patch resources with .DOS and .WIN extensions
Type mismatch is triggered on THEGUIDE.DOS and THEGUIDE.WIN from
at least Phant1 French 1.100.000.
2017-05-20 21:14:18 -05:00
Paul Gilbert c4134a9e92 TITANIC: Method renamings in star control camera classes 2017-05-20 20:45:56 -04:00
Paul Gilbert 7fb217b30b TITANIC: Remove unused variable 2017-05-20 17:54:56 -04:00
Lothar Serra Mari 7cef9829ac I18N: Update translation (German)
Currently translated at 99.5% (953 of 957 strings)
2017-05-20 23:27:45 +02:00
Paul Gilbert 1b10678898 TITANIC: Fix blitting of game objects with a transparency surface 2017-05-20 17:27:23 -04:00
Willem Jan Palenstijn 779b8336b1 SCI: Let getClassAddress fail gracefully with SCRIPT_GET_DONT_LOAD
This fixes a crash in the debugger when disassembling the class opcode
with a class from a script that hasn't yet been loaded.
2017-05-16 22:41:47 +02:00
Martin Kiewitz cadd89e675 SCI: Add script patch for "Tickets, only" during game over scene
Audio played was "Tickets, only", subtitle shows "Tickets, please".

Also remove forcing myDialog for KQ6Print::say (which was added,
while fixing this script patch).
see a46f3c1625
Forcing myDialog causes issues during game over screen (bug #9771).
Bug is solved by this, but script patch isn't perfect right now.
2017-05-15 22:56:04 +02:00
Willem Jan Palenstijn 388419c53c SCI: Ignore priority and transparency for KQ6 hi-res views
This fixes bug 9786. Thanks to m_kiewitz for verifying with disasm.
2017-05-15 22:03:25 +02:00
Thierry Crozat 5c31db0594 I18N: Regenerate translations data file 2017-05-15 05:05:08 +02:00