Commit Graph
137148 Commits
Author SHA1 Message Date
Colin Snover 3e107c1eb0 SCI32: Allow invalid references to be passed to kFileIO
Near the end of the game, RAMA will start trying to store some
invalid references. This does not affect the save game negatively
in any way, but it was causing the kernel to assert a signature
failure.
2017-09-24 22:56:58 -05:00
Colin Snover f42480d7cd SCI32: Support palette-inverting SCI3 variant of kPalVary
This is used by RAMA in room 6201, after eating the alien fruit.
2017-09-24 22:56:58 -05:00
Colin Snover 817887216d SCI32: Fix RAMA auto-save game
Despite what game script disassembly lead me to believe, the game
seems to create only one auto-save, which ends up being saved as
911.sg (not autorama.sg). This save file is created just before
entering the underground Avian Lair in New York, and seems to be
designed as some emergency backup since entering the Avian Lair is
a one-way trip.
2017-09-24 22:56:58 -05:00
Colin Snover 21337e4cf6 SCI32: Implement per-channel audio panning
Used by RAMA, in various places, starting with the refrigerator
at base camp after the cable car at the beginning of the game.
2017-09-24 22:56:57 -05:00
Martin Kiewitz d9dfca2fcb SCI: SQ4: Now using additional and enhanced Win3.11 samples
Which were originally only played, when using the Windows interpreter.
Afaik the DOS interpreter was incapable of playing more than 1
sample at a time, which was probably the reason why Sierra only
added these for the Windows interpreter.

For example a sample is now played, when points are awarded.

Those samples are currently used all the time and will also
enhance the game, when platform DOS is chosen.
In case someone wishes to opt-out of this, we could add a game
specific option.

We do something like this for Space Quest 3 already,
that's why I don't see a reason to add a game option right now.
2017-09-25 00:44:04 +02:00
Colin Snover 53dd55ebf2 SCI32: Fix bad palettes in Lighthouse when HQ video is enabled
In a couple of places, Lighthouse updates the renderer with screen
items for the next room before the room transition video plays.
This is normally fine when using the compositing video renderer
because the videos are drawn into new planes which occlude the
screen items, so the screen items are culled from the draw list
and do not submit their palettes. However, when in HQ video mode,
we currently force the overlay renderer, which was not blocking
screen items before forcing a frameOut, so the screen items'
palettes got submitted prematurely in this case and caused bad
rendering after the video finished playback.

Now, if we are forcing into the overlay code path, we still create
a blank plane behind the overlay before the forced frameOut in
order to correctly occlude screen items and keep them from
participating in rendering before they normally would.

Fixes Trac#10233, Trac#10235.
2017-09-24 16:22:40 -05:00
Colin Snover 56cc138e58 IMAGE: Remove unnecessary heap allocation in BitmapRawDecoder 2017-09-24 16:22:40 -05:00
Paul Gilbert f806b95eda TITANIC: DE: Properly implement CArboretumGate changes 2017-09-24 14:33:54 -04:00
Paul Gilbert 65811506f8 TITANIC: Don't launch further bot speeches when exiting game
Previously, notifying bots to the end of a speech fragment was
done in ~TTtalker. Which caused problems when in progress talkers
were freed when exiting the game with a speech was in progress,
since it would try to start the next following speech fragment.
2017-09-24 14:09:24 -04:00
Martin Kiewitz 26183f7289 SCI: Add SQ4CD script patch to add audio for universal remote control
for Hk So Good store catalog.
Implements enhancement #10227
2017-09-24 19:00:12 +02:00
Paul Gilbert 5ab826f135 TITANIC: Add some guards against using the game manager during game exit 2017-09-24 12:46:32 -04:00
Paul Gilbert a6026fc1fc TITANIC: Fix crash if you exit the game whilst a bot is talking 2017-09-24 12:39:39 -04:00
Paul Gilbert d9eebaf787 TITANIC: Fix leak of vocab synonyms on exit 2017-09-24 12:26:43 -04:00
Paul Gilbert 47f6c2e9b9 Merge pull request #1010 from dreammaster/debugger_params
GUI: Support double quoted debugger parameters
2017-09-24 12:18:15 -04:00
Paul Gilbert 3333432b4d TITANIC: Fix leak of movie event structures 2017-09-24 12:15:58 -04:00
Colin Snover d73ada9088 SCI: Fix generation of save games 2017-09-24 11:12:45 -05:00
Paul Gilbert 5424f70002 IMAGE: Fix memory leak in BitmapRawDecoder 2017-09-24 12:02:48 -04: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
Paul Gilbert 36ce79edb4 TITANIC: Fix access after free in shutdown 2017-09-24 10:55:50 -04:00
Paul Gilbert 947894ce1f TITANIC: Free any active wave files on exit 2017-09-24 10:48:04 -04:00
Paul Gilbert b724ea6530 TITANIC: Fix compiler warnings in DeskbotScript 2017-09-24 10:34:13 -04:00
Paul Gilbert 2bc23ba6c3 TITANIC: Fix looking at broken pellerator after the first time 2017-09-24 09:46:27 -04:00
Bastien Bouclet 4890dd4466 NETWORKING: Fix mismatched curl callback declaration and definition 2017-09-24 08:24:40 +02:00
Bastien Bouclet 25d66b2a08 Merge pull request #1027 from bgK/memstream-default-arg
COMMON: Remove the DisposeAfterUse default value from dynamic write memory streams constructors
2017-09-24 06:21:54 +02:00
Thierry Crozat 75026dba8c I18N: Update translations templates 2017-09-24 04:40:21 +02:00
Colin Snover fcf707e20a SCI32: Flush stub RAMA save game to disk
If this is not done and the file is buffered, it will not show up
in the list of save games, and the new save will fail.
2017-09-23 21:39:58 -05:00
Thierry Crozat 7401e859fa I18N: Update translations templates 2017-09-24 04:02:20 +02:00
Colin Snover d2364cb9bb SCI32: Fix bad data cube text priority calculation in RAMA 2017-09-23 20:57:04 -05:00
Colin Snover f83c61fcb6 SCI32: Fix relocation of locals in SCI3
Somehow, up until trying to view an encrypted data cube in RAMA,
the missing relocation of locals did not seem to cause any trouble
in any of the other SCI3 games.
2017-09-23 20:57:03 -05:00
Colin Snover 643a572610 Revert "SCI: Fix Warnings about Copy Constructor Failing to Call Base Class."
This reverts commit d2dd942ad7.

