Commit Graph
137148 Commits
Author SHA1 Message Date
NMIError 5dfd6d0665 LURE: Fix bells sounding in town
When entering town after escaping from prison, after a little while bells start
chiming constantly. This does not happen in the original interpreter.

This is caused by a script that generates the ambient thunder sounds in the
prison. After the prison escape the clearSequenceDelayList function is called,
but this did not remove the script because it is not marked as "can be cleared".
Because this script is not running in town in the original interpreter, I think
the clearSequenceDelayList function is supposed to clear all scripts, even the
ones not marked as "can be cleared". The only other scripts that this affects
are two more ambient sound scripts that are now removed after entering the
castle towards the end of the game (the only other place where
clearSequenceDelayList is called). These scripts only play sounds while in town,
so removing them has no effect (but does remove some unnecessary processing).
2020-12-08 21:27:58 +01:00
NMIError 3b41b6a16b LURE: Fix water sound when opening or closing door
Some room exit data have the door opening or door closing sound defined as 0
(f.e. the cave doors). This means no sound should be played. ScummVM would play
sound 0 instead, which is the running water sound. This change fixes this by
checking for value 0 and not playing a sound in that case.
2020-12-08 21:27:57 +01:00
NMIError f3848ea5be LURE: Fix town shop clock
The sound of the clock in the town shop was played much too frequently. Fixed
this to match the one tick per second of the original interpreter.
2020-12-08 21:27:57 +01:00
NMIError 7642698fd7 LURE: Fix door sounds
ScummVM did not seem to trigger door opening and closing sounds, f.e. the cell
door at the start of the game. The checks in the roomExitAnimHandler compared
hotspot IDs to room numbers, which are different sets of IDs AFAICT. Also, the
door opening part would decrease the frame counter first, then compare to the
set destination frame. The opening sound should often be triggered at the start
of the animation, but because the frame counter is decreased first, it does not
trigger at the first frame. I moved the frame counter decrease after the check
to fix this.
2020-12-08 21:27:56 +01:00
Martin Gerhardy b26514e55b TWINE: started to use the entity data 2020-12-08 20:03:24 +01:00
Martin Gerhardy e68d08b8d1 TWINE: ensure that the proper entity data buffer size is set 2020-12-08 20:03:24 +01:00
Martin Gerhardy 42929ae8dc TWINE: reset body table index in a method 2020-12-08 20:03:24 +01:00
Martin Gerhardy f6f245ab65 TWINE: removed redundant null pointer check 2020-12-08 20:03:23 +01:00
Martin Gerhardy d2f7c935d8 TWINE: format the code 2020-12-08 20:03:23 +01:00
Martin Gerhardy 3b00761f78 TWINE: debug logging 2020-12-08 20:03:23 +01:00
Martin Gerhardy ba9bc506e5 TWINE: extended EntityData class 2020-12-08 20:03:23 +01:00
Martin Gerhardy 208904c53c TWINE: removed stub in holomap code 2020-12-08 20:03:23 +01:00
Martin Gerhardy e51c0bcff0 TWINE: removed unused code
currentIndex and localActor->entity are the same values - so the call to copyActorInternAnim was a NOP
2020-12-08 20:03:23 +01:00
Christian Krause ab828f3f3c GRIM: gracefully handle critical floating point operations 2020-12-08 19:35:54 +01:00
Christian Krause 27a7952679 MATH: make Angle class more robust
- clamp some intermediate values to the defined range
  which could be slightly violated due to floating point rounding
