Age | Commit message (Collapse) | Author |
|
Implement dummy SPECIALSHOW command (skip puzzle).
Fix NEWROOM command parsing.
Fix use action on inventory items.
Fix interaction with certain doors.
|
|
displayed overlapping)
It seems that I broke this after 1.5.0 in 2013 when adding support for the FM-Towns version.
|
|
|
|
This is a followup to the fix for bug #10665 (Urbish mines lobster having an invalid sound track number and causing invalid memory access).
|
|
Add implicit pick up action for certain statics.
Respect disabled implicit walk action for doors.
|
|
Fixes ego speed bugs in the original game, bug #10780
|
|
Introduce game screen and game widget.
Add status bar to show currently hovered and picked items.
Load hardcoded strings from game executable.
|
|
|
|
Properly fixes bug #10766.
|
|
This occurs because of an out of buffer access when trying to play the
monster sound effect.
This is bug Trac #10665.
|
|
Requested in enhancement #10713
|
|
This feature can be used for the Windows version of KQ7, as well as
PQ:SWAT
|
|
Fixes lockup in original game, bug #10767
|
|
Fixes missing points in english pc floppy version, bug #10763
|
|
The array used for the trap machine's messages outside Dr. Cranium's
lab is set correctly now. Fixes bug #10766.
|
|
Fixes 20+ lockups in the original game, bug #10733
|
|
|
|
This game uses an external DLL, PENGIN16.DLL, which is invoked via
kWinDLL. We need to reverse the logic in PENGIN16.DLL and call it
directly, in order to get this game to work properly. Until then, this
game entry will be disabled.
|
|
|
|
It's the only game included, so there's no point showing the game
selection menu in this case. This follows the behavior of the original
|
|
|
|
Fixes a persistence bug in original game
|
|
Uninitialized param1 read when showing iconbar with inventory item
|
|
It was already possible to override the stretch mode per game
in the options dialog, but this was ignored when starting the
game from the launcher due to this bug.
|
|
Fixes bug #10761
|
|
Fixes wrong and missing messages in DOS version
|
|
Warning: breaks compatibility with previous savefiles.
They were mostly broken anyway, locking any NPC who
waited for kActionEndSound when savefile was created.
|
|
If Cath stands near the beginning or the end of a car,
looks at a door, and a NPC opens this door,
the volume of train noise is temporarily raised.
Controlled by variables SoundManager::_data{0,1,2},
renamed to be not so mysterious.
|
|
|
|
The English version has both DOS and Windows datafile versions,
but localized variants of GK1 are DOS only, so this is not a valid
entry.
This entry has duplicate detection checksums to the equivalent
DOS entry and was originally added as a workaround which should now not
be necessary.
|
|
This is mainly to aid investigation of bug Trac #6310.
|
|
The _gfxScreen instance is nullptr for SCI32 games, thus this console
command previously caused a segfault.
|
|
Loading from the GMM during the prolog resulted in the mouse cursor
getting stuck hidden and possibly other game state issues, so best to
disable loading in these cases as already was done for saving.
This fixes bug Trac #10746.
|
|
|
|
Refactoring, no changes in behaviour.
|
|
|
|
|
|
Now it works just like in the original game,
including fading where it is applicable
(e.g. in a passengers list if closing the list while a sound is playing).
By the way, p2s sequence is known as http://oeis.org/A000265 ,
p1s is 4 - A007814, and p2s[i]/2**p1s[i] is just i/16.
It is time to get rid of these arrays.
|
|
Not very obvious, but noticeable e.g. when knocking on harem doors.
I suppose this is the problem that wiki describes
as "improper triggering of actions on sound end".
|
|
This is replaced by the global "all" option for debugflags and defining
this triggers a warning about the conflict at runtime.
|
|
The SoundFlag type is an enumeration which have a default underlying
type of unsigned int in most case.
Thus comparing this to -1 causes a compiler warning. Since the default
entity sound flag type is 0xFFFF... which is equivalent to -1, then
replacing this with the correct enum symbol fixes the issue and should
result in the correct behaviour. Examination of the resulting code line
seems to confirm that this is the correct expected logic.
|
|
The backend runs its own sound thread anyway,
with the corresponding bookkeeping that we use.
We don't need yet another sound thread,
and it is always nice to not have something
that could change our structures from underneath us.
|
|
SoundEntry::play() calls StreamedSound::setFilterId(),
StreamSound::setFilterId() requires the underlying reference to be alive.
SoundQueue::handleTimer() checks that the stream is still alive
by calling SoundEntry::isFinished(). However, if the stream is finalized
just between calls to SoundEntry::isFinished() and SoundEntry::play(),
the sound mixer frees the stream leading to use-after-free in setFilterId().
Turn off the automatical disposing, delete the stream in SoundEntry::~SoundEntry().
|
|
Fixes a lockup in the original game
|
|
|
|
Merge SoundFlag and SoundStatus into a single enum;
SoundEntry::setupStatus just casts one to another.
Keep only definitions of bits in SoundFlag; drop compound flags
like kFlagSteam = kSoundTypeAmbient | kSoundFlagLooped | kVolume7,
use ORed simple flags in calls; change the signature
of SoundManager::playSoundWithSubtitles to use uint32
instead of SoundFlag to avoid excess casting.
Add meaningful names to flags; add some comments.
Get rid of endian-unsafe SoundStatusUnion.
Fixes an issue with big-endian hosts.
No changes in behaviour on little-endian hosts.
|
|
Fixes a lockup in the original game
|
|
Wrong enum member used: (status & 0x7000000)
should be checked against 0x3000000, not against 3
(this is a check of sound type to skip menu sounds in savefiles).
Activate delay should not be compared with sound volume;
comparison with 0x8000000 is just a sanity check against overflow.
|
|
|
|
|