Commit Graph
100 Commits
Author SHA1 Message Date
Willem Jan Palenstijn 65861bb914 SCI: Change workaround for PalVary / Animate race condition
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.
2018-04-22 22:54:18 +02:00
Willem Jan Palenstijn 2e74fd8f22 SCI: Avoid (false positive) uninitialized use warning 2018-02-01 20:19:27 +01:00
Willem Jan Palenstijn 0f98a60d35 SCI: Sabotage qfg1vga's speed test
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.
2018-02-01 20:08:20 +01:00
Willem Jan Palenstijn fca876ea03 DISTS/FEDORA: Switch from bz2 to xz for sources 2017-12-09 01:05:50 +01:00
Willem Jan Palenstijn c5f67ac471 WAGE: Improve error message 2017-12-08 11:41:32 +00:00
Willem Jan Palenstijn c6c39d5578 WAGE: Handle null strings in toString and improve consistency 2017-12-08 11:41:32 +00:00
Willem Jan Palenstijn f35cb961f2 WAGE: Avoid calling method of nullptr 2017-12-08 11:41:32 +00:00
Willem Jan Palenstijn 3a933138ce SCI: Avoid buffer overflow in amigamac sound driver
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.
2017-12-03 12:49:11 +01:00
Willem Jan Palenstijn 12797b1b5e DISTS/FEDORA: Update README 2017-11-23 22:32:12 +01:00
Willem Jan Palenstijn 74958f4c1d DISTS/FEDORA: Update and simplify scummvm-tools.spec 2017-11-23 22:32:12 +01:00
Willem Jan Palenstijn 1a2bf89ecc DISTS/FEDORA: Update and simplify scummvm.spec
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.
2017-11-23 22:32:12 +01:00
Willem Jan Palenstijn bf69b25e33 DRASCULA: Revert range 4dbed774..1f1d8607
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.
2017-11-14 19:14:00 +01:00
Willem Jan Palenstijn 3ac39075c8 GRAPHICS: Fix potentially uninitialized pointers in BDF loader 2017-11-14 09:12:15 +01:00
Willem Jan Palenstijn 4233156505 TESTBED: Only build cloud tests if libcurl is available too
This matches the module.mk checks for backends/cloud
2017-10-29 00:05:51 +02:00
Willem Jan Palenstijn a416c98980 CONFIGURE: Handle freetype-config SYSROOT duplication in prefix
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.
2017-10-29 00:05:51 +02:00
Willem Jan Palenstijn 0bcaf623aa CONFIGURE: Add missing --with-libcurl-prefix option 2017-10-29 00:05:51 +02:00
Willem Jan Palenstijn bef5629519 CONFIGURE: Improve configure help formatting consistency 2017-10-29 00:05:51 +02:00
Willem Jan Palenstijn 9030b09ecc SCI: Allow lofsa string printing in disasm for all SCI versions 2017-10-21 19:13:38 +02:00
Willem Jan Palenstijn fab43f0f71 SCI: Fix offsets in disasm for multi-param opcodes
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.
2017-10-21 18:55:40 +02:00
Willem Jan Palenstijn 7198dd0596 GUI: Fix memory leak with empty debugger input 2017-09-29 18:15:49 +02:00
Willem Jan Palenstijn 078e3b43be GUI: Fix crash after empty debugger command 2017-09-29 18:11:10 +02:00
Willem Jan Palenstijn 7a58db8b92 Merge pull request #1024 from wjp/detection_searchman
Clean up use of SearchMan in fallback detection
2017-09-20 20:55:40 +02:00
Willem Jan Palenstijn 3108957812 CGE2: Clean up SearchMan after fallbackDetect 2017-09-20 20:53:14 +02:00
Willem Jan Palenstijn ca82bf61e3 CGE: Clean up SearchMan after fallbackDetect 2017-09-20 20:53:14 +02:00
Willem Jan Palenstijn 6bea267385 SLUDGE: Skip SearchMan detour in fallback detection 2017-09-20 20:53:14 +02:00
Willem Jan Palenstijn 6a7d43288f DIRECTOR: Skip SearchMan detour in fallback detection 2017-09-20 20:53:14 +02:00
Willem Jan Palenstijn bd10131242 Merge pull request #975 from wjp/bitstream
Rework and optimize Common::BitStream
2017-08-24 19:51:06 +02:00
Willem Jan Palenstijn 4278cff7f0 COMMON: Optimize BitStream::getBits 2017-08-24 19:46:59 +02:00
Willem Jan Palenstijn 47539e1939 VIDEO: Use new BitStreamMemory class for PSXStreamDecoder 2017-08-24 19:46:59 +02:00
Willem Jan Palenstijn e72f681ceb VIDEO: Use new BitStreamMemory class for SmackerDecoder 2017-08-24 19:46:59 +02:00
Willem Jan Palenstijn edfdbb9dd7 IMAGE: Use new BitStreamMemory class for indeo 2017-08-24 19:46:59 +02:00
Willem Jan Palenstijn 0c8f95603f COMMON: Add BitStream classes for memory buffers 2017-08-24 19:46:59 +02:00
Willem Jan Palenstijn e7428bca2e COMMON: Keep track of bitstream position 2017-08-24 19:46:59 +02:00
Willem Jan Palenstijn ac95030ef6 COMMON: Cache BitStream size 2017-08-24 19:46:59 +02:00
Willem Jan Palenstijn 60fae8847e IMAGE: Inline indeo getVLC2 2017-08-24 19:46:59 +02:00
Willem Jan Palenstijn dde259f068 COMMON: Remove BitStream base class to allow inlining calls
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.
2017-08-24 19:46:59 +02:00
Willem Jan Palenstijn 848a601c90 FULLPIPE: Fix warning 2017-08-01 13:09:10 +02:00
Willem Jan Palenstijn 4c27396aaa TITANIC: Fix wrong array size
This will hopefully fix #10001
2017-07-26 05:53:41 +02:00
Willem Jan Palenstijn 7fcfb4214e MOHAWK: Remove unnecessary include that was breaking some builds
This was breaking builds with the Myst sub-engine disabled.
2017-07-23 15:14:08 +02:00
Willem Jan Palenstijn 4ec3c2875b IMAGE: Inline two simple indeo functions 2017-07-11 01:32:05 +02:00
Willem Jan Palenstijn 820caf370e SCI32: Fix kObjectIntersect
It was using SCI16 calls to get the NowSeenRects.

