The exposes the --copy-protection command line option to the engine
settings dialog. This affects the following games:
* Maniac Mansion v1 (DOS) and v2, but not NES or the demos
* Zak McKracken v1 and v2
* Loom EGA (DOS)
* Monkey Island 1, VGA floppy and Macintosh
* Monkey Island 2, but not demos, FM Towns, or the Ultimate Talkie
* Fate of Atlantis, Amiga and other floppy versions
I don't have all of these versions myself, so I can't verify that it
works. And in some cases, the checkbox will appear for games that don't
have the copy protection in the scripts, e.g. the Mac CD Game Pack
version of Fate of Atlantis. (Anyone want to re-insert that script like
we do for that release of Monkey Island 2?)
Newer FLAC versions also need this define for Mingw.
Adding this define makes FLAC properly detected and builds works.
This doesn't work with a DLL based FLAC but, because of the define in
flac.cpp it couldn't work anyway.
A proper fix would be to switch to pkg-config for FLAC.
This unifies the ImGui processing for both 2D and 3D engine.
This also make sure we don't destroy ImGui if init failed (like on older
OpenGL).
The destroy callback is also called whenever we destroy the context.
I really wonder how this managed to not crash up until now...
This fixes bug #15237:
"SCUMM: HE: System message box not
being centered in Backyard Football"
Compilation of three bug fixes to text parser I recently made in the AGS project, around alternatives syntax:
1. Stop parsing when reaching end during alternatives skipping (causing an out-of-bounds memory read)
2. Correctly skip over multi-word alternatives (incorrect parsing of alternative lists)
3. Use dedicated function to identify word boundaries (affecting dash and apostrophe containing alternatives)
Upstream commits (release-3.6.1 branch):
1. 17f8ea2f0efadec7b3696d4ba51733f1cddc0772 (check for end of input not to go beyond)
2. e98315393a34629b8935fdee7bd725a8299f941c (fix multi-word alternative skipping)
3. 9b0ccbd04e36e757392b1fc744919c785310c57b (consistently check for word boundaries)
SCI0 MIDI filtering creates a new event stream, but it was generating
malformed events when there were multiple stop events (status byte FC).
This caused MidiParser_SCI::parseEvent to miss the stop event written by
the filter code. The parser would continue reading and parsing out of
bounds heap memory until crashing seemingly randomly.
Now the filter always stops on the first stop event and always writes
out its own stop event correctly.
Fixes PQ2 airport music, bug #15233
Thanks to @antoniou79 for triaging the bug report
"SCUMM/HE: Flashing line at bottom of screen in Freddi 3"
This solves #13532 in a better way: instead of moving the
animation down by one pixel, we simply avoid marking that
line of stray pixels as part of the dirty rectangle.
We remove two pixels since AkosRenderer::paintCelByleRLE()
is going to add one pixel to the rect during the clipping part.
Implement enough of the Xtra's to get Safecracker to pass the
initGlobals and continue onto its next movie file.
That is, the introduction movie will now play.
Changes:
- directsound is know as Dsound_r on disk
- Leverage XOBJSTUB to return Datum(1) for dsOpen
- QTVR is known as Qtvrw32 on disk
- Add QTVREnter to the methodProto, it wasn't added automatically by the
stub generation
Rerun the director-generate-xobj-stub.py for
- directsound
- keypoll
- qtvrxtra
- timextra
Includes new registration for XTRAs by name and
D5 XTRAs property name.
According to D5 lingo dictionary
this property is settable and gettable. Testing in D5-win show
that the poperty is only gettable.
Implement these items also for:
- fileio
In D5 XTRAs have the property "name".
Adds the code generation for XTRAs to have this property.
According to Director 5 Lingo Dictionary the name
is gettable and settable. Occording to my tests in D5-win,
it's only gettable.
When opening the XTRA, register the XTRA on the _openXtras array.
There's a check if the object is an XTRA when registering.
This way the generated code works when generation Xobj's as well.
The D5 function `xtra` can be called with an int.
In that case it returns the xtra that was n-th in the list.
- The list of xtras is stable between opening and closing D5. Tested with
2 XTRAs,
- XTRA function can only take ints > 0. Throws an error when its < 1 and
- XTRA function doesn't take floats.
- XTRA function does take strings, this was already implemented.