Commit Graph
20 Commits
Author SHA1 Message Date
AndywinXp 0c0bfe70ad SCUMM: GUI: Clean-up and fix v3 Mac banners
These changes fix issues related to surfaces saving and restoring, and remove
unneeded code for the Mac GUI.
2022-11-28 23:21:45 +01:00
Torbjörn Andersson bf0ecd47ff SCUMM: Implement message boxes for Mac Loom and Last Crusade
I'm committing this as is, while leaving final integration to someone
else. Note that this doesn't really replicate the original Mac GUI (e.g.
the quit dialog is nothing like the original), but at least the pause
dialog looks right. And that's what matters to me.
2022-11-28 23:21:45 +01:00
Torbjörn Andersson cb561f462e SCUMM: Read the "enable_enhancements" setting only once
I can't change during gameplay, it's shorter to type, and we won't
accidentally involve the config manater in some tight loop.
2022-03-23 15:23:10 +01:00
Torbjörn Andersson afb807599b SCUMM: Make palette effects in Mac b/w Loom / Last Crusade optional 2022-03-23 15:23:10 +01:00
Eugene Sandulenko abea37c9bb ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
Torbjörn Andersson e2544841df SCUMM: Handle shadow palette in Macintosh b/w mode
In Macintosh b/w mode, there really is no such thing as palette
manipulation. Any color changes have to be handled by the renderer.
Instead of marking the palette as dirty, changes to the shadow palette
trigger a full redraw of the screen.

At the time of writing, I'm only aware of two things that use this: The
lightning flashes at Castle Brunwald in Indiana Jones and the Last
Crusade, and the scene where the dragon finds Rusty in Loom. I have
verified that both of these seem to work correctly.
2021-07-13 09:53:36 +02:00
Torbjörn Andersson 2ba156184c SCUMM: Add Macintosh b/w rendering mode
This is currently only (partially) implemented for the 16-color Mac
versions of Loom and Indiana Jones and the Last Crusade. The text is
still drawn in color, since that's rendered separately, but I'm
committing this now while it still works.
2021-07-13 09:53:36 +02:00
Torbjörn Andersson 0de3b584ea SCUMM: Fix Indy 3 Mac credits with the low resolution font
This is based on the DOS VGA version. I would have been more comfortable
comparing it to the EGA version, but I don't have that. But from what I
can tell, it should work the same.
2021-06-30 14:59:55 +02:00
Torbjörn Andersson 87f61b3589 SCUMM: Clarified comment about credits glitch workaround
For some reason that I can't be bothered to investigate, it only works
with the high-resolution font. Which is what you should be using anyway.
2021-06-30 14:59:55 +02:00
Torbjörn Andersson 1c352471bd SCUMM: Clear the credits between each text screen in Indy 3 Mac
I don't see anything in the script that would do it (well, there is one
but that may be just an accidental leftover from the DOS version), so
trigger on the end of each delay throughout the credits script.

Pretty? No, I guess not. But it's at the end of the game, so there
should be no risk of it messing things up.
2021-06-30 14:59:55 +02:00
Torbjörn Andersson 3f66ef36ac SCUMM: Eliminate strlen() to fix code analysis warning
Instead of looping through the entire string, loop until the end of the
string or until the rendered string gets too wide for the text box. The
upper limit is somewhat arbitrarily chosen, but should look fine if an
actor name is ever that long. (Hint: They're not.)
2021-06-30 14:59:55 +02:00
Torbjörn Andersson 3f249aa67a SCUMM: De-simplify Mac text boxes a bit
We can't pretend that the Mac text box is on the main virtual screen,
because then removing it will remove all other text on the main virtual
screen, e.g. the copy protection instructions.
2021-06-30 14:59:55 +02:00
Torbjörn Andersson b5cfd4d5e3 SCUMM: Remove mac_restoreCharsetBg()
The differences between the two weren't as great as I had first thought.
2021-06-30 14:59:55 +02:00
Torbjörn Andersson 52fbee9ec7 SCUMM: Fix removing of the text box
That takes care of most of the remaining glitches, at least in the early
game.
2021-06-30 14:59:55 +02:00
Torbjörn Andersson 84fb97958f SCUMM: Don't draw the top of the Indy 3 Mac text box to the screen
It's only there so that the font renderer will definitely have something
to draw to.
2021-06-30 14:59:55 +02:00
Torbjörn Andersson cfe270c8af SCUMM: Render the Indy 3 Mac text box to a separate surface.
There's still the matter of exactly when the text box should be created
(sometimes text is drawn to it in several steps, and we don't want to
erase the old text), and when/how to remove the box.
2021-06-30 14:59:55 +02:00
Torbjörn Andersson 9d2d6b60c8 SCUMM: Some more work on the Indy 3 Mac text box.
I'm starting to reconsider the exact way I'm doing this, so this is a
good place to commit what's there, before tearing it up.
2021-06-30 14:59:55 +02:00
Torbjörn Andersson 319492e83a SCUMM: Add function for drawing Indy 3 Mac text box
Well, the border and title at least. I still need to get the text to be
drawn inside, and remove the box once it's done.
2021-06-30 14:59:55 +02:00
Torbjörn Andersson e05e26c520 SCUMM: Make Mac Loom practice box clickable
It turns out that the practice box (which shows note names in practice
mode) is a verb. The DOS version turns this verb on and off when needed,
but Mac Loom only sets variable 50 and 54. I have no idea why there are
two different variables, because variable 50 seems to be enough.

Anyway, this simply turns the verb on and off, and adjusts its
coordinates. It seems to work well enough.
2021-06-28 09:12:40 +02:00
Torbjörn Andersson cdfe9b5b4c 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.
2021-05-17 18:44:29 +02:00