Age | Commit message (Collapse) | Author |
|
|
|
Fixes Trac#10182.
|
|
|
|
This is not known to fix any particular issue, but the game does
set some flags internally if it's running in 256-color Windows,
which is possibly undesirable since we do run 16-bit videos
regardless.
|
|
This update should give the game the default mix it receives in
Windows. If necessary, the half-volume audio bug in the DOS
interpreter can be added as an additional hack for this game, since
there are still some sub-par audio mixes that might need additional
correction (like Curtis talking to Blob when taking her out of the
cage in his apartment at the start of the game) which were also
bad in the Windows version of the game.
Fixes Trac#10165.
|
|
|
|
|
|
This code is identical to the kArrayGetData implementation.
|
|
The original interpreter allowed most string references to be
null references, in which case it would substitute an empty
string.
|
|
In the original interpreter, is it valid to pass a null reference
to both kArray(GetData) (it just acts as an identity function when
the passed argument is not an object) and to kString functions (it
always dereferences to an empty string).
Fixes Trac#10039.
|
|
|
|
To enable the optional content censoring mode, Phant2 looks
for a RESDUK.PAT file, which is normally placed by the game's
installer if the user chose to enable censorship. If the file
exists, the game reads an unlock password out of the file and
asks the user to enter the password when starting a new game to
create an uncensored game, or to click a "less intense" button
to start the game with censoring. The censorship state of the
game is then persisted in the save game file, and installations
with the RESDUK.PAT file need to enter the password again in
order to restore any of the uncensored saves.
Since we do not have an installer that can enable this feature,
add a game option toggle to enable/disable censoring (for the
releases that have the optional censorship mode) instead so the
censored content feature is available for anyone that wants to use
it. This flag is restored from ScummVM whenever a save game is
loaded, so it can be toggled on or off at any point without
needing a separate save game, unlike in the original interpreter.
|
|
The GOG.com release is missing the AVIs used for the intro &
ending animations in Windows. I'm unaware of any substantive
differences between the DOS and Windows versions otherwise, so
just not allowing Windows to be selected as a platform when the
video files are missing seems like it should be fine. (Same thing
in the opposite direction for a case where the DOS Robot files
are missing, though I don't know of a specific case where that is
a thing with KQ7 2.00b.)
|
|
|
|
|
|
|
|
|
|
There is no practical risk now since the enum and array sizes are
the same, but there is no reason to rely on a separate data
structure to avoid potential out-of-bounds index use here instead
of just checking the array size directly, which is always safe.
|
|
|
|
|
|
Fixes Trac#10035.
|
|
|
|
|
|
|
|
|
|
This patch also cleans up the GK2 audio map blacklisting code to
reduce the number of redundant checks being made during audio map
processing.
Fixes Trac#10172.
|
|
Launcher loads of games without a saved Robot were fine, but games
that were saved with a Robot (e.g. room 480 when facing the water)
would crash.
|
|
This can happen during game restores in at least Lighthouse, which
has a Robot on the menu screen whose plane is deleted prior to
a call to kRestoreGame32 (which closes the Robot).
|
|
Lighthouse audio.225 in RESSCI.002 (US English 1.0C) triggers this
condition; the audio resource says its data is one byte larger
than the recorded size in the volume. In this case, just use the
smaller of the two values for the size, to avoid overreads.
|
|
|
|
|
|
|
|
|
|
This is needed for 8.VMD in Lighthouse (room 380, the credits
room), which is rendered partially off the bottom of the screen.
OSystem does not accept rects that are offscreen.
Technically this video probably should not have been doubled
vertically by game scripts, but there is not enough space to fix
the rendering with a regular script patch, and it is a very
unimportant video.
|
|
kCelLink exists in SSCI since 2.1mid, but it is only known to be
used in Lighthouse, during the weapon creation puzzle near the end
of the game.
|
|
Fixes Trac#10049.
|
|
Fixes Trac#10143.
|
|
Since audio maps change when game speech is localised, it makes
sense to limit audio map skips by language until it turns out that
the same problem exists in more than one language release, so we
do not accidentally skip a map that is bad in one language, but OK
in another language.
|
|
Originally, changing the SFX volume from ScummVM was disabled
because the game itself only allowed adjustment of music volume,
so adjusting the SFX volume would indirectly affect the music
volume. On reflection, allowing the adjustment of SFX volume even
though this also changes the music volume seems preferable to not
allowing any adjustment of the SFX/speech volumes.
|
|
This was happening in games with game scripts that control the
master volume themselves by applying the master volume to each
channel sent to the kernel, instead of relying on the kernel to
manage the master volume for them.
|
|
It turns out that GOG.com version of Phantasmagoria needs the
37.MAP patch file because for some reason the 37.MAP in RESSCI.000
is empty (36 bytes, versus the correct file which is ~1kB).
Fortunately, this file is the same across all CDs in the original
US release, so hopefully unblocking this patch will not cause any
problems for any of the CD releases either.
Fixes Trac#10161.
|
|
|
|
To also turn ::ticks into ::seconds
For further information see 5a4840e
|
|
Fixes bug #9849
Which is a pseudo-game-breaking glitch of the game itself.
Applies to at least English+German floppy and English CD version.
|
|
|
|
All these fall through were marked as deliberate, so again I've only
changed the comment to silence GCC.
|
|
We have lots and lots of -Wimplicit-fallthrough warnings, and I
don't know if it's worth fixing them or not. But if we want to,
this is how it can be done.
|
|
This flag previously was only being initialized in Robot files
with audio. This means the flag was incorrectly carried to
Robots without audio, and if the first Robot played by the game
had no audio, it would be a garbage read. (This latter thing
happens at the beginning of Lighthouse.)
|
|
This is used by Lighthouse.
|
|
|