Commit Graph
137148 Commits
Author SHA1 Message Date
Colin Snover a620b6c354 SCI: Fix handling of buggy SCI0 export tables
The previous fix for this bug was incorrect; it only happened
to work because of another bug: the number of exports was being
read incorrectly (reading the byte size of the export block, not
the number of exports), so the validation check for the export
number always passed. Then, the "small" offsets that were seen
were actually either invalid reads into the header of the next
block in the script (KQ4), or reads into the bad first export
table which contained an unfilled offset (Camelot).

Once the incorrect number of exports was fixed, the previous "fix"
broke in KQ4 because the export number validation started to work
correctly and the first export table does not have enough entries
(needs 2, has 1).

This patch fixes the bug by using the last export table in SCI0
scripts instead of the first export table. (This does not affect
most scripts, since only the buggy scripts have more than one
export table.)

Fixes Trac#9731.
2017-04-18 11:47:18 -05:00
Torbjörn Andersson 6cda47ca3d JANITORIAL: Remove superfluous semicolons 2017-04-18 06:49:14 +02:00
Eugene Sandulenko a36e631b16 DIRECTOR: Fix event processing 2017-04-17 18:23:25 +02:00
Paul Gilbert 4940bef43e TITANIC: Further renamings of CStarMover fields 2017-04-17 11:50:12 -04:00
Paul Gilbert 60faebe348 TITANIC: Renamings for CCameraMover fields and methods 2017-04-17 11:39:25 -04: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
Lothar Serra Mari 363da6ee55 I18N: Update translation (German)
Currently translated at 100.0% (946 of 946 strings)
2017-04-17 08:02:41 +02:00
Thierry Crozat 571f608192 I18N: Regenerate translations data file 2017-04-17 05:05:09 +02:00
Paul Gilbert b22b572e64 TITANIC: Further positioning renames 2017-04-16 22:03:33 -04:00
Paul Gilbert feb359e4a9 TITANIC: Renamings for positions and orientations 2017-04-16 21:46:36 -04:00
Paul Gilbert 3877a0642b TITANIC: Renamings for mover position updates 2017-04-16 18:16:08 -04:00
Paul Gilbert 4fae7c8e78 TITANIC: Renaming of camera setting position & orientation 2017-04-16 17:24:41 -04:00
Paul Gilbert 0774501c8d TITANIC: Renaming for viewport position poses and access methods 2017-04-16 16:00:03 -04:00
Paul Gilbert e1ea47eb5c TITANIC: Rename CStarControlSub13 to CViewport 2017-04-16 15:40:54 -04:00
Colin Snover 4946f149b4 SCI: Improve MidiParser_SCI robustness against bad sound resources
1. KQ4 sound 104 has an extra 0xFC (MIDI Stop command/kEndOfTrack)
   at the end of the resource, which causes an out-of-bounds read
   because the filtering loop continues after the first 0xFC and
   unconditionally attempts to read 2 bytes (expecting there to
   always be a delta value + a command, whereas in this file there
   is only another kEndOfTrack command). This is corrected by
   exiting the filtering loop when a kEndOfTrack is encountered
   and there is not enough data remaining in the resource to
   continue reading.

2. KQ5 sound 699 is truncated, which causes the parser to attempt
   to read past the end of the resource. This is addressed by
   adding bounds checks that exit the mix loop early if there is
   no more data available to read. This allows truncated sounds
   to be played as far as possible (previously, trying to read
   truncated resources would result in a fatal error).

3. midiMixChannels allocates an arbitrary amount of raw memory
   for the mixed MIDI sequence, without performing any bounds
   checking when writing to this memory, potentially leading to
   a crash or silent corruption of adjacent memory. This is
   mitigated by using SciSpan instead of a raw pointer for the
   mixed data.

