This is currently only used for Macintosh games, but I kept the name of
the setting anonymous in case we ever need gamma correction for
something else.
The only thing that remains in MacGuiImpl is the simplest form of
save/load disabling. Neither Loom nor Last Crusade use that, as they
have additional conditions imposed on them.
Unlike earlier games, these games disable the entire Edit menu rather
than just the individual items. Maniac Mansion additionally disables the
Sound menu.
There is no need to disable menu items that are meant to stay disabled
more than once. This also adds disabling of some Maniac Mansion-specific
stuff.
Maniac Mansion seems to be running fairly well (user friendlyness issues
aside), though we need to figure out how to suppress the Mac GUI while
the game is paused. I also had it hang on me once on quit. No idea why.
This simply moves the new ColorQuantizer class out of the SCUMM engine
and into the Graphics namespace where I think it belongs. It reduces a
potentially large number of colors into a reasonable palette of the
desired size.
The SCUMM engine uses this so that the Mac versions can present the
thumbnail image (which is at least 16 bpp) stored in savegames.
This should be in graphics, not engines/scumm/macgui but I'm keeping it
here for now to avoid conflict, because there's been some activity in
graphics lately.
That was easy! bringing up the Mac menu pauses the game, and "to resume
playing again, choose Resume Game from he Game menu, or simply click the
mouse somewhere away from the menubar."
Well, we don't do the latter. But doing the former is just a matter of
doing... well, nothing.
This simplifies support for translated versions of v6-7 games where
apparently they sometimes kept the English texts and just added another
text on top of it.
The "spool music" checkbox for Full Throttle is disabled for now. When
implemented, it should probably be tied to the "music_mute" setting, but
that's only used for earlier games at the moment.
I'm not going to go with any clever algorithm to get representative
colors, I'm just going to go with the 246 most common ones. (The
remaining 10 are reserved for the Mac GUI.)
I mean, the color quantization is so broken it's not even funny, but it
is updating the thumbnail when the selection changes, and that's a
direct result of yesterday's dialog event loop restructuring. So I count
this as a win. Let's commit it before I break anything even worse.
Each dialog now has an event queue. The runDialog() method consumes all
ScummVM events and transforms them into dialog events. This should make
it easier to have widgets depend on each other, e.g. I want the v6-7
Open dialog to update the thumbnail picture.
This may have caused regressions, but initial tests seemed promising.
I had forgotten to skip the data for the user item when parsing the DITL
resource. For most games this made no difference because the size was 0.
But for Day of the Tentacle, that was not the case. It turns out that a
lot of stuff that I was drawing manually was there all along!
This one uses a regular dialog for About. Unfortunately, our Sam & Max
and Full Throttle Mac demos don't have any resource fork, and our Fate
of Atlantis Mac demo has an unrecognized string table.
When a dialog window is created now, all palettes from the individual
widgets (icons and pictures) are collected and combined into a single
palette. The widget palettes are remapped to this. The icon decoder is
now a proper image decoder, which makes icons and pictures very similar
to handle.