Commit Graph
137148 Commits
Author SHA1 Message Date
athrxx 4cb57c3c41 SCUMM: fix mem leak 2022-08-31 15:57:49 +02:00
Walter Agazzi b0082562e2 AGS: Update Unavowed detection entries 2022-08-31 13:16:08 +02:00
Stian Schultz 0b7d1be215 I18N: Update translation (Norwegian Bokmål)
Currently translated at 100.0% (1762 of 1762 strings)
2022-08-30 15:00:11 +00:00
Walter Agazzi fb0b667fb8 AGS: Add detection for Suli Fallen Harmony full game 2022-08-30 12:58:40 +02:00
Le Philousophe cf61337968 CRYOMNI3D: Build fixes in HNM6 and APC decoders 2022-08-30 11:43:06 +02:00
Le Philousophe 65a1099880 CRYO: Fix segmentation fault
When decoder fails to load a file, it now frees the stream.
2022-08-30 11:37:14 +02:00
Le Philousophe 48a6f12637 CRYO: Fix build following HNMDecoder API change 2022-08-30 11:15:10 +02:00
Le Philousophe 399e02e2a5 CRYOMNI3D: Add HNM6 image and video codec
This also adds a Cryo APC decoder in shared code.
2022-08-30 11:02:32 +02:00
Walter Agazzi 644103e012 AGS: Add detection for SQ: Son of Xenon 2022 2022-08-29 23:41:22 +02:00
Roland van Laar bf7d2584a4 DIRECTOR: add reading of kCastMovie cast data
CastMovie cast data is now parsed. A first step to implement
CastMovies.

CastMovies are references to other director movies and
can be played inside the current movie. Star Trek an interactive
manual makes use of them.

The flags raw data was:
  100110 no flags
  101110 sound
  000110 loop
  100100 crop
  100101 crop and center
  110110 enable scripts
  011011 everything
2022-08-29 23:16:42 +02:00
Donovan Watteau 744d666ac9 CI: Make the Xcode builds around 90% less verbose
xcodebuild has a `-quiet` flag, but this awk call will just remove the
noisiest lines.
2022-08-29 22:11:26 +02:00
eientei eaac8fe7fe DEVTOOLS: COMPANION: Format using black 2022-08-29 22:10:23 +02:00
eientei e2cb16d8d0 DEVTOOLS: COMPANION: Catch errors if filename can't be decoded as MacJapanese; Remove unused function 2022-08-29 22:10:23 +02:00
BLooperZ 3776b4c384 SCUMM: HE: dump costume script 2022-08-29 21:51:37 +02:00
Donovan Watteau cc28107847 JANITORIAL: SCUMM: Further simplify the small script example
Avoid mangling IFS and just use `read` with a `for` loop, as suggested
by lephilousophe.
2022-08-29 21:37:46 +02:00
Donovan Watteau eb888fa847 JANITORIAL: SCUMM: Make the MD5/filesize script more portable
The included script relied on GNU flags; this should now work on most
POSIX shells.

Tested on macOS 12, OpenBSD 7.1, Debian 11.
2022-08-29 21:37:46 +02:00
Roland van Laar 411395565b DIRECTOR: Refactor cast load data
Multiple functions looped over the whole to cast to filter out specific
cast member types and load data.
The looping is contained to loadCastMemberData. Loading for each
cast type is refactored to have a function per type.
2022-08-29 21:18:29 +02:00
Pragyansh Chaturvedi fd41ff75b0 DIRECTOR: Fix 8bpp BITD decoding regression 2022-08-29 20:13:24 +02:00
sluicebox 831db85412 SCI32: Implement accurate kMulDiv calculations
kMulDiv's behavior now matches SSCI and produces the same results.