2020-12-08 19:30:04 +01:00
Christian Krause 082e792460 MATH: Refactor Line2d
- use standard linear equation Ax + Bx = C
- simplify most calculations
- remove default constructor
- remove unused function
2020-12-08 19:26:25 +01:00
Christian Krause f2195d8dbf MATH: Make implementation of Segment2d more robust
- prevent division by zero
2020-12-08 19:09:08 +01:00
NMIError 6098b45776 LURE: Remove enum name prefixes 2020-12-08 18:50:31 +01:00
NMIError fa4948eaa4 LURE: Fix endgame animation
This change fixes several issues with the endgame animation:
- The timing for the sounds for the animation was based on the number of frames
after which the sound should start playing. However, the animation code
interpreted it as the number of frames to wait after playing the sound. This
caused the timing of the sounds to be wrong. Fixed this by moving the number of
frames up to the next sound and adding a dummy sound for the initial pause.
- The pause and thunder sound effect at the end of the animation were missing.
- The AdLib endgame sound resource was not loaded, causing a sound effect to
play instead of the endgame music.
- Changed the timing of the first text screen to match the original interpreter.
- At the last text screen, the game now waits for a keypress before quitting
the game after the music has finished. This matches the behavior of the
original interpeter.
- Made animation more responsive to user quitting the game.
- Screen no longer fades in EGA version.
2020-12-08 17:00:28 +01:00
NMIError 5b01d5f09e LURE: Barrel animation fixes
This change fixes some small differences in the barrel animation between the
original interpreter and ScummVM:
- The animation should fade in at the start
- The music should continue until the animation has faded out
- The mouse cursor should appear after the animation has faded out
2020-12-08 17:00:28 +01:00
NMIError 17f4e65aff LURE: Improve MT-32 fade-out in intro
The first track in the LotT introduction fades out before the second track
starts. The fade-out is implemented by reducing the velocity of the new notes
that are being played. Because this does not affect notes that are already
playing, the fade-out effect is not very good. I've replaced this by a fade-out
using MIDI channel volume.
2020-12-08 17:00:28 +01:00
NMIError 6454b69026 LURE: Fix game over screen
The music playing at the game over screen would only play once and send MIDI
CC 18 messages, which are not defined in the MIDI standard. I added looping and
removed the non-standard MIDI messages to prevent possible compatibility
issues.

The music for cutscenes and for the game over screen had some strange volume
differences compared to the original interpreter which seem to be caused by a
bug in the original interpreter where volume adjustments from sound effects
would carry over into the music. I've added a note to explain this difference.
2020-12-08 17:00:28 +01:00
NMIError 432529b2bb LURE: Fix chute animation
The animation that plays when you fall through the sewage chute near the start
of the game had some issues. Fades were missing at several points, the middle
part of the animation was played only once and too slow, and when skipping the
animation it would only skip the currently playing part instead of the entire
animation.

To fix these issues, I've added an option to AnimationSequence to loop the
animation a number of times.
2020-12-08 17:00:28 +01:00
NMIError 447d38f6a7 LURE: Fix Skorl catch animation
When the player gets caught by a Skorl, an animation is shown where the player
is punched in the face. This had a few issues:
- The animation fades in and out on the original interpreter. I've added this.
- The animation plays faster on the original interpreter. Speed was updated to
match this.
- The sound effect for this animation would play right at the start instead of
at the moment of impact. I've added a delay to the sound effect using an
AnimSoundSequence.
2020-12-08 17:00:28 +01:00
NMIError 419453ce00 LURE: Fix introduction animation
This fixes several issues with the introduction animation:
- The timing of the various parts of the introduction did not match the timing
of the original interpreter. The music did not properly match the images and
the last section was completely missing. I've adjusted the timing to beter
match the original interpreter.
- The VGA palette of the first text screens was broken and would display them
as completely white. I've added a patch to add the colors of the palette of the
following text screens.
- The animation of the soldiers approaching each other would fade out on the
original interpreter. I've added this.
- The images of the battle sequence would fade out on the EGA version. This
does not match the original interpreter and has been removed.
2020-12-08 17:00:28 +01:00
Eugene Sandulenko 3c3019f257 STARK: x.arc -> x.xarc in the detection enties 2020-12-08 13:24:39 +01:00
Eugene Sandulenko 59dfb31893 STARK: Fix detection 2020-12-08 12:40:36 +01:00
Filippos Karapetis 691f460d9f STARTREK: Add more functionality related to bridge actions 2020-12-08 11:20:37 +02:00
Vladimir Serbinenko b58b09323c SCUMM: Support for uncompressed bundles like used in some fan translations
Apparently it's a beta variant of storing files in the bundle without
compression and in little-endian. I tried to find an indicator for endianness
in uncompressed iMuse file but apparently there isn't any. Hence we need to
propagate a bool from bundle to imuse layer.

