SCUMM: Add practice mode box for Mac Loom

Unlike the PC version, the practice mode box appears to be hard-coded in
the Mac version. The script that draws the box in the PC version just
sets variables in the Mac version. This implementation is based on
screenshots.

To keep things a bit saner, I've split out the Mac-specific drawing to
its own file.
This commit is contained in:
Torbjörn Andersson 2021-05-17 10:41:54 +02:00 committed by Eugene Sandulenko
parent 620d885eac
commit cdfe9b5b4c
7 changed files with 150 additions and 48 deletions

View file

@ -651,6 +651,23 @@ void ScummEngine::writeVar(uint var, int value) {
_scummVars[var] = value;
// Unlike the PC version, the Macintosh version of Loom appears
// to hard-code the drawing of the practice mode box. This is
// handled by script 27 in both versions, but wherease the PC
// version draws the notes, the the Mac version this just sets
// variables 50 and 54.
//
// In this script, the variables are set to the same value but
// it appears that only variable 50 is cleared when the box is
// supposed to disappear. I don't know what the purpose of
// variable 54 is.
if (_game.id == GID_LOOM && _game.platform == Common::kPlatformMacintosh) {
if (VAR(128) == 0 && var == 50) {
mac_drawLoomPracticeMode();
}
}
if ((_varwatch == (int)var || _varwatch == 0) && _currentScript < NUM_SCRIPT_SLOT) {
if (vm.slot[_currentScript].number < 100)
debug(1, "vars[%d] = %d (via script-%d)", var, value, vm.slot[_currentScript].number);