The new approach is to delay kAnimate briefly (with an 68ms timeout)
while there is a zero-tick PalVary running, so that it has time to
trigger.
The previous workaround would immediately process a zero-tick
PalVaryInit/PalVaryReverse. This caused problems in QfG3 (bug #10304)
where it interfered with PalVaryPause.
The previous workaround could also be modified to handle pause/resume,
but this new approach should be closer to SSCI's behaviour, which used a
timer for a zero-tick PalVary too.
This fixes bug #10304, and keeps #5298 fixed too.
This ensures the detected speed will end up at the highest level. This
improves the detail in Yorick's room (96), and slightly changes the
timing in other rooms.
Fixes bug #10296.
By default, frac_t is interpreted as signed. The resulting range isn't
large enough to store offsets, so we interpret it as unsigned here
instead. Fixes a crash in QfG1/Mac where instrument->loop_size is 49457.
This removes libmad from the package as it is in Fedora 24+,
updates faad2 to the most recent release,
removes the hardcoded set of engine-data from the .spec file, and
packages the appdata file.
This reverts
1f1d8607 DRASCULA: Merge the floor coordinates into _walkRect
1e1b6f7c DRASCULA: Rename gotoObject() to walkToPoint() and simplify it
2bf05c2a DRASCULA: Clean up room variables, and simplify some related checks
Reverting due to unanswered questions about why the changes in behaviour
in 2bf05c2a74 are correct.
Since version 2.3.12, freetype-config adds SYSROOT to all paths.
If we pass a --prefix that already includes SYSROOT, this will return
a duplicate SYSROOT. This patch detects that and adjusts prefix
accordingly.
This code was assuming that retval points to the start of the next
instruction, which is only true if the current parameter is the last
one. This fixes op_call printing.
All users of BitStream were in fact using a specific, hardcoded variant,
so we can hardcode that variant, removing the need for virtual calls,
and enabling inlining.
See matchKernelBreakpointPattern() for samples. The main envisioned use is
DoSound*,!DoSoundUpdateCues
to match all DoSound sub-functions except DoSoundUpdateCues.
This changes the syntax for bpk and logkernel:
Enable breakpoint on kernel call:
bpk FrameOut
Enable logging for kernel call:
bpk FrameOut log
For backward compatibility this has an alias: logkernel FrameOut
Removing a kernel call breakpoint is done with bp_del/bc now.
0f9c33e02f in 2011 broke selector
breakpoints of the type "ObjName::", which previously caught all
selector sends of the named object.
Thanks to TMM and snover for noticing.
Previously, they were only greyed out. According to the discussion on
patch #8925, this was a limitation of the GUI layout engine when these
buttons were introduced in 2008. This no longer seems to be a problem.
This update uses upstream commit
777c51cdb4dbb4e02a53c23edea9086f0b600e26.
The new SampleRateConverter is added, but not built as we don't use it.
Also, building it without source changes will need additional include
directories.
This update of Munt reduces the stack size, and thus fixes bug #9630.
The width of each tab is now computed from its title, independently of
the other tabs. This increases the number of tabs that fit on the
screen.
This rewrite also fixes a bug where if the window size increased while
_firstVisibleTab > 0, some tabs would become inaccessible when the
scroll buttons were hidden.
The layout key Globals.TabWidget.Tab.Width is now treated as minimal
tab width. This is set so that the tabs fit reasonably well in lowres
layouts.
At the same time, this reduces the lowres scroll buttons heights to fit.
This patch makes the Nintento DS hacks in TabWidget obsolete.
(Hopefully! I'm not able to test.)
This matches the behaviour of the Pluto rewrite Eris, and avoids
casting the integer indices to void *.
I verified this code by running this method in parallel with the current
lightuserdata/void* approach and asserting the retrieved objects were
identical when loading a savegame.
Previously, this was using the offset of the property dict inside the
script. However, this isn't unique. For example, SQ6's DPath and
PolyPath classes both have their property dict at offset 8 of their
respective scripts. This would break Obj::isMemberOf.
Closes#846.
The GOG version comes with a fan patch that uses rm470::name to
store a timer to rate-limit rm470::doit. This breaks the workaround
detection since that uses the name field.
This avoids a deadlock where the main thread (via reconstructPlayList)
tries to acquire the mixer lock (in soundPlay) while holding the SCI
music lock, and the audio thread is holding the mixer lock and tries to
acquire the SCI music lock (in miditimerCallback). Bug #6691.