This fixes #9855.
2017-07-09 22:56:04 +02:00
Willem Jan Palenstijn c7d631cb66 SCI: Expand kernel breakpoint pattern matching for negative matches
See matchKernelBreakpointPattern() for samples. The main envisioned use is

DoSound*,!DoSoundUpdateCues

to match all DoSound sub-functions except DoSoundUpdateCues.
2017-06-10 21:32:35 +02:00
Willem Jan Palenstijn e7b6a257b9 SCI: Change 'none' breakpoint action to 'ignore' for consistency 2017-06-10 21:32:35 +02:00
Willem Jan Palenstijn 4102a77964 SCI: Clean up breakpoint code (indentation, consistency) 2017-06-10 21:32:35 +02:00
Willem Jan Palenstijn e2e3f7c4c5 SCI: Move bpk/logkernel to main breakpoint infrastructure
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.
2017-06-10 21:32:35 +02:00
Willem Jan Palenstijn 0f0ecff0b8 SCI: Print breakpoint info on creation 2017-06-10 21:32:35 +02:00
Willem Jan Palenstijn 4d34d586a6 SCI: Allow setting bp action directly on creation 2017-06-10 21:32:35 +02:00
Willem Jan Palenstijn b3866aa3d5 SCI: Allow multiple breakpoints with same trigger but different action 2017-06-10 21:32:35 +02:00
Willem Jan Palenstijn be84cfdb59 SCI: Add inspect, none breakpoint actions 2017-06-10 21:32:35 +02:00
Willem Jan Palenstijn 423ecde8e0 SCI: Move printObject from console to scriptdebug 2017-06-10 21:32:35 +02:00
Willem Jan Palenstijn 8e683db72b SCI: Add break/log/backtrace actions for triggered breakpoints
The action can be set using the new console command bp_action/bpact.
2017-06-10 21:32:35 +02:00
Willem Jan Palenstijn cb69d10e96 SCI: Add underscores to Breakpoint member variables 2017-06-10 21:32:35 +02:00
Willem Jan Palenstijn 6d143e6da3 SCI: Remove union from Breakpoint 2017-06-10 21:32:35 +02:00
Willem Jan Palenstijn b56a49c53e SCI: Move backtrace output to scriptdebug.cpp 2017-06-10 21:32:35 +02:00
Willem Jan Palenstijn e9867356f5 SCI: Handle selector read/write breakpoints from opcodes 2017-06-10 21:32:35 +02:00
Willem Jan Palenstijn 1e5c965a2b SCI: Move scriptdebug declarations to separate header 2017-06-10 21:32:35 +02:00
Willem Jan Palenstijn 3554875c7a SCI: Fix wildcard selector breakpoints
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.
2017-06-10 21:32:35 +02:00
Willem Jan Palenstijn d9807b0fca SCI32: Fix warning 2017-05-26 19:33:59 +02:00
Willem Jan Palenstijn dadf1dbe94 GUI: Fully hide GMM save/load buttons if not supported by engine
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.
2017-05-25 16:23:34 +02:00
Willem Jan Palenstijn 779b8336b1 SCI: Let getClassAddress fail gracefully with SCRIPT_GET_DONT_LOAD
This fixes a crash in the debugger when disassembling the class opcode
with a class from a script that hasn't yet been loaded.
2017-05-16 22:41:47 +02:00
Willem Jan Palenstijn 388419c53c SCI: Ignore priority and transparency for KQ6 hi-res views
This fixes bug 9786. Thanks to m_kiewitz for verifying with disasm.
2017-05-15 22:03:25 +02:00
Willem Jan Palenstijn 1f373283a8 TITANIC: Fix warnings 2017-04-02 19:26:34 +02:00
Willem Jan Palenstijn ee86a74cd3 SCI: Fix remaining format string warning 2017-03-30 22:00:27 +02:00
Willem Jan Palenstijn 72962ae0f6 CLOUD: Fix whitespace 2017-03-04 15:09:08 +01:00
Willem Jan Palenstijn 7dd1a1e4f5 GUI: Increase tab title spacing 2017-03-01 00:24:06 +01:00
Willem Jan Palenstijn 867511d2d0 MT32: Update Munt to 2.0.3
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.
2017-02-28 18:40:04 +01:00
Willem Jan Palenstijn c64d91833f GUI: Check rect validity for popup/radio drawing 2017-02-28 15:55:52 +01:00
Willem Jan Palenstijn 5510640dbc GUI: Give each tab in TabWidget its own width
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.)
2017-02-28 15:55:52 +01:00
Willem Jan Palenstijn af831f26b9 GUI: Clean up GlobalOptionsDialog reflow changing visible tabs 2017-02-28 15:55:51 +01:00
Willem Jan Palenstijn 69e311b789 Merge pull request #912 from rsn8887/upstream
SDL: fix options control tab ordering and labels
2017-02-28 15:54:40 +01:00
Willem Jan Palenstijn 8bac8836b1 SCI: Fix up readString writing into too small buffer
This fixes QfG4 character import, which specifies a size of 52 for a
buffer of size 40.
2017-02-27 16:02:20 +01:00
Willem Jan Palenstijn a8cbc03acc CRYO: Improve macro safety 2017-02-26 22:45:03 +01:00
Willem Jan Palenstijn 1b1fae6494 SCI: Clean up unnecessary casts 2017-02-26 14:23:36 +01:00
Willem Jan Palenstijn cdfe5a3107 SCI: Remove check that is never triggered
Since blockSize is asserted to be positive, buf can never be equal to _buf.
2017-02-18 15:20:57 +01:00
Willem Jan Palenstijn 905feaa8c2 SCI: Fix unaligned read 2017-02-18 15:07:02 +01:00
Willem Jan Palenstijn 2af9ab6f61 DRASCULA: Add bound check asserts to copyRect
Bug #7110 showed a crash here. Even though that was likely a compiler
error, these extra checks shouldn't hurt.
2017-02-11 16:50:28 +01:00
Willem Jan Palenstijn 2f4f130918 SCI: Fix warnings 2017-02-07 21:45:17 +01:00
Willem Jan Palenstijn c3d533a72b SWORD25: Use direct integer index into indexTbl
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.
2017-01-28 18:47:11 +01:00
Willem Jan Palenstijn 87c57e42de GRAPHICS: Fix build 2017-01-10 14:54:14 +01:00
Willem Jan Palenstijn 1ba7f8aa1e Merge pull request #873 from wjp/sci_save_palvary
SCI: Unconditionally save palvary state
2017-01-06 10:34:33 -08:00
Willem Jan Palenstijn 95ab3bece9 SCI: Add FIXME for (very unlikely) race condition in _palVarySignal 2017-01-06 19:03:50 +01:00
Willem Jan Palenstijn 740b0bb0ca SCI: Unconditionally save palvary state
Additionally, add workaround to fix up old QfG3 saves with broken
_palVaryPaused state. Fixes bug #9674.
2017-01-06 19:03:50 +01:00
Willem Jan Palenstijn c919c9996c TESTS: Fix warnings 2017-01-05 22:07:24 +01:00
Willem Jan Palenstijn 10151966a6 SCI32: Add missing updateInfoFlagViewVisible call
I missed the one for varselector sends handled by the secondary loop in
op_ret. This fixes #9641.
2016-11-19 19:16:12 +01:00
Willem Jan Palenstijn ebf173b9ce SCI: Fix broken loop count check in checkAltInputs 2016-10-28 21:40:14 +02:00
Willem Jan Palenstijn ae683e33e1 SCI: Resolve duplicate resmap.001 check
Before cef5506e9f, we used to check
for any files starting with resmap.00. We now check for resmap.000
and resmap.001.
2016-10-28 21:40:14 +02:00
Willem Jan Palenstijn 2fe167afc3 SCI: Rename hexDigitToInt to indicate it's intentionally broken 2016-10-26 22:59:33 +02:00
Willem Jan Palenstijn 4071871610 MADS: Fix two off-by-ones in Fader::insertionSort
Fixes bug #9631.
2016-10-26 22:30:02 +02:00
Willem Jan Palenstijn b4515d0872 KYRA: (LOL) Fix buffer overflow in _lastOverridePalFile
It was storing filenames of length 12 in a char[12] buffer.
Fixes bug #9627.
2016-10-25 23:13:22 +02:00
Willem Jan Palenstijn bb2ec760f1 DISTS/FEDORA: Update spec build requirements 2016-10-22 12:19:05 +02:00
Willem Jan Palenstijn bbd5b89c13 BLADERUNNER: Fix presumable typo 2016-10-21 23:36:17 +02:00
Willem Jan Palenstijn 699a147348 SCI: Make -propDict- unique for each class
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.
2016-10-14 19:43:32 -05:00
Willem Jan Palenstijn 3dc5431884 SCI: Add modified workaround for Simbani bridge room for GOG
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.
2016-10-12 22:06:50 +02:00
Willem Jan Palenstijn 95424d770f I18N: Fix fuzzy Dutch translation 2016-10-09 22:00:36 +02:00
Willem Jan Palenstijn 379e3b80da SCI: Release SCI music mutex earlier in reconstructPlayList
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.
2016-10-08 22:32:13 +02:00
Willem Jan Palenstijn d580b64c6e SCI32: Fix build 2016-09-30 09:19:59 +02:00
Willem Jan Palenstijn b8fa67bd33 DM: Don't build by default 2016-09-11 00:30:19 +02:00
Willem Jan Palenstijn 9b6bbeb911 COMMON: Replace broken URL 2016-08-30 21:59:12 +02:00
Willem Jan Palenstijn 3b2bdd3a89 COMMON: Fix sign warning 2016-08-30 21:53:22 +02:00
Willem Jan Palenstijn fb592a0dbd BACKENDS: Rename variable shadowing function 2016-08-30 21:53:21 +02:00