Fixes LSL7 motion ocean, bug #10270
2022-08-29 04:45:12 -07:00
sluicebox 34664be3d3 SCI32: Fix modulo opcode in SCI2.1Late and SCI3
Fixes LSL7 ocean motion, bug #10270
2022-08-29 03:25:31 -07:00
Niv Baehr 75dfe12286 GUI: TTS: strip GUI formatting before reading list item 2022-08-29 08:34:48 +03:00
Misty De Meo dc7ef831c4 AGS: add Urusei Yatsura fangame 2022-08-28 18:52:02 -07:00
D G Turner 739af389f0 DIRECTOR: Fix Signed vs. Unsigned Comparison GCC Compiler Warning 2022-08-29 01:57:17 +01:00
Misty De Meo ef20c9333c DIRECTOR: more games 2022-08-28 09:30:47 -07:00
Donovan Watteau 699550a6cd SCUMM: Fix the inconsistent text color for the priest in Monkey1-CD
In all v5 releases (except for the SegaCD one), the priest's lines will
switch between 3 colors in a row, when Guybrush meets LeChuck in the
church of Mêlée Island.  The original EGA and VGA floppy releases don't
have this weird behavior.

This forces the same color for all his lines (while making sure not to
match Elaine's offscreen line), choosing the gloomy green color from the
Ultimate Talkie edition, since the original EGA/VGA releases also used
that.
2022-08-28 17:21:54 +03:00
Donovan Watteau 5351232c72 SCUMM: Split the SO_TEXTSTRING part of ScummEngine_v5::decodeParseString()
There's now a lot of stuff in this part (thanks to workarounds) and it
really becomes quite narrow.
2022-08-28 17:21:54 +03:00
Paweł Kołodziejski d9efcde613 WINTERMUTE: Cleanup class BaseNamedObject 2022-08-28 13:24:40 +02:00
Scott Percival 6654d1d048 DIRECTOR: Fix freeing up cast members 2022-08-28 10:31:00 +00:00
Scott Percival f48dbb43b6 DIRECTOR: Use LoopableAudioStream for score audio loops
For looping sounds, the original code polled the score and created a new
AudioStream every time the previous iteration finished playing. The
downside of this approach is the sound needs to be fully resampled and
buffered after each playback, which can be heard as a gap between loops.

To fix this, loops now use a LoopableAudioStream. The reason why the
previous code did not was to allow for a specific edge case.
In Director, when a looping audio channel is set to cast member 0, the
loop is allowed to finish the current iteration before the audio stops.
Originally there wasn't a way of doing that, but now the
LoopableAudioStream classes can stop playing after a number of
iterations. As such, we keep a copy of the LoopableAudioStream handle
and call for the loop to stop when the cast member gets set to 0.

Improves looped audio playback in Eastern Mind.

Fixes the guitar solo between the transition from BLAST.DXR to INTRO.DXR
in Meet MediaBand.

Fixes the audio transition between n.am and s.am in Meet MediaBand.
2022-08-28 10:31:00 +00:00
Scott Percival f5a0bd236b AUDIO: Add virtual base class for looping audio
LoopingAudioStream and SubLoopingAudioStream now share a common base
class, and have the methods getCompleteIterations() and
setRemainingIterations().
2022-08-28 10:31:00 +00:00
Scott Percival 830cf1cacd DIRECTOR: Only use kCastMemberSprite when cast member exists
The default sprite type for an empty channel in Director is kInactiveSprite;
make sure this is used as some scripts depend on it.

Fixes being unable to summon the drum in Eastern Mind.
2022-08-28 10:31:00 +00:00
Scott Percival ef03dbb92e DIRECTOR: Fix rendering for kInkTypeBackgndTrans and kInkTypeCopy
I don't know what scenario was used as a basis for developing the existing
applyColor logic in inkDrawPixel(). As such, I've kept it for the uint32
pathway, and replaced the uint8 pathway with the logic documented in the
Director 4 manual.
2022-08-28 10:31:00 +00:00
Scott Percival 7ee474f070 DIRECTOR: LINGO: Add missing color transforms
Internally, ScummVM refers to palette indices in a reverse order
compared to the Director runtime. As such, any script-based reading or
writing of color indices needs to be transformed to match this.

Fixes the coloring of the inventory in Eastern Mind.
2022-08-28 10:31:00 +00:00
Scott Percival 09cf6d5ada DIRECTOR: LINGO: Prioritise named sprite event handlers
In Director 4, with score scripts it is possible for the compiler
to produce a generic handler which is empty, in addition to named
handlers (e.g. mouseUp). The original behaviour for sprite scripts
was to default to the generic handler if it exists, even if there
is a named handler that matches the event. This change makes the
generic handler the fallback choice.

Fixes opening the inventory in Eastern Mind.
2022-08-28 10:31:00 +00:00
Paweł Kołodziejski d9abf0bd1f WINTERMUTE: ModelX -> XModel 2022-08-28 08:43:25 +02:00
Roland van Laar f92492f4a1 Revert "DIRECTOR: Check for cast children in buildbot"
Cast::loadCastChildren() iterates over all casts, not just the ones that
have children. The original commit gave a buildbot error for all casts
that weren't handled by loadCastChildren.

This reverts commit ec5e0cf1b6.
2022-08-27 23:40:00 +02:00
Cameron Cawley 47755b4b38 COMMON: Make better use of inlining in BitStream functions 2022-08-28 00:05:31 +03:00
Hubert Maier 79e1c95ed7 CONFIGURE: Fix even more typos 2022-08-28 00:02:54 +03:00
D G Turner db4cf7b968 DEVTOOLS: GLK: Fix GCC Compiler Warning From Symbol Conflict 2022-08-27 21:22:04 +01:00
eientei ac15210b27 WAGE: Simplify armor check 2022-08-27 22:27:19 +03:00
eientei 63d29ae809 WAGE: Add some forgotten games, fix ADGF_DEMO for BIGGAMED 2022-08-27 22:27:19 +03:00
Paweł Kołodziejski 37379daf72 DEVTOOLS: Silence compiler warnings 2022-08-27 15:08:38 +02:00
athrxx 3d39d206ee SCUMM: replace strcpy calls with Common::strlcpy
This replaces every single strcpy call in the engine with
Common::strlcpy.

Some of these might cases seem a bit pointless, but it is
supposed to discourage future use of strcpy. If people don't
see a single occasion of it they might think twice before they
use it...
2022-08-27 13:08:38 +03:00
Le Philousophe 763517fdfe GUI: Make GridWidget accept focus
This avoids the filter text to take the focus.
In Android this prevents the launcher to start with the virtual keyboard
displayed.
In the future, the widget could also take keyboards event into account
like the ListWidget one.
2022-08-27 09:19:53 +02:00
Le Philousophe 8e9ba83d89 GUI: Move the icons per row slider value to the right
Else it's stuck to the slider widget
2022-08-27 09:19:53 +02:00
Le Philousophe 368363ae74 GUI: Move buttons bar below launcher lower
Else widgets are erased when the launcher widget is redrawn
2022-08-27 09:19:53 +02:00
Le Philousophe b5704d6ef0 GUI: Remove useless widget 2022-08-27 09:19:53 +02:00
ScummVM-Translations be969d357e 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/
2022-08-26 22:24:43 +00:00
Donovan Watteau 255f87dffa SCUMM: Apply the Jolly Roger workaround to MONKEY1-VGA too
It looks like my French floppy VGA release doesn't have that fix,
although the English floppy VGA release from the LRG Anthology has it!

So it just feels safer to enable this workaround for all Monkey 1
releases (except for the Ultimate Talkie Edition). If the same fix is
already in this script, it shouldn't hurt.
2022-08-27 01:24:31 +03:00
Donovan Watteau 659df7bc01 SCUMM: Bring the Jolly Roger fix from Monkey1 VGA to the other releases
In Part 2, the Jolly Roger should only be visible in the first cutscene
showing the Sea Monkey in the middle of the sea. For the next two
cutscenes showing the full ship, it shouldn't be there anymore, since
Guybrush must have picked it for these scenes to happen.

The VGA releases fixed this small oversight from the original game, but
then this fix appears to have been lost for the v5 releases.
2022-08-27 01:24:31 +03:00