This is used by Akella Russification of COMI
2020-12-08 08:09:17 +01:00
Vladimir Serbinenko 26207d29b7 SCUMM: Don't error out on invalid bundles
Akella COMI localization contaions 2 garbage sounds: one is in RIFF WAV and
other is raw sound instead of iMuse. As itś only 2 utterances it's not
critical but avoid crashing on them
2020-12-08 08:09:17 +01:00
Paul Gilbert e54fab21c2 GLK: COMPREHEND: Fixes to OO-Topos endgame display 2020-12-07 20:34:13 -08:00
Paul Gilbert 75ebe8c949 GLK: COMPREHEND: Clarify OO-Topos ship room flag 2020-12-07 20:07:20 -08:00
Paul Gilbert 717c7e06c5 GLK: COPMREHEND: Fix OO-Topos fuel check 2020-12-07 20:07:20 -08:00
Paul Gilbert 8d634e8bd3 GLK: COMPREHEND: Allow for Apple 2 ship mission code 2020-12-07 20:07:20 -08:00
trembyle 5e7cca0cd5 DIRECTOR: Add detection for original Chinese Karma
First released in Taiwan by InterServ prior to English release.
2020-12-08 00:29:58 +01:00
Eugene Sandulenko e76e6a1907 TWINE: Fix Amiga compilation 2020-12-07 23:55:36 +01:00
Thierry Crozat 1751f660f3 I18N: Update translation files
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Translation: ScummVM/scummvm
Translate-URL: https://translations.scummvm.org/projects/scummvm/scummvm/
2020-12-07 22:25:17 +00:00
Eugene Sandulenko 51cef7e4b5 NEWS: Mention support for Russian pajama2 and spyozon 2020-12-07 23:24:40 +01:00
Thierry Crozat 62ab3f1c82 I18N: Update translations templates 2020-12-07 22:01:50 +00:00
Vladimir Serbinenko 5c91fb8d6a SCUMM: Support Lokalizator plugin.
This was used by Russian translation of Pajama Sam 2 and Spy Fox 3
2020-12-07 23:01:38 +01:00
Martin Gerhardy cc375694be TWINE: prepare to load the entity data into a struct 2020-12-07 22:55:11 +01:00
Martin Gerhardy 2e6f235236 TWINE: put a comment to mark the relation between the two methods 2020-12-07 22:55:11 +01:00
Martin Gerhardy 99d7f4fffb TWINE: moved ActionType into shared.h 2020-12-07 22:55:11 +01:00
Martin Gerhardy 55c3a8108d TWINE: reduced scope, unsigned and const 2020-12-07 22:55:11 +01:00
Martin Gerhardy 6efa01a76d TWINE: const for entity animation pointers 2020-12-07 22:55:10 +01:00
AndywinXp 5d59972e3b SCUMM: COMI: rebalance audio mix and implement music ducking during speech (#2653)
* SCUMM: COMI: implement volume ducking for music tracks during speech audio
* SCUMM: COMI: balance the default audio mix
2020-12-07 21:47:37 +01:00
Lothar Serra Mari bc3571fec4 I18N: Update translation (German)
Currently translated at 100.0% (1604 of 1604 strings)
2020-12-07 20:32:55 +00:00
Vladimir Serbinenko 03ee842db9 SCUMM: Add old variant PRCA to detection
This is needed to ensure that correct encoding is selected
2020-12-07 19:16:05 +01:00
Hubert Maier 3c86211040 AMIGAOS: Ext_Inst_so.rexx - add panic switch back in 2020-12-07 19:15:19 +01:00
Hubert Maier f6c5d3168f AMIGAOS: Update amigaos.mk 2020-12-07 19:15:19 +01:00