Fixes Trac#9727.
2017-04-16 12:23:35 -05:00
Paul Gilbert fa27fd7478 TITANIC: Extra debugging info for starfield movement 2017-04-16 13:03:12 -04:00
Paul Gilbert b57fd696ba TITANIC: Renamed CStarControlSub20 to CCameraMover 2017-04-16 11:35:32 -04:00
Thierry Crozat f1b2d9c71b NEWS: Mention improved handling of joysticks 2017-04-16 09:59:03 +01:00
D G Turner 51edb208e2 TITANIC: Fix GCC Unused Variable Warning. 2017-04-16 06:09:16 +01:00
Paul Gilbert 93c2ca3c94 TITANIC: Renaming methods for setting camera movement 2017-04-15 22:21:01 -04:00
Paul Gilbert 074e466f91 TITANIC: Renaming movement counter fields 2017-04-15 21:35:04 -04:00
Paul Gilbert d128587e99 TITANIC: Movement starting to work when star is clicked 2017-04-15 21:24:56 -04:00
Paul Gilbert 12fa59697e TITANIC: Renaming and fixes for movers active flag 2017-04-15 18:28:26 -04:00
Paul Gilbert d150d1e3bf TITANIC: Remove hard-coded starfield position 2017-04-15 17:10:23 -04:00
Paul Gilbert c2d54f010e TITANIC: Fixes for setting up star closeup sphere data 2017-04-15 16:38:14 -04: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
Eugene Sandulenko 4873330d23 DIRECTOR: Lingo: Added stub for generic event handlers 2017-04-14 18:49:01 +02:00
Bastien Bouclet 2632f11c8a MYST3: Minor cleanup 2017-04-14 06:20:52 +02:00
Thierry Crozat 1e38ca45cd SCI: Fix speech in QfG IV on big endian platforms 2017-04-14 00:01:54 +01:00
stevenhoefel bcc3fffc2d DIRECTOR: D5 Shared Cast loading. 2017-04-13 14:41:00 +10:00
Paul Gilbert 5741ee3103 TITANIC: Fix centroid calculations in star drawing methods 2017-04-12 20:48:47 -04:00
Paolo Bossi 887adf1723 I18N: Update translation (Italian)
Currently translated at 100.0% (946 of 946 strings)
2017-04-12 22:07:59 +02:00
Eugene Sandulenko 689a6ff6af I18N: Update translation (Spanish)
Currently translated at 98.9% (936 of 946 strings)
2017-04-12 08:05:33 +02:00
pablobecerra e8d777f6c7 I18N: Update translation (Spanish)
Currently translated at 98.9% (936 of 946 strings)
2017-04-12 08:04:53 +02:00
Paul Gilbert 910e6816ea TITANIC: Further cleanup of CStarCloseup draw 2017-04-10 22:33:16 -04:00
Paul Gilbert 31bf6cd708 TITANIC: Cleaning up CStarCloseup draw 2017-04-10 22:18:22 -04:00
Paul Gilbert aab8803ade TITANIC: If statement fix in CStarCloseUp draw 2017-04-10 22:14:10 -04:00
Paul Gilbert c22f408d46 TITANIC: Formatting fix 2017-04-10 19:59:43 -04:00
Paul Gilbert 2c9dffc502 TITANIC: Temporarily lock camera for testing star closeup rendering 2017-04-10 19:58:33 -04: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
Bastien Bouclet 1d4c9b7d36 MYST3: Add missing peg sound effect in the pinball puzzle
Fixes #1328.
2017-04-10 19:11:00 +02:00
Paolo Bossi 9877daad89 I18N: Update translation (Italian)
Currently translated at 100.0% (946 of 946 strings)
2017-04-10 11:14:05 +02:00
George Kormendi 3074cd4b2b I18N: Update translation (Hungarian)
Currently translated at 99.7% (944 of 946 strings)
2017-04-10 10:51:18 +02:00
Peter Kohaut 5e279ac055 BLADERUNNER: added Leon AI script
Happy incept day Leon!
2017-04-10 10:49:07 +02:00
Ben Castricum 678d1fbf51 I18N: Update translation (Dutch)
Currently translated at 100.0% (946 of 946 strings)
2017-04-10 07:52:14 +02:00
Eugene Sandulenko 2e8aa7aa3e I18N: Update translation (Russian)
Currently translated at 100.0% (946 of 946 strings)
2017-04-10 07:36:32 +02:00
Eugene Sandulenko 47f27ca827 I18N: Update translation (Ukrainian)
Currently translated at 100.0% (946 of 946 strings)
2017-04-10 07:33:28 +02:00
Thierry Crozat 82540e6363 I18N: Regenerate translations data file 2017-04-10 05:05:14 +02:00
Paul Gilbert 2a94ae2fb8 TITANIC: Fix CStarControlSub13 setPosition 2017-04-09 22:14:19 -04:00
Paul Gilbert 73e6546559 TITANIC: Fix incorrect indexing in CStarCloseup setup2 2017-04-09 22:08:54 -04:00