According to the Lingo manual, "the commandKey" checks the status of the
Ctrl key when running on Windows.
Fixes opening the save and exit screens in Cosmology of Kyoto for
Windows.
This gives the ability to replace function handlers in a compiled Lingo
script with a replacement from the quirks table. The replacement can be
written in Lingo; no need to worry about injecting bytecode.
As an example, here's a replacement for Cosmology of Kyoto's text input
handler. The original was notorious for requiring an exact match against a
word list containing typos, along with extra spaces and punctuation. The
new one is more forgiving, and always supports the answers "yes" and
"no".
Replicating a bug in the original engine, where a value
from TBOX is used in all rendering, resulting in all wrapped
textlines appearing slightly indented inwards.
_offsettedSurf must have the original screen dimensions, similar as done in
AtariGraphicsManager::Screen::reset().
Strangely, this bug was reproducible only in MagiC and not in FreeMiNT+MP.
CoCo3 games use V3 volumes, and most use V3 compression, even though
they are V2 games with V2 directory files. Only KQ3 uses V2 volumes.
LSL1 CoCo3 now starts, along with the many CoCo3 fan ports.
Big thanks to @MusicallyInspired, @EpicPotatoFiend, and the
SQHistorian discord for teaching me Tandy!
The create() overload of ManagedSurface that creates a
new, owned surface, previously assumed that the
_innerSurface was owned before the call was made. Thus,
when switching between sub-surface and owning surface
modes, a segfault would occur when attempting to free
the pixel data of the inner surface, which is not actually
owned by the ManagedSurface. This commit makes sure
that when free() is called, the inner surface no longer
has an active pointer to its old pixel data.
Fixed the CLOK chunk reading, so the parameters that
indicate whether the clock is the day clock (nancy5), or
completely disabled (nancy7) now get read correctly.