The Serializable class is an interface class and has only the
empty default copy constructor. There is no reason to call this
explicitly. Whatever is warning about this should be fixed to stop
warning about it, rather than adding such unnecessary calls to the
engine code.
2017-09-23 20:57:03 -05:00
Colin Snover dced2fb9f5 SCI32: Fix handling of array copies
kArrayCopy would perform an unnecessary memory copy of the source
array, the treatment of the count value as unsigned was clearly
not correct since it was being sign-extended and checked against
-1.
2017-09-23 20:57:03 -05:00
Colin Snover 6972c9ae46 SCI32: Fix bad default text scaling in RAMA 2017-09-23 20:57:02 -05:00
Colin Snover 602de8363b SCI32: Fix infinite reload in RAMA when loading from launcher 2017-09-23 20:57:02 -05:00
Colin Snover 9c28c25b67 SCI32: Add guest additions save/restore support for RAMA 2017-09-23 20:57:01 -05:00
Colin Snover 475bb5f91a SCI32: Remove unnecessary use of strncmp
One of the strings is a static string of the same size as the size
passed to strncmp so there is no point in not just using strcmp.
2017-09-23 20:57:01 -05:00
Colin Snover a63f516df0 SCI32: Replace magic number with kAutoSaveId in QFG4 save code 2017-09-23 20:57:00 -05:00
Colin Snover b038432952 SCI32: Support RAMA's custom save games through kFileIO 2017-09-23 20:56:48 -05:00
Colin Snover 9298f6a81e SCI: Split save game metadata writing to separate function
RAMA has its own custom save game format that game scripts write,
but we still want to be able to use these save game files from the
ScummVM launcher, so the metadata has to be able to be written
separately from the rest of the game saving.
2017-09-23 20:56:48 -05:00
Colin Snover d17ae077dd SCI: Use reference instead of pointer for required out-data in metadata save function 2017-09-23 20:56:48 -05:00
Colin Snover b3c27c2159 SCI: Clean-ups to file handling code
Preparations for adding support for RAMA's custom save game format.
2017-09-23 20:37:51 -05:00
Colin Snover 0ceab96e91 SCI32: Remove unused shrink-to-fit function for string arrays 2017-09-23 20:37:51 -05:00
Colin Snover 50cfb7ad46 SCI32: Fix size for dereferencing non-raw SCI32 arrays
The maxSize given when generating a SegmentRef is supposed to be
the maximum size of raw data that can be held inside the offset-
part of a reg_t, not the entire size including the segment.

This fixes a buffer overflow in "Inside the Chest", which still
does not work, but at least doesn't cause heap overflows anymore
with this change.
2017-09-23 20:37:51 -05:00
Paul Gilbert d74e94950b TITANIC: DE: Merged German NPC script subclasses back in
There ended up not being enough custom German code in the scripts
to warrant having sub-classes that reimplemented entire methods
2017-09-23 21:18:25 -04:00
Paul Gilbert e5cad39a58 TITANIC: DE: Updates for SuccUBusScript 2017-09-23 21:02:44 -04:00
Paul Gilbert e9034ddffe TITANIC: DE: Added changes to MaitreDScript 2017-09-23 20:39:12 -04:00
Paul Gilbert 6f150abf15 TITANIC: DE: Added changes for LiftbotScript 2017-09-23 19:30:28 -04:00
Paul Gilbert af71ec809b TITANIC: DE: Adding remaining DoorbotScript changes 2017-09-23 17:19:06 -04:00
Paul Gilbert 048bec6808 TITANIC: DE: Adding changes to DoorbotScript 2017-09-23 16:25:44 -04: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