Commit graph

3755 commits

Author SHA1 Message Date
athrxx
e3775f1f15 SCUMM: (SCUMM4) - extend DOTT walk code fix to another target
(verified from disasm)
2021-08-10 19:48:40 +02:00
athrxx
b5171e3567 SCUMM: (FT) - fix actor facing in calcMovementFactor
(verified from disasm that FT uses the same method as DIG and COMI)
2021-08-10 19:46:37 +02:00
athrxx
21b2411490 SCUMM: (SCUMM5/6) - extend DOTT walk code fix to more targets
I have verified this for all SCUMM5/6 games.
2021-08-10 19:46:16 +02:00
athrxx
78252d9c2a SCUMM: (DOTT) - fix bug no. 11445 ("George Washington faces Left instead of Forward, after chopping down the Cherry Tree")
I have limited this to DOTT for now, since I haven't checked anything else...
2021-08-10 19:45:10 +02:00
athrxx
0876537f06 SCUMM: (DOTT) - fix bug no. 12776 ("Use after free error in DOTT intro") 2021-08-10 19:44:14 +02:00
Torbjörn Andersson
8b10066bda SCUMM: Fix compiling without SCUMM v7/8 2021-08-10 19:13:50 +02:00
Torbjörn Andersson
c193fa74bf SCUMM: Restore old clock tower behavior to the CD version of MI1
In the floppy VGA version (and presumably the EGA version as well), the
clock tower only gets a new description ("e.g. "Hmm.  Still ten
o'clock.") if you leave the room after examining it. In the CD version,
someone has "fixed" the behavior so that the description changes
immediately when the clock tower is examined.

Since it also changes on exiting the room after examining the clock
tower, that means you're much less likely to ever see the second
description. (There are only three, with a random variation on the
last one.) It doesn't completely ruin the joke, but...

To restore the original behavior, we don't allow the clock tower script
to increment the variable that changes its description.
2021-08-10 12:47:03 +03:00
Torbjörn Andersson
400e40da8e SCUMM: MI1: Use correct colors for Smirk's cigar smoke in CD version
We recently enabled the smoke animation that was present in the EGA and
VGA floppy versions of MI1, but removed in the CD version. However, for
a couple of reasons the colors were not correct.

For one thing, the animation doesn't use the same color indexes as in
the floppy version. But it still tries to remap the floppy version's
color indexes to other colors.

For another, one of the colors it tries to remap to gets overwritten,
probably to ensure that the GUI uses consistent colors. If that's the
only reason, we can safely ignore that for this room since it has no
visible GUI.

The voodoo lady's smoke is still using different colors than the floppy
version. I have no good ideas for how to fix that. Those colors will get
overwritten, and this time there is a visible GUI. But perhaps that
shouldn't be fixed since the special edition, for better or for worse,
pretty much made those colors canonical.
2021-08-10 12:41:48 +03:00
djsrv
2aa7e3e558 COMMON: Replace matchString pathMode with general wildcard exclusions
Different characters may need to be excluded for different path styles.
2021-08-09 17:43:12 -04:00
Torbjörn Andersson
0209d79652 SCUMM: Simplify Indy 3 Mac workarounds
I was confused when writing them. There shouldn't be any need to check
if the script is global when that's already implied by the script
number.
2021-08-09 10:06:26 +02:00
Torbjörn Andersson
b5d7ec68ef SCUMM: Minor cleanup 2021-08-07 11:57:48 +03:00
Torbjörn Andersson
f1e07f96b7 SCUMM: Add missing space. 2021-08-07 11:57:48 +03:00
Torbjörn Andersson
4bcfd4aa3b SCUMM: Prepare for translated versions of the MI1 cannibal patch 2021-08-07 11:57:48 +03:00
Torbjörn Andersson
30ce02e9e3 SCUMM: Simplify MI1 cannibal patch
There's enough space to just change the first message and insert the
WaitForMessage(). No need to mess with the second message, since that
one's already correct.
2021-08-07 11:57:48 +03:00
Torbjörn Andersson
8e8e3225da SCUMM: Add missing Lemonhead lines in English CD Monkey Island 1
Apparently these were lost when the game was converted from floppy to CD
version. Not just in the English version, but that's all I have. We
should come up with a way to make it easy to add other languages,
though.
2021-08-07 11:57:48 +03:00
djsrv
0d65c2fd12 ALL: Use Path type in File functions 2021-08-07 10:44:37 +02:00
athrxx
ecd02afeda SCUMM: minor v1-3 walk code cleanup 2021-08-06 16:13:07 +02:00
athrxx
3c69292a66 SCUMM: fix Actor_v2 initActor regession 2021-08-06 15:25:31 +02:00
athrxx
3218092187 SCUMM: some walking code cleanup
(move more code from Actor to Actor_v3 and generally try to cleanup the mess I created over time)
2021-08-06 15:22:33 +02:00
Andrea Boscarino
886e6d83e6
SCUMM: COMI: Disable saving/loading during SMUSH videos (#3241) 2021-08-06 14:58:04 +03:00
athrxx
c4678c993f SCUMM: split Actor::calcMovementFactor() into separate functions for SCUMM1-3 and SCUMM4+.
(The code has diverged so much, it makes sense to make use of the already existing sub class here)
2021-08-06 01:00:57 +02:00
athrxx
5a94f51eab SCUMM: (v1/2) - fix actor move flags
(final fix for ticket no. 3215 ("SCUMM: Zak McKracken - intro behavior + movement")

The ticket has been closed a couple weeks ago, since a user claimed that the intro was fully fixed. And it mostly was. Except one little thing about the movement of the floating hat which, after chasing Zak, would return to the left of the screen one step to early.

Turns out that o2_waitForActor() got triggered one step to early, because we didn't set the final MF_TURN flag...
2021-08-06 01:00:15 +02:00
athrxx
9bcfc91ce2 SCUMM: (v1/2) - fix walking steps calculations
After my recent effort to do this for SCUMM3 I now try to achieve the same thing for v1/2. (Unsurprisingly) the step calculations actually have more in common with SCUMM3 than with the later versions upon which the code was based. However, I find the  v1/2 code somewhat more difficult to fix than v3, since it is quite heavily twisted and refactored to fit into our common code. So all testing and bug reporting is welcome...
2021-08-06 00:58:40 +02:00
Max Horn
006ca7acd6 SCUMM: rename 'HE' to 'SCUMM HE' in credits
Otherwise it may be hard to tell what this is. It also restores the
alphabetical ordering of the credits by engine 'name'.
2021-08-05 00:01:46 +02:00
Max Horn
2f1f8f502e DEVTOOLS: move credits from devtools/credits.pl to engines
This employs a "lazy" approach: the "format" for the credits stays
exactly as it was, i.e., perl code. Of course one may want to change
this to another format (e.g. YAML, JSON, XML; or also shell script or
AWK, like `configure.engine` uses). But I deliberately kept it simple,
to get a minimal change that is easy to verify. Any further changes to
e.g. the format can be layered atop this.
2021-08-05 00:01:46 +02:00
Andrea Boscarino
d6912058c7 SCUMM: Fix findObject(x,y) for DIG and COMI 2021-08-04 17:19:50 +02:00
athrxx
82c0b91975 SCUMM: whitespace 2021-08-03 21:14:32 +02:00
Torbjörn Andersson
a5d7d9fdd2 SCUMM: Limit Loom CD Choas/Chaos workaround to the appropriate script 2021-08-03 21:05:24 +02:00
athrxx
4fe69dbf2e SCUMM: fix bug no. 12499 ("Curse of Monkey Island Sprite Vertical Colour Artifacts")
(regression from b542fad7)

The introduction of the skip_column variable caused skipping of columns that are actually meant to be drawn. The original interpreter has a similiar mechanism, but it only applies to colors that are translated via the shadow palette. This avoids recursive shading (pixels that already got translated via the shadow palette could get passed through the table again in case of horizontal scaling). I guess that is what b542fad7 actually meant to fix.
2021-08-03 20:26:59 +02:00
D G Turner
2dfd023f86 SCUMM: Remove Dead Code in Digital iMUSE
This has been reviewed by Andrea Boscarino.
2021-08-03 14:31:53 +01:00
D G Turner
3818905d16 SCUMM: Further Cleanup of Dead Code in Digital iMUSE
This fixes a GCC set-but-unused variable warning.

This code may need to be reinstated for looping so commenting out
for review.
2021-08-03 03:50:03 +01:00
Torbjörn Andersson
c6b8b1b9ac SCUMM: Remove stray "the" from recent captain Smirk workaround comment
And I forgot to mention in the previous commits that they were for
Monkey Island 1. Oops. Too late to do anything about that now.
2021-08-02 18:54:36 +02:00
Torbjörn Andersson
8b29bf5271 SCUMM: Restore missing cigar smoke to captain Smirk's close-up
In the EGA and VGA floppy versions, the close-up of captain Smirk has
animated cigar smoke. I don't have the EGA version, but in the VGA
version it apparently depends on whether you're running the game from
floppy or hard disk. If you run it from floppy, there is no smoke,
probably to cut down on disk access.

This is implemented in the entry script for room 76, where it either
sets costume 76 or 0 on actor 12.

In the VGA CD version, it always sets costume 0. Setting it to 76
restores the smoke, but the position is a bit off. Using the positions
from the floppy verion's script 57 fixes that. I have no idea why they
were changed in the CD version when they seem to use the same animation.
Only the colors are a bit different.

The "Ultimate Talkie" version already fixes this, but this fix should
not interfer with that. It uses slightly different positions for the
smoke, but the difference is never more than a single pixel so I'm not
touching those.
2021-08-02 16:21:20 +02:00
Andrea Boscarino
e0726f7a34 SCUMM: COMI: Clean up dead code for iMUSE Android fix 2021-08-01 22:31:21 +03:00
Andrea Boscarino
4c32dca57a SCUMM: COMI: Temporarily disable iMUSE crossfade scheduling 2021-08-01 22:31:21 +03:00
Le Philousophe
2c0f4cf5e0 SCUMM: Fix build when FMTowns is disabled 2021-08-01 21:25:22 +02:00
athrxx
7afd105562 SCUMM: (FM-TOWNS) - add menu option to disable smooth scrolling 2021-08-01 16:10:42 +02:00
athrxx
534a30ea97 SCUMM: (FM-TOWNS) - disable smooth scrolling in fast (Ctrl+f) mode 2021-08-01 13:40:52 +02:00
Andrea Boscarino
7032f742ff SCUMM: COMI: Fix bug #12029 2021-07-29 22:54:04 +02:00
Andrea Boscarino
8b78da3723 SCUMM: FT: Fix softlock on negative walk destination 2021-07-29 22:46:22 +02:00
Torbjörn Andersson
6ecfc01b28 SCUMM: Clean up getExtraGuiOptions() 2021-07-28 13:37:40 +02:00
Torbjörn Andersson
69c91a76ad SCUMM: Remove stray comma 2021-07-28 13:37:40 +02:00
Torbjörn Andersson
a4fa54550a SCUMM: Add support for Mac Loom low quality music
This is guesswork, but it seems like the first channel always contains a
complete rendition of the music. I think that's intended for low-end
Macs, while the other voices (four, but the last one never seems to be
used) is the standard version of the music.

It doesn't sound particularly good, and also not quite as with Mini vMac
(I'm not fully prepared to rule out emulation problems), but it seems
reasonably close.
2021-07-28 13:37:40 +02:00
Torbjörn Andersson
81f26dd9e4 SCUMM: Workaround for bug #12734
In Monkey Island 2, after Rapp gives you his map piece it calls
script-109 to print a message about which map piece you just found.
But as soon as that message is displayed, it's erased by printing a
single space.

This wouldn't normally be much of a problem, but apparently in the
"ultimate talkie" version you will still hear the spoken line. This is
my attempt at bypassing the erasing.

I don't dare to patch the script itself, because I'm guessing all the
messages are hard-coded so it would have to recognize every
localization. Instead, it checks if a single space is printed from the
appropriate script, while there is a message pending and you are
carrying Rapp's map piece. I hope that's specific enough.
2021-07-27 20:55:05 +02:00
antoniou79
04642eef8a ENGINES: Replace checkCD with isolated partial methods
This is PR #3018 "rebased" on the current HEAD, after the conflicts with PR #3003 and me botching the rebase in that PR

Old PR is here: https://github.com/scummvm/scummvm/pull/3018
2021-07-27 20:51:57 +02:00
Orgad Shaneh
2602d0fe8e SCUMM: Fix encoding for Hebrew dialogs
Like Pause dialog.
2021-07-22 00:06:25 +03:00
Torbjörn Andersson
010d17e469 SCUMM: Update comments about cracked Maniac Mansion
I have verified that the Steam version is identical to the GOG version
in this respect. (The file layout is a bit different, but the data files
are the same.)
2021-07-21 19:40:57 +02:00
Torbjörn Andersson
31d18f357c SCUMM: Always play ROL music if MAC music is missing in Mac MI2 / FoA
Before, ScummVM would only play ROL music if a MIDI-capable driver had
been selected. I have AdLib as default, which made it pick ADL music
instead and the Mac music player doesn't support that. So this is not a
new feature, it's just an old feature that's now applied consistently.

This fixes some missing music that might otherwise be missing in MI2,
most noticeably near the very end of the game. The ROL music is an
acceptable substitute, because the Mac instruments are close enough to
a subset of MT-32. I haven't seen any resources with both MAC and ROL
versions, so MAC should still be used when available.

Note that this doesn't seem to have been a ScummVM bug. The music was
missing when I tried the game in a Mac emulator too!
2021-07-20 09:38:48 +02:00
Torbjörn Andersson
07617f8c5f SCUMM: Fix bad Maniac Mansion crack in GOG (and Steam?) version
The enhanced version of Maniac Mansion currently sold on GOG (and
probably Steam as well) has a one-byte change to the script handling
keypads, presumably to disable the security door copy protection. (Which
ScummVM disables by default anyway, by leaving the door open.)

Unfortunately, this crack was made without any deeper understanding of
the game (said the guy who never ever played the whole thing :-). It
allows you to enter either the correct code, or any code as long as you
get the last symbol wrong. But the script is also used for other keypad
puzzles in the game (e.g. Edna's phone number and safe combination). So
those puzzles are completely nerfed as well.

I have reported this as a bug to both GOG and Disney Games & Apps
Support. GOG has acknowledged that there is a problem, which is more
than Disney has done so far, but it remains unclear whether or not they
will fix it.
2021-07-17 09:20:10 +02:00
Orgad Shaneh
3f63b3c42d SCUMM: Minor cleanup 2021-07-17 09:28:55